diff --git a/app/[locale]/(user)/datasets/[datasetIdentifier]/components/Details/index.tsx b/app/[locale]/(user)/datasets/[datasetIdentifier]/components/Details/index.tsx index 1a531508..a5c24209 100644 --- a/app/[locale]/(user)/datasets/[datasetIdentifier]/components/Details/index.tsx +++ b/app/[locale]/(user)/datasets/[datasetIdentifier]/components/Details/index.tsx @@ -1,4 +1,4 @@ -import { useRef } from 'react'; +import { useEffect, useRef, useState } from 'react'; import Image from 'next/image'; import Link from 'next/link'; import { useParams } from 'next/navigation'; @@ -49,7 +49,11 @@ const DetailsQuery: any = graphql(` } `); -const Details = () => { +interface DetailsProps { + setShowcharts: (vars: boolean) => void; +} + +const Details: React.FC = ({ setShowcharts }) => { const params = useParams(); const chartRef = useRef(null); @@ -58,6 +62,12 @@ const Details = () => { () => GraphQL(DetailsQuery, {}, { datasetId: params.datasetIdentifier }) ); + useEffect(() => { + if (data && data?.getChartData.length <= 0) { + setShowcharts(false); + } + }, [data]); + const renderChart = (item: any) => { if (item.chartType === 'ASSAM_DISTRICT' || item.chartType === 'ASSAM_RC') { // Register the map @@ -70,17 +80,17 @@ const Details = () => { return ; }; + const [isexpanded, setIsexpanded] = useState(false); + const toggleDescription = () => setIsexpanded(!isexpanded); + return ( -
+
{isLoading ? (
) : data?.getChartData?.length > 0 ? ( <> - - Visualizations -
@@ -106,12 +116,26 @@ const Details = () => {
{item.name} - {item.description} + + {item.description.length > 260 && !isexpanded + ? `${item.description.slice(0, 260)}...` + : item.description} + {item.description.length > 260 && ( + + )} +
- +
- +
diff --git a/app/[locale]/(user)/datasets/[datasetIdentifier]/components/Metadata/index.tsx b/app/[locale]/(user)/datasets/[datasetIdentifier]/components/Metadata/index.tsx index d136b72f..1e8dc316 100644 --- a/app/[locale]/(user)/datasets/[datasetIdentifier]/components/Metadata/index.tsx +++ b/app/[locale]/(user)/datasets/[datasetIdentifier]/components/Metadata/index.tsx @@ -1,7 +1,7 @@ -import React from 'react'; -import Link from 'next/link'; -import { Button, Icon, Text } from 'opub-ui'; -import { toTitleCase } from '@/lib/utils'; +import Image from 'next/image'; +import { Button, Divider, Icon, Text } from 'opub-ui'; +import React, { useState } from 'react'; + import { Icons } from '@/components/icons'; interface MetadataProps { @@ -10,90 +10,121 @@ interface MetadataProps { } const MetadataComponent: React.FC = ({ data, setOpen }) => { - const filteredMetadataArray = data?.metadata.filter( - (item: any) => - item.metadataItem.label !== 'Source Website' && - item.metadataItem.label !== 'Github Repo Link' && - item.metadataItem.label !== 'Source' && - item.value.trim() !== '' // Ensure the value is not empty - ); + const Metadata = ( + data.metadata as Array<{ metadataItem: { label: string }; value: string }> + ) + .filter((item) => + ['Geography', 'Update Frequency', 'License'].includes( + item.metadataItem.label + ) + ) + .map((item) => ({ + label: + item.metadataItem.label === 'Geography' + ? 'Location' + : item.metadataItem.label, + value: item.value, + })); + const [isexpanded, setIsexpanded] = useState(false); + const toggleDescription = () => setIsexpanded(!isexpanded); return ( -
-
- - Metadata - - {setOpen && ( - - )} +
+
+
+ + ABOUT THE DATASET{' '} + + METADATA +
+
+ {setOpen && ( + + )} +
-
- {filteredMetadataArray?.map((item: any, index: any) => ( -
+
+
+ {data?.organization?.logo?.url ? ( + {`${data.organization?.name} + ) : ( + {'fallback + )} +
+
+ + Organization + + - - {toTitleCase(item.metadataItem.label)}: + {data.organization.name} + +
+
+ + Sector + + + {data.categories[0].name} + +
+ {Metadata.map((item, index) => ( +
+ + {item.label} - + {item.value}
))} - {data?.formats.length > 0 && ( -
- - Formats: - -
- {data?.formats.map((item: any, index: any) => ( - {item} - ))} -
-
- )} - {data?.categories.length > 0 && ( -
- - Category: - -
- {data?.categories.map((item: any, index: any) => ( - - {item.name} - - ))} -
-
- )} - {data?.tags.length > 0 && ( -
- - Tags: - -
- {data?.tags.map((item: any, index: any) => ( - - {item.value} - - ))} -
-
- )} +
+ Description + + {data.description.length > 260 && !isexpanded + ? `${data.description.slice(0, 260)}...` + : data.description} + {data.description.length > 260 && ( + + )} + +
); diff --git a/app/[locale]/(user)/datasets/[datasetIdentifier]/components/PrimaryData/index.tsx b/app/[locale]/(user)/datasets/[datasetIdentifier]/components/PrimaryData/index.tsx index 016fc6f7..8993bb82 100644 --- a/app/[locale]/(user)/datasets/[datasetIdentifier]/components/PrimaryData/index.tsx +++ b/app/[locale]/(user)/datasets/[datasetIdentifier]/components/PrimaryData/index.tsx @@ -2,7 +2,7 @@ import React, { useState } from 'react'; import Link from 'next/link'; -import { Button, Icon, Spinner, Text, Tray } from 'opub-ui'; +import { Button, Icon, Spinner, Tag, Text, Tray } from 'opub-ui'; import { handleRedirect } from '@/lib/utils'; import { Icons } from '@/components/icons'; @@ -14,30 +14,19 @@ interface PrimaryDataProps { } const PrimaryData: React.FC = ({ data, isLoading }) => { - const sourceMetadata = data?.metadata.find( - (item: any) => item.metadataItem.label === 'Source' - ); - const sourceLink = data?.metadata.find( - (item: any) => item.metadataItem.label === 'Source Website' - ); - const githubLink = data?.metadata.find( - (item: any) => item.metadataItem.label === 'Github Repo Link' - ); + console.log(data); const [open, setOpen] = useState(false); return ( -
-
+
+
{data?.title} - {sourceMetadata?.value && ( -
-
- Source: - {sourceMetadata.value} -
-
- )} +
+ {data?.tags.map((item: any, index: any) => ( + {item.value} + ))} +
= ({ data, isLoading }) => {
- -
- {data?.description} -
-
- {sourceLink?.value && ( -
- handleRedirect(event, sourceLink.value)} - className="flex gap-1 text-textInteractive underline" - > - Visit Source Website - - -
- )} - {githubLink?.value && ( -
- handleRedirect(event, githubLink.value)} - className="flex gap-1 text-textInteractive underline" - > - Go to Github Repo - - -
- )} - {githubLink?.value && ( -
- handleRedirect(event, githubLink.value)} - className="flex gap-1 text-textInteractive underline" - > - Share Dataset - - -
- )} -
); }; diff --git a/app/[locale]/(user)/datasets/[datasetIdentifier]/components/Resources/index.tsx b/app/[locale]/(user)/datasets/[datasetIdentifier]/components/Resources/index.tsx index e6fad1e5..6ff57201 100644 --- a/app/[locale]/(user)/datasets/[datasetIdentifier]/components/Resources/index.tsx +++ b/app/[locale]/(user)/datasets/[datasetIdentifier]/components/Resources/index.tsx @@ -1,10 +1,9 @@ 'use client'; -import { useEffect, useRef, useState } from 'react'; -import Link from 'next/link'; -import { useParams } from 'next/navigation'; import { graphql } from '@/gql'; import { useQuery } from '@tanstack/react-query'; +import Link from 'next/link'; +import { useParams } from 'next/navigation'; import { Accordion, AccordionContent, @@ -12,14 +11,16 @@ import { AccordionTrigger, Button, Dialog, + Format, + Icon, Spinner, Table, - Tag, - Text, + Text } from 'opub-ui'; +import { useEffect, useRef, useState } from 'react'; +import { Icons } from '@/components/icons'; import { GraphQL } from '@/lib/api'; -import { formatDate } from '@/lib/utils'; const datasetResourceQuery: any = graphql(` query datasetResources($datasetId: UUID!) { @@ -34,6 +35,7 @@ const datasetResourceQuery: any = graphql(` columns rows } + noOfEntries previewEnabled schema { fieldName @@ -64,35 +66,7 @@ const Resources = () => { ) ); - // Use an object to manage the expanded state for each resource individually - const [showMore, setShowMore] = useState<{ [key: number]: boolean }>({}); - const [isDescriptionLong, setIsDescriptionLong] = useState<{ - [key: number]: boolean; - }>({}); - - const descriptionRefs = useRef<(HTMLDivElement | null)[]>([]); - - // Toggle showMore for a specific resource - const toggleShowMore = (index: number) => { - setShowMore((prevState) => ({ - ...prevState, - [index]: !prevState[index], - })); - }; - // Measure the height of the description and set the `isDescriptionLong` flag accordingly - useEffect(() => { - descriptionRefs.current.forEach((descriptionElement, index) => { - if (descriptionElement) { - const isLong = - descriptionElement.scrollHeight > descriptionElement.clientHeight; - setIsDescriptionLong((prevState) => ({ - ...prevState, - [index]: isLong, - })); - } - }); - }, [getResourceDetails.data]); const generateColumnData = () => { return [ @@ -103,9 +77,9 @@ const Resources = () => { return ( - + - + { return ( - - + {previewData && (
)} @@ -198,81 +172,109 @@ const Resources = () => { return [ { schema: data?.schema, - rowsLength: data?.previewData?.rows?.length || 'Na', + rowsLength: data?.noOfEntries || 'Na', format: data?.fileDetails?.format || 'Na', size: Math.round(data?.fileDetails?.size / 1024).toFixed(2) + 'KB', preview: data?.previewData, }, ]; }; - + const [isexpanded, setIsexpanded] = useState(false); + const toggleDescription = () => setIsexpanded(!isexpanded); return ( -
+
{getResourceDetails.isLoading ? (
) : getResourceDetails.data && getResourceDetails.data?.datasetResources?.length > 0 ? ( - <> - - Downloadable Resources - +
+
+ Files in this Dataset + + All files associated with this Dataset which can be + downloaded{' '} + +
{getResourceDetails.data?.datasetResources.map( (item: any, index: number) => (
-
-
+
+
{item.name} {item.fileDetails?.format && ( - {item.fileDetails?.format} + )}
-
- Updated: - {formatDate(item.modified)} -
-
-
- - - -
-
- - -
-
-
(descriptionRefs.current[index] = el)} - className={!showMore[index] ? 'line-clamp-2' : ''} - > - {item.description} -
- {isDescriptionLong[index] && ( +
+ + {item.description.length > 260 && !isexpanded + ? `${item.description.slice(0, 260)}...` + : item.description} + {item.description.length > 260 && ( + )} + + + {item.description.length > 160 && !isexpanded + ? `${item.description.slice(0, 160)}...` + : item.description} + {item.description.length > 160 && ( + )} -
+ +
+
+
+ + +
- View Details + + {' '} + View Details + +
+ + + +
{ columns={generateColumnData()} rows={generateTableData(item)} hideFooter + />
@@ -293,7 +296,7 @@ const Resources = () => { ) )}
- +
) : ( '' )} diff --git a/app/[locale]/(user)/datasets/[datasetIdentifier]/page.tsx b/app/[locale]/(user)/datasets/[datasetIdentifier]/page.tsx index 542c1bfd..8d49a825 100644 --- a/app/[locale]/(user)/datasets/[datasetIdentifier]/page.tsx +++ b/app/[locale]/(user)/datasets/[datasetIdentifier]/page.tsx @@ -21,6 +21,7 @@ const datasetQuery = graphql(` value } id + downloadCount title description created @@ -40,6 +41,14 @@ const datasetQuery = graphql(` name description } + organization { + name + logo { + url + } + slug + id + } categories { name } @@ -49,8 +58,7 @@ const datasetQuery = graphql(` `); const DatasetDetailsPage = () => { - const [open, setOpen] = useState(false); - const primaryDataRef = useRef(null); // Explicitly specify the type of ref + const [showCharts, setShowcharts] = useState(true); const params = useParams(); @@ -65,7 +73,7 @@ const DatasetDetailsPage = () => { ); return ( -
+
{ { href: '#', label: 'Dataset Details' }, ]} /> -
-
-
-
- {isLoading ? ( -
- -
- ) : ( - - )} +
+
+ {isLoading ? ( +
+
-
-
-
-
+ ) : ( + + )} +
+ {showCharts ? ( +
+ ) : ( + )} +
+
+
+ {isLoading ? ( +
+
-
- {isLoading ? ( -
- -
- ) : ( -
- -
- )} + ) : ( +
+
-
+ )}
+ {showCharts && ( +
+ +
+ )}
); }; diff --git a/app/[locale]/(user)/datasets/components/FIlter/Filter.tsx b/app/[locale]/(user)/datasets/components/FIlter/Filter.tsx index 04f050f1..8611ac96 100644 --- a/app/[locale]/(user)/datasets/components/FIlter/Filter.tsx +++ b/app/[locale]/(user)/datasets/components/FIlter/Filter.tsx @@ -33,14 +33,14 @@ const Filter: React.FC = ({ }; return ( -
+
- Filters + Filters
-
@@ -57,8 +57,8 @@ const Filter: React.FC = ({ {Object.entries(options).map(([category, data], index) => (
- - + + {toTitleCase(category)} { @@ -141,7 +144,7 @@ const useUrlParams = ( const searchParam = queryParams.query ? `&query=${encodeURIComponent(queryParams.query)}` : ''; - const sortParam = queryParams.sort + const sortParam = queryParams.sort ? `&sort=${encodeURIComponent(queryParams.sort)}` : ''; const variablesString = `?${filtersString}&size=${queryParams.pageSize}&page=${queryParams.currentPage}${searchParam}${sortParam}`; @@ -184,6 +187,7 @@ const DatasetsListing = () => { const count = facets?.total ?? 0; const datasetDetails = facets?.results ?? []; const [queryParams, setQueryParams] = useReducer(queryReducer, initialState); + const [view, setView] = useState<'collapsed' | 'expanded'>('collapsed'); useUrlParams(queryParams, setQueryParams, setVariables); @@ -235,9 +239,11 @@ const DatasetsListing = () => { }, {} ); + const pageSizeOptions = [9, 18, 36]; + console.log(datasetDetails); return ( -
+
{
) : ( -
-
-
- - Showing {datasetDetails?.length} of {count} Datasets - -
-
+
+
+
handleSearch(value)} onClear={(value) => handleSearch(value)} />
-
- - Sort by: - - +
+
+ + Rows: + + void; onPageSizeChange: (newSize: number) => void; children: React.ReactNode; + view? : string } const GraphqlPagination: React.FC = ({ @@ -18,10 +19,13 @@ const GraphqlPagination: React.FC = ({ onPageChange, onPageSizeChange, children, + view }) => { return (
- {children} +
+ {children} +
)} diff --git a/app/[locale]/dashboard/layout.tsx b/app/[locale]/dashboard/layout.tsx index a36fd15d..196aedd5 100644 --- a/app/[locale]/dashboard/layout.tsx +++ b/app/[locale]/dashboard/layout.tsx @@ -12,7 +12,7 @@ interface DashboardLayoutProps { export default function Layout({ children }: DashboardLayoutProps) { return (
-
+
<>{children} diff --git a/components/BreadCrumbs/index.tsx b/components/BreadCrumbs/index.tsx index c1d4fd2c..8b0ee9d2 100644 --- a/components/BreadCrumbs/index.tsx +++ b/components/BreadCrumbs/index.tsx @@ -14,18 +14,18 @@ interface BreadCrumbsProps { const BreadCrumbs: React.FC = ({ data }) => { return ( -
+
- + {data.map((item, index) => ( {index === data.length - 1 ? ( - {item.label} + {item.label} ) : ( - {item.label} + {item.label} )} {index < data.length - 1 && } diff --git a/components/icons.tsx b/components/icons.tsx index 0e867642..539937e0 100644 --- a/components/icons.tsx +++ b/components/icons.tsx @@ -9,6 +9,7 @@ import { IconBrandGithub, IconBrandLinkedin, IconBrandTwitter, + IconCalendar, IconChartBar, IconCheck, IconCircleCheckFilled, @@ -24,6 +25,8 @@ import { IconFileUpload, IconFolder, IconInfoCircle, + IconLayoutGrid, + IconLayoutList, IconLayoutSidebarLeftCollapse, IconLayoutSidebarLeftExpand, IconLink, @@ -40,6 +43,7 @@ import { IconTrash, IconUserCog, IconUsers, + IconWorld, IconX, // TablerIconsProps, } from '@tabler/icons-react'; @@ -90,4 +94,9 @@ export const Icons: { arrowDiagonal: IconArrowsDiagonal, verticalDots: IconDotsVertical, chart: IconChartBar, + list: IconLayoutList, + grid: IconLayoutGrid, + calendar: IconCalendar, + globe: IconWorld, + diagonal: IconArrowsDiagonal }; diff --git a/package-lock.json b/package-lock.json index ce5d1b0e..8073478b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,7 +30,7 @@ "next-auth": "^4.24.7", "next-intl": "^3.4.0", "next-usequerystate": "^1.17.2", - "opub-ui": "0.3.70", + "opub-ui": "0.3.76", "react": "^18.2.0", "react-aria": "3.22.0", "react-dom": "^18.2.0", @@ -390,12 +390,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.10.tgz", - "integrity": "sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz", + "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==", "dependencies": { - "@babel/parser": "^7.26.10", - "@babel/types": "^7.26.10", + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -417,11 +417,11 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", - "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz", + "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==", "dependencies": { - "@babel/compat-data": "^7.26.5", + "@babel/compat-data": "^7.26.8", "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", @@ -440,9 +440,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.26.9.tgz", - "integrity": "sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.0.tgz", + "integrity": "sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.25.9", @@ -450,7 +450,7 @@ "@babel/helper-optimise-call-expression": "^7.25.9", "@babel/helper-replace-supers": "^7.26.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.26.9", + "@babel/traverse": "^7.27.0", "semver": "^6.3.1" }, "engines": { @@ -586,23 +586,23 @@ } }, "node_modules/@babel/helpers": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz", - "integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", + "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", "dependencies": { - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.10" + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz", - "integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", + "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", "dependencies": { - "@babel/types": "^7.26.10" + "@babel/types": "^7.27.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -748,12 +748,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.0.tgz", + "integrity": "sha512-u1jGphZ8uDI2Pj/HJj6YQ6XQLZCNjOlprjxB5SVz6rq2T6SwAR+CdrWK0CP7F+9rDVMXdB0+r6Am5G5aobOjAQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1035,9 +1035,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", - "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", + "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -1046,28 +1046,28 @@ } }, "node_modules/@babel/template": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", - "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", + "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", "dependencies": { "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.26.9", - "@babel/types": "^7.26.9" + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.10.tgz", - "integrity": "sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", + "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", "dependencies": { "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.10", - "@babel/parser": "^7.26.10", - "@babel/template": "^7.26.9", - "@babel/types": "^7.26.10", + "@babel/generator": "^7.27.0", + "@babel/parser": "^7.27.0", + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -1076,9 +1076,9 @@ } }, "node_modules/@babel/types": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz", - "integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", + "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", "dependencies": { "@babel/helper-string-parser": "^7.25.9", "@babel/helper-validator-identifier": "^7.25.9" @@ -3521,14 +3521,14 @@ } }, "node_modules/@next/env": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.25.tgz", - "integrity": "sha512-JnzQ2cExDeG7FxJwqAksZ3aqVJrHjFwZQAEJ9gQZSoEhIow7SNoKZzju/AwQ+PLIR4NY8V0rhcVozx/2izDO0w==" + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.26.tgz", + "integrity": "sha512-vO//GJ/YBco+H7xdQhzJxF7ub3SUwft76jwaeOyVVQFHCi5DCnkP16WHB+JBylo4vOKPoZBlR94Z8xBxNBdNJA==" }, "node_modules/@next/eslint-plugin-next": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.25.tgz", - "integrity": "sha512-L2jcdEEa0bTv1DhE67Cdx1kLLkL0iLL9ILdBYx0j7noi2AUJM7bwcqmcN8awGg+8uyKGAGof/OkFom50x+ZyZg==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.26.tgz", + "integrity": "sha512-SPEj1O5DAVTPaWD9XPupelfT2APNIgcDYD2OzEm328BEmHaglhmYNUvxhzfJYDr12AgAfW4V3UHSV93qaeELJA==", "dev": true, "dependencies": { "glob": "10.3.10" @@ -3557,9 +3557,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.25.tgz", - "integrity": "sha512-09clWInF1YRd6le00vt750s3m7SEYNehz9C4PUcSu3bAdCTpjIV4aTYQZ25Ehrr83VR1rZeqtKUPWSI7GfuKZQ==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.26.tgz", + "integrity": "sha512-zDJY8gsKEseGAxG+C2hTMT0w9Nk9N1Sk1qV7vXYz9MEiyRoF5ogQX2+vplyUMIfygnjn9/A04I6yrUTRTuRiyQ==", "cpu": [ "arm64" ], @@ -3572,9 +3572,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.25.tgz", - "integrity": "sha512-V+iYM/QR+aYeJl3/FWWU/7Ix4b07ovsQ5IbkwgUK29pTHmq+5UxeDr7/dphvtXEq5pLB/PucfcBNh9KZ8vWbug==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.26.tgz", + "integrity": "sha512-U0adH5ryLfmTDkahLwG9sUQG2L0a9rYux8crQeC92rPhi3jGQEY47nByQHrVrt3prZigadwj/2HZ1LUUimuSbg==", "cpu": [ "x64" ], @@ -3587,9 +3587,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.25.tgz", - "integrity": "sha512-LFnV2899PJZAIEHQ4IMmZIgL0FBieh5keMnriMY1cK7ompR+JUd24xeTtKkcaw8QmxmEdhoE5Mu9dPSuDBgtTg==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.26.tgz", + "integrity": "sha512-SINMl1I7UhfHGM7SoRiw0AbwnLEMUnJ/3XXVmhyptzriHbWvPPbbm0OEVG24uUKhuS1t0nvN/DBvm5kz6ZIqpg==", "cpu": [ "arm64" ], @@ -3602,9 +3602,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.25.tgz", - "integrity": "sha512-QC5y5PPTmtqFExcKWKYgUNkHeHE/z3lUsu83di488nyP0ZzQ3Yse2G6TCxz6nNsQwgAx1BehAJTZez+UQxzLfw==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.26.tgz", + "integrity": "sha512-s6JaezoyJK2DxrwHWxLWtJKlqKqTdi/zaYigDXUJ/gmx/72CrzdVZfMvUc6VqnZ7YEvRijvYo+0o4Z9DencduA==", "cpu": [ "arm64" ], @@ -3617,9 +3617,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.25.tgz", - "integrity": "sha512-y6/ML4b9eQ2D/56wqatTJN5/JR8/xdObU2Fb1RBidnrr450HLCKr6IJZbPqbv7NXmje61UyxjF5kvSajvjye5w==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.26.tgz", + "integrity": "sha512-FEXeUQi8/pLr/XI0hKbe0tgbLmHFRhgXOUiPScz2hk0hSmbGiU8aUqVslj/6C6KA38RzXnWoJXo4FMo6aBxjzg==", "cpu": [ "x64" ], @@ -3632,9 +3632,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.25.tgz", - "integrity": "sha512-sPX0TSXHGUOZFvv96GoBXpB3w4emMqKeMgemrSxI7A6l55VBJp/RKYLwZIB9JxSqYPApqiREaIIap+wWq0RU8w==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.26.tgz", + "integrity": "sha512-BUsomaO4d2DuXhXhgQCVt2jjX4B4/Thts8nDoIruEJkhE5ifeQFtvW5c9JkdOtYvE5p2G0hcwQ0UbRaQmQwaVg==", "cpu": [ "x64" ], @@ -3647,9 +3647,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.25.tgz", - "integrity": "sha512-ReO9S5hkA1DU2cFCsGoOEp7WJkhFzNbU/3VUF6XxNGUCQChyug6hZdYL/istQgfT/GWE6PNIg9cm784OI4ddxQ==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.26.tgz", + "integrity": "sha512-5auwsMVzT7wbB2CZXQxDctpWbdEnEW/e66DyXO1DcgHxIyhP06awu+rHKshZE+lPLIGiwtjo7bsyeuubewwxMw==", "cpu": [ "arm64" ], @@ -3662,9 +3662,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.25.tgz", - "integrity": "sha512-DZ/gc0o9neuCDyD5IumyTGHVun2dCox5TfPQI/BJTYwpSNYM3CZDI4i6TOdjeq1JMo+Ug4kPSMuZdwsycwFbAw==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.26.tgz", + "integrity": "sha512-GQWg/Vbz9zUGi9X80lOeGsz1rMH/MtFO/XqigDznhhhTfDlDoynCM6982mPCbSlxJ/aveZcKtTlwfAjwhyxDpg==", "cpu": [ "ia32" ], @@ -3677,9 +3677,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.25.tgz", - "integrity": "sha512-KSznmS6eFjQ9RJ1nEc66kJvtGIL1iZMYmGEXsZPh2YtnLtqrgdVvKXJY2ScjjoFnG6nGLyPFR0UiEvDwVah4Tw==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.26.tgz", + "integrity": "sha512-2rdB3T1/Gp7bv1eQTTm9d1Y1sv9UuJ2LAwOE0Pe2prHKe32UNscj7YS13fRB37d0GAiGNR+Y7ZcW8YjDI8Ns0w==", "cpu": [ "x64" ], @@ -8039,12 +8039,12 @@ } }, "node_modules/@storybook/core": { - "version": "8.6.8", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.6.8.tgz", - "integrity": "sha512-CZhLIAGNRJlmf9eQ70ATgNc/MNXKIS/nvN3jiGWkp5oN69OSiqzdLukxsuZdCPUtj7gtF0XTESQ7wkkZgkYXoQ==", + "version": "8.6.9", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.6.9.tgz", + "integrity": "sha512-psYxJAlj34ZaDAk+OvT/He6ZuUh0eGiHVtZNe0xWbNp5pQvOBjf+dg48swdI6KEbVs3aeU+Wnyra/ViU2RtA+Q==", "peer": true, "dependencies": { - "@storybook/theming": "8.6.8", + "@storybook/theming": "8.6.9", "better-opn": "^3.0.2", "browser-assert": "^1.2.1", "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0", @@ -8075,9 +8075,9 @@ "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==" }, "node_modules/@storybook/instrumenter": { - "version": "8.6.8", - "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.6.8.tgz", - "integrity": "sha512-FgfIINbA5svlIIBMc+q4hdIEdLRT+8i6R76BUeKj5btD8tYxWY4LywMeItZx8uyaFGFjYlFdMKnyXCmSnFXnaQ==", + "version": "8.6.9", + "resolved": "https://registry.npmjs.org/@storybook/instrumenter/-/instrumenter-8.6.9.tgz", + "integrity": "sha512-Gp6OSiu9KA/p1HWd7VW9TtpWX32ZBfqRVrOm4wW1AM6B4XACbQWFE/aQ25HwU834yfdJkr2BW+uUH8DBAQ6kTw==", "dependencies": { "@storybook/global": "^5.0.0", "@vitest/utils": "^2.1.1" @@ -8087,16 +8087,16 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.8" + "storybook": "^8.6.9" } }, "node_modules/@storybook/test": { - "version": "8.6.8", - "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.6.8.tgz", - "integrity": "sha512-wMJkWWcfPK374uw3JPpgMBkPYkIhYPxqRVp/KAJR/h10YIhSAXg7yiH1LYmmNAwrmvI7Uc3KZZ9fX/Qvot5uRg==", + "version": "8.6.9", + "resolved": "https://registry.npmjs.org/@storybook/test/-/test-8.6.9.tgz", + "integrity": "sha512-lIJA6jup3ZZNkKFyUiy1q2tHWZv5q5bTaLxTnI85XIWr+sFCZG5oo3pOQESBkX4V95rv8sq9gEmEWySZvW7MBw==", "dependencies": { "@storybook/global": "^5.0.0", - "@storybook/instrumenter": "8.6.8", + "@storybook/instrumenter": "8.6.9", "@testing-library/dom": "10.4.0", "@testing-library/jest-dom": "6.5.0", "@testing-library/user-event": "14.5.2", @@ -8108,13 +8108,13 @@ "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "storybook": "^8.6.8" + "storybook": "^8.6.9" } }, "node_modules/@storybook/theming": { - "version": "8.6.8", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.6.8.tgz", - "integrity": "sha512-Lgtmjudkd8s5wTxCbMvZNIY7iWOwnsWI04zejpubxbuNLFvOIvJnICVzrEzxuMYPIDg9cvPVYT3AkuE2NucUVg==", + "version": "8.6.9", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.6.9.tgz", + "integrity": "sha512-FQafe66itGnIh0V42R65tgFKyz0RshpIs0pTrxrdByuB2yKsep+f8ZgKLJE3fCKw/Egw4bUuICo2m8d7uOOumA==", "peer": true, "funding": { "type": "opencollective", @@ -8517,9 +8517,9 @@ } }, "node_modules/@types/node": { - "version": "20.17.26", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.26.tgz", - "integrity": "sha512-x9T6TLS76RIBGB0X81k+9697cNZel+f/v+BR8gzKNqISC3MhHHWoHY6XIEDY0E8psIJmCEMXqxjw7Np1u/mysA==", + "version": "20.17.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.27.tgz", + "integrity": "sha512-U58sbKhDrthHlxHRJw7ZLiLDZGmAUOZUbpw0S6nL27sYUdhvgBLCRu/keSd6qcTsfArd1sRFCCBxzWATGr/0UA==", "dependencies": { "undici-types": "~6.19.2" } @@ -8800,9 +8800,9 @@ "dev": true }, "node_modules/@unrs/rspack-resolver-binding-darwin-arm64": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-darwin-arm64/-/rspack-resolver-binding-darwin-arm64-1.2.2.tgz", - "integrity": "sha512-i7z0B+C0P8Q63O/5PXJAzeFtA1ttY3OR2VSJgGv18S+PFNwD98xHgAgPOT1H5HIV6jlQP8Avzbp09qxJUdpPNw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-darwin-arm64/-/rspack-resolver-binding-darwin-arm64-1.3.0.tgz", + "integrity": "sha512-EcjI0Hh2HiNOM0B9UuYH1PfLWgE6/SBQ4dKoHXWNloERfveha/n6aUZSBThtPGnJenmdfaJYXXZtqyNbWtJAFw==", "cpu": [ "arm64" ], @@ -8813,9 +8813,9 @@ ] }, "node_modules/@unrs/rspack-resolver-binding-darwin-x64": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-darwin-x64/-/rspack-resolver-binding-darwin-x64-1.2.2.tgz", - "integrity": "sha512-YEdFzPjIbDUCfmehC6eS+AdJYtFWY35YYgWUnqqTM2oe/N58GhNy5yRllxYhxwJ9GcfHoNc6Ubze1yjkNv+9Qg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-darwin-x64/-/rspack-resolver-binding-darwin-x64-1.3.0.tgz", + "integrity": "sha512-3CgG+mhfudDfnaDqwEl0W1mcGTto5f5mqPyJSXcWDxrnNc7pr/p01khIgWOoOD1eCwVejmgpYvRKGBwJPwgHOQ==", "cpu": [ "x64" ], @@ -8826,9 +8826,9 @@ ] }, "node_modules/@unrs/rspack-resolver-binding-freebsd-x64": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-freebsd-x64/-/rspack-resolver-binding-freebsd-x64-1.2.2.tgz", - "integrity": "sha512-TU4ntNXDgPN2giQyyzSnGWf/dVCem5lvwxg0XYvsvz35h5H19WrhTmHgbrULMuypCB3aHe1enYUC9rPLDw45mA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-freebsd-x64/-/rspack-resolver-binding-freebsd-x64-1.3.0.tgz", + "integrity": "sha512-ww8BwryDrpXlSajwSIEUXEv8oKDkw04L2ke3hxjaxWohuBV8pAQie9XBS4yQTyREuL2ypcqbARfoCXJJzVp7ig==", "cpu": [ "x64" ], @@ -8839,9 +8839,22 @@ ] }, "node_modules/@unrs/rspack-resolver-binding-linux-arm-gnueabihf": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm-gnueabihf/-/rspack-resolver-binding-linux-arm-gnueabihf-1.2.2.tgz", - "integrity": "sha512-ik3w4/rU6RujBvNWiDnKdXi1smBhqxEDhccNi/j2rHaMjm0Fk49KkJ6XKsoUnD2kZ5xaMJf9JjailW/okfUPIw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm-gnueabihf/-/rspack-resolver-binding-linux-arm-gnueabihf-1.3.0.tgz", + "integrity": "sha512-WyhonI1mkuAlnG2iaMjk7uy4aWX+FWi2Au8qCCwj57wVHbAEfrN6xN2YhzbrsCC+ciumKhj5c01MqwsnYDNzWQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-linux-arm-musleabihf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm-musleabihf/-/rspack-resolver-binding-linux-arm-musleabihf-1.3.0.tgz", + "integrity": "sha512-+uCP6hIAMVWHKQnLZHESJ1U1TFVGLR3FTeaS2A4zB0k8w+IbZlWwl9FiBUOwOiqhcCCyKiUEifgnYFNGpxi3pw==", "cpu": [ "arm" ], @@ -8852,9 +8865,9 @@ ] }, "node_modules/@unrs/rspack-resolver-binding-linux-arm64-gnu": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm64-gnu/-/rspack-resolver-binding-linux-arm64-gnu-1.2.2.tgz", - "integrity": "sha512-fp4Azi8kHz6TX8SFmKfyScZrMLfp++uRm2srpqRjsRZIIBzH74NtSkdEUHImR4G7f7XJ+sVZjCc6KDDK04YEpQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm64-gnu/-/rspack-resolver-binding-linux-arm64-gnu-1.3.0.tgz", + "integrity": "sha512-p+s/Wp8rf75Qqs2EPw4HC0xVLLW+/60MlVAsB7TYLoeg1e1CU/QCis36FxpziLS0ZY2+wXdTnPUxr+5kkThzwQ==", "cpu": [ "arm64" ], @@ -8865,9 +8878,9 @@ ] }, "node_modules/@unrs/rspack-resolver-binding-linux-arm64-musl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm64-musl/-/rspack-resolver-binding-linux-arm64-musl-1.2.2.tgz", - "integrity": "sha512-gMiG3DCFioJxdGBzhlL86KcFgt9HGz0iDhw0YVYPsShItpN5pqIkNrI+L/Q/0gfDiGrfcE0X3VANSYIPmqEAlQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm64-musl/-/rspack-resolver-binding-linux-arm64-musl-1.3.0.tgz", + "integrity": "sha512-cZEL9jmZ2kAN53MEk+fFCRJM8pRwOEboDn7sTLjZW+hL6a0/8JNfHP20n8+MBDrhyD34BSF4A6wPCj/LNhtOIQ==", "cpu": [ "arm64" ], @@ -8877,10 +8890,36 @@ "linux" ] }, + "node_modules/@unrs/rspack-resolver-binding-linux-ppc64-gnu": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-ppc64-gnu/-/rspack-resolver-binding-linux-ppc64-gnu-1.3.0.tgz", + "integrity": "sha512-IOeRhcMXTNlk2oApsOozYVcOHu4t1EKYKnTz4huzdPyKNPX0Y9C7X8/6rk4aR3Inb5s4oVMT9IVKdgNXLcpGAQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-linux-s390x-gnu": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-s390x-gnu/-/rspack-resolver-binding-linux-s390x-gnu-1.3.0.tgz", + "integrity": "sha512-op54XrlEbhgVRCxzF1pHFcLamdOmHDapwrqJ9xYRB7ZjwP/zQCKzz/uAsSaAlyQmbSi/PXV7lwfca4xkv860/Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@unrs/rspack-resolver-binding-linux-x64-gnu": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-x64-gnu/-/rspack-resolver-binding-linux-x64-gnu-1.2.2.tgz", - "integrity": "sha512-n/4n2CxaUF9tcaJxEaZm+lqvaw2gflfWQ1R9I7WQgYkKEKbRKbpG/R3hopYdUmLSRI4xaW1Cy0Bz40eS2Yi4Sw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-x64-gnu/-/rspack-resolver-binding-linux-x64-gnu-1.3.0.tgz", + "integrity": "sha512-orbQF7sN02N/b9QF8Xp1RBO5YkfI+AYo9VZw0H2Gh4JYWSuiDHjOPEeFPDIRyWmXbQJuiVNSB+e1pZOjPPKIyg==", "cpu": [ "x64" ], @@ -8891,9 +8930,9 @@ ] }, "node_modules/@unrs/rspack-resolver-binding-linux-x64-musl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-x64-musl/-/rspack-resolver-binding-linux-x64-musl-1.2.2.tgz", - "integrity": "sha512-cHyhAr6rlYYbon1L2Ag449YCj3p6XMfcYTP0AQX+KkQo025d1y/VFtPWvjMhuEsE2lLvtHm7GdJozj6BOMtzVg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-x64-musl/-/rspack-resolver-binding-linux-x64-musl-1.3.0.tgz", + "integrity": "sha512-kpjqjIAC9MfsjmlgmgeC8U9gZi6g/HTuCqpI7SBMjsa7/9MvBaQ6TJ7dtnsV/+DXvfJ2+L5teBBXG+XxfpvIFA==", "cpu": [ "x64" ], @@ -8904,9 +8943,9 @@ ] }, "node_modules/@unrs/rspack-resolver-binding-wasm32-wasi": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-wasm32-wasi/-/rspack-resolver-binding-wasm32-wasi-1.2.2.tgz", - "integrity": "sha512-eogDKuICghDLGc32FtP+WniG38IB1RcGOGz0G3z8406dUdjJvxfHGuGs/dSlM9YEp/v0lEqhJ4mBu6X2nL9pog==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-wasm32-wasi/-/rspack-resolver-binding-wasm32-wasi-1.3.0.tgz", + "integrity": "sha512-JAg0hY3kGsCPk7Jgh16yMTBZ6VEnoNR1DFZxiozjKwH+zSCfuDuM5S15gr50ofbwVw9drobIP2TTHdKZ15MJZQ==", "cpu": [ "wasm32" ], @@ -8920,9 +8959,9 @@ } }, "node_modules/@unrs/rspack-resolver-binding-win32-arm64-msvc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-win32-arm64-msvc/-/rspack-resolver-binding-win32-arm64-msvc-1.2.2.tgz", - "integrity": "sha512-7sWRJumhpXSi2lccX8aQpfFXHsSVASdWndLv8AmD8nDRA/5PBi8IplQVZNx2mYRx6+Bp91Z00kuVqpXO9NfCTg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-win32-arm64-msvc/-/rspack-resolver-binding-win32-arm64-msvc-1.3.0.tgz", + "integrity": "sha512-h5N83i407ntS3ndDkhT/3vC3Dj8oP0BIwMtekETNJcxk7IuWccSXifzCEhdxxu/FOX4OICGIHdHrxf5fJuAjfw==", "cpu": [ "arm64" ], @@ -8932,10 +8971,23 @@ "win32" ] }, + "node_modules/@unrs/rspack-resolver-binding-win32-ia32-msvc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-win32-ia32-msvc/-/rspack-resolver-binding-win32-ia32-msvc-1.3.0.tgz", + "integrity": "sha512-9QH7Gq3dRL8Q/D6PGS3Dwtjx9yw6kbCEu6iBkAUhFTDAuVUk2L0H/5NekRVA13AQaSc3OsEUKt60EOn/kq5Dug==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@unrs/rspack-resolver-binding-win32-x64-msvc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-win32-x64-msvc/-/rspack-resolver-binding-win32-x64-msvc-1.2.2.tgz", - "integrity": "sha512-hewo/UMGP1a7O6FG/ThcPzSJdm/WwrYDNkdGgWl6M18H6K6MSitklomWpT9MUtT5KGj++QJb06va/14QBC4pvw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-win32-x64-msvc/-/rspack-resolver-binding-win32-x64-msvc-1.3.0.tgz", + "integrity": "sha512-IYuXJCuwBOVV0H73l6auaZwtAPHjCPBJkxd4Co0yO6dSjDM5Na5OceaxhUmJLZ3z8kuEGhTYWIHH7PchGztnlg==", "cpu": [ "x64" ], @@ -11850,9 +11902,9 @@ "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" }, "node_modules/electron-to-chromium": { - "version": "1.5.123", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.123.tgz", - "integrity": "sha512-refir3NlutEZqlKaBLK0tzlVLe5P2wDKS7UQt/3SpibizgsRAPOsqQC3ffw1nlv3ze5gjRQZYHoPymgVZkplFA==" + "version": "1.5.124", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.124.tgz", + "integrity": "sha512-riELkpDUqBi00gqreV3RIGoowxGrfueEKBd6zPdOk/I8lvuFpBGNkYoHof3zUHbiTBsIU8oxdIIL/WNrAG1/7A==" }, "node_modules/embla-carousel": { "version": "8.0.0-rc15", @@ -12267,12 +12319,12 @@ } }, "node_modules/eslint-config-next": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.25.tgz", - "integrity": "sha512-BwuRQJeqw4xP/fkul/WWjivwbaLs8AjvuMzQCC+nJI65ZVhnVolWs6tk5VSD92xPHu96gSTahfaSkQjIRtJ3ag==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.26.tgz", + "integrity": "sha512-KZNh1xvWG1ZDFD2f2WkvvnMpp7Sjsl6xJXCsvfEe8GH1FLXn6GtXo7lY9S8xDcn6oBWmKA0hSrlrp1DNQ9QDnQ==", "dev": true, "dependencies": { - "@next/eslint-plugin-next": "14.2.25", + "@next/eslint-plugin-next": "14.2.26", "@rushstack/eslint-patch": "^1.3.3", "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", @@ -15986,11 +16038,11 @@ } }, "node_modules/next": { - "version": "14.2.25", - "resolved": "https://registry.npmjs.org/next/-/next-14.2.25.tgz", - "integrity": "sha512-N5M7xMc4wSb4IkPvEV5X2BRRXUmhVHNyaXwEM86+voXthSZz8ZiRyQW4p9mwAoAPIm6OzuVZtn7idgEJeAJN3Q==", + "version": "14.2.26", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.26.tgz", + "integrity": "sha512-b81XSLihMwCfwiUVRRja3LphLo4uBBMZEzBBWMaISbKTwOmq3wPknIETy/8000tr7Gq4WmbuFYPS7jOYIf+ZJw==", "dependencies": { - "@next/env": "14.2.25", + "@next/env": "14.2.26", "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", @@ -16005,15 +16057,15 @@ "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "14.2.25", - "@next/swc-darwin-x64": "14.2.25", - "@next/swc-linux-arm64-gnu": "14.2.25", - "@next/swc-linux-arm64-musl": "14.2.25", - "@next/swc-linux-x64-gnu": "14.2.25", - "@next/swc-linux-x64-musl": "14.2.25", - "@next/swc-win32-arm64-msvc": "14.2.25", - "@next/swc-win32-ia32-msvc": "14.2.25", - "@next/swc-win32-x64-msvc": "14.2.25" + "@next/swc-darwin-arm64": "14.2.26", + "@next/swc-darwin-x64": "14.2.26", + "@next/swc-linux-arm64-gnu": "14.2.26", + "@next/swc-linux-arm64-musl": "14.2.26", + "@next/swc-linux-x64-gnu": "14.2.26", + "@next/swc-linux-x64-musl": "14.2.26", + "@next/swc-win32-arm64-msvc": "14.2.26", + "@next/swc-win32-ia32-msvc": "14.2.26", + "@next/swc-win32-x64-msvc": "14.2.26" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", @@ -16470,9 +16522,9 @@ } }, "node_modules/opub-ui": { - "version": "0.3.70", - "resolved": "https://registry.npmjs.org/opub-ui/-/opub-ui-0.3.70.tgz", - "integrity": "sha512-2gBIaktFrVKHPod9UdfbN4AgY5qHgaRcp0FLoc1O85ZhQbSSn1Q3komIk2NZV7z8JA2zuy/1HkAAraTsCJ6eTw==", + "version": "0.3.76", + "resolved": "https://registry.npmjs.org/opub-ui/-/opub-ui-0.3.76.tgz", + "integrity": "sha512-gWfYK/ojNlhRRF0z6bh1EPweS8xPNlfRm61k6eUunekVzUdx84Q19Ck7XsCzpw04HNvgalrveWWRKRu9DYBDJw==", "dependencies": { "@ariakit/react": "^0.3.14", "@hookform/resolvers": "^3.3.4", @@ -18904,25 +18956,29 @@ } }, "node_modules/rspack-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/rspack-resolver/-/rspack-resolver-1.2.2.tgz", - "integrity": "sha512-Fwc19jMBA3g+fxDJH2B4WxwZjE0VaaOL7OX/A4Wn5Zv7bOD/vyPZhzXfaO73Xc2GAlfi96g5fGUa378WbIGfFw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rspack-resolver/-/rspack-resolver-1.3.0.tgz", + "integrity": "sha512-az/PLDwa1xijNv4bAFBS8mtqqJC1Y3lVyFag4cuyIUOHq/ft5kSZlHbqYaLZLpsQtPWv4ZGDo5ycySKJzUvU/A==", "dev": true, "funding": { "url": "https://github.com/sponsors/JounQin" }, "optionalDependencies": { - "@unrs/rspack-resolver-binding-darwin-arm64": "1.2.2", - "@unrs/rspack-resolver-binding-darwin-x64": "1.2.2", - "@unrs/rspack-resolver-binding-freebsd-x64": "1.2.2", - "@unrs/rspack-resolver-binding-linux-arm-gnueabihf": "1.2.2", - "@unrs/rspack-resolver-binding-linux-arm64-gnu": "1.2.2", - "@unrs/rspack-resolver-binding-linux-arm64-musl": "1.2.2", - "@unrs/rspack-resolver-binding-linux-x64-gnu": "1.2.2", - "@unrs/rspack-resolver-binding-linux-x64-musl": "1.2.2", - "@unrs/rspack-resolver-binding-wasm32-wasi": "1.2.2", - "@unrs/rspack-resolver-binding-win32-arm64-msvc": "1.2.2", - "@unrs/rspack-resolver-binding-win32-x64-msvc": "1.2.2" + "@unrs/rspack-resolver-binding-darwin-arm64": "1.3.0", + "@unrs/rspack-resolver-binding-darwin-x64": "1.3.0", + "@unrs/rspack-resolver-binding-freebsd-x64": "1.3.0", + "@unrs/rspack-resolver-binding-linux-arm-gnueabihf": "1.3.0", + "@unrs/rspack-resolver-binding-linux-arm-musleabihf": "1.3.0", + "@unrs/rspack-resolver-binding-linux-arm64-gnu": "1.3.0", + "@unrs/rspack-resolver-binding-linux-arm64-musl": "1.3.0", + "@unrs/rspack-resolver-binding-linux-ppc64-gnu": "1.3.0", + "@unrs/rspack-resolver-binding-linux-s390x-gnu": "1.3.0", + "@unrs/rspack-resolver-binding-linux-x64-gnu": "1.3.0", + "@unrs/rspack-resolver-binding-linux-x64-musl": "1.3.0", + "@unrs/rspack-resolver-binding-wasm32-wasi": "1.3.0", + "@unrs/rspack-resolver-binding-win32-arm64-msvc": "1.3.0", + "@unrs/rspack-resolver-binding-win32-ia32-msvc": "1.3.0", + "@unrs/rspack-resolver-binding-win32-x64-msvc": "1.3.0" } }, "node_modules/run-applescript": { @@ -19068,9 +19124,9 @@ } }, "node_modules/sass/node_modules/immutable": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", - "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==" + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.1.tgz", + "integrity": "sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==" }, "node_modules/satori": { "version": "0.10.14", @@ -19659,12 +19715,12 @@ } }, "node_modules/storybook": { - "version": "8.6.8", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.6.8.tgz", - "integrity": "sha512-0Ze7QC0Hqx+ulms/FiQ7PNyaBgmaoxqxLOi8PQc5sOepO1+Ea8nssQGmOHS2QIX1ybb/GW56Fa5eyj+PJgsYDQ==", + "version": "8.6.9", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.6.9.tgz", + "integrity": "sha512-Iw4+R4V3yX7MhXJaLBAT4oLtZ+SaTzX8KvUNZiQzvdD+TrFKVA3QKV8gvWjstGyU2dd+afE1Ph6EG5Xa2Az2CA==", "peer": true, "dependencies": { - "@storybook/core": "8.6.8" + "@storybook/core": "8.6.9" }, "bin": { "getstorybook": "bin/index.cjs", diff --git a/package.json b/package.json index 68f5984d..e5089b9c 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "next-auth": "^4.24.7", "next-intl": "^3.4.0", "next-usequerystate": "^1.17.2", - "opub-ui": "0.3.70", + "opub-ui": "0.3.76", "react": "^18.2.0", "react-aria": "3.22.0", "react-dom": "^18.2.0", diff --git a/styles/tokens/_variables.css b/styles/tokens/_variables.css index d9927eb3..e48d184f 100644 --- a/styles/tokens/_variables.css +++ b/styles/tokens/_variables.css @@ -85,8 +85,10 @@ --base-amber-solid-12: #4e2009; --base-pure-white: #ffffff; --base-pure-black: #000000; - --blue-primary-color: #22699D; - --orange-secondary-color:#FDB557; + --blue-primary-color: #1F5F8D; + --orange-secondary-color: #fdb557; + --grey-extralight: #eeeeee; + --white: #ffffff; --text-default: var(--base-gray-slate-solid-12); --text-medium: var(--base-gray-slate-solid-11); --text-subdued: #3e4346; @@ -306,32 +308,39 @@ --border-width-2: var(--space-05); --border-width-4: var(--space-1); - --shadow-modal: 0px 26px 80px 0px rgba(0, 0, 0, 0.2), - 0px 0px 1px 0px rgba(0, 0, 0, 0.2); - --shadow-layer: 0px 31px 41px 0px rgba(32, 42, 53, 0.2), + --shadow-modal: + 0px 26px 80px 0px rgba(0, 0, 0, 0.2), 0px 0px 1px 0px rgba(0, 0, 0, 0.2); + --shadow-layer: + 0px 31px 41px 0px rgba(32, 42, 53, 0.2), 0px 2px 16px 0px rgba(32, 42, 54, 0.08); --shadow-inset-basic: inset -1px 0px 0px 0px rgba(228, 229, 231, 1); --shadow-inset-button: inset 0px -1px 0px 0px rgba(0, 0, 0, 0.2); --shadow-button-pressed: inset 0px 1px 0px 0px rgba(0, 0, 0, 0.15); --shadow-button-default: 0px 1px 0px 0px rgba(0, 0, 0, 0.05); - --shadow-basic-deep: 0px 2px 16px 0px rgba(33, 43, 54, 0.08), + --shadow-basic-deep: + 0px 2px 16px 0px rgba(33, 43, 54, 0.08), 0px 0px 0px 1px rgba(6, 44, 82, 0.1); --shadow-basic-faint: 0px 1px 0px 0px rgba(22, 29, 37, 0.05); --shadow-basic-transparent: 0px 0px 0px 0px rgba(0, 0, 0, 0); --shadow-basic-xs: 0px 0px 2px 0px rgba(31, 33, 36, 0.24); --shadow-basic-sm: 0px 1px 1px 0px rgba(31, 33, 36, 0.1); - --shadow-basic-md: 0px 1px 6px 0px rgba(31, 33, 36, 0.05), + --shadow-basic-md: + 0px 1px 6px 0px rgba(31, 33, 36, 0.05), 0px 2px 4px 0px rgba(31, 33, 36, 0.1); - --shadow-basic-lg: 0px 2px 6px 0px rgba(31, 33, 36, 0.05), + --shadow-basic-lg: + 0px 2px 6px 0px rgba(31, 33, 36, 0.05), 0px 4px 12px 0px rgba(31, 33, 36, 0.2); - --shadow-basic-xl: 0px 12px 18px -2px rgba(31, 33, 36, 0.15), + --shadow-basic-xl: + 0px 12px 18px -2px rgba(31, 33, 36, 0.15), 0px 4px 18px -2px rgba(31, 33, 36, 0.08); - --shadow-basic-2xl: 0px 32px 56px -2px rgba(31, 33, 36, 0.16), + --shadow-basic-2xl: + 0px 32px 56px -2px rgba(31, 33, 36, 0.16), 0px 32px 32px 0px rgba(31, 33, 36, 0.15); - --shadow-element-popover: 0px 8px 20px -4px rgba(23, 24, 24, 0.12), + --shadow-element-popover: + 0px 8px 20px -4px rgba(23, 24, 24, 0.12), 0px 3px 6px -3px rgba(23, 24, 24, 0.08); - --shadow-element-card: 0px 1px 2px 0px rgba(0, 0, 0, 0.15), - 0px 0px 5px 0px rgba(23, 24, 24, 0.05); + --shadow-element-card: + 0px 1px 2px 0px rgba(0, 0, 0, 0.15), 0px 0px 5px 0px rgba(23, 24, 24, 0.05); --shadow-element-topnav: 0px 2px 2px -1px rgba(0, 0, 0, 0.15); --shadow-element-focus: 0px 0px 0px 2px rgba(0, 145, 255, 1); diff --git a/styles/tokens/tailwind/color.js b/styles/tokens/tailwind/color.js index 816fb0fd..3f356acb 100644 --- a/styles/tokens/tailwind/color.js +++ b/styles/tokens/tailwind/color.js @@ -274,5 +274,7 @@ module.exports = { transparent: '#FFFFFF00', borderOnBGSubdued: 'var(--base-gray-slate-solid-11)', primaryBlue: 'var(--blue-primary-color)', - secondaryOrange: 'var(--orange-secondary-color)' + secondaryOrange: 'var(--orange-secondary-color)', + greyExtralight: 'var(--grey-extralight)', + white: 'var(--white)' };