From 36b0e608df1cb35544f07f72c42d143e15283a5a Mon Sep 17 00:00:00 2001 From: damnthonyy Date: Sat, 14 Mar 2026 02:50:21 +0100 Subject: [PATCH 1/6] feat : create ui and dashboard v0 ( #5 ) --- eslint.config.mjs | 2 + package.json | 54 +- pnpm-lock.yaml | 2385 ++++++++++++++++- public/assets/logo.png | Bin 0 -> 135125 bytes sonar-project.properties | 1 + src/app/globals.css | 64 +- src/app/page.tsx | 10 +- src/components/dashboard/.gitkeep | 0 src/components/dashboard/camera-feed.tsx | 38 + src/components/dashboard/dashboard.tsx | 77 + src/components/dashboard/header.tsx | 53 + src/components/dashboard/manual-control.tsx | 122 + .../dashboard/metrics-and-alerts.tsx | 132 + src/components/dashboard/task-manager.tsx | 144 + src/components/ui/.gitkeep | 0 src/components/ui/accordion.tsx | 66 + src/components/ui/alert-dialog.tsx | 157 ++ src/components/ui/alert.tsx | 66 + src/components/ui/aspect-ratio.tsx | 11 + src/components/ui/avatar.tsx | 53 + src/components/ui/badge.tsx | 40 + src/components/ui/breadcrumb.tsx | 109 + src/components/ui/button.tsx | 54 + src/components/ui/calendar.tsx | 75 + src/components/ui/card.tsx | 82 + src/components/ui/carousel.tsx | 252 ++ src/components/ui/chart.tsx | 353 +++ src/components/ui/checkbox.tsx | 32 + src/components/ui/collapsible.tsx | 33 + src/components/ui/command.tsx | 177 ++ src/components/ui/context-menu.tsx | 252 ++ src/components/ui/dialog.tsx | 135 + src/components/ui/drawer.tsx | 132 + src/components/ui/dropdown-menu.tsx | 257 ++ src/components/ui/form.tsx | 168 ++ src/components/ui/hover-card.tsx | 44 + src/components/ui/input-otp.tsx | 77 + src/components/ui/input.tsx | 23 + src/components/ui/label.tsx | 24 + src/components/ui/menubar.tsx | 276 ++ src/components/ui/navigation-menu.tsx | 168 ++ src/components/ui/pagination.tsx | 127 + src/components/ui/popover.tsx | 48 + src/components/ui/progress.tsx | 31 + src/components/ui/radio-group.tsx | 45 + src/components/ui/resizable.tsx | 56 + src/components/ui/scroll-area.tsx | 58 + src/components/ui/select.tsx | 185 ++ src/components/ui/separator.tsx | 28 + src/components/ui/sheet.tsx | 139 + src/components/ui/sidebar.tsx | 724 +++++ src/components/ui/skeleton.tsx | 13 + src/components/ui/slider.tsx | 53 + src/components/ui/sonner.tsx | 25 + src/components/ui/switch.tsx | 27 + src/components/ui/table.tsx | 116 + src/components/ui/tabs.tsx | 53 + src/components/ui/textarea.tsx | 18 + src/components/ui/toggle-group.tsx | 73 + src/components/ui/toggle.tsx | 47 + src/components/ui/tooltip.tsx | 61 + src/components/ui/use-mobile.ts | 21 + src/lib/utils.ts | 7 + tsconfig.json | 2 +- 64 files changed, 7992 insertions(+), 163 deletions(-) create mode 100644 public/assets/logo.png delete mode 100644 src/components/dashboard/.gitkeep create mode 100644 src/components/dashboard/camera-feed.tsx create mode 100644 src/components/dashboard/dashboard.tsx create mode 100644 src/components/dashboard/header.tsx create mode 100644 src/components/dashboard/manual-control.tsx create mode 100644 src/components/dashboard/metrics-and-alerts.tsx create mode 100644 src/components/dashboard/task-manager.tsx delete mode 100644 src/components/ui/.gitkeep create mode 100644 src/components/ui/accordion.tsx create mode 100644 src/components/ui/alert-dialog.tsx create mode 100644 src/components/ui/alert.tsx create mode 100644 src/components/ui/aspect-ratio.tsx create mode 100644 src/components/ui/avatar.tsx create mode 100644 src/components/ui/badge.tsx create mode 100644 src/components/ui/breadcrumb.tsx create mode 100644 src/components/ui/button.tsx create mode 100644 src/components/ui/calendar.tsx create mode 100644 src/components/ui/card.tsx create mode 100644 src/components/ui/carousel.tsx create mode 100644 src/components/ui/chart.tsx create mode 100644 src/components/ui/checkbox.tsx create mode 100644 src/components/ui/collapsible.tsx create mode 100644 src/components/ui/command.tsx create mode 100644 src/components/ui/context-menu.tsx create mode 100644 src/components/ui/dialog.tsx create mode 100644 src/components/ui/drawer.tsx create mode 100644 src/components/ui/dropdown-menu.tsx create mode 100644 src/components/ui/form.tsx create mode 100644 src/components/ui/hover-card.tsx create mode 100644 src/components/ui/input-otp.tsx create mode 100644 src/components/ui/input.tsx create mode 100644 src/components/ui/label.tsx create mode 100644 src/components/ui/menubar.tsx create mode 100644 src/components/ui/navigation-menu.tsx create mode 100644 src/components/ui/pagination.tsx create mode 100644 src/components/ui/popover.tsx create mode 100644 src/components/ui/progress.tsx create mode 100644 src/components/ui/radio-group.tsx create mode 100644 src/components/ui/resizable.tsx create mode 100644 src/components/ui/scroll-area.tsx create mode 100644 src/components/ui/select.tsx create mode 100644 src/components/ui/separator.tsx create mode 100644 src/components/ui/sheet.tsx create mode 100644 src/components/ui/sidebar.tsx create mode 100644 src/components/ui/skeleton.tsx create mode 100644 src/components/ui/slider.tsx create mode 100644 src/components/ui/sonner.tsx create mode 100644 src/components/ui/switch.tsx create mode 100644 src/components/ui/table.tsx create mode 100644 src/components/ui/tabs.tsx create mode 100644 src/components/ui/textarea.tsx create mode 100644 src/components/ui/toggle-group.tsx create mode 100644 src/components/ui/toggle.tsx create mode 100644 src/components/ui/tooltip.tsx create mode 100644 src/components/ui/use-mobile.ts create mode 100644 src/lib/utils.ts diff --git a/eslint.config.mjs b/eslint.config.mjs index 626ca82..28539b3 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -12,6 +12,8 @@ const eslintConfig = defineConfig([ 'out/**', 'build/**', 'next-env.d.ts', + 'coverage/**', + 'Remote Robot Control Dashboard/**', ]), ]); diff --git a/package.json b/package.json index d8289d9..36a92e1 100644 --- a/package.json +++ b/package.json @@ -8,8 +8,8 @@ "dev": "next dev", "build": "next build", "start": "next start", - "lint": "next lint .", - "lint:fix": "next lint --fix .", + "lint": "eslint .", + "lint:fix": "eslint . --fix", "format": "prettier --write .", "format:check": "prettier --check .", "typecheck": "tsc --noEmit", @@ -22,9 +22,53 @@ "*.{js,jsx,ts,tsx}": "eslint --fix" }, "dependencies": { + "@hookform/resolvers": "^5.2.2", + "@radix-ui/react-accordion": "^1.2.12", + "@radix-ui/react-alert-dialog": "^1.1.15", + "@radix-ui/react-aspect-ratio": "^1.1.8", + "@radix-ui/react-avatar": "^1.1.11", + "@radix-ui/react-checkbox": "^1.3.3", + "@radix-ui/react-collapsible": "^1.1.12", + "@radix-ui/react-context-menu": "^2.2.16", + "@radix-ui/react-dialog": "^1.1.15", + "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-hover-card": "^1.1.15", + "@radix-ui/react-label": "^2.1.8", + "@radix-ui/react-menubar": "^1.1.16", + "@radix-ui/react-navigation-menu": "^1.2.14", + "@radix-ui/react-popover": "^1.1.15", + "@radix-ui/react-progress": "^1.1.8", + "@radix-ui/react-radio-group": "^1.3.8", + "@radix-ui/react-scroll-area": "^1.2.10", + "@radix-ui/react-select": "^2.2.6", + "@radix-ui/react-separator": "^1.1.8", + "@radix-ui/react-slider": "^1.3.6", + "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-switch": "^1.2.6", + "@radix-ui/react-tabs": "^1.1.13", + "@radix-ui/react-toggle": "^1.1.10", + "@radix-ui/react-toggle-group": "^1.1.11", + "@radix-ui/react-tooltip": "^1.2.8", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "cmdk": "^1.1.1", + "date-fns": "^4.1.0", + "embla-carousel-react": "^8.6.0", + "input-otp": "^1.4.2", + "lucide-react": "^0.577.0", + "motion": "^12.36.0", "next": "16.1.6", + "next-themes": "^0.4.6", "react": "19.2.3", - "react-dom": "19.2.3" + "react-day-picker": "^8.10.1", + "react-dom": "19.2.3", + "react-hook-form": "^7.71.2", + "react-resizable-panels": "^2.1.9", + "recharts": "^2.15.0", + "sonner": "^2.0.7", + "tailwind-merge": "^2.6.0", + "vaul": "^1.1.2", + "zod": "^4.3.6" }, "devDependencies": { "@tailwindcss/postcss": "^4", @@ -35,11 +79,11 @@ "eslint": "^9", "eslint-config-next": "16.1.6", "husky": "^9", + "jsdom": "^25", "lint-staged": "^15", "prettier": "^3", "tailwindcss": "^4", "typescript": "^5", - "vitest": "^2", - "jsdom": "^25" + "vitest": "^2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7d634f5..5a48c20 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,15 +8,147 @@ importers: .: dependencies: + '@hookform/resolvers': + specifier: ^5.2.2 + version: 5.2.2(react-hook-form@7.71.2(react@19.2.3)) + '@radix-ui/react-accordion': + specifier: ^1.2.12 + version: 1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-alert-dialog': + specifier: ^1.1.15 + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-aspect-ratio': + specifier: ^1.1.8 + version: 1.1.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-avatar': + specifier: ^1.1.11 + version: 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-checkbox': + specifier: ^1.3.3 + version: 1.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-collapsible': + specifier: ^1.1.12 + version: 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-context-menu': + specifier: ^2.2.16 + version: 2.2.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-dialog': + specifier: ^1.1.15 + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-dropdown-menu': + specifier: ^2.1.16 + version: 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-hover-card': + specifier: ^1.1.15 + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-label': + specifier: ^2.1.8 + version: 2.1.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-menubar': + specifier: ^1.1.16 + version: 1.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-navigation-menu': + specifier: ^1.2.14 + version: 1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-popover': + specifier: ^1.1.15 + version: 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-progress': + specifier: ^1.1.8 + version: 1.1.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-radio-group': + specifier: ^1.3.8 + version: 1.3.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-scroll-area': + specifier: ^1.2.10 + version: 1.2.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-select': + specifier: ^2.2.6 + version: 2.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-separator': + specifier: ^1.1.8 + version: 1.1.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slider': + specifier: ^1.3.6 + version: 1.3.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': + specifier: ^1.2.4 + version: 1.2.4(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-switch': + specifier: ^1.2.6 + version: 1.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-tabs': + specifier: ^1.1.13 + version: 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-toggle': + specifier: ^1.1.10 + version: 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-toggle-group': + specifier: ^1.1.11 + version: 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-tooltip': + specifier: ^1.2.8 + version: 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + class-variance-authority: + specifier: ^0.7.0 + version: 0.7.1 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + cmdk: + specifier: ^1.1.1 + version: 1.1.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + date-fns: + specifier: ^4.1.0 + version: 4.1.0 + embla-carousel-react: + specifier: ^8.6.0 + version: 8.6.0(react@19.2.3) + input-otp: + specifier: ^1.4.2 + version: 1.4.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + lucide-react: + specifier: ^0.577.0 + version: 0.577.0(react@19.2.3) + motion: + specifier: ^12.36.0 + version: 12.36.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) next: specifier: 16.1.6 version: 16.1.6(@babel/core@7.29.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next-themes: + specifier: ^0.4.6 + version: 0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react: specifier: 19.2.3 version: 19.2.3 + react-day-picker: + specifier: ^8.10.1 + version: 8.10.1(date-fns@4.1.0)(react@19.2.3) react-dom: specifier: 19.2.3 version: 19.2.3(react@19.2.3) + react-hook-form: + specifier: ^7.71.2 + version: 7.71.2(react@19.2.3) + react-resizable-panels: + specifier: ^2.1.9 + version: 2.1.9(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + recharts: + specifier: ^2.15.0 + version: 2.15.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + sonner: + specifier: ^2.0.7 + version: 2.0.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + tailwind-merge: + specifier: ^2.6.0 + version: 2.6.1 + vaul: + specifier: ^1.1.2 + version: 1.1.2(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + zod: + specifier: ^4.3.6 + version: 4.3.6 devDependencies: '@tailwindcss/postcss': specifier: ^4 @@ -129,6 +261,10 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/runtime@7.28.6': + resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==} + engines: {node: '>=6.9.0'} + '@babel/template@7.28.6': resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} @@ -357,6 +493,26 @@ packages: resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@floating-ui/core@1.7.5': + resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} + + '@floating-ui/dom@1.7.6': + resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} + + '@floating-ui/react-dom@2.1.8': + resolution: {integrity: sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.11': + resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} + + '@hookform/resolvers@5.2.2': + resolution: {integrity: sha512-A/IxlMLShx3KjV/HeTcTfaMxdwy690+L/ZADoeaTltLx+CVuzkeVIPuybK3jrRfw7YZnmdKsVVHAlEPIAEUNlA==} + peerDependencies: + react-hook-form: ^7.55.0 + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -611,142 +767,788 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@rollup/rollup-android-arm-eabi@4.59.0': - resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==} - cpu: [arm] - os: [android] - - '@rollup/rollup-android-arm64@4.59.0': - resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==} - cpu: [arm64] - os: [android] + '@radix-ui/number@1.1.1': + resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} - '@rollup/rollup-darwin-arm64@4.59.0': - resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==} - cpu: [arm64] - os: [darwin] + '@radix-ui/primitive@1.1.3': + resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} - '@rollup/rollup-darwin-x64@4.59.0': - resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==} - cpu: [x64] - os: [darwin] + '@radix-ui/react-accordion@1.2.12': + resolution: {integrity: sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-freebsd-arm64@4.59.0': - resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==} - cpu: [arm64] - os: [freebsd] + '@radix-ui/react-alert-dialog@1.1.15': + resolution: {integrity: sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-freebsd-x64@4.59.0': - resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==} - cpu: [x64] - os: [freebsd] + '@radix-ui/react-arrow@1.1.7': + resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.59.0': - resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} - cpu: [arm] - os: [linux] + '@radix-ui/react-aspect-ratio@1.1.8': + resolution: {integrity: sha512-5nZrJTF7gH+e0nZS7/QxFz6tJV4VimhQb1avEgtsJxvvIp5JilL+c58HICsKzPxghdwaDt48hEfPM1au4zGy+w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-linux-arm-musleabihf@4.59.0': - resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} - cpu: [arm] - os: [linux] + '@radix-ui/react-avatar@1.1.11': + resolution: {integrity: sha512-0Qk603AHGV28BOBO34p7IgD5m+V5Sg/YovfayABkoDDBM5d3NCx0Mp4gGrjzLGes1jV5eNOE1r3itqOR33VC6Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-linux-arm64-gnu@4.59.0': - resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} - cpu: [arm64] - os: [linux] + '@radix-ui/react-checkbox@1.3.3': + resolution: {integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-linux-arm64-musl@4.59.0': - resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} - cpu: [arm64] - os: [linux] + '@radix-ui/react-collapsible@1.1.12': + resolution: {integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-linux-loong64-gnu@4.59.0': - resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} - cpu: [loong64] - os: [linux] + '@radix-ui/react-collection@1.1.7': + resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-linux-loong64-musl@4.59.0': - resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} - cpu: [loong64] - os: [linux] + '@radix-ui/react-compose-refs@1.1.2': + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@rollup/rollup-linux-ppc64-gnu@4.59.0': - resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} - cpu: [ppc64] - os: [linux] + '@radix-ui/react-context-menu@2.2.16': + resolution: {integrity: sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-linux-ppc64-musl@4.59.0': - resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} - cpu: [ppc64] - os: [linux] + '@radix-ui/react-context@1.1.2': + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@rollup/rollup-linux-riscv64-gnu@4.59.0': - resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} - cpu: [riscv64] - os: [linux] + '@radix-ui/react-context@1.1.3': + resolution: {integrity: sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@rollup/rollup-linux-riscv64-musl@4.59.0': - resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} - cpu: [riscv64] - os: [linux] + '@radix-ui/react-dialog@1.1.15': + resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-linux-s390x-gnu@4.59.0': - resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} - cpu: [s390x] - os: [linux] + '@radix-ui/react-direction@1.1.1': + resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@rollup/rollup-linux-x64-gnu@4.59.0': - resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} - cpu: [x64] - os: [linux] + '@radix-ui/react-dismissable-layer@1.1.11': + resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-linux-x64-musl@4.59.0': - resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} - cpu: [x64] - os: [linux] + '@radix-ui/react-dropdown-menu@2.1.16': + resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-openbsd-x64@4.59.0': - resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} - cpu: [x64] - os: [openbsd] + '@radix-ui/react-focus-guards@1.1.3': + resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@rollup/rollup-openharmony-arm64@4.59.0': - resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==} - cpu: [arm64] - os: [openharmony] + '@radix-ui/react-focus-scope@1.1.7': + resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-win32-arm64-msvc@4.59.0': - resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==} - cpu: [arm64] - os: [win32] + '@radix-ui/react-hover-card@1.1.15': + resolution: {integrity: sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-win32-ia32-msvc@4.59.0': - resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==} - cpu: [ia32] - os: [win32] + '@radix-ui/react-id@1.1.1': + resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@rollup/rollup-win32-x64-gnu@4.59.0': - resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==} - cpu: [x64] - os: [win32] + '@radix-ui/react-label@2.1.8': + resolution: {integrity: sha512-FmXs37I6hSBVDlO4y764TNz1rLgKwjJMQ0EGte6F3Cb3f4bIuHB/iLa/8I9VKkmOy+gNHq8rql3j686ACVV21A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-win32-x64-msvc@4.59.0': - resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==} - cpu: [x64] - os: [win32] + '@radix-ui/react-menu@2.1.16': + resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rtsao/scc@1.1.0': - resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + '@radix-ui/react-menubar@1.1.16': + resolution: {integrity: sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@swc/helpers@0.5.15': - resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + '@radix-ui/react-navigation-menu@1.2.14': + resolution: {integrity: sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@tailwindcss/node@4.2.1': - resolution: {integrity: sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg==} + '@radix-ui/react-popover@1.1.15': + resolution: {integrity: sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@tailwindcss/oxide-android-arm64@4.2.1': - resolution: {integrity: sha512-eZ7G1Zm5EC8OOKaesIKuw77jw++QJ2lL9N+dDpdQiAB/c/B2wDh0QPFHbkBVrXnwNugvrbJFk1gK2SsVjwWReg==} + '@radix-ui/react-popper@1.2.8': + resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.9': + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.1.5': + resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.1.4': + resolution: {integrity: sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-progress@1.1.8': + resolution: {integrity: sha512-+gISHcSPUJ7ktBy9RnTqbdKW78bcGke3t6taawyZ71pio1JewwGSJizycs7rLhGTvMJYCQB1DBK4KQsxs7U8dA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-radio-group@1.3.8': + resolution: {integrity: sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.11': + resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-scroll-area@1.2.10': + resolution: {integrity: sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-select@2.2.6': + resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-separator@1.1.8': + resolution: {integrity: sha512-sDvqVY4itsKwwSMEe0jtKgfTh+72Sy3gPmQpjqcQneqQ4PFmr/1I0YA+2/puilhggCe2gJcx5EBAYFkWkdpa5g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slider@1.3.6': + resolution: {integrity: sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-slot@1.2.4': + resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-switch@1.2.6': + resolution: {integrity: sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-tabs@1.1.13': + resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-toggle-group@1.1.11': + resolution: {integrity: sha512-5umnS0T8JQzQT6HbPyO7Hh9dgd82NmS36DQr+X/YJ9ctFNCiiQd6IJAYYZ33LUwm8M+taCz5t2ui29fHZc4Y6Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-toggle@1.1.10': + resolution: {integrity: sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-tooltip@1.2.8': + resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.1': + resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.2.2': + resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-effect-event@0.0.2': + resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.1': + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-is-hydrated@0.1.0': + resolution: {integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.1': + resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-previous@1.1.1': + resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.1': + resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.1.1': + resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-visually-hidden@1.2.3': + resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.1.1': + resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + + '@rollup/rollup-android-arm-eabi@4.59.0': + resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.59.0': + resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.59.0': + resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.59.0': + resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.59.0': + resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.59.0': + resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.59.0': + resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.59.0': + resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.59.0': + resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.59.0': + resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loong64-gnu@4.59.0': + resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-loong64-musl@4.59.0': + resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.59.0': + resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-ppc64-musl@4.59.0': + resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.59.0': + resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.59.0': + resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.59.0': + resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.59.0': + resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.59.0': + resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-openbsd-x64@4.59.0': + resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.59.0': + resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.59.0': + resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.59.0': + resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.59.0': + resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.59.0': + resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==} + cpu: [x64] + os: [win32] + + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + + '@standard-schema/utils@0.3.0': + resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} + + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + + '@tailwindcss/node@4.2.1': + resolution: {integrity: sha512-jlx6sLk4EOwO6hHe1oCGm1Q4AN/s0rSrTTPBGPM0/RQ6Uylwq17FuU8IeJJKEjtc6K6O07zsvP+gDO6MMWo7pg==} + + '@tailwindcss/oxide-android-arm64@4.2.1': + resolution: {integrity: sha512-eZ7G1Zm5EC8OOKaesIKuw77jw++QJ2lL9N+dDpdQiAB/c/B2wDh0QPFHbkBVrXnwNugvrbJFk1gK2SsVjwWReg==} engines: {node: '>= 20'} cpu: [arm64] os: [android] @@ -833,6 +1635,33 @@ packages: '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} + '@types/d3-array@3.2.2': + resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} + + '@types/d3-color@3.1.3': + resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} + + '@types/d3-ease@3.0.2': + resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} + + '@types/d3-interpolate@3.0.4': + resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + + '@types/d3-path@3.1.1': + resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} + + '@types/d3-scale@4.0.9': + resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} + + '@types/d3-shape@3.1.8': + resolution: {integrity: sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==} + + '@types/d3-time@3.0.4': + resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} + + '@types/d3-timer@3.0.2': + resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} + '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -1085,6 +1914,10 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-hidden@1.2.6: + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + engines: {node: '>=10'} + aria-query@5.3.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} @@ -1217,6 +2050,9 @@ packages: resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==} engines: {node: '>= 16'} + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + cli-cursor@5.0.0: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} @@ -1228,6 +2064,16 @@ packages: client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + cmdk@1.1.1: + resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==} + peerDependencies: + react: ^18 || ^19 || ^19.0.0-rc + react-dom: ^18 || ^19 || ^19.0.0-rc + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -1263,6 +2109,50 @@ packages: csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + d3-array@3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} + + d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + + d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} + + d3-format@3.1.2: + resolution: {integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==} + engines: {node: '>=12'} + + d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + + d3-path@3.1.0: + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} + engines: {node: '>=12'} + + d3-scale@4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} + + d3-shape@3.2.0: + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} + engines: {node: '>=12'} + + d3-time-format@4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} + + d3-time@3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} + + d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -1282,6 +2172,9 @@ packages: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} + date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -1299,6 +2192,9 @@ packages: supports-color: optional: true + decimal.js-light@2.5.1: + resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==} + decimal.js@10.6.0: resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} @@ -1325,10 +2221,16 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} + dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -1339,6 +2241,19 @@ packages: electron-to-chromium@1.5.307: resolution: {integrity: sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg==} + embla-carousel-react@8.6.0: + resolution: {integrity: sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==} + peerDependencies: + react: ^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + + embla-carousel-reactive-utils@8.6.0: + resolution: {integrity: sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==} + peerDependencies: + embla-carousel: 8.6.0 + + embla-carousel@8.6.0: + resolution: {integrity: sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==} + emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} @@ -1531,6 +2446,9 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + eventemitter3@5.0.4: resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} @@ -1545,6 +2463,10 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-equals@5.4.0: + resolution: {integrity: sha512-jt2DW/aNFNwke7AUd+Z+e6pz39KO5rzdbbFCg2sGafS4mk13MI7Z8O5z9cADNn5lhGODIgLwug6TZO2ctf7kcw==} + engines: {node: '>=6.0.0'} + fast-glob@3.3.1: resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} @@ -1598,6 +2520,20 @@ packages: resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} engines: {node: '>= 6'} + framer-motion@12.36.0: + resolution: {integrity: sha512-4PqYHAT7gev0ke0wos+PyrcFxI0HScjm3asgU8nSYa8YzJFuwgIvdj3/s3ZaxLq0bUSboIn19A2WS/MHwLCvfw==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -1629,6 +2565,10 @@ packages: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -1753,10 +2693,20 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} + input-otp@1.4.2: + resolution: {integrity: sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} + internmap@2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} + is-array-buffer@3.0.5: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} @@ -2059,6 +3009,9 @@ packages: lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + lodash@4.17.23: + resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + log-update@6.1.0: resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} @@ -2076,6 +3029,11 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lucide-react@0.577.0: + resolution: {integrity: sha512-4LjoFv2eEPwYDPg/CUdBJQSDfPyzXCRrVW1X7jrx/trgxnxkHFjnVZINbzvzxjN70dxychOfg+FTYwBiS3pQ5A==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} @@ -2135,6 +3093,26 @@ packages: resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} + motion-dom@12.36.0: + resolution: {integrity: sha512-Ep1pq8P88rGJ75om8lTCA13zqd7ywPGwCqwuWwin6BKc0hMLkVfcS6qKlRqEo2+t0DwoUcgGJfXwaiFn4AOcQA==} + + motion-utils@12.36.0: + resolution: {integrity: sha512-eHWisygbiwVvf6PZ1vhaHCLamvkSbPIeAYxWUuL3a2PD/TROgE7FvfHWTIH4vMl798QLfMw15nRqIaRDXTlYRg==} + + motion@12.36.0: + resolution: {integrity: sha512-5BMQuktYUX8aEByKWYx5tR4X3G08H2OMgp46wTxZ4o7CDDstyy4A0fe9RLNMjZiwvntCWGDvs16sC87/emz4Yw==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -2151,6 +3129,12 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + next-themes@0.4.6: + resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==} + peerDependencies: + react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc + next@16.1.6: resolution: {integrity: sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw==} engines: {node: '>=20.9.0'} @@ -2325,18 +3309,91 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + react-day-picker@8.10.1: + resolution: {integrity: sha512-TMx7fNbhLk15eqcMt+7Z7S2KF7mfTId/XJDjKE8f+IUcFn0l08/kI4FiYTL/0yuOLmEcbR4Fwe3GJf/NiiMnPA==} + peerDependencies: + date-fns: ^2.28.0 || ^3.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom@19.2.3: resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} peerDependencies: react: ^19.2.3 + react-hook-form@7.71.2: + resolution: {integrity: sha512-1CHvcDYzuRUNOflt4MOq3ZM46AronNJtQ1S7tnX6YN4y72qhgiUItpacZUAQ0TyWYci3yz1X+rXaSxiuEm86PA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.7.2: + resolution: {integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-resizable-panels@2.1.9: + resolution: {integrity: sha512-z77+X08YDIrgAes4jl8xhnUu1LNIRp4+E7cv4xHmLOxxUPO/ML7PSrE813b90vj7xvQ1lcf7g2uA9GeMZonjhQ==} + peerDependencies: + react: ^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^16.14.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + + react-smooth@4.0.4: + resolution: {integrity: sha512-gnGKTpYwqL0Iii09gHobNolvX4Kiq4PKx6eWBCYYix+8cdw+cGo3do906l1NBPKkSWx1DghC1dlWG9L2uGd61Q==} + peerDependencies: + 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 + + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-transition-group@4.4.5: + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + react@19.2.3: resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} engines: {node: '>=0.10.0'} + recharts-scale@0.4.5: + resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==} + + recharts@2.15.4: + resolution: {integrity: sha512-UT/q6fwS3c1dHbXv2uFgYJ9BMFHu3fwnd7AYZaEQhXuYQ4hgsxLvsUXzGdKeZrW5xopzDCvuA2N41WJ88I7zIw==} + engines: {node: '>=14'} + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + reflect.getprototypeof@1.0.10: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} @@ -2473,6 +3530,12 @@ packages: resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} engines: {node: '>=18'} + sonner@2.0.7: + resolution: {integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -2573,6 +3636,9 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + tailwind-merge@2.6.1: + resolution: {integrity: sha512-Oo6tHdpZsGpkKG88HJ8RR1rg/RdnEkQEfMoEk2x1XRI3F1AxeU+ijRXpiVUF4UbLfcxxRGw6TbUINKYdWVsQTQ==} + tailwindcss@4.2.1: resolution: {integrity: sha512-/tBrSQ36vCleJkAOsy9kbNTgaxvGbyOamC30PRePTQe/o1MFwEKHQk4Cn7BNGaPtjp+PuUrByJehM1hgxfq4sw==} @@ -2584,6 +3650,9 @@ packages: resolution: {integrity: sha512-u9E6A+ZDYdp7a4WnarkXPZOx8Ilz46+kby6p1yZ8zsGTz9gYa6FIS7lj2oezzNKmtdyyJNNmmXDppga5GB7kSw==} engines: {node: '>=18'} + 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==} @@ -2688,6 +3757,40 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: 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 + + vaul@1.1.2: + resolution: {integrity: sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0.0 || ^19.0.0-rc + + victory-vendor@36.9.2: + resolution: {integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==} + vite-node@2.1.9: resolution: {integrity: sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -2946,6 +4049,8 @@ snapshots: dependencies: '@babel/types': 7.29.0 + '@babel/runtime@7.28.6': {} + '@babel/template@7.28.6': dependencies: '@babel/code-frame': 7.29.0 @@ -3115,12 +4220,34 @@ snapshots: '@eslint/js@9.39.4': {} - '@eslint/object-schema@2.1.7': {} + '@eslint/object-schema@2.1.7': {} + + '@eslint/plugin-kit@0.4.1': + dependencies: + '@eslint/core': 0.17.0 + levn: 0.4.1 + + '@floating-ui/core@1.7.5': + dependencies: + '@floating-ui/utils': 0.2.11 + + '@floating-ui/dom@1.7.6': + dependencies: + '@floating-ui/core': 1.7.5 + '@floating-ui/utils': 0.2.11 + + '@floating-ui/react-dom@2.1.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@floating-ui/dom': 1.7.6 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + + '@floating-ui/utils@0.2.11': {} - '@eslint/plugin-kit@0.4.1': + '@hookform/resolvers@5.2.2(react-hook-form@7.71.2(react@19.2.3))': dependencies: - '@eslint/core': 0.17.0 - levn: 0.4.1 + '@standard-schema/utils': 0.3.0 + react-hook-form: 7.71.2(react@19.2.3) '@humanfs/core@0.19.1': {} @@ -3260,59 +4387,734 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@napi-rs/wasm-runtime@0.2.12': + '@napi-rs/wasm-runtime@0.2.12': + dependencies: + '@emnapi/core': 1.8.1 + '@emnapi/runtime': 1.8.1 + '@tybys/wasm-util': 0.10.1 + optional: true + + '@next/env@16.1.6': {} + + '@next/eslint-plugin-next@16.1.6': + dependencies: + fast-glob: 3.3.1 + + '@next/swc-darwin-arm64@16.1.6': + optional: true + + '@next/swc-darwin-x64@16.1.6': + optional: true + + '@next/swc-linux-arm64-gnu@16.1.6': + optional: true + + '@next/swc-linux-arm64-musl@16.1.6': + optional: true + + '@next/swc-linux-x64-gnu@16.1.6': + optional: true + + '@next/swc-linux-x64-musl@16.1.6': + optional: true + + '@next/swc-win32-arm64-msvc@16.1.6': + optional: true + + '@next/swc-win32-x64-msvc@16.1.6': + optional: true + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + + '@nolyfill/is-core-module@1.0.39': {} + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@radix-ui/number@1.1.1': {} + + '@radix-ui/primitive@1.1.3': {} + + '@radix-ui/react-accordion@1.2.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-aspect-ratio@1.1.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-avatar@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-context': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-checkbox@1.3.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.14)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-context-menu@2.2.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-context@1.1.2(@types/react@19.2.14)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-context@1.1.3(@types/react@19.2.14)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-dialog@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + aria-hidden: 1.2.6 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-direction@1.1.1(@types/react@19.2.14)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.14)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-hover-card@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-id@1.1.1(@types/react@19.2.14)(react@19.2.3)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-label@2.1.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-menu@2.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.3) + aria-hidden: 1.2.6 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-menubar@1.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-menu': 2.1.16(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-navigation-menu@1.2.14(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + aria-hidden: 1.2.6 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@floating-ui/react-dom': 2.1.8(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/rect': 1.1.1 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-primitive@2.1.4(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-slot': 1.2.4(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-progress@1.1.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-context': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-radio-group@1.3.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-roving-focus@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-select@2.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + aria-hidden: 1.2.6 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-separator@1.1.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-slider@1.3.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-slot@1.2.3(@types/react@19.2.14)(react@19.2.3)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 + + '@radix-ui/react-slot@1.2.4(@types/react@19.2.14)(react@19.2.3)': dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 - '@tybys/wasm-util': 0.10.1 - optional: true - - '@next/env@16.1.6': {} + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 - '@next/eslint-plugin-next@16.1.6': + '@radix-ui/react-switch@1.2.6(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - fast-glob: 3.3.1 + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-tabs@1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@next/swc-darwin-arm64@16.1.6': - optional: true + '@radix-ui/react-toggle-group@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-roving-focus': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-toggle': 1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@next/swc-darwin-x64@16.1.6': - optional: true + '@radix-ui/react-toggle@1.1.10(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-tooltip@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@next/swc-linux-arm64-gnu@16.1.6': - optional: true + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.14)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 - '@next/swc-linux-arm64-musl@16.1.6': - optional: true + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.14)(react@19.2.3)': + dependencies: + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 - '@next/swc-linux-x64-gnu@16.1.6': - optional: true + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.14)(react@19.2.3)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 - '@next/swc-linux-x64-musl@16.1.6': - optional: true + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.14)(react@19.2.3)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 - '@next/swc-win32-arm64-msvc@16.1.6': - optional: true + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.2.14)(react@19.2.3)': + dependencies: + react: 19.2.3 + use-sync-external-store: 1.6.0(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 - '@next/swc-win32-x64-msvc@16.1.6': - optional: true + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.14)(react@19.2.3)': + dependencies: + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 - '@nodelib/fs.scandir@2.1.5': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.2.14)(react@19.2.3)': dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 - '@nodelib/fs.stat@2.0.5': {} + '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.14)(react@19.2.3)': + dependencies: + '@radix-ui/rect': 1.1.1 + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 - '@nodelib/fs.walk@1.2.8': + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.14)(react@19.2.3)': dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.20.1 + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) + react: 19.2.3 + optionalDependencies: + '@types/react': 19.2.14 - '@nolyfill/is-core-module@1.0.39': {} + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': + dependencies: + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@pkgjs/parseargs@0.11.0': - optional: true + '@radix-ui/rect@1.1.1': {} '@rollup/rollup-android-arm-eabi@4.59.0': optional: true @@ -3391,6 +5193,8 @@ snapshots: '@rtsao/scc@1.1.0': {} + '@standard-schema/utils@0.3.0': {} + '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 @@ -3469,6 +5273,30 @@ snapshots: tslib: 2.8.1 optional: true + '@types/d3-array@3.2.2': {} + + '@types/d3-color@3.1.3': {} + + '@types/d3-ease@3.0.2': {} + + '@types/d3-interpolate@3.0.4': + dependencies: + '@types/d3-color': 3.1.3 + + '@types/d3-path@3.1.1': {} + + '@types/d3-scale@4.0.9': + dependencies: + '@types/d3-time': 3.0.4 + + '@types/d3-shape@3.1.8': + dependencies: + '@types/d3-path': 3.1.1 + + '@types/d3-time@3.0.4': {} + + '@types/d3-timer@3.0.2': {} + '@types/estree@1.0.8': {} '@types/json-schema@7.0.15': {} @@ -3726,6 +5554,10 @@ snapshots: argparse@2.0.1: {} + aria-hidden@1.2.6: + dependencies: + tslib: 2.8.1 + aria-query@5.3.2: {} array-buffer-byte-length@1.0.2: @@ -3882,6 +5714,10 @@ snapshots: check-error@2.1.3: {} + class-variance-authority@0.7.1: + dependencies: + clsx: 2.1.1 + cli-cursor@5.0.0: dependencies: restore-cursor: 5.1.0 @@ -3893,6 +5729,20 @@ snapshots: client-only@0.0.1: {} + clsx@2.1.1: {} + + cmdk@1.1.1(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.4(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -3924,6 +5774,44 @@ snapshots: csstype@3.2.3: {} + d3-array@3.2.4: + dependencies: + internmap: 2.0.3 + + d3-color@3.1.0: {} + + d3-ease@3.0.1: {} + + d3-format@3.1.2: {} + + d3-interpolate@3.0.1: + dependencies: + d3-color: 3.1.0 + + d3-path@3.1.0: {} + + d3-scale@4.0.2: + dependencies: + d3-array: 3.2.4 + d3-format: 3.1.2 + d3-interpolate: 3.0.1 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + + d3-shape@3.2.0: + dependencies: + d3-path: 3.1.0 + + d3-time-format@4.1.0: + dependencies: + d3-time: 3.1.0 + + d3-time@3.1.0: + dependencies: + d3-array: 3.2.4 + + d3-timer@3.0.1: {} + damerau-levenshtein@1.0.8: {} data-urls@5.0.0: @@ -3949,6 +5837,8 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.2 + date-fns@4.1.0: {} + debug@3.2.7: dependencies: ms: 2.1.3 @@ -3957,6 +5847,8 @@ snapshots: dependencies: ms: 2.1.3 + decimal.js-light@2.5.1: {} + decimal.js@10.6.0: {} deep-eql@5.0.2: {} @@ -3979,10 +5871,17 @@ snapshots: detect-libc@2.1.2: {} + detect-node-es@1.1.0: {} + doctrine@2.1.0: dependencies: esutils: 2.0.3 + dom-helpers@5.2.1: + dependencies: + '@babel/runtime': 7.28.6 + csstype: 3.2.3 + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -3993,6 +5892,18 @@ snapshots: electron-to-chromium@1.5.307: {} + embla-carousel-react@8.6.0(react@19.2.3): + dependencies: + embla-carousel: 8.6.0 + embla-carousel-reactive-utils: 8.6.0(embla-carousel@8.6.0) + react: 19.2.3 + + embla-carousel-reactive-utils@8.6.0(embla-carousel@8.6.0): + dependencies: + embla-carousel: 8.6.0 + + embla-carousel@8.6.0: {} + emoji-regex@10.6.0: {} emoji-regex@8.0.0: {} @@ -4350,6 +6261,8 @@ snapshots: esutils@2.0.3: {} + eventemitter3@4.0.7: {} + eventemitter3@5.0.4: {} execa@8.0.1: @@ -4368,6 +6281,8 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-equals@5.4.0: {} + fast-glob@3.3.1: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -4425,6 +6340,15 @@ snapshots: hasown: 2.0.2 mime-types: 2.1.35 + framer-motion@12.36.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + motion-dom: 12.36.0 + motion-utils: 12.36.0 + tslib: 2.8.1 + optionalDependencies: + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + fsevents@2.3.3: optional: true @@ -4460,6 +6384,8 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 + get-nonce@1.0.1: {} + get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 @@ -4574,12 +6500,19 @@ snapshots: imurmurhash@0.1.4: {} + input-otp@1.4.2(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + internal-slot@1.1.0: dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.1.0 + internmap@2.0.3: {} + is-array-buffer@3.0.5: dependencies: call-bind: 1.0.8 @@ -4897,6 +6830,8 @@ snapshots: lodash.merge@4.6.2: {} + lodash@4.17.23: {} + log-update@6.1.0: dependencies: ansi-escapes: 7.3.0 @@ -4917,6 +6852,10 @@ snapshots: dependencies: yallist: 3.1.1 + lucide-react@0.577.0(react@19.2.3): + dependencies: + react: 19.2.3 + magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -4968,6 +6907,20 @@ snapshots: minipass@7.1.3: {} + motion-dom@12.36.0: + dependencies: + motion-utils: 12.36.0 + + motion-utils@12.36.0: {} + + motion@12.36.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + framer-motion: 12.36.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + tslib: 2.8.1 + optionalDependencies: + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + ms@2.1.3: {} nanoid@3.3.11: {} @@ -4976,6 +6929,11 @@ snapshots: natural-compare@1.4.0: {} + next-themes@0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + next@16.1.6(@babel/core@7.29.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: '@next/env': 16.1.6 @@ -5151,15 +7109,92 @@ snapshots: queue-microtask@1.2.3: {} + react-day-picker@8.10.1(date-fns@4.1.0)(react@19.2.3): + dependencies: + date-fns: 4.1.0 + react: 19.2.3 + react-dom@19.2.3(react@19.2.3): dependencies: react: 19.2.3 scheduler: 0.27.0 + react-hook-form@7.71.2(react@19.2.3): + dependencies: + react: 19.2.3 + react-is@16.13.1: {} + react-is@18.3.1: {} + + react-remove-scroll-bar@2.3.8(@types/react@19.2.14)(react@19.2.3): + dependencies: + react: 19.2.3 + react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.3) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.14 + + react-remove-scroll@2.7.2(@types/react@19.2.14)(react@19.2.3): + dependencies: + react: 19.2.3 + react-remove-scroll-bar: 2.3.8(@types/react@19.2.14)(react@19.2.3) + react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.3) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@19.2.14)(react@19.2.3) + use-sidecar: 1.1.3(@types/react@19.2.14)(react@19.2.3) + optionalDependencies: + '@types/react': 19.2.14 + + react-resizable-panels@2.1.9(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + + react-smooth@4.0.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + fast-equals: 5.4.0 + prop-types: 15.8.1 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-transition-group: 4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + + react-style-singleton@2.2.3(@types/react@19.2.14)(react@19.2.3): + dependencies: + get-nonce: 1.0.1 + react: 19.2.3 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.14 + + react-transition-group@4.4.5(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + '@babel/runtime': 7.28.6 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react@19.2.3: {} + recharts-scale@0.4.5: + dependencies: + decimal.js-light: 2.5.1 + + recharts@2.15.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + clsx: 2.1.1 + eventemitter3: 4.0.7 + lodash: 4.17.23 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + react-is: 18.3.1 + react-smooth: 4.0.4(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + recharts-scale: 0.4.5 + tiny-invariant: 1.3.3 + victory-vendor: 36.9.2 + reflect.getprototypeof@1.0.10: dependencies: call-bind: 1.0.8 @@ -5380,6 +7415,11 @@ snapshots: ansi-styles: 6.2.3 is-fullwidth-code-point: 5.1.0 + sonner@2.0.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + source-map-js@1.2.1: {} stable-hash@0.0.5: {} @@ -5492,6 +7532,8 @@ snapshots: symbol-tree@3.2.4: {} + tailwind-merge@2.6.1: {} + tailwindcss@4.2.1: {} tapable@2.3.0: {} @@ -5502,6 +7544,8 @@ snapshots: glob: 10.5.0 minimatch: 10.2.4 + tiny-invariant@1.3.3: {} + tinybench@2.9.0: {} tinyexec@0.3.2: {} @@ -5641,6 +7685,51 @@ snapshots: dependencies: punycode: 2.3.1 + use-callback-ref@1.3.3(@types/react@19.2.14)(react@19.2.3): + dependencies: + react: 19.2.3 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.14 + + use-sidecar@1.1.3(@types/react@19.2.14)(react@19.2.3): + dependencies: + detect-node-es: 1.1.0 + react: 19.2.3 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.2.14 + + use-sync-external-store@1.6.0(react@19.2.3): + dependencies: + react: 19.2.3 + + vaul@1.1.2(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + '@radix-ui/react-dialog': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + + victory-vendor@36.9.2: + dependencies: + '@types/d3-array': 3.2.2 + '@types/d3-ease': 3.0.2 + '@types/d3-interpolate': 3.0.4 + '@types/d3-scale': 4.0.9 + '@types/d3-shape': 3.1.8 + '@types/d3-time': 3.0.4 + '@types/d3-timer': 3.0.2 + d3-array: 3.2.4 + d3-ease: 3.0.1 + d3-interpolate: 3.0.1 + d3-scale: 4.0.2 + d3-shape: 3.2.0 + d3-time: 3.1.0 + d3-timer: 3.0.1 + vite-node@2.1.9(@types/node@20.19.37)(lightningcss@1.31.1): dependencies: cac: 6.7.14 diff --git a/public/assets/logo.png b/public/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..abab4bf590daaa895bde99cc1758120d3412a508 GIT binary patch literal 135125 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 aKj<22o)eO$?;yc1bQjNSC}Yo=J^Vi}7F(nM literal 0 HcmV?d00001 diff --git a/sonar-project.properties b/sonar-project.properties index be7ba9d..298bcad 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -9,3 +9,4 @@ sonar.coverage.exclusions=**/*.test.ts,**/*.test.tsx,src/test/** # Coverage report sonar.javascript.lcov.reportPaths=coverage/lcov.info + diff --git a/src/app/globals.css b/src/app/globals.css index 37d72f8..48d0a7b 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -1,15 +1,75 @@ @import 'tailwindcss'; :root { - --background: #ffffff; - --foreground: #171717; + --font-size: 16px; + --background: #f8fafc; + --foreground: #0f172a; + /* Card / surfaces */ + --card: #ffffff; + --card-foreground: #0f172a; + --popover: #ffffff; + --popover-foreground: #0f172a; + /* Brand */ + --primary: #2563eb; + --primary-foreground: #ffffff; + --secondary: #e2e8f0; + --secondary-foreground: #1e293b; + --muted: #f1f5f9; + --muted-foreground: #64748b; + --accent: #f1f5f9; + --accent-foreground: #0f172a; + /* Status */ + --destructive: #ef4444; + --destructive-foreground: #ffffff; + --success: #22c55e; + --success-foreground: #ffffff; + --warning: #eab308; + --warning-foreground: #ffffff; + --border: #e2e8f0; + --input: #e2e8f0; + --input-background: #f8fafc; + --switch-background: #cbd5e1; + --ring: #2563eb; + --radius: 0.75rem; + /* Dashboard design tokens (Figma RoboCoop) */ + --color-border: #e4e4e7; + --color-muted: #71717b; + --color-muted-label: #64748b; + --color-foreground-dark: #18181b; + --color-foreground-slate: #0f172a; + --color-surface: #f8fafc; + --color-surface-muted: #f4f4f5; + --color-primary: #155dfc; + --color-primary-logo: #2563eb; + --color-danger: #fb2c36; + --color-success: #00c950; + --color-warning: #f0b100; + --shadow-card: 0px 1px 3px 0px rgba(0,0,0,0.1), 0px 1px 2px 0px rgba(0,0,0,0.1); + --chart-1: #2563eb; + --chart-2: #22c55e; + --chart-3: #eab308; + --chart-4: #ef4444; + --chart-5: #8b5cf6; } @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); + --color-card: var(--card); + --color-card-foreground: var(--card-foreground); + --color-primary: var(--primary); + --color-border: var(--border); + --color-muted: var(--muted); + --color-muted-foreground: var(--muted-foreground); + --color-destructive: var(--destructive); + --color-success: var(--success); + --color-warning: var(--warning); --font-sans: var(--font-geist-sans); --font-mono: var(--font-geist-mono); + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); } @media (prefers-color-scheme: dark) { diff --git a/src/app/page.tsx b/src/app/page.tsx index f934e65..556808f 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,9 +1,5 @@ +import { Dashboard } from '@/components/dashboard/dashboard'; + export default function Home() { - return ( -
-
-

This is a test

-
-
- ); + return ; } diff --git a/src/components/dashboard/.gitkeep b/src/components/dashboard/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/src/components/dashboard/camera-feed.tsx b/src/components/dashboard/camera-feed.tsx new file mode 100644 index 0000000..488ccf4 --- /dev/null +++ b/src/components/dashboard/camera-feed.tsx @@ -0,0 +1,38 @@ +'use client'; + +import React from 'react'; +import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; +import { Badge } from '@/components/ui/badge'; + +interface CameraFeedProps { + isAutonomous: boolean; +} + +export function CameraFeed({ isAutonomous }: CameraFeedProps) { + return ( + + + + Caméra Embarquée + + {isAutonomous ? 'Monitoring' : 'Live Feed'} + + + + +
+
+
+ REC +
+ {/* Crosshair overlay */} +
+
+
+
+

Flux vidéo simulé

+
+ + + ); +} diff --git a/src/components/dashboard/dashboard.tsx b/src/components/dashboard/dashboard.tsx new file mode 100644 index 0000000..68bb9cb --- /dev/null +++ b/src/components/dashboard/dashboard.tsx @@ -0,0 +1,77 @@ +'use client'; + +import React, { useState } from 'react'; +import { Toaster, toast } from 'sonner'; +import { Header } from '@/components/dashboard/header'; +import { CameraFeed } from '@/components/dashboard/camera-feed'; +import { ManualControl } from '@/components/dashboard/manual-control'; +import { TaskManager } from '@/components/dashboard/task-manager'; +import { MetricsAndAlerts } from '@/components/dashboard/metrics-and-alerts'; + +const vitalsData = [ + { time: '10:00', heartRate: 72, battery: 95 }, + { time: '10:30', heartRate: 75, battery: 90 }, + { time: '11:00', heartRate: 80, battery: 85 }, + { time: '11:30', heartRate: 76, battery: 78 }, + { time: '12:00', heartRate: 74, battery: 72 }, + { time: '12:30', heartRate: 79, battery: 65 }, + { time: '13:00', heartRate: 75, battery: 60 }, +]; + +export function Dashboard() { + const [isAutonomous, setIsAutonomous] = useState(true); + const [speed, setSpeed] = useState([50]); + const [activeTask, setActiveTask] = useState(null); + + const handleStartTask = (taskName: string) => { + setActiveTask(taskName); + toast.success(`Tâche démarrée : ${taskName}`); + }; + + const handleStopTask = () => { + setActiveTask(null); + toast.error('Tâche interrompue.'); + }; + + const handleEmergencyStop = () => { + setIsAutonomous(false); + setActiveTask(null); + toast.error("ARRÊT D'URGENCE ACTIVÉ ! Passage en mode manuel.", { + style: { backgroundColor: '#ef4444', color: 'white', border: 'none' }, + }); + }; + + return ( +
+ + +
+ +
+
+ + +
+ +
+ +
+ +
+ +
+
+
+ ); +} diff --git a/src/components/dashboard/header.tsx b/src/components/dashboard/header.tsx new file mode 100644 index 0000000..5c08715 --- /dev/null +++ b/src/components/dashboard/header.tsx @@ -0,0 +1,53 @@ +'use client'; + +import React from 'react'; +import Image from 'next/image'; +import { Battery, Wifi } from 'lucide-react'; +import { Badge } from '@/components/ui/badge'; +import logo from '../../../public/assets/logo.png'; +interface HeaderProps { + isAutonomous: boolean; +} + +export function Header({ isAutonomous }: Readonly) { + return ( +
+
+
+ Robocoop +
+
+

+ Robocoop 3000 +

+

Dashboard de Pilotage

+
+
+ +
+
+ + + Connecté (Ping: 12ms) + +
+
+ + 60% +
+ + {isAutonomous ? 'Autonome' : 'Manuel'} + +
+
+ ); +} diff --git a/src/components/dashboard/manual-control.tsx b/src/components/dashboard/manual-control.tsx new file mode 100644 index 0000000..3b4c13d --- /dev/null +++ b/src/components/dashboard/manual-control.tsx @@ -0,0 +1,122 @@ +'use client'; + +import React from 'react'; +import { ArrowUp, ArrowDown, ArrowLeft, ArrowRight, Power } from 'lucide-react'; +import { Button } from '@/components/ui/button'; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from '@/components/ui/card'; +import { Slider, SliderTrack, SliderThumb } from '@/components/ui/slider'; +import { Switch } from '@/components/ui/switch'; +import { Label } from '@/components/ui/label'; + +interface ManualControlProps { + isAutonomous: boolean; + setIsAutonomous: (value: boolean) => void; + speed: number[]; + setSpeed: (value: number[]) => void; + onEmergencyStop: () => void; +} + +export function ManualControl({ + isAutonomous, + setIsAutonomous, + speed, + setSpeed, + onEmergencyStop, +}: Readonly) { + return ( + + + Pilotage Manuel + + Prenez le contrôle du robot en cas de besoin + + + +
+ + +
+ +
+
+ + {speed[0] ?? 0}% +
+ + + + +
+ +
+
+ +
+ + + +
+ +
+
+ + + + + ); +} diff --git a/src/components/dashboard/metrics-and-alerts.tsx b/src/components/dashboard/metrics-and-alerts.tsx new file mode 100644 index 0000000..27b9733 --- /dev/null +++ b/src/components/dashboard/metrics-and-alerts.tsx @@ -0,0 +1,132 @@ +'use client'; + +import React from 'react'; +import { AlertTriangle, User } from 'lucide-react'; +import { + AreaChart, + Area, + XAxis, + YAxis, + CartesianGrid, + Tooltip, + ResponsiveContainer, +} from 'recharts'; +import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; +import { Button } from '@/components/ui/button'; + +interface MetricsAndAlertsProps { + vitalsData: Array<{ time: string; heartRate: number; battery: number }>; +} + +export function MetricsAndAlerts({ vitalsData }: MetricsAndAlertsProps) { + return ( +
+ + + + Alertes Récentes (UC-04) + + + +
+
+ +
+

Obstacle détecté

+

+ Il y a 2 min - Couloir B +

+
+
+
+ +
+

+ Patient guidé avec succès +

+

Il y a 45 min

+
+
+
+ +
+
+ + + + + Batterie vs Activité + + + +
+ + + + + + + + + + + + + + + +
+
+
+ +
+ + +

+ Missions du jour +

+

14

+
+
+ + +

Distance (km)

+

3.2

+
+
+
+
+ ); +} diff --git a/src/components/dashboard/task-manager.tsx b/src/components/dashboard/task-manager.tsx new file mode 100644 index 0000000..45e6bf8 --- /dev/null +++ b/src/components/dashboard/task-manager.tsx @@ -0,0 +1,144 @@ +'use client'; + +import React from 'react'; +import { Play, Square, Navigation, Activity } from 'lucide-react'; +import { motion } from 'motion/react'; +import { Button } from '@/components/ui/button'; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from '@/components/ui/card'; +import { Tabs, TabsList, TabsTrigger, TabsContent } from '@/components/ui/tabs'; +import { Label } from '@/components/ui/label'; +import { Input } from '@/components/ui/input'; +import { Badge } from '@/components/ui/badge'; + +interface TaskManagerProps { + isAutonomous: boolean; + activeTask: string | null; + onStartTask: (taskName: string) => void; + onStopTask: () => void; +} + +export function TaskManager({ + isAutonomous, + activeTask, + onStartTask, + onStopTask, +}: TaskManagerProps) { + return ( + + + Gestion des Tâches + + Assignez des missions d'assistance + + + + + + Livraison (UC-01) + Guidage (UC-02) + + + +
+ + +
+
+ + +
+ +
+ + +
+ + +
+ +
+
+ + {/* Active Task Status */} +
+

+ Mission en cours +

+ {activeTask ? ( + +
+
+
+ +
+
+

{activeTask}

+

+ Étape: En transit... +

+
+
+ + 12 min restantes + +
+ +
+ +
+ + +
+ ) : ( +
+ Le robot est en attente d'instructions. +
+ )} +
+
+
+ ); +} diff --git a/src/components/ui/.gitkeep b/src/components/ui/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/src/components/ui/accordion.tsx b/src/components/ui/accordion.tsx new file mode 100644 index 0000000..beba2c1 --- /dev/null +++ b/src/components/ui/accordion.tsx @@ -0,0 +1,66 @@ +'use client'; + +import * as React from 'react'; +import * as AccordionPrimitive from '@radix-ui/react-accordion'; +import { ChevronDownIcon } from 'lucide-react'; + +import { cn } from '@/lib/utils'; + +function Accordion({ + ...props +}: React.ComponentProps) { + return ; +} + +function AccordionItem({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AccordionTrigger({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + svg]:rotate-180', + className + )} + {...props} + > + {children} + + + + ); +} + +function AccordionContent({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + +
{children}
+
+ ); +} + +export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }; diff --git a/src/components/ui/alert-dialog.tsx b/src/components/ui/alert-dialog.tsx new file mode 100644 index 0000000..9868015 --- /dev/null +++ b/src/components/ui/alert-dialog.tsx @@ -0,0 +1,157 @@ +'use client'; + +import * as React from 'react'; +import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog'; + +import { cn } from '@/lib/utils'; +import { buttonVariants } from '@/components/ui/button'; + +function AlertDialog({ + ...props +}: React.ComponentProps) { + return ; +} + +function AlertDialogTrigger({ + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AlertDialogPortal({ + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AlertDialogOverlay({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AlertDialogContent({ + className, + ...props +}: React.ComponentProps) { + return ( + + + + + ); +} + +function AlertDialogHeader({ + className, + ...props +}: React.ComponentProps<'div'>) { + return ( +
+ ); +} + +function AlertDialogFooter({ + className, + ...props +}: React.ComponentProps<'div'>) { + return ( +
+ ); +} + +function AlertDialogTitle({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AlertDialogDescription({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AlertDialogAction({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AlertDialogCancel({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +export { + AlertDialog, + AlertDialogPortal, + AlertDialogOverlay, + AlertDialogTrigger, + AlertDialogContent, + AlertDialogHeader, + AlertDialogFooter, + AlertDialogTitle, + AlertDialogDescription, + AlertDialogAction, + AlertDialogCancel, +}; diff --git a/src/components/ui/alert.tsx b/src/components/ui/alert.tsx new file mode 100644 index 0000000..89e2b6f --- /dev/null +++ b/src/components/ui/alert.tsx @@ -0,0 +1,66 @@ +import * as React from 'react'; +import { cva, type VariantProps } from 'class-variance-authority'; + +import { cn } from '@/lib/utils'; + +const alertVariants = cva( + 'relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current', + { + variants: { + variant: { + default: 'bg-card text-card-foreground', + destructive: + 'text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90', + }, + }, + defaultVariants: { + variant: 'default', + }, + } +); + +function Alert({ + className, + variant, + ...props +}: React.ComponentProps<'div'> & VariantProps) { + return ( +
+ ); +} + +function AlertTitle({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ); +} + +function AlertDescription({ + className, + ...props +}: React.ComponentProps<'div'>) { + return ( +
+ ); +} + +export { Alert, AlertTitle, AlertDescription }; diff --git a/src/components/ui/aspect-ratio.tsx b/src/components/ui/aspect-ratio.tsx new file mode 100644 index 0000000..afb7845 --- /dev/null +++ b/src/components/ui/aspect-ratio.tsx @@ -0,0 +1,11 @@ +'use client'; + +import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio'; + +function AspectRatio({ + ...props +}: React.ComponentProps) { + return ; +} + +export { AspectRatio }; diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx new file mode 100644 index 0000000..9df0a1e --- /dev/null +++ b/src/components/ui/avatar.tsx @@ -0,0 +1,53 @@ +'use client'; + +import * as React from 'react'; +import * as AvatarPrimitive from '@radix-ui/react-avatar'; + +import { cn } from '@/lib/utils'; + +function Avatar({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AvatarImage({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function AvatarFallback({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +export { Avatar, AvatarImage, AvatarFallback }; diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx new file mode 100644 index 0000000..ed02d6c --- /dev/null +++ b/src/components/ui/badge.tsx @@ -0,0 +1,40 @@ +import * as React from 'react'; +import { cva, type VariantProps } from 'class-variance-authority'; +import { cn } from '@/lib/utils'; + +const badgeVariants = cva( + 'inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2', + { + variants: { + variant: { + default: + 'border-transparent bg-zinc-900 text-zinc-50 hover:bg-zinc-900/80', + secondary: + 'border-transparent bg-zinc-100 text-zinc-900 hover:bg-zinc-100/80', + destructive: + 'border-transparent bg-red-500 text-zinc-50 hover:bg-red-500/80', + outline: 'text-zinc-950', + success: + 'border-transparent bg-green-500 text-white hover:bg-green-600', + warning: + 'border-transparent bg-yellow-500 text-white hover:bg-yellow-600', + }, + }, + defaultVariants: { + variant: 'default', + }, + } +); + +export interface BadgeProps + extends + React.HTMLAttributes, + VariantProps {} + +function Badge({ className, variant, ...props }: BadgeProps) { + return ( +
+ ); +} + +export { Badge, badgeVariants }; diff --git a/src/components/ui/breadcrumb.tsx b/src/components/ui/breadcrumb.tsx new file mode 100644 index 0000000..0c90f76 --- /dev/null +++ b/src/components/ui/breadcrumb.tsx @@ -0,0 +1,109 @@ +import * as React from 'react'; +import { Slot } from '@radix-ui/react-slot'; +import { ChevronRight, MoreHorizontal } from 'lucide-react'; + +import { cn } from '@/lib/utils'; + +function Breadcrumb({ ...props }: React.ComponentProps<'nav'>) { + return