diff --git a/.gitignore b/.gitignore index f630163e3..c855e4273 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,6 @@ dist-ssr storybook-static/ # Sentry Config File .env.sentry-build-plugin + +.next +next-env.d.ts \ No newline at end of file diff --git a/.storybook/main.ts b/.storybook/main.ts index 568ce2f71..163cf1f77 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -1,16 +1,16 @@ -import type { StorybookConfig } from '@storybook/react-vite'; +import type { StorybookConfig } from '@storybook/nextjs-vite'; +import { vanillaExtractPlugin } from '@vanilla-extract/vite-plugin'; const config: StorybookConfig = { stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'], - addons: [ - '@storybook/addon-onboarding', - '@storybook/addon-essentials', - '@chromatic-com/storybook', - '@storybook/addon-interactions', - ], - framework: { - name: '@storybook/react-vite', - options: {}, + addons: ['@chromatic-com/storybook', '@storybook/addon-a11y', '@storybook/addon-docs'], + framework: '@storybook/nextjs-vite', + staticDirs: ['../public'], + async viteFinal(config) { + return { + ...config, + plugins: [...(config.plugins ?? []), ...vanillaExtractPlugin({ identifiers: 'debug' })], + }; }, }; export default config; diff --git a/.storybook/next-navigation-mock.ts b/.storybook/next-navigation-mock.ts new file mode 100644 index 000000000..17464149b --- /dev/null +++ b/.storybook/next-navigation-mock.ts @@ -0,0 +1,62 @@ +const noop = () => {}; + +const mockRouter = { + push: noop, + replace: noop, + refresh: noop, + back: noop, + forward: noop, + prefetch: noop, +}; + +export function useRouter() { + return mockRouter; +} + +export function usePathname(): string { + return '/'; +} + +export function useSearchParams(): ReadonlyURLSearchParams | null { + return typeof window !== 'undefined' ? new ReadonlyURLSearchParams(window.location.search) : null; +} + +class ReadonlyURLSearchParams { + private params: URLSearchParams; + + constructor(init?: string | URLSearchParams) { + this.params = new URLSearchParams(init); + } + + get(name: string): string | null { + return this.params.get(name); + } + + getAll(name: string): string[] { + return this.params.getAll(name); + } + + has(name: string): boolean { + return this.params.has(name); + } + + keys(): IterableIterator { + return this.params.keys(); + } + + values(): IterableIterator { + return this.params.values(); + } + + entries(): IterableIterator<[string, string]> { + return this.params.entries(); + } + + forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void): void { + this.params.forEach(callbackfn); + } + + toString(): string { + return this.params.toString(); + } +} diff --git a/.storybook/preview.tsx b/.storybook/preview.tsx index 705358396..a90654d5c 100644 --- a/.storybook/preview.tsx +++ b/.storybook/preview.tsx @@ -1,4 +1,4 @@ -import type { Preview } from '@storybook/react'; +import type { Preview } from '@storybook/nextjs-vite'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import React from 'react'; import ModalProvider from '../src/common/components/Modal/ModalProvider'; @@ -7,6 +7,9 @@ import '../src/shared/styles/reset.css'; const preview: Preview = { parameters: { + nextjs: { + appDirectory: true, + }, controls: { matchers: { color: /(background|color)$/i, diff --git a/custom.d.ts b/custom.d.ts index 5ccd90a3c..c704739bc 100644 --- a/custom.d.ts +++ b/custom.d.ts @@ -4,3 +4,16 @@ declare module '*.svg?react' { const src: string; export default src; } + +/** vanilla-extract *.css.ts 모듈이 Next.js PagesPageConfig 검사에 걸리지 않도록 default 보강 */ +declare module '*.css' { + import type { ComponentType } from 'react'; + const styles: { default: ComponentType; [key: string]: string | ComponentType }; + export = styles; +} + +declare module '*.css.js' { + import type { ComponentType } from 'react'; + const styles: { default: ComponentType; [key: string]: string | ComponentType }; + export = styles; +} diff --git a/index.html b/index.html deleted file mode 100644 index 23666a53d..000000000 --- a/index.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - da-sh.kr - - - - - -
- - - diff --git a/next.config.mjs b/next.config.mjs new file mode 100644 index 000000000..485ac9bd7 --- /dev/null +++ b/next.config.mjs @@ -0,0 +1,26 @@ +import { createVanillaExtractPlugin } from '@vanilla-extract/next-plugin'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +const withVanillaExtract = createVanillaExtractPlugin({ + identifiers: 'debug', // 기존 Vite 설정과 동일 (short | debug | custom) +}); + +/** @type {import('next').NextConfig} */ +const nextConfig = { + // output: 'export', // Single-Page Application (SPA) 출력. + distDir: './dist', // 빌드 출력 디렉터리를 `./dist/`로 변경합니다. + basePath: process.env.NEXT_PUBLIC_BASE_PATH || '', + // 상위 폴더 lockfile과 구분해 이 프로젝트를 루트로 사용 (경고 제거) + outputFileTracingRoot: __dirname, + // src/pages는 SPA(react-router) 컴포넌트이므로 Pages Router로 검증하지 않도록 비활성화 + typedRoutes: false, + eslint: { + // 마이그레이션 단계에서 기존 a11y/훅 규칙으로 빌드 실패하지 않도록 무시 (추후 규칙 수정 후 제거 권장) + ignoreDuringBuilds: true, + }, +}; + +export default withVanillaExtract(nextConfig); diff --git a/package.json b/package.json index 5dcd006b3..8a79bbddc 100644 --- a/package.json +++ b/package.json @@ -4,13 +4,12 @@ "version": "0.0.0", "type": "module", "scripts": { - "dev": "vite --host", - "build": "tsc -b && vite build", + "dev": "next dev", + "build": "next build", + "start": "next start -p 8080", "lint": "eslint .", - "preview": "vite preview", "storybook": "storybook dev -p 6006", "build-storybook": "storybook build", - "analyze": "vite-bundle-visualizer", "svgr": "npx @svgr/cli -d src/shared/assets/svg --no-prettier --ignore-existing --typescript --no-dimensions --no-index --jsx-runtime automatic public/svg" }, "dependencies": { @@ -24,11 +23,10 @@ "@vanilla-extract/css": "^1.17.0", "@vanilla-extract/recipes": "^0.5.5", "@vanilla-extract/sprinkles": "^1.6.3", - "@vanilla-extract/vite-plugin": "^4.0.19", - "@vitejs/plugin-react": "^4.3.4", "axios": "^1.7.9", "clsx": "^2.1.1", "motion": "^12.23.12", + "next": "15.5.7", "react": "^18.3.1", "react-calendar": "^5.1.0", "react-dom": "^18.3.1", @@ -36,21 +34,19 @@ "react-hook-form": "^7.56.1", "react-hot-toast": "^2.5.1", "react-image-file-resizer": "^0.4.8", - "react-router-dom": "^7.1.1", "swiper": "^11.2.1", - "vite-tsconfig-paths": "^5.1.4", "zod": "^3.24.3", "zustand": "^5.0.7" }, "devDependencies": { - "@chromatic-com/storybook": "^3.2.3", + "@chromatic-com/storybook": "^5.0.0", "@eslint/js": "^9.17.0", - "@storybook/addon-essentials": "^8.4.7", - "@storybook/addon-interactions": "^8.4.7", - "@storybook/addon-onboarding": "^8.4.7", + "@storybook/addon-a11y": "^10.2.7", + "@storybook/addon-docs": "^10.2.7", "@storybook/blocks": "^8.4.7", - "@storybook/react": "^8.4.7", - "@storybook/react-vite": "^8.4.7", + "@storybook/nextjs-vite": "^10.2.7", + "@storybook/react": "^10.2.7", + "@storybook/react-vite": "^10.2.7", "@storybook/test": "^8.4.7", "@storybook/testing-library": "^0.2.2", "@testing-library/dom": "^10.4.0", @@ -61,7 +57,9 @@ "@types/swiper": "^6.0.0", "@typescript-eslint/eslint-plugin": "^8.19.1", "@typescript-eslint/parser": "^8.19.1", - "@vitejs/plugin-react-swc": "^3.5.0", + "@vanilla-extract/next-plugin": "^2.4.10", + "@vanilla-extract/vite-plugin": "^5.1.4", + "@vitest/coverage-v8": "^4.0.18", "chromatic": "^11.28.0", "eslint": "^9.17.0", "eslint-config-prettier": "^9.1.0", @@ -74,13 +72,11 @@ "globals": "^15.14.0", "install": "^0.13.0", "msw": "^2.10.4", - "storybook": "^8.4.7", + "storybook": "^10.2.7", "typescript": "~5.6.3", "typescript-eslint": "^8.28.0", - "vite": "^6.0.5", - "vite-bundle-visualizer": "^1.2.1", - "vite-plugin-svgr": "^4.3.0", - "vite-tsconfig-paths": "^5.1.4" + "vite": "^7.3.1", + "vitest": "^4.0.18" }, "eslintConfig": { "extends": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d62bf94d4..14abd5295 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,55 +10,52 @@ importers: dependencies: '@hookform/resolvers': specifier: ^5.0.1 - version: 5.0.1(react-hook-form@7.56.1(react@18.3.1)) + version: 5.2.2(react-hook-form@7.71.1(react@18.3.1)) '@lukemorales/query-key-factory': specifier: ^1.3.4 - version: 1.3.4(@tanstack/query-core@5.62.15)(@tanstack/react-query@5.62.15(react@18.3.1)) + version: 1.3.4(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.20(react@18.3.1)) '@sentry/react': specifier: ^9.39.0 - version: 9.39.0(react@18.3.1) + version: 9.47.1(react@18.3.1) '@sentry/vite-plugin': specifier: ^3.6.0 - version: 3.6.0 + version: 3.6.1 '@tanstack/react-query': specifier: ^5.62.15 - version: 5.62.15(react@18.3.1) + version: 5.90.20(react@18.3.1) '@tanstack/react-query-devtools': specifier: ^5.62.15 - version: 5.62.15(@tanstack/react-query@5.62.15(react@18.3.1))(react@18.3.1) + version: 5.91.3(@tanstack/react-query@5.90.20(react@18.3.1))(react@18.3.1) '@types/react-slick': specifier: ^0.23.13 version: 0.23.13 '@vanilla-extract/css': specifier: ^1.17.0 - version: 1.17.0 + version: 1.18.0 '@vanilla-extract/recipes': specifier: ^0.5.5 - version: 0.5.5(@vanilla-extract/css@1.17.0) + version: 0.5.7(@vanilla-extract/css@1.18.0) '@vanilla-extract/sprinkles': specifier: ^1.6.3 - version: 1.6.3(@vanilla-extract/css@1.17.0) - '@vanilla-extract/vite-plugin': - specifier: ^4.0.19 - version: 4.0.19(@types/node@22.10.5)(vite@6.0.7(@types/node@22.10.5)) - '@vitejs/plugin-react': - specifier: ^4.3.4 - version: 4.3.4(vite@6.0.7(@types/node@22.10.5)) + version: 1.6.5(@vanilla-extract/css@1.18.0) axios: specifier: ^1.7.9 - version: 1.7.9 + version: 1.13.4 clsx: specifier: ^2.1.1 version: 2.1.1 motion: specifier: ^12.23.12 - version: 12.23.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 12.29.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: + specifier: 15.5.7 + version: 15.5.7(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 react-calendar: specifier: ^5.1.0 - version: 5.1.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 5.1.0(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-dom: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) @@ -67,725 +64,436 @@ importers: version: 5.0.0(react@18.3.1) react-hook-form: specifier: ^7.56.1 - version: 7.56.1(react@18.3.1) + version: 7.71.1(react@18.3.1) react-hot-toast: specifier: ^2.5.1 - version: 2.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-image-file-resizer: specifier: ^0.4.8 version: 0.4.8 - react-router-dom: - specifier: ^7.1.1 - version: 7.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) swiper: specifier: ^11.2.1 - version: 11.2.1 - vite-tsconfig-paths: - specifier: ^5.1.4 - version: 5.1.4(typescript@5.6.3)(vite@6.0.7(@types/node@22.10.5)) + version: 11.2.10 zod: specifier: ^3.24.3 - version: 3.24.3 + version: 3.25.76 zustand: specifier: ^5.0.7 - version: 5.0.7(@types/react@18.3.18)(react@18.3.1) + version: 5.0.11(@types/react@18.3.27)(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1)) devDependencies: '@chromatic-com/storybook': - specifier: ^3.2.3 - version: 3.2.3(react@18.3.1)(storybook@8.4.7(prettier@3.4.2)) + specifier: ^5.0.0 + version: 5.0.0(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@eslint/js': specifier: ^9.17.0 - version: 9.17.0 - '@storybook/addon-essentials': - specifier: ^8.4.7 - version: 8.4.7(@types/react@18.3.18)(storybook@8.4.7(prettier@3.4.2)) - '@storybook/addon-interactions': - specifier: ^8.4.7 - version: 8.4.7(storybook@8.4.7(prettier@3.4.2)) - '@storybook/addon-onboarding': - specifier: ^8.4.7 - version: 8.4.7(react@18.3.1)(storybook@8.4.7(prettier@3.4.2)) + version: 9.39.2 + '@storybook/addon-a11y': + specifier: ^10.2.7 + version: 10.2.7(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@storybook/addon-docs': + specifier: ^10.2.7 + version: 10.2.7(@types/react@18.3.27)(esbuild@0.27.2)(rollup@4.57.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(webpack@5.104.1(esbuild@0.27.2)) '@storybook/blocks': specifier: ^8.4.7 - version: 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2)) + version: 8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@storybook/nextjs-vite': + specifier: ^10.2.7 + version: 10.2.7(@babel/core@7.29.0)(esbuild@0.27.2)(next@15.5.7(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.57.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(webpack@5.104.1(esbuild@0.27.2)) '@storybook/react': - specifier: ^8.4.7 - version: 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.6.3) + specifier: ^10.2.7 + version: 10.2.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) '@storybook/react-vite': - specifier: ^8.4.7 - version: 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.30.0)(storybook@8.4.7(prettier@3.4.2))(typescript@5.6.3)(vite@6.0.7(@types/node@22.10.5)) + specifier: ^10.2.7 + version: 10.2.7(esbuild@0.27.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.57.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(webpack@5.104.1(esbuild@0.27.2)) '@storybook/test': specifier: ^8.4.7 - version: 8.4.7(storybook@8.4.7(prettier@3.4.2)) + version: 8.6.15(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@storybook/testing-library': specifier: ^0.2.2 version: 0.2.2 '@testing-library/dom': specifier: ^10.4.0 - version: 10.4.0 + version: 10.4.1 '@testing-library/user-event': specifier: ^14.6.1 - version: 14.6.1(@testing-library/dom@10.4.0) + version: 14.6.1(@testing-library/dom@10.4.1) '@trivago/prettier-plugin-sort-imports': specifier: ^5.2.1 - version: 5.2.1(prettier@3.4.2) + version: 5.2.2(prettier@3.8.1) '@types/react': specifier: ^18.3.18 - version: 18.3.18 + version: 18.3.27 '@types/react-dom': specifier: ^18.3.5 - version: 18.3.5(@types/react@18.3.18) + version: 18.3.7(@types/react@18.3.27) '@types/swiper': specifier: ^6.0.0 version: 6.0.0 '@typescript-eslint/eslint-plugin': specifier: ^8.19.1 - version: 8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.17.0)(typescript@5.6.3))(eslint@9.17.0)(typescript@5.6.3) + version: 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.6.3))(eslint@9.39.2)(typescript@5.6.3) '@typescript-eslint/parser': specifier: ^8.19.1 - version: 8.19.1(eslint@9.17.0)(typescript@5.6.3) - '@vitejs/plugin-react-swc': - specifier: ^3.5.0 - version: 3.7.2(vite@6.0.7(@types/node@22.10.5)) + version: 8.54.0(eslint@9.39.2)(typescript@5.6.3) + '@vanilla-extract/next-plugin': + specifier: ^2.4.10 + version: 2.4.17(next@15.5.7(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(webpack@5.104.1(esbuild@0.27.2)) + '@vanilla-extract/vite-plugin': + specifier: ^5.1.4 + version: 5.1.4(@types/node@25.2.0)(terser@5.46.0)(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0)) + '@vitest/coverage-v8': + specifier: ^4.0.18 + version: 4.0.18(@vitest/browser@4.0.18(msw@2.12.7(@types/node@25.2.0)(typescript@5.6.3))(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(vitest@4.0.18))(vitest@4.0.18) chromatic: specifier: ^11.28.0 - version: 11.28.0 + version: 11.29.0 eslint: specifier: ^9.17.0 - version: 9.17.0 + version: 9.39.2 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@9.17.0) + version: 9.1.2(eslint@9.39.2) eslint-plugin-jsx-a11y: specifier: ^6.10.2 - version: 6.10.2(eslint@9.17.0) + version: 6.10.2(eslint@9.39.2) eslint-plugin-prettier: specifier: ^5.2.1 - version: 5.2.1(eslint-config-prettier@9.1.0(eslint@9.17.0))(eslint@9.17.0)(prettier@3.4.2) + version: 5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@9.1.2(eslint@9.39.2))(eslint@9.39.2)(prettier@3.8.1) eslint-plugin-react: specifier: ^7.37.3 - version: 7.37.3(eslint@9.17.0) + version: 7.37.5(eslint@9.39.2) eslint-plugin-react-hooks: specifier: ^5.0.0 - version: 5.1.0(eslint@9.17.0) + version: 5.2.0(eslint@9.39.2) eslint-plugin-react-refresh: specifier: ^0.4.16 - version: 0.4.16(eslint@9.17.0) + version: 0.4.26(eslint@9.39.2) eslint-plugin-storybook: specifier: ^0.11.2 - version: 0.11.2(eslint@9.17.0)(typescript@5.6.3) + version: 0.11.6(eslint@9.39.2)(typescript@5.6.3) globals: specifier: ^15.14.0 - version: 15.14.0 + version: 15.15.0 install: specifier: ^0.13.0 version: 0.13.0 msw: specifier: ^2.10.4 - version: 2.10.4(@types/node@22.10.5)(typescript@5.6.3) + version: 2.12.7(@types/node@25.2.0)(typescript@5.6.3) storybook: - specifier: ^8.4.7 - version: 8.4.7(prettier@3.4.2) + specifier: ^10.2.7 + version: 10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) typescript: specifier: ~5.6.3 version: 5.6.3 typescript-eslint: specifier: ^8.28.0 - version: 8.28.0(eslint@9.17.0)(typescript@5.6.3) + version: 8.54.0(eslint@9.39.2)(typescript@5.6.3) vite: - specifier: ^6.0.5 - version: 6.0.7(@types/node@22.10.5) - vite-bundle-visualizer: - specifier: ^1.2.1 - version: 1.2.1(rollup@4.30.0) - vite-plugin-svgr: - specifier: ^4.3.0 - version: 4.3.0(rollup@4.30.0)(typescript@5.6.3)(vite@6.0.7(@types/node@22.10.5)) + specifier: ^7.3.1 + version: 7.3.1(@types/node@25.2.0)(terser@5.46.0) + vitest: + specifier: ^4.0.18 + version: 4.0.18(@types/node@25.2.0)(@vitest/browser-playwright@4.0.18)(msw@2.12.7(@types/node@25.2.0)(typescript@5.6.3))(terser@5.46.0) packages: - '@adobe/css-tools@4.4.1': - resolution: {integrity: sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==} + '@adobe/css-tools@4.4.4': + resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} - '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} + engines: {node: '>=6.9.0'} - '@babel/code-frame@7.26.2': - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + '@babel/compat-data@7.29.0': + resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==} engines: {node: '>=6.9.0'} - '@babel/compat-data@7.26.3': - resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==} + '@babel/core@7.29.0': + resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==} engines: {node: '>=6.9.0'} - '@babel/core@7.26.0': - resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} + '@babel/generator@7.29.0': + resolution: {integrity: sha512-vSH118/wwM/pLR38g/Sgk05sNtro6TlTJKuiMXDaZqPUfjTFcudpCOt00IhOfj+1BFAX+UFAlzCU+6WXr3GLFQ==} engines: {node: '>=6.9.0'} - '@babel/generator@7.26.3': - resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} + '@babel/helper-compilation-targets@7.28.6': + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.9': - resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} + '@babel/helper-globals@7.28.0': + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.25.9': - resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + '@babel/helper-module-imports@7.28.6': + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.26.0': - resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + '@babel/helper-module-transforms@7.28.6': + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-plugin-utils@7.25.9': - resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} + '@babel/helper-plugin-utils@7.28.6': + resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.25.9': - resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.25.9': - resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.25.9': - resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.26.0': - resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} + '@babel/helpers@7.28.6': + resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.26.3': - resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} + '@babel/parser@7.29.0': + resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-syntax-typescript@7.25.9': - resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-transform-react-jsx-self@7.25.9': - resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} + '@babel/plugin-syntax-typescript@7.28.6': + resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.25.9': - resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} + '@babel/runtime@7.28.6': + resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/runtime@7.26.0': - resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + '@babel/template@7.28.6': + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} - '@babel/template@7.25.9': - resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + '@babel/traverse@7.29.0': + resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.26.4': - resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==} + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} - '@babel/types@7.26.3': - resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} - engines: {node: '>=6.9.0'} - - '@bundled-es-modules/cookie@2.0.1': - resolution: {integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==} - - '@bundled-es-modules/statuses@1.0.1': - resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} - - '@bundled-es-modules/tough-cookie@0.1.6': - resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} + '@bcoe/v8-coverage@1.0.2': + resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} + engines: {node: '>=18'} - '@chromatic-com/storybook@3.2.3': - resolution: {integrity: sha512-3+hfANx79kIjP1qrOSLxpoAXOiYUA0S7A0WI0A24kASrv7USFNNW8etR5TjUilMb0LmqKUn3wDwUK2h6aceQ9g==} - engines: {node: '>=16.0.0', yarn: '>=1.22.18'} + '@chromatic-com/storybook@5.0.0': + resolution: {integrity: sha512-8wUsqL8kg6R5ue8XNE7Jv/iD1SuE4+6EXMIGIuE+T2loBITEACLfC3V8W44NJviCLusZRMWbzICddz0nU0bFaw==} + engines: {node: '>=20.0.0', yarn: '>=1.22.18'} peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + storybook: ^0.0.0-0 || ^10.1.0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0 + + '@emnapi/runtime@1.8.1': + resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} '@emotion/hash@0.9.2': resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} - '@esbuild/aix-ppc64@0.21.5': - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - - '@esbuild/aix-ppc64@0.23.1': - resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + '@esbuild/aix-ppc64@0.27.2': + resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.24.2': - resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - - '@esbuild/android-arm64@0.21.5': - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.23.1': - resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - - '@esbuild/android-arm64@0.24.2': - resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + '@esbuild/android-arm64@0.27.2': + resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.21.5': - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.23.1': - resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - - '@esbuild/android-arm@0.24.2': - resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + '@esbuild/android-arm@0.27.2': + resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.21.5': - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - - '@esbuild/android-x64@0.23.1': - resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + '@esbuild/android-x64@0.27.2': + resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/android-x64@0.24.2': - resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + '@esbuild/darwin-arm64@0.27.2': + resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} engines: {node: '>=18'} - cpu: [x64] - os: [android] - - '@esbuild/darwin-arm64@0.21.5': - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.23.1': - resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-arm64@0.24.2': - resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - - '@esbuild/darwin-x64@0.21.5': - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - - '@esbuild/darwin-x64@0.23.1': - resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + '@esbuild/darwin-x64@0.27.2': + resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.24.2': - resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - - '@esbuild/freebsd-arm64@0.21.5': - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.23.1': - resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - - '@esbuild/freebsd-arm64@0.24.2': - resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + '@esbuild/freebsd-arm64@0.27.2': + resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.21.5': - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.23.1': - resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - - '@esbuild/freebsd-x64@0.24.2': - resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + '@esbuild/freebsd-x64@0.27.2': + resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.21.5': - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm64@0.23.1': - resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + '@esbuild/linux-arm64@0.27.2': + resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.24.2': - resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + '@esbuild/linux-arm@0.27.2': + resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - - '@esbuild/linux-arm@0.21.5': - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.23.1': - resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + '@esbuild/linux-ia32@0.27.2': + resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-arm@0.24.2': - resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - - '@esbuild/linux-ia32@0.21.5': - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.23.1': - resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-ia32@0.24.2': - resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - - '@esbuild/linux-loong64@0.21.5': - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-loong64@0.23.1': - resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + '@esbuild/linux-loong64@0.27.2': + resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.24.2': - resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - - '@esbuild/linux-mips64el@0.21.5': - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.23.1': - resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - - '@esbuild/linux-mips64el@0.24.2': - resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + '@esbuild/linux-mips64el@0.27.2': + resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.21.5': - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-ppc64@0.23.1': - resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + '@esbuild/linux-ppc64@0.27.2': + resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.24.2': - resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + '@esbuild/linux-riscv64@0.27.2': + resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - - '@esbuild/linux-riscv64@0.21.5': - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.23.1': - resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + '@esbuild/linux-s390x@0.27.2': + resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-riscv64@0.24.2': - resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - - '@esbuild/linux-s390x@0.21.5': - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.23.1': - resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-s390x@0.24.2': - resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - - '@esbuild/linux-x64@0.21.5': - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.23.1': - resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - - '@esbuild/linux-x64@0.24.2': - resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + '@esbuild/linux-x64@0.27.2': + resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.24.2': - resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + '@esbuild/netbsd-arm64@0.27.2': + resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.21.5': - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.23.1': - resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - - '@esbuild/netbsd-x64@0.24.2': - resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + '@esbuild/netbsd-x64@0.27.2': + resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.23.1': - resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + '@esbuild/openbsd-arm64@0.27.2': + resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.24.2': - resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + '@esbuild/openbsd-x64@0.27.2': + resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.21.5': - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.23.1': - resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + '@esbuild/openharmony-arm64@0.27.2': + resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/openbsd-x64@0.24.2': - resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - - '@esbuild/sunos-x64@0.21.5': - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - - '@esbuild/sunos-x64@0.23.1': - resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] + cpu: [arm64] + os: [openharmony] - '@esbuild/sunos-x64@0.24.2': - resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + '@esbuild/sunos-x64@0.27.2': + resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.21.5': - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.23.1': - resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - - '@esbuild/win32-arm64@0.24.2': - resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + '@esbuild/win32-arm64@0.27.2': + resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.21.5': - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-ia32@0.23.1': - resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + '@esbuild/win32-ia32@0.27.2': + resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.24.2': - resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - - '@esbuild/win32-x64@0.21.5': - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.23.1': - resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - - '@esbuild/win32-x64@0.24.2': - resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + '@esbuild/win32-x64@0.27.2': + resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} engines: {node: '>=18'} cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.1': - resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.12.1': - resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.19.1': - resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} + '@eslint/config-array@0.21.1': + resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.9.1': - resolution: {integrity: sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==} + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.2.0': - resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.17.0': - resolution: {integrity: sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==} + '@eslint/eslintrc@3.3.3': + resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.5': - resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} + '@eslint/js@9.39.2': + resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.4': - resolution: {integrity: sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==} + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@hookform/resolvers@5.0.1': - resolution: {integrity: sha512-u/+Jp83luQNx9AdyW2fIPGY6Y7NG68eN2ZW8FOJYL+M0i4s49+refdJdOp/A9n9HFQtQs3HIDHQvX3ZET2o7YA==} + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@hookform/resolvers@5.2.2': + resolution: {integrity: sha512-A/IxlMLShx3KjV/HeTcTfaMxdwy690+L/ZADoeaTltLx+CVuzkeVIPuybK3jrRfw7YZnmdKsVVHAlEPIAEUNlA==} peerDependencies: react-hook-form: ^7.55.0 @@ -793,24 +501,161 @@ packages: resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.6': - resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + '@humanwhocodes/retry@0.4.3': + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.1': - resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} - engines: {node: '>=18.18'} + '@img/colour@1.0.0': + resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} + engines: {node: '>=18'} + + '@img/sharp-darwin-arm64@0.34.5': + resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.34.5': + resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.2.4': + resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.2.4': + resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.2.4': + resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.2.4': + resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} + cpu: [arm] + os: [linux] - '@inquirer/confirm@5.1.13': - resolution: {integrity: sha512-EkCtvp67ICIVVzjsquUiVSd+V5HRGOGQfsqA4E4vMWhYnB7InUL0pa0TIWt1i+OfP16Gkds8CdIu6yGZwOM1Yw==} + '@img/sharp-libvips-linux-ppc64@1.2.4': + resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} + cpu: [ppc64] + os: [linux] + + '@img/sharp-libvips-linux-riscv64@1.2.4': + resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} + cpu: [riscv64] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.2.4': + resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.2.4': + resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': + resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.2.4': + resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.34.5': + resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.34.5': + resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-ppc64@0.34.5': + resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ppc64] + os: [linux] + + '@img/sharp-linux-riscv64@0.34.5': + resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [riscv64] + os: [linux] + + '@img/sharp-linux-s390x@0.34.5': + resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.34.5': + resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.34.5': + resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.34.5': + resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.34.5': + resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-arm64@0.34.5': + resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [win32] + + '@img/sharp-win32-ia32@0.34.5': + resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.34.5': + resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + + '@inquirer/ansi@1.0.2': + resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} + engines: {node: '>=18'} + + '@inquirer/confirm@5.1.21': + resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -818,8 +663,8 @@ packages: '@types/node': optional: true - '@inquirer/core@10.1.14': - resolution: {integrity: sha512-Ma+ZpOJPewtIYl6HZHZckeX1STvDnHTCB2GVINNUlSEn2Am6LddWwfPkIGY0IUFVjUUrr/93XlBwTK6mfLjf0A==} + '@inquirer/core@10.3.2': + resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -827,12 +672,12 @@ packages: '@types/node': optional: true - '@inquirer/figures@1.0.12': - resolution: {integrity: sha512-MJttijd8rMFcKJC8NYmprWr6hD3r9Gd9qUC0XwPNwoEPWSMVJwA2MlXxF+nhZZNMY+HXsWa+o7KY2emWYIn0jQ==} + '@inquirer/figures@1.0.15': + resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} engines: {node: '>=18'} - '@inquirer/type@3.0.7': - resolution: {integrity: sha512-PfunHQcjwnju84L+ycmcMKB/pTPIngjUJvfnRhKY6FKPuYXlM4aQCb/nIdTFR6BEhMjFvngzvng/vBAJMZpLSA==} + '@inquirer/type@3.0.10': + resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -840,32 +685,45 @@ packages: '@types/node': optional: true - '@joshwooding/vite-plugin-react-docgen-typescript@0.4.2': - resolution: {integrity: sha512-feQ+ntr+8hbVudnsTUapiMN9q8T90XA1d5jn9QzY09sNoj4iD9wi0PY1vsBFTda4ZjEaxRK9S81oarR2nj7TFQ==} + '@isaacs/balanced-match@4.0.1': + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} + + '@isaacs/brace-expansion@5.0.1': + resolution: {integrity: sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==} + engines: {node: 20 || >=22} + + '@isaacs/cliui@9.0.0': + resolution: {integrity: sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==} + engines: {node: '>=18'} + + '@joshwooding/vite-plugin-react-docgen-typescript@0.6.3': + resolution: {integrity: sha512-9TGZuAX+liGkNKkwuo3FYJu7gHWT0vkBcf7GkOe7s7fmC19XwH/4u5u7sDIFrMooe558ORcmuBvBz7Ur5PlbHw==} peerDependencies: typescript: '>= 4.3.x' - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 peerDependenciesMeta: typescript: optional: true - '@jridgewell/gen-mapping@0.3.8': - resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} - engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - '@jridgewell/set-array@1.2.1': - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} + '@jridgewell/source-map@0.3.11': + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} - '@jridgewell/sourcemap-codec@1.5.0': - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@jridgewell/trace-mapping@0.3.25': - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} '@lukemorales/query-key-factory@1.3.4': resolution: {integrity: sha512-A3frRDdkmaNNQi6mxIshsDk4chRXWoXa05US8fBo4kci/H+lVmujS6QrwQLLGIkNIRFGjMqp2uKjC4XsLdydRw==} @@ -874,27 +732,72 @@ packages: '@tanstack/query-core': '>= 4.0.0' '@tanstack/react-query': '>= 4.0.0' - '@mdx-js/react@3.1.0': - resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==} + '@mdx-js/react@3.1.1': + resolution: {integrity: sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==} peerDependencies: '@types/react': '>=16' react: '>=16' - '@mswjs/interceptors@0.39.2': - resolution: {integrity: sha512-RuzCup9Ct91Y7V79xwCb146RaBRHZ7NBbrIUySumd1rpKqHL5OonaqrGIbug5hNwP/fRyxFMA6ISgw4FTtYFYg==} - engines: {node: '>=18'} + '@mswjs/interceptors@0.40.0': + resolution: {integrity: sha512-EFd6cVbHsgLa6wa4RljGj6Wk75qoHxUSyc5asLyyPSyuhIcdS2Q3Phw6ImS1q+CkALthJRShiYfKANcQMuMqsQ==} + engines: {node: '>=18'} + + '@neoconfetti/react@1.0.0': + resolution: {integrity: sha512-klcSooChXXOzIm+SE5IISIAn3bYzYfPjbX7D7HoqZL84oAfgREeSg5vSIaSFH+DaGzzvImTyWe1OyrJ67vik4A==} + + '@next/env@15.5.7': + resolution: {integrity: sha512-4h6Y2NyEkIEN7Z8YxkA27pq6zTkS09bUSYC0xjd0NpwFxjnIKeZEeH591o5WECSmjpUhLn3H2QLJcDye3Uzcvg==} + + '@next/env@16.0.0': + resolution: {integrity: sha512-s5j2iFGp38QsG1LWRQaE2iUY3h1jc014/melHFfLdrsMJPqxqDQwWNwyQTcNoUSGZlCVZuM7t7JDMmSyRilsnA==} + + '@next/swc-darwin-arm64@15.5.7': + resolution: {integrity: sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@next/swc-darwin-x64@15.5.7': + resolution: {integrity: sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@next/swc-linux-arm64-gnu@15.5.7': + resolution: {integrity: sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@next/swc-linux-arm64-musl@15.5.7': + resolution: {integrity: sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + '@next/swc-linux-x64-gnu@15.5.7': + resolution: {integrity: sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + '@next/swc-linux-x64-musl@15.5.7': + resolution: {integrity: sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + '@next/swc-win32-arm64-msvc@15.5.7': + resolution: {integrity: sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@next/swc-win32-x64-msvc@15.5.7': + resolution: {integrity: sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] '@open-draft/deferred-promise@2.2.0': resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} @@ -905,12 +808,15 @@ packages: '@open-draft/until@2.1.0': resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} - '@pkgr/core@0.1.1': - resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + '@pkgr/core@0.2.9': + resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@rollup/pluginutils@5.1.4': - resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + '@polka/url@1.0.0-next.29': + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -918,293 +824,276 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.30.0': - resolution: {integrity: sha512-qFcFto9figFLz2g25DxJ1WWL9+c91fTxnGuwhToCl8BaqDsDYMl/kOnBXAyAqkkzAWimYMSWNPWEjt+ADAHuoQ==} + '@rollup/rollup-android-arm-eabi@4.57.1': + resolution: {integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.30.0': - resolution: {integrity: sha512-vqrQdusvVl7dthqNjWCL043qelBK+gv9v3ZiqdxgaJvmZyIAAXMjeGVSqZynKq69T7062T5VrVTuikKSAAVP6A==} + '@rollup/rollup-android-arm64@4.57.1': + resolution: {integrity: sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.30.0': - resolution: {integrity: sha512-617pd92LhdA9+wpixnzsyhVft3szYiN16aNUMzVkf2N+yAk8UXY226Bfp36LvxYTUt7MO/ycqGFjQgJ0wlMaWQ==} + '@rollup/rollup-darwin-arm64@4.57.1': + resolution: {integrity: sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.30.0': - resolution: {integrity: sha512-Y3b4oDoaEhCypg8ajPqigKDcpi5ZZovemQl9Edpem0uNv6UUjXv7iySBpGIUTSs2ovWOzYpfw9EbFJXF/fJHWw==} + '@rollup/rollup-darwin-x64@4.57.1': + resolution: {integrity: sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.30.0': - resolution: {integrity: sha512-3REQJ4f90sFIBfa0BUokiCdrV/E4uIjhkWe1bMgCkhFXbf4D8YN6C4zwJL881GM818qVYE9BO3dGwjKhpo2ABA==} + '@rollup/rollup-freebsd-arm64@4.57.1': + resolution: {integrity: sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.30.0': - resolution: {integrity: sha512-ZtY3Y8icbe3Cc+uQicsXG5L+CRGUfLZjW6j2gn5ikpltt3Whqjfo5mkyZ86UiuHF9Q3ZsaQeW7YswlHnN+lAcg==} + '@rollup/rollup-freebsd-x64@4.57.1': + resolution: {integrity: sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.30.0': - resolution: {integrity: sha512-bsPGGzfiHXMhQGuFGpmo2PyTwcrh2otL6ycSZAFTESviUoBOuxF7iBbAL5IJXc/69peXl5rAtbewBFeASZ9O0g==} + '@rollup/rollup-linux-arm-gnueabihf@4.57.1': + resolution: {integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.30.0': - resolution: {integrity: sha512-kvyIECEhs2DrrdfQf++maCWJIQ974EI4txlz1nNSBaCdtf7i5Xf1AQCEJWOC5rEBisdaMFFnOWNLYt7KpFqy5A==} + '@rollup/rollup-linux-arm-musleabihf@4.57.1': + resolution: {integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.30.0': - resolution: {integrity: sha512-CFE7zDNrokaotXu+shwIrmWrFxllg79vciH4E/zeK7NitVuWEaXRzS0mFfFvyhZfn8WfVOG/1E9u8/DFEgK7WQ==} + '@rollup/rollup-linux-arm64-gnu@4.57.1': + resolution: {integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.30.0': - resolution: {integrity: sha512-MctNTBlvMcIBP0t8lV/NXiUwFg9oK5F79CxLU+a3xgrdJjfBLVIEHSAjQ9+ipofN2GKaMLnFFXLltg1HEEPaGQ==} + '@rollup/rollup-linux-arm64-musl@4.57.1': + resolution: {integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.30.0': - resolution: {integrity: sha512-fBpoYwLEPivL3q368+gwn4qnYnr7GVwM6NnMo8rJ4wb0p/Y5lg88vQRRP077gf+tc25akuqd+1Sxbn9meODhwA==} + '@rollup/rollup-linux-loong64-gnu@4.57.1': + resolution: {integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-loong64-musl@4.57.1': + resolution: {integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.30.0': - resolution: {integrity: sha512-1hiHPV6dUaqIMXrIjN+vgJqtfkLpqHS1Xsg0oUfUVD98xGp1wX89PIXgDF2DWra1nxAd8dfE0Dk59MyeKaBVAw==} + '@rollup/rollup-linux-ppc64-gnu@4.57.1': + resolution: {integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.30.0': - resolution: {integrity: sha512-U0xcC80SMpEbvvLw92emHrNjlS3OXjAM0aVzlWfar6PR0ODWCTQtKeeB+tlAPGfZQXicv1SpWwRz9Hyzq3Jx3g==} + '@rollup/rollup-linux-ppc64-musl@4.57.1': + resolution: {integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.57.1': + resolution: {integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.57.1': + resolution: {integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.30.0': - resolution: {integrity: sha512-VU/P/IODrNPasgZDLIFJmMiLGez+BN11DQWfTVlViJVabyF3JaeaJkP6teI8760f18BMGCQOW9gOmuzFaI1pUw==} + '@rollup/rollup-linux-s390x-gnu@4.57.1': + resolution: {integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.30.0': - resolution: {integrity: sha512-laQVRvdbKmjXuFA3ZiZj7+U24FcmoPlXEi2OyLfbpY2MW1oxLt9Au8q9eHd0x6Pw/Kw4oe9gwVXWwIf2PVqblg==} + '@rollup/rollup-linux-x64-gnu@4.57.1': + resolution: {integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.30.0': - resolution: {integrity: sha512-3wzKzduS7jzxqcOvy/ocU/gMR3/QrHEFLge5CD7Si9fyHuoXcidyYZ6jyx8OPYmCcGm3uKTUl+9jUSAY74Ln5A==} + '@rollup/rollup-linux-x64-musl@4.57.1': + resolution: {integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.30.0': - resolution: {integrity: sha512-jROwnI1+wPyuv696rAFHp5+6RFhXGGwgmgSfzE8e4xfit6oLRg7GyMArVUoM3ChS045OwWr9aTnU+2c1UdBMyw==} + '@rollup/rollup-openbsd-x64@4.57.1': + resolution: {integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.57.1': + resolution: {integrity: sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.57.1': + resolution: {integrity: sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.30.0': - resolution: {integrity: sha512-duzweyup5WELhcXx5H1jokpr13i3BV9b48FMiikYAwk/MT1LrMYYk2TzenBd0jj4ivQIt58JWSxc19y4SvLP4g==} + '@rollup/rollup-win32-ia32-msvc@4.57.1': + resolution: {integrity: sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.30.0': - resolution: {integrity: sha512-DYvxS0M07PvgvavMIybCOBYheyrqlui6ZQBHJs6GqduVzHSZ06TPPvlfvnYstjODHQ8UUXFwt5YE+h0jFI8kwg==} + '@rollup/rollup-win32-x64-gnu@4.57.1': + resolution: {integrity: sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.57.1': + resolution: {integrity: sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==} cpu: [x64] os: [win32] - '@sentry-internal/browser-utils@9.39.0': - resolution: {integrity: sha512-f1qUAftQ/aMTJHJDCG9jDJIwLEkSVZ6xWGn2xQMj7PfD1uuYlTy3KHn+wPy1VlPJTZQ44WclTPnY2U/OBIPmsg==} + '@sentry-internal/browser-utils@9.47.1': + resolution: {integrity: sha512-twv6YhrUlPkvKz4/iQDH4KHgcv9t4cMjmZPf4/dCSCXn4/GOjzjx2d74c1w+1KOdS7lcsQzI+MtbK6SeYLiGfQ==} engines: {node: '>=18'} - '@sentry-internal/feedback@9.39.0': - resolution: {integrity: sha512-IvD2LDKFderPn6pXN6N8cFJWWIXUADys9WRtfh1CK8DIuU1fXYi61tO23Z+sCsvXReQgr/mdJg5dHa0qY/vDww==} + '@sentry-internal/feedback@9.47.1': + resolution: {integrity: sha512-xJ4vKvIpAT8e+Sz80YrsNinPU0XV7jPxPjdZ4ex8R2mMvx7pM0gq8JiR/sIVmNiOE0WiUDr6VwLDE8j2APSRMA==} engines: {node: '>=18'} - '@sentry-internal/replay-canvas@9.39.0': - resolution: {integrity: sha512-rTw0WZuAwzo36/hXRSuftu7e3qtwXc+bSs1q7M+w7Tb98aoOyXs3GlnYmgP6q3t2v/h7zoIiQcfjnPqo6+DVtQ==} + '@sentry-internal/replay-canvas@9.47.1': + resolution: {integrity: sha512-r9nve+l5+elGB9NXSN1+PUgJy790tXN1e8lZNH2ziveoU91jW4yYYt34mHZ30fU9tOz58OpaRMj3H3GJ/jYZVA==} engines: {node: '>=18'} - '@sentry-internal/replay@9.39.0': - resolution: {integrity: sha512-6mweqQtfcVG2+FEPjmgjrpCThgs9bR2cmQM2Ew/SlINj8ETq5P/7Z3rdIp+Zs7LArXFIJUA7KX9ZW+noVPI8Gg==} + '@sentry-internal/replay@9.47.1': + resolution: {integrity: sha512-O9ZEfySpstGtX1f73m3NbdbS2utwPikaFt6sgp74RG4ZX4LlXe99VAjKR464xKECpYsLmj2bYpiK4opURF0pBA==} engines: {node: '>=18'} - '@sentry/babel-plugin-component-annotate@3.6.0': - resolution: {integrity: sha512-QjqqaNghVSPercSU1sA8WcZtka/cHCShU6z38Fi41P/n9HpfxLFv6aBV03kqH5m1uLOPCl+u3AUm3HGMgGYQjg==} + '@sentry/babel-plugin-component-annotate@3.6.1': + resolution: {integrity: sha512-zmvUa4RpzDG3LQJFpGCE8lniz8Rk1Wa6ZvvK+yEH+snZeaHHRbSnAQBMR607GOClP+euGHNO2YtaY4UAdNTYbg==} engines: {node: '>= 14'} - '@sentry/browser@9.39.0': - resolution: {integrity: sha512-RZ4Zp22ohFLwkR3y6pmSWDrPVP7ErX0ClNOh2Kal3TNWlOGb4WPBPaWj2tiOvc4n/l6EDYaFvQ0Hh8RhesB98A==} + '@sentry/browser@9.47.1': + resolution: {integrity: sha512-at5JOLziw5QpVYytxTDU6xijdV6lDQ/Rxp/qXJaHXud3gIK4suv2cXW+tupJfwoUoHFCnDNfccjCmPmP0yRqiA==} engines: {node: '>=18'} - '@sentry/bundler-plugin-core@3.6.0': - resolution: {integrity: sha512-26+cLguEtBBtsYi3NIwU6X/UvOPJM9tGm9ciDWYgMFvFIk8hhi0iuffAC6WsDWRebVYXTlA7RS/VGJG/T+1Zcw==} + '@sentry/bundler-plugin-core@3.6.1': + resolution: {integrity: sha512-/ubWjPwgLep84sUPzHfKL2Ns9mK9aQrEX4aBFztru7ygiJidKJTxYGtvjh4dL2M1aZ0WRQYp+7PF6+VKwdZXcQ==} engines: {node: '>= 14'} - '@sentry/cli-darwin@2.47.1': - resolution: {integrity: sha512-Vq+8Hs1AR5MFYCI8vkz+rdRJmcNgUf8b8dW8aSLYCHy7wS/X61OB00LupLaaaoN5c/xemb0rZCg4M0ftUqB5Kw==} + '@sentry/cli-darwin@2.58.4': + resolution: {integrity: sha512-kbTD+P4X8O+nsNwPxCywtj3q22ecyRHWff98rdcmtRrvwz8CKi/T4Jxn/fnn2i4VEchy08OWBuZAqaA5Kh2hRQ==} engines: {node: '>=10'} os: [darwin] - '@sentry/cli-linux-arm64@2.47.1': - resolution: {integrity: sha512-Kuda8/BFMVyqYayQjP0NQnxnAz5Xpfo2crG1/RRXF9lYQ9O/5YRb3dvlMPX6WasplCzajaSuLrYt/LXcs4McwA==} + '@sentry/cli-linux-arm64@2.58.4': + resolution: {integrity: sha512-0g0KwsOozkLtzN8/0+oMZoOuQ0o7W6O+hx+ydVU1bktaMGKEJLMAWxOQNjsh1TcBbNIXVOKM/I8l0ROhaAb8Ig==} engines: {node: '>=10'} cpu: [arm64] os: [linux, freebsd, android] - '@sentry/cli-linux-arm@2.47.1': - resolution: {integrity: sha512-Wkcvr0LYP1XMSoaczQnUtOSZPfyBzdGk7wQyloYWyMv9oZWJYkt1wYI0/FaNM+MIX15RqEAx0nI5CjotLMlj8w==} + '@sentry/cli-linux-arm@2.58.4': + resolution: {integrity: sha512-rdQ8beTwnN48hv7iV7e7ZKucPec5NJkRdrrycMJMZlzGBPi56LqnclgsHySJ6Kfq506A2MNuQnKGaf/sBC9REA==} engines: {node: '>=10'} cpu: [arm] os: [linux, freebsd, android] - '@sentry/cli-linux-i686@2.47.1': - resolution: {integrity: sha512-WB3FbRjeJmKHhGc5CftaFFJfFc7c+Mu/XKwbI8Es/9f65bVWdB6BA2tH7aHyoAQngA++1ZVXUJwUpxYPNxQEag==} + '@sentry/cli-linux-i686@2.58.4': + resolution: {integrity: sha512-NseoIQAFtkziHyjZNPTu1Gm1opeQHt7Wm1LbLrGWVIRvUOzlslO9/8i6wETUZ6TjlQxBVRgd3Q0lRBG2A8rFYA==} engines: {node: '>=10'} cpu: [x86, ia32] os: [linux, freebsd, android] - '@sentry/cli-linux-x64@2.47.1': - resolution: {integrity: sha512-C+3GJLDpZQMO45toUKiF4bPZpxQiU5/10LtZg2vhpUyyzFGNseVQO/Bsnu9hG/LVjYGLkTgEaorl1liRQsfKVg==} + '@sentry/cli-linux-x64@2.58.4': + resolution: {integrity: sha512-d3Arz+OO/wJYTqCYlSN3Ktm+W8rynQ/IMtSZLK8nu0ryh5mJOh+9XlXY6oDXw4YlsM8qCRrNquR8iEI1Y/IH+Q==} engines: {node: '>=10'} cpu: [x64] os: [linux, freebsd, android] - '@sentry/cli-win32-arm64@2.47.1': - resolution: {integrity: sha512-K3yb1yLvA6Lh0UaXjsU6lP/2uOMkZ47cVq0dFxL/hEr4fBHRkXuvg3oOJNDkJ2xXt2W2s7AIa83T2EisZ0a/NQ==} + '@sentry/cli-win32-arm64@2.58.4': + resolution: {integrity: sha512-bqYrF43+jXdDBh0f8HIJU3tbvlOFtGyRjHB8AoRuMQv9TEDUfENZyCelhdjA+KwDKYl48R1Yasb4EHNzsoO83w==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@sentry/cli-win32-i686@2.47.1': - resolution: {integrity: sha512-wk+6IIT+VT28c9uPe9PDzxdh+OiTEDb/0PIdFv1khSfAmEuVSNWzuDWsra7MnA7OPfgzzNDPkP4HRW1CKb3Xiw==} + '@sentry/cli-win32-i686@2.58.4': + resolution: {integrity: sha512-3triFD6jyvhVcXOmGyttf+deKZcC1tURdhnmDUIBkiDPJKGT/N5xa4qAtHJlAB/h8L9jgYih9bvJnvvFVM7yug==} engines: {node: '>=10'} cpu: [x86, ia32] os: [win32] - '@sentry/cli-win32-x64@2.47.1': - resolution: {integrity: sha512-blseDhuUJDsb+3Ku9dvR4b0JO4nunRokF/9jzW+qHqTha7UHE2kQYXkCfsoDg65juvJFeKeQASYV7VphEJgIGQ==} + '@sentry/cli-win32-x64@2.58.4': + resolution: {integrity: sha512-cSzN4PjM1RsCZ4pxMjI0VI7yNCkxiJ5jmWncyiwHXGiXrV1eXYdQ3n1LhUYLZ91CafyprR0OhDcE+RVZ26Qb5w==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@sentry/cli@2.47.1': - resolution: {integrity: sha512-t45lfyyMYs6L1oFUmtYuLDJFf0o6a0IGbPJvzOZcP3lmidouEG5nloBF6FG39AkL29pwrS2WN41j2gyDjrQ71g==} + '@sentry/cli@2.58.4': + resolution: {integrity: sha512-ArDrpuS8JtDYEvwGleVE+FgR+qHaOp77IgdGSacz6SZy6Lv90uX0Nu4UrHCQJz8/xwIcNxSqnN22lq0dH4IqTg==} engines: {node: '>= 10'} hasBin: true - '@sentry/core@9.39.0': - resolution: {integrity: sha512-9Z32C64rUGEI0ROxXXOtpJDaldPYtkzOQyGzToVgq5LefXkdgQInd8BhCt6PIBALfj7n25lLOYllTrHlboFJug==} + '@sentry/core@9.47.1': + resolution: {integrity: sha512-KX62+qIt4xgy8eHKHiikfhz2p5fOciXd0Cl+dNzhgPFq8klq4MGMNaf148GB3M/vBqP4nw/eFvRMAayFCgdRQw==} engines: {node: '>=18'} - '@sentry/react@9.39.0': - resolution: {integrity: sha512-oSc0ReVM9ZCJqDs7IDS//hVg+29SynmnufBUpDKETXiq2+1B6UXcVM2Vq2pIJHD03v1UMalTp2HIb6S3NROUUQ==} + '@sentry/react@9.47.1': + resolution: {integrity: sha512-Anqt0hG1R+nktlwEiDc2FmD+6DUGMJOLuArgr7q1cSCdPbK2Gb1eZ2rF57Ui+CDo9XLvlX9QP2is/M08rrVe3w==} engines: {node: '>=18'} peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x - '@sentry/vite-plugin@3.6.0': - resolution: {integrity: sha512-gayOzM64kRujYGEPNB9xvQWKVXmJAo0WW9R25XwYXvTkjKpwT/ue3id5Dw4L6GUpj3AfF/qE+ghhY4r3mHkoiw==} + '@sentry/vite-plugin@3.6.1': + resolution: {integrity: sha512-x8WMdv2K2HcGS2ezEUIEZXpT/fNeWQ9rsEeF0K9DfKXK8Z9lzRmCr6TVA6I9+yW39Is+1/0cv1Rsu0LhO7lHzg==} engines: {node: '>= 14'} + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@standard-schema/utils@0.3.0': resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} - '@storybook/addon-actions@8.4.7': - resolution: {integrity: sha512-mjtD5JxcPuW74T6h7nqMxWTvDneFtokg88p6kQ5OnC1M259iAXb//yiSZgu/quunMHPCXSiqn4FNOSgASTSbsA==} - peerDependencies: - storybook: ^8.4.7 - - '@storybook/addon-backgrounds@8.4.7': - resolution: {integrity: sha512-I4/aErqtFiazcoWyKafOAm3bLpxTj6eQuH/woSbk1Yx+EzN+Dbrgx1Updy8//bsNtKkcrXETITreqHC+a57DHQ==} - peerDependencies: - storybook: ^8.4.7 - - '@storybook/addon-controls@8.4.7': - resolution: {integrity: sha512-377uo5IsJgXLnQLJixa47+11V+7Wn9KcDEw+96aGCBCfLbWNH8S08tJHHnSu+jXg9zoqCAC23MetntVp6LetHA==} - peerDependencies: - storybook: ^8.4.7 - - '@storybook/addon-docs@8.4.7': - resolution: {integrity: sha512-NwWaiTDT5puCBSUOVuf6ME7Zsbwz7Y79WF5tMZBx/sLQ60vpmJVQsap6NSjvK1Ravhc21EsIXqemAcBjAWu80w==} - peerDependencies: - storybook: ^8.4.7 - - '@storybook/addon-essentials@8.4.7': - resolution: {integrity: sha512-+BtZHCBrYtQKILtejKxh0CDRGIgTl9PumfBOKRaihYb4FX1IjSAxoV/oo/IfEjlkF5f87vouShWsRa8EUauFDw==} - peerDependencies: - storybook: ^8.4.7 - - '@storybook/addon-highlight@8.4.7': - resolution: {integrity: sha512-whQIDBd3PfVwcUCrRXvCUHWClXe9mQ7XkTPCdPo4B/tZ6Z9c6zD8JUHT76ddyHivixFLowMnA8PxMU6kCMAiNw==} - peerDependencies: - storybook: ^8.4.7 - - '@storybook/addon-interactions@8.4.7': - resolution: {integrity: sha512-fnufT3ym8ht3HHUIRVXAH47iOJW/QOb0VSM+j269gDuvyDcY03D1civCu1v+eZLGaXPKJ8vtjr0L8zKQ/4P0JQ==} - peerDependencies: - storybook: ^8.4.7 - - '@storybook/addon-measure@8.4.7': - resolution: {integrity: sha512-QfvqYWDSI5F68mKvafEmZic3SMiK7zZM8VA0kTXx55hF/+vx61Mm0HccApUT96xCXIgmwQwDvn9gS4TkX81Dmw==} - peerDependencies: - storybook: ^8.4.7 - - '@storybook/addon-onboarding@8.4.7': - resolution: {integrity: sha512-FdC2NV60VNYeMxf6DVe0qV9ucSBAzMh1//C0Qqwq8CcjthMbmKlVZ7DqbVsbIHKnFaSCaUC88eR5olAfMaauCQ==} - peerDependencies: - storybook: ^8.4.7 - - '@storybook/addon-outline@8.4.7': - resolution: {integrity: sha512-6LYRqUZxSodmAIl8icr585Oi8pmzbZ90aloZJIpve+dBAzo7ydYrSQxxoQEVltXbKf3VeVcrs64ouAYqjisMYA==} - peerDependencies: - storybook: ^8.4.7 - - '@storybook/addon-toolbars@8.4.7': - resolution: {integrity: sha512-OSfdv5UZs+NdGB+nZmbafGUWimiweJ/56gShlw8Neo/4jOJl1R3rnRqqY7MYx8E4GwoX+i3GF5C3iWFNQqlDcw==} + '@storybook/addon-a11y@10.2.7': + resolution: {integrity: sha512-orLdRdrOINXrl8UlGqUat9Xl5zIkfM4e+SUYc0R6zYYNh72Oru7gRGZM4XVNofDAv275XNDDboEaXJ61dWYwFQ==} peerDependencies: - storybook: ^8.4.7 + storybook: ^10.2.7 - '@storybook/addon-viewport@8.4.7': - resolution: {integrity: sha512-hvczh/jjuXXcOogih09a663sRDDSATXwbE866al1DXgbDFraYD/LxX/QDb38W9hdjU9+Qhx8VFIcNWoMQns5HQ==} + '@storybook/addon-docs@10.2.7': + resolution: {integrity: sha512-RHw+uHA05A7t48OtVu6gvNOueSGK8P/5NCmVRl3Vx/Kg3mxCyU2nGOHwWBt3C3CsWOLioZPsa7f5UdjOkhJ35Q==} peerDependencies: - storybook: ^8.4.7 + storybook: ^10.2.7 - '@storybook/blocks@8.4.7': - resolution: {integrity: sha512-+QH7+JwXXXIyP3fRCxz/7E2VZepAanXJM7G8nbR3wWsqWgrRp4Wra6MvybxAYCxU7aNfJX5c+RW84SNikFpcIA==} + '@storybook/blocks@8.6.14': + resolution: {integrity: sha512-rBMHAfA39AGHgkrDze4RmsnQTMw1ND5fGWobr9pDcJdnDKWQWNRD7Nrlxj0gFlN3n4D9lEZhWGdFrCbku7FVAQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.4.7 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^8.6.14 peerDependenciesMeta: react: optional: true react-dom: optional: true - '@storybook/builder-vite@8.4.7': - resolution: {integrity: sha512-LovyXG5VM0w7CovI/k56ZZyWCveQFVDl0m7WwetpmMh2mmFJ+uPQ35BBsgTvTfc8RHi+9Q3F58qP1MQSByXi9g==} - peerDependencies: - storybook: ^8.4.7 - vite: ^4.0.0 || ^5.0.0 || ^6.0.0 - - '@storybook/components@8.4.7': - resolution: {integrity: sha512-uyJIcoyeMWKAvjrG9tJBUCKxr2WZk+PomgrgrUwejkIfXMO76i6jw9BwLa0NZjYdlthDv30r9FfbYZyeNPmF0g==} + '@storybook/builder-vite@10.2.7': + resolution: {integrity: sha512-dh/Oqvwob12oYJoaUkMgXxCGFxR8B+Hb/nACttxSuAZ1InTtXIMBM9GDpBs8QjaT23X/yHJz3dPYyUBbsn/SNA==} peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + storybook: ^10.2.7 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 - '@storybook/core@8.4.7': - resolution: {integrity: sha512-7Z8Z0A+1YnhrrSXoKKwFFI4gnsLbWzr8fnDCU6+6HlDukFYh8GHRcZ9zKfqmy6U3hw2h8H5DrHsxWfyaYUUOoA==} + '@storybook/csf-plugin@10.2.7': + resolution: {integrity: sha512-10JblhVYXYmz+XjU86kvAV6pdqCLdkgGcARS6ehhR6W98lKGskWhLNgu4KM9BEKa/2roH8je+DmrlX3ugkMEgw==} peerDependencies: - prettier: ^2 || ^3 + esbuild: '*' + rollup: '*' + storybook: ^10.2.7 + vite: '*' + webpack: '*' peerDependenciesMeta: - prettier: + esbuild: + optional: true + rollup: + optional: true + vite: + optional: true + webpack: optional: true - - '@storybook/csf-plugin@8.4.7': - resolution: {integrity: sha512-Fgogplu4HImgC+AYDcdGm1rmL6OR1rVdNX1Be9C/NEXwOCpbbBwi0BxTf/2ZxHRk9fCeaPEcOdP5S8QHfltc1g==} - peerDependencies: - storybook: ^8.4.7 '@storybook/csf@0.1.13': resolution: {integrity: sha512-7xOOwCLGB3ebM87eemep89MYRFTko+D8qE7EdAAq74lgdqRR5cOUtYWJLjO2dLtP94nqoOdHJo6MdLLKzg412Q==} @@ -1212,230 +1101,89 @@ packages: '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} - '@storybook/icons@1.3.0': - resolution: {integrity: sha512-Nz/UzeYQdUZUhacrPyfkiiysSjydyjgg/p0P9HxB4p/WaJUUjMAcaoaLgy3EXx61zZJ3iD36WPuDkZs5QYrA0A==} + '@storybook/icons@1.6.0': + resolution: {integrity: sha512-hcFZIjW8yQz8O8//2WTIXylm5Xsgc+lW9ISLgUk1xGmptIJQRdlhVIXCpSyLrQaaRiyhQRaVg7l3BD9S216BHw==} engines: {node: '>=14.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - '@storybook/instrumenter@8.4.7': - resolution: {integrity: sha512-k6NSD3jaRCCHAFtqXZ7tw8jAzD/yTEWXGya+REgZqq5RCkmJ+9S4Ytp/6OhQMPtPFX23gAuJJzTQVLcCr+gjRg==} + '@storybook/icons@2.0.1': + resolution: {integrity: sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg==} peerDependencies: - storybook: ^8.4.7 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@storybook/manager-api@8.4.7': - resolution: {integrity: sha512-ELqemTviCxAsZ5tqUz39sDmQkvhVAvAgiplYy9Uf15kO0SP2+HKsCMzlrm2ue2FfkUNyqbDayCPPCB0Cdn/mpQ==} + '@storybook/instrumenter@8.6.15': + resolution: {integrity: sha512-TvHR/+yyIAOp/1bLulFai2kkhIBtAlBw7J6Jd9DKyInoGhTWNE1G1Y61jD5GWXX29AlwaHfzGUaX5NL1K+FJpg==} peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + storybook: ^8.6.15 - '@storybook/preview-api@8.4.7': - resolution: {integrity: sha512-0QVQwHw+OyZGHAJEXo6Knx+6/4er7n2rTDE5RYJ9F2E2Lg42E19pfdLlq2Jhoods2Xrclo3wj6GWR//Ahi39Eg==} + '@storybook/nextjs-vite@10.2.7': + resolution: {integrity: sha512-F8jd3iOnnBmhHHkxJUur6k7T9HCMQdvfhQadjudSYQ933iHTkMPqecS5USkJsKEJpcvsaw519nwNo5nAqkHAfg==} peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + next: ^14.1.0 || ^15.0.0 || ^16.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^10.2.7 + typescript: '*' + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 + peerDependenciesMeta: + typescript: + optional: true - '@storybook/react-dom-shim@8.4.7': - resolution: {integrity: sha512-6bkG2jvKTmWrmVzCgwpTxwIugd7Lu+2btsLAqhQSzDyIj2/uhMNp8xIMr/NBDtLgq3nomt9gefNa9xxLwk/OMg==} + '@storybook/react-dom-shim@10.2.7': + resolution: {integrity: sha512-TCD46eKy0JlqUU3DZDaJNecen09HjT74NpJjmgpwOyMXrm+Wl/HfshMyn4GZj/rVQfFN90udNp0NzfbBAPbJAQ==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.4.7 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^10.2.7 - '@storybook/react-vite@8.4.7': - resolution: {integrity: sha512-iiY9iLdMXhDnilCEVxU6vQsN72pW3miaf0WSenOZRyZv3HdbpgOxI0qapOS0KCyRUnX9vTlmrSPTMchY4cAeOg==} - engines: {node: '>=18.0.0'} + '@storybook/react-vite@10.2.7': + resolution: {integrity: sha512-R8Xwh3RaCsTyr55xv0rYrT4ve+Kw8vGGTzE6IWkHAXjRYXLdETH8JJoAuI75ESbCeUOl7Lj9jvtD9jS3TCoboA==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.4.7 - vite: ^4.0.0 || ^5.0.0 || ^6.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^10.2.7 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 - '@storybook/react@8.4.7': - resolution: {integrity: sha512-nQ0/7i2DkaCb7dy0NaT95llRVNYWQiPIVuhNfjr1mVhEP7XD090p0g7eqUmsx8vfdHh2BzWEo6CoBFRd3+EXxw==} - engines: {node: '>=18.0.0'} + '@storybook/react@10.2.7': + resolution: {integrity: sha512-SuWzFLNprNNWUWC7o0p1gVNAK1QoDTVdymDo4jeKIUfcMdmzEMzj8zqkCxeStaVLQxqBIvmca3uJHlym8GsVrQ==} peerDependencies: - '@storybook/test': 8.4.7 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.4.7 - typescript: '>= 4.2.x' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + storybook: ^10.2.7 + typescript: '>= 4.9.x' peerDependenciesMeta: - '@storybook/test': - optional: true typescript: optional: true - '@storybook/test@8.4.7': - resolution: {integrity: sha512-AhvJsu5zl3uG40itSQVuSy5WByp3UVhS6xAnme4FWRwgSxhvZjATJ3AZkkHWOYjnnk+P2/sbz/XuPli1FVCWoQ==} + '@storybook/test@8.6.15': + resolution: {integrity: sha512-EwquDRUDVvWcZds3T2abmB5wSN/Vattal4YtZ6fpBlIUqONV4o/cOBX39cFfQSUCBrIXIjQ6RmapQCHK/PvBYw==} peerDependencies: - storybook: ^8.4.7 + storybook: ^8.6.15 '@storybook/testing-library@0.2.2': resolution: {integrity: sha512-L8sXFJUHmrlyU2BsWWZGuAjv39Jl1uAqUHdxmN42JY15M4+XCMjGlArdCCjDe1wpTSW6USYISA9axjZojgtvnw==} deprecated: In Storybook 8, this package functionality has been integrated to a new package called @storybook/test, which uses Vitest APIs for an improved experience. When upgrading to Storybook 8 with 'npx storybook@latest upgrade', you will get prompted and will get an automigration for the new package. Please migrate when you can. - '@storybook/theming@8.4.7': - resolution: {integrity: sha512-99rgLEjf7iwfSEmdqlHkSG3AyLcK0sfExcr0jnc6rLiAkBhzuIsvcHjjUwkR210SOCgXqBPW0ZA6uhnuyppHLw==} - peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - - '@svgr/babel-plugin-add-jsx-attribute@8.0.0': - resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0': - resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0': - resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0': - resolution: {integrity: sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-svg-dynamic-title@8.0.0': - resolution: {integrity: sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-svg-em-dimensions@8.0.0': - resolution: {integrity: sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-transform-react-native-svg@8.1.0': - resolution: {integrity: sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-plugin-transform-svg-component@8.0.0': - resolution: {integrity: sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==} - engines: {node: '>=12'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/babel-preset@8.1.0': - resolution: {integrity: sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==} - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@svgr/core@8.1.0': - resolution: {integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==} - engines: {node: '>=14'} - - '@svgr/hast-util-to-babel-ast@8.0.0': - resolution: {integrity: sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==} - engines: {node: '>=14'} - - '@svgr/plugin-jsx@8.1.0': - resolution: {integrity: sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==} - engines: {node: '>=14'} - peerDependencies: - '@svgr/core': '*' - - '@swc/core-darwin-arm64@1.10.4': - resolution: {integrity: sha512-sV/eurLhkjn/197y48bxKP19oqcLydSel42Qsy2zepBltqUx+/zZ8+/IS0Bi7kaWVFxerbW1IPB09uq8Zuvm3g==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - - '@swc/core-darwin-x64@1.10.4': - resolution: {integrity: sha512-gjYNU6vrAUO4+FuovEo9ofnVosTFXkF0VDuo1MKPItz6e2pxc2ale4FGzLw0Nf7JB1sX4a8h06CN16/pLJ8Q2w==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - - '@swc/core-linux-arm-gnueabihf@1.10.4': - resolution: {integrity: sha512-zd7fXH5w8s+Sfvn2oO464KDWl+ZX1MJiVmE4Pdk46N3PEaNwE0koTfgx2vQRqRG4vBBobzVvzICC3618WcefOA==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - - '@swc/core-linux-arm64-gnu@1.10.4': - resolution: {integrity: sha512-+UGfoHDxsMZgFD3tABKLeEZHqLNOkxStu+qCG7atGBhS4Slri6h6zijVvf4yI5X3kbXdvc44XV/hrP/Klnui2A==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - - '@swc/core-linux-arm64-musl@1.10.4': - resolution: {integrity: sha512-cDDj2/uYsOH0pgAnDkovLZvKJpFmBMyXkxEG6Q4yw99HbzO6QzZ5HDGWGWVq/6dLgYKlnnmpjZCPPQIu01mXEg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - - '@swc/core-linux-x64-gnu@1.10.4': - resolution: {integrity: sha512-qJXh9D6Kf5xSdGWPINpLGixAbB5JX8JcbEJpRamhlDBoOcQC79dYfOMEIxWPhTS1DGLyFakAx2FX/b2VmQmj0g==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - - '@swc/core-linux-x64-musl@1.10.4': - resolution: {integrity: sha512-A76lIAeyQnHCVt0RL/pG+0er8Qk9+acGJqSZOZm67Ve3B0oqMd871kPtaHBM0BW3OZAhoILgfHW3Op9Q3mx3Cw==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - - '@swc/core-win32-arm64-msvc@1.10.4': - resolution: {integrity: sha512-e6j5kBu4fIY7fFxFxnZI0MlEovRvp50Lg59Fw+DVbtqHk3C85dckcy5xKP+UoXeuEmFceauQDczUcGs19SRGSQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - - '@swc/core-win32-ia32-msvc@1.10.4': - resolution: {integrity: sha512-RSYHfdKgNXV/amY5Tqk1EWVsyQnhlsM//jeqMLw5Fy9rfxP592W9UTumNikNRPdjI8wKKzNMXDb1U29tQjN0dg==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - - '@swc/core-win32-x64-msvc@1.10.4': - resolution: {integrity: sha512-1ujYpaqfqNPYdwKBlvJnOqcl+Syn3UrQ4XE0Txz6zMYgyh6cdU6a3pxqLqIUSJ12MtXRA9ZUhEz1ekU3LfLWXw==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - - '@swc/core@1.10.4': - resolution: {integrity: sha512-ut3zfiTLORMxhr6y/GBxkHmzcGuVpwJYX4qyXWuBKkpw/0g0S5iO1/wW7RnLnZbAi8wS/n0atRZoaZlXWBkeJg==} - engines: {node: '>=10'} - peerDependencies: - '@swc/helpers': '*' - peerDependenciesMeta: - '@swc/helpers': - optional: true - - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - '@swc/types@0.1.17': - resolution: {integrity: sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==} + '@tanstack/query-core@5.90.20': + resolution: {integrity: sha512-OMD2HLpNouXEfZJWcKeVKUgQ5n+n3A2JFmBaScpNDUqSrQSjiveC7dKMe53uJUg1nDG16ttFPz2xfilz6i2uVg==} - '@tanstack/query-core@5.62.15': - resolution: {integrity: sha512-wT20X14CxcWY8YLJ/1pnsXn/y1Q2uRJZYWW93PWRtZt+3/JlGZyiyTcO4pGnqycnP7CokCROAyatsraosqZsDA==} + '@tanstack/query-devtools@5.93.0': + resolution: {integrity: sha512-+kpsx1NQnOFTZsw6HAFCW3HkKg0+2cepGtAWXjiiSOJJ1CtQpt72EE2nyZb+AjAbLRPoeRmPJ8MtQd8r8gsPdg==} - '@tanstack/query-devtools@5.62.9': - resolution: {integrity: sha512-b1NZzDLVf6laJsB1Cfm3ieuYzM+WqoO8qpm9v+3Etwd+Ph4zkhUMiT+wcWj5AhEPsXiRodKYiiW048VDNdBxNg==} - - '@tanstack/react-query-devtools@5.62.15': - resolution: {integrity: sha512-8aE7uD45NHZgNtHMVQC7PvM9f72mKK4bqcpHr9La8TsTRX7x8dy2Kdu2ReFNLCrdlEWkxdP5843tc/lHg+Q/rg==} + '@tanstack/react-query-devtools@5.91.3': + resolution: {integrity: sha512-nlahjMtd/J1h7IzOOfqeyDh5LNfG0eULwlltPEonYy0QL+nqrBB+nyzJfULV+moL7sZyxc2sHdNJki+vLA9BSA==} peerDependencies: - '@tanstack/react-query': ^5.62.15 + '@tanstack/react-query': ^5.90.20 react: ^18 || ^19 - '@tanstack/react-query@5.62.15': - resolution: {integrity: sha512-Ny3xxsOWmEQCFyHiV3CF7t6+QAV+LpBEREiXyllKR4+tStyd8smOAa98ZHmEx0ZNy36M31K8enifB5wTSYAKJw==} + '@tanstack/react-query@5.90.20': + resolution: {integrity: sha512-vXBxa+qeyveVO7OA0jX1z+DeyCA4JKnThKv411jd5SORpBKgkcVnYKCiBgECvADvniBX7tobwBmg01qq9JmMJw==} peerDependencies: react: ^18 || ^19 @@ -1443,6 +1191,10 @@ packages: resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} engines: {node: '>=18'} + '@testing-library/dom@10.4.1': + resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} + engines: {node: '>=18'} + '@testing-library/dom@9.3.4': resolution: {integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==} engines: {node: '>=14'} @@ -1451,6 +1203,10 @@ packages: resolution: {integrity: sha512-xGGHpBXYSHUUr6XsKBfs85TWlYKpTc37cSBBVrXcib2MkHLboWlkClhWF37JKlDb9KEq3dHs+f2xR7XJEWGBxA==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + '@testing-library/jest-dom@6.9.1': + resolution: {integrity: sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + '@testing-library/user-event@14.5.2': resolution: {integrity: sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==} engines: {node: '>=12', npm: '>=6'} @@ -1463,8 +1219,8 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' - '@trivago/prettier-plugin-sort-imports@5.2.1': - resolution: {integrity: sha512-NDZndt0fmVThIx/8cExuJHLZagUVzfGCoVrwH9x6aZvwfBdkrDFTYujecek6X2WpG4uUFsVaPg5+aNQPSyjcmw==} + '@trivago/prettier-plugin-sort-imports@5.2.2': + resolution: {integrity: sha512-fYDQA9e6yTNmA13TLVSA+WMQRc5Bn/c0EUBditUHNfMMxN7M82c38b1kEggVE3pLpZ0FwkwJkUEKMiOi52JXFA==} engines: {node: '>18.12'} peerDependencies: '@vue/compiler-sfc': 3.x @@ -1485,23 +1241,32 @@ packages: '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + '@types/babel__generator@7.27.0': + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} '@types/babel__template@7.4.4': resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + '@types/babel__traverse@7.28.0': + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} - '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} '@types/doctrine@0.0.9': resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} - '@types/estree@1.0.6': - resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/eslint-scope@3.7.7': + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==} + + '@types/eslint@9.6.1': + resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -1509,22 +1274,22 @@ packages: '@types/mdx@2.0.13': resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - '@types/node@22.10.5': - resolution: {integrity: sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==} + '@types/node@25.2.0': + resolution: {integrity: sha512-DZ8VwRFUNzuqJ5khrvwMXHmvPe+zGayJhr2CDNiKB1WBE1ST8Djl00D0IC4vvNmHMdj6DlbYRIaFE7WHjlDl5w==} - '@types/prop-types@15.7.14': - resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} + '@types/prop-types@15.7.15': + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} - '@types/react-dom@18.3.5': - resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} + '@types/react-dom@18.3.7': + resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} peerDependencies: '@types/react': ^18.0.0 '@types/react-slick@0.23.13': resolution: {integrity: sha512-bNZfDhe/L8t5OQzIyhrRhBr/61pfBcWaYJoq6UDqFtv5LMwfg4NsVDD2J8N01JqdAdxLjOt66OZEp6PX+dGs/A==} - '@types/react@18.3.18': - resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} + '@types/react@18.3.27': + resolution: {integrity: sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==} '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -1536,172 +1301,251 @@ packages: resolution: {integrity: sha512-QPZRgxZ+ivXXtzV43B3LxpXUIC7FE/EoKM+rtxngmgt2M7eeUYypZhyqZD8UxJtlBcUDw/ATGoVeSNpvBBrz2w==} deprecated: This is a stub types definition. swiper provides its own type definitions, so you do not need this installed. - '@types/tough-cookie@4.0.5': - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} - - '@types/uuid@9.0.8': - resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - - '@typescript-eslint/eslint-plugin@8.19.1': - resolution: {integrity: sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' - - '@typescript-eslint/eslint-plugin@8.28.0': - resolution: {integrity: sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==} + '@typescript-eslint/eslint-plugin@8.54.0': + resolution: {integrity: sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + '@typescript-eslint/parser': ^8.54.0 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.19.1': - resolution: {integrity: sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==} + '@typescript-eslint/parser@8.54.0': + resolution: {integrity: sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.28.0': - resolution: {integrity: sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==} + '@typescript-eslint/project-service@8.54.0': + resolution: {integrity: sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/scope-manager@8.19.1': - resolution: {integrity: sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.28.0': - resolution: {integrity: sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==} + '@typescript-eslint/scope-manager@8.54.0': + resolution: {integrity: sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.19.1': - resolution: {integrity: sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==} + '@typescript-eslint/tsconfig-utils@8.54.0': + resolution: {integrity: sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.28.0': - resolution: {integrity: sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==} + '@typescript-eslint/type-utils@8.54.0': + resolution: {integrity: sha512-hiLguxJWHjjwL6xMBwD903ciAwd7DmK30Y9Axs/etOkftC3ZNN9K44IuRD/EB08amu+Zw6W37x9RecLkOo3pMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/types@8.19.1': - resolution: {integrity: sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.28.0': - resolution: {integrity: sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==} + '@typescript-eslint/types@8.54.0': + resolution: {integrity: sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.19.1': - resolution: {integrity: sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==} + '@typescript-eslint/typescript-estree@8.54.0': + resolution: {integrity: sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/typescript-estree@8.28.0': - resolution: {integrity: sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/utils@8.19.1': - resolution: {integrity: sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==} + '@typescript-eslint/utils@8.54.0': + resolution: {integrity: sha512-9Cnda8GS57AQakvRyG0PTejJNlA2xhvyNtEVIMlDWOOeEyBkYWhGPnfrIAnqxLMTSTo6q8g12XVjjev5l1NvMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.8.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.28.0': - resolution: {integrity: sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==} + '@typescript-eslint/visitor-keys@8.54.0': + resolution: {integrity: sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.19.1': - resolution: {integrity: sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vanilla-extract/babel-plugin-debug-ids@1.2.2': + resolution: {integrity: sha512-MeDWGICAF9zA/OZLOKwhoRlsUW+fiMwnfuOAqFVohL31Agj7Q/RBWAYweqjHLgFBCsdnr6XIfwjJnmb2znEWxw==} - '@typescript-eslint/visitor-keys@8.28.0': - resolution: {integrity: sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vanilla-extract/compiler@0.3.4': + resolution: {integrity: sha512-W9HXf9EAccpE1vEIATvSoBVj/bQnmHfYHfDJjUN8dcOHW6oMcnoGTqweDM9I66BHqlNH4d0IsaeZKSViOv7K4w==} - '@vanilla-extract/babel-plugin-debug-ids@1.2.0': - resolution: {integrity: sha512-z5nx2QBnOhvmlmBKeRX5sPVLz437wV30u+GJL+Hzj1rGiJYVNvgIIlzUpRNjVQ0MgAgiQIqIUbqPnmMc6HmDlQ==} + '@vanilla-extract/css@1.18.0': + resolution: {integrity: sha512-/p0dwOjr0o8gE5BRQ5O9P0u/2DjUd6Zfga2JGmE4KaY7ZITWMszTzk4x4CPlM5cKkRr2ZGzbE6XkuPNfp9shSQ==} - '@vanilla-extract/css@1.17.0': - resolution: {integrity: sha512-W6FqVFDD+C71ZlKsuj0MxOXSvHb1tvQ9h/+79aYfi097wLsALrnnBzd0by8C///iurrpQ3S+SH74lXd7Lr9MvA==} + '@vanilla-extract/integration@8.0.7': + resolution: {integrity: sha512-ILob4F9cEHXpbWAVt3Y2iaQJpqYq/c/5TJC8Fz58C2XmX3QW2Y589krvViiyJhQfydCGK3EbwPQhVFjQaBeKfg==} - '@vanilla-extract/integration@7.1.12': - resolution: {integrity: sha512-71HFjnfL7qXM3hqyk7z9c8zrudfO9Sut6IhSmH8IKwmLk/tIMFIL86L6nYpItfUFUa/mrER6YUQPp/SfwjRvkw==} + '@vanilla-extract/next-plugin@2.4.17': + resolution: {integrity: sha512-zdADYJtkF28PQp8bRg95tH7ICyiPlbe7IOeG2kRoN0CBnNQC5FEqubVqWSP+eaMjgbWbkhPC7Ie/zYKvWKKsaQ==} + peerDependencies: + next: '>=12.1.7' - '@vanilla-extract/private@1.0.6': - resolution: {integrity: sha512-ytsG/JLweEjw7DBuZ/0JCN4WAQgM9erfSTdS1NQY778hFQSZ6cfCDEZZ0sgVm4k54uNz6ImKB33AYvSR//fjxw==} + '@vanilla-extract/private@1.0.9': + resolution: {integrity: sha512-gT2jbfZuaaCLrAxwXbRgIhGhcXbRZCG3v4TTUnjw0EJ7ArdBRxkq4msNJkbuRkCgfIK5ATmprB5t9ljvLeFDEA==} - '@vanilla-extract/recipes@0.5.5': - resolution: {integrity: sha512-VadU7+IFUwLNLMgks29AHav/K5h7DOEfTU91RItn5vwdPfzduodNg317YbgWCcpm7FSXkuR3B3X8ZOi95UOozA==} + '@vanilla-extract/recipes@0.5.7': + resolution: {integrity: sha512-Fvr+htdyb6LVUu+PhH61UFPhwkjgDEk8L4Zq9oIdte42sntpKrgFy90MyTRtGwjVALmrJ0pwRUVr8UoByYeW8A==} peerDependencies: '@vanilla-extract/css': ^1.0.0 - '@vanilla-extract/sprinkles@1.6.3': - resolution: {integrity: sha512-oCHlQeYOBIJIA2yWy2GnY5wE2A7hGHDyJplJo4lb+KEIBcJWRnDJDg8ywDwQS5VfWJrBBO3drzYZPFpWQjAMiQ==} + '@vanilla-extract/sprinkles@1.6.5': + resolution: {integrity: sha512-HOYidLONR/SeGk8NBAeI64I4gYdsMX9vJmniL13ZcLVwawyK0s2GUENEAcGA+GYLIoeyQB61UqmhqPodJry7zA==} peerDependencies: '@vanilla-extract/css': ^1.0.0 - '@vanilla-extract/vite-plugin@4.0.19': - resolution: {integrity: sha512-NtE/sAIesCAu+6JHlanLgmfDJn/cqG8dfElfh5n1PvG2LTSMVMQhVbDefxcVhGjw1lt5QbG+u3dpZMY7KPwJhw==} + '@vanilla-extract/vite-plugin@5.1.4': + resolution: {integrity: sha512-fTYNKUK3n4ApkUf2FEcO7mpqNKEHf9kDGg8DXlkqHtPxgwPhjuaajmDfQCSBsNgnA2SLI+CB5EO6kLQuKsw2Rw==} peerDependencies: - vite: ^4.0.3 || ^5.0.0 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 - '@vitejs/plugin-react-swc@3.7.2': - resolution: {integrity: sha512-y0byko2b2tSVVf5Gpng1eEhX1OvPC7x8yns1Fx8jDzlJp4LS6CMkCPfLw47cjyoMrshQDoQw4qcgjsU9VvlCew==} + '@vanilla-extract/webpack-plugin@2.3.25': + resolution: {integrity: sha512-tnaYN3KGF8V9JZ5FuQY9T9/KmLTfiPxGCw+hhIBD7lgn8AKpg53fm+4lJDDSudTFFN3YNiO2WDjHH62IuoyLIQ==} peerDependencies: - vite: ^4 || ^5 || ^6 + webpack: ^4.30.0 || ^5.20.2 - '@vitejs/plugin-react@4.3.4': - resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} - engines: {node: ^14.18.0 || >=16.0.0} + '@vitest/browser-playwright@4.0.18': + resolution: {integrity: sha512-gfajTHVCiwpxRj1qh0Sh/5bbGLG4F/ZH/V9xvFVoFddpITfMta9YGow0W6ZpTTORv2vdJuz9TnrNSmjKvpOf4g==} + peerDependencies: + playwright: '*' + vitest: 4.0.18 + + '@vitest/browser@4.0.18': + resolution: {integrity: sha512-gVQqh7paBz3gC+ZdcCmNSWJMk70IUjDeVqi+5m5vYpEHsIwRgw3Y545jljtajhkekIpIp5Gg8oK7bctgY0E2Ng==} + peerDependencies: + vitest: 4.0.18 + + '@vitest/coverage-v8@4.0.18': + resolution: {integrity: sha512-7i+N2i0+ME+2JFZhfuz7Tg/FqKtilHjGyGvoHYQ6iLV0zahbsJ9sljC9OcFcPDbhYKCet+sG8SsVqlyGvPflZg==} peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 + '@vitest/browser': 4.0.18 + vitest: 4.0.18 + peerDependenciesMeta: + '@vitest/browser': + optional: true '@vitest/expect@2.0.5': resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} + '@vitest/expect@3.2.4': + resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} + + '@vitest/expect@4.0.18': + resolution: {integrity: sha512-8sCWUyckXXYvx4opfzVY03EOiYVxyNrHS5QxX3DAIi5dpJAAkyJezHCP77VMX4HKA2LDT/Jpfo8i2r5BE3GnQQ==} + + '@vitest/mocker@4.0.18': + resolution: {integrity: sha512-HhVd0MDnzzsgevnOWCBj5Otnzobjy5wLBe4EdeeFGv8luMsGcYqDuFRMcttKWZA5vVO8RFjexVovXvAM4JoJDQ==} + peerDependencies: + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + '@vitest/pretty-format@2.0.5': resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} - '@vitest/pretty-format@2.1.8': - resolution: {integrity: sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==} + '@vitest/pretty-format@2.1.9': + resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} + + '@vitest/pretty-format@3.2.4': + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} + + '@vitest/pretty-format@4.0.18': + resolution: {integrity: sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==} + + '@vitest/runner@4.0.18': + resolution: {integrity: sha512-rpk9y12PGa22Jg6g5M3UVVnTS7+zycIGk9ZNGN+m6tZHKQb7jrP7/77WfZy13Y/EUDd52NDsLRQhYKtv7XfPQw==} + + '@vitest/snapshot@4.0.18': + resolution: {integrity: sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==} '@vitest/spy@2.0.5': resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} - '@vitest/utils@2.0.5': - resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} + '@vitest/spy@3.2.4': + resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} + + '@vitest/spy@4.0.18': + resolution: {integrity: sha512-cbQt3PTSD7P2OARdVW3qWER5EGq7PHlvE+QfzSC0lbwO+xnt7+XH06ZzFjFRgzUX//JmpxrCu92VdwvEPlWSNw==} + + '@vitest/utils@2.0.5': + resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} + + '@vitest/utils@2.1.9': + resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} + + '@vitest/utils@3.2.4': + resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} + + '@vitest/utils@4.0.18': + resolution: {integrity: sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==} + + '@webassemblyjs/ast@1.14.1': + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} + + '@webassemblyjs/floating-point-hex-parser@1.13.2': + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} + + '@webassemblyjs/helper-api-error@1.13.2': + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} + + '@webassemblyjs/helper-buffer@1.14.1': + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} + + '@webassemblyjs/helper-numbers@1.13.2': + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} + + '@webassemblyjs/helper-wasm-section@1.14.1': + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} + + '@webassemblyjs/ieee754@1.13.2': + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} + + '@webassemblyjs/leb128@1.13.2': + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} + + '@webassemblyjs/utf8@1.13.2': + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} + + '@webassemblyjs/wasm-edit@1.14.1': + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} + + '@webassemblyjs/wasm-gen@1.14.1': + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} + + '@webassemblyjs/wasm-opt@1.14.1': + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} - '@vitest/utils@2.1.8': - resolution: {integrity: sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==} + '@webassemblyjs/wasm-parser@1.14.1': + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} + + '@webassemblyjs/wast-printer@1.14.1': + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} '@wojtekmaj/date-utils@1.5.1': resolution: {integrity: sha512-+i7+JmNiE/3c9FKxzWFi2IjRJ+KzZl1QPu6QNrsgaa2MuBgXvUy4gA1TVzf/JMdIIloB76xSKikTWuyYAIVLww==} + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + acorn-import-phases@1.0.4: + resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} + engines: {node: '>=10.13.0'} + peerDependencies: + acorn: ^8.14.0 + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} hasBin: true @@ -1709,19 +1553,31 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.1.0: - resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} engines: {node: '>=12'} ansi-styles@4.3.0: @@ -1753,8 +1609,8 @@ packages: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + array-includes@3.1.9: + resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} engines: {node: '>= 0.4'} array.prototype.findlast@1.2.5: @@ -1788,6 +1644,13 @@ packages: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} + ast-v8-to-istanbul@0.3.11: + resolution: {integrity: sha512-Qya9fkoofMjCBNVdWINMjB5KZvkYfaO9/anwkWnjxibpWUxo5iHl2sOdP7/uAqaRuUYuoo8rDwnbaaKVFxoUvw==} + + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -1795,12 +1658,12 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.11.0: - resolution: {integrity: sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==} + axe-core@4.11.1: + resolution: {integrity: sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==} engines: {node: '>=4'} - axios@1.7.9: - resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} + axios@1.13.4: + resolution: {integrity: sha512-1wVkUaAO6WyaYtCkcYCOx12ZgpGf9Zif+qXa4n+oYzK558YryKqiL6UWwd5DqiH3VRW0GYhTZQ/vlgJrCoNQlg==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -1809,62 +1672,69 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - better-opn@3.0.2: - resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} - engines: {node: '>=12.0.0'} + baseline-browser-mapping@2.9.19: + resolution: {integrity: sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==} + hasBin: true + + big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browser-assert@1.2.1: - resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} - - browserslist@4.24.3: - resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==} + browserslist@4.28.1: + resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - call-bind-apply-helpers@1.0.1: - resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} call-bind@1.0.8: resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} engines: {node: '>= 0.4'} - call-bound@1.0.3: - resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} + caniuse-lite@1.0.30001767: + resolution: {integrity: sha512-34+zUAMhSH+r+9eKmYG+k2Rpt8XttfE4yXAjoZvkAPs15xcYQhyBYdalJ65BzivAvGRMViEjy6oKr/S91loekQ==} - caniuse-lite@1.0.30001690: - resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} + chai@5.3.3: + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} + engines: {node: '>=18'} - chai@5.1.2: - resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} - engines: {node: '>=12'} + chai@6.2.2: + resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} + engines: {node: '>=18'} chalk@3.0.0: resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} @@ -1874,16 +1744,28 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - check-error@2.1.1: - resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + check-error@2.1.3: + resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==} engines: {node: '>= 16'} chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} - chromatic@11.28.0: - resolution: {integrity: sha512-Xy3907MXY5UP7LoMksmsT02xCUsoLZpcC6sRITjd+KiXBteOxPF7J+QsFqy/VzQCEN6fpt/R2bOIpE+PwPfcZA==} + chromatic@11.29.0: + resolution: {integrity: sha512-yisBlntp9hHVj19lIQdpTlcYIXuU9H/DbFuu6tyWHmj6hWT2EtukCCcxYXL78XdQt1vm2GfIrtgtKpj/Rzmo4A==} + hasBin: true + peerDependencies: + '@chromatic-com/cypress': ^0.*.* || ^1.0.0 + '@chromatic-com/playwright': ^0.*.* || ^1.0.0 + peerDependenciesMeta: + '@chromatic-com/cypress': + optional: true + '@chromatic-com/playwright': + optional: true + + chromatic@13.3.5: + resolution: {integrity: sha512-MzPhxpl838qJUo0A55osCF2ifwPbjcIPeElr1d4SHcjnHoIcg7l1syJDrAYK/a+PcCBrOGi06jPNpQAln5hWgw==} hasBin: true peerDependencies: '@chromatic-com/cypress': ^0.*.* || ^1.0.0 @@ -1894,10 +1776,17 @@ packages: '@chromatic-com/playwright': optional: true + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + cli-width@4.1.0: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} engines: {node: '>= 12'} + client-only@0.0.1: + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -1917,6 +1806,9 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -1926,29 +1818,16 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} - engines: {node: '>= 0.6'} - - cookie@1.0.2: - resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + cookie@1.1.1: + resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} engines: {node: '>=18'} - cosmiconfig@8.3.6: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + css-what@6.2.2: + resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} engines: {node: '>= 6'} css.escape@1.5.1: @@ -1959,8 +1838,8 @@ packages: engines: {node: '>=4'} hasBin: true - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -1977,8 +1856,8 @@ packages: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} - debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1986,8 +1865,8 @@ packages: supports-color: optional: true - dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + dedent@1.7.1: + resolution: {integrity: sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -2012,13 +1891,21 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + default-browser-id@5.0.1: + resolution: {integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==} + engines: {node: '>=18'} + + default-browser@5.5.0: + resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} + engines: {node: '>=18'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} @@ -2032,6 +1919,10 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -2046,12 +1937,6 @@ packages: dom-accessibility-api@0.6.3: resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} - dom7@3.0.0: - resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==} - - dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - dotenv@16.6.1: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} @@ -2060,8 +1945,8 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} - electron-to-chromium@1.5.79: - resolution: {integrity: sha512-nYOxJNxQ9Om4EC88BE4pPoNI8xwSFf8pU/BAeOl4Hh/b/i6V4biTAzwV7pXi3ARKeoYO5JZKMIXTryXSVer5RA==} + electron-to-chromium@1.5.283: + resolution: {integrity: sha512-3vifjt1HgrGW/h76UEeny+adYApveS9dH2h3p57JYzBSXJIKUJAvtmIytDKjcSCt9xHfrNCFJ7gts6vkhuq++w==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2069,15 +1954,20 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} + emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + + empathic@2.0.0: + resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==} + engines: {node: '>=14'} - error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + enhanced-resolve@5.18.4: + resolution: {integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==} + engines: {node: '>=10.13.0'} - es-abstract@1.23.9: - resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} + es-abstract@1.24.1: + resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} engines: {node: '>= 0.4'} es-define-property@1.0.1: @@ -2091,42 +1981,34 @@ packages: es-get-iterator@1.1.3: resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - es-iterator-helpers@1.2.1: - resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} + es-iterator-helpers@1.2.2: + resolution: {integrity: sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==} engines: {node: '>= 0.4'} - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + + es-module-lexer@2.0.0: + resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} es-set-tostringtag@2.1.0: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + es-shim-unscopables@1.1.0: + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} + engines: {node: '>= 0.4'} es-to-primitive@1.3.0: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} - esbuild-register@3.6.0: - resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} - peerDependencies: - esbuild: '>=0.12 <1' - - esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - - esbuild@0.23.1: - resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} - engines: {node: '>=18'} - hasBin: true - - esbuild@0.24.2: - resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + esbuild@0.27.2: + resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} engines: {node: '>=18'} hasBin: true @@ -2138,8 +2020,8 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + eslint-config-prettier@9.1.2: + resolution: {integrity: sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==} hasBin: true peerDependencies: eslint: '>=7.0.0' @@ -2150,13 +2032,13 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-prettier@5.2.1: - resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} + eslint-plugin-prettier@5.5.5: + resolution: {integrity: sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' eslint: '>=8.0.0' - eslint-config-prettier: '*' + eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' prettier: '>=3.0.0' peerDependenciesMeta: '@types/eslint': @@ -2164,43 +2046,47 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-react-hooks@5.1.0: - resolution: {integrity: sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==} + eslint-plugin-react-hooks@5.2.0: + resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - eslint-plugin-react-refresh@0.4.16: - resolution: {integrity: sha512-slterMlxAhov/DZO8NScf6mEeMBBXodFUolijDvrtTxyezyLoTQaa73FyYus/VbTdftd8wBgBxPMRk3poleXNQ==} + eslint-plugin-react-refresh@0.4.26: + resolution: {integrity: sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==} peerDependencies: eslint: '>=8.40' - eslint-plugin-react@7.37.3: - resolution: {integrity: sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==} + eslint-plugin-react@7.37.5: + resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-storybook@0.11.2: - resolution: {integrity: sha512-0Z4DUklJrC+GHjCRXa7PYfPzWC15DaVnwaOYenpgXiCEijXPZkLKCms+rHhtoRcWccP7Z8DpOOaP1gc3P9oOwg==} + eslint-plugin-storybook@0.11.6: + resolution: {integrity: sha512-3WodYD6Bs9ACqnB+TP2TuLh774c/nacAjxSKOP9bHJ2c8rf+nrhocxjjeAWNmO9IPkFIzTKlcl0vNXI2yYpVOw==} engines: {node: '>= 18'} peerDependencies: eslint: '>=8' - eslint-scope@8.2.0: - resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + eslint-scope@8.4.0: + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.2.0: - resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + eslint-visitor-keys@4.2.1: + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.17.0: - resolution: {integrity: sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==} + eslint@9.39.2: + resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -2209,8 +2095,8 @@ packages: jiti: optional: true - espree@10.3.0: - resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esprima@4.0.1: @@ -2218,14 +2104,18 @@ packages: engines: {node: '>=4'} hasBin: true - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -2244,24 +2134,37 @@ packages: resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} engines: {node: '>= 0.8'} + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + expect-type@1.3.0: + resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} + engines: {node: '>=12.0.0'} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fastq@1.18.0: - resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} @@ -2283,11 +2186,11 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flatted@3.3.2: - resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} - follow-redirects@1.15.9: - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + follow-redirects@1.15.11: + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -2295,15 +2198,20 @@ packages: debug: optional: true - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} - form-data@4.0.1: - resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + form-data@4.0.5: + resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} engines: {node: '>= 6'} - framer-motion@12.23.12: - resolution: {integrity: sha512-6e78rdVtnBvlEVgu6eFEAgG9v3wLnYEboM8I5O5EXvfKC8gxGQB8wXJdhkMy10iVcn05jl6CNw7/HTsTCfwcWg==} + framer-motion@12.29.2: + resolution: {integrity: sha512-lSNRzBJk4wuIy0emYQ/nfZ7eWhqud2umPKw2QAQki6uKhZPKm2hRQHeQoHTG9MIvfobb+A/LbEWPJU794ZUKrg==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -2319,6 +2227,11 @@ packages: fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -2334,6 +2247,10 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + generator-function@2.0.1: + resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} + engines: {node: '>= 0.4'} + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -2342,8 +2259,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.7: - resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} get-proto@1.0.1: @@ -2365,20 +2282,25 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@11.1.0: + resolution: {integrity: sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==} + engines: {node: 20 || >=22} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + hasBin: true + glob@9.3.5: resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} engines: {node: '>=16 || 14 >=14.17'} - globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.14.0: - resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} globalthis@1.0.4: @@ -2388,8 +2310,8 @@ packages: globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - goober@2.1.16: - resolution: {integrity: sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==} + goober@2.1.18: + resolution: {integrity: sha512-2vFqsaDVIT9Gz7N6kAL++pLpp41l3PfDuusHcjnGLfR6+huZkl6ziX+zgVC3ZxpqWhzH6pyDdGrCeDhMIvwaxw==} peerDependencies: csstype: ^3.0.10 @@ -2400,11 +2322,8 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - graphql@16.11.0: - resolution: {integrity: sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==} + graphql@16.12.0: + resolution: {integrity: sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} has-bigints@1.1.0: @@ -2440,6 +2359,9 @@ packages: hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} @@ -2448,16 +2370,18 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} - import-from-esm@1.3.4: - resolution: {integrity: sha512-7EyUlPFC0HOlBDpUFGfYstsU7XHxZJKAAMzCT8wZ0hMW7b+hG51LIKTDcsgtz8Pu6YC0HqRVbX+rVUtsGMUKvg==} - engines: {node: '>=16.20'} + image-size@2.0.2: + resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} + engines: {node: '>=16.x'} + hasBin: true - import-meta-resolve@4.1.0: - resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} @@ -2467,9 +2391,6 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - install@0.13.0: resolution: {integrity: sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==} engines: {node: '>= 0.10'} @@ -2486,11 +2407,8 @@ packages: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} - is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - - is-async-function@2.1.0: - resolution: {integrity: sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==} + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} engines: {node: '>= 0.4'} is-bigint@1.1.0: @@ -2501,8 +2419,8 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-boolean-object@1.2.1: - resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} is-callable@1.2.7: @@ -2521,9 +2439,9 @@ packages: resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true is-extglob@2.1.1: @@ -2538,18 +2456,27 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + is-generator-function@1.1.2: + resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} engines: {node: '>= 0.4'} is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + is-node-process@1.2.0: resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} @@ -2589,17 +2516,17 @@ packages: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} - is-weakref@1.1.0: - resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} engines: {node: '>= 0.4'} is-weakset@2.0.4: resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -2607,27 +2534,46 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-reports@3.2.0: + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + engines: {node: '>=8'} + iterator.prototype@1.1.5: resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} engines: {node: '>= 0.4'} + jackspeak@4.2.3: + resolution: {integrity: sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==} + engines: {node: 20 || >=22} + javascript-natural-sort@0.7.1: resolution: {integrity: sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==} javascript-stringify@2.1.0: resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==} + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + js-tokens@10.0.0: + resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true - jsdoc-type-pratt-parser@4.1.0: - resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} - engines: {node: '>=12.0.0'} - jsesc@3.1.0: resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} @@ -2642,6 +2588,9 @@ packages: json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -2650,8 +2599,8 @@ packages: engines: {node: '>=6'} hasBin: true - jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonfile@6.2.0: + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} jsx-ast-utils@3.3.5: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} @@ -2671,8 +2620,13 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + loader-runner@4.3.1: + resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==} + engines: {node: '>=6.11.5'} + + loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} @@ -2681,22 +2635,23 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + lodash@4.17.23: + resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@3.1.2: - resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} - - lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + loupe@3.2.1: + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.2.5: + resolution: {integrity: sha512-vFrFJkWtJvJnD5hg+hJvVE8Lh/TcMzKnTgCWmtBipwI5yLX/iX+5UB2tfuyODF5E7k9xEzMdYgGqaSb1c0c5Yw==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -2704,24 +2659,24 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.27.0: - resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} - engines: {node: '>=12'} - - magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} magic-string@0.30.8: resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} engines: {node: '>=12'} + magicast@0.5.2: + resolution: {integrity: sha512-E3ZJh4J3S9KfwdjZhe2afj6R9lGIN5Pher1pF39UGrXRqq/VDaGVIGN13BjHd2u8B61hArAGOnso7nBOouW3TQ==} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + map-age-cleaner@0.1.3: resolution: {integrity: sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==} engines: {node: '>=6'} - map-or-similar@1.5.0: - resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} - math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} @@ -2733,16 +2688,8 @@ packages: resolution: {integrity: sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==} engines: {node: '>=10'} - memoizerific@1.11.3: - resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} - - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} @@ -2760,6 +2707,10 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} + minimatch@10.1.2: + resolution: {integrity: sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -2782,20 +2733,23 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - mlly@1.7.3: - resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==} + mlly@1.8.0: + resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} modern-ahocorasick@1.1.0: resolution: {integrity: sha512-sEKPVl2rM+MNVkGQt3ChdmD8YsigmXdn5NifZn6jiwn9LRJpWm8F3guhaqrJT/JOat6pwpbXEk6kv+b9DMIjsQ==} - motion-dom@12.23.12: - resolution: {integrity: sha512-RcR4fvMCTESQBD/uKQe49D5RUeDOokkGRmz4ceaJKDBgHYtZtntC/s2vLvY38gqGaytinij/yi3hMcWVcEF5Kw==} + module-alias@2.3.4: + resolution: {integrity: sha512-bOclZt8hkpuGgSSoG07PKmvzTizROilUTvLNyrMqvlC9snhs7y7GzjNWAVbISIOlhCP1T14rH1PDAV9iNyBq/w==} - motion-utils@12.23.6: - resolution: {integrity: sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ==} + motion-dom@12.29.2: + resolution: {integrity: sha512-/k+NuycVV8pykxyiTCoFzIVLA95Nb1BFIVvfSu9L50/6K6qNeAYtkxXILy/LRutt7AzaYDc2myj0wkCVVYAPPA==} - motion@12.23.12: - resolution: {integrity: sha512-8jCD8uW5GD1csOoqh1WhH1A6j5APHVE15nuBkFeRiMzYBdRwyAHmSP/oXSuW0WJPZRXTFdBoG4hY9TFWNhhwng==} + motion-utils@12.29.2: + resolution: {integrity: sha512-G3kc34H2cX2gI63RqU+cZq+zWRRPSsNIOjpdl9TN4AQwC4sgwYPl/Q/Obf/d53nOm569T0fYK+tcoSV50BWx8A==} + + motion@12.29.2: + resolution: {integrity: sha512-jMpHdAzEDF1QQ055cB+1lOBLdJ6ialVWl6QQzpJI2OvmHequ7zFVHM2mx0HNAy+Tu4omUlApfC+4vnkX0geEOg==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -2808,11 +2762,15 @@ packages: react-dom: optional: true + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - msw@2.10.4: - resolution: {integrity: sha512-6R1or/qyele7q3RyPwNuvc0IxO8L8/Aim6Sz5ncXEgcWUNxSKE+udriTOWHtpMwmfkLYlacA2y7TIx4cL5lgHA==} + msw@2.12.7: + resolution: {integrity: sha512-retd5i3xCZDVWMYjHEVuKTmhqY8lSsxujjVrZiGbbdoxxIBg5S7rCuYy/YQpfrTYIxpd/o0Kyb/3H+1udBMoYg==} engines: {node: '>=18'} hasBin: true peerDependencies: @@ -2825,16 +2783,38 @@ packages: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} - nanoid@3.3.8: - resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + next@15.5.7: + resolution: {integrity: sha512-+t2/0jIJ48kUpGKkdlhgkv+zPTEOoXyr60qXe68eB/pl3CMJaLeIGjzp5D6Oqt25hCBiBTt8wEeeAzfJvUKnPQ==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + deprecated: This version has a security vulnerability. Please upgrade to a patched version. See https://nextjs.org/blog/security-update-2025-12-11 for more details. + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.51.1 + babel-plugin-react-compiler: '*' + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + sass: ^1.3.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@playwright/test': + optional: true + babel-plugin-react-compiler: + optional: true + sass: + optional: true node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} @@ -2845,8 +2825,8 @@ packages: encoding: optional: true - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + node-releases@2.0.27: + resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -2856,8 +2836,8 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - object-inspect@1.13.3: - resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} object-is@1.1.6: @@ -2872,8 +2852,8 @@ packages: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} - object.entries@1.1.8: - resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + object.entries@1.1.9: + resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} engines: {node: '>= 0.4'} object.fromentries@2.0.8: @@ -2884,9 +2864,12 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} + obug@2.1.1: + resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + + open@10.2.0: + resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} + engines: {node: '>=18'} optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} @@ -2911,14 +2894,13 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -2934,18 +2916,18 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} + path-scurry@2.0.1: + resolution: {integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==} + engines: {node: 20 || >=22} + path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} - pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} engines: {node: '>= 14.16'} picocolors@1.1.1: @@ -2955,35 +2937,53 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - picomatch@4.0.2: - resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} engines: {node: '>=12'} - pkg-types@1.3.0: - resolution: {integrity: sha512-kS7yWjVFCkIw9hqdJBoMxDdzEngmkr5FXeWZZfQ6GoYacjVnsW6l2CcYW/0ThD0vF4LPJgVYnrg4d0uuhwYQbg==} + pixelmatch@7.1.0: + resolution: {integrity: sha512-1wrVzJ2STrpmONHKBy228LM1b84msXDUoAzVEl0R8Mz4Ce6EPr+IVtxm8+yvrqLYMHswREkjYFaMxnyGnaY3Ng==} + hasBin: true + + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - polished@4.3.1: - resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} - engines: {node: '>=10'} + playwright-core@1.58.2: + resolution: {integrity: sha512-yZkEtftgwS8CsfYo7nm0KE8jsvm6i/PTgVtB8DL726wNf6H2IMsDuxCpJj59KDaxCtSnrWan2AeDqM7JBaultg==} + engines: {node: '>=18'} + hasBin: true - possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + playwright@1.58.2: + resolution: {integrity: sha512-vA30H8Nvkq/cPBnNw4Q8TWz1EJyqgpuinBcHET0YVJVFldr8JDNiU9LaWAE1KqSkRYazuaBhTpB5ZzShOezQ6A==} + engines: {node: '>=18'} + hasBin: true + + pngjs@7.0.0: + resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==} + engines: {node: '>=14.19.0'} + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} - postcss@8.4.49: - resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} + postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + prettier-linter-helpers@1.0.1: + resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} engines: {node: '>=6.0.0'} - prettier@3.4.2: - resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} + prettier@3.8.1: + resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} engines: {node: '>=14'} hasBin: true @@ -2991,10 +2991,6 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -3005,18 +3001,12 @@ packages: proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - psl@1.15.0: - resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} - punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} react-calendar@5.1.0: resolution: {integrity: sha512-09o/rQHPZGEi658IXAJtWfra1N69D1eFnuJ3FQm9qUVzlzNnos1+GWgGiUeSs22QOpNm32aoVFOimq0p3Ug9Eg==} @@ -3028,20 +3018,14 @@ packages: '@types/react': optional: true - react-confetti@6.2.2: - resolution: {integrity: sha512-K+kTyOPgX+ZujMZ+Rmb7pZdHBvg+DzinG/w4Eh52WOB8/pfO38efnnrtEZNJmjTvLxc16RBYO+tPM68Fg8viBA==} - engines: {node: '>=16'} - peerDependencies: - react: ^16.3.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 - - react-docgen-typescript@2.2.2: - resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} + react-docgen-typescript@2.4.0: + resolution: {integrity: sha512-ZtAp5XTO5HRzQctjPU0ybY0RRCQO19X/8fxn3w7y2VVTUbGHDKULPTL4ky3vB05euSgG5NpALhEhDPvQ56wvXg==} peerDependencies: typescript: '>= 4.3.x' - react-docgen@7.1.0: - resolution: {integrity: sha512-APPU8HB2uZnpl6Vt/+0AFoVYgSRtfiP6FLrZgPPTDmqSb2R4qZRbgd0A3VzIFxDt5e+Fozjx79WjLWnF69DK8g==} - engines: {node: '>=16.14.0'} + react-docgen@8.0.2: + resolution: {integrity: sha512-+NRMYs2DyTP4/tqWz371Oo50JqmWltR1h2gcdgUMAWZJIAvrd0/SqlCfx7tpzpl/s36rzw6qH2MjoNrxtRNYhA==} + engines: {node: ^20.9.0 || >=22} react-dom@18.3.1: resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} @@ -3053,14 +3037,14 @@ packages: peerDependencies: react: '>=16.13.1' - react-hook-form@7.56.1: - resolution: {integrity: sha512-qWAVokhSpshhcEuQDSANHx3jiAEFzu2HAaaQIzi/r9FNPm1ioAvuJSD4EuZzWd7Al7nTRKcKPnBKO7sRn+zavQ==} + react-hook-form@7.71.1: + resolution: {integrity: sha512-9SUJKCGKo8HUSsCO+y0CtqkqI5nNuaDqTxyqPsZPqIwudpj4rCrAz/jZV+jn57bx5gtZKOh3neQu94DXMc+w5w==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 - react-hot-toast@2.5.1: - resolution: {integrity: sha512-54Gq1ZD1JbmAb4psp9bvFHjS7lje+8ubboUmvKZkCsQBLH6AOpZ9JemfRvIdHcfb9AZXRaFLrb3qUobGYDJhFQ==} + react-hot-toast@2.6.0: + resolution: {integrity: sha512-bH+2EBMZ4sdyou/DPrfgIouFpcRLCJ+HoCA32UoAYHn6T3Ur5yfcDCeSr5mwldl6pFOsiocmrXMuoCJ1vV8bWg==} engines: {node: '>=10'} peerDependencies: react: '>=16' @@ -3075,27 +3059,6 @@ packages: react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - react-refresh@0.14.2: - resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} - engines: {node: '>=0.10.0'} - - react-router-dom@7.1.1: - resolution: {integrity: sha512-vSrQHWlJ5DCfyrhgo0k6zViOe9ToK8uT5XGSmnuC2R3/g261IdIMpZVqfjD6vWSXdnf5Czs4VA/V60oVR6/jnA==} - engines: {node: '>=20.0.0'} - peerDependencies: - react: '>=18' - react-dom: '>=18' - - react-router@7.1.1: - resolution: {integrity: sha512-39sXJkftkKWRZ2oJtHhCxmoCrBCULr/HAH4IT5DHlgu/Q0FCPV0S4Lx+abjDTx/74xoZzNYDYbOZWlJjruyuDQ==} - engines: {node: '>=20.0.0'} - peerDependencies: - react: '>=18' - react-dom: '>=18' - peerDependenciesMeta: - react-dom: - optional: true - react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} @@ -3104,8 +3067,8 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - recast@0.23.9: - resolution: {integrity: sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==} + recast@0.23.11: + resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} engines: {node: '>= 4'} redent@3.0.0: @@ -3116,9 +3079,6 @@ packages: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} - regenerator-runtime@0.14.1: - resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} @@ -3127,18 +3087,19 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + require-like@0.1.2: resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} - resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} engines: {node: '>= 0.4'} hasBin: true @@ -3146,35 +3107,25 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - rollup-plugin-visualizer@5.14.0: - resolution: {integrity: sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA==} - engines: {node: '>=18'} - hasBin: true - peerDependencies: - rolldown: 1.x - rollup: 2.x || 3.x || 4.x - peerDependenciesMeta: - rolldown: - optional: true - rollup: - optional: true + rettime@0.7.0: + resolution: {integrity: sha512-LPRKoHnLKd/r3dVxcwO7vhCW+orkOGj9ViueosEBK6ie89CijnfRlhaDhHq/3Hxu4CkWQtxwlBG0mzTQY6uQjw==} - rollup@4.30.0: - resolution: {integrity: sha512-sDnr1pcjTgUT69qBksNF1N1anwfbyYG6TBQ22b03bII8EdiUQ7J0TlozVaTMjT/eEJAO49e1ndV7t+UZfL1+vA==} + rollup@4.57.1: + resolution: {integrity: sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + run-applescript@7.1.0: + resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} + engines: {node: '>=18'} safe-array-concat@1.1.3: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-push-apply@1.0.0: resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} engines: {node: '>= 0.4'} @@ -3186,17 +3137,21 @@ packages: scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + schema-utils@4.3.3: + resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==} + engines: {node: '>= 10.13.0'} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.3: - resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} engines: {node: '>=10'} hasBin: true - set-cookie-parser@2.7.1: - resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} @@ -3210,6 +3165,10 @@ packages: resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} engines: {node: '>= 0.4'} + sharp@0.34.5: + resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -3234,38 +3193,44 @@ packages: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} + engines: {node: '>=18'} source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - - ssr-window@3.0.0: - resolution: {integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==} + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} statuses@2.0.2: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} - storybook@8.4.7: - resolution: {integrity: sha512-RP/nMJxiWyFc8EVMH5gp20ID032Wvk+Yr3lmKidoegto5Iy+2dVQnUoElZb2zpbVXNHWakGuAkfI0dY1Hfp/vw==} + storybook@10.2.7: + resolution: {integrity: sha512-LFKSuZyF6EW2/Kkl5d7CvqgwhXXfuWv+aLBuoc616boLKJ3mxXuea+GxIgfk02NEyTKctJ0QsnSh5pAomf6Qkg==} hasBin: true peerDependencies: prettier: ^2 || ^3 @@ -3307,8 +3272,8 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} engines: {node: '>=12'} strip-bom@3.0.0: @@ -3319,71 +3284,134 @@ packages: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} - strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + strip-indent@4.1.1: + resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==} engines: {node: '>=12'} strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + styled-jsx@5.1.6: + resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} + engines: {node: '>= 12.0.0'} + peerDependencies: + '@babel/core': '*' + babel-plugin-macros: '*' + react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' + peerDependenciesMeta: + '@babel/core': + optional: true + babel-plugin-macros: + optional: true + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svg-parser@2.0.4: - resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} - - swiper@11.2.1: - resolution: {integrity: sha512-62G69+iQRIfUqTmJkWpZDcX891Ra8O9050ckt1/JI2H+0483g+gq0m7gINecDqMtDh2zt5dK+uzBRxGhGOOvQA==} + swiper@11.2.10: + resolution: {integrity: sha512-RMeVUUjTQH+6N3ckimK93oxz6Sn5la4aDlgPzB+rBrG/smPdCTicXyhxa+woIpopz+jewEloiEE3lKo1h9w2YQ==} engines: {node: '>= 4.7.0'} - swiper@6.8.4: - resolution: {integrity: sha512-O+buF9Q+sMA0H7luMS8R59hCaJKlpo8PXhQ6ZYu6Rn2v9OsFd4d1jmrv14QvxtQpKAvL/ZiovEeANI/uDGet7g==} - engines: {node: '>= 4.7.0'} - - synckit@0.9.2: - resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} + synckit@0.11.12: + resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} engines: {node: ^14.18.0 || >=16.0.0} + tagged-tag@1.0.0: + resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} + engines: {node: '>=20'} + + tapable@2.3.0: + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + engines: {node: '>=6'} + + terser-webpack-plugin@5.3.16: + resolution: {integrity: sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.46.0: + resolution: {integrity: sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==} + engines: {node: '>=10'} + hasBin: true + tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@1.0.2: + resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==} + engines: {node: '>=18'} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + tinyrainbow@1.2.0: resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} engines: {node: '>=14.0.0'} + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} + engines: {node: '>=14.0.0'} + + tinyrainbow@3.0.3: + resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} + engines: {node: '>=14.0.0'} + tinyspy@3.0.2: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} - tmp@0.2.3: - resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} - engines: {node: '>=14.14'} + tinyspy@4.0.4: + resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} + engines: {node: '>=14.0.0'} + + tldts-core@7.0.21: + resolution: {integrity: sha512-oVOMdHvgjqyzUZH1rOESgJP1uNe2bVrfK0jUHHmiM2rpEiRbf3j4BrsIc6JigJRbHGanQwuZv/R+LTcHsw+bLA==} + + tldts@7.0.21: + resolution: {integrity: sha512-Plu6V8fF/XU6d2k8jPtlQf5F4Xx2hAin4r2C2ca7wR8NK5MbRTo9huLUWRe28f3Uk8bYZfg74tit/dSjc18xnw==} + hasBin: true to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - tough-cookie@4.1.4: - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} + tough-cookie@6.0.0: + resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==} + engines: {node: '>=16'} + tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - ts-api-utils@2.0.0: - resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + ts-api-utils@2.4.0: + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -3392,8 +3420,8 @@ packages: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} - tsconfck@3.1.4: - resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==} + tsconfck@3.1.6: + resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} engines: {node: ^18 || >=20} hasBin: true peerDependencies: @@ -3407,29 +3435,19 @@ packages: engines: {node: '>=6'} tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - turbo-stream@2.4.0: - resolution: {integrity: sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==} - - tween-functions@1.2.0: - resolution: {integrity: sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==} + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} - type-fest@4.41.0: - resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} - engines: {node: '>=16'} + type-fest@5.4.3: + resolution: {integrity: sha512-AXSAQJu79WGc79/3e9/CR77I/KQgeY1AhNvcShIH4PTcGYyC4xv6H4R4AUOwkPS5799KlVDAu8zExeCrkGquiA==} + engines: {node: '>=20'} typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} @@ -3447,31 +3465,27 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.28.0: - resolution: {integrity: sha512-jfZtxJoHm59bvoCMYCe2BM0/baMswRhMmYhy+w6VfcyHrjxZ0OJe0tGasydCpIpA+A/WIJhTyZfb3EtwNC/kHQ==} + typescript-eslint@8.54.0: + resolution: {integrity: sha512-CKsJ+g53QpsNPqbzUsfKVgd3Lny4yKZ1pP4qN3jdMOg/sisIDLGyDMezycquXLE5JsEU0wp3dGNdzig0/fmSVQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' typescript@5.6.3: resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true - ufo@1.5.4: - resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + ufo@1.6.3: + resolution: {integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==} unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - undici-types@6.20.0: - resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} - - universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} + undici-types@7.16.0: + resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} @@ -3480,12 +3494,15 @@ packages: unplugin@1.0.1: resolution: {integrity: sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==} - unplugin@1.16.1: - resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} - engines: {node: '>=14.0.0'} + unplugin@2.3.11: + resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} + engines: {node: '>=18.12.0'} - update-browserslist-db@1.1.1: - resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + until-async@3.0.2: + resolution: {integrity: sha512-IiSk4HlzAMqTUseHHe3VhIGyuFmN90zMTpD3Z3y8jeQbzLIq500MVM7Jq2vUAnTKAFPJrqwkzr6PoTcPhGcOiw==} + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -3493,30 +3510,22 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - - util@0.12.5: - resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - - vite-bundle-visualizer@1.2.1: - resolution: {integrity: sha512-cwz/Pg6+95YbgIDp+RPwEToc4TKxfsFWSG/tsl2DSZd9YZicUag1tQXjJ5xcL7ydvEoaC2FOZeaXOU60t9BRXw==} - engines: {node: ^18.19.0 || >=20.6.0} - hasBin: true + use-sync-external-store@1.6.0: + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - vite-node@1.6.0: - resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} - engines: {node: ^18.0.0 || >=20.0.0} + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true - vite-plugin-svgr@4.3.0: - resolution: {integrity: sha512-Jy9qLB2/PyWklpYy0xk0UU3TlU0t2UMpJXZvf+hWII1lAmRHrOUKi11Uw8N3rxoNk7atZNYO3pR3vI1f7oi+6w==} + vite-plugin-storybook-nextjs@3.1.10: + resolution: {integrity: sha512-bZATcsl0qfMHhipklOCzXfKke8Tjhgof2WNHEk1caXq86eKZIoun8XOvIZYpWTVpS6bSYHOSpva0vcFbPjohmw==} peerDependencies: - vite: '>=2.6.0' + next: ^14.1.0 || ^15.0.0 || ^16.0.0 + storybook: ^0.0.0-0 || ^9.0.0 || ^10.0.0 || ^10.0.0-0 || ^10.1.0-0 || ^10.2.0-0 || ^10.3.0-0 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 vite-tsconfig-paths@5.1.4: resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} @@ -3526,22 +3535,27 @@ packages: vite: optional: true - vite@5.4.11: - resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} - engines: {node: ^18.0.0 || >=20.0.0} + vite@7.3.1: + resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 peerDependenciesMeta: '@types/node': optional: true + jiti: + optional: true less: optional: true lightningcss: @@ -3556,50 +3570,52 @@ packages: optional: true terser: optional: true + tsx: + optional: true + yaml: + optional: true - vite@6.0.7: - resolution: {integrity: sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + vitest@4.0.18: + resolution: {integrity: sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==} + engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: - '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: '>=1.21.0' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - sass-embedded: '*' - stylus: '*' - sugarss: '*' - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 + '@edge-runtime/vm': '*' + '@opentelemetry/api': ^1.9.0 + '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 + '@vitest/browser-playwright': 4.0.18 + '@vitest/browser-preview': 4.0.18 + '@vitest/browser-webdriverio': 4.0.18 + '@vitest/ui': 4.0.18 + happy-dom: '*' + jsdom: '*' peerDependenciesMeta: - '@types/node': + '@edge-runtime/vm': optional: true - jiti: - optional: true - less: - optional: true - lightningcss: + '@opentelemetry/api': optional: true - sass: + '@types/node': optional: true - sass-embedded: + '@vitest/browser-playwright': optional: true - stylus: + '@vitest/browser-preview': optional: true - sugarss: + '@vitest/browser-webdriverio': optional: true - terser: + '@vitest/ui': optional: true - tsx: + happy-dom: optional: true - yaml: + jsdom: optional: true warning@4.0.3: resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} + watchpack@2.5.1: + resolution: {integrity: sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==} + engines: {node: '>=10.13.0'} + webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -3613,6 +3629,16 @@ packages: webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + webpack@5.104.1: + resolution: {integrity: sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} @@ -3628,8 +3654,8 @@ packages: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} - which-typed-array@1.1.18: - resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} + which-typed-array@1.1.20: + resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} engines: {node: '>= 0.4'} which@2.0.2: @@ -3637,6 +3663,11 @@ packages: engines: {node: '>= 8'} hasBin: true + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} @@ -3649,8 +3680,8 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + ws@8.19.0: + resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -3661,6 +3692,10 @@ packages: utf-8-validate: optional: true + wsl-utils@0.1.0: + resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} + engines: {node: '>=18'} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -3680,15 +3715,15 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yoctocolors-cjs@2.1.2: - resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + yoctocolors-cjs@2.1.3: + resolution: {integrity: sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==} engines: {node: '>=18'} - zod@3.24.3: - resolution: {integrity: sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==} + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - zustand@5.0.7: - resolution: {integrity: sha512-Ot6uqHDW/O2VdYsKLLU8GQu8sCOM1LcoE8RwvLv9uuRT9s6SOHCKs0ZEOhxg+I1Ld+A1Q5lwx+UlKXXUoCZITg==} + zustand@5.0.11: + resolution: {integrity: sha512-fdZY+dk7zn/vbWNCYmzZULHRrss0jx5pPFiOuMZ/5HJN6Yv3u+1Wswy/4MpZEkEGhtNH+pwxZB8OKgUBPzYAGg==} engines: {node: '>=12.20.0'} peerDependencies: '@types/react': '>=18.0.0' @@ -3707,498 +3742,455 @@ packages: snapshots: - '@adobe/css-tools@4.4.1': {} - - '@ampproject/remapping@2.3.0': - dependencies: - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@adobe/css-tools@4.4.4': {} - '@babel/code-frame@7.26.2': + '@babel/code-frame@7.29.0': dependencies: - '@babel/helper-validator-identifier': 7.25.9 + '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.26.3': {} + '@babel/compat-data@7.29.0': {} - '@babel/core@7.26.0': + '@babel/core@7.29.0': dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.3 - '@babel/template': 7.25.9 - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.0 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6(@babel/core@7.29.0) + '@babel/helpers': 7.28.6 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.0 + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.26.3': + '@babel/generator@7.29.0': dependencies: - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 - '@jridgewell/gen-mapping': 0.3.8 - '@jridgewell/trace-mapping': 0.3.25 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 - '@babel/helper-compilation-targets@7.25.9': + '@babel/helper-compilation-targets@7.28.6': dependencies: - '@babel/compat-data': 7.26.3 - '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.3 + '@babel/compat-data': 7.29.0 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.28.1 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-module-imports@7.25.9': + '@babel/helper-globals@7.28.0': {} + + '@babel/helper-module-imports@7.28.6': dependencies: - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': + '@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-imports': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.4 + '@babel/core': 7.29.0 + '@babel/helper-module-imports': 7.28.6 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.29.0 transitivePeerDependencies: - supports-color - '@babel/helper-plugin-utils@7.25.9': {} - - '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-plugin-utils@7.28.6': {} - '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-validator-option@7.25.9': {} - - '@babel/helpers@7.26.0': - dependencies: - '@babel/template': 7.25.9 - '@babel/types': 7.26.3 + '@babel/helper-validator-identifier@7.28.5': {} - '@babel/parser@7.26.3': - dependencies: - '@babel/types': 7.26.3 + '@babel/helper-validator-option@7.27.1': {} - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': + '@babel/helpers@7.28.6': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 - '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.0)': + '@babel/parser@7.29.0': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/types': 7.29.0 - '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-typescript@7.28.6(@babel/core@7.29.0)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.0 + '@babel/helper-plugin-utils': 7.28.6 - '@babel/runtime@7.26.0': - dependencies: - regenerator-runtime: 0.14.1 + '@babel/runtime@7.28.6': {} - '@babel/template@7.25.9': + '@babel/template@7.28.6': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 + '@babel/code-frame': 7.29.0 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 - '@babel/traverse@7.26.4': + '@babel/traverse@7.29.0': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/generator': 7.26.3 - '@babel/parser': 7.26.3 - '@babel/template': 7.25.9 - '@babel/types': 7.26.3 - debug: 4.4.0 - globals: 11.12.0 + '@babel/code-frame': 7.29.0 + '@babel/generator': 7.29.0 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.29.0 + '@babel/template': 7.28.6 + '@babel/types': 7.29.0 + debug: 4.4.3 transitivePeerDependencies: - supports-color - '@babel/types@7.26.3': - dependencies: - '@babel/helper-string-parser': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - - '@bundled-es-modules/cookie@2.0.1': + '@babel/types@7.29.0': dependencies: - cookie: 0.7.2 + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 - '@bundled-es-modules/statuses@1.0.1': - dependencies: - statuses: 2.0.2 - - '@bundled-es-modules/tough-cookie@0.1.6': - dependencies: - '@types/tough-cookie': 4.0.5 - tough-cookie: 4.1.4 + '@bcoe/v8-coverage@1.0.2': {} - '@chromatic-com/storybook@3.2.3(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))': + '@chromatic-com/storybook@5.0.0(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: - chromatic: 11.28.0 + '@neoconfetti/react': 1.0.0 + chromatic: 13.3.5 filesize: 10.1.6 - jsonfile: 6.1.0 - react-confetti: 6.2.2(react@18.3.1) - storybook: 8.4.7(prettier@3.4.2) - strip-ansi: 7.1.0 + jsonfile: 6.2.0 + storybook: 10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + strip-ansi: 7.1.2 transitivePeerDependencies: - '@chromatic-com/cypress' - '@chromatic-com/playwright' - - react - - '@emotion/hash@0.9.2': {} - - '@esbuild/aix-ppc64@0.21.5': - optional: true - - '@esbuild/aix-ppc64@0.23.1': - optional: true - - '@esbuild/aix-ppc64@0.24.2': - optional: true - - '@esbuild/android-arm64@0.21.5': - optional: true - - '@esbuild/android-arm64@0.23.1': - optional: true - '@esbuild/android-arm64@0.24.2': + '@emnapi/runtime@1.8.1': + dependencies: + tslib: 2.8.1 optional: true - '@esbuild/android-arm@0.21.5': - optional: true + '@emotion/hash@0.9.2': {} - '@esbuild/android-arm@0.23.1': + '@esbuild/aix-ppc64@0.27.2': optional: true - '@esbuild/android-arm@0.24.2': + '@esbuild/android-arm64@0.27.2': optional: true - '@esbuild/android-x64@0.21.5': + '@esbuild/android-arm@0.27.2': optional: true - '@esbuild/android-x64@0.23.1': + '@esbuild/android-x64@0.27.2': optional: true - '@esbuild/android-x64@0.24.2': + '@esbuild/darwin-arm64@0.27.2': optional: true - '@esbuild/darwin-arm64@0.21.5': + '@esbuild/darwin-x64@0.27.2': optional: true - '@esbuild/darwin-arm64@0.23.1': + '@esbuild/freebsd-arm64@0.27.2': optional: true - '@esbuild/darwin-arm64@0.24.2': + '@esbuild/freebsd-x64@0.27.2': optional: true - '@esbuild/darwin-x64@0.21.5': + '@esbuild/linux-arm64@0.27.2': optional: true - '@esbuild/darwin-x64@0.23.1': + '@esbuild/linux-arm@0.27.2': optional: true - '@esbuild/darwin-x64@0.24.2': + '@esbuild/linux-ia32@0.27.2': optional: true - '@esbuild/freebsd-arm64@0.21.5': + '@esbuild/linux-loong64@0.27.2': optional: true - '@esbuild/freebsd-arm64@0.23.1': + '@esbuild/linux-mips64el@0.27.2': optional: true - '@esbuild/freebsd-arm64@0.24.2': + '@esbuild/linux-ppc64@0.27.2': optional: true - '@esbuild/freebsd-x64@0.21.5': + '@esbuild/linux-riscv64@0.27.2': optional: true - '@esbuild/freebsd-x64@0.23.1': + '@esbuild/linux-s390x@0.27.2': optional: true - '@esbuild/freebsd-x64@0.24.2': + '@esbuild/linux-x64@0.27.2': optional: true - '@esbuild/linux-arm64@0.21.5': + '@esbuild/netbsd-arm64@0.27.2': optional: true - '@esbuild/linux-arm64@0.23.1': + '@esbuild/netbsd-x64@0.27.2': optional: true - '@esbuild/linux-arm64@0.24.2': + '@esbuild/openbsd-arm64@0.27.2': optional: true - '@esbuild/linux-arm@0.21.5': + '@esbuild/openbsd-x64@0.27.2': optional: true - '@esbuild/linux-arm@0.23.1': + '@esbuild/openharmony-arm64@0.27.2': optional: true - '@esbuild/linux-arm@0.24.2': + '@esbuild/sunos-x64@0.27.2': optional: true - '@esbuild/linux-ia32@0.21.5': + '@esbuild/win32-arm64@0.27.2': optional: true - '@esbuild/linux-ia32@0.23.1': + '@esbuild/win32-ia32@0.27.2': optional: true - '@esbuild/linux-ia32@0.24.2': + '@esbuild/win32-x64@0.27.2': optional: true - '@esbuild/linux-loong64@0.21.5': - optional: true + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2)': + dependencies: + eslint: 9.39.2 + eslint-visitor-keys: 3.4.3 - '@esbuild/linux-loong64@0.23.1': - optional: true + '@eslint-community/regexpp@4.12.2': {} - '@esbuild/linux-loong64@0.24.2': - optional: true + '@eslint/config-array@0.21.1': + dependencies: + '@eslint/object-schema': 2.1.7 + debug: 4.4.3 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color - '@esbuild/linux-mips64el@0.21.5': - optional: true + '@eslint/config-helpers@0.4.2': + dependencies: + '@eslint/core': 0.17.0 - '@esbuild/linux-mips64el@0.23.1': - optional: true + '@eslint/core@0.17.0': + dependencies: + '@types/json-schema': 7.0.15 - '@esbuild/linux-mips64el@0.24.2': - optional: true + '@eslint/eslintrc@3.3.3': + dependencies: + ajv: 6.12.6 + debug: 4.4.3 + espree: 10.4.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color - '@esbuild/linux-ppc64@0.21.5': - optional: true + '@eslint/js@9.39.2': {} - '@esbuild/linux-ppc64@0.23.1': - optional: true + '@eslint/object-schema@2.1.7': {} - '@esbuild/linux-ppc64@0.24.2': - optional: true + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 - '@esbuild/linux-riscv64@0.21.5': - optional: true + '@hookform/resolvers@5.2.2(react-hook-form@7.71.1(react@18.3.1))': + dependencies: + '@standard-schema/utils': 0.3.0 + react-hook-form: 7.71.1(react@18.3.1) - '@esbuild/linux-riscv64@0.23.1': - optional: true + '@humanfs/core@0.19.1': {} - '@esbuild/linux-riscv64@0.24.2': - optional: true + '@humanfs/node@0.16.7': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.4.3 - '@esbuild/linux-s390x@0.21.5': - optional: true + '@humanwhocodes/module-importer@1.0.1': {} - '@esbuild/linux-s390x@0.23.1': - optional: true + '@humanwhocodes/retry@0.4.3': {} - '@esbuild/linux-s390x@0.24.2': + '@img/colour@1.0.0': optional: true - '@esbuild/linux-x64@0.21.5': + '@img/sharp-darwin-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.2.4 optional: true - '@esbuild/linux-x64@0.23.1': + '@img/sharp-darwin-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.2.4 optional: true - '@esbuild/linux-x64@0.24.2': + '@img/sharp-libvips-darwin-arm64@1.2.4': optional: true - '@esbuild/netbsd-arm64@0.24.2': + '@img/sharp-libvips-darwin-x64@1.2.4': optional: true - '@esbuild/netbsd-x64@0.21.5': + '@img/sharp-libvips-linux-arm64@1.2.4': optional: true - '@esbuild/netbsd-x64@0.23.1': + '@img/sharp-libvips-linux-arm@1.2.4': optional: true - '@esbuild/netbsd-x64@0.24.2': + '@img/sharp-libvips-linux-ppc64@1.2.4': optional: true - '@esbuild/openbsd-arm64@0.23.1': + '@img/sharp-libvips-linux-riscv64@1.2.4': optional: true - '@esbuild/openbsd-arm64@0.24.2': + '@img/sharp-libvips-linux-s390x@1.2.4': optional: true - '@esbuild/openbsd-x64@0.21.5': + '@img/sharp-libvips-linux-x64@1.2.4': optional: true - '@esbuild/openbsd-x64@0.23.1': + '@img/sharp-libvips-linuxmusl-arm64@1.2.4': optional: true - '@esbuild/openbsd-x64@0.24.2': + '@img/sharp-libvips-linuxmusl-x64@1.2.4': optional: true - '@esbuild/sunos-x64@0.21.5': + '@img/sharp-linux-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.2.4 optional: true - '@esbuild/sunos-x64@0.23.1': + '@img/sharp-linux-arm@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.2.4 optional: true - '@esbuild/sunos-x64@0.24.2': + '@img/sharp-linux-ppc64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-ppc64': 1.2.4 optional: true - '@esbuild/win32-arm64@0.21.5': + '@img/sharp-linux-riscv64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-riscv64': 1.2.4 optional: true - '@esbuild/win32-arm64@0.23.1': + '@img/sharp-linux-s390x@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.2.4 optional: true - '@esbuild/win32-arm64@0.24.2': + '@img/sharp-linux-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.2.4 optional: true - '@esbuild/win32-ia32@0.21.5': + '@img/sharp-linuxmusl-arm64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 optional: true - '@esbuild/win32-ia32@0.23.1': + '@img/sharp-linuxmusl-x64@0.34.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.2.4 optional: true - '@esbuild/win32-ia32@0.24.2': + '@img/sharp-wasm32@0.34.5': + dependencies: + '@emnapi/runtime': 1.8.1 optional: true - '@esbuild/win32-x64@0.21.5': + '@img/sharp-win32-arm64@0.34.5': optional: true - '@esbuild/win32-x64@0.23.1': + '@img/sharp-win32-ia32@0.34.5': optional: true - '@esbuild/win32-x64@0.24.2': + '@img/sharp-win32-x64@0.34.5': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.17.0)': - dependencies: - eslint: 9.17.0 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.1': {} - - '@eslint/config-array@0.19.1': - dependencies: - '@eslint/object-schema': 2.1.5 - debug: 4.4.0 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@eslint/core@0.9.1': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/eslintrc@3.2.0': - dependencies: - ajv: 6.12.6 - debug: 4.4.0 - espree: 10.3.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@9.17.0': {} + '@inquirer/ansi@1.0.2': {} - '@eslint/object-schema@2.1.5': {} - - '@eslint/plugin-kit@0.2.4': - dependencies: - levn: 0.4.1 - - '@hookform/resolvers@5.0.1(react-hook-form@7.56.1(react@18.3.1))': - dependencies: - '@standard-schema/utils': 0.3.0 - react-hook-form: 7.56.1(react@18.3.1) - - '@humanfs/core@0.19.1': {} - - '@humanfs/node@0.16.6': - dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/retry@0.3.1': {} - - '@humanwhocodes/retry@0.4.1': {} - - '@inquirer/confirm@5.1.13(@types/node@22.10.5)': + '@inquirer/confirm@5.1.21(@types/node@25.2.0)': dependencies: - '@inquirer/core': 10.1.14(@types/node@22.10.5) - '@inquirer/type': 3.0.7(@types/node@22.10.5) + '@inquirer/core': 10.3.2(@types/node@25.2.0) + '@inquirer/type': 3.0.10(@types/node@25.2.0) optionalDependencies: - '@types/node': 22.10.5 + '@types/node': 25.2.0 - '@inquirer/core@10.1.14(@types/node@22.10.5)': + '@inquirer/core@10.3.2(@types/node@25.2.0)': dependencies: - '@inquirer/figures': 1.0.12 - '@inquirer/type': 3.0.7(@types/node@22.10.5) - ansi-escapes: 4.3.2 + '@inquirer/ansi': 1.0.2 + '@inquirer/figures': 1.0.15 + '@inquirer/type': 3.0.10(@types/node@25.2.0) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 - yoctocolors-cjs: 2.1.2 + yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.10.5 + '@types/node': 25.2.0 - '@inquirer/figures@1.0.12': {} + '@inquirer/figures@1.0.15': {} - '@inquirer/type@3.0.7(@types/node@22.10.5)': + '@inquirer/type@3.0.10(@types/node@25.2.0)': optionalDependencies: - '@types/node': 22.10.5 + '@types/node': 25.2.0 - '@joshwooding/vite-plugin-react-docgen-typescript@0.4.2(typescript@5.6.3)(vite@6.0.7(@types/node@22.10.5))': + '@isaacs/balanced-match@4.0.1': {} + + '@isaacs/brace-expansion@5.0.1': + dependencies: + '@isaacs/balanced-match': 4.0.1 + + '@isaacs/cliui@9.0.0': {} + + '@joshwooding/vite-plugin-react-docgen-typescript@0.6.3(typescript@5.6.3)(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))': dependencies: - magic-string: 0.27.0 - react-docgen-typescript: 2.2.2(typescript@5.6.3) - vite: 6.0.7(@types/node@22.10.5) + glob: 11.1.0 + react-docgen-typescript: 2.4.0(typescript@5.6.3) + vite: 7.3.1(@types/node@25.2.0)(terser@5.46.0) optionalDependencies: typescript: 5.6.3 - '@jridgewell/gen-mapping@0.3.8': + '@jridgewell/gen-mapping@0.3.13': dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.5.0 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} - '@jridgewell/set-array@1.2.1': {} + '@jridgewell/source-map@0.3.11': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 - '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.5': {} - '@jridgewell/trace-mapping@0.3.25': + '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 - '@lukemorales/query-key-factory@1.3.4(@tanstack/query-core@5.62.15)(@tanstack/react-query@5.62.15(react@18.3.1))': + '@lukemorales/query-key-factory@1.3.4(@tanstack/query-core@5.90.20)(@tanstack/react-query@5.90.20(react@18.3.1))': dependencies: - '@tanstack/query-core': 5.62.15 - '@tanstack/react-query': 5.62.15(react@18.3.1) + '@tanstack/query-core': 5.90.20 + '@tanstack/react-query': 5.90.20(react@18.3.1) - '@mdx-js/react@3.1.0(@types/react@18.3.18)(react@18.3.1)': + '@mdx-js/react@3.1.1(@types/react@18.3.27)(react@18.3.1)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 18.3.18 + '@types/react': 18.3.27 react: 18.3.1 - '@mswjs/interceptors@0.39.2': + '@mswjs/interceptors@0.40.0': dependencies: '@open-draft/deferred-promise': 2.2.0 '@open-draft/logger': 0.3.0 @@ -4207,17 +4199,35 @@ snapshots: outvariant: 1.4.3 strict-event-emitter: 0.5.1 - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 + '@neoconfetti/react@1.0.0': {} - '@nodelib/fs.stat@2.0.5': {} + '@next/env@15.5.7': {} - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.18.0 + '@next/env@16.0.0': {} + + '@next/swc-darwin-arm64@15.5.7': + optional: true + + '@next/swc-darwin-x64@15.5.7': + optional: true + + '@next/swc-linux-arm64-gnu@15.5.7': + optional: true + + '@next/swc-linux-arm64-musl@15.5.7': + optional: true + + '@next/swc-linux-x64-gnu@15.5.7': + optional: true + + '@next/swc-linux-x64-musl@15.5.7': + optional: true + + '@next/swc-win32-arm64-msvc@15.5.7': + optional: true + + '@next/swc-win32-x64-msvc@15.5.7': + optional: true '@open-draft/deferred-promise@2.2.0': {} @@ -4228,106 +4238,127 @@ snapshots: '@open-draft/until@2.1.0': {} - '@pkgr/core@0.1.1': {} + '@pkgr/core@0.2.9': {} + + '@polka/url@1.0.0-next.29': + optional: true - '@rollup/pluginutils@5.1.4(rollup@4.30.0)': + '@rollup/pluginutils@5.3.0(rollup@4.57.1)': dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 estree-walker: 2.0.2 - picomatch: 4.0.2 + picomatch: 4.0.3 optionalDependencies: - rollup: 4.30.0 + rollup: 4.57.1 + + '@rollup/rollup-android-arm-eabi@4.57.1': + optional: true + + '@rollup/rollup-android-arm64@4.57.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.57.1': + optional: true + + '@rollup/rollup-darwin-x64@4.57.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.57.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.57.1': + optional: true - '@rollup/rollup-android-arm-eabi@4.30.0': + '@rollup/rollup-linux-arm-gnueabihf@4.57.1': optional: true - '@rollup/rollup-android-arm64@4.30.0': + '@rollup/rollup-linux-arm-musleabihf@4.57.1': optional: true - '@rollup/rollup-darwin-arm64@4.30.0': + '@rollup/rollup-linux-arm64-gnu@4.57.1': optional: true - '@rollup/rollup-darwin-x64@4.30.0': + '@rollup/rollup-linux-arm64-musl@4.57.1': optional: true - '@rollup/rollup-freebsd-arm64@4.30.0': + '@rollup/rollup-linux-loong64-gnu@4.57.1': optional: true - '@rollup/rollup-freebsd-x64@4.30.0': + '@rollup/rollup-linux-loong64-musl@4.57.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.30.0': + '@rollup/rollup-linux-ppc64-gnu@4.57.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.30.0': + '@rollup/rollup-linux-ppc64-musl@4.57.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.30.0': + '@rollup/rollup-linux-riscv64-gnu@4.57.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.30.0': + '@rollup/rollup-linux-riscv64-musl@4.57.1': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.30.0': + '@rollup/rollup-linux-s390x-gnu@4.57.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.30.0': + '@rollup/rollup-linux-x64-gnu@4.57.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.30.0': + '@rollup/rollup-linux-x64-musl@4.57.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.30.0': + '@rollup/rollup-openbsd-x64@4.57.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.30.0': + '@rollup/rollup-openharmony-arm64@4.57.1': optional: true - '@rollup/rollup-linux-x64-musl@4.30.0': + '@rollup/rollup-win32-arm64-msvc@4.57.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.30.0': + '@rollup/rollup-win32-ia32-msvc@4.57.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.30.0': + '@rollup/rollup-win32-x64-gnu@4.57.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.30.0': + '@rollup/rollup-win32-x64-msvc@4.57.1': optional: true - '@sentry-internal/browser-utils@9.39.0': + '@sentry-internal/browser-utils@9.47.1': dependencies: - '@sentry/core': 9.39.0 + '@sentry/core': 9.47.1 - '@sentry-internal/feedback@9.39.0': + '@sentry-internal/feedback@9.47.1': dependencies: - '@sentry/core': 9.39.0 + '@sentry/core': 9.47.1 - '@sentry-internal/replay-canvas@9.39.0': + '@sentry-internal/replay-canvas@9.47.1': dependencies: - '@sentry-internal/replay': 9.39.0 - '@sentry/core': 9.39.0 + '@sentry-internal/replay': 9.47.1 + '@sentry/core': 9.47.1 - '@sentry-internal/replay@9.39.0': + '@sentry-internal/replay@9.47.1': dependencies: - '@sentry-internal/browser-utils': 9.39.0 - '@sentry/core': 9.39.0 + '@sentry-internal/browser-utils': 9.47.1 + '@sentry/core': 9.47.1 - '@sentry/babel-plugin-component-annotate@3.6.0': {} + '@sentry/babel-plugin-component-annotate@3.6.1': {} - '@sentry/browser@9.39.0': + '@sentry/browser@9.47.1': dependencies: - '@sentry-internal/browser-utils': 9.39.0 - '@sentry-internal/feedback': 9.39.0 - '@sentry-internal/replay': 9.39.0 - '@sentry-internal/replay-canvas': 9.39.0 - '@sentry/core': 9.39.0 + '@sentry-internal/browser-utils': 9.47.1 + '@sentry-internal/feedback': 9.47.1 + '@sentry-internal/replay': 9.47.1 + '@sentry-internal/replay-canvas': 9.47.1 + '@sentry/core': 9.47.1 - '@sentry/bundler-plugin-core@3.6.0': + '@sentry/bundler-plugin-core@3.6.1': dependencies: - '@babel/core': 7.26.0 - '@sentry/babel-plugin-component-annotate': 3.6.0 - '@sentry/cli': 2.47.1 + '@babel/core': 7.29.0 + '@sentry/babel-plugin-component-annotate': 3.6.1 + '@sentry/cli': 2.58.4 dotenv: 16.6.1 find-up: 5.0.0 glob: 9.3.5 @@ -4337,31 +4368,31 @@ snapshots: - encoding - supports-color - '@sentry/cli-darwin@2.47.1': + '@sentry/cli-darwin@2.58.4': optional: true - '@sentry/cli-linux-arm64@2.47.1': + '@sentry/cli-linux-arm64@2.58.4': optional: true - '@sentry/cli-linux-arm@2.47.1': + '@sentry/cli-linux-arm@2.58.4': optional: true - '@sentry/cli-linux-i686@2.47.1': + '@sentry/cli-linux-i686@2.58.4': optional: true - '@sentry/cli-linux-x64@2.47.1': + '@sentry/cli-linux-x64@2.58.4': optional: true - '@sentry/cli-win32-arm64@2.47.1': + '@sentry/cli-win32-arm64@2.58.4': optional: true - '@sentry/cli-win32-i686@2.47.1': + '@sentry/cli-win32-i686@2.58.4': optional: true - '@sentry/cli-win32-x64@2.47.1': + '@sentry/cli-win32-x64@2.58.4': optional: true - '@sentry/cli@2.47.1': + '@sentry/cli@2.58.4': dependencies: https-proxy-agent: 5.0.1 node-fetch: 2.7.0 @@ -4369,177 +4400,91 @@ snapshots: proxy-from-env: 1.1.0 which: 2.0.2 optionalDependencies: - '@sentry/cli-darwin': 2.47.1 - '@sentry/cli-linux-arm': 2.47.1 - '@sentry/cli-linux-arm64': 2.47.1 - '@sentry/cli-linux-i686': 2.47.1 - '@sentry/cli-linux-x64': 2.47.1 - '@sentry/cli-win32-arm64': 2.47.1 - '@sentry/cli-win32-i686': 2.47.1 - '@sentry/cli-win32-x64': 2.47.1 + '@sentry/cli-darwin': 2.58.4 + '@sentry/cli-linux-arm': 2.58.4 + '@sentry/cli-linux-arm64': 2.58.4 + '@sentry/cli-linux-i686': 2.58.4 + '@sentry/cli-linux-x64': 2.58.4 + '@sentry/cli-win32-arm64': 2.58.4 + '@sentry/cli-win32-i686': 2.58.4 + '@sentry/cli-win32-x64': 2.58.4 transitivePeerDependencies: - encoding - supports-color - '@sentry/core@9.39.0': {} + '@sentry/core@9.47.1': {} - '@sentry/react@9.39.0(react@18.3.1)': + '@sentry/react@9.47.1(react@18.3.1)': dependencies: - '@sentry/browser': 9.39.0 - '@sentry/core': 9.39.0 + '@sentry/browser': 9.47.1 + '@sentry/core': 9.47.1 hoist-non-react-statics: 3.3.2 react: 18.3.1 - '@sentry/vite-plugin@3.6.0': + '@sentry/vite-plugin@3.6.1': dependencies: - '@sentry/bundler-plugin-core': 3.6.0 + '@sentry/bundler-plugin-core': 3.6.1 unplugin: 1.0.1 transitivePeerDependencies: - encoding - supports-color - '@standard-schema/utils@0.3.0': {} - - '@storybook/addon-actions@8.4.7(storybook@8.4.7(prettier@3.4.2))': - dependencies: - '@storybook/global': 5.0.0 - '@types/uuid': 9.0.8 - dequal: 2.0.3 - polished: 4.3.1 - storybook: 8.4.7(prettier@3.4.2) - uuid: 9.0.1 + '@standard-schema/spec@1.1.0': {} - '@storybook/addon-backgrounds@8.4.7(storybook@8.4.7(prettier@3.4.2))': - dependencies: - '@storybook/global': 5.0.0 - memoizerific: 1.11.3 - storybook: 8.4.7(prettier@3.4.2) - ts-dedent: 2.2.0 + '@standard-schema/utils@0.3.0': {} - '@storybook/addon-controls@8.4.7(storybook@8.4.7(prettier@3.4.2))': + '@storybook/addon-a11y@10.2.7(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: '@storybook/global': 5.0.0 - dequal: 2.0.3 - storybook: 8.4.7(prettier@3.4.2) - ts-dedent: 2.2.0 + axe-core: 4.11.1 + storybook: 10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/addon-docs@8.4.7(@types/react@18.3.18)(storybook@8.4.7(prettier@3.4.2))': + '@storybook/addon-docs@10.2.7(@types/react@18.3.27)(esbuild@0.27.2)(rollup@4.57.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(webpack@5.104.1(esbuild@0.27.2))': dependencies: - '@mdx-js/react': 3.1.0(@types/react@18.3.18)(react@18.3.1) - '@storybook/blocks': 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2)) - '@storybook/csf-plugin': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - '@storybook/react-dom-shim': 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2)) + '@mdx-js/react': 3.1.1(@types/react@18.3.27)(react@18.3.1) + '@storybook/csf-plugin': 10.2.7(esbuild@0.27.2)(rollup@4.57.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(webpack@5.104.1(esbuild@0.27.2)) + '@storybook/icons': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/react-dom-shim': 10.2.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 8.4.7(prettier@3.4.2) - ts-dedent: 2.2.0 - transitivePeerDependencies: - - '@types/react' - - '@storybook/addon-essentials@8.4.7(@types/react@18.3.18)(storybook@8.4.7(prettier@3.4.2))': - dependencies: - '@storybook/addon-actions': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - '@storybook/addon-backgrounds': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - '@storybook/addon-controls': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - '@storybook/addon-docs': 8.4.7(@types/react@18.3.18)(storybook@8.4.7(prettier@3.4.2)) - '@storybook/addon-highlight': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - '@storybook/addon-measure': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - '@storybook/addon-outline': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - '@storybook/addon-toolbars': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - '@storybook/addon-viewport': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - storybook: 8.4.7(prettier@3.4.2) - ts-dedent: 2.2.0 - transitivePeerDependencies: - - '@types/react' - - '@storybook/addon-highlight@8.4.7(storybook@8.4.7(prettier@3.4.2))': - dependencies: - '@storybook/global': 5.0.0 - storybook: 8.4.7(prettier@3.4.2) - - '@storybook/addon-interactions@8.4.7(storybook@8.4.7(prettier@3.4.2))': - dependencies: - '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - '@storybook/test': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - polished: 4.3.1 - storybook: 8.4.7(prettier@3.4.2) - ts-dedent: 2.2.0 - - '@storybook/addon-measure@8.4.7(storybook@8.4.7(prettier@3.4.2))': - dependencies: - '@storybook/global': 5.0.0 - storybook: 8.4.7(prettier@3.4.2) - tiny-invariant: 1.3.3 - - '@storybook/addon-onboarding@8.4.7(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))': - dependencies: - react-confetti: 6.2.2(react@18.3.1) - storybook: 8.4.7(prettier@3.4.2) - transitivePeerDependencies: - - react - - '@storybook/addon-outline@8.4.7(storybook@8.4.7(prettier@3.4.2))': - dependencies: - '@storybook/global': 5.0.0 - storybook: 8.4.7(prettier@3.4.2) - ts-dedent: 2.2.0 - - '@storybook/addon-toolbars@8.4.7(storybook@8.4.7(prettier@3.4.2))': - dependencies: - storybook: 8.4.7(prettier@3.4.2) - - '@storybook/addon-viewport@8.4.7(storybook@8.4.7(prettier@3.4.2))': - dependencies: - memoizerific: 1.11.3 - storybook: 8.4.7(prettier@3.4.2) + storybook: 10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + - esbuild + - rollup + - vite + - webpack - '@storybook/blocks@8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))': + '@storybook/blocks@8.6.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: - '@storybook/csf': 0.1.13 - '@storybook/icons': 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - storybook: 8.4.7(prettier@3.4.2) + '@storybook/icons': 1.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + storybook: 10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ts-dedent: 2.2.0 optionalDependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/builder-vite@8.4.7(storybook@8.4.7(prettier@3.4.2))(vite@6.0.7(@types/node@22.10.5))': + '@storybook/builder-vite@10.2.7(esbuild@0.27.2)(rollup@4.57.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(webpack@5.104.1(esbuild@0.27.2))': dependencies: - '@storybook/csf-plugin': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - browser-assert: 1.2.1 - storybook: 8.4.7(prettier@3.4.2) + '@storybook/csf-plugin': 10.2.7(esbuild@0.27.2)(rollup@4.57.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(webpack@5.104.1(esbuild@0.27.2)) + storybook: 10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) ts-dedent: 2.2.0 - vite: 6.0.7(@types/node@22.10.5) - - '@storybook/components@8.4.7(storybook@8.4.7(prettier@3.4.2))': - dependencies: - storybook: 8.4.7(prettier@3.4.2) - - '@storybook/core@8.4.7(prettier@3.4.2)': - dependencies: - '@storybook/csf': 0.1.13 - better-opn: 3.0.2 - browser-assert: 1.2.1 - esbuild: 0.24.2 - esbuild-register: 3.6.0(esbuild@0.24.2) - jsdoc-type-pratt-parser: 4.1.0 - process: 0.11.10 - recast: 0.23.9 - semver: 7.6.3 - util: 0.12.5 - ws: 8.18.0 - optionalDependencies: - prettier: 3.4.2 + vite: 7.3.1(@types/node@25.2.0)(terser@5.46.0) transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate + - esbuild + - rollup + - webpack - '@storybook/csf-plugin@8.4.7(storybook@8.4.7(prettier@3.4.2))': + '@storybook/csf-plugin@10.2.7(esbuild@0.27.2)(rollup@4.57.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(webpack@5.104.1(esbuild@0.27.2))': dependencies: - storybook: 8.4.7(prettier@3.4.2) - unplugin: 1.16.1 + storybook: 10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + unplugin: 2.3.11 + optionalDependencies: + esbuild: 0.27.2 + rollup: 4.57.1 + vite: 7.3.1(@types/node@25.2.0)(terser@5.46.0) + webpack: 5.104.1(esbuild@0.27.2) '@storybook/csf@0.1.13': dependencies: @@ -4547,78 +4492,95 @@ snapshots: '@storybook/global@5.0.0': {} - '@storybook/icons@1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@storybook/icons@1.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@storybook/instrumenter@8.4.7(storybook@8.4.7(prettier@3.4.2))': + '@storybook/icons@2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@storybook/global': 5.0.0 - '@vitest/utils': 2.1.8 - storybook: 8.4.7(prettier@3.4.2) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@storybook/manager-api@8.4.7(storybook@8.4.7(prettier@3.4.2))': + '@storybook/instrumenter@8.6.15(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: - storybook: 8.4.7(prettier@3.4.2) + '@storybook/global': 5.0.0 + '@vitest/utils': 2.1.9 + storybook: 10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/preview-api@8.4.7(storybook@8.4.7(prettier@3.4.2))': + '@storybook/nextjs-vite@10.2.7(@babel/core@7.29.0)(esbuild@0.27.2)(next@15.5.7(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.57.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(webpack@5.104.1(esbuild@0.27.2))': dependencies: - storybook: 8.4.7(prettier@3.4.2) + '@storybook/builder-vite': 10.2.7(esbuild@0.27.2)(rollup@4.57.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(webpack@5.104.1(esbuild@0.27.2)) + '@storybook/react': 10.2.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) + '@storybook/react-vite': 10.2.7(esbuild@0.27.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.57.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(webpack@5.104.1(esbuild@0.27.2)) + next: 15.5.7(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + storybook: 10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + styled-jsx: 5.1.6(@babel/core@7.29.0)(react@18.3.1) + vite: 7.3.1(@types/node@25.2.0)(terser@5.46.0) + vite-plugin-storybook-nextjs: 3.1.10(next@15.5.7(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0)) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + - esbuild + - rollup + - supports-color + - webpack - '@storybook/react-dom-shim@8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))': + '@storybook/react-dom-shim@10.2.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook: 8.4.7(prettier@3.4.2) + storybook: 10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@storybook/react-vite@8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.30.0)(storybook@8.4.7(prettier@3.4.2))(typescript@5.6.3)(vite@6.0.7(@types/node@22.10.5))': + '@storybook/react-vite@10.2.7(esbuild@0.27.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@4.57.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(webpack@5.104.1(esbuild@0.27.2))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.4.2(typescript@5.6.3)(vite@6.0.7(@types/node@22.10.5)) - '@rollup/pluginutils': 5.1.4(rollup@4.30.0) - '@storybook/builder-vite': 8.4.7(storybook@8.4.7(prettier@3.4.2))(vite@6.0.7(@types/node@22.10.5)) - '@storybook/react': 8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.6.3) - find-up: 5.0.0 - magic-string: 0.30.17 + '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.3(typescript@5.6.3)(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0)) + '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + '@storybook/builder-vite': 10.2.7(esbuild@0.27.2)(rollup@4.57.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(webpack@5.104.1(esbuild@0.27.2)) + '@storybook/react': 10.2.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3) + empathic: 2.0.0 + magic-string: 0.30.21 react: 18.3.1 - react-docgen: 7.1.0 + react-docgen: 8.0.2 react-dom: 18.3.1(react@18.3.1) - resolve: 1.22.10 - storybook: 8.4.7(prettier@3.4.2) + resolve: 1.22.11 + storybook: 10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tsconfig-paths: 4.2.0 - vite: 6.0.7(@types/node@22.10.5) + vite: 7.3.1(@types/node@25.2.0)(terser@5.46.0) transitivePeerDependencies: - - '@storybook/test' + - esbuild - rollup - supports-color - typescript + - webpack - '@storybook/react@8.4.7(@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2))(typescript@5.6.3)': + '@storybook/react@10.2.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)': dependencies: - '@storybook/components': 8.4.7(storybook@8.4.7(prettier@3.4.2)) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - '@storybook/preview-api': 8.4.7(storybook@8.4.7(prettier@3.4.2)) - '@storybook/react-dom-shim': 8.4.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.4.7(prettier@3.4.2)) - '@storybook/theming': 8.4.7(storybook@8.4.7(prettier@3.4.2)) + '@storybook/react-dom-shim': 10.2.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) react: 18.3.1 + react-docgen: 8.0.2 react-dom: 18.3.1(react@18.3.1) - storybook: 8.4.7(prettier@3.4.2) + storybook: 10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) optionalDependencies: - '@storybook/test': 8.4.7(storybook@8.4.7(prettier@3.4.2)) typescript: 5.6.3 + transitivePeerDependencies: + - supports-color - '@storybook/test@8.4.7(storybook@8.4.7(prettier@3.4.2))': + '@storybook/test@8.6.15(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: - '@storybook/csf': 0.1.13 '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.4.7(storybook@8.4.7(prettier@3.4.2)) + '@storybook/instrumenter': 8.6.15(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@testing-library/dom': 10.4.0 '@testing-library/jest-dom': 6.5.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) '@vitest/expect': 2.0.5 '@vitest/spy': 2.0.5 - storybook: 8.4.7(prettier@3.4.2) + storybook: 10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@storybook/testing-library@0.2.2': dependencies: @@ -4626,151 +4588,29 @@ snapshots: '@testing-library/user-event': 14.6.1(@testing-library/dom@9.3.4) ts-dedent: 2.2.0 - '@storybook/theming@8.4.7(storybook@8.4.7(prettier@3.4.2))': - dependencies: - storybook: 8.4.7(prettier@3.4.2) - - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - - '@svgr/babel-preset@8.1.0(@babel/core@7.26.0)': - dependencies: - '@babel/core': 7.26.0 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.26.0) - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.26.0) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.26.0) - - '@svgr/core@8.1.0(typescript@5.6.3)': - dependencies: - '@babel/core': 7.26.0 - '@svgr/babel-preset': 8.1.0(@babel/core@7.26.0) - camelcase: 6.3.0 - cosmiconfig: 8.3.6(typescript@5.6.3) - snake-case: 3.0.4 - transitivePeerDependencies: - - supports-color - - typescript - - '@svgr/hast-util-to-babel-ast@8.0.0': - dependencies: - '@babel/types': 7.26.3 - entities: 4.5.0 - - '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.6.3))': - dependencies: - '@babel/core': 7.26.0 - '@svgr/babel-preset': 8.1.0(@babel/core@7.26.0) - '@svgr/core': 8.1.0(typescript@5.6.3) - '@svgr/hast-util-to-babel-ast': 8.0.0 - svg-parser: 2.0.4 - transitivePeerDependencies: - - supports-color - - '@swc/core-darwin-arm64@1.10.4': - optional: true - - '@swc/core-darwin-x64@1.10.4': - optional: true - - '@swc/core-linux-arm-gnueabihf@1.10.4': - optional: true - - '@swc/core-linux-arm64-gnu@1.10.4': - optional: true - - '@swc/core-linux-arm64-musl@1.10.4': - optional: true - - '@swc/core-linux-x64-gnu@1.10.4': - optional: true - - '@swc/core-linux-x64-musl@1.10.4': - optional: true - - '@swc/core-win32-arm64-msvc@1.10.4': - optional: true - - '@swc/core-win32-ia32-msvc@1.10.4': - optional: true - - '@swc/core-win32-x64-msvc@1.10.4': - optional: true - - '@swc/core@1.10.4': - dependencies: - '@swc/counter': 0.1.3 - '@swc/types': 0.1.17 - optionalDependencies: - '@swc/core-darwin-arm64': 1.10.4 - '@swc/core-darwin-x64': 1.10.4 - '@swc/core-linux-arm-gnueabihf': 1.10.4 - '@swc/core-linux-arm64-gnu': 1.10.4 - '@swc/core-linux-arm64-musl': 1.10.4 - '@swc/core-linux-x64-gnu': 1.10.4 - '@swc/core-linux-x64-musl': 1.10.4 - '@swc/core-win32-arm64-msvc': 1.10.4 - '@swc/core-win32-ia32-msvc': 1.10.4 - '@swc/core-win32-x64-msvc': 1.10.4 - - '@swc/counter@0.1.3': {} - - '@swc/types@0.1.17': + '@swc/helpers@0.5.15': dependencies: - '@swc/counter': 0.1.3 + tslib: 2.8.1 - '@tanstack/query-core@5.62.15': {} + '@tanstack/query-core@5.90.20': {} - '@tanstack/query-devtools@5.62.9': {} + '@tanstack/query-devtools@5.93.0': {} - '@tanstack/react-query-devtools@5.62.15(@tanstack/react-query@5.62.15(react@18.3.1))(react@18.3.1)': + '@tanstack/react-query-devtools@5.91.3(@tanstack/react-query@5.90.20(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/query-devtools': 5.62.9 - '@tanstack/react-query': 5.62.15(react@18.3.1) + '@tanstack/query-devtools': 5.93.0 + '@tanstack/react-query': 5.90.20(react@18.3.1) react: 18.3.1 - '@tanstack/react-query@5.62.15(react@18.3.1)': + '@tanstack/react-query@5.90.20(react@18.3.1)': dependencies: - '@tanstack/query-core': 5.62.15 + '@tanstack/query-core': 5.90.20 react: 18.3.1 '@testing-library/dom@10.4.0': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/runtime': 7.26.0 + '@babel/code-frame': 7.29.0 + '@babel/runtime': 7.28.6 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -4778,10 +4618,21 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 + '@testing-library/dom@10.4.1': + dependencies: + '@babel/code-frame': 7.29.0 + '@babel/runtime': 7.28.6 + '@types/aria-query': 5.0.4 + aria-query: 5.3.0 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + picocolors: 1.1.1 + pretty-format: 27.5.1 + '@testing-library/dom@9.3.4': dependencies: - '@babel/code-frame': 7.26.2 - '@babel/runtime': 7.26.0 + '@babel/code-frame': 7.29.0 + '@babel/runtime': 7.28.6 '@types/aria-query': 5.0.4 aria-query: 5.1.3 chalk: 4.1.2 @@ -4791,35 +4642,44 @@ snapshots: '@testing-library/jest-dom@6.5.0': dependencies: - '@adobe/css-tools': 4.4.1 + '@adobe/css-tools': 4.4.4 aria-query: 5.3.2 chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 - lodash: 4.17.21 + lodash: 4.17.23 + redent: 3.0.0 + + '@testing-library/jest-dom@6.9.1': + dependencies: + '@adobe/css-tools': 4.4.4 + aria-query: 5.3.2 + css.escape: 1.5.1 + dom-accessibility-api: 0.6.3 + picocolors: 1.1.1 redent: 3.0.0 '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: '@testing-library/dom': 10.4.0 - '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.0)': + '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': dependencies: - '@testing-library/dom': 10.4.0 + '@testing-library/dom': 10.4.1 '@testing-library/user-event@14.6.1(@testing-library/dom@9.3.4)': dependencies: '@testing-library/dom': 9.3.4 - '@trivago/prettier-plugin-sort-imports@5.2.1(prettier@3.4.2)': + '@trivago/prettier-plugin-sort-imports@5.2.2(prettier@3.8.1)': dependencies: - '@babel/generator': 7.26.3 - '@babel/parser': 7.26.3 - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 + '@babel/generator': 7.29.0 + '@babel/parser': 7.29.0 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 javascript-natural-sort: 0.7.1 - lodash: 4.17.21 - prettier: 3.4.2 + lodash: 4.17.23 + prettier: 3.8.1 transitivePeerDependencies: - supports-color @@ -4827,53 +4687,68 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 - '@types/babel__generator': 7.6.8 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 + '@types/babel__traverse': 7.28.0 - '@types/babel__generator@7.6.8': + '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.29.0 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.26.3 - '@babel/types': 7.26.3 + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 - '@types/babel__traverse@7.20.6': + '@types/babel__traverse@7.28.0': dependencies: - '@babel/types': 7.26.3 + '@babel/types': 7.29.0 - '@types/cookie@0.6.0': {} + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 + + '@types/deep-eql@4.0.2': {} '@types/doctrine@0.0.9': {} - '@types/estree@1.0.6': {} + '@types/eslint-scope@3.7.7': + dependencies: + '@types/eslint': 9.6.1 + '@types/estree': 1.0.8 + + '@types/eslint@9.6.1': + dependencies: + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + + '@types/estree@1.0.8': {} '@types/json-schema@7.0.15': {} '@types/mdx@2.0.13': {} - '@types/node@22.10.5': + '@types/node@25.2.0': dependencies: - undici-types: 6.20.0 + undici-types: 7.16.0 - '@types/prop-types@15.7.14': {} + '@types/prop-types@15.7.15': {} - '@types/react-dom@18.3.5(@types/react@18.3.18)': + '@types/react-dom@18.3.7(@types/react@18.3.27)': dependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.27 '@types/react-slick@0.23.13': dependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.27 - '@types/react@18.3.18': + '@types/react@18.3.27': dependencies: - '@types/prop-types': 15.7.14 - csstype: 3.1.3 + '@types/prop-types': 15.7.15 + csstype: 3.2.3 '@types/resolve@1.20.6': {} @@ -4881,180 +4756,134 @@ snapshots: '@types/swiper@6.0.0': dependencies: - swiper: 6.8.4 + swiper: 11.2.10 - '@types/tough-cookie@4.0.5': {} - - '@types/uuid@9.0.8': {} - - '@typescript-eslint/eslint-plugin@8.19.1(@typescript-eslint/parser@8.19.1(eslint@9.17.0)(typescript@5.6.3))(eslint@9.17.0)(typescript@5.6.3)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.19.1(eslint@9.17.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.19.1 - '@typescript-eslint/type-utils': 8.19.1(eslint@9.17.0)(typescript@5.6.3) - '@typescript-eslint/utils': 8.19.1(eslint@9.17.0)(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.19.1 - eslint: 9.17.0 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare: 1.4.0 - ts-api-utils: 2.0.0(typescript@5.6.3) - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/eslint-plugin@8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.17.0)(typescript@5.6.3))(eslint@9.17.0)(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.6.3))(eslint@9.39.2)(typescript@5.6.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.28.0(eslint@9.17.0)(typescript@5.6.3) - '@typescript-eslint/scope-manager': 8.28.0 - '@typescript-eslint/type-utils': 8.28.0(eslint@9.17.0)(typescript@5.6.3) - '@typescript-eslint/utils': 8.28.0(eslint@9.17.0)(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.28.0 - eslint: 9.17.0 - graphemer: 1.4.0 - ignore: 5.3.2 + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2)(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.54.0 + '@typescript-eslint/type-utils': 8.54.0(eslint@9.39.2)(typescript@5.6.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2)(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.54.0 + eslint: 9.39.2 + ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.6.3) + ts-api-utils: 2.4.0(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.19.1(eslint@9.17.0)(typescript@5.6.3)': + '@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.6.3)': dependencies: - '@typescript-eslint/scope-manager': 8.19.1 - '@typescript-eslint/types': 8.19.1 - '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.19.1 - debug: 4.4.0 - eslint: 9.17.0 + '@typescript-eslint/scope-manager': 8.54.0 + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.54.0 + debug: 4.4.3 + eslint: 9.39.2 typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.28.0(eslint@9.17.0)(typescript@5.6.3)': + '@typescript-eslint/project-service@8.54.0(typescript@5.6.3)': dependencies: - '@typescript-eslint/scope-manager': 8.28.0 - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.6.3) - '@typescript-eslint/visitor-keys': 8.28.0 - debug: 4.4.0 - eslint: 9.17.0 + '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.6.3) + '@typescript-eslint/types': 8.54.0 + debug: 4.4.3 typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.19.1': - dependencies: - '@typescript-eslint/types': 8.19.1 - '@typescript-eslint/visitor-keys': 8.19.1 - - '@typescript-eslint/scope-manager@8.28.0': + '@typescript-eslint/scope-manager@8.54.0': dependencies: - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/visitor-keys': 8.28.0 + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/visitor-keys': 8.54.0 - '@typescript-eslint/type-utils@8.19.1(eslint@9.17.0)(typescript@5.6.3)': + '@typescript-eslint/tsconfig-utils@8.54.0(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.6.3) - '@typescript-eslint/utils': 8.19.1(eslint@9.17.0)(typescript@5.6.3) - debug: 4.4.0 - eslint: 9.17.0 - ts-api-utils: 2.0.0(typescript@5.6.3) typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/type-utils@8.28.0(eslint@9.17.0)(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.54.0(eslint@9.39.2)(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.28.0(eslint@9.17.0)(typescript@5.6.3) - debug: 4.4.0 - eslint: 9.17.0 - ts-api-utils: 2.1.0(typescript@5.6.3) + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2)(typescript@5.6.3) + debug: 4.4.3 + eslint: 9.39.2 + ts-api-utils: 2.4.0(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.19.1': {} + '@typescript-eslint/types@8.54.0': {} - '@typescript-eslint/types@8.28.0': {} - - '@typescript-eslint/typescript-estree@8.19.1(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@8.54.0(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 8.19.1 - '@typescript-eslint/visitor-keys': 8.19.1 - debug: 4.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 + '@typescript-eslint/project-service': 8.54.0(typescript@5.6.3) + '@typescript-eslint/tsconfig-utils': 8.54.0(typescript@5.6.3) + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/visitor-keys': 8.54.0 + debug: 4.4.3 minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 2.0.0(typescript@5.6.3) + semver: 7.7.3 + tinyglobby: 0.2.15 + ts-api-utils: 2.4.0(typescript@5.6.3) typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.28.0(typescript@5.6.3)': + '@typescript-eslint/utils@8.54.0(eslint@9.39.2)(typescript@5.6.3)': dependencies: - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/visitor-keys': 8.28.0 - debug: 4.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 2.1.0(typescript@5.6.3) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2) + '@typescript-eslint/scope-manager': 8.54.0 + '@typescript-eslint/types': 8.54.0 + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.6.3) + eslint: 9.39.2 typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.19.1(eslint@9.17.0)(typescript@5.6.3)': + '@typescript-eslint/visitor-keys@8.54.0': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0) - '@typescript-eslint/scope-manager': 8.19.1 - '@typescript-eslint/types': 8.19.1 - '@typescript-eslint/typescript-estree': 8.19.1(typescript@5.6.3) - eslint: 9.17.0 - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types': 8.54.0 + eslint-visitor-keys: 4.2.1 - '@typescript-eslint/utils@8.28.0(eslint@9.17.0)(typescript@5.6.3)': + '@vanilla-extract/babel-plugin-debug-ids@1.2.2': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0) - '@typescript-eslint/scope-manager': 8.28.0 - '@typescript-eslint/types': 8.28.0 - '@typescript-eslint/typescript-estree': 8.28.0(typescript@5.6.3) - eslint: 9.17.0 - typescript: 5.6.3 + '@babel/core': 7.29.0 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.19.1': - dependencies: - '@typescript-eslint/types': 8.19.1 - eslint-visitor-keys: 4.2.0 - - '@typescript-eslint/visitor-keys@8.28.0': + '@vanilla-extract/compiler@0.3.4(@types/node@25.2.0)(terser@5.46.0)': dependencies: - '@typescript-eslint/types': 8.28.0 - eslint-visitor-keys: 4.2.0 - - '@vanilla-extract/babel-plugin-debug-ids@1.2.0': - dependencies: - '@babel/core': 7.26.0 + '@vanilla-extract/css': 1.18.0 + '@vanilla-extract/integration': 8.0.7 + vite: 7.3.1(@types/node@25.2.0)(terser@5.46.0) + vite-node: 3.2.4(@types/node@25.2.0)(terser@5.46.0) transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss - supports-color + - terser + - tsx + - yaml - '@vanilla-extract/css@1.17.0': + '@vanilla-extract/css@1.18.0': dependencies: '@emotion/hash': 0.9.2 - '@vanilla-extract/private': 1.0.6 - css-what: 6.1.0 + '@vanilla-extract/private': 1.0.9 + css-what: 6.2.2 cssesc: 3.0.0 - csstype: 3.1.3 - dedent: 1.5.3 + csstype: 3.2.3 + dedent: 1.7.1 deep-object-diff: 1.1.9 deepmerge: 4.3.1 lru-cache: 10.4.3 @@ -5064,49 +4893,50 @@ snapshots: transitivePeerDependencies: - babel-plugin-macros - '@vanilla-extract/integration@7.1.12(@types/node@22.10.5)': + '@vanilla-extract/integration@8.0.7': dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) - '@vanilla-extract/babel-plugin-debug-ids': 1.2.0 - '@vanilla-extract/css': 1.17.0 - dedent: 1.5.3 - esbuild: 0.23.1 + '@babel/core': 7.29.0 + '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) + '@vanilla-extract/babel-plugin-debug-ids': 1.2.2 + '@vanilla-extract/css': 1.18.0 + dedent: 1.7.1 + esbuild: 0.27.2 eval: 0.1.8 find-up: 5.0.0 javascript-stringify: 2.1.0 - mlly: 1.7.3 - vite: 5.4.11(@types/node@22.10.5) - vite-node: 1.6.0(@types/node@22.10.5) + mlly: 1.8.0 transitivePeerDependencies: - - '@types/node' - babel-plugin-macros - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - supports-color - - terser - '@vanilla-extract/private@1.0.6': {} + '@vanilla-extract/next-plugin@2.4.17(next@15.5.7(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(webpack@5.104.1(esbuild@0.27.2))': + dependencies: + '@vanilla-extract/webpack-plugin': 2.3.25(webpack@5.104.1(esbuild@0.27.2)) + next: 15.5.7(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + - webpack + + '@vanilla-extract/private@1.0.9': {} - '@vanilla-extract/recipes@0.5.5(@vanilla-extract/css@1.17.0)': + '@vanilla-extract/recipes@0.5.7(@vanilla-extract/css@1.18.0)': dependencies: - '@vanilla-extract/css': 1.17.0 + '@vanilla-extract/css': 1.18.0 - '@vanilla-extract/sprinkles@1.6.3(@vanilla-extract/css@1.17.0)': + '@vanilla-extract/sprinkles@1.6.5(@vanilla-extract/css@1.18.0)': dependencies: - '@vanilla-extract/css': 1.17.0 + '@vanilla-extract/css': 1.18.0 - '@vanilla-extract/vite-plugin@4.0.19(@types/node@22.10.5)(vite@6.0.7(@types/node@22.10.5))': + '@vanilla-extract/vite-plugin@5.1.4(@types/node@25.2.0)(terser@5.46.0)(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))': dependencies: - '@vanilla-extract/integration': 7.1.12(@types/node@22.10.5) - vite: 6.0.7(@types/node@22.10.5) + '@vanilla-extract/compiler': 0.3.4(@types/node@25.2.0)(terser@5.46.0) + '@vanilla-extract/integration': 8.0.7 + vite: 7.3.1(@types/node@25.2.0)(terser@5.46.0) transitivePeerDependencies: - '@types/node' - babel-plugin-macros + - jiti - less - lightningcss - sass @@ -5115,71 +4945,269 @@ snapshots: - sugarss - supports-color - terser + - tsx + - yaml - '@vitejs/plugin-react-swc@3.7.2(vite@6.0.7(@types/node@22.10.5))': + '@vanilla-extract/webpack-plugin@2.3.25(webpack@5.104.1(esbuild@0.27.2))': dependencies: - '@swc/core': 1.10.4 - vite: 6.0.7(@types/node@22.10.5) + '@vanilla-extract/integration': 8.0.7 + debug: 4.4.3 + loader-utils: 2.0.4 + picocolors: 1.1.1 + webpack: 5.104.1(esbuild@0.27.2) transitivePeerDependencies: - - '@swc/helpers' + - babel-plugin-macros + - supports-color - '@vitejs/plugin-react@4.3.4(vite@6.0.7(@types/node@22.10.5))': + '@vitest/browser-playwright@4.0.18(msw@2.12.7(@types/node@25.2.0)(typescript@5.6.3))(playwright@1.58.2)(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(vitest@4.0.18)': dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.2 - vite: 6.0.7(@types/node@22.10.5) + '@vitest/browser': 4.0.18(msw@2.12.7(@types/node@25.2.0)(typescript@5.6.3))(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(vitest@4.0.18) + '@vitest/mocker': 4.0.18(msw@2.12.7(@types/node@25.2.0)(typescript@5.6.3))(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0)) + playwright: 1.58.2 + tinyrainbow: 3.0.3 + vitest: 4.0.18(@types/node@25.2.0)(@vitest/browser-playwright@4.0.18)(msw@2.12.7(@types/node@25.2.0)(typescript@5.6.3))(terser@5.46.0) transitivePeerDependencies: - - supports-color + - bufferutil + - msw + - utf-8-validate + - vite + optional: true + + '@vitest/browser@4.0.18(msw@2.12.7(@types/node@25.2.0)(typescript@5.6.3))(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(vitest@4.0.18)': + dependencies: + '@vitest/mocker': 4.0.18(msw@2.12.7(@types/node@25.2.0)(typescript@5.6.3))(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0)) + '@vitest/utils': 4.0.18 + magic-string: 0.30.21 + pixelmatch: 7.1.0 + pngjs: 7.0.0 + sirv: 3.0.2 + tinyrainbow: 3.0.3 + vitest: 4.0.18(@types/node@25.2.0)(@vitest/browser-playwright@4.0.18)(msw@2.12.7(@types/node@25.2.0)(typescript@5.6.3))(terser@5.46.0) + ws: 8.19.0 + transitivePeerDependencies: + - bufferutil + - msw + - utf-8-validate + - vite + optional: true + + '@vitest/coverage-v8@4.0.18(@vitest/browser@4.0.18(msw@2.12.7(@types/node@25.2.0)(typescript@5.6.3))(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(vitest@4.0.18))(vitest@4.0.18)': + dependencies: + '@bcoe/v8-coverage': 1.0.2 + '@vitest/utils': 4.0.18 + ast-v8-to-istanbul: 0.3.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.2.0 + magicast: 0.5.2 + obug: 2.1.1 + std-env: 3.10.0 + tinyrainbow: 3.0.3 + vitest: 4.0.18(@types/node@25.2.0)(@vitest/browser-playwright@4.0.18)(msw@2.12.7(@types/node@25.2.0)(typescript@5.6.3))(terser@5.46.0) + optionalDependencies: + '@vitest/browser': 4.0.18(msw@2.12.7(@types/node@25.2.0)(typescript@5.6.3))(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(vitest@4.0.18) '@vitest/expect@2.0.5': dependencies: '@vitest/spy': 2.0.5 '@vitest/utils': 2.0.5 - chai: 5.1.2 + chai: 5.3.3 tinyrainbow: 1.2.0 + '@vitest/expect@3.2.4': + dependencies: + '@types/chai': 5.2.3 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 + tinyrainbow: 2.0.0 + + '@vitest/expect@4.0.18': + dependencies: + '@standard-schema/spec': 1.1.0 + '@types/chai': 5.2.3 + '@vitest/spy': 4.0.18 + '@vitest/utils': 4.0.18 + chai: 6.2.2 + tinyrainbow: 3.0.3 + + '@vitest/mocker@4.0.18(msw@2.12.7(@types/node@25.2.0)(typescript@5.6.3))(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))': + dependencies: + '@vitest/spy': 4.0.18 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + msw: 2.12.7(@types/node@25.2.0)(typescript@5.6.3) + vite: 7.3.1(@types/node@25.2.0)(terser@5.46.0) + '@vitest/pretty-format@2.0.5': dependencies: tinyrainbow: 1.2.0 - '@vitest/pretty-format@2.1.8': + '@vitest/pretty-format@2.1.9': dependencies: tinyrainbow: 1.2.0 + '@vitest/pretty-format@3.2.4': + dependencies: + tinyrainbow: 2.0.0 + + '@vitest/pretty-format@4.0.18': + dependencies: + tinyrainbow: 3.0.3 + + '@vitest/runner@4.0.18': + dependencies: + '@vitest/utils': 4.0.18 + pathe: 2.0.3 + + '@vitest/snapshot@4.0.18': + dependencies: + '@vitest/pretty-format': 4.0.18 + magic-string: 0.30.21 + pathe: 2.0.3 + '@vitest/spy@2.0.5': dependencies: tinyspy: 3.0.2 + '@vitest/spy@3.2.4': + dependencies: + tinyspy: 4.0.4 + + '@vitest/spy@4.0.18': {} + '@vitest/utils@2.0.5': dependencies: '@vitest/pretty-format': 2.0.5 estree-walker: 3.0.3 - loupe: 3.1.2 + loupe: 3.2.1 tinyrainbow: 1.2.0 - '@vitest/utils@2.1.8': + '@vitest/utils@2.1.9': dependencies: - '@vitest/pretty-format': 2.1.8 - loupe: 3.1.2 + '@vitest/pretty-format': 2.1.9 + loupe: 3.2.1 tinyrainbow: 1.2.0 + '@vitest/utils@3.2.4': + dependencies: + '@vitest/pretty-format': 3.2.4 + loupe: 3.2.1 + tinyrainbow: 2.0.0 + + '@vitest/utils@4.0.18': + dependencies: + '@vitest/pretty-format': 4.0.18 + tinyrainbow: 3.0.3 + + '@webassemblyjs/ast@1.14.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + + '@webassemblyjs/floating-point-hex-parser@1.13.2': {} + + '@webassemblyjs/helper-api-error@1.13.2': {} + + '@webassemblyjs/helper-buffer@1.14.1': {} + + '@webassemblyjs/helper-numbers@1.13.2': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.13.2 + '@webassemblyjs/helper-api-error': 1.13.2 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.13.2': {} + + '@webassemblyjs/helper-wasm-section@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/wasm-gen': 1.14.1 + + '@webassemblyjs/ieee754@1.13.2': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.13.2': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.13.2': {} + + '@webassemblyjs/wasm-edit@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/helper-wasm-section': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-opt': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + '@webassemblyjs/wast-printer': 1.14.1 + + '@webassemblyjs/wasm-gen@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wasm-opt@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-buffer': 1.14.1 + '@webassemblyjs/wasm-gen': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + + '@webassemblyjs/wasm-parser@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/helper-api-error': 1.13.2 + '@webassemblyjs/helper-wasm-bytecode': 1.13.2 + '@webassemblyjs/ieee754': 1.13.2 + '@webassemblyjs/leb128': 1.13.2 + '@webassemblyjs/utf8': 1.13.2 + + '@webassemblyjs/wast-printer@1.14.1': + dependencies: + '@webassemblyjs/ast': 1.14.1 + '@xtuc/long': 4.2.2 + '@wojtekmaj/date-utils@1.5.1': {} - acorn-jsx@5.3.2(acorn@8.14.0): + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + acorn-import-phases@1.0.4(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: - acorn: 8.14.0 + acorn: 8.15.0 - acorn@8.14.0: {} + acorn@8.15.0: {} agent-base@6.0.2: dependencies: - debug: 4.4.0 + debug: 4.4.3 transitivePeerDependencies: - supports-color + ajv-formats@2.1.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + + ajv-keywords@5.1.0(ajv@8.17.1): + dependencies: + ajv: 8.17.1 + fast-deep-equal: 3.1.3 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -5187,13 +5215,16 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ansi-escapes@4.3.2: + ajv@8.17.1: dependencies: - type-fest: 0.21.3 + fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 ansi-regex@5.0.1: {} - ansi-regex@6.1.0: {} + ansi-regex@6.2.2: {} ansi-styles@4.3.0: dependencies: @@ -5220,57 +5251,59 @@ snapshots: array-buffer-byte-length@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 is-array-buffer: 3.0.5 - array-includes@3.1.8: + array-includes@3.1.9: dependencies: call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.7 + es-abstract: 1.24.1 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 is-string: 1.1.1 + math-intrinsics: 1.1.0 array.prototype.findlast@1.2.5: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.1.0 array.prototype.flat@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.0.2 + es-abstract: 1.24.1 + es-shim-unscopables: 1.1.0 array.prototype.flatmap@1.3.3: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 - es-shim-unscopables: 1.0.2 + es-abstract: 1.24.1 + es-shim-unscopables: 1.1.0 array.prototype.tosorted@1.1.4: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.1 es-errors: 1.3.0 - es-shim-unscopables: 1.0.2 + es-shim-unscopables: 1.1.0 arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.1 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 assertion-error@2.0.1: {} @@ -5281,18 +5314,26 @@ snapshots: dependencies: tslib: 2.8.1 + ast-v8-to-istanbul@0.3.11: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + estree-walker: 3.0.3 + js-tokens: 10.0.0 + + async-function@1.0.0: {} + asynckit@0.4.0: {} available-typed-arrays@1.0.7: dependencies: - possible-typed-array-names: 1.0.0 + possible-typed-array-names: 1.1.0 - axe-core@4.11.0: {} + axe-core@4.11.1: {} - axios@1.7.9: + axios@1.13.4: dependencies: - follow-redirects: 1.15.9 - form-data: 4.0.1 + follow-redirects: 1.15.11 + form-data: 4.0.5 proxy-from-env: 1.1.0 transitivePeerDependencies: - debug @@ -5301,18 +5342,18 @@ snapshots: balanced-match@1.0.2: {} - better-opn@3.0.2: - dependencies: - open: 8.4.2 + baseline-browser-mapping@2.9.19: {} + + big.js@5.2.2: {} binary-extensions@2.3.0: {} - brace-expansion@1.1.11: + brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - brace-expansion@2.0.1: + brace-expansion@2.0.2: dependencies: balanced-match: 1.0.2 @@ -5320,47 +5361,52 @@ snapshots: dependencies: fill-range: 7.1.1 - browser-assert@1.2.1: {} + browserslist@4.28.1: + dependencies: + baseline-browser-mapping: 2.9.19 + caniuse-lite: 1.0.30001767 + electron-to-chromium: 1.5.283 + node-releases: 2.0.27 + update-browserslist-db: 1.2.3(browserslist@4.28.1) + + buffer-from@1.1.2: {} - browserslist@4.24.3: + bundle-name@4.1.0: dependencies: - caniuse-lite: 1.0.30001690 - electron-to-chromium: 1.5.79 - node-releases: 2.0.19 - update-browserslist-db: 1.1.1(browserslist@4.24.3) + run-applescript: 7.1.0 cac@6.7.14: {} - call-bind-apply-helpers@1.0.1: + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 call-bind@1.0.8: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 set-function-length: 1.2.2 - call-bound@1.0.3: + call-bound@1.0.4: dependencies: - call-bind-apply-helpers: 1.0.1 - get-intrinsic: 1.2.7 + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 callsites@3.1.0: {} - camelcase@6.3.0: {} + caniuse-lite@1.0.30001767: {} - caniuse-lite@1.0.30001690: {} - - chai@5.1.2: + chai@5.3.3: dependencies: assertion-error: 2.0.1 - check-error: 2.1.1 + check-error: 2.1.3 deep-eql: 5.0.2 - loupe: 3.1.2 - pathval: 2.0.0 + loupe: 3.2.1 + pathval: 2.0.1 + + chai@6.2.2: {} chalk@3.0.0: dependencies: @@ -5372,7 +5418,7 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - check-error@2.1.1: {} + check-error@2.1.3: {} chokidar@3.6.0: dependencies: @@ -5386,10 +5432,16 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - chromatic@11.28.0: {} + chromatic@11.29.0: {} + + chromatic@13.3.5: {} + + chrome-trace-event@1.0.4: {} cli-width@4.1.0: {} + client-only@0.0.1: {} + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -5408,24 +5460,15 @@ snapshots: dependencies: delayed-stream: 1.0.0 + commander@2.20.3: {} + concat-map@0.0.1: {} confbox@0.1.8: {} convert-source-map@2.0.0: {} - cookie@0.7.2: {} - - cookie@1.0.2: {} - - cosmiconfig@8.3.6(typescript@5.6.3): - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - optionalDependencies: - typescript: 5.6.3 + cookie@1.1.1: {} cross-spawn@7.0.6: dependencies: @@ -5433,39 +5476,39 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-what@6.1.0: {} + css-what@6.2.2: {} css.escape@1.5.1: {} cssesc@3.0.0: {} - csstype@3.1.3: {} + csstype@3.2.3: {} damerau-levenshtein@1.0.8: {} data-view-buffer@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 data-view-byte-length@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 data-view-byte-offset@1.0.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 - debug@4.4.0: + debug@4.4.3: dependencies: ms: 2.1.3 - dedent@1.5.3: {} + dedent@1.7.1: {} deep-eql@5.0.2: {} @@ -5474,7 +5517,7 @@ snapshots: array-buffer-byte-length: 1.0.2 call-bind: 1.0.8 es-get-iterator: 1.1.3 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 is-arguments: 1.2.0 is-array-buffer: 3.0.5 is-date-object: 1.1.0 @@ -5488,13 +5531,20 @@ snapshots: side-channel: 1.1.0 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.18 + which-typed-array: 1.1.20 deep-is@0.1.4: {} deep-object-diff@1.1.9: {} - deepmerge@4.3.1: {} + deepmerge@4.3.1: {} + + default-browser-id@5.0.1: {} + + default-browser@5.5.0: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.1 define-data-property@1.1.4: dependencies: @@ -5502,7 +5552,7 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - define-lazy-prop@2.0.0: {} + define-lazy-prop@3.0.0: {} define-properties@1.2.1: dependencies: @@ -5514,6 +5564,9 @@ snapshots: dequal@2.0.3: {} + detect-libc@2.1.2: + optional: true + doctrine@2.1.0: dependencies: esutils: 2.0.3 @@ -5526,52 +5579,46 @@ snapshots: dom-accessibility-api@0.6.3: {} - dom7@3.0.0: - dependencies: - ssr-window: 3.0.0 - - dot-case@3.0.4: - dependencies: - no-case: 3.0.4 - tslib: 2.8.1 - dotenv@16.6.1: {} dunder-proto@1.0.1: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-errors: 1.3.0 gopd: 1.2.0 - electron-to-chromium@1.5.79: {} + electron-to-chromium@1.5.283: {} emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} - entities@4.5.0: {} + emojis-list@3.0.0: {} + + empathic@2.0.0: {} - error-ex@1.3.2: + enhanced-resolve@5.18.4: dependencies: - is-arrayish: 0.2.1 + graceful-fs: 4.2.11 + tapable: 2.3.0 - es-abstract@1.23.9: + es-abstract@1.24.1: dependencies: array-buffer-byte-length: 1.0.2 arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 data-view-buffer: 1.0.2 data-view-byte-length: 1.0.2 data-view-byte-offset: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 get-proto: 1.0.1 get-symbol-description: 1.1.0 globalthis: 1.0.4 @@ -5584,13 +5631,15 @@ snapshots: is-array-buffer: 3.0.5 is-callable: 1.2.7 is-data-view: 1.0.2 + is-negative-zero: 2.0.3 is-regex: 1.2.1 + is-set: 2.0.3 is-shared-array-buffer: 1.0.4 is-string: 1.1.1 is-typed-array: 1.1.15 - is-weakref: 1.1.0 + is-weakref: 1.1.1 math-intrinsics: 1.1.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 object-keys: 1.1.1 object.assign: 4.1.7 own-keys: 1.0.1 @@ -5599,6 +5648,7 @@ snapshots: safe-push-apply: 1.0.0 safe-regex-test: 1.1.0 set-proto: 1.0.0 + stop-iteration-iterator: 1.1.0 string.prototype.trim: 1.2.10 string.prototype.trimend: 1.0.9 string.prototype.trimstart: 1.0.8 @@ -5607,7 +5657,7 @@ snapshots: typed-array-byte-offset: 1.0.4 typed-array-length: 1.0.7 unbox-primitive: 1.1.0 - which-typed-array: 1.1.18 + which-typed-array: 1.1.20 es-define-property@1.0.1: {} @@ -5616,7 +5666,7 @@ snapshots: es-get-iterator@1.1.3: dependencies: call-bind: 1.0.8 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 has-symbols: 1.1.0 is-arguments: 1.2.0 is-map: 2.0.3 @@ -5625,16 +5675,16 @@ snapshots: isarray: 2.0.5 stop-iteration-iterator: 1.1.0 - es-iterator-helpers@1.2.1: + es-iterator-helpers@1.2.2: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.1 es-errors: 1.3.0 es-set-tostringtag: 2.1.0 function-bind: 1.1.2 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 globalthis: 1.0.4 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -5644,18 +5694,22 @@ snapshots: iterator.prototype: 1.1.5 safe-array-concat: 1.1.3 - es-object-atoms@1.0.0: + es-module-lexer@1.7.0: {} + + es-module-lexer@2.0.0: {} + + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 hasown: 2.0.2 - es-shim-unscopables@1.0.2: + es-shim-unscopables@1.1.0: dependencies: hasown: 2.0.2 @@ -5665,113 +5719,54 @@ snapshots: is-date-object: 1.1.0 is-symbol: 1.1.1 - esbuild-register@3.6.0(esbuild@0.24.2): - dependencies: - debug: 4.4.0 - esbuild: 0.24.2 - transitivePeerDependencies: - - supports-color - - esbuild@0.21.5: - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.5 - '@esbuild/android-arm': 0.21.5 - '@esbuild/android-arm64': 0.21.5 - '@esbuild/android-x64': 0.21.5 - '@esbuild/darwin-arm64': 0.21.5 - '@esbuild/darwin-x64': 0.21.5 - '@esbuild/freebsd-arm64': 0.21.5 - '@esbuild/freebsd-x64': 0.21.5 - '@esbuild/linux-arm': 0.21.5 - '@esbuild/linux-arm64': 0.21.5 - '@esbuild/linux-ia32': 0.21.5 - '@esbuild/linux-loong64': 0.21.5 - '@esbuild/linux-mips64el': 0.21.5 - '@esbuild/linux-ppc64': 0.21.5 - '@esbuild/linux-riscv64': 0.21.5 - '@esbuild/linux-s390x': 0.21.5 - '@esbuild/linux-x64': 0.21.5 - '@esbuild/netbsd-x64': 0.21.5 - '@esbuild/openbsd-x64': 0.21.5 - '@esbuild/sunos-x64': 0.21.5 - '@esbuild/win32-arm64': 0.21.5 - '@esbuild/win32-ia32': 0.21.5 - '@esbuild/win32-x64': 0.21.5 - - esbuild@0.23.1: + esbuild@0.27.2: optionalDependencies: - '@esbuild/aix-ppc64': 0.23.1 - '@esbuild/android-arm': 0.23.1 - '@esbuild/android-arm64': 0.23.1 - '@esbuild/android-x64': 0.23.1 - '@esbuild/darwin-arm64': 0.23.1 - '@esbuild/darwin-x64': 0.23.1 - '@esbuild/freebsd-arm64': 0.23.1 - '@esbuild/freebsd-x64': 0.23.1 - '@esbuild/linux-arm': 0.23.1 - '@esbuild/linux-arm64': 0.23.1 - '@esbuild/linux-ia32': 0.23.1 - '@esbuild/linux-loong64': 0.23.1 - '@esbuild/linux-mips64el': 0.23.1 - '@esbuild/linux-ppc64': 0.23.1 - '@esbuild/linux-riscv64': 0.23.1 - '@esbuild/linux-s390x': 0.23.1 - '@esbuild/linux-x64': 0.23.1 - '@esbuild/netbsd-x64': 0.23.1 - '@esbuild/openbsd-arm64': 0.23.1 - '@esbuild/openbsd-x64': 0.23.1 - '@esbuild/sunos-x64': 0.23.1 - '@esbuild/win32-arm64': 0.23.1 - '@esbuild/win32-ia32': 0.23.1 - '@esbuild/win32-x64': 0.23.1 - - esbuild@0.24.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.24.2 - '@esbuild/android-arm': 0.24.2 - '@esbuild/android-arm64': 0.24.2 - '@esbuild/android-x64': 0.24.2 - '@esbuild/darwin-arm64': 0.24.2 - '@esbuild/darwin-x64': 0.24.2 - '@esbuild/freebsd-arm64': 0.24.2 - '@esbuild/freebsd-x64': 0.24.2 - '@esbuild/linux-arm': 0.24.2 - '@esbuild/linux-arm64': 0.24.2 - '@esbuild/linux-ia32': 0.24.2 - '@esbuild/linux-loong64': 0.24.2 - '@esbuild/linux-mips64el': 0.24.2 - '@esbuild/linux-ppc64': 0.24.2 - '@esbuild/linux-riscv64': 0.24.2 - '@esbuild/linux-s390x': 0.24.2 - '@esbuild/linux-x64': 0.24.2 - '@esbuild/netbsd-arm64': 0.24.2 - '@esbuild/netbsd-x64': 0.24.2 - '@esbuild/openbsd-arm64': 0.24.2 - '@esbuild/openbsd-x64': 0.24.2 - '@esbuild/sunos-x64': 0.24.2 - '@esbuild/win32-arm64': 0.24.2 - '@esbuild/win32-ia32': 0.24.2 - '@esbuild/win32-x64': 0.24.2 + '@esbuild/aix-ppc64': 0.27.2 + '@esbuild/android-arm': 0.27.2 + '@esbuild/android-arm64': 0.27.2 + '@esbuild/android-x64': 0.27.2 + '@esbuild/darwin-arm64': 0.27.2 + '@esbuild/darwin-x64': 0.27.2 + '@esbuild/freebsd-arm64': 0.27.2 + '@esbuild/freebsd-x64': 0.27.2 + '@esbuild/linux-arm': 0.27.2 + '@esbuild/linux-arm64': 0.27.2 + '@esbuild/linux-ia32': 0.27.2 + '@esbuild/linux-loong64': 0.27.2 + '@esbuild/linux-mips64el': 0.27.2 + '@esbuild/linux-ppc64': 0.27.2 + '@esbuild/linux-riscv64': 0.27.2 + '@esbuild/linux-s390x': 0.27.2 + '@esbuild/linux-x64': 0.27.2 + '@esbuild/netbsd-arm64': 0.27.2 + '@esbuild/netbsd-x64': 0.27.2 + '@esbuild/openbsd-arm64': 0.27.2 + '@esbuild/openbsd-x64': 0.27.2 + '@esbuild/openharmony-arm64': 0.27.2 + '@esbuild/sunos-x64': 0.27.2 + '@esbuild/win32-arm64': 0.27.2 + '@esbuild/win32-ia32': 0.27.2 + '@esbuild/win32-x64': 0.27.2 escalade@3.2.0: {} escape-string-regexp@4.0.0: {} - eslint-config-prettier@9.1.0(eslint@9.17.0): + eslint-config-prettier@9.1.2(eslint@9.39.2): dependencies: - eslint: 9.17.0 + eslint: 9.39.2 - eslint-plugin-jsx-a11y@6.10.2(eslint@9.17.0): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.2): dependencies: aria-query: 5.3.2 - array-includes: 3.1.8 + array-includes: 3.1.9 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 - axe-core: 4.11.0 + axe-core: 4.11.1 axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.17.0 + eslint: 9.39.2 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -5780,37 +5775,38 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@9.17.0))(eslint@9.17.0)(prettier@3.4.2): + eslint-plugin-prettier@5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@9.1.2(eslint@9.39.2))(eslint@9.39.2)(prettier@3.8.1): dependencies: - eslint: 9.17.0 - prettier: 3.4.2 - prettier-linter-helpers: 1.0.0 - synckit: 0.9.2 + eslint: 9.39.2 + prettier: 3.8.1 + prettier-linter-helpers: 1.0.1 + synckit: 0.11.12 optionalDependencies: - eslint-config-prettier: 9.1.0(eslint@9.17.0) + '@types/eslint': 9.6.1 + eslint-config-prettier: 9.1.2(eslint@9.39.2) - eslint-plugin-react-hooks@5.1.0(eslint@9.17.0): + eslint-plugin-react-hooks@5.2.0(eslint@9.39.2): dependencies: - eslint: 9.17.0 + eslint: 9.39.2 - eslint-plugin-react-refresh@0.4.16(eslint@9.17.0): + eslint-plugin-react-refresh@0.4.26(eslint@9.39.2): dependencies: - eslint: 9.17.0 + eslint: 9.39.2 - eslint-plugin-react@7.37.3(eslint@9.17.0): + eslint-plugin-react@7.37.5(eslint@9.39.2): dependencies: - array-includes: 3.1.8 + array-includes: 3.1.9 array.prototype.findlast: 1.2.5 array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.2.1 - eslint: 9.17.0 + es-iterator-helpers: 1.2.2 + eslint: 9.39.2 estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 - object.entries: 1.1.8 + object.entries: 1.1.9 object.fromentries: 2.0.8 object.values: 1.2.1 prop-types: 15.8.1 @@ -5819,48 +5815,53 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-storybook@0.11.2(eslint@9.17.0)(typescript@5.6.3): + eslint-plugin-storybook@0.11.6(eslint@9.39.2)(typescript@5.6.3): dependencies: '@storybook/csf': 0.1.13 - '@typescript-eslint/utils': 8.19.1(eslint@9.17.0)(typescript@5.6.3) - eslint: 9.17.0 + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2)(typescript@5.6.3) + eslint: 9.39.2 ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color - typescript - eslint-scope@8.2.0: + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.0: {} + eslint-visitor-keys@4.2.1: {} - eslint@9.17.0: + eslint@9.39.2: dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.19.1 - '@eslint/core': 0.9.1 - '@eslint/eslintrc': 3.2.0 - '@eslint/js': 9.17.0 - '@eslint/plugin-kit': 0.2.4 - '@humanfs/node': 0.16.6 + '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.1 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 + '@eslint/eslintrc': 3.3.3 + '@eslint/js': 9.39.2 + '@eslint/plugin-kit': 0.4.1 + '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.1 - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.0 + debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint-scope: 8.2.0 - eslint-visitor-keys: 4.2.0 - espree: 10.3.0 - esquery: 1.6.0 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 8.0.0 @@ -5877,15 +5878,15 @@ snapshots: transitivePeerDependencies: - supports-color - espree@10.3.0: + espree@10.4.0: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) - eslint-visitor-keys: 4.2.0 + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 esprima@4.0.1: {} - esquery@1.6.0: + esquery@1.7.0: dependencies: estraverse: 5.3.0 @@ -5893,40 +5894,40 @@ snapshots: dependencies: estraverse: 5.3.0 + estraverse@4.3.0: {} + estraverse@5.3.0: {} estree-walker@2.0.2: {} estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 esutils@2.0.3: {} eval@0.1.8: dependencies: - '@types/node': 22.10.5 + '@types/node': 25.2.0 require-like: 0.1.2 + events@3.3.0: {} + + expect-type@1.3.0: {} + fast-deep-equal@3.1.3: {} fast-diff@1.3.0: {} - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} - fastq@1.18.0: - dependencies: - reusify: 1.0.4 + fast-uri@3.1.0: {} + + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 file-entry-cache@8.0.0: dependencies: @@ -5945,27 +5946,34 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.2 + flatted: 3.3.3 keyv: 4.5.4 - flatted@3.3.2: {} + flatted@3.3.3: {} - follow-redirects@1.15.9: {} + follow-redirects@1.15.11: {} - for-each@0.3.3: + for-each@0.3.5: dependencies: is-callable: 1.2.7 - form-data@4.0.1: + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + form-data@4.0.5: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 mime-types: 2.1.35 - framer-motion@12.23.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + framer-motion@12.29.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - motion-dom: 12.23.12 - motion-utils: 12.23.6 + motion-dom: 12.29.2 + motion-utils: 12.29.2 tslib: 2.8.1 optionalDependencies: react: 18.3.1 @@ -5973,6 +5981,9 @@ snapshots: fs.realpath@1.0.0: {} + fsevents@2.3.2: + optional: true + fsevents@2.3.3: optional: true @@ -5981,7 +5992,7 @@ snapshots: function.prototype.name@1.1.8: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 functions-have-names: 1.2.3 hasown: 2.0.2 @@ -5989,16 +6000,18 @@ snapshots: functions-have-names@1.2.3: {} + generator-function@2.0.1: {} + gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} - get-intrinsic@1.2.7: + get-intrinsic@1.3.0: dependencies: - call-bind-apply-helpers: 1.0.1 + call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 function-bind: 1.1.2 get-proto: 1.0.1 gopd: 1.2.0 @@ -6009,13 +6022,13 @@ snapshots: get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 get-symbol-description@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 get-user-locale@2.3.2: dependencies: @@ -6029,6 +6042,17 @@ snapshots: dependencies: is-glob: 4.0.3 + glob-to-regexp@0.4.1: {} + + glob@11.1.0: + dependencies: + foreground-child: 3.3.1 + jackspeak: 4.2.3 + minimatch: 10.1.2 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.1 + glob@9.3.5: dependencies: fs.realpath: 1.0.0 @@ -6036,11 +6060,9 @@ snapshots: minipass: 4.2.8 path-scurry: 1.11.1 - globals@11.12.0: {} - globals@14.0.0: {} - globals@15.14.0: {} + globals@15.15.0: {} globalthis@1.0.4: dependencies: @@ -6049,18 +6071,15 @@ snapshots: globrex@0.1.2: {} - goober@2.1.16(csstype@3.1.3): + goober@2.1.18(csstype@3.2.3): dependencies: - csstype: 3.1.3 + csstype: 3.2.3 gopd@1.2.0: {} - graceful-fs@4.2.11: - optional: true + graceful-fs@4.2.11: {} - graphemer@1.4.0: {} - - graphql@16.11.0: {} + graphql@16.12.0: {} has-bigints@1.1.0: {} @@ -6090,35 +6109,30 @@ snapshots: dependencies: react-is: 16.13.1 + html-escaper@2.0.2: {} + https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.0 + debug: 4.4.3 transitivePeerDependencies: - supports-color ignore@5.3.2: {} - import-fresh@3.3.0: + ignore@7.0.5: {} + + image-size@2.0.2: {} + + import-fresh@3.3.1: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - import-from-esm@1.3.4: - dependencies: - debug: 4.4.0 - import-meta-resolve: 4.1.0 - transitivePeerDependencies: - - supports-color - - import-meta-resolve@4.1.0: {} - imurmurhash@0.1.4: {} indent-string@4.0.0: {} - inherits@2.0.4: {} - install@0.13.0: {} internal-slot@1.1.0: @@ -6129,20 +6143,19 @@ snapshots: is-arguments@1.2.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-array-buffer@3.0.5: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 - is-arrayish@0.2.1: {} - - is-async-function@2.1.0: + is-async-function@2.1.1: dependencies: - call-bound: 1.0.3 + async-function: 1.0.0 + call-bound: 1.0.4 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -6155,9 +6168,9 @@ snapshots: dependencies: binary-extensions: 2.3.0 - is-boolean-object@1.2.1: + is-boolean-object@1.2.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-callable@1.2.7: {} @@ -6168,28 +6181,29 @@ snapshots: is-data-view@1.0.2: dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 is-typed-array: 1.1.15 is-date-object@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-docker@2.2.1: {} + is-docker@3.0.0: {} is-extglob@2.1.1: {} is-finalizationregistry@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 is-fullwidth-code-point@3.0.0: {} - is-generator-function@1.1.0: + is-generator-function@1.1.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 + generator-function: 2.0.1 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -6198,20 +6212,26 @@ snapshots: dependencies: is-extglob: 2.1.1 + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + is-map@2.0.3: {} + is-negative-zero@2.0.3: {} + is-node-process@1.2.0: {} is-number-object@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-number@7.0.0: {} is-regex@1.2.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 gopd: 1.2.0 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -6220,63 +6240,86 @@ snapshots: is-shared-array-buffer@1.0.4: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 is-string@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-tostringtag: 1.0.2 is-symbol@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-symbols: 1.1.0 safe-regex-test: 1.1.0 is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.18 + which-typed-array: 1.1.20 is-weakmap@2.0.2: {} - is-weakref@1.1.0: + is-weakref@1.1.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 is-weakset@2.0.4: dependencies: - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 - is-wsl@2.2.0: + is-wsl@3.1.0: dependencies: - is-docker: 2.2.1 + is-inside-container: 1.0.0 isarray@2.0.5: {} isexe@2.0.0: {} + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-reports@3.2.0: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + iterator.prototype@1.1.5: dependencies: define-data-property: 1.1.4 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.7 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 get-proto: 1.0.1 has-symbols: 1.1.0 set-function-name: 2.0.2 + jackspeak@4.2.3: + dependencies: + '@isaacs/cliui': 9.0.0 + javascript-natural-sort@0.7.1: {} javascript-stringify@2.1.0: {} + jest-worker@27.5.1: + dependencies: + '@types/node': 25.2.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + js-tokens@10.0.0: {} + js-tokens@4.0.0: {} - js-yaml@4.1.0: + js-yaml@4.1.1: dependencies: argparse: 2.0.1 - jsdoc-type-pratt-parser@4.1.0: {} - jsesc@3.1.0: {} json-buffer@3.0.1: {} @@ -6285,11 +6328,13 @@ snapshots: json-schema-traverse@0.4.1: {} + json-schema-traverse@1.0.0: {} + json-stable-stringify-without-jsonify@1.0.1: {} json5@2.2.3: {} - jsonfile@6.1.0: + jsonfile@6.2.0: dependencies: universalify: 2.0.1 optionalDependencies: @@ -6297,7 +6342,7 @@ snapshots: jsx-ast-utils@3.3.5: dependencies: - array-includes: 3.1.8 + array-includes: 3.1.9 array.prototype.flat: 1.3.3 object.assign: 4.1.7 object.values: 1.2.1 @@ -6317,7 +6362,13 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lines-and-columns@1.2.4: {} + loader-runner@4.3.1: {} + + loader-utils@2.0.4: + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 2.2.3 locate-path@6.0.0: dependencies: @@ -6325,65 +6376,58 @@ snapshots: lodash.merge@4.6.2: {} - lodash@4.17.21: {} + lodash@4.17.23: {} loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 - loupe@3.1.2: {} - - lower-case@2.0.2: - dependencies: - tslib: 2.8.1 + loupe@3.2.1: {} lru-cache@10.4.3: {} + lru-cache@11.2.5: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 lz-string@1.5.0: {} - magic-string@0.27.0: + magic-string@0.30.21: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 - magic-string@0.30.17: + magic-string@0.30.8: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/sourcemap-codec': 1.5.5 - magic-string@0.30.8: + magicast@0.5.2: + dependencies: + '@babel/parser': 7.29.0 + '@babel/types': 7.29.0 + source-map-js: 1.2.1 + + make-dir@4.0.0: dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 + semver: 7.7.3 map-age-cleaner@0.1.3: dependencies: p-defer: 1.0.0 - map-or-similar@1.5.0: {} - math-intrinsics@1.1.0: {} media-query-parser@2.0.2: dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.28.6 mem@8.1.1: dependencies: map-age-cleaner: 0.1.3 mimic-fn: 3.1.0 - memoizerific@1.11.3: - dependencies: - map-or-similar: 1.5.0 - - merge2@1.4.1: {} - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 + merge-stream@2.0.0: {} mime-db@1.52.0: {} @@ -6395,17 +6439,21 @@ snapshots: min-indent@1.0.1: {} + minimatch@10.1.2: + dependencies: + '@isaacs/brace-expansion': 5.0.1 + minimatch@3.1.2: dependencies: - brace-expansion: 1.1.11 + brace-expansion: 1.1.12 minimatch@8.0.4: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimatch@9.0.5: dependencies: - brace-expansion: 2.0.1 + brace-expansion: 2.0.2 minimist@1.2.8: {} @@ -6413,50 +6461,55 @@ snapshots: minipass@7.1.2: {} - mlly@1.7.3: + mlly@1.8.0: dependencies: - acorn: 8.14.0 - pathe: 1.1.2 - pkg-types: 1.3.0 - ufo: 1.5.4 + acorn: 8.15.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.6.3 modern-ahocorasick@1.1.0: {} - motion-dom@12.23.12: + module-alias@2.3.4: {} + + motion-dom@12.29.2: dependencies: - motion-utils: 12.23.6 + motion-utils: 12.29.2 - motion-utils@12.23.6: {} + motion-utils@12.29.2: {} - motion@12.23.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + motion@12.29.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - framer-motion: 12.23.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + framer-motion: 12.29.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tslib: 2.8.1 optionalDependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + mrmime@2.0.1: + optional: true + ms@2.1.3: {} - msw@2.10.4(@types/node@22.10.5)(typescript@5.6.3): + msw@2.12.7(@types/node@25.2.0)(typescript@5.6.3): dependencies: - '@bundled-es-modules/cookie': 2.0.1 - '@bundled-es-modules/statuses': 1.0.1 - '@bundled-es-modules/tough-cookie': 0.1.6 - '@inquirer/confirm': 5.1.13(@types/node@22.10.5) - '@mswjs/interceptors': 0.39.2 + '@inquirer/confirm': 5.1.21(@types/node@25.2.0) + '@mswjs/interceptors': 0.40.0 '@open-draft/deferred-promise': 2.2.0 - '@open-draft/until': 2.1.0 - '@types/cookie': 0.6.0 '@types/statuses': 2.0.6 - graphql: 16.11.0 + cookie: 1.1.1 + graphql: 16.12.0 headers-polyfill: 4.0.3 is-node-process: 1.2.0 outvariant: 1.4.3 path-to-regexp: 6.3.0 picocolors: 1.1.1 + rettime: 0.7.0 + statuses: 2.0.2 strict-event-emitter: 0.5.1 - type-fest: 4.41.0 + tough-cookie: 6.0.0 + type-fest: 5.4.3 + until-async: 3.0.2 yargs: 17.7.2 optionalDependencies: typescript: 5.6.3 @@ -6465,26 +6518,46 @@ snapshots: mute-stream@2.0.0: {} - nanoid@3.3.8: {} + nanoid@3.3.11: {} natural-compare@1.4.0: {} - no-case@3.0.4: + neo-async@2.6.2: {} + + next@15.5.7(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - lower-case: 2.0.2 - tslib: 2.8.1 + '@next/env': 15.5.7 + '@swc/helpers': 0.5.15 + caniuse-lite: 1.0.30001767 + postcss: 8.4.31 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + styled-jsx: 5.1.6(@babel/core@7.29.0)(react@18.3.1) + optionalDependencies: + '@next/swc-darwin-arm64': 15.5.7 + '@next/swc-darwin-x64': 15.5.7 + '@next/swc-linux-arm64-gnu': 15.5.7 + '@next/swc-linux-arm64-musl': 15.5.7 + '@next/swc-linux-x64-gnu': 15.5.7 + '@next/swc-linux-x64-musl': 15.5.7 + '@next/swc-win32-arm64-msvc': 15.5.7 + '@next/swc-win32-x64-msvc': 15.5.7 + sharp: 0.34.5 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - node-releases@2.0.19: {} + node-releases@2.0.27: {} normalize-path@3.0.0: {} object-assign@4.1.1: {} - object-inspect@1.13.3: {} + object-inspect@1.13.4: {} object-is@1.1.6: dependencies: @@ -6496,37 +6569,41 @@ snapshots: object.assign@4.1.7: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 has-symbols: 1.1.0 object-keys: 1.1.1 - object.entries@1.1.8: + object.entries@1.1.9: dependencies: call-bind: 1.0.8 + call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 object.fromentries@2.0.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.0.0 + es-abstract: 1.24.1 + es-object-atoms: 1.1.1 object.values@1.2.1: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 - open@8.4.2: + obug@2.1.1: {} + + open@10.2.0: dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 + default-browser: 5.5.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + wsl-utils: 0.1.0 optionator@0.9.4: dependencies: @@ -6541,7 +6618,7 @@ snapshots: own-keys@1.0.1: dependencies: - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 object-keys: 1.1.1 safe-push-apply: 1.0.0 @@ -6555,17 +6632,12 @@ snapshots: dependencies: p-limit: 3.1.0 + package-json-from-dist@1.0.1: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 - parse-json@5.2.0: - dependencies: - '@babel/code-frame': 7.26.2 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - path-exists@4.0.0: {} path-key@3.1.1: {} @@ -6577,45 +6649,68 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-to-regexp@6.3.0: {} + path-scurry@2.0.1: + dependencies: + lru-cache: 11.2.5 + minipass: 7.1.2 - path-type@4.0.0: {} + path-to-regexp@6.3.0: {} - pathe@1.1.2: {} + pathe@2.0.3: {} - pathval@2.0.0: {} + pathval@2.0.1: {} picocolors@1.1.1: {} picomatch@2.3.1: {} - picomatch@4.0.2: {} + picomatch@4.0.3: {} + + pixelmatch@7.1.0: + dependencies: + pngjs: 7.0.0 + optional: true - pkg-types@1.3.0: + pkg-types@1.3.1: dependencies: confbox: 0.1.8 - mlly: 1.7.3 - pathe: 1.1.2 + mlly: 1.8.0 + pathe: 2.0.3 + + playwright-core@1.58.2: + optional: true - polished@4.3.1: + playwright@1.58.2: dependencies: - '@babel/runtime': 7.26.0 + playwright-core: 1.58.2 + optionalDependencies: + fsevents: 2.3.2 + optional: true + + pngjs@7.0.0: + optional: true - possible-typed-array-names@1.0.0: {} + possible-typed-array-names@1.1.0: {} - postcss@8.4.49: + postcss@8.4.31: dependencies: - nanoid: 3.3.8 + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 picocolors: 1.1.1 source-map-js: 1.2.1 prelude-ls@1.2.1: {} - prettier-linter-helpers@1.0.0: + prettier-linter-helpers@1.0.1: dependencies: fast-diff: 1.3.0 - prettier@3.4.2: {} + prettier@3.8.1: {} pretty-format@27.5.1: dependencies: @@ -6623,8 +6718,6 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 - process@0.11.10: {} - progress@2.0.3: {} prop-types@15.8.1: @@ -6635,17 +6728,13 @@ snapshots: proxy-from-env@1.1.0: {} - psl@1.15.0: - dependencies: - punycode: 2.3.1 - punycode@2.3.1: {} - querystringify@2.2.0: {} - - queue-microtask@1.2.3: {} + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 - react-calendar@5.1.0(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-calendar@5.1.0(@types/react@18.3.27)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@wojtekmaj/date-utils': 1.5.1 clsx: 2.1.1 @@ -6654,29 +6743,24 @@ snapshots: react-dom: 18.3.1(react@18.3.1) warning: 4.0.3 optionalDependencies: - '@types/react': 18.3.18 - - react-confetti@6.2.2(react@18.3.1): - dependencies: - react: 18.3.1 - tween-functions: 1.2.0 + '@types/react': 18.3.27 - react-docgen-typescript@2.2.2(typescript@5.6.3): + react-docgen-typescript@2.4.0(typescript@5.6.3): dependencies: typescript: 5.6.3 - react-docgen@7.1.0: + react-docgen@8.0.2: dependencies: - '@babel/core': 7.26.0 - '@babel/traverse': 7.26.4 - '@babel/types': 7.26.3 + '@babel/core': 7.29.0 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 '@types/babel__core': 7.20.5 - '@types/babel__traverse': 7.20.6 + '@types/babel__traverse': 7.28.0 '@types/doctrine': 0.0.9 '@types/resolve': 1.20.6 doctrine: 3.0.0 - resolve: 1.22.10 - strip-indent: 4.0.0 + resolve: 1.22.11 + strip-indent: 4.1.1 transitivePeerDependencies: - supports-color @@ -6688,17 +6772,17 @@ snapshots: react-error-boundary@5.0.0(react@18.3.1): dependencies: - '@babel/runtime': 7.26.0 + '@babel/runtime': 7.28.6 react: 18.3.1 - react-hook-form@7.56.1(react@18.3.1): + react-hook-form@7.71.1(react@18.3.1): dependencies: react: 18.3.1 - react-hot-toast@2.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-hot-toast@2.6.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - csstype: 3.1.3 - goober: 2.1.16(csstype@3.1.3) + csstype: 3.2.3 + goober: 2.1.18(csstype@3.2.3) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6708,24 +6792,6 @@ snapshots: react-is@17.0.2: {} - react-refresh@0.14.2: {} - - react-router-dom@7.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-router: 7.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - - react-router@7.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@types/cookie': 0.6.0 - cookie: 1.0.2 - react: 18.3.1 - set-cookie-parser: 2.7.1 - turbo-stream: 2.4.0 - optionalDependencies: - react-dom: 18.3.1(react@18.3.1) - react@18.3.1: dependencies: loose-envify: 1.4.0 @@ -6734,7 +6800,7 @@ snapshots: dependencies: picomatch: 2.3.1 - recast@0.23.9: + recast@0.23.11: dependencies: ast-types: 0.16.1 esprima: 4.0.1 @@ -6751,15 +6817,13 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.7 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 - regenerator-runtime@0.14.1: {} - regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 @@ -6771,13 +6835,13 @@ snapshots: require-directory@2.1.1: {} - require-like@0.1.2: {} + require-from-string@2.0.2: {} - requires-port@1.0.0: {} + require-like@0.1.2: {} resolve-from@4.0.0: {} - resolve@1.22.10: + resolve@1.22.11: dependencies: is-core-module: 2.16.1 path-parse: 1.0.7 @@ -6789,54 +6853,51 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - reusify@1.0.4: {} - - rollup-plugin-visualizer@5.14.0(rollup@4.30.0): - dependencies: - open: 8.4.2 - picomatch: 4.0.2 - source-map: 0.7.4 - yargs: 17.7.2 - optionalDependencies: - rollup: 4.30.0 + rettime@0.7.0: {} - rollup@4.30.0: + rollup@4.57.1: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.30.0 - '@rollup/rollup-android-arm64': 4.30.0 - '@rollup/rollup-darwin-arm64': 4.30.0 - '@rollup/rollup-darwin-x64': 4.30.0 - '@rollup/rollup-freebsd-arm64': 4.30.0 - '@rollup/rollup-freebsd-x64': 4.30.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.30.0 - '@rollup/rollup-linux-arm-musleabihf': 4.30.0 - '@rollup/rollup-linux-arm64-gnu': 4.30.0 - '@rollup/rollup-linux-arm64-musl': 4.30.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.30.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.30.0 - '@rollup/rollup-linux-riscv64-gnu': 4.30.0 - '@rollup/rollup-linux-s390x-gnu': 4.30.0 - '@rollup/rollup-linux-x64-gnu': 4.30.0 - '@rollup/rollup-linux-x64-musl': 4.30.0 - '@rollup/rollup-win32-arm64-msvc': 4.30.0 - '@rollup/rollup-win32-ia32-msvc': 4.30.0 - '@rollup/rollup-win32-x64-msvc': 4.30.0 + '@rollup/rollup-android-arm-eabi': 4.57.1 + '@rollup/rollup-android-arm64': 4.57.1 + '@rollup/rollup-darwin-arm64': 4.57.1 + '@rollup/rollup-darwin-x64': 4.57.1 + '@rollup/rollup-freebsd-arm64': 4.57.1 + '@rollup/rollup-freebsd-x64': 4.57.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.57.1 + '@rollup/rollup-linux-arm-musleabihf': 4.57.1 + '@rollup/rollup-linux-arm64-gnu': 4.57.1 + '@rollup/rollup-linux-arm64-musl': 4.57.1 + '@rollup/rollup-linux-loong64-gnu': 4.57.1 + '@rollup/rollup-linux-loong64-musl': 4.57.1 + '@rollup/rollup-linux-ppc64-gnu': 4.57.1 + '@rollup/rollup-linux-ppc64-musl': 4.57.1 + '@rollup/rollup-linux-riscv64-gnu': 4.57.1 + '@rollup/rollup-linux-riscv64-musl': 4.57.1 + '@rollup/rollup-linux-s390x-gnu': 4.57.1 + '@rollup/rollup-linux-x64-gnu': 4.57.1 + '@rollup/rollup-linux-x64-musl': 4.57.1 + '@rollup/rollup-openbsd-x64': 4.57.1 + '@rollup/rollup-openharmony-arm64': 4.57.1 + '@rollup/rollup-win32-arm64-msvc': 4.57.1 + '@rollup/rollup-win32-ia32-msvc': 4.57.1 + '@rollup/rollup-win32-x64-gnu': 4.57.1 + '@rollup/rollup-win32-x64-msvc': 4.57.1 fsevents: 2.3.3 - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 + run-applescript@7.1.0: {} safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 - get-intrinsic: 1.2.7 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 has-symbols: 1.1.0 isarray: 2.0.5 + safe-buffer@5.2.1: {} + safe-push-apply@1.0.0: dependencies: es-errors: 1.3.0 @@ -6844,7 +6905,7 @@ snapshots: safe-regex-test@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-regex: 1.2.1 @@ -6852,18 +6913,27 @@ snapshots: dependencies: loose-envify: 1.4.0 + schema-utils@4.3.3: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + ajv-keywords: 5.1.0(ajv@8.17.1) + semver@6.3.1: {} - semver@7.6.3: {} + semver@7.7.3: {} - set-cookie-parser@2.7.1: {} + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -6878,7 +6948,39 @@ snapshots: dependencies: dunder-proto: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 + + sharp@0.34.5: + dependencies: + '@img/colour': 1.0.0 + detect-libc: 2.1.2 + semver: 7.7.3 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.34.5 + '@img/sharp-darwin-x64': 0.34.5 + '@img/sharp-libvips-darwin-arm64': 1.2.4 + '@img/sharp-libvips-darwin-x64': 1.2.4 + '@img/sharp-libvips-linux-arm': 1.2.4 + '@img/sharp-libvips-linux-arm64': 1.2.4 + '@img/sharp-libvips-linux-ppc64': 1.2.4 + '@img/sharp-libvips-linux-riscv64': 1.2.4 + '@img/sharp-libvips-linux-s390x': 1.2.4 + '@img/sharp-libvips-linux-x64': 1.2.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 + '@img/sharp-libvips-linuxmusl-x64': 1.2.4 + '@img/sharp-linux-arm': 0.34.5 + '@img/sharp-linux-arm64': 0.34.5 + '@img/sharp-linux-ppc64': 0.34.5 + '@img/sharp-linux-riscv64': 0.34.5 + '@img/sharp-linux-s390x': 0.34.5 + '@img/sharp-linux-x64': 0.34.5 + '@img/sharp-linuxmusl-arm64': 0.34.5 + '@img/sharp-linuxmusl-x64': 0.34.5 + '@img/sharp-wasm32': 0.34.5 + '@img/sharp-win32-arm64': 0.34.5 + '@img/sharp-win32-ia32': 0.34.5 + '@img/sharp-win32-x64': 0.34.5 + optional: true shebang-command@2.0.0: dependencies: @@ -6889,61 +6991,83 @@ snapshots: side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-map@1.0.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.7 - object-inspect: 1.13.3 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 side-channel-weakmap@1.0.2: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 - get-intrinsic: 1.2.7 - object-inspect: 1.13.3 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 side-channel-map: 1.0.1 side-channel@1.1.0: dependencies: es-errors: 1.3.0 - object-inspect: 1.13.3 + object-inspect: 1.13.4 side-channel-list: 1.0.0 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + siginfo@2.0.0: {} + signal-exit@4.1.0: {} - snake-case@3.0.4: + sirv@3.0.2: dependencies: - dot-case: 3.0.4 - tslib: 2.8.1 + '@polka/url': 1.0.0-next.29 + mrmime: 2.0.1 + totalist: 3.0.1 + optional: true source-map-js@1.2.1: {} - source-map@0.6.1: {} + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 - source-map@0.7.4: {} + source-map@0.6.1: {} - ssr-window@3.0.0: {} + stackback@0.0.2: {} statuses@2.0.2: {} + std-env@3.10.0: {} + stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 internal-slot: 1.1.0 - storybook@8.4.7(prettier@3.4.2): + storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@storybook/core': 8.4.7(prettier@3.4.2) + '@storybook/global': 5.0.0 + '@storybook/icons': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@testing-library/jest-dom': 6.9.1 + '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.1) + '@vitest/expect': 3.2.4 + '@vitest/spy': 3.2.4 + esbuild: 0.27.2 + open: 10.2.0 + recast: 0.23.11 + semver: 7.7.3 + use-sync-external-store: 1.6.0(react@18.3.1) + ws: 8.19.0 optionalDependencies: - prettier: 3.4.2 + prettier: 3.8.1 transitivePeerDependencies: + - '@testing-library/dom' - bufferutil - - supports-color + - react + - react-dom - utf-8-validate strict-event-emitter@0.5.1: {} @@ -6958,17 +7082,17 @@ snapshots: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.1 string.prototype.matchall@4.0.12: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.7 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 gopd: 1.2.0 has-symbols: 1.1.0 internal-slot: 1.1.0 @@ -6979,38 +7103,38 @@ snapshots: string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.23.9 + es-abstract: 1.24.1 string.prototype.trim@1.2.10: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.23.9 - es-object-atoms: 1.0.0 + es-abstract: 1.24.1 + es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 string.prototype.trimend@1.0.9: dependencies: call-bind: 1.0.8 - call-bound: 1.0.3 + call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 string.prototype.trimstart@1.0.8: dependencies: call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: + strip-ansi@7.1.2: dependencies: - ansi-regex: 6.1.0 + ansi-regex: 6.2.2 strip-bom@3.0.0: {} @@ -7018,64 +7142,102 @@ snapshots: dependencies: min-indent: 1.0.1 - strip-indent@4.0.0: - dependencies: - min-indent: 1.0.1 + strip-indent@4.1.1: {} strip-json-comments@3.1.1: {} + styled-jsx@5.1.6(@babel/core@7.29.0)(react@18.3.1): + dependencies: + client-only: 0.0.1 + react: 18.3.1 + optionalDependencies: + '@babel/core': 7.29.0 + supports-color@7.2.0: dependencies: has-flag: 4.0.0 + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + supports-preserve-symlinks-flag@1.0.0: {} - svg-parser@2.0.4: {} + swiper@11.2.10: {} - swiper@11.2.1: {} + synckit@0.11.12: + dependencies: + '@pkgr/core': 0.2.9 + + tagged-tag@1.0.0: {} - swiper@6.8.4: + tapable@2.3.0: {} + + terser-webpack-plugin@5.3.16(esbuild@0.27.2)(webpack@5.104.1(esbuild@0.27.2)): dependencies: - dom7: 3.0.0 - ssr-window: 3.0.0 + '@jridgewell/trace-mapping': 0.3.31 + jest-worker: 27.5.1 + schema-utils: 4.3.3 + serialize-javascript: 6.0.2 + terser: 5.46.0 + webpack: 5.104.1(esbuild@0.27.2) + optionalDependencies: + esbuild: 0.27.2 - synckit@0.9.2: + terser@5.46.0: dependencies: - '@pkgr/core': 0.1.1 - tslib: 2.8.1 + '@jridgewell/source-map': 0.3.11 + acorn: 8.15.0 + commander: 2.20.3 + source-map-support: 0.5.21 tiny-invariant@1.3.3: {} + tinybench@2.9.0: {} + + tinyexec@1.0.2: {} + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + tinyrainbow@1.2.0: {} + tinyrainbow@2.0.0: {} + + tinyrainbow@3.0.3: {} + tinyspy@3.0.2: {} - tmp@0.2.3: {} + tinyspy@4.0.4: {} + + tldts-core@7.0.21: {} + + tldts@7.0.21: + dependencies: + tldts-core: 7.0.21 to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - tough-cookie@4.1.4: + totalist@3.0.1: + optional: true + + tough-cookie@6.0.0: dependencies: - psl: 1.15.0 - punycode: 2.3.1 - universalify: 0.2.0 - url-parse: 1.5.10 + tldts: 7.0.21 tr46@0.0.3: {} - ts-api-utils@2.0.0(typescript@5.6.3): - dependencies: - typescript: 5.6.3 - - ts-api-utils@2.1.0(typescript@5.6.3): + ts-api-utils@2.4.0(typescript@5.6.3): dependencies: typescript: 5.6.3 ts-dedent@2.2.0: {} - tsconfck@3.1.4(typescript@5.6.3): + tsconfck@3.1.6(typescript@5.6.3): optionalDependencies: typescript: 5.6.3 @@ -7087,30 +7249,26 @@ snapshots: tslib@2.8.1: {} - turbo-stream@2.4.0: {} - - tween-functions@1.2.0: {} - type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - type-fest@0.21.3: {} - type-fest@2.19.0: {} - type-fest@4.41.0: {} + type-fest@5.4.3: + dependencies: + tagged-tag: 1.0.0 typed-array-buffer@1.0.3: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 es-errors: 1.3.0 is-typed-array: 1.1.15 typed-array-byte-length@1.0.3: dependencies: call-bind: 1.0.8 - for-each: 0.3.3 + for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -7119,7 +7277,7 @@ snapshots: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 - for-each: 0.3.3 + for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -7128,54 +7286,57 @@ snapshots: typed-array-length@1.0.7: dependencies: call-bind: 1.0.8 - for-each: 0.3.3 + for-each: 0.3.5 gopd: 1.2.0 is-typed-array: 1.1.15 - possible-typed-array-names: 1.0.0 + possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.28.0(eslint@9.17.0)(typescript@5.6.3): + typescript-eslint@8.54.0(eslint@9.39.2)(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.28.0(@typescript-eslint/parser@8.28.0(eslint@9.17.0)(typescript@5.6.3))(eslint@9.17.0)(typescript@5.6.3) - '@typescript-eslint/parser': 8.28.0(eslint@9.17.0)(typescript@5.6.3) - '@typescript-eslint/utils': 8.28.0(eslint@9.17.0)(typescript@5.6.3) - eslint: 9.17.0 + '@typescript-eslint/eslint-plugin': 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2)(typescript@5.6.3))(eslint@9.39.2)(typescript@5.6.3) + '@typescript-eslint/parser': 8.54.0(eslint@9.39.2)(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.54.0(typescript@5.6.3) + '@typescript-eslint/utils': 8.54.0(eslint@9.39.2)(typescript@5.6.3) + eslint: 9.39.2 typescript: 5.6.3 transitivePeerDependencies: - supports-color typescript@5.6.3: {} - ufo@1.5.4: {} + ufo@1.6.3: {} unbox-primitive@1.1.0: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 has-bigints: 1.1.0 has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - undici-types@6.20.0: {} - - universalify@0.2.0: {} + undici-types@7.16.0: {} universalify@2.0.1: {} unplugin@1.0.1: dependencies: - acorn: 8.14.0 + acorn: 8.15.0 chokidar: 3.6.0 webpack-sources: 3.3.3 webpack-virtual-modules: 0.5.0 - unplugin@1.16.1: + unplugin@2.3.11: dependencies: - acorn: 8.14.0 + '@jridgewell/remapping': 2.3.5 + acorn: 8.15.0 + picomatch: 4.0.3 webpack-virtual-modules: 0.6.2 - update-browserslist-db@1.1.1(browserslist@4.24.3): + until-async@3.0.2: {} + + update-browserslist-db@1.2.3(browserslist@4.28.1): dependencies: - browserslist: 4.24.3 + browserslist: 4.28.1 escalade: 3.2.0 picocolors: 1.1.1 @@ -7183,41 +7344,20 @@ snapshots: dependencies: punycode: 2.3.1 - url-parse@1.5.10: - dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - - util@0.12.5: + use-sync-external-store@1.6.0(react@18.3.1): dependencies: - inherits: 2.0.4 - is-arguments: 1.2.0 - is-generator-function: 1.1.0 - is-typed-array: 1.1.15 - which-typed-array: 1.1.18 - - uuid@9.0.1: {} - - vite-bundle-visualizer@1.2.1(rollup@4.30.0): - dependencies: - cac: 6.7.14 - import-from-esm: 1.3.4 - rollup-plugin-visualizer: 5.14.0(rollup@4.30.0) - tmp: 0.2.3 - transitivePeerDependencies: - - rolldown - - rollup - - supports-color + react: 18.3.1 - vite-node@1.6.0(@types/node@22.10.5): + vite-node@3.2.4(@types/node@25.2.0)(terser@5.46.0): dependencies: cac: 6.7.14 - debug: 4.4.0 - pathe: 1.1.2 - picocolors: 1.1.1 - vite: 5.4.11(@types/node@22.10.5) + debug: 4.4.3 + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 7.3.1(@types/node@25.2.0)(terser@5.46.0) transitivePeerDependencies: - '@types/node' + - jiti - less - lightningcss - sass @@ -7226,51 +7366,95 @@ snapshots: - sugarss - supports-color - terser + - tsx + - yaml - vite-plugin-svgr@4.3.0(rollup@4.30.0)(typescript@5.6.3)(vite@6.0.7(@types/node@22.10.5)): + vite-plugin-storybook-nextjs@3.1.10(next@15.5.7(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(storybook@10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.6.3)(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0)): dependencies: - '@rollup/pluginutils': 5.1.4(rollup@4.30.0) - '@svgr/core': 8.1.0(typescript@5.6.3) - '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.6.3)) - vite: 6.0.7(@types/node@22.10.5) + '@next/env': 16.0.0 + image-size: 2.0.2 + magic-string: 0.30.21 + module-alias: 2.3.4 + next: 15.5.7(@babel/core@7.29.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + storybook: 10.2.7(@testing-library/dom@10.4.1)(prettier@3.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + ts-dedent: 2.2.0 + vite: 7.3.1(@types/node@25.2.0)(terser@5.46.0) + vite-tsconfig-paths: 5.1.4(typescript@5.6.3)(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0)) transitivePeerDependencies: - - rollup - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@6.0.7(@types/node@22.10.5)): + vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0)): dependencies: - debug: 4.4.0 + debug: 4.4.3 globrex: 0.1.2 - tsconfck: 3.1.4(typescript@5.6.3) + tsconfck: 3.1.6(typescript@5.6.3) optionalDependencies: - vite: 6.0.7(@types/node@22.10.5) + vite: 7.3.1(@types/node@25.2.0)(terser@5.46.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.11(@types/node@22.10.5): + vite@7.3.1(@types/node@25.2.0)(terser@5.46.0): dependencies: - esbuild: 0.21.5 - postcss: 8.4.49 - rollup: 4.30.0 + esbuild: 0.27.2 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.57.1 + tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 22.10.5 + '@types/node': 25.2.0 fsevents: 2.3.3 - - vite@6.0.7(@types/node@22.10.5): - dependencies: - esbuild: 0.24.2 - postcss: 8.4.49 - rollup: 4.30.0 + terser: 5.46.0 + + vitest@4.0.18(@types/node@25.2.0)(@vitest/browser-playwright@4.0.18)(msw@2.12.7(@types/node@25.2.0)(typescript@5.6.3))(terser@5.46.0): + dependencies: + '@vitest/expect': 4.0.18 + '@vitest/mocker': 4.0.18(msw@2.12.7(@types/node@25.2.0)(typescript@5.6.3))(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0)) + '@vitest/pretty-format': 4.0.18 + '@vitest/runner': 4.0.18 + '@vitest/snapshot': 4.0.18 + '@vitest/spy': 4.0.18 + '@vitest/utils': 4.0.18 + es-module-lexer: 1.7.0 + expect-type: 1.3.0 + magic-string: 0.30.21 + obug: 2.1.1 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 1.0.2 + tinyglobby: 0.2.15 + tinyrainbow: 3.0.3 + vite: 7.3.1(@types/node@25.2.0)(terser@5.46.0) + why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.10.5 - fsevents: 2.3.3 + '@types/node': 25.2.0 + '@vitest/browser-playwright': 4.0.18(msw@2.12.7(@types/node@25.2.0)(typescript@5.6.3))(playwright@1.58.2)(vite@7.3.1(@types/node@25.2.0)(terser@5.46.0))(vitest@4.0.18) + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - yaml warning@4.0.3: dependencies: loose-envify: 1.4.0 + watchpack@2.5.1: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + webidl-conversions@3.0.1: {} webpack-sources@3.3.3: {} @@ -7279,6 +7463,38 @@ snapshots: webpack-virtual-modules@0.6.2: {} + webpack@5.104.1(esbuild@0.27.2): + dependencies: + '@types/eslint-scope': 3.7.7 + '@types/estree': 1.0.8 + '@types/json-schema': 7.0.15 + '@webassemblyjs/ast': 1.14.1 + '@webassemblyjs/wasm-edit': 1.14.1 + '@webassemblyjs/wasm-parser': 1.14.1 + acorn: 8.15.0 + acorn-import-phases: 1.0.4(acorn@8.15.0) + browserslist: 4.28.1 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.18.4 + es-module-lexer: 2.0.0 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.1 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 4.3.3 + tapable: 2.3.0 + terser-webpack-plugin: 5.3.16(esbuild@0.27.2)(webpack@5.104.1(esbuild@0.27.2)) + watchpack: 2.5.1 + webpack-sources: 3.3.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 @@ -7287,26 +7503,26 @@ snapshots: which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 - is-boolean-object: 1.2.1 + is-boolean-object: 1.2.2 is-number-object: 1.1.1 is-string: 1.1.1 is-symbol: 1.1.1 which-builtin-type@1.2.1: dependencies: - call-bound: 1.0.3 + call-bound: 1.0.4 function.prototype.name: 1.1.8 has-tostringtag: 1.0.2 - is-async-function: 2.1.0 + is-async-function: 2.1.1 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 + is-generator-function: 1.1.2 is-regex: 1.2.1 - is-weakref: 1.1.0 + is-weakref: 1.1.1 isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.18 + which-typed-array: 1.1.20 which-collection@1.0.2: dependencies: @@ -7315,12 +7531,13 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.4 - which-typed-array@1.1.18: + which-typed-array@1.1.20: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 - call-bound: 1.0.3 - for-each: 0.3.3 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 gopd: 1.2.0 has-tostringtag: 1.0.2 @@ -7328,6 +7545,11 @@ snapshots: dependencies: isexe: 2.0.0 + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + word-wrap@1.2.5: {} wrap-ansi@6.2.0: @@ -7342,7 +7564,11 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - ws@8.18.0: {} + ws@8.19.0: {} + + wsl-utils@0.1.0: + dependencies: + is-wsl: 3.1.0 y18n@5.0.8: {} @@ -7362,11 +7588,12 @@ snapshots: yocto-queue@0.1.0: {} - yoctocolors-cjs@2.1.2: {} + yoctocolors-cjs@2.1.3: {} - zod@3.24.3: {} + zod@3.25.76: {} - zustand@5.0.7(@types/react@18.3.18)(react@18.3.1): + zustand@5.0.11(@types/react@18.3.27)(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1)): optionalDependencies: - '@types/react': 18.3.18 + '@types/react': 18.3.27 react: 18.3.1 + use-sync-external-store: 1.6.0(react@18.3.1) diff --git a/public/mockServiceWorker.js b/public/mockServiceWorker.js index c7bf5227e..461e2600e 100644 --- a/public/mockServiceWorker.js +++ b/public/mockServiceWorker.js @@ -1,3 +1,4 @@ +/* eslint-disable */ /* tslint:disable */ /** @@ -6,42 +7,42 @@ * - Please do NOT modify this file. */ -const PACKAGE_VERSION = '2.10.4'; -const INTEGRITY_CHECKSUM = 'f5825c521429caf22a4dd13b66e243af'; -const IS_MOCKED_RESPONSE = Symbol('isMockedResponse'); -const activeClientIds = new Set(); +const PACKAGE_VERSION = '2.12.7' +const INTEGRITY_CHECKSUM = '4db4a41e972cec1b64cc569c66952d82' +const IS_MOCKED_RESPONSE = Symbol('isMockedResponse') +const activeClientIds = new Set() addEventListener('install', function () { - self.skipWaiting(); -}); + self.skipWaiting() +}) addEventListener('activate', function (event) { - event.waitUntil(self.clients.claim()); -}); + event.waitUntil(self.clients.claim()) +}) addEventListener('message', async function (event) { - const clientId = Reflect.get(event.source || {}, 'id'); + const clientId = Reflect.get(event.source || {}, 'id') if (!clientId || !self.clients) { - return; + return } - const client = await self.clients.get(clientId); + const client = await self.clients.get(clientId) if (!client) { - return; + return } const allClients = await self.clients.matchAll({ type: 'window', - }); + }) switch (event.data) { case 'KEEPALIVE_REQUEST': { sendToClient(client, { type: 'KEEPALIVE_RESPONSE', - }); - break; + }) + break } case 'INTEGRITY_CHECK_REQUEST': { @@ -51,12 +52,12 @@ addEventListener('message', async function (event) { packageVersion: PACKAGE_VERSION, checksum: INTEGRITY_CHECKSUM, }, - }); - break; + }) + break } case 'MOCK_ACTIVATE': { - activeClientIds.add(clientId); + activeClientIds.add(clientId) sendToClient(client, { type: 'MOCKING_ENABLED', @@ -66,72 +67,78 @@ addEventListener('message', async function (event) { frameType: client.frameType, }, }, - }); - break; - } - - case 'MOCK_DEACTIVATE': { - activeClientIds.delete(clientId); - break; + }) + break } case 'CLIENT_CLOSED': { - activeClientIds.delete(clientId); + activeClientIds.delete(clientId) const remainingClients = allClients.filter((client) => { - return client.id !== clientId; - }); + return client.id !== clientId + }) // Unregister itself when there are no more clients if (remainingClients.length === 0) { - self.registration.unregister(); + self.registration.unregister() } - break; + break } } -}); +}) addEventListener('fetch', function (event) { + const requestInterceptedAt = Date.now() + // Bypass navigation requests. if (event.request.mode === 'navigate') { - return; + return } // Opening the DevTools triggers the "only-if-cached" request // that cannot be handled by the worker. Bypass such requests. - if (event.request.cache === 'only-if-cached' && event.request.mode !== 'same-origin') { - return; + if ( + event.request.cache === 'only-if-cached' && + event.request.mode !== 'same-origin' + ) { + return } // Bypass all requests when there are no active clients. // Prevents the self-unregistered worked from handling requests - // after it's been deleted (still remains active until the next reload). + // after it's been terminated (still remains active until the next reload). if (activeClientIds.size === 0) { - return; + return } - const requestId = crypto.randomUUID(); - event.respondWith(handleRequest(event, requestId)); -}); + const requestId = crypto.randomUUID() + event.respondWith(handleRequest(event, requestId, requestInterceptedAt)) +}) /** * @param {FetchEvent} event * @param {string} requestId + * @param {number} requestInterceptedAt */ -async function handleRequest(event, requestId) { - const client = await resolveMainClient(event); - const requestCloneForEvents = event.request.clone(); - const response = await getResponse(event, client, requestId); +async function handleRequest(event, requestId, requestInterceptedAt) { + const client = await resolveMainClient(event) + const requestCloneForEvents = event.request.clone() + const response = await getResponse( + event, + client, + requestId, + requestInterceptedAt, + ) // Send back the response clone for the "response:*" life-cycle events. // Ensure MSW is active and ready to handle the message, otherwise // this message will pend indefinitely. if (client && activeClientIds.has(client.id)) { - const serializedRequest = await serializeRequest(requestCloneForEvents); + const serializedRequest = await serializeRequest(requestCloneForEvents) // Clone the response so both the client and the library could consume it. - const responseClone = response.clone(); + const responseClone = response.clone() sendToClient( client, @@ -152,11 +159,11 @@ async function handleRequest(event, requestId) { }, }, }, - responseClone.body ? [serializedRequest.body, responseClone.body] : [] - ); + responseClone.body ? [serializedRequest.body, responseClone.body] : [], + ) } - return response; + return response } /** @@ -168,69 +175,72 @@ async function handleRequest(event, requestId) { * @returns {Promise} */ async function resolveMainClient(event) { - const client = await self.clients.get(event.clientId); + const client = await self.clients.get(event.clientId) if (activeClientIds.has(event.clientId)) { - return client; + return client } if (client?.frameType === 'top-level') { - return client; + return client } const allClients = await self.clients.matchAll({ type: 'window', - }); + }) return allClients .filter((client) => { // Get only those clients that are currently visible. - return client.visibilityState === 'visible'; + return client.visibilityState === 'visible' }) .find((client) => { // Find the client ID that's recorded in the // set of clients that have registered the worker. - return activeClientIds.has(client.id); - }); + return activeClientIds.has(client.id) + }) } /** * @param {FetchEvent} event * @param {Client | undefined} client * @param {string} requestId + * @param {number} requestInterceptedAt * @returns {Promise} */ -async function getResponse(event, client, requestId) { +async function getResponse(event, client, requestId, requestInterceptedAt) { // Clone the request because it might've been already used // (i.e. its body has been read and sent to the client). - const requestClone = event.request.clone(); + const requestClone = event.request.clone() function passthrough() { // Cast the request headers to a new Headers instance // so the headers can be manipulated with. - const headers = new Headers(requestClone.headers); + const headers = new Headers(requestClone.headers) // Remove the "accept" header value that marked this request as passthrough. // This prevents request alteration and also keeps it compliant with the // user-defined CORS policies. - const acceptHeader = headers.get('accept'); + const acceptHeader = headers.get('accept') if (acceptHeader) { - const values = acceptHeader.split(',').map((value) => value.trim()); - const filteredValues = values.filter((value) => value !== 'msw/passthrough'); + const values = acceptHeader.split(',').map((value) => value.trim()) + const filteredValues = values.filter( + (value) => value !== 'msw/passthrough', + ) if (filteredValues.length > 0) { - headers.set('accept', filteredValues.join(', ')); + headers.set('accept', filteredValues.join(', ')) } else { - headers.delete('accept'); + headers.delete('accept') } } - return fetch(requestClone, { headers }); + return fetch(requestClone, { headers }) } // Bypass mocking when the client is not active. if (!client) { - return passthrough(); + return passthrough() } // Bypass initial page load requests (i.e. static assets). @@ -238,34 +248,35 @@ async function getResponse(event, client, requestId) { // means that MSW hasn't dispatched the "MOCK_ACTIVATE" event yet // and is not ready to handle requests. if (!activeClientIds.has(client.id)) { - return passthrough(); + return passthrough() } // Notify the client that a request has been intercepted. - const serializedRequest = await serializeRequest(event.request); + const serializedRequest = await serializeRequest(event.request) const clientMessage = await sendToClient( client, { type: 'REQUEST', payload: { id: requestId, + interceptedAt: requestInterceptedAt, ...serializedRequest, }, }, - [serializedRequest.body] - ); + [serializedRequest.body], + ) switch (clientMessage.type) { case 'MOCK_RESPONSE': { - return respondWithMock(clientMessage.data); + return respondWithMock(clientMessage.data) } case 'PASSTHROUGH': { - return passthrough(); + return passthrough() } } - return passthrough(); + return passthrough() } /** @@ -276,18 +287,21 @@ async function getResponse(event, client, requestId) { */ function sendToClient(client, message, transferrables = []) { return new Promise((resolve, reject) => { - const channel = new MessageChannel(); + const channel = new MessageChannel() channel.port1.onmessage = (event) => { if (event.data && event.data.error) { - return reject(event.data.error); + return reject(event.data.error) } - resolve(event.data); - }; + resolve(event.data) + } - client.postMessage(message, [channel.port2, ...transferrables.filter(Boolean)]); - }); + client.postMessage(message, [ + channel.port2, + ...transferrables.filter(Boolean), + ]) + }) } /** @@ -300,17 +314,17 @@ function respondWithMock(response) { // instance will have status code set to 0. Since it's not possible to create // a Response instance with status code 0, handle that use-case separately. if (response.status === 0) { - return Response.error(); + return Response.error() } - const mockedResponse = new Response(response.body, response); + const mockedResponse = new Response(response.body, response) Reflect.defineProperty(mockedResponse, IS_MOCKED_RESPONSE, { value: true, enumerable: true, - }); + }) - return mockedResponse; + return mockedResponse } /** @@ -331,5 +345,5 @@ async function serializeRequest(request) { referrerPolicy: request.referrerPolicy, body: await request.arrayBuffer(), keepalive: request.keepalive, - }; + } } diff --git a/public/videos/login.webm b/public/videos/login.webm new file mode 100644 index 000000000..5edb8b04f Binary files /dev/null and b/public/videos/login.webm differ diff --git a/src/App.tsx b/src/App.tsx deleted file mode 100644 index 822c7e64d..000000000 --- a/src/App.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { QueryClientProvider } from '@tanstack/react-query'; -import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; -import { useEffect } from 'react'; -import { Toaster } from 'react-hot-toast'; -import { RouterProvider } from 'react-router-dom'; -import { router } from '@/routes/router.tsx'; -import queryClient from './queryClient'; -import './shared/styles/index.css'; - -const App = () => { - const setScreenSize = () => { - // vh 관련 - const vh = window.innerHeight * 0.01; - document.documentElement.style.setProperty('--vh', `${vh}px`); - - // window width 관련 - const windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; - const maxWidth = Math.min(375, windowWidth); - document.documentElement.style.setProperty('--app-max-width', `${maxWidth}px`); - }; - - useEffect(() => { - setScreenSize(); - window.addEventListener('resize', setScreenSize); - - return () => { - window.removeEventListener('resize', setScreenSize); - }; - }, []); - - return ( - - - - - - ); -}; - -export default App; diff --git a/src/pages/home/apis/axios.ts b/src/app/(home)/apis/axios.ts similarity index 100% rename from src/pages/home/apis/axios.ts rename to src/app/(home)/apis/axios.ts diff --git a/src/pages/home/apis/queries.ts b/src/app/(home)/apis/queries.ts similarity index 80% rename from src/pages/home/apis/queries.ts rename to src/app/(home)/apis/queries.ts index 5157df69a..1900803c9 100644 --- a/src/pages/home/apis/queries.ts +++ b/src/app/(home)/apis/queries.ts @@ -1,13 +1,13 @@ -import { useQuery, useSuspenseQuery } from '@tanstack/react-query'; -import '@/pages/home/apis/axios'; -import { getAdvertisements, getLatestLessons, getPopularGenres, getUpcomingLessons } from '@/pages/home/apis/axios'; +import { useQuery } from '@tanstack/react-query'; +import '@/app/(home)/apis/axios'; +import { getAdvertisements, getLatestLessons, getPopularGenres, getUpcomingLessons } from '@/app/(home)/apis/axios'; import type { AdvertisementResponseTypes, LatestLessonsResponseTypes, PopularGenreResponseTypes, UpcomingLessonsResponseTypes, -} from '@/pages/home/types/api'; -import type { LessonTypes } from '@/pages/home/types/classTypes'; +} from '@/app/(home)/types/api'; +import type { LessonTypes } from '@/app/(home)/types/classTypes'; import { advertisementKeys, lessonKeys } from '@/shared/constants/queryKey'; export const useGetAdvertisements = () => { @@ -31,7 +31,7 @@ const selectLimitedLessons = (data: T): T }; export const useGetUpcomingLessons = () => { - return useSuspenseQuery({ + return useQuery({ queryKey: lessonKeys.list._ctx.upcoming.queryKey, queryFn: () => getUpcomingLessons(), select: selectLimitedLessons, diff --git a/src/app/(home)/components/DancerItem/DancerItem.tsx b/src/app/(home)/components/DancerItem/DancerItem.tsx new file mode 100644 index 000000000..67c28b310 --- /dev/null +++ b/src/app/(home)/components/DancerItem/DancerItem.tsx @@ -0,0 +1,29 @@ +'use client'; + +import Link from 'next/link'; +import { dancerImageStyle, dancerItemStyle, dancerInfoStyle } from '@/app/(home)/components/DancerItem/dancerItem.css'; +import type { DancerTypes } from '@/app/(home)/types/dancerTypes'; +import Head from '@/common/components/Head/Head'; +import Text from '@/common/components/Text/Text'; + +interface DancerItemPropTypes extends Omit { + genre: string; +} + +const DancerItem = ({ id, profileImage, genre, nickname }: DancerItemPropTypes) => { + return ( +
  • + + 댄서 프로필 +
    + {nickname} + {genre} +
    + +
  • + ); +}; + +export default DancerItem; diff --git a/src/pages/home/components/DancerItem/dancerItem.css.ts b/src/app/(home)/components/DancerItem/dancerItem.css.ts similarity index 100% rename from src/pages/home/components/DancerItem/dancerItem.css.ts rename to src/app/(home)/components/DancerItem/dancerItem.css.ts diff --git a/src/pages/home/components/Footer/Footer.tsx b/src/app/(home)/components/Footer/Footer.tsx similarity index 96% rename from src/pages/home/components/Footer/Footer.tsx rename to src/app/(home)/components/Footer/Footer.tsx index 4d69e992d..da7260c2a 100644 --- a/src/pages/home/components/Footer/Footer.tsx +++ b/src/app/(home)/components/Footer/Footer.tsx @@ -1,10 +1,12 @@ +'use client'; + import { containerStyle, textStyle, linkWrapperStyle, infoWrapperStyle, infoRowStyle, -} from '@/pages/home/components/Footer/footer.css'; +} from '@/app/(home)/components/Footer/footer.css'; import Divider from '@/common/components/Divider/Divider'; import Text from '@/common/components/Text/Text'; import IcHeaderLogoSmallBlack from '@/shared/assets/svg/IcHeaderLogoSmallBlack'; diff --git a/src/pages/home/components/Footer/footer.css.ts b/src/app/(home)/components/Footer/footer.css.ts similarity index 100% rename from src/pages/home/components/Footer/footer.css.ts rename to src/app/(home)/components/Footer/footer.css.ts diff --git a/src/pages/home/components/GenreItem/GenreItem.tsx b/src/app/(home)/components/GenreItem/GenreItem.tsx similarity index 86% rename from src/pages/home/components/GenreItem/GenreItem.tsx rename to src/app/(home)/components/GenreItem/GenreItem.tsx index 99c377967..52ae2664f 100644 --- a/src/pages/home/components/GenreItem/GenreItem.tsx +++ b/src/app/(home)/components/GenreItem/GenreItem.tsx @@ -1,4 +1,6 @@ -import { containerStyle, genreStyle, medalStyle } from '@/pages/home/components/GenreItem/genreItem.css'; +'use client'; + +import { containerStyle, genreStyle, medalStyle } from '@/app/(home)/components/GenreItem/genreItem.css'; import Text from '@/common/components/Text/Text'; interface GenreItemPropTypes { diff --git a/src/pages/home/components/GenreItem/genreItem.css.ts b/src/app/(home)/components/GenreItem/genreItem.css.ts similarity index 100% rename from src/pages/home/components/GenreItem/genreItem.css.ts rename to src/app/(home)/components/GenreItem/genreItem.css.ts diff --git a/src/pages/home/components/HomeCarousel/HomeCarousel.tsx b/src/app/(home)/components/HomeCarousel/HomeCarousel.tsx similarity index 78% rename from src/pages/home/components/HomeCarousel/HomeCarousel.tsx rename to src/app/(home)/components/HomeCarousel/HomeCarousel.tsx index a3c8deef0..19f71f6fd 100644 --- a/src/pages/home/components/HomeCarousel/HomeCarousel.tsx +++ b/src/app/(home)/components/HomeCarousel/HomeCarousel.tsx @@ -1,11 +1,15 @@ +'use client'; + import 'swiper/css'; import 'swiper/css/pagination'; import { Autoplay, Pagination } from 'swiper/modules'; import { Swiper, SwiperSlide } from 'swiper/react'; -import SliderItem from '@/pages/home/components/SliderItem/SliderItem'; -import ChoreohongImg from '/images/image_chorehong.webp'; -import KkukgirlImg from '/images/image_kkukgirl.webp'; -import BannerImg from '/images/img_banner_750.webp'; +import SliderItem from '@/app/(home)/components/SliderItem/SliderItem'; + +// Next: public 폴더 정적 파일은 경로 문자열로 참조 (import 불가) +const ChoreohongImg = '/images/image_chorehong.webp'; +const KkukgirlImg = '/images/image_kkukgirl.webp'; +const BannerImg = '/images/img_banner_750.webp'; const ADVERTISEMENTS = [ { diff --git a/src/pages/home/components/HomeCarousel/homeCarousel.css.ts b/src/app/(home)/components/HomeCarousel/homeCarousel.css.ts similarity index 100% rename from src/pages/home/components/HomeCarousel/homeCarousel.css.ts rename to src/app/(home)/components/HomeCarousel/homeCarousel.css.ts diff --git a/src/pages/home/components/LatestLessons/LatestLessons.tsx b/src/app/(home)/components/LatestLessons/LatestLessons.tsx similarity index 79% rename from src/pages/home/components/LatestLessons/LatestLessons.tsx rename to src/app/(home)/components/LatestLessons/LatestLessons.tsx index ff3412bab..7af008973 100644 --- a/src/pages/home/components/LatestLessons/LatestLessons.tsx +++ b/src/app/(home)/components/LatestLessons/LatestLessons.tsx @@ -1,10 +1,12 @@ -import { useGetLatestLessons } from '@/pages/home/apis/queries'; +'use client'; + +import { useGetLatestLessons } from '@/app/(home)/apis/queries'; import { containerStyle, latestLessonWrapperStyle, titleStyle, -} from '@/pages/home/components/LatestLessons/latestLessons.css'; -import LessonItem from '@/pages/home/components/LessonItem/LessonItem'; +} from '@/app/(home)/components/LatestLessons/latestLessons.css'; +import LessonItem from '@/app/(home)/components/LessonItem/LessonItem'; import Head from '@/common/components/Head/Head'; const LatestLessons = () => { diff --git a/src/pages/home/components/LatestLessons/latestLessons.css.ts b/src/app/(home)/components/LatestLessons/latestLessons.css.ts similarity index 100% rename from src/pages/home/components/LatestLessons/latestLessons.css.ts rename to src/app/(home)/components/LatestLessons/latestLessons.css.ts diff --git a/src/pages/home/components/LessonItem/LessonItem.tsx b/src/app/(home)/components/LessonItem/LessonItem.tsx similarity index 81% rename from src/pages/home/components/LessonItem/LessonItem.tsx rename to src/app/(home)/components/LessonItem/LessonItem.tsx index 9b555781f..244e0058d 100644 --- a/src/pages/home/components/LessonItem/LessonItem.tsx +++ b/src/app/(home)/components/LessonItem/LessonItem.tsx @@ -1,5 +1,7 @@ +'use client'; + +import Link from 'next/link'; import { useId } from 'react'; -import { Link } from 'react-router-dom'; import { classImageStyle, deadlineTagStyle, @@ -10,7 +12,7 @@ import { tagWrapperStyle, teacherInfoWrapperStyle, teacherWrapperStyle, -} from '@/pages/home/components/LessonItem/lessonItem.css'; +} from '@/app/(home)/components/LessonItem/lessonItem.css'; import { newClassImageStyle, newDeadlineTagStyle, @@ -18,10 +20,9 @@ import { myPageWrapperStyle, myPageImageStyle, newWrapperStyle, -} from '@/pages/home/components/LessonItem/newLessonItem.css'; -import { MAX_REMAINING_DAYS, MIN_REMAINING_DAYS } from '@/pages/home/constants/index'; -import type { LessonTypes } from '@/pages/home/types/classTypes'; -import { ROUTES_CONFIG } from '@/routes/routesConfig'; +} from '@/app/(home)/components/LessonItem/newLessonItem.css'; +import { MAX_REMAINING_DAYS, MIN_REMAINING_DAYS } from '@/app/(home)/constants/index'; +import type { LessonTypes } from '@/app/(home)/types/classTypes'; import Head from '@/common/components/Head/Head'; import Tag from '@/common/components/Tag/Tag'; import Text from '@/common/components/Text/Text'; @@ -85,13 +86,7 @@ const LessonItem = ({ - + {name} diff --git a/src/pages/home/components/LessonItem/lessonItem.css.ts b/src/app/(home)/components/LessonItem/lessonItem.css.ts similarity index 100% rename from src/pages/home/components/LessonItem/lessonItem.css.ts rename to src/app/(home)/components/LessonItem/lessonItem.css.ts diff --git a/src/pages/home/components/LessonItem/newLessonItem.css.ts b/src/app/(home)/components/LessonItem/newLessonItem.css.ts similarity index 100% rename from src/pages/home/components/LessonItem/newLessonItem.css.ts rename to src/app/(home)/components/LessonItem/newLessonItem.css.ts diff --git a/src/pages/home/components/PopularGenre/PopularGenre.tsx b/src/app/(home)/components/PopularGenre/PopularGenre.tsx similarity index 63% rename from src/pages/home/components/PopularGenre/PopularGenre.tsx rename to src/app/(home)/components/PopularGenre/PopularGenre.tsx index c185192d6..d8fd10795 100644 --- a/src/pages/home/components/PopularGenre/PopularGenre.tsx +++ b/src/app/(home)/components/PopularGenre/PopularGenre.tsx @@ -1,20 +1,21 @@ -import { useNavigate } from 'react-router-dom'; -import { useGetPopularGenres } from '@/pages/home/apis/queries'; -import GenreItem from '@/pages/home/components/GenreItem/GenreItem'; -import { genreWrapperStyle } from '@/pages/home/components/LessonItem/lessonItem.css'; -import { genreListStyle } from '@/pages/home/components/PopularGenre/popularGenre.css'; -import { GENRE_ICONS } from '@/pages/home/constants'; -import { ROUTES_CONFIG } from '@/routes/routesConfig'; +'use client'; + +import { useRouter } from 'next/navigation'; +import { useGetPopularGenres } from '@/app/(home)/apis/queries'; +import GenreItem from '@/app/(home)/components/GenreItem/GenreItem'; +import { genreWrapperStyle } from '@/app/(home)/components/LessonItem/lessonItem.css'; +import { genreListStyle } from '@/app/(home)/components/PopularGenre/popularGenre.css'; +import { GENRE_ICONS } from '@/app/(home)/constants'; import Head from '@/common/components/Head/Head'; import { genreMapping } from '@/shared/constants'; const PopularGenre = () => { const { data } = useGetPopularGenres(); - const navigate = useNavigate(); + const router = useRouter(); const handleGenreClick = (genre: string) => { - navigate(ROUTES_CONFIG.search.path, { state: { genre } }); + router.push(`/search?genre=${encodeURIComponent(genre)}`); }; return ( diff --git a/src/pages/home/components/PopularGenre/popularGenre.css.ts b/src/app/(home)/components/PopularGenre/popularGenre.css.ts similarity index 100% rename from src/pages/home/components/PopularGenre/popularGenre.css.ts rename to src/app/(home)/components/PopularGenre/popularGenre.css.ts diff --git a/src/pages/home/components/SliderItem/SliderItem.tsx b/src/app/(home)/components/SliderItem/SliderItem.tsx similarity index 57% rename from src/pages/home/components/SliderItem/SliderItem.tsx rename to src/app/(home)/components/SliderItem/SliderItem.tsx index 76de8e707..15d567af1 100644 --- a/src/pages/home/components/SliderItem/SliderItem.tsx +++ b/src/app/(home)/components/SliderItem/SliderItem.tsx @@ -1,4 +1,6 @@ -import { containerStyle, descriptionStyle, imageStyle } from '@/pages/home/components/SliderItem/sliderItem.css'; +'use client'; + +import { containerStyle, descriptionStyle, imageStyle } from '@/app/(home)/components/SliderItem/sliderItem.css'; import Head from '@/common/components/Head/Head'; interface SliderItemPropTypes { @@ -8,15 +10,6 @@ interface SliderItemPropTypes { } const SliderItem = ({ imageUrl, description }: SliderItemPropTypes) => { - // const navigate = useNavigate(); - - // const handleShowDetailClick = () => { - // if (id === 0) { - // return; - // } - // navigate(ROUTES_CONFIG.class.path(`${id}`)); - // }; - return (
    {`${description} @@ -24,11 +17,6 @@ const SliderItem = ({ imageUrl, description }: SliderItemPropTypes) => { {description} - - {/* */}
    ); }; diff --git a/src/pages/home/components/SliderItem/sliderItem.css.ts b/src/app/(home)/components/SliderItem/sliderItem.css.ts similarity index 100% rename from src/pages/home/components/SliderItem/sliderItem.css.ts rename to src/app/(home)/components/SliderItem/sliderItem.css.ts diff --git a/src/pages/home/components/UpcomingLessons/UpcomingLessons.tsx b/src/app/(home)/components/UpcomingLessons/UpcomingLessons.tsx similarity index 82% rename from src/pages/home/components/UpcomingLessons/UpcomingLessons.tsx rename to src/app/(home)/components/UpcomingLessons/UpcomingLessons.tsx index b5baad906..a947ee926 100644 --- a/src/pages/home/components/UpcomingLessons/UpcomingLessons.tsx +++ b/src/app/(home)/components/UpcomingLessons/UpcomingLessons.tsx @@ -1,11 +1,13 @@ +'use client'; + import { useMemo } from 'react'; -import { useGetUpcomingLessons } from '@/pages/home/apis/queries'; -import LessonItem from '@/pages/home/components/LessonItem/LessonItem'; +import { useGetUpcomingLessons } from '@/app/(home)/apis/queries'; +import LessonItem from '@/app/(home)/components/LessonItem/LessonItem'; import { containerStyle, deadlineLessonWrapperStyle, titleStyle, -} from '@/pages/home/components/UpcomingLessons/upcomingLessons.css'; +} from '@/app/(home)/components/UpcomingLessons/upcomingLessons.css'; import Head from '@/common/components/Head/Head'; const UpcomingLessons = () => { diff --git a/src/pages/home/components/UpcomingLessons/upcomingLessons.css.ts b/src/app/(home)/components/UpcomingLessons/upcomingLessons.css.ts similarity index 100% rename from src/pages/home/components/UpcomingLessons/upcomingLessons.css.ts rename to src/app/(home)/components/UpcomingLessons/upcomingLessons.css.ts diff --git a/src/pages/home/constants/index.tsx b/src/app/(home)/constants/index.tsx similarity index 97% rename from src/pages/home/constants/index.tsx rename to src/app/(home)/constants/index.tsx index d9624b89c..8bcf104b4 100644 --- a/src/pages/home/constants/index.tsx +++ b/src/app/(home)/constants/index.tsx @@ -1,3 +1,5 @@ +'use client'; + import IcAssetTop1 from '@/shared/assets/svg/IcAssetTop1'; import IcAssetTop2 from '@/shared/assets/svg/IcAssetTop2'; import IcAssetTop3 from '@/shared/assets/svg/IcAssetTop3'; diff --git a/src/app/(home)/page.tsx b/src/app/(home)/page.tsx new file mode 100644 index 000000000..c52054820 --- /dev/null +++ b/src/app/(home)/page.tsx @@ -0,0 +1,19 @@ +'use client'; + +import Footer from '@/app/(home)/components/Footer/Footer'; +import HomeCarousel from '@/app/(home)/components/HomeCarousel/HomeCarousel'; +import LatestLessons from '@/app/(home)/components/LatestLessons/LatestLessons'; +import PopularGenre from '@/app/(home)/components/PopularGenre/PopularGenre'; +import UpcomingLessons from '@/app/(home)/components/UpcomingLessons/UpcomingLessons'; + +export default function Page() { + return ( +
    + + + + +
    +
    + ); +} diff --git a/src/pages/home/types/advertisementsTypes.ts b/src/app/(home)/types/advertisementsTypes.ts similarity index 100% rename from src/pages/home/types/advertisementsTypes.ts rename to src/app/(home)/types/advertisementsTypes.ts diff --git a/src/pages/home/types/api.ts b/src/app/(home)/types/api.ts similarity index 68% rename from src/pages/home/types/api.ts rename to src/app/(home)/types/api.ts index d8311db04..89ee8bfd7 100644 --- a/src/pages/home/types/api.ts +++ b/src/app/(home)/types/api.ts @@ -1,6 +1,6 @@ -import type { AdvertisementsTypes } from '@/pages/home/types/advertisementsTypes'; -import type { LessonTypes } from '@/pages/home/types/classTypes'; -import type { DancerTypes } from '@/pages/home/types/dancerTypes'; +import type { AdvertisementsTypes } from '@/app/(home)/types/advertisementsTypes'; +import type { LessonTypes } from '@/app/(home)/types/classTypes'; +import type { DancerTypes } from '@/app/(home)/types/dancerTypes'; export interface AdvertisementResponseTypes { advertisements: AdvertisementsTypes[]; diff --git a/src/pages/home/types/classTypes.ts b/src/app/(home)/types/classTypes.ts similarity index 100% rename from src/pages/home/types/classTypes.ts rename to src/app/(home)/types/classTypes.ts diff --git a/src/pages/home/types/dancerTypes.ts b/src/app/(home)/types/dancerTypes.ts similarity index 61% rename from src/pages/home/types/dancerTypes.ts rename to src/app/(home)/types/dancerTypes.ts index 4029fc8fa..590291172 100644 --- a/src/pages/home/types/dancerTypes.ts +++ b/src/app/(home)/types/dancerTypes.ts @@ -1,4 +1,4 @@ -import type { GenreTypes } from '@/pages/onboarding/types/genreTypes'; +import type { GenreTypes } from '@/app/onboarding/types/genreTypes'; export type DancerTypes = { id: number; diff --git a/src/pages/home/types/defaultSortTagTypes.ts b/src/app/(home)/types/defaultSortTagTypes.ts similarity index 100% rename from src/pages/home/types/defaultSortTagTypes.ts rename to src/app/(home)/types/defaultSortTagTypes.ts diff --git a/src/pages/home/types/swiper-css.d.ts b/src/app/(home)/types/swiper-css.d.ts similarity index 100% rename from src/pages/home/types/swiper-css.d.ts rename to src/app/(home)/types/swiper-css.d.ts diff --git a/src/app/Providers.tsx b/src/app/Providers.tsx new file mode 100644 index 000000000..5673c1eb7 --- /dev/null +++ b/src/app/Providers.tsx @@ -0,0 +1,37 @@ +'use client'; + +import { QueryClientProvider } from '@tanstack/react-query'; +import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; +import { useEffect } from 'react'; +import { Toaster } from 'react-hot-toast'; +import queryClient from '@/app/queryClient'; + +const setScreenSize = () => { + // vh 관련 + const vh = window.innerHeight * 0.01; + document.documentElement.style.setProperty('--vh', `${vh}px`); + + // window width 관련 + const windowWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; + const maxWidth = Math.min(375, windowWidth); + document.documentElement.style.setProperty('--app-max-width', `${maxWidth}px`); +}; + +export default function Providers({ children }: { children: React.ReactNode }) { + useEffect(() => { + setScreenSize(); + window.addEventListener('resize', setScreenSize); + + return () => { + window.removeEventListener('resize', setScreenSize); + }; + }, []); + + return ( + + + {children} + + + ); +} diff --git a/src/app/api/[...path]/route.ts b/src/app/api/[...path]/route.ts new file mode 100644 index 000000000..dc72c507e --- /dev/null +++ b/src/app/api/[...path]/route.ts @@ -0,0 +1,37 @@ +import { type NextRequest } from 'next/server'; +import { NextResponse } from 'next/server'; +import { ACCESS_TOKEN_KEY, TEMP_ACCESS_TOKEN_KEY } from '@/shared/constants/api'; + +type RouteParams = { + path: string[]; +}; + +async function proxyToBackend(request: NextRequest, params: RouteParams) { + try { + const path = `/${(params.path ?? []).join('/')}`; + const targetUrl = new URL(path + request.nextUrl.search, process.env.BACKEND_BASE_URL); + + const proxyRequest = new Request(targetUrl, request); + + const cookieAccessToken = request.cookies.get(ACCESS_TOKEN_KEY)?.value; + const cookieTempAccessToken = request.cookies.get(TEMP_ACCESS_TOKEN_KEY)?.value; + const accessToken = cookieAccessToken ?? cookieTempAccessToken; + + if (accessToken) { + proxyRequest.headers.set('Authorization', `Bearer ${accessToken}`); + } + + return await fetch(proxyRequest); + } catch { + return NextResponse.json({ message: 'Proxy failed' }, { status: 500 }); + } +} + +const proxyHandler = async (request: NextRequest, { params }: { params: Promise }) => + proxyToBackend(request, await params); + +export const GET = proxyHandler; +export const POST = proxyHandler; +export const PUT = proxyHandler; +export const PATCH = proxyHandler; +export const DELETE = proxyHandler; diff --git a/src/app/api/auth/_authFetch.ts b/src/app/api/auth/_authFetch.ts new file mode 100644 index 000000000..207bdaaa7 --- /dev/null +++ b/src/app/api/auth/_authFetch.ts @@ -0,0 +1,23 @@ +type AuthFetchInit = RequestInit & { + headers?: HeadersInit; +}; + +export async function authFetch(path: string, init: AuthFetchInit = {}) { + const url = new URL(path, process.env.BACKEND_BASE_URL); + + const headers = new Headers(init.headers ?? {}); + + if (!headers.has('Accept')) { + headers.set('Accept', 'application/json'); + } + + if (init.body && !headers.has('Content-Type')) { + headers.set('Content-Type', 'application/json'); + } + + return fetch(url, { + cache: 'no-store', + ...init, + headers, + }); +} diff --git a/src/app/api/auth/_cookieOptions.ts b/src/app/api/auth/_cookieOptions.ts new file mode 100644 index 000000000..27299aa66 --- /dev/null +++ b/src/app/api/auth/_cookieOptions.ts @@ -0,0 +1,6 @@ +export const COOKIE_OPTIONS = { + httpOnly: true, + sameSite: 'lax' as const, + secure: process.env.NODE_ENV === 'production', + path: '/', +}; diff --git a/src/app/api/auth/login/route.ts b/src/app/api/auth/login/route.ts new file mode 100644 index 000000000..96fb2aa47 --- /dev/null +++ b/src/app/api/auth/login/route.ts @@ -0,0 +1,49 @@ +import { NextResponse, type NextRequest } from 'next/server'; +import { authFetch } from '@/app/api/auth/_authFetch'; +import { COOKIE_OPTIONS } from '@/app/api/auth/_cookieOptions'; +import { ACCESS_TOKEN_KEY, REFRESH_TOKEN_KEY, TEMP_ACCESS_TOKEN_KEY } from '@/shared/constants/api'; +import { API_URL } from '@/shared/constants/apiURL'; + +export async function POST(request: NextRequest) { + try { + const body = await request.json(); + + const response = await authFetch(API_URL.AUTH_LOGIN, { + method: 'POST', + body: JSON.stringify(body), + }); + + const data = await response.json(); + + // 로그인 실패 시 에러 반환 + if (!response.ok) { + return NextResponse.json(data ?? { message: 'Login failed' }, { + status: response.status, + }); + } + + // 로그인 성공 시에는 온보딩 여부와 무관하게 토큰을 httpOnly 쿠키로만 관리 + const res = NextResponse.json( + { isOnboarded: data.isOnboarded, isDeleted: data.isDeleted }, + { status: response.status } + ); + + // refreshToken은 항상 httpOnly 쿠키에 저장 + if (data.refreshToken) { + res.cookies.set(REFRESH_TOKEN_KEY, data.refreshToken, COOKIE_OPTIONS); + } + + // accessToken은 온보딩 완료/재가입 유저는 ACCESS_TOKEN 쿠키에, 그 외는 TEMP_ACCESS_TOKEN 쿠키에 저장 + if (data.accessToken) { + if (data.isOnboarded && !data.isDeleted) { + res.cookies.set(ACCESS_TOKEN_KEY, data.accessToken, COOKIE_OPTIONS); + } else { + res.cookies.set(TEMP_ACCESS_TOKEN_KEY, data.accessToken, COOKIE_OPTIONS); + } + } + + return res; + } catch { + return NextResponse.json({ message: 'server error' }, { status: 500 }); + } +} diff --git a/src/app/api/auth/logout/route.ts b/src/app/api/auth/logout/route.ts new file mode 100644 index 000000000..cd2b5c481 --- /dev/null +++ b/src/app/api/auth/logout/route.ts @@ -0,0 +1,29 @@ +import { NextResponse, type NextRequest } from 'next/server'; +import { authFetch } from '@/app/api/auth/_authFetch'; +import { ACCESS_TOKEN_KEY, REFRESH_TOKEN_KEY } from '@/shared/constants/api'; +import { API_URL } from '@/shared/constants/apiURL'; + +export async function POST(request: NextRequest) { + try { + const accessToken = request.cookies.get(ACCESS_TOKEN_KEY)?.value; + + const response = await authFetch(API_URL.AUTH_LOGOUT, { + method: 'POST', + headers: { + ...(accessToken ? { Authorization: `Bearer ${accessToken}` } : {}), + }, + }); + + if (!response.ok) { + const data = await response.json().catch(() => null); + return NextResponse.json(data ?? { message: 'Logout failed' }, { status: response.status }); + } + + const res = NextResponse.json({ ok: true }); + res.cookies.delete({ name: ACCESS_TOKEN_KEY, path: '/' }); + res.cookies.delete({ name: REFRESH_TOKEN_KEY, path: '/' }); + return res; + } catch { + return NextResponse.json({ message: 'Logout failed' }, { status: 500 }); + } +} diff --git a/src/app/api/auth/promote-onboarding-token/route.ts b/src/app/api/auth/promote-onboarding-token/route.ts new file mode 100644 index 000000000..b1a9fe223 --- /dev/null +++ b/src/app/api/auth/promote-onboarding-token/route.ts @@ -0,0 +1,24 @@ +import { NextResponse, type NextRequest } from 'next/server'; +import { COOKIE_OPTIONS } from '@/app/api/auth/_cookieOptions'; +import { ACCESS_TOKEN_KEY, TEMP_ACCESS_TOKEN_KEY } from '@/shared/constants/api'; + +export async function POST(request: NextRequest) { + try { + const tempAccessToken = request.cookies.get(TEMP_ACCESS_TOKEN_KEY)?.value; + + // TEMP 토큰이 없으면 승격할 대상이 없으므로 그대로 통과시키되, promoted=false로 응답 + if (!tempAccessToken) { + return NextResponse.json({ ok: true, promoted: false }); + } + + const res = NextResponse.json({ ok: true, promoted: true }); + + // TEMP 토큰을 정식 ACCESS 토큰으로 승격 + res.cookies.set(ACCESS_TOKEN_KEY, tempAccessToken, COOKIE_OPTIONS); + res.cookies.delete({ name: TEMP_ACCESS_TOKEN_KEY, path: '/' }); + + return res; + } catch { + return NextResponse.json({ message: 'Failed to promote onboarding token' }, { status: 500 }); + } +} diff --git a/src/app/api/auth/reissue/route.ts b/src/app/api/auth/reissue/route.ts new file mode 100644 index 000000000..482c7f665 --- /dev/null +++ b/src/app/api/auth/reissue/route.ts @@ -0,0 +1,39 @@ +import { NextResponse, type NextRequest } from 'next/server'; +import { authFetch } from '@/app/api/auth/_authFetch'; +import { COOKIE_OPTIONS } from '@/app/api/auth/_cookieOptions'; +import { ACCESS_TOKEN_KEY, REFRESH_TOKEN_KEY } from '@/shared/constants/api'; +import { API_URL } from '@/shared/constants/apiURL'; + +export async function POST(request: NextRequest) { + try { + const refreshToken = request.cookies.get(REFRESH_TOKEN_KEY)?.value; + if (!refreshToken) { + return NextResponse.json({ message: 'Missing refresh token' }, { status: 401 }); + } + + const response = await authFetch(API_URL.AUTH_REISSUE, { + method: 'POST', + headers: { + Authorization: `Bearer ${refreshToken}`, + }, + }); + + const data = await response.json().catch(() => null); + + if (!response.ok) { + return NextResponse.json(data ?? { message: 'Reissue failed' }, { status: response.status }); + } + + const res = NextResponse.json({ ok: true }, { status: response.status }); + if (data.accessToken) { + res.cookies.set(ACCESS_TOKEN_KEY, data.accessToken, COOKIE_OPTIONS); + } + if (data.refreshToken) { + res.cookies.set(REFRESH_TOKEN_KEY, data.refreshToken, COOKIE_OPTIONS); + } + + return res; + } catch { + return NextResponse.json({ message: 'Internal Server Error' }, { status: 500 }); + } +} diff --git a/src/app/api/auth/set-cookies/route.ts b/src/app/api/auth/set-cookies/route.ts new file mode 100644 index 000000000..d4966188e --- /dev/null +++ b/src/app/api/auth/set-cookies/route.ts @@ -0,0 +1,26 @@ +import { NextResponse, type NextRequest } from 'next/server'; +import { COOKIE_OPTIONS } from '@/app/api/auth/_cookieOptions'; +import { ACCESS_TOKEN_KEY, REFRESH_TOKEN_KEY } from '@/shared/constants/api'; + +export async function POST(request: NextRequest) { + try { + const body = (await request.json().catch(() => null)) as { + accessToken?: string; + refreshToken?: string; + } | null; + + if (!body?.accessToken) { + return NextResponse.json({ message: 'Missing accessToken' }, { status: 400 }); + } + + const res = NextResponse.json({ ok: true }); + res.cookies.set(ACCESS_TOKEN_KEY, body.accessToken, COOKIE_OPTIONS); + if (body.refreshToken) { + res.cookies.set(REFRESH_TOKEN_KEY, body.refreshToken, COOKIE_OPTIONS); + } + + return res; + } catch { + return NextResponse.json({ message: 'Set cookies failed' }, { status: 500 }); + } +} diff --git a/src/app/api/auth/validate-withdraw/route.ts b/src/app/api/auth/validate-withdraw/route.ts new file mode 100644 index 000000000..0f9c0714e --- /dev/null +++ b/src/app/api/auth/validate-withdraw/route.ts @@ -0,0 +1,39 @@ +import { NextResponse, type NextRequest } from 'next/server'; +import { authFetch } from '@/app/api/auth/_authFetch'; +import { COOKIE_OPTIONS } from '@/app/api/auth/_cookieOptions'; +import { ACCESS_TOKEN_KEY, WITHDRAW_COMPLETED_KEY, WITHDRAW_VALIDATED_KEY } from '@/shared/constants/api'; +import { API_URL } from '@/shared/constants/apiURL'; + +export async function POST(request: NextRequest) { + try { + const accessToken = request.cookies.get(ACCESS_TOKEN_KEY)?.value; + + if (!accessToken) { + return NextResponse.json({ message: 'Missing access token' }, { status: 401 }); + } + + const response = await authFetch(API_URL.MEMBERS_VALIDATE_WITHDRAW, { + method: 'POST', + headers: { + Authorization: `Bearer ${accessToken}`, + }, + }); + + const data = await response.json().catch(() => null); + + if (!response.ok) { + return NextResponse.json(data ?? { message: 'Validate withdraw failed' }, { status: response.status }); + } + + const res = NextResponse.json(data, { status: response.status }); + + // 탈퇴 가능 여부 검증에 성공한 경우, 서버에서 확인된 상태임을 나타내는 쿠키를 설정 + res.cookies.set(WITHDRAW_VALIDATED_KEY, 'true', COOKIE_OPTIONS); + // 이전 세션에서 남아있을 수 있는 완료 상태는 초기화 + res.cookies.delete({ name: WITHDRAW_COMPLETED_KEY, path: '/' }); + + return res; + } catch { + return NextResponse.json({ message: 'Validate withdraw failed' }, { status: 500 }); + } +} diff --git a/src/app/api/auth/withdraw/route.ts b/src/app/api/auth/withdraw/route.ts new file mode 100644 index 000000000..d94c5cfbf --- /dev/null +++ b/src/app/api/auth/withdraw/route.ts @@ -0,0 +1,47 @@ +import { NextResponse, type NextRequest } from 'next/server'; +import { authFetch } from '@/app/api/auth/_authFetch'; +import { + ACCESS_TOKEN_KEY, + REFRESH_TOKEN_KEY, + TEMP_ACCESS_TOKEN_KEY, + WITHDRAW_COMPLETED_KEY, + WITHDRAW_VALIDATED_KEY, +} from '@/shared/constants/api'; +import { API_URL } from '@/shared/constants/apiURL'; + +export async function POST(request: NextRequest) { + try { + const accessToken = request.cookies.get(ACCESS_TOKEN_KEY)?.value; + + if (!accessToken) { + return NextResponse.json({ message: 'Missing access token' }, { status: 401 }); + } + + const response = await authFetch(API_URL.MEMBERS_WITHDRAW, { + method: 'POST', + headers: { + Authorization: `Bearer ${accessToken}`, + }, + }); + + const data = await response.json().catch(() => null); + + if (!response.ok) { + return NextResponse.json(data ?? { message: 'Withdraw failed' }, { status: response.status }); + } + + const res = NextResponse.json(data, { status: response.status }); + + // 탈퇴 성공 시 인증·탈퇴 플로우 관련 쿠키 전부 삭제 + const cookiePath = { path: '/' }; + res.cookies.delete({ name: ACCESS_TOKEN_KEY, ...cookiePath }); + res.cookies.delete({ name: TEMP_ACCESS_TOKEN_KEY, ...cookiePath }); + res.cookies.delete({ name: REFRESH_TOKEN_KEY, ...cookiePath }); + res.cookies.delete({ name: WITHDRAW_VALIDATED_KEY, ...cookiePath }); + res.cookies.delete({ name: WITHDRAW_COMPLETED_KEY, ...cookiePath }); + + return res; + } catch { + return NextResponse.json({ message: 'Withdraw failed' }, { status: 500 }); + } +} diff --git a/src/app/auth/apis/axios.ts b/src/app/auth/apis/axios.ts new file mode 100644 index 000000000..dbb04225e --- /dev/null +++ b/src/app/auth/apis/axios.ts @@ -0,0 +1,26 @@ +import { instance } from '@/shared/apis/instance'; + +// Next BFF Route Handler (/api/auth/*) 기반 인증 API +export const kakaoLogin = async (redirectUrl: string, code: string) => { + const response = await instance.post('/auth/login', { provider: 'KAKAO', redirectUrl, code }); + + return response; +}; + +// 로그아웃 +export const postLogout = async () => { + await instance.post('/auth/logout'); +}; + +export const postReissue = async () => { + const { data } = await instance.post('/auth/reissue'); + + return data; +}; + +// 온보딩 완료 시 TEMP 토큰을 정식 ACCESS 토큰으로 승격 +export const postPromoteTempToken = async () => { + const { data } = await instance.post('/auth/promote-onboarding-token'); + + return data; +}; diff --git a/src/pages/auth/apis/queries.ts b/src/app/auth/apis/queries.ts similarity index 55% rename from src/pages/auth/apis/queries.ts rename to src/app/auth/apis/queries.ts index 29eb40291..1a683bf4c 100644 --- a/src/pages/auth/apis/queries.ts +++ b/src/app/auth/apis/queries.ts @@ -1,29 +1,27 @@ import { useMutation, useQuery } from '@tanstack/react-query'; import type { AxiosError } from 'axios'; -import { useNavigate } from 'react-router-dom'; -import { kakaoLogin, postLogout, postReissue } from '@/pages/auth/apis/axios'; -import type { loginTypes } from '@/pages/auth/types/api'; -import { ROUTES_CONFIG } from '@/routes/routesConfig'; -import { instance } from '@/shared/apis/instance'; +import { useRouter } from 'next/navigation'; +import { kakaoLogin, postLogout, postReissue } from '@/app/auth/apis/axios'; +import type { loginTypes } from '@/app/auth/types/api'; import { authKeys } from '@/shared/constants/queryKey'; -import { clearStorage, setStorage } from '@/shared/utils/handleToken'; +import { clearStorage } from '@/shared/utils/handleToken'; export const useLoginMutation = () => { - const navigate = useNavigate(); + const router = useRouter(); return useMutation({ mutationFn: ({ redirectUrl, code }: loginTypes) => kakaoLogin(redirectUrl, code), - onSuccess: ({ data: { accessToken, refreshToken, isOnboarded, isDeleted } }) => { - instance.defaults.headers.Authorization = `Bearer ${accessToken}`; + onSuccess: ({ data: { isOnboarded, isDeleted } }) => { + console.log('성공은 하니??'); if (!isOnboarded || isDeleted) { + console.log('여기야?'); clearStorage(); - navigate(ROUTES_CONFIG.onboarding.path, { state: { accessToken, refreshToken, isDeleted } }); + router.push(isDeleted ? '/onboarding?isDeleted=true' : '/onboarding'); return; } - navigate(ROUTES_CONFIG.home.path); - setStorage(accessToken, refreshToken); + router.push('/'); }, onError: (error: AxiosError) => { diff --git a/src/app/auth/page.tsx b/src/app/auth/page.tsx new file mode 100644 index 000000000..6ca604637 --- /dev/null +++ b/src/app/auth/page.tsx @@ -0,0 +1,20 @@ +'use client'; + +import { useEffect, useState } from 'react'; +import { useLoginMutation } from '@/app/auth/apis/queries'; + +export default function Page() { + const [code, setCode] = useState(null); + const { mutate: login } = useLoginMutation(); + + useEffect(() => { + const params = new URLSearchParams(window.location.search); + setCode(params.get('code')); + }, []); + + useEffect(() => { + if (code) login({ redirectUrl: process.env.NEXT_PUBLIC_KAKAO_REDIRECT_URI ?? '', code }); + }, [code, login]); + + return null; +} diff --git a/src/pages/auth/types/api.ts b/src/app/auth/types/api.ts similarity index 100% rename from src/pages/auth/types/api.ts rename to src/app/auth/types/api.ts diff --git a/src/pages/class/apis/axios.ts b/src/app/class/[id]/apis/axios.ts similarity index 80% rename from src/pages/class/apis/axios.ts rename to src/app/class/[id]/apis/axios.ts index 05d84f56d..3125929f8 100644 --- a/src/pages/class/apis/axios.ts +++ b/src/app/class/[id]/apis/axios.ts @@ -1,4 +1,4 @@ -import type { LessonDetailResponseTypes } from '@/pages/class/types/api'; +import type { LessonDetailResponseTypes } from '@/app/class/[id]/types/api'; import { instance } from '@/shared/apis/instance'; import { API_URL } from '@/shared/constants/apiURL'; diff --git a/src/pages/class/apis/queries.ts b/src/app/class/[id]/apis/queries.ts similarity index 76% rename from src/pages/class/apis/queries.ts rename to src/app/class/[id]/apis/queries.ts index b32fc5aad..4b616594e 100644 --- a/src/pages/class/apis/queries.ts +++ b/src/app/class/[id]/apis/queries.ts @@ -1,7 +1,7 @@ import { useQuery } from '@tanstack/react-query'; import type { AxiosError } from 'axios'; -import { getLessonDetail } from '@/pages/class/apis/axios'; -import type { LessonDetailResponseTypes } from '@/pages/class/types/api'; +import { getLessonDetail } from '@/app/class/[id]/apis/axios'; +import type { LessonDetailResponseTypes } from '@/app/class/[id]/types/api'; import { lessonKeys } from '@/shared/constants/queryKey'; export const useGetLessonDetail = (lessonId: number, options?: { enabled?: boolean }) => { diff --git a/src/pages/class/components/Card/Card.tsx b/src/app/class/[id]/components/Card/Card.tsx similarity index 79% rename from src/pages/class/components/Card/Card.tsx rename to src/app/class/[id]/components/Card/Card.tsx index 6d33e4492..4ea9975b7 100644 --- a/src/pages/class/components/Card/Card.tsx +++ b/src/app/class/[id]/components/Card/Card.tsx @@ -1,6 +1,8 @@ +'use client'; + import clsx from 'clsx'; import type { ComponentProps } from 'react'; -import * as styles from '@/pages/class/components/Card/card.css'; +import * as styles from '@/app/class/[id]/components/Card/card.css'; type CardPropTypes = ComponentProps<'div'>; diff --git a/src/pages/class/components/Card/card.css.ts b/src/app/class/[id]/components/Card/card.css.ts similarity index 100% rename from src/pages/class/components/Card/card.css.ts rename to src/app/class/[id]/components/Card/card.css.ts diff --git a/src/pages/class/components/ClassButtonWrapper/ClassButtonWrapper.tsx b/src/app/class/[id]/components/ClassButtonWrapper/ClassButtonWrapper.tsx similarity index 70% rename from src/pages/class/components/ClassButtonWrapper/ClassButtonWrapper.tsx rename to src/app/class/[id]/components/ClassButtonWrapper/ClassButtonWrapper.tsx index e7ce10183..2ac9a765c 100644 --- a/src/pages/class/components/ClassButtonWrapper/ClassButtonWrapper.tsx +++ b/src/app/class/[id]/components/ClassButtonWrapper/ClassButtonWrapper.tsx @@ -1,9 +1,10 @@ -import { useNavigate, useParams } from 'react-router-dom'; -import { flexGapStyle } from '@/pages/class/components/ClassButtonWrapper/classButtonWrapper.css'; -import { useClassButtonState } from '@/pages/class/hooks/useClassButtonState'; -import { useHeartToggle } from '@/pages/class/hooks/useHeartToggle'; -import type { LessonDetailResponseTypes } from '@/pages/class/types/api'; -import { ROUTES_CONFIG } from '@/routes/routesConfig'; +'use client'; + +import { useParams, useRouter } from 'next/navigation'; +import { flexGapStyle } from '@/app/class/[id]/components/ClassButtonWrapper/classButtonWrapper.css'; +import { useClassButtonState } from '@/app/class/[id]/hooks/useClassButtonState'; +import { useHeartToggle } from '@/app/class/[id]/hooks/useHeartToggle'; +import type { LessonDetailResponseTypes } from '@/app/class/[id]/types/api'; import BlurButton from '@/common/components/BlurButton/BlurButton'; import BoxButton from '@/common/components/BoxButton/BoxButton'; import IcHeartFilledGray07 from '@/shared/assets/svg/IcHeartFilledGray07'; @@ -11,8 +12,9 @@ import IcHeartOutlinedGray07 from '@/shared/assets/svg/IcHeartOutlinedGray07'; import { WITHDRAW_USER_NAME } from '@/shared/constants/withdrawUser'; const ClassButtonWrapper = ({ lessonData }: { lessonData: LessonDetailResponseTypes }) => { - const navigate = useNavigate(); - const { id } = useParams<{ id: string }>(); + const router = useRouter(); + const params = useParams() ?? {}; + const id = (params as { id?: string }).id; const isMyLesson = lessonData.isMyLesson; const { isHeartFilled, toggleHeart } = useHeartToggle(); @@ -25,8 +27,7 @@ const ClassButtonWrapper = ({ lessonData }: { lessonData: LessonDetailResponseTy const handleApplyClick = () => { if (!isDisabled && id) { - const path = ROUTES_CONFIG.reservation.path(id); - navigate(path); + router.push(`/class/${id}/register`); } }; diff --git a/src/pages/class/components/ClassButtonWrapper/classButtonWrapper.css.ts b/src/app/class/[id]/components/ClassButtonWrapper/classButtonWrapper.css.ts similarity index 100% rename from src/pages/class/components/ClassButtonWrapper/classButtonWrapper.css.ts rename to src/app/class/[id]/components/ClassButtonWrapper/classButtonWrapper.css.ts diff --git a/src/pages/class/components/ClassInfoWrapper/ClassInfoWrapper.tsx b/src/app/class/[id]/components/ClassInfoWrapper/ClassInfoWrapper.tsx similarity index 87% rename from src/pages/class/components/ClassInfoWrapper/ClassInfoWrapper.tsx rename to src/app/class/[id]/components/ClassInfoWrapper/ClassInfoWrapper.tsx index fc9dd8af5..7f2395f42 100644 --- a/src/pages/class/components/ClassInfoWrapper/ClassInfoWrapper.tsx +++ b/src/app/class/[id]/components/ClassInfoWrapper/ClassInfoWrapper.tsx @@ -1,5 +1,7 @@ -import { useNavigate } from 'react-router-dom'; -import Card from '@/pages/class/components/Card/Card'; +'use client'; + +import { useRouter } from 'next/navigation'; +import Card from '@/app/class/[id]/components/Card/Card'; import { cardItemStyle, cardStyle, @@ -12,11 +14,10 @@ import { sectionContainer, tagWrapper, teacherWrapper, -} from '@/pages/class/components/ClassInfoWrapper/classInfoWrapper.css'; -import type { LessonDetailResponseTypes } from '@/pages/class/types/api'; -import { getDDayLabel } from '@/pages/class/utils/dDay'; -import type { GenreTypes } from '@/pages/onboarding/types/genreTypes'; -import { ROUTES_CONFIG } from '@/routes/routesConfig'; +} from '@/app/class/[id]/components/ClassInfoWrapper/classInfoWrapper.css'; +import type { LessonDetailResponseTypes } from '@/app/class/[id]/types/api'; +import { getDDayLabel } from '@/app/class/[id]/utils/dDay'; +import type { GenreTypes } from '@/app/onboarding/types/genreTypes'; import Head from '@/common/components/Head/Head'; import Tag from '@/common/components/Tag/Tag'; import Text from '@/common/components/Text/Text'; @@ -41,11 +42,10 @@ const ClassInfoWrapper = ({ lessonData }: { lessonData: LessonDetailResponseType const translatedGenre = genreMapping[genre as Exclude] || genre; const dDay = getDDayLabel(remainingDays); - const navigate = useNavigate(); + const router = useRouter(); const handleTeacherClick = (dancerId: number) => { - const path = ROUTES_CONFIG.dancer.path(dancerId.toString()); - navigate(path); + router.push(`/dancer/${dancerId}`); }; const MAX_DISPLAY_RESERVATION_COUNT = 999; diff --git a/src/pages/class/components/ClassInfoWrapper/classInfoWrapper.css.ts b/src/app/class/[id]/components/ClassInfoWrapper/classInfoWrapper.css.ts similarity index 100% rename from src/pages/class/components/ClassInfoWrapper/classInfoWrapper.css.ts rename to src/app/class/[id]/components/ClassInfoWrapper/classInfoWrapper.css.ts diff --git a/src/pages/class/components/LimitedChip/LimitedChip.tsx b/src/app/class/[id]/components/LimitedChip/LimitedChip.tsx similarity index 76% rename from src/pages/class/components/LimitedChip/LimitedChip.tsx rename to src/app/class/[id]/components/LimitedChip/LimitedChip.tsx index 21775a93a..a6d7c9e43 100644 --- a/src/pages/class/components/LimitedChip/LimitedChip.tsx +++ b/src/app/class/[id]/components/LimitedChip/LimitedChip.tsx @@ -1,5 +1,7 @@ -import * as styles from '@/pages/class/components/LimitedChip/limitedChip.css'; -import type { LessonDetailResponseTypes } from '@/pages/class/types/api'; +'use client'; + +import * as styles from '@/app/class/[id]/components/LimitedChip/limitedChip.css'; +import type { LessonDetailResponseTypes } from '@/app/class/[id]/types/api'; import Text from '@/common/components/Text/Text'; import IcThunderMain0424 from '@/shared/assets/svg/IcThunderMain0424'; import { vars } from '@/shared/styles/theme.css'; diff --git a/src/pages/class/components/LimitedChip/limitedChip.css.ts b/src/app/class/[id]/components/LimitedChip/limitedChip.css.ts similarity index 100% rename from src/pages/class/components/LimitedChip/limitedChip.css.ts rename to src/app/class/[id]/components/LimitedChip/limitedChip.css.ts diff --git a/src/pages/class/components/TabWrapper/TabIntro/TabIntro.tsx b/src/app/class/[id]/components/TabWrapper/TabIntro/TabIntro.tsx similarity index 65% rename from src/pages/class/components/TabWrapper/TabIntro/TabIntro.tsx rename to src/app/class/[id]/components/TabWrapper/TabIntro/TabIntro.tsx index b18095c62..86c9210b1 100644 --- a/src/pages/class/components/TabWrapper/TabIntro/TabIntro.tsx +++ b/src/app/class/[id]/components/TabWrapper/TabIntro/TabIntro.tsx @@ -1,5 +1,7 @@ -import * as styles from '@/pages/class/components/TabWrapper/TabIntro/tabIntro.css'; -import type { LessonDetailResponseTypes } from '@/pages/class/types/api'; +'use client'; + +import * as styles from '@/app/class/[id]/components/TabWrapper/TabIntro/tabIntro.css'; +import type { LessonDetailResponseTypes } from '@/app/class/[id]/types/api'; import Text from '@/common/components/Text/Text'; const TabIntro = ({ lessonData }: { lessonData: LessonDetailResponseTypes }) => { diff --git a/src/pages/class/components/TabWrapper/TabIntro/tabIntro.css.ts b/src/app/class/[id]/components/TabWrapper/TabIntro/tabIntro.css.ts similarity index 100% rename from src/pages/class/components/TabWrapper/TabIntro/tabIntro.css.ts rename to src/app/class/[id]/components/TabWrapper/TabIntro/tabIntro.css.ts diff --git a/src/pages/class/components/TabWrapper/TabLevel/TabLevel.tsx b/src/app/class/[id]/components/TabWrapper/TabLevel/TabLevel.tsx similarity index 91% rename from src/pages/class/components/TabWrapper/TabLevel/TabLevel.tsx rename to src/app/class/[id]/components/TabWrapper/TabLevel/TabLevel.tsx index 3a6092ecd..ad49fb19e 100644 --- a/src/pages/class/components/TabWrapper/TabLevel/TabLevel.tsx +++ b/src/app/class/[id]/components/TabWrapper/TabLevel/TabLevel.tsx @@ -1,5 +1,7 @@ +'use client'; + import { lazy, Suspense } from 'react'; -import Card from '@/pages/class/components/Card/Card'; +import Card from '@/app/class/[id]/components/Card/Card'; import { cardStyle, levelStyle, @@ -10,8 +12,8 @@ import { infoWrapperStyle, recommendationSectionStyle, recommendationHeaderStyle, -} from '@/pages/class/components/TabWrapper/TabLevel/tabLevel.css'; -import type { LessonDetailResponseTypes } from '@/pages/class/types/api'; +} from '@/app/class/[id]/components/TabWrapper/TabLevel/tabLevel.css'; +import type { LessonDetailResponseTypes } from '@/app/class/[id]/types/api'; import Head from '@/common/components/Head/Head'; import Text from '@/common/components/Text/Text'; import { notify } from '@/common/components/Toast/Toast'; diff --git a/src/pages/class/components/TabWrapper/TabLevel/tabLevel.css.ts b/src/app/class/[id]/components/TabWrapper/TabLevel/tabLevel.css.ts similarity index 100% rename from src/pages/class/components/TabWrapper/TabLevel/tabLevel.css.ts rename to src/app/class/[id]/components/TabWrapper/TabLevel/tabLevel.css.ts diff --git a/src/pages/class/components/TabWrapper/TabLocation/TabLocation.tsx b/src/app/class/[id]/components/TabWrapper/TabLocation/TabLocation.tsx similarity index 91% rename from src/pages/class/components/TabWrapper/TabLocation/TabLocation.tsx rename to src/app/class/[id]/components/TabWrapper/TabLocation/TabLocation.tsx index 11e649f8e..e1eb881e1 100644 --- a/src/pages/class/components/TabWrapper/TabLocation/TabLocation.tsx +++ b/src/app/class/[id]/components/TabWrapper/TabLocation/TabLocation.tsx @@ -1,5 +1,7 @@ +'use client'; + import { lazy, Suspense } from 'react'; -import Card from '@/pages/class/components/Card/Card'; +import Card from '@/app/class/[id]/components/Card/Card'; import { addressContainerStyle, addressRowStyle, @@ -11,8 +13,8 @@ import { sectionStyle, streetAddressStyle, textGroupStyle, -} from '@/pages/class/components/TabWrapper/TabLocation/tabLocation.css'; -import type { LessonDetailResponseTypes } from '@/pages/class/types/api'; +} from '@/app/class/[id]/components/TabWrapper/TabLocation/tabLocation.css'; +import type { LessonDetailResponseTypes } from '@/app/class/[id]/types/api'; import Head from '@/common/components/Head/Head'; import Text from '@/common/components/Text/Text'; diff --git a/src/pages/class/components/TabWrapper/TabLocation/tabLocation.css.ts b/src/app/class/[id]/components/TabWrapper/TabLocation/tabLocation.css.ts similarity index 100% rename from src/pages/class/components/TabWrapper/TabLocation/tabLocation.css.ts rename to src/app/class/[id]/components/TabWrapper/TabLocation/tabLocation.css.ts diff --git a/src/pages/class/components/TabWrapper/TabPeriod/TabPeriod.tsx b/src/app/class/[id]/components/TabWrapper/TabPeriod/TabPeriod.tsx similarity index 86% rename from src/pages/class/components/TabWrapper/TabPeriod/TabPeriod.tsx rename to src/app/class/[id]/components/TabWrapper/TabPeriod/TabPeriod.tsx index 645308eb3..ec37b55af 100644 --- a/src/pages/class/components/TabWrapper/TabPeriod/TabPeriod.tsx +++ b/src/app/class/[id]/components/TabWrapper/TabPeriod/TabPeriod.tsx @@ -1,12 +1,14 @@ -import Card from '@/pages/class/components/Card/Card'; +'use client'; + +import Card from '@/app/class/[id]/components/Card/Card'; import { cardStyle, roundBoxStyle, sectionStyle, cardContentStyle, periodInfoStyle, -} from '@/pages/class/components/TabWrapper/TabPeriod/tabPeriod.css'; -import type { LessonDetailResponseTypes } from '@/pages/class/types/api'; +} from '@/app/class/[id]/components/TabWrapper/TabPeriod/tabPeriod.css'; +import type { LessonDetailResponseTypes } from '@/app/class/[id]/types/api'; import Text from '@/common/components/Text/Text'; import { calculatePeriod, formatDateToKR } from '@/shared/utils/date'; diff --git a/src/pages/class/components/TabWrapper/TabPeriod/tabPeriod.css.ts b/src/app/class/[id]/components/TabWrapper/TabPeriod/tabPeriod.css.ts similarity index 100% rename from src/pages/class/components/TabWrapper/TabPeriod/tabPeriod.css.ts rename to src/app/class/[id]/components/TabWrapper/TabPeriod/tabPeriod.css.ts diff --git a/src/pages/class/components/TabWrapper/TabReview/tabReview.css.ts b/src/app/class/[id]/components/TabWrapper/TabReview/tabReview.css.ts similarity index 100% rename from src/pages/class/components/TabWrapper/TabReview/tabReview.css.ts rename to src/app/class/[id]/components/TabWrapper/TabReview/tabReview.css.ts diff --git a/src/app/class/[id]/components/TabWrapper/TabReview/tabReview.tsx b/src/app/class/[id]/components/TabWrapper/TabReview/tabReview.tsx new file mode 100644 index 000000000..c28838877 --- /dev/null +++ b/src/app/class/[id]/components/TabWrapper/TabReview/tabReview.tsx @@ -0,0 +1,9 @@ +'use client'; + +import { reviewSectionStyle } from '@/app/class/[id]/components/TabWrapper/TabReview/tabReview.css'; + +const TabReview = () => { + return
    ; +}; + +export default TabReview; diff --git a/src/pages/class/components/TabWrapper/TabWrapper.tsx b/src/app/class/[id]/components/TabWrapper/TabWrapper.tsx similarity index 87% rename from src/pages/class/components/TabWrapper/TabWrapper.tsx rename to src/app/class/[id]/components/TabWrapper/TabWrapper.tsx index 1c1e90d1e..58f0a55ce 100644 --- a/src/pages/class/components/TabWrapper/TabWrapper.tsx +++ b/src/app/class/[id]/components/TabWrapper/TabWrapper.tsx @@ -1,6 +1,8 @@ +'use client'; + import { useState } from 'react'; -import { tabPanelStyle, tabListWrapperStyle } from '@/pages/class/components/TabWrapper/tabWrapper.css'; -import type { LessonDetailResponseTypes } from '@/pages/class/types/api'; +import { tabPanelStyle, tabListWrapperStyle } from '@/app/class/[id]/components/TabWrapper/tabWrapper.css'; +import type { LessonDetailResponseTypes } from '@/app/class/[id]/types/api'; import { TabButton, TabList, TabPanel, TabRoot } from '@/common/components/Tab'; import { notify } from '@/common/components/Toast/Toast'; import { CLASS_TABS } from '@/shared/constants'; diff --git a/src/pages/class/components/TabWrapper/tabWrapper.css.ts b/src/app/class/[id]/components/TabWrapper/tabWrapper.css.ts similarity index 100% rename from src/pages/class/components/TabWrapper/tabWrapper.css.ts rename to src/app/class/[id]/components/TabWrapper/tabWrapper.css.ts diff --git a/src/pages/class/constants/index.ts b/src/app/class/[id]/constants/index.ts similarity index 100% rename from src/pages/class/constants/index.ts rename to src/app/class/[id]/constants/index.ts diff --git a/src/pages/class/hooks/useClassButtonState.ts b/src/app/class/[id]/hooks/useClassButtonState.ts similarity index 88% rename from src/pages/class/hooks/useClassButtonState.ts rename to src/app/class/[id]/hooks/useClassButtonState.ts index 6ccf243fd..6bd3f8d67 100644 --- a/src/pages/class/hooks/useClassButtonState.ts +++ b/src/app/class/[id]/hooks/useClassButtonState.ts @@ -1,4 +1,4 @@ -import type { StatusType } from '@/pages/class/types/api'; +import type { StatusType } from '@/app/class/[id]/types/api'; import { BUTTON_TEXT } from '@/shared/constants'; export const useClassButtonState = ( diff --git a/src/pages/class/hooks/useHeartToggle.ts b/src/app/class/[id]/hooks/useHeartToggle.ts similarity index 100% rename from src/pages/class/hooks/useHeartToggle.ts rename to src/app/class/[id]/hooks/useHeartToggle.ts diff --git a/src/pages/class/class.css.ts b/src/app/class/[id]/index.css.ts similarity index 100% rename from src/pages/class/class.css.ts rename to src/app/class/[id]/index.css.ts diff --git a/src/pages/class/Class.tsx b/src/app/class/[id]/page.tsx similarity index 72% rename from src/pages/class/Class.tsx rename to src/app/class/[id]/page.tsx index a0a2cdb50..dac175808 100644 --- a/src/pages/class/Class.tsx +++ b/src/app/class/[id]/page.tsx @@ -1,18 +1,20 @@ -import { useParams } from 'react-router-dom'; -import { useGetLessonDetail } from '@/pages/class/apis/queries'; -import ClassButtonWrapper from '@/pages/class/components/ClassButtonWrapper/ClassButtonWrapper'; -import ClassInfoWrapper from '@/pages/class/components/ClassInfoWrapper/ClassInfoWrapper'; -import LimitedChip from '@/pages/class/components/LimitedChip/LimitedChip'; -import TabWrapper from '@/pages/class/components/TabWrapper/TabWrapper'; -import { LOW_SEAT_THRESHOLD } from '@/pages/class/constants'; -import ErrorPage from '@/pages/error/ErrorPage'; +'use client'; + +import { use } from 'react'; +import { useGetLessonDetail } from '@/app/class/[id]/apis/queries'; +import ClassButtonWrapper from '@/app/class/[id]/components/ClassButtonWrapper/ClassButtonWrapper'; +import ClassInfoWrapper from '@/app/class/[id]/components/ClassInfoWrapper/ClassInfoWrapper'; +import LimitedChip from '@/app/class/[id]/components/LimitedChip/LimitedChip'; +import TabWrapper from '@/app/class/[id]/components/TabWrapper/TabWrapper'; +import { LOW_SEAT_THRESHOLD } from '@/app/class/[id]/constants'; +import { chipWrapperStyle, topImgStyle, withdrawIconStyle, withdrawImgStyle } from '@/app/class/[id]/index.css'; +import ErrorPage from '@/app/error/ErrorPage'; import Divider from '@/common/components/Divider/Divider'; import Text from '@/common/components/Text/Text'; import IcCircleCautionFilled from '@/shared/assets/svg/IcCircleCautionFilled'; -import { chipWrapperStyle, topImgStyle, withdrawIconStyle, withdrawImgStyle } from './class.css'; -const Class = () => { - const { id } = useParams<{ id: string }>(); +export default function Page({ params }: { params: Promise<{ id: string }> }) { + const { id } = use(params); const lessonId = Number(id); const isValidLessonId = Number.isInteger(lessonId) && lessonId > 0; @@ -69,6 +71,4 @@ const Class = () => { ); -}; - -export default Class; +} diff --git a/src/pages/reservation/apis/axios.ts b/src/app/class/[id]/register/apis/axios.ts similarity index 92% rename from src/pages/reservation/apis/axios.ts rename to src/app/class/[id]/register/apis/axios.ts index 7bd353713..b6cfcf1d0 100644 --- a/src/pages/reservation/apis/axios.ts +++ b/src/app/class/[id]/register/apis/axios.ts @@ -1,4 +1,4 @@ -import type { ClassReservationResponseTypes, ReservationDetailResponseTypes } from '@/pages/reservation/types/api'; +import type { ClassReservationResponseTypes, ReservationDetailResponseTypes } from '@/app/class/[id]/register/types'; import { instance } from '@/shared/apis/instance'; import { API_URL } from '@/shared/constants/apiURL'; diff --git a/src/app/class/[id]/register/apis/queries.ts b/src/app/class/[id]/register/apis/queries.ts new file mode 100644 index 000000000..708b3a71c --- /dev/null +++ b/src/app/class/[id]/register/apis/queries.ts @@ -0,0 +1,18 @@ +import { useMutation, useQuery } from '@tanstack/react-query'; +import type { AxiosError } from 'axios'; +import { getReservation, postReservation } from '@/app/class/[id]/register/apis/axios'; +import type { ClassReservationResponseTypes, ReservationDetailResponseTypes } from '@/app/class/[id]/register/types'; + +export const useGetReservation = (lessonId: number) => { + return useQuery({ + queryKey: ['reservation', lessonId], + queryFn: () => getReservation(lessonId), + enabled: !!lessonId, + }); +}; + +export const usePostReservation = () => { + return useMutation, { lessonId: string }>({ + mutationFn: ({ lessonId }) => postReservation(lessonId), + }); +}; diff --git a/src/pages/reservation/components/AgreeCheckBox/AgreeCheckBox.tsx b/src/app/class/[id]/register/components/AgreeCheckBox/AgreeCheckBox.tsx similarity index 90% rename from src/pages/reservation/components/AgreeCheckBox/AgreeCheckBox.tsx rename to src/app/class/[id]/register/components/AgreeCheckBox/AgreeCheckBox.tsx index 42f0210ca..46add94fe 100644 --- a/src/pages/reservation/components/AgreeCheckBox/AgreeCheckBox.tsx +++ b/src/app/class/[id]/register/components/AgreeCheckBox/AgreeCheckBox.tsx @@ -1,4 +1,6 @@ -import { containerStyle, contentStyle } from '@/pages/reservation/components/AgreeCheckBox/agreeCheckBox.css'; +'use client'; + +import { containerStyle, contentStyle } from '@/app/class/[id]/register/components/AgreeCheckBox/agreeCheckBox.css'; import Text from '@/common/components/Text/Text'; import IcArrowRightSmallGray0732 from '@/shared/assets/svg/IcArrowRightSmallGray0732'; import IcArrowRightSmallMain0332New from '@/shared/assets/svg/IcArrowRightSmallMain0332New'; diff --git a/src/pages/reservation/components/AgreeCheckBox/agreeCheckBox.css.ts b/src/app/class/[id]/register/components/AgreeCheckBox/agreeCheckBox.css.ts similarity index 100% rename from src/pages/reservation/components/AgreeCheckBox/agreeCheckBox.css.ts rename to src/app/class/[id]/register/components/AgreeCheckBox/agreeCheckBox.css.ts diff --git a/src/pages/reservation/components/ApplicantInfo/ApplicantInfo.tsx b/src/app/class/[id]/register/components/ApplicantInfo/ApplicantInfo.tsx similarity index 91% rename from src/pages/reservation/components/ApplicantInfo/ApplicantInfo.tsx rename to src/app/class/[id]/register/components/ApplicantInfo/ApplicantInfo.tsx index 8b483462e..f81c7ba92 100644 --- a/src/pages/reservation/components/ApplicantInfo/ApplicantInfo.tsx +++ b/src/app/class/[id]/register/components/ApplicantInfo/ApplicantInfo.tsx @@ -1,8 +1,10 @@ +'use client'; + import { bookerComponentStyle, textLabelStyle, rowStyle, -} from '@/pages/reservation/components/ApplicantInfo/applicantInfo.css'; +} from '@/app/class/[id]/register/components/ApplicantInfo/applicantInfo.css'; import Text from '@/common/components/Text/Text'; import { formatPhoneNumberNoSpace } from '@/shared/utils/formatPhoneNumber'; diff --git a/src/pages/reservation/components/ApplicantInfo/applicantInfo.css.ts b/src/app/class/[id]/register/components/ApplicantInfo/applicantInfo.css.ts similarity index 100% rename from src/pages/reservation/components/ApplicantInfo/applicantInfo.css.ts rename to src/app/class/[id]/register/components/ApplicantInfo/applicantInfo.css.ts diff --git a/src/pages/reservation/components/ClassInfo/ClassInfo.tsx b/src/app/class/[id]/register/components/ClassInfo/ClassInfo.tsx similarity index 97% rename from src/pages/reservation/components/ClassInfo/ClassInfo.tsx rename to src/app/class/[id]/register/components/ClassInfo/ClassInfo.tsx index 645ffc18d..8c772037e 100644 --- a/src/pages/reservation/components/ClassInfo/ClassInfo.tsx +++ b/src/app/class/[id]/register/components/ClassInfo/ClassInfo.tsx @@ -1,3 +1,5 @@ +'use client'; + import { infoContainerStyle, textLabelStyle, @@ -7,7 +9,7 @@ import { scheduleWrapperStyle, scheduleItemStyle, locationInfoStyle, -} from '@/pages/reservation/components/ClassInfo/classInfo.css'; +} from '@/app/class/[id]/register/components/ClassInfo/classInfo.css'; import Head from '@/common/components/Head/Head'; import Text from '@/common/components/Text/Text'; import { levelMapping } from '@/shared/constants'; diff --git a/src/pages/reservation/components/ClassInfo/classInfo.css.ts b/src/app/class/[id]/register/components/ClassInfo/classInfo.css.ts similarity index 100% rename from src/pages/reservation/components/ClassInfo/classInfo.css.ts rename to src/app/class/[id]/register/components/ClassInfo/classInfo.css.ts diff --git a/src/pages/reservation/components/ConfirmationBottomSheet/ConfirmationBottomSheet.tsx b/src/app/class/[id]/register/components/ConfirmationBottomSheet/ConfirmationBottomSheet.tsx similarity index 94% rename from src/pages/reservation/components/ConfirmationBottomSheet/ConfirmationBottomSheet.tsx rename to src/app/class/[id]/register/components/ConfirmationBottomSheet/ConfirmationBottomSheet.tsx index eabcbcc9e..84977501c 100644 --- a/src/pages/reservation/components/ConfirmationBottomSheet/ConfirmationBottomSheet.tsx +++ b/src/app/class/[id]/register/components/ConfirmationBottomSheet/ConfirmationBottomSheet.tsx @@ -1,5 +1,7 @@ +'use client'; + import { AnimatePresence, motion } from 'motion/react'; -import * as styles from '@/pages/reservation/components/ConfirmationBottomSheet/confirmationBottomSheet.css'; +import * as styles from '@/app/class/[id]/register/components/ConfirmationBottomSheet/confirmationBottomSheet.css'; import BoxButton from '@/common/components/BoxButton/BoxButton'; import Head from '@/common/components/Head/Head'; import Text from '@/common/components/Text/Text'; diff --git a/src/pages/reservation/components/ConfirmationBottomSheet/confirmationBottomSheet.css.ts b/src/app/class/[id]/register/components/ConfirmationBottomSheet/confirmationBottomSheet.css.ts similarity index 100% rename from src/pages/reservation/components/ConfirmationBottomSheet/confirmationBottomSheet.css.ts rename to src/app/class/[id]/register/components/ConfirmationBottomSheet/confirmationBottomSheet.css.ts diff --git a/src/pages/reservation/components/ConfirmationStep/ConfirmationStep.tsx b/src/app/class/[id]/register/components/ConfirmationStep/ConfirmationStep.tsx similarity index 89% rename from src/pages/reservation/components/ConfirmationStep/ConfirmationStep.tsx rename to src/app/class/[id]/register/components/ConfirmationStep/ConfirmationStep.tsx index a41e850b6..35ca15d61 100644 --- a/src/pages/reservation/components/ConfirmationStep/ConfirmationStep.tsx +++ b/src/app/class/[id]/register/components/ConfirmationStep/ConfirmationStep.tsx @@ -1,6 +1,8 @@ +'use client'; + +import { usePathname } from 'next/navigation'; import { useState } from 'react'; -import { useLocation } from 'react-router-dom'; -import ConfirmationBottomSheet from '@/pages/reservation/components/ConfirmationBottomSheet/ConfirmationBottomSheet'; +import ConfirmationBottomSheet from '@/app/class/[id]/register/components/ConfirmationBottomSheet/ConfirmationBottomSheet'; import { mainContainer, gapBetweenHeadAndNote, @@ -13,7 +15,7 @@ import { underline, breakWord, accountNumberWrapperStyle, -} from '@/pages/reservation/components/ConfirmationStep/confirmationStep.css'; +} from '@/app/class/[id]/register/components/ConfirmationStep/confirmationStep.css'; import BoxButton from '@/common/components/BoxButton/BoxButton'; import Head from '@/common/components/Head/Head'; import Text from '@/common/components/Text/Text'; @@ -29,9 +31,8 @@ interface ConfirmationStepPropTypes { } const ConfirmationStep = ({ onNext, depositor, bankName, accountNumber, price }: ConfirmationStepPropTypes) => { - const location = useLocation(); - const currentPath = location.pathname; - const STORAGE_KEY = `bottomsheet-closed-${currentPath}`; + const pathname = usePathname(); + const STORAGE_KEY = `bottomsheet-closed-${pathname}`; const [isBottomSheetOpen, setBottomSheetOpen] = useState(() => { const closed = sessionStorage.getItem(STORAGE_KEY); diff --git a/src/pages/reservation/components/ConfirmationStep/confirmationStep.css.ts b/src/app/class/[id]/register/components/ConfirmationStep/confirmationStep.css.ts similarity index 100% rename from src/pages/reservation/components/ConfirmationStep/confirmationStep.css.ts rename to src/app/class/[id]/register/components/ConfirmationStep/confirmationStep.css.ts diff --git a/src/pages/reservation/components/ReservationHeader/ReservationHeader.tsx b/src/app/class/[id]/register/components/ReservationHeader/ReservationHeader.tsx similarity index 74% rename from src/pages/reservation/components/ReservationHeader/ReservationHeader.tsx rename to src/app/class/[id]/register/components/ReservationHeader/ReservationHeader.tsx index e9032f0e8..7727c9a95 100644 --- a/src/pages/reservation/components/ReservationHeader/ReservationHeader.tsx +++ b/src/app/class/[id]/register/components/ReservationHeader/ReservationHeader.tsx @@ -1,6 +1,7 @@ -import { useNavigate } from 'react-router-dom'; -import * as styles from '@/pages/reservation/components/ReservationHeader/reservationHeader.css'; -import { ROUTES_CONFIG } from '@/routes/routesConfig'; +'use client'; + +import { useRouter } from 'next/navigation'; +import * as styles from '@/app/class/[id]/register/components/ReservationHeader/reservationHeader.css'; import IcBackBlack from '@/shared/assets/svg/IcBack'; import IcHeaderLogoSmallBlack from '@/shared/assets/svg/IcHeaderLogoSmallBlack'; @@ -9,14 +10,14 @@ interface ReservationHeaderPropTypes { } const ReservationHeader = ({ step }: ReservationHeaderPropTypes) => { - const navigate = useNavigate(); + const router = useRouter(); const handleLogoClick = () => { - navigate(ROUTES_CONFIG.home.path); + router.push('/'); }; const handleBackClick = () => { - navigate(-1); + router.back(); }; return ( diff --git a/src/pages/reservation/components/ReservationHeader/reservationHeader.css.ts b/src/app/class/[id]/register/components/ReservationHeader/reservationHeader.css.ts similarity index 100% rename from src/pages/reservation/components/ReservationHeader/reservationHeader.css.ts rename to src/app/class/[id]/register/components/ReservationHeader/reservationHeader.css.ts diff --git a/src/pages/reservation/components/ReservationStep/ReservationStep.tsx b/src/app/class/[id]/register/components/ReservationStep/ReservationStep.tsx similarity index 86% rename from src/pages/reservation/components/ReservationStep/ReservationStep.tsx rename to src/app/class/[id]/register/components/ReservationStep/ReservationStep.tsx index cc894b504..130e0eafb 100644 --- a/src/pages/reservation/components/ReservationStep/ReservationStep.tsx +++ b/src/app/class/[id]/register/components/ReservationStep/ReservationStep.tsx @@ -1,11 +1,12 @@ +'use client'; + import type { AxiosError } from 'axios'; +import { useParams } from 'next/navigation'; import { useState } from 'react'; -import { useParams } from 'react-router-dom'; -import ErrorPage from '@/pages/error/ErrorPage'; -import { useGetReservation, usePostReservation } from '@/pages/reservation/apis/queries'; -import AgreeCheckBox from '@/pages/reservation/components/AgreeCheckBox/AgreeCheckBox'; -import ApplicantInfo from '@/pages/reservation/components/ApplicantInfo/ApplicantInfo'; -import ClassInfo from '@/pages/reservation/components/ClassInfo/ClassInfo'; +import { useGetReservation, usePostReservation } from '@/app/class/[id]/register/apis/queries'; +import AgreeCheckBox from '@/app/class/[id]/register/components/AgreeCheckBox/AgreeCheckBox'; +import ApplicantInfo from '@/app/class/[id]/register/components/ApplicantInfo/ApplicantInfo'; +import ClassInfo from '@/app/class/[id]/register/components/ClassInfo/ClassInfo'; import { reservationStyle, agreementBoxStyle, @@ -21,9 +22,11 @@ import { agreementWrapperStyle, noticeWrapperStyle, dividerWrapperStyle, -} from '@/pages/reservation/components/ReservationStep/reservationStep.css'; -import TopInfoContent from '@/pages/reservation/components/TopInfoContent/TopInfoContent'; -import { AGREEMENT_TERMS } from '@/pages/reservation/constants/index'; +} from '@/app/class/[id]/register/components/ReservationStep/reservationStep.css'; +import TopInfoContent from '@/app/class/[id]/register/components/TopInfoContent/TopInfoContent'; +import { AGREEMENT_TERMS } from '@/app/class/[id]/register/constant'; +import type { ClassReservationResponseTypes } from '@/app/class/[id]/register/types'; +import ErrorPage from '@/app/error/page'; import BlurBotton from '@/common/components/BlurButton/BlurButton'; import BoxButton from '@/common/components/BoxButton/BoxButton'; import Divider from '@/common/components/Divider/Divider'; @@ -33,7 +36,6 @@ import { notify } from '@/common/components/Toast/Toast'; import IcCheckcircleGray0524 from '@/shared/assets/svg/IcCheckcircleGray0524'; import IcCheckcircleMain0324 from '@/shared/assets/svg/IcCheckcircleMain0324'; import { vars } from '@/shared/styles/theme.css'; -import type { ClassReservationResponseTypes } from '../../types/api'; interface ReservationStepPropTypes { onNext: (detail: ClassReservationResponseTypes) => void; @@ -43,7 +45,8 @@ const ReservationStep = ({ onNext }: ReservationStepPropTypes) => { const [isAllChecked, setIsAllChecked] = useState(false); const [agreements, setAgreements] = useState(new Array(AGREEMENT_TERMS.length).fill(false)); - const { id } = useParams<{ id: string }>(); + const params = useParams<{ id: string }>(); + const id = params.id; const { data, isError, isLoading } = useGetReservation(Number(id)); const { mutate: postReservation, isPending } = usePostReservation(); diff --git a/src/pages/reservation/components/ReservationStep/reservationStep.css.ts b/src/app/class/[id]/register/components/ReservationStep/reservationStep.css.ts similarity index 100% rename from src/pages/reservation/components/ReservationStep/reservationStep.css.ts rename to src/app/class/[id]/register/components/ReservationStep/reservationStep.css.ts diff --git a/src/pages/reservation/components/SuccessStep/SuccessStep.tsx b/src/app/class/[id]/register/components/SuccessStep/SuccessStep.tsx similarity index 90% rename from src/pages/reservation/components/SuccessStep/SuccessStep.tsx rename to src/app/class/[id]/register/components/SuccessStep/SuccessStep.tsx index ed048e897..fed6866b8 100644 --- a/src/pages/reservation/components/SuccessStep/SuccessStep.tsx +++ b/src/app/class/[id]/register/components/SuccessStep/SuccessStep.tsx @@ -1,8 +1,10 @@ +'use client'; + import { flexCustomStyle, successButtonContainer, sectionStyle, -} from '@/pages/reservation/components/SuccessStep/successStep.css'; +} from '@/app/class/[id]/register/components/SuccessStep/successStep.css'; import BoxButton from '@/common/components/BoxButton/BoxButton'; import Completion from '@/shared/components/Completion/Completion'; diff --git a/src/pages/reservation/components/SuccessStep/successStep.css.ts b/src/app/class/[id]/register/components/SuccessStep/successStep.css.ts similarity index 100% rename from src/pages/reservation/components/SuccessStep/successStep.css.ts rename to src/app/class/[id]/register/components/SuccessStep/successStep.css.ts diff --git a/src/pages/reservation/components/TopInfoContent/TopInfoContent.tsx b/src/app/class/[id]/register/components/TopInfoContent/TopInfoContent.tsx similarity index 86% rename from src/pages/reservation/components/TopInfoContent/TopInfoContent.tsx rename to src/app/class/[id]/register/components/TopInfoContent/TopInfoContent.tsx index 2611ee11f..836ee31e1 100644 --- a/src/pages/reservation/components/TopInfoContent/TopInfoContent.tsx +++ b/src/app/class/[id]/register/components/TopInfoContent/TopInfoContent.tsx @@ -1,4 +1,6 @@ -import * as styles from '@/pages/reservation/components/TopInfoContent/topInfoContent.css'; +'use client'; + +import * as styles from '@/app/class/[id]/register/components/TopInfoContent/topInfoContent.css'; import Head from '@/common/components/Head/Head'; interface TopInfoContentPropTypes { diff --git a/src/pages/reservation/components/TopInfoContent/topInfoContent.css.ts b/src/app/class/[id]/register/components/TopInfoContent/topInfoContent.css.ts similarity index 100% rename from src/pages/reservation/components/TopInfoContent/topInfoContent.css.ts rename to src/app/class/[id]/register/components/TopInfoContent/topInfoContent.css.ts diff --git a/src/pages/reservation/constants/index.ts b/src/app/class/[id]/register/constant/index.ts similarity index 97% rename from src/pages/reservation/constants/index.ts rename to src/app/class/[id]/register/constant/index.ts index af235c0e9..928d1d29b 100644 --- a/src/pages/reservation/constants/index.ts +++ b/src/app/class/[id]/register/constant/index.ts @@ -1,19 +1,19 @@ -export const AGREEMENT_TERMS = [ - { - text: '서비스 이용약관 (필수)', - link: 'https://pastoral-can-e04.notion.site/d53c54ca35424312a49a371ba39ee1a2', - }, - { - text: '개인정보 수집 및 이용 동의서 (필수)', - link: 'https://pastoral-can-e04.notion.site/ed5a3a0e3cc74fce908030819a98dc89', - }, - - { - text: '개인정보 제3자 제공 동의서 (필수)', - link: 'https://pastoral-can-e04.notion.site/3-25427658a0c780d8a552d6b438eb959e', - }, - { - text: '취소 및 환불 정책 (필수)', - link: 'https://pastoral-can-e04.notion.site/6d12220085bd403b8a733cfee3e3c6d4', - }, -]; +export const AGREEMENT_TERMS = [ + { + text: '서비스 이용약관 (필수)', + link: 'https://pastoral-can-e04.notion.site/d53c54ca35424312a49a371ba39ee1a2', + }, + { + text: '개인정보 수집 및 이용 동의서 (필수)', + link: 'https://pastoral-can-e04.notion.site/ed5a3a0e3cc74fce908030819a98dc89', + }, + + { + text: '개인정보 제3자 제공 동의서 (필수)', + link: 'https://pastoral-can-e04.notion.site/3-25427658a0c780d8a552d6b438eb959e', + }, + { + text: '취소 및 환불 정책 (필수)', + link: 'https://pastoral-can-e04.notion.site/6d12220085bd403b8a733cfee3e3c6d4', + }, +]; diff --git a/src/app/class/[id]/register/page.tsx b/src/app/class/[id]/register/page.tsx new file mode 100644 index 000000000..68599b3b2 --- /dev/null +++ b/src/app/class/[id]/register/page.tsx @@ -0,0 +1,65 @@ +'use client'; + +import { useParams, useRouter, useSearchParams } from 'next/navigation'; +import { Suspense, useEffect, useState } from 'react'; +import ConfirmationStep from '@/app/class/[id]/register/components/ConfirmationStep/ConfirmationStep'; +import ReservationHeader from '@/app/class/[id]/register/components/ReservationHeader/ReservationHeader'; +import ReservationStep from '@/app/class/[id]/register/components/ReservationStep/ReservationStep'; +import SuccessStep from '@/app/class/[id]/register/components/SuccessStep/SuccessStep'; +import type { ClassReservationResponseTypes } from '@/app/class/[id]/register/types'; +import { useFunnel } from '@/common/hooks/useFunnel'; + +function ReservationContent() { + const router = useRouter(); + const params = useParams<{ id: string }>(); + const searchParams = useSearchParams(); + const id = params.id; + const { Funnel, Step, setStep } = useFunnel(3, '/'); + const [reservationDetail, setReservationDetail] = useState(null); + + const currentStep = searchParams?.get('step') || '1'; + + // reservationDetail 없이 step 2, 3에 직접 접근한 경우 step 1로 리다이렉트 + useEffect(() => { + if (!reservationDetail && currentStep !== '1') { + router.replace(`/class/${id}/register`); + } + }, [reservationDetail, currentStep, router, id]); + + // 리다이렉트 중에는 아무것도 렌더링하지 않음 + if (!reservationDetail && currentStep !== '1') { + return null; + } + + return ( + + + + { + setReservationDetail(detail); + setStep(1); + }} + /> + + + + + setStep(1)} {...reservationDetail!} /> + + + + + router.push('/my/classes')} /> + + + ); +} + +export default function Page() { + return ( + + + + ); +} diff --git a/src/pages/reservation/types/api.ts b/src/app/class/[id]/register/types/index.ts similarity index 100% rename from src/pages/reservation/types/api.ts rename to src/app/class/[id]/register/types/index.ts diff --git a/src/pages/class/types/api.ts b/src/app/class/[id]/types/api.ts similarity index 75% rename from src/pages/class/types/api.ts rename to src/app/class/[id]/types/api.ts index a5876737f..988de2bb5 100644 --- a/src/pages/class/types/api.ts +++ b/src/app/class/[id]/types/api.ts @@ -1,6 +1,6 @@ -import type { RecruitingStatus } from '@/pages/mypage/components/mypageReservation/types/recruitingStatus'; -import type { GenreTypes } from '@/pages/onboarding/types/genreTypes'; -import type { LevelTypes } from '@/pages/onboarding/types/levelTypes'; +import type { RecruitingStatus } from '@/app/my/(student)/classes/types/recruitingStatus'; +import type { GenreTypes } from '@/app/onboarding/types/genreTypes'; +import type { LevelTypes } from '@/app/onboarding/types/levelTypes'; export interface LessonDetailResponseTypes { imageUrl: string; diff --git a/src/pages/class/utils/dDay.ts b/src/app/class/[id]/utils/dDay.ts similarity index 100% rename from src/pages/class/utils/dDay.ts rename to src/app/class/[id]/utils/dDay.ts diff --git a/src/pages/dancer/apis/axios.ts b/src/app/dancer/[id]/apis/axios.ts similarity index 80% rename from src/pages/dancer/apis/axios.ts rename to src/app/dancer/[id]/apis/axios.ts index 344bafc18..6397dec7c 100644 --- a/src/pages/dancer/apis/axios.ts +++ b/src/app/dancer/[id]/apis/axios.ts @@ -1,4 +1,4 @@ -import type { DancerDetailResponseTypes } from '@/pages/dancer/types/api'; +import type { DancerDetailResponseTypes } from '@/app/dancer/[id]/types/api'; import { instance } from '@/shared/apis/instance'; import { API_URL } from '@/shared/constants/apiURL'; diff --git a/src/pages/dancer/apis/queries.ts b/src/app/dancer/[id]/apis/queries.ts similarity index 76% rename from src/pages/dancer/apis/queries.ts rename to src/app/dancer/[id]/apis/queries.ts index bf2adac37..203cfc9a5 100644 --- a/src/pages/dancer/apis/queries.ts +++ b/src/app/dancer/[id]/apis/queries.ts @@ -1,7 +1,7 @@ import { useQuery } from '@tanstack/react-query'; import type { AxiosError } from 'axios'; -import { getDancerDetail } from '@/pages/dancer/apis/axios'; -import type { DancerDetailResponseTypes } from '@/pages/dancer/types/api'; +import { getDancerDetail } from '@/app/dancer/[id]/apis/axios'; +import type { DancerDetailResponseTypes } from '@/app/dancer/[id]/types/api'; import { teacherKeys } from '@/shared/constants/queryKey'; export const useGetDancerDetail = (teacherId: number, options?: { enabled?: boolean }) => { diff --git a/src/pages/dancer/components/DancerInfo/DancerClassItem/DancerClassItem.tsx b/src/app/dancer/[id]/components/DancerInfo/DancerClassItem/DancerClassItem.tsx similarity index 90% rename from src/pages/dancer/components/DancerInfo/DancerClassItem/DancerClassItem.tsx rename to src/app/dancer/[id]/components/DancerInfo/DancerClassItem/DancerClassItem.tsx index 42523d335..b35c1dc4d 100644 --- a/src/pages/dancer/components/DancerInfo/DancerClassItem/DancerClassItem.tsx +++ b/src/app/dancer/[id]/components/DancerInfo/DancerClassItem/DancerClassItem.tsx @@ -1,11 +1,13 @@ +'use client'; + import { classImageStyle, deadlineTagStyle, lessonNameStyle, sectionStyle, tagWrapperStyle, -} from '@/pages/dancer/components/DancerInfo/DancerClassItem/dancerClassItem.css'; -import type { ClassItemPropTypes } from '@/pages/dancer/types/api'; +} from '@/app/dancer/[id]/components/DancerInfo/DancerClassItem/dancerClassItem.css'; +import type { ClassItemPropTypes } from '@/app/dancer/[id]/types/api'; import Head from '@/common/components/Head/Head'; import Tag from '@/common/components/Tag/Tag'; import { genreMapping, levelMapping } from '@/shared/constants/index'; diff --git a/src/pages/dancer/components/DancerInfo/DancerClassItem/dancerClassItem.css.ts b/src/app/dancer/[id]/components/DancerInfo/DancerClassItem/dancerClassItem.css.ts similarity index 100% rename from src/pages/dancer/components/DancerInfo/DancerClassItem/dancerClassItem.css.ts rename to src/app/dancer/[id]/components/DancerInfo/DancerClassItem/dancerClassItem.css.ts diff --git a/src/pages/dancer/components/DancerInfo/DancerInfo.tsx b/src/app/dancer/[id]/components/DancerInfo/DancerInfo.tsx similarity index 84% rename from src/pages/dancer/components/DancerInfo/DancerInfo.tsx rename to src/app/dancer/[id]/components/DancerInfo/DancerInfo.tsx index 227f5e048..2a1a397ff 100644 --- a/src/pages/dancer/components/DancerInfo/DancerInfo.tsx +++ b/src/app/dancer/[id]/components/DancerInfo/DancerInfo.tsx @@ -1,5 +1,7 @@ -import { useNavigate } from 'react-router-dom'; -import DancerClassItem from '@/pages/dancer/components/DancerInfo/DancerClassItem/DancerClassItem'; +'use client'; + +import { useRouter } from 'next/navigation'; +import DancerClassItem from '@/app/dancer/[id]/components/DancerInfo/DancerClassItem/DancerClassItem'; import { rowScrollStyle, classItemStyle, @@ -13,10 +15,9 @@ import { classSectionStyle, classTitleStyle, emptyClassMessageStyle, -} from '@/pages/dancer/components/DancerInfo/dancerInfo.css'; -import type { DancerDetailResponseTypes } from '@/pages/dancer/types/api'; -import { expandInstagramUrl, expandYouTubeUrl } from '@/pages/dancer/utils/url'; -import { ROUTES_CONFIG } from '@/routes/routesConfig'; +} from '@/app/dancer/[id]/components/DancerInfo/dancerInfo.css'; +import type { DancerDetailResponseTypes } from '@/app/dancer/[id]/types/api'; +import { expandInstagramUrl, expandYouTubeUrl } from '@/app/dancer/[id]/utils/url'; import Divider from '@/common/components/Divider/Divider'; import Head from '@/common/components/Head/Head'; import Text from '@/common/components/Text/Text'; @@ -26,11 +27,10 @@ import IcYoutube20 from '@/shared/assets/svg/IcYoutube20'; const DancerInfo = ({ dancerData }: { dancerData: DancerDetailResponseTypes }) => { const { instagram, youtube, detail, nickname, lessons } = dancerData; - const navigate = useNavigate(); + const router = useRouter(); const handleClassClick = (lessonId: number) => { - const path = ROUTES_CONFIG.class.path(lessonId.toString()); - navigate(path); + router.push(`/class/${lessonId}`); }; return ( diff --git a/src/pages/dancer/components/DancerInfo/dancerInfo.css.ts b/src/app/dancer/[id]/components/DancerInfo/dancerInfo.css.ts similarity index 100% rename from src/pages/dancer/components/DancerInfo/dancerInfo.css.ts rename to src/app/dancer/[id]/components/DancerInfo/dancerInfo.css.ts diff --git a/src/pages/dancer/components/TabWrapper/TabEducation/TabEducation.css.ts b/src/app/dancer/[id]/components/TabWrapper/TabEducation/TabEducation.css.ts similarity index 100% rename from src/pages/dancer/components/TabWrapper/TabEducation/TabEducation.css.ts rename to src/app/dancer/[id]/components/TabWrapper/TabEducation/TabEducation.css.ts diff --git a/src/pages/dancer/components/TabWrapper/TabEducation/TabEducation.tsx b/src/app/dancer/[id]/components/TabWrapper/TabEducation/TabEducation.tsx similarity index 83% rename from src/pages/dancer/components/TabWrapper/TabEducation/TabEducation.tsx rename to src/app/dancer/[id]/components/TabWrapper/TabEducation/TabEducation.tsx index 5cba6311c..6044a59c5 100644 --- a/src/pages/dancer/components/TabWrapper/TabEducation/TabEducation.tsx +++ b/src/app/dancer/[id]/components/TabWrapper/TabEducation/TabEducation.tsx @@ -1,9 +1,11 @@ +'use client'; + import { textStyle, sectionStyle, emptyMessageStyle, -} from '@/pages/dancer/components/TabWrapper/TabEducation/TabEducation.css'; -import type { DancerDetailResponseTypes } from '@/pages/dancer/types/api'; +} from '@/app/dancer/[id]/components/TabWrapper/TabEducation/TabEducation.css'; +import type { DancerDetailResponseTypes } from '@/app/dancer/[id]/types/api'; import Head from '@/common/components/Head/Head'; import Text from '@/common/components/Text/Text'; diff --git a/src/pages/dancer/components/TabWrapper/TabExperience/TabExperience.css.ts b/src/app/dancer/[id]/components/TabWrapper/TabExperience/TabExperience.css.ts similarity index 100% rename from src/pages/dancer/components/TabWrapper/TabExperience/TabExperience.css.ts rename to src/app/dancer/[id]/components/TabWrapper/TabExperience/TabExperience.css.ts diff --git a/src/pages/dancer/components/TabWrapper/TabExperience/TabExperience.tsx b/src/app/dancer/[id]/components/TabWrapper/TabExperience/TabExperience.tsx similarity index 82% rename from src/pages/dancer/components/TabWrapper/TabExperience/TabExperience.tsx rename to src/app/dancer/[id]/components/TabWrapper/TabExperience/TabExperience.tsx index d9f53cc71..b9767a31b 100644 --- a/src/pages/dancer/components/TabWrapper/TabExperience/TabExperience.tsx +++ b/src/app/dancer/[id]/components/TabWrapper/TabExperience/TabExperience.tsx @@ -1,9 +1,11 @@ +'use client'; + import { textStyle, sectionStyle, emptyMessageStyle, -} from '@/pages/dancer/components/TabWrapper/TabExperience/TabExperience.css'; -import type { DancerDetailResponseTypes } from '@/pages/dancer/types/api'; +} from '@/app/dancer/[id]/components/TabWrapper/TabExperience/TabExperience.css'; +import type { DancerDetailResponseTypes } from '@/app/dancer/[id]/types/api'; import Head from '@/common/components/Head/Head'; import Text from '@/common/components/Text/Text'; diff --git a/src/pages/dancer/components/TabWrapper/TabPrize/TabPrize.css.ts b/src/app/dancer/[id]/components/TabWrapper/TabPrize/TabPrize.css.ts similarity index 100% rename from src/pages/dancer/components/TabWrapper/TabPrize/TabPrize.css.ts rename to src/app/dancer/[id]/components/TabWrapper/TabPrize/TabPrize.css.ts diff --git a/src/pages/dancer/components/TabWrapper/TabPrize/TabPrize.tsx b/src/app/dancer/[id]/components/TabWrapper/TabPrize/TabPrize.tsx similarity index 74% rename from src/pages/dancer/components/TabWrapper/TabPrize/TabPrize.tsx rename to src/app/dancer/[id]/components/TabWrapper/TabPrize/TabPrize.tsx index 61bfb0454..a7eee905c 100644 --- a/src/pages/dancer/components/TabWrapper/TabPrize/TabPrize.tsx +++ b/src/app/dancer/[id]/components/TabWrapper/TabPrize/TabPrize.tsx @@ -1,5 +1,11 @@ -import { textStyle, sectionStyle, emptyMessageStyle } from '@/pages/dancer/components/TabWrapper/TabPrize/TabPrize.css'; -import type { DancerDetailResponseTypes } from '@/pages/dancer/types/api'; +'use client'; + +import { + textStyle, + sectionStyle, + emptyMessageStyle, +} from '@/app/dancer/[id]/components/TabWrapper/TabPrize/TabPrize.css'; +import type { DancerDetailResponseTypes } from '@/app/dancer/[id]/types/api'; import Head from '@/common/components/Head/Head'; import Text from '@/common/components/Text/Text'; diff --git a/src/pages/dancer/components/TabWrapper/TabVideo/TabVideo.tsx b/src/app/dancer/[id]/components/TabWrapper/TabVideo/TabVideo.tsx similarity index 87% rename from src/pages/dancer/components/TabWrapper/TabVideo/TabVideo.tsx rename to src/app/dancer/[id]/components/TabWrapper/TabVideo/TabVideo.tsx index dcf118117..1a05a4b52 100644 --- a/src/pages/dancer/components/TabWrapper/TabVideo/TabVideo.tsx +++ b/src/app/dancer/[id]/components/TabWrapper/TabVideo/TabVideo.tsx @@ -1,10 +1,12 @@ +'use client'; + import { iframeStyle, sectionStyle, emptyMessageStyle, videoWrapperStyle, -} from '@/pages/dancer/components/TabWrapper/TabVideo/tabVideo.css'; -import type { DancerDetailResponseTypes } from '@/pages/dancer/types/api'; +} from '@/app/dancer/[id]/components/TabWrapper/TabVideo/tabVideo.css'; +import type { DancerDetailResponseTypes } from '@/app/dancer/[id]/types/api'; import Head from '@/common/components/Head/Head'; import { getYoutubeEmbedUrl } from '@/shared/constants/regex'; diff --git a/src/pages/dancer/components/TabWrapper/TabVideo/tabVideo.css.ts b/src/app/dancer/[id]/components/TabWrapper/TabVideo/tabVideo.css.ts similarity index 100% rename from src/pages/dancer/components/TabWrapper/TabVideo/tabVideo.css.ts rename to src/app/dancer/[id]/components/TabWrapper/TabVideo/tabVideo.css.ts diff --git a/src/pages/dancer/components/TabWrapper/TabWrapper.tsx b/src/app/dancer/[id]/components/TabWrapper/TabWrapper.tsx similarity index 85% rename from src/pages/dancer/components/TabWrapper/TabWrapper.tsx rename to src/app/dancer/[id]/components/TabWrapper/TabWrapper.tsx index bf84ae8df..09d22f5c7 100644 --- a/src/pages/dancer/components/TabWrapper/TabWrapper.tsx +++ b/src/app/dancer/[id]/components/TabWrapper/TabWrapper.tsx @@ -1,6 +1,8 @@ +'use client'; + import { useState } from 'react'; -import { tabPanelStyle, tabListWrapperStyle } from '@/pages/dancer/components/TabWrapper/tabWrapper.css'; -import type { DancerDetailResponseTypes } from '@/pages/dancer/types/api'; +import { tabPanelStyle, tabListWrapperStyle } from '@/app/dancer/[id]/components/TabWrapper/tabWrapper.css'; +import type { DancerDetailResponseTypes } from '@/app/dancer/[id]/types/api'; import { TabButton, TabList, TabPanel, TabRoot } from '@/common/components/Tab'; import { DANCER_TABS } from '@/shared/constants'; diff --git a/src/pages/dancer/components/TabWrapper/tabWrapper.css.ts b/src/app/dancer/[id]/components/TabWrapper/tabWrapper.css.ts similarity index 100% rename from src/pages/dancer/components/TabWrapper/tabWrapper.css.ts rename to src/app/dancer/[id]/components/TabWrapper/tabWrapper.css.ts diff --git a/src/pages/dancer/dancer.css.ts b/src/app/dancer/[id]/index.css.ts similarity index 100% rename from src/pages/dancer/dancer.css.ts rename to src/app/dancer/[id]/index.css.ts diff --git a/src/pages/dancer/Dancer.tsx b/src/app/dancer/[id]/page.tsx similarity index 72% rename from src/pages/dancer/Dancer.tsx rename to src/app/dancer/[id]/page.tsx index a50b26f59..2c33f9dd4 100644 --- a/src/pages/dancer/Dancer.tsx +++ b/src/app/dancer/[id]/page.tsx @@ -1,16 +1,18 @@ -import { useParams } from 'react-router-dom'; -import { useGetDancerDetail } from '@/pages/dancer/apis/queries'; -import DancerInfo from '@/pages/dancer/components/DancerInfo/DancerInfo'; -import TabWrapper from '@/pages/dancer/components/TabWrapper/TabWrapper'; -import { genresWrapperStyle, gradientOverlayStyle, textWrapperStyle, topImgStyle } from '@/pages/dancer/dancer.css'; -import ErrorPage from '@/pages/error/ErrorPage'; +'use client'; + +import { use } from 'react'; +import { useGetDancerDetail } from '@/app/dancer/[id]/apis/queries'; +import DancerInfo from '@/app/dancer/[id]/components/DancerInfo/DancerInfo'; +import TabWrapper from '@/app/dancer/[id]/components/TabWrapper/TabWrapper'; +import { genresWrapperStyle, gradientOverlayStyle, textWrapperStyle, topImgStyle } from '@/app/dancer/[id]/index.css'; +import ErrorPage from '@/app/error/ErrorPage'; import Head from '@/common/components/Head/Head'; import Tag from '@/common/components/Tag/Tag'; import Text from '@/common/components/Text/Text'; import { genreMapping } from '@/shared/constants/index'; -const Dancer = () => { - const { id } = useParams<{ id: string }>(); +export default function Page({ params }: { params: Promise<{ id: string }> }) { + const { id } = use(params); const dancerId = Number(id); const isValidDancerId = Number.isInteger(dancerId) && dancerId > 0; @@ -47,8 +49,8 @@ const Dancer = () => {
    - {translatedGenres.map((genre, id) => ( - + {translatedGenres.map((genre, idx) => ( + {genre} @@ -65,6 +67,4 @@ const Dancer = () => { ); -}; - -export default Dancer; +} diff --git a/src/pages/dancer/types/api.ts b/src/app/dancer/[id]/types/api.ts similarity index 100% rename from src/pages/dancer/types/api.ts rename to src/app/dancer/[id]/types/api.ts diff --git a/src/pages/dancer/utils/url.ts b/src/app/dancer/[id]/utils/url.ts similarity index 100% rename from src/pages/dancer/utils/url.ts rename to src/app/dancer/[id]/utils/url.ts diff --git a/src/pages/error/ErrorPage.tsx b/src/app/error/ErrorPage.tsx similarity index 82% rename from src/pages/error/ErrorPage.tsx rename to src/app/error/ErrorPage.tsx index 6ff223ba0..213aa3ff6 100644 --- a/src/pages/error/ErrorPage.tsx +++ b/src/app/error/ErrorPage.tsx @@ -1,24 +1,25 @@ +'use client'; + +import { useRouter } from 'next/navigation'; import { lazy, Suspense } from 'react'; -import { useNavigate } from 'react-router-dom'; import { containerStyle, buttonContainerStyle, headerStyle, messageSectionStyle, errorIconStyle, -} from '@/pages/error/error.css'; -import { ROUTES_CONFIG } from '@/routes/routesConfig'; +} from '@/app/error/index.css'; import BoxButton from '@/common/components/BoxButton/BoxButton'; import Head from '@/common/components/Head/Head'; import Text from '@/common/components/Text/Text'; const IcError = lazy(() => import('@/shared/assets/svg/IcError')); -const ErrorPage = () => { - const navigate = useNavigate(); +export default function ErrorPage() { + const router = useRouter(); const handleHomeNavigation = () => { - navigate(ROUTES_CONFIG.home.path); + router.push('/'); window.location.reload(); }; @@ -43,6 +44,4 @@ const ErrorPage = () => {
    ); -}; - -export default ErrorPage; +} diff --git a/src/pages/error/error.css.ts b/src/app/error/index.css.ts similarity index 100% rename from src/pages/error/error.css.ts rename to src/app/error/index.css.ts diff --git a/src/app/error/page.tsx b/src/app/error/page.tsx new file mode 100644 index 000000000..a46b43ebf --- /dev/null +++ b/src/app/error/page.tsx @@ -0,0 +1,7 @@ +'use client'; + +import ErrorPage from '@/app/error/ErrorPage'; + +export default function Page() { + return ; +} diff --git a/src/pages/home/home.css.ts b/src/app/index.css.ts similarity index 100% rename from src/pages/home/home.css.ts rename to src/app/index.css.ts diff --git a/src/pages/instructor/classDetail/types/api.ts b/src/app/instructor/class-list/[id]/types/api.ts similarity index 64% rename from src/pages/instructor/classDetail/types/api.ts rename to src/app/instructor/class-list/[id]/types/api.ts index d4c0e76f5..58e916783 100644 --- a/src/pages/instructor/classDetail/types/api.ts +++ b/src/app/instructor/class-list/[id]/types/api.ts @@ -1,7 +1,9 @@ -import type { RecruitingStatus } from '@/pages/mypage/components/mypageReservation/types/recruitingStatus'; -import type { ReservationStatus } from '@/pages/mypage/components/mypageReservation/types/reservationStatus'; -import type { GenreTypes } from '@/pages/onboarding/types/genreTypes'; -import type { LevelTypes } from '@/pages/onboarding/types/levelTypes'; +import type { RecruitingStatus } from '@/app/my/(student)/classes/types/recruitingStatus'; +import type { ReservationStatus } from '@/app/my/(student)/classes/types/reservationStatus'; +import type { GenreTypes } from '@/app/onboarding/types/genreTypes'; +import type { LevelTypes } from '@/app/onboarding/types/levelTypes'; + +export type TabStatus = 'APPROVE' | 'CANCEL'; export interface Student { reservationId: number; diff --git a/src/app/layout.tsx b/src/app/layout.tsx new file mode 100644 index 000000000..9b16ce9e9 --- /dev/null +++ b/src/app/layout.tsx @@ -0,0 +1,54 @@ +'use client'; + +import { usePathname } from 'next/navigation'; +import Script from 'next/script'; +import Providers from '@/app/Providers'; +import Header from '@/common/components/Header/Header'; +import ModalProvider from '@/common/components/Modal/ModalProvider'; +import '@/shared/styles/index.css'; + +export default function RootLayout({ children }: { children: React.ReactNode }) { + const pathname = usePathname(); + + const isSearchPath = pathname === '/search'; + const isOnboardingPath = pathname === '/onboarding'; + const isReservationPath = pathname?.startsWith('/reservation/'); + const isWithdrawPath = pathname === '/my/withdraw'; + + const shouldShowHeader = !isSearchPath && !isOnboardingPath && !isReservationPath && !isWithdrawPath; + + return ( + + + + + + + +
    + + {shouldShowHeader &&
    } + {children} + + +