From 289941b7d728110357d2990756d8bd9d1a9672ac Mon Sep 17 00:00:00 2001 From: juan Date: Thu, 5 Mar 2026 19:42:56 +0100 Subject: [PATCH] feat: Establish core application structure with user authentication, routing, and Supabase integration. --- .env.development | 8 + package-lock.json | 2594 +++++++++++++++++++++++-- package.json | 10 +- src/components/Header.tsx | 197 +- src/integrations/supabase/supabase.ts | 24 + src/lib/hooks/useLogin.tsx | 49 + src/lib/server/user.ts | 142 ++ src/lib/validation/user.ts | 25 + src/routeTree.gen.ts | 27 +- src/routes/index.tsx | 1 - src/routes/login/route.tsx | 142 ++ src/styles.css | 201 +- 12 files changed, 3084 insertions(+), 336 deletions(-) create mode 100644 .env.development create mode 100644 src/integrations/supabase/supabase.ts create mode 100644 src/lib/hooks/useLogin.tsx create mode 100644 src/lib/server/user.ts create mode 100644 src/lib/validation/user.ts create mode 100644 src/routes/login/route.tsx diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..cdded64 --- /dev/null +++ b/.env.development @@ -0,0 +1,8 @@ +# SUPABASE_URL="https://qsssikzgwomudkwfmgad.supabase.co" +# DATABASE_URL="postgresql://postgres.qsssikzgwomudkwfmgad:etrTXNz3ZOwaLJmT@aws-0-eu-north-1.pooler.supabase.com:6543/postgres" +# SUPABASE_ANON_KEY="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InFzc3Npa3pnd29tdWRrd2ZtZ2FkIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTQzMjY1NTQsImV4cCI6MjA2OTkwMjU1NH0.BTSscdTcPP1GVmMB-H5caLpWsfuAw1V6mXiqogF8TjU" +DATABASE_URL="postgresql://postgres.qsssikzgwomudkwfmgad:Wrongly1-Untimed0-Peculiar0-Unlikable7-Cubbyhole8@aws-0-eu-north-1.pooler.supabase.com:6543/postgres" +APIKEY_MAPS="AIzaSyAwfOShBqkBcS46WqmlsIVWQJ8gpdOPk_4" +VITE_SUPABASE_URL="https://qsssikzgwomudkwfmgad.supabase.co" +VITE_SUPABASE_KEY="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InFzc3Npa3pnd29tdWRrd2ZtZ2FkIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTQzMjY1NTQsImV4cCI6MjA2OTkwMjU1NH0.BTSscdTcPP1GVmMB-H5caLpWsfuAw1V6mXiqogF8TjU" + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 8ed0fc4..7c673be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,7 +6,11 @@ "": { "name": "findyourpilot", "dependencies": { + "@heroui/react": "3.0.0-beta.8", + "@heroui/styles": "3.0.0-beta.8", "@sentry/tanstackstart-react": "^10.34.0", + "@supabase/ssr": "^0.8.0", + "@supabase/supabase-js": "^2.98.0", "@tailwindcss/vite": "^4.1.18", "@tanstack/react-devtools": "^0.7.0", "@tanstack/react-query": "^5.66.5", @@ -23,12 +27,14 @@ "nitro": "npm:nitro-nightly@latest", "react": "^19.2.0", "react-dom": "^19.2.0", + "sonner": "^2.0.7", "tailwind-merge": "^3.0.2", "tailwindcss": "^4.1.18", - "tw-animate-css": "^1.3.6" + "tw-animate-css": "^1.3.6", + "zod": "^4.3.6" }, "devDependencies": { - "@biomejs/biome": "2.2.4", + "@biomejs/biome": "2.4.4", "@inlang/paraglide-js": "^2.8.0", "@tanstack/devtools-vite": "^0.3.11", "@testing-library/dom": "^10.4.0", @@ -127,7 +133,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -406,9 +411,9 @@ } }, "node_modules/@biomejs/biome": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.2.4.tgz", - "integrity": "sha512-TBHU5bUy/Ok6m8c0y3pZiuO/BZoY/OcGxoLlrfQof5s8ISVwbVBdFINPQZyFfKwil8XibYWb7JMwnT8wT4WVPg==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.4.4.tgz", + "integrity": "sha512-tigwWS5KfJf0cABVd52NVaXyAVv4qpUXOWJ1rxFL8xF1RVoeS2q/LK+FHgYoKMclJCuRoCWAPy1IXaN9/mS61Q==", "dev": true, "license": "MIT OR Apache-2.0", "bin": { @@ -422,20 +427,20 @@ "url": "https://opencollective.com/biome" }, "optionalDependencies": { - "@biomejs/cli-darwin-arm64": "2.2.4", - "@biomejs/cli-darwin-x64": "2.2.4", - "@biomejs/cli-linux-arm64": "2.2.4", - "@biomejs/cli-linux-arm64-musl": "2.2.4", - "@biomejs/cli-linux-x64": "2.2.4", - "@biomejs/cli-linux-x64-musl": "2.2.4", - "@biomejs/cli-win32-arm64": "2.2.4", - "@biomejs/cli-win32-x64": "2.2.4" + "@biomejs/cli-darwin-arm64": "2.4.4", + "@biomejs/cli-darwin-x64": "2.4.4", + "@biomejs/cli-linux-arm64": "2.4.4", + "@biomejs/cli-linux-arm64-musl": "2.4.4", + "@biomejs/cli-linux-x64": "2.4.4", + "@biomejs/cli-linux-x64-musl": "2.4.4", + "@biomejs/cli-win32-arm64": "2.4.4", + "@biomejs/cli-win32-x64": "2.4.4" } }, "node_modules/@biomejs/cli-darwin-arm64": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.2.4.tgz", - "integrity": "sha512-RJe2uiyaloN4hne4d2+qVj3d3gFJFbmrr5PYtkkjei1O9c+BjGXgpUPVbi8Pl8syumhzJjFsSIYkcLt2VlVLMA==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.4.4.tgz", + "integrity": "sha512-jZ+Xc6qvD6tTH5jM6eKX44dcbyNqJHssfl2nnwT6vma6B1sj7ZLTGIk6N5QwVBs5xGN52r3trk5fgd3sQ9We9A==", "cpu": [ "arm64" ], @@ -450,9 +455,9 @@ } }, "node_modules/@biomejs/cli-darwin-x64": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.2.4.tgz", - "integrity": "sha512-cFsdB4ePanVWfTnPVaUX+yr8qV8ifxjBKMkZwN7gKb20qXPxd/PmwqUH8mY5wnM9+U0QwM76CxFyBRJhC9tQwg==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.4.4.tgz", + "integrity": "sha512-Dh1a/+W+SUCXhEdL7TiX3ArPTFCQKJTI1mGncZNWfO+6suk+gYA4lNyJcBB+pwvF49uw0pEbUS49BgYOY4hzUg==", "cpu": [ "x64" ], @@ -467,9 +472,9 @@ } }, "node_modules/@biomejs/cli-linux-arm64": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.2.4.tgz", - "integrity": "sha512-M/Iz48p4NAzMXOuH+tsn5BvG/Jb07KOMTdSVwJpicmhN309BeEyRyQX+n1XDF0JVSlu28+hiTQ2L4rZPvu7nMw==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.4.4.tgz", + "integrity": "sha512-V/NFfbWhsUU6w+m5WYbBenlEAz8eYnSqRMDMAW3K+3v0tYVkNyZn8VU0XPxk/lOqNXLSCCrV7FmV/u3SjCBShg==", "cpu": [ "arm64" ], @@ -484,9 +489,9 @@ } }, "node_modules/@biomejs/cli-linux-arm64-musl": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.2.4.tgz", - "integrity": "sha512-7TNPkMQEWfjvJDaZRSkDCPT/2r5ESFPKx+TEev+I2BXDGIjfCZk2+b88FOhnJNHtksbOZv8ZWnxrA5gyTYhSsQ==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.4.4.tgz", + "integrity": "sha512-+sPAXq3bxmFwhVFJnSwkSF5Rw2ZAJMH3MF6C9IveAEOdSpgajPhoQhbbAK12SehN9j2QrHpk4J/cHsa/HqWaYQ==", "cpu": [ "arm64" ], @@ -501,9 +506,9 @@ } }, "node_modules/@biomejs/cli-linux-x64": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.2.4.tgz", - "integrity": "sha512-orr3nnf2Dpb2ssl6aihQtvcKtLySLta4E2UcXdp7+RTa7mfJjBgIsbS0B9GC8gVu0hjOu021aU8b3/I1tn+pVQ==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.4.4.tgz", + "integrity": "sha512-R4+ZCDtG9kHArasyBO+UBD6jr/FcFCTH8QkNTOCu0pRJzCWyWC4EtZa2AmUZB5h3e0jD7bRV2KvrENcf8rndBg==", "cpu": [ "x64" ], @@ -518,9 +523,9 @@ } }, "node_modules/@biomejs/cli-linux-x64-musl": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.2.4.tgz", - "integrity": "sha512-m41nFDS0ksXK2gwXL6W6yZTYPMH0LughqbsxInSKetoH6morVj43szqKx79Iudkp8WRT5SxSh7qVb8KCUiewGg==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.4.4.tgz", + "integrity": "sha512-gGvFTGpOIQDb5CQ2VC0n9Z2UEqlP46c4aNgHmAMytYieTGEcfqhfCFnhs6xjt0S3igE6q5GLuIXtdQt3Izok+g==", "cpu": [ "x64" ], @@ -535,9 +540,9 @@ } }, "node_modules/@biomejs/cli-win32-arm64": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.2.4.tgz", - "integrity": "sha512-NXnfTeKHDFUWfxAefa57DiGmu9VyKi0cDqFpdI+1hJWQjGJhJutHPX0b5m+eXvTKOaf+brU+P0JrQAZMb5yYaQ==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.4.4.tgz", + "integrity": "sha512-trzCqM7x+Gn832zZHgr28JoYagQNX4CZkUZhMUac2YxvvyDRLJDrb5m9IA7CaZLlX6lTQmADVfLEKP1et1Ma4Q==", "cpu": [ "arm64" ], @@ -552,9 +557,9 @@ } }, "node_modules/@biomejs/cli-win32-x64": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.2.4.tgz", - "integrity": "sha512-3Y4V4zVRarVh/B/eSHczR4LYoSVyv3Dfuvm3cWs5w/HScccS0+Wt/lHOcDTRYeHjQmMYVC3rIRWqyN2EI52+zg==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.4.4.tgz", + "integrity": "sha512-gnOHKVPFAAPrpoPt2t+Q6FZ7RPry/FDV3GcpU53P3PtLNnQjBmKyN2Vh/JtqXet+H4pme8CC76rScwdjDcT1/A==", "cpu": [ "x64" ], @@ -656,7 +661,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=20.19.0" }, @@ -697,7 +701,6 @@ } ], "license": "MIT", - "peer": true, "engines": { "node": ">=20.19.0" } @@ -1203,6 +1206,105 @@ "@opentelemetry/api": "^1.3.0" } }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.6.tgz", + "integrity": "sha512-HJnTFeRM2kVFVr5gr5kH1XP6K0JcJtE7Lzvtr3FS/so5f1kpsqqqxy5JF+FRaO6H2qmcMfAUIox7AJteieRtVw==", + "license": "MIT", + "dependencies": { + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/intl-localematcher": "0.6.2", + "decimal.js": "^10.4.3", + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/fast-memoize": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-2.2.7.tgz", + "integrity": "sha512-Yabmi9nSvyOMrlSeGGWDiH7rf3a7sIwplbvo/dlz9WCIjzIQAfy1RMf4S0X3yG724n5Ghu2GmEl5NJIV6O9sZQ==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.4.tgz", + "integrity": "sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/icu-skeleton-parser": "1.8.16", + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.8.16", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.16.tgz", + "integrity": "sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.6.2.tgz", + "integrity": "sha512-XOMO2Hupl0wdd172Y06h6kLpBz6Dv+J4okPLl4LPtzbr8f66WbIoy4ev98EBuZ6ZK4h5ydTN6XneT4QVpD7cdA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@heroui/react": { + "version": "3.0.0-beta.8", + "resolved": "https://registry.npmjs.org/@heroui/react/-/react-3.0.0-beta.8.tgz", + "integrity": "sha512-1wh7N689LKLgXf/FbGg2Y7fMtiwdHcANHdRKDKFly4UWsraxEXdpfJaeL788TE3rpsMmzuKl3FZBOewjBGKKLQ==", + "license": "MIT", + "dependencies": { + "@heroui/styles": "3.0.0-beta.8", + "@radix-ui/react-avatar": "1.1.11", + "@react-aria/i18n": "3.12.15", + "@react-aria/ssr": "3.9.10", + "@react-aria/utils": "3.33.0", + "@react-stately/utils": "3.11.0", + "@react-types/color": "3.1.3", + "@react-types/shared": "3.33.0", + "input-otp": "1.4.2", + "react-aria-components": "1.15.1", + "tailwind-merge": "3.4.0", + "tailwind-variants": "3.2.2" + }, + "peerDependencies": { + "react": ">=19.0.0", + "react-dom": ">=19.0.0", + "tailwindcss": ">=4.0.0" + } + }, + "node_modules/@heroui/react/node_modules/tailwind-merge": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.4.0.tgz", + "integrity": "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/@heroui/styles": { + "version": "3.0.0-beta.8", + "resolved": "https://registry.npmjs.org/@heroui/styles/-/styles-3.0.0-beta.8.tgz", + "integrity": "sha512-QKSMuHiT5VIySweFjw5/ombl58Oqp6vZ9fbRniIlh3k4Jh2lMmSUEPZ53+2vTw2VoGwDgLdvfOyJLxedYQpvIw==", + "license": "MIT", + "dependencies": { + "tailwind-variants": "3.2.2", + "tw-animate-css": "1.4.0" + }, + "peerDependencies": { + "tailwindcss": ">=4.0.0" + } + }, "node_modules/@inlang/paraglide-js": { "version": "2.12.0", "resolved": "https://registry.npmjs.org/@inlang/paraglide-js/-/paraglide-js-2.12.0.tgz", @@ -1249,6 +1351,43 @@ "node": ">=18.0.0" } }, + "node_modules/@internationalized/date": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.11.0.tgz", + "integrity": "sha512-BOx5huLAWhicM9/ZFs84CzP+V3gBW6vlpM02yzsdYC7TGlZJX1OJiEEHcSayF00Z+3jLlm4w79amvSt6RqKN3Q==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/message": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@internationalized/message/-/message-3.1.8.tgz", + "integrity": "sha512-Rwk3j/TlYZhn3HQ6PyXUV0XP9Uv42jqZGNegt0BXlxjE6G3+LwHjbQZAGHhCnCPdaA6Tvd3ma/7QzLlLkJxAWA==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0", + "intl-messageformat": "^10.1.0" + } + }, + "node_modules/@internationalized/number": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/@internationalized/number/-/number-3.6.5.tgz", + "integrity": "sha512-6hY4Kl4HPBvtfS62asS/R22JzNNy8vi/Ssev7x6EobfCp+9QIB2hKvI2EtbdJ0VSQacxVNtqhE/NmF/NZ0gm6g==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@internationalized/string": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/@internationalized/string/-/string-3.2.7.tgz", + "integrity": "sha512-D4OHBjrinH+PFZPvfCXvG28n2LSykWcJ7GIioQL+ok0LON15SdfoUssoHzzOUmVZLbRoREsQXVzA6r8JKsbP6A==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -1403,7 +1542,6 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", "license": "Apache-2.0", - "peer": true, "engines": { "node": ">=8.0.0" } @@ -1425,7 +1563,6 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-2.5.1.tgz", "integrity": "sha512-MHbu8XxCHcBn6RwvCt2Vpn1WnLMNECfNKYB14LI5XypcgH4IE0/DiVifVR9tAkwPMyLXN8dOoPJfya3IryLQVw==", "license": "Apache-2.0", - "peer": true, "engines": { "node": "^18.19.0 || >=20.6.0" }, @@ -1438,7 +1575,6 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.5.1.tgz", "integrity": "sha512-Dwlc+3HAZqpgTYq0MUyZABjFkcrKTePwuiFVLjahGD8cx3enqihmpAmdgNFO1R4m/sIe5afjJrA25Prqy4NXlA==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@opentelemetry/semantic-conventions": "^1.29.0" }, @@ -1862,7 +1998,6 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.5.1.tgz", "integrity": "sha512-BViBCdE/GuXRlp9k7nS1w6wJvY5fnFX5XvuEtWsTAOQFIO89Eru7lGW3WbfbxtCuZ/GbrJfAziXG0w0dpxL7eQ==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@opentelemetry/core": "2.5.1", "@opentelemetry/semantic-conventions": "^1.29.0" @@ -1879,7 +2014,6 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.5.1.tgz", "integrity": "sha512-iZH3Gw8cxQn0gjpOjJMmKLd9GIaNh/E3v3ST67vyzLSxHBs14HsG4dy7jMYyC5WXGdBVEcM7U/XTF5hCQxjDMw==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@opentelemetry/core": "2.5.1", "@opentelemetry/resources": "2.5.1", @@ -1897,7 +2031,6 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.39.0.tgz", "integrity": "sha512-R5R9tb2AXs2IRLNKLBJDynhkfmx7mX0vi8NkhZb3gUkPWHn6HXk5J8iQ/dql0U3ApfWym4kXXmBDRGO+oeOfjg==", "license": "Apache-2.0", - "peer": true, "engines": { "node": ">=14" } @@ -1967,6 +2100,1947 @@ "@opentelemetry/api": "^1.3.0" } }, + "node_modules/@radix-ui/react-avatar": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.11.tgz", + "integrity": "sha512-0Qk603AHGV28BOBO34p7IgD5m+V5Sg/YovfayABkoDDBM5d3NCx0Mp4gGrjzLGes1jV5eNOE1r3itqOR33VC6Q==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.3", + "@radix-ui/react-primitive": "2.1.4", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-is-hydrated": "0.1.0", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.3.tgz", + "integrity": "sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz", + "integrity": "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.4" + }, + "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 + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz", + "integrity": "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-is-hydrated": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.0.tgz", + "integrity": "sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==", + "license": "MIT", + "dependencies": { + "use-sync-external-store": "^1.5.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@react-aria/autocomplete": { + "version": "3.0.0-rc.5", + "resolved": "https://registry.npmjs.org/@react-aria/autocomplete/-/autocomplete-3.0.0-rc.5.tgz", + "integrity": "sha512-qcGr/ZlSJxw78QtXB29MnvCwGZKlJ5FGfSICjaX/KIg4ONGFR/u4QjP/axA+vhlPa9Ik7BNeikWQriTcYrkbhw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/combobox": "^3.14.2", + "@react-aria/focus": "^3.21.4", + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/listbox": "^3.15.2", + "@react-aria/searchfield": "^3.8.11", + "@react-aria/textfield": "^3.18.4", + "@react-aria/utils": "^3.33.0", + "@react-stately/autocomplete": "3.0.0-beta.4", + "@react-stately/combobox": "^3.12.2", + "@react-types/autocomplete": "3.0.0-alpha.37", + "@react-types/button": "^3.15.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/breadcrumbs": { + "version": "3.5.31", + "resolved": "https://registry.npmjs.org/@react-aria/breadcrumbs/-/breadcrumbs-3.5.31.tgz", + "integrity": "sha512-j8F2NMHFGT/n3alfFKdO4bvrY/ymtdL04GdclY7Vc6zOmCnWoEZ2UA0sFuV7Rk9dOL8fAtYV1kMD1ZRO/EMcGA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/i18n": "^3.12.15", + "@react-aria/link": "^3.8.8", + "@react-aria/utils": "^3.33.0", + "@react-types/breadcrumbs": "^3.7.18", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/button": { + "version": "3.14.4", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.14.4.tgz", + "integrity": "sha512-6mTPiSSQhELnWlnYJ1Tm1B0VL1GGKAs2PGAY3ZGbPGQPPDc6Wu82yIhuAO8TTFJrXkwAiqjQawgDLil/yB0V7Q==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.27.0", + "@react-aria/toolbar": "3.0.0-beta.23", + "@react-aria/utils": "^3.33.0", + "@react-stately/toggle": "^3.9.4", + "@react-types/button": "^3.15.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/calendar": { + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/@react-aria/calendar/-/calendar-3.9.4.tgz", + "integrity": "sha512-0BvU8cj6uHn622Vp8Xd21XxXtvp3Bh4Yk1pHloqDNmUvvdBN+ol3Xsm5gG3XKKkZ+6CCEi6asCbLaEg3SZSbyg==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.11.0", + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/live-announcer": "^3.4.4", + "@react-aria/utils": "^3.33.0", + "@react-stately/calendar": "^3.9.2", + "@react-types/button": "^3.15.0", + "@react-types/calendar": "^3.8.2", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/checkbox": { + "version": "3.16.4", + "resolved": "https://registry.npmjs.org/@react-aria/checkbox/-/checkbox-3.16.4.tgz", + "integrity": "sha512-FcZj6/f27mNp2+G5yxyOMRZbZQjJ1cuWvo0PPnnZ4ybSPUmSzI4uUZBk1wvsJVP9F9n+J2hZuYVCaN8pyzLweA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/form": "^3.1.4", + "@react-aria/interactions": "^3.27.0", + "@react-aria/label": "^3.7.24", + "@react-aria/toggle": "^3.12.4", + "@react-aria/utils": "^3.33.0", + "@react-stately/checkbox": "^3.7.4", + "@react-stately/form": "^3.2.3", + "@react-stately/toggle": "^3.9.4", + "@react-types/checkbox": "^3.10.3", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/collections": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@react-aria/collections/-/collections-3.0.2.tgz", + "integrity": "sha512-5GV0fj1bvfdztHozlZQ1nzdmcZOAOdZ5BhwrSyuHbK5ptmQrpAoWUK+VTQlxkAfyn5i6niaaN/llP1v3RgEemw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.27.0", + "@react-aria/ssr": "^3.9.10", + "@react-aria/utils": "^3.33.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0", + "use-sync-external-store": "^1.6.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/color": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@react-aria/color/-/color-3.1.4.tgz", + "integrity": "sha512-LNFo0A9EEn2HZ8O/hASschH++M+krfezcp01XPv0/2ZQJ5b5u7VvJlUOEXtPsD4i9+BzvkSAEoVUXdlJie9V2Q==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/numberfield": "^3.12.4", + "@react-aria/slider": "^3.8.4", + "@react-aria/spinbutton": "^3.7.1", + "@react-aria/textfield": "^3.18.4", + "@react-aria/utils": "^3.33.0", + "@react-aria/visually-hidden": "^3.8.30", + "@react-stately/color": "^3.9.4", + "@react-stately/form": "^3.2.3", + "@react-types/color": "^3.1.3", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/combobox": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/@react-aria/combobox/-/combobox-3.14.2.tgz", + "integrity": "sha512-qwBeb8cMgK3xwrvXYHPtcphduD/k+oTcU18JHPvEO2kmR32knB33H81C2/Zoh4x86zTDJXaEtPscXBWuQ/M7AQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.21.4", + "@react-aria/i18n": "^3.12.15", + "@react-aria/listbox": "^3.15.2", + "@react-aria/live-announcer": "^3.4.4", + "@react-aria/menu": "^3.20.0", + "@react-aria/overlays": "^3.31.1", + "@react-aria/selection": "^3.27.1", + "@react-aria/textfield": "^3.18.4", + "@react-aria/utils": "^3.33.0", + "@react-stately/collections": "^3.12.9", + "@react-stately/combobox": "^3.12.2", + "@react-stately/form": "^3.2.3", + "@react-types/button": "^3.15.0", + "@react-types/combobox": "^3.13.11", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/datepicker": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/@react-aria/datepicker/-/datepicker-3.16.0.tgz", + "integrity": "sha512-QynYHIHE+wvuGopl/k05tphmDpykpfZ3l3eKnUfGrqvAYJEeCOyS0qoMlw7Vq3NscMLFbJI6ajqBmlmtgFNiSA==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.11.0", + "@internationalized/number": "^3.6.5", + "@internationalized/string": "^3.2.7", + "@react-aria/focus": "^3.21.4", + "@react-aria/form": "^3.1.4", + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/label": "^3.7.24", + "@react-aria/spinbutton": "^3.7.1", + "@react-aria/utils": "^3.33.0", + "@react-stately/datepicker": "^3.16.0", + "@react-stately/form": "^3.2.3", + "@react-types/button": "^3.15.0", + "@react-types/calendar": "^3.8.2", + "@react-types/datepicker": "^3.13.4", + "@react-types/dialog": "^3.5.23", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/dialog": { + "version": "3.5.33", + "resolved": "https://registry.npmjs.org/@react-aria/dialog/-/dialog-3.5.33.tgz", + "integrity": "sha512-C5FpLAMJU6gQU8gztWKlEJ2A0k/JKl0YijNOv3Lizk+vUdF5njROSrmFs16bY5Hd6ycmsK9x/Pqkq3m/OpNFXA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.27.0", + "@react-aria/overlays": "^3.31.1", + "@react-aria/utils": "^3.33.0", + "@react-types/dialog": "^3.5.23", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/disclosure": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@react-aria/disclosure/-/disclosure-3.1.2.tgz", + "integrity": "sha512-UQ/CmWcdcROfRTMtvfsnYHrEsPPNbwZifZ/UErQpbvU4kzal2N+PpuP3+kpdf4G7TeMt+uJ8S9dLzyFVijOj9A==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/ssr": "^3.9.10", + "@react-aria/utils": "^3.33.0", + "@react-stately/disclosure": "^3.0.10", + "@react-types/button": "^3.15.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/dnd": { + "version": "3.11.5", + "resolved": "https://registry.npmjs.org/@react-aria/dnd/-/dnd-3.11.5.tgz", + "integrity": "sha512-3IGrABfK8Cf6/b/uEmGEDGeubWKMUK3umWunF/tdkWBnIaxpdj4gRkWFMw7siWQYnqir6AN567nrWXtHFcLKsA==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/string": "^3.2.7", + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/live-announcer": "^3.4.4", + "@react-aria/overlays": "^3.31.1", + "@react-aria/utils": "^3.33.0", + "@react-stately/collections": "^3.12.9", + "@react-stately/dnd": "^3.7.3", + "@react-types/button": "^3.15.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/focus": { + "version": "3.21.4", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.21.4.tgz", + "integrity": "sha512-6gz+j9ip0/vFRTKJMl3R30MHopn4i19HqqLfSQfElxJD+r9hBnYG1Q6Wd/kl/WRR1+CALn2F+rn06jUnf5sT8Q==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.27.0", + "@react-aria/utils": "^3.33.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/form": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@react-aria/form/-/form-3.1.4.tgz", + "integrity": "sha512-GjPS85cE/34zal3vs6MOi7FxUsXwbxN4y6l1LFor2g92UK97gVobp238f3xdMW2T8IuaWGcnHeYFg+cjiZ51pQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.27.0", + "@react-aria/utils": "^3.33.0", + "@react-stately/form": "^3.2.3", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/grid": { + "version": "3.14.7", + "resolved": "https://registry.npmjs.org/@react-aria/grid/-/grid-3.14.7.tgz", + "integrity": "sha512-8eaJThNHUs75Xf4+FQC2NKQtTOVYkkDdA8VbfbqG06oYDAn7ETb1yhbwoqh1jOv7MezCNkYjyFe4ADsz2rBVcw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.21.4", + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/live-announcer": "^3.4.4", + "@react-aria/selection": "^3.27.1", + "@react-aria/utils": "^3.33.0", + "@react-stately/collections": "^3.12.9", + "@react-stately/grid": "^3.11.8", + "@react-stately/selection": "^3.20.8", + "@react-types/checkbox": "^3.10.3", + "@react-types/grid": "^3.3.7", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/gridlist": { + "version": "3.14.3", + "resolved": "https://registry.npmjs.org/@react-aria/gridlist/-/gridlist-3.14.3.tgz", + "integrity": "sha512-t3nr29nU5jRG9MdWe9aiMd02V8o0pmidLU/7c4muWAu7hEH+IYdeDthGDdXL9tXAom/oQ+6yt6sOfLxpsVNmGA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.21.4", + "@react-aria/grid": "^3.14.7", + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/selection": "^3.27.1", + "@react-aria/utils": "^3.33.0", + "@react-stately/list": "^3.13.3", + "@react-stately/tree": "^3.9.5", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/i18n": { + "version": "3.12.15", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.12.15.tgz", + "integrity": "sha512-3CrAN7ORVHrckvTmbPq76jFZabqq+rScosGT5+ElircJ5rF5+JcdT99Hp5Xg6R10jk74e8G3xiqdYsUd+7iJMA==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.11.0", + "@internationalized/message": "^3.1.8", + "@internationalized/number": "^3.6.5", + "@internationalized/string": "^3.2.7", + "@react-aria/ssr": "^3.9.10", + "@react-aria/utils": "^3.33.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/interactions": { + "version": "3.27.0", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.27.0.tgz", + "integrity": "sha512-D27pOy+0jIfHK60BB26AgqjjRFOYdvVSkwC31b2LicIzRCSPOSP06V4gMHuGmkhNTF4+YWDi1HHYjxIvMeiSlA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/ssr": "^3.9.10", + "@react-aria/utils": "^3.33.0", + "@react-stately/flags": "^3.1.2", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/label": { + "version": "3.7.24", + "resolved": "https://registry.npmjs.org/@react-aria/label/-/label-3.7.24.tgz", + "integrity": "sha512-lcJbUy6xyicWKNgzfrXksrJ2CeCST2rDxGAvHOmUxSbFOm26kK710DjaFvtO4tICWh/TKW5mC3sm77soNcVUGA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/utils": "^3.33.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/landmark": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@react-aria/landmark/-/landmark-3.0.9.tgz", + "integrity": "sha512-YYyluDBCXupnMh91ccE5g27fczjYmzPebHqTkVYjH4B6k45pOoqsMmWBCMnOTl0qOCeioI+daT8W0MamAZzoSw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/utils": "^3.33.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0", + "use-sync-external-store": "^1.6.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/link": { + "version": "3.8.8", + "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.8.8.tgz", + "integrity": "sha512-hxQEvo5rrn2C0GOSwB/tROe+y//dyhmyXGbm8arDy6WF5Mj0wcjjrAu0/dhGYBqoltJa16iIEvs52xgzOC+f+Q==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.27.0", + "@react-aria/utils": "^3.33.0", + "@react-types/link": "^3.6.6", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/listbox": { + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/@react-aria/listbox/-/listbox-3.15.2.tgz", + "integrity": "sha512-xcrgSediV8MaVmsuDrDPmWywF82/HOv+H+Y/dgr6GLCWl0XDj5Q7PyAhDzUsYdZNIne3B9muGh6IQc3HdkgWqg==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.27.0", + "@react-aria/label": "^3.7.24", + "@react-aria/selection": "^3.27.1", + "@react-aria/utils": "^3.33.0", + "@react-stately/collections": "^3.12.9", + "@react-stately/list": "^3.13.3", + "@react-types/listbox": "^3.7.5", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/live-announcer": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/@react-aria/live-announcer/-/live-announcer-3.4.4.tgz", + "integrity": "sha512-PTTBIjNRnrdJOIRTDGNifY2d//kA7GUAwRFJNOEwSNG4FW+Bq9awqLiflw0JkpyB0VNIwou6lqKPHZVLsGWOXA==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@react-aria/menu": { + "version": "3.20.0", + "resolved": "https://registry.npmjs.org/@react-aria/menu/-/menu-3.20.0.tgz", + "integrity": "sha512-BAsHuf7kTVmawNUkTUd5RB3ZvL6DQQT7hgZ2cYKd/1ZwYq4KO2wWGYdzyTOtK1qimZL0eyHyQwDYv4dNKBH4gw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.21.4", + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/overlays": "^3.31.1", + "@react-aria/selection": "^3.27.1", + "@react-aria/utils": "^3.33.0", + "@react-stately/collections": "^3.12.9", + "@react-stately/menu": "^3.9.10", + "@react-stately/selection": "^3.20.8", + "@react-stately/tree": "^3.9.5", + "@react-types/button": "^3.15.0", + "@react-types/menu": "^3.10.6", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/meter": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@react-aria/meter/-/meter-3.4.29.tgz", + "integrity": "sha512-XAhJf8LlYQl+QQXqtpWvzjlrT8MZKEG6c8N3apC5DONgSKlCwfmDm4laGEJPqtuz3QGiOopsfSfyTFYHjWsfZw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/progress": "^3.4.29", + "@react-types/meter": "^3.4.14", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/numberfield": { + "version": "3.12.4", + "resolved": "https://registry.npmjs.org/@react-aria/numberfield/-/numberfield-3.12.4.tgz", + "integrity": "sha512-TgKBjKOjyURzbqNR2wF4tSFmQKNK5DqE4QZSlQxpYYo1T6zuztkh+oTOUZ4IWCJymL5qLtuPfGHCZbR7B+DN2w==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/spinbutton": "^3.7.1", + "@react-aria/textfield": "^3.18.4", + "@react-aria/utils": "^3.33.0", + "@react-stately/form": "^3.2.3", + "@react-stately/numberfield": "^3.10.4", + "@react-types/button": "^3.15.0", + "@react-types/numberfield": "^3.8.17", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/overlays": { + "version": "3.31.1", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.31.1.tgz", + "integrity": "sha512-U5BedzcXU97U5PWm4kIPnNoVpAs9KjTYfbkGx33vapmTVpGYhQyYW9eg6zW2E8ZKsyFJtQ/jkQnbWGen97aHSQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.21.4", + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/ssr": "^3.9.10", + "@react-aria/utils": "^3.33.0", + "@react-aria/visually-hidden": "^3.8.30", + "@react-stately/overlays": "^3.6.22", + "@react-types/button": "^3.15.0", + "@react-types/overlays": "^3.9.3", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/progress": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@react-aria/progress/-/progress-3.4.29.tgz", + "integrity": "sha512-orSaaFLX5LdD9UyxgBrmP1J/ivyEFX+5v4ENPQM5RH5+Hl+0OJa+8ozI0AfVKBqCYc89BOZfG7kzi7wFHACZcQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/i18n": "^3.12.15", + "@react-aria/label": "^3.7.24", + "@react-aria/utils": "^3.33.0", + "@react-types/progress": "^3.5.17", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/radio": { + "version": "3.12.4", + "resolved": "https://registry.npmjs.org/@react-aria/radio/-/radio-3.12.4.tgz", + "integrity": "sha512-2sjBAE8++EtAAfjwPdrqEVswbzR4Mvcy4n8SvwUxTo02yESa9nolBzCSdAUFUmhrNj3MiMA+zLxQ+KACfUjJOg==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.21.4", + "@react-aria/form": "^3.1.4", + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/label": "^3.7.24", + "@react-aria/utils": "^3.33.0", + "@react-stately/radio": "^3.11.4", + "@react-types/radio": "^3.9.3", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/searchfield": { + "version": "3.8.11", + "resolved": "https://registry.npmjs.org/@react-aria/searchfield/-/searchfield-3.8.11.tgz", + "integrity": "sha512-5R0prEC+jRFwPeJsK6G4RN8QG3V/+EaIuw9p79G1gFD+1dY81ZakiZIIJaLWRyO7AzYBGyC/QFHtz0m3KGQT/Q==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/i18n": "^3.12.15", + "@react-aria/textfield": "^3.18.4", + "@react-aria/utils": "^3.33.0", + "@react-stately/searchfield": "^3.5.18", + "@react-types/button": "^3.15.0", + "@react-types/searchfield": "^3.6.7", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/select": { + "version": "3.17.2", + "resolved": "https://registry.npmjs.org/@react-aria/select/-/select-3.17.2.tgz", + "integrity": "sha512-oMpHStyMluRf67qxrzH5Qfcvw6ETQgZT1Qw2xvAxQVRd5IBb0PfzZS7TGiULOcMLqXAUOC28O/ycUGrGRKLarg==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/form": "^3.1.4", + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/label": "^3.7.24", + "@react-aria/listbox": "^3.15.2", + "@react-aria/menu": "^3.20.0", + "@react-aria/selection": "^3.27.1", + "@react-aria/utils": "^3.33.0", + "@react-aria/visually-hidden": "^3.8.30", + "@react-stately/select": "^3.9.1", + "@react-types/button": "^3.15.0", + "@react-types/select": "^3.12.1", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/selection": { + "version": "3.27.1", + "resolved": "https://registry.npmjs.org/@react-aria/selection/-/selection-3.27.1.tgz", + "integrity": "sha512-8WQ4AtWiBnk9UEeYkqpH12dd8KQW2aFbNZvM4sDfLtz7K7HWyY/MkqMe/snk9IcoSa7t4zr0bnoZJcWSGgn2PQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.21.4", + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/utils": "^3.33.0", + "@react-stately/selection": "^3.20.8", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/separator": { + "version": "3.4.15", + "resolved": "https://registry.npmjs.org/@react-aria/separator/-/separator-3.4.15.tgz", + "integrity": "sha512-A1aPQhCaE8XeelNJYPjHtA2uh921ROh8PNiZI4o62x80wcziRoctN5PAtNHJAx7VKvX66A8ZVGbOqb7iqS3J5Q==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/utils": "^3.33.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/slider": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@react-aria/slider/-/slider-3.8.4.tgz", + "integrity": "sha512-/FYCgK1qVqaz2VCDfR2x4BjyJ8lmWg1v8//+WIwKdIu4cz0KUs+U3yx0w1vp676RoERp3OEvkT3tb+/jHQ1hjA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/label": "^3.7.24", + "@react-aria/utils": "^3.33.0", + "@react-stately/slider": "^3.7.4", + "@react-types/shared": "^3.33.0", + "@react-types/slider": "^3.8.3", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/spinbutton": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@react-aria/spinbutton/-/spinbutton-3.7.1.tgz", + "integrity": "sha512-Nisah6yzxOC6983u/5ck0w+OQoa3sRKmpDvWpTEX0g2+ZIABOl8ttdSd65XKtxXmXHdK8X1zmrfeGOBfBR3sKA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/i18n": "^3.12.15", + "@react-aria/live-announcer": "^3.4.4", + "@react-aria/utils": "^3.33.0", + "@react-types/button": "^3.15.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/ssr": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.10.tgz", + "integrity": "sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/switch": { + "version": "3.7.10", + "resolved": "https://registry.npmjs.org/@react-aria/switch/-/switch-3.7.10.tgz", + "integrity": "sha512-j7nrYnqX6H9J8GuqD0kdMECUozeqxeG19A2nsvfaTx3//Q7RhgIR9fqhQdVHW/wgraTlEHNH6AhDzmomBg0TNw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/toggle": "^3.12.4", + "@react-stately/toggle": "^3.9.4", + "@react-types/shared": "^3.33.0", + "@react-types/switch": "^3.5.16", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/table": { + "version": "3.17.10", + "resolved": "https://registry.npmjs.org/@react-aria/table/-/table-3.17.10.tgz", + "integrity": "sha512-xdEeyOzuETkOfAHhZrX7HOIwMUsCUr4rbPvHqdcNqg7Ngla2ck9iulZNAyvOPfFwELuBEd2rz1I9TYRQ2OzSQQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.21.4", + "@react-aria/grid": "^3.14.7", + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/live-announcer": "^3.4.4", + "@react-aria/utils": "^3.33.0", + "@react-aria/visually-hidden": "^3.8.30", + "@react-stately/collections": "^3.12.9", + "@react-stately/flags": "^3.1.2", + "@react-stately/table": "^3.15.3", + "@react-types/checkbox": "^3.10.3", + "@react-types/grid": "^3.3.7", + "@react-types/shared": "^3.33.0", + "@react-types/table": "^3.13.5", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/tabs": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@react-aria/tabs/-/tabs-3.11.0.tgz", + "integrity": "sha512-9Gwo118GHrMXSyteCZL1L/LHLVlGSYkhGgiTL3e/UgnYjHfEfDJVTkV2JikuE2O/4uig52gQRlq5E99axLeE9Q==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.21.4", + "@react-aria/i18n": "^3.12.15", + "@react-aria/selection": "^3.27.1", + "@react-aria/utils": "^3.33.0", + "@react-stately/tabs": "^3.8.8", + "@react-types/shared": "^3.33.0", + "@react-types/tabs": "^3.3.21", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/tag": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@react-aria/tag/-/tag-3.8.0.tgz", + "integrity": "sha512-sTV6uRKFIFU1aljKb0QjM6fPPnzBuitrbkkCUZCJ0w0RIX1JinZPh96NknNtjFwWmqoROjVNCq51EUd0Hh2SQw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/gridlist": "^3.14.3", + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/label": "^3.7.24", + "@react-aria/selection": "^3.27.1", + "@react-aria/utils": "^3.33.0", + "@react-stately/list": "^3.13.3", + "@react-types/button": "^3.15.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/textfield": { + "version": "3.18.4", + "resolved": "https://registry.npmjs.org/@react-aria/textfield/-/textfield-3.18.4.tgz", + "integrity": "sha512-ts3Vdy2qNOzjCVeO+4RH8FSgTYN2USAMcYFeGbHOriCukVOrvgRsqcDniW7xaT60LgFdlWMJsCusvltSIyo6xw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/form": "^3.1.4", + "@react-aria/interactions": "^3.27.0", + "@react-aria/label": "^3.7.24", + "@react-aria/utils": "^3.33.0", + "@react-stately/form": "^3.2.3", + "@react-stately/utils": "^3.11.0", + "@react-types/shared": "^3.33.0", + "@react-types/textfield": "^3.12.7", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/toast": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@react-aria/toast/-/toast-3.0.10.tgz", + "integrity": "sha512-irW5Cr4msbPo4A4ysjT70MDJbpGCe1h9SkFgdYXBPA4Xbi4jRT7TiEZeIS1I7Hsvp6shAK1Ld/m6NBS0b/gyzg==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/landmark": "^3.0.9", + "@react-aria/utils": "^3.33.0", + "@react-stately/toast": "^3.1.3", + "@react-types/button": "^3.15.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/toggle": { + "version": "3.12.4", + "resolved": "https://registry.npmjs.org/@react-aria/toggle/-/toggle-3.12.4.tgz", + "integrity": "sha512-yVcl8kEFLsV47aCA22EMPcd/KWoYqPIPSzoKjRD/iWmxcP6iGzSxDjdUgMQojNGY8Q6wL8lUxfRqKBjvl/uezQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.27.0", + "@react-aria/utils": "^3.33.0", + "@react-stately/toggle": "^3.9.4", + "@react-types/checkbox": "^3.10.3", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/toolbar": { + "version": "3.0.0-beta.23", + "resolved": "https://registry.npmjs.org/@react-aria/toolbar/-/toolbar-3.0.0-beta.23.tgz", + "integrity": "sha512-FzvNf2hWtjEwk8F2MBf4qSs6AAR/p2WFSws6kJ4f0SrWXl4wR9VDEwBEUQcIPbWCK2aUsyOjubCh55Cl4t3MoQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/focus": "^3.21.4", + "@react-aria/i18n": "^3.12.15", + "@react-aria/utils": "^3.33.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/tooltip": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@react-aria/tooltip/-/tooltip-3.9.1.tgz", + "integrity": "sha512-mvEhqpvF4v/wj9zw3a8bsAEnySutGbxKXXt39s6WvF6dkVfaXfsmV9ahuMCHH//UGh/yidZGLrXX4YVdrgS8lA==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.27.0", + "@react-aria/utils": "^3.33.0", + "@react-stately/tooltip": "^3.5.10", + "@react-types/shared": "^3.33.0", + "@react-types/tooltip": "^3.5.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/tree": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@react-aria/tree/-/tree-3.1.6.tgz", + "integrity": "sha512-igLX+OQrbXCBLrtPWgUevU0iDrgTSAJh1ncHoPzfD/YDcyTDLqKdy2nZhNbJ/IdHCwTyzIknhFJ700K20Ymw9A==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/gridlist": "^3.14.3", + "@react-aria/i18n": "^3.12.15", + "@react-aria/selection": "^3.27.1", + "@react-aria/utils": "^3.33.0", + "@react-stately/tree": "^3.9.5", + "@react-types/button": "^3.15.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/utils": { + "version": "3.33.0", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.33.0.tgz", + "integrity": "sha512-yvz7CMH8d2VjwbSa5nGXqjU031tYhD8ddax95VzJsHSPyqHDEGfxul8RkhGV6oO7bVqZxVs6xY66NIgae+FHjw==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/ssr": "^3.9.10", + "@react-stately/flags": "^3.1.2", + "@react-stately/utils": "^3.11.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/virtualizer": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@react-aria/virtualizer/-/virtualizer-4.1.12.tgz", + "integrity": "sha512-va0VAD28nq7rk1vHZvnkq591EbWuDKBwh2NzAEn+zz9JjMtpg4utcihNXECJ1DwMRkpaT6q+KpOE7dSdzTxPBQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/utils": "^3.33.0", + "@react-stately/virtualizer": "^4.4.5", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-aria/visually-hidden": { + "version": "3.8.30", + "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.8.30.tgz", + "integrity": "sha512-iY44USEU8sJy0NOJ/sTDn3YlspbhHuVG3nx2YYrzfmxbS3i+lNwkCfG8kJ77dtmbuDLIdBGKENjGkbcwz3kiJg==", + "license": "Apache-2.0", + "dependencies": { + "@react-aria/interactions": "^3.27.0", + "@react-aria/utils": "^3.33.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/autocomplete": { + "version": "3.0.0-beta.4", + "resolved": "https://registry.npmjs.org/@react-stately/autocomplete/-/autocomplete-3.0.0-beta.4.tgz", + "integrity": "sha512-K2Uy7XEdseFvgwRQ8CyrYEHMupjVKEszddOapP8deNz4hntYvT1aRm0m+sKa5Kl/4kvg9c/3NZpQcrky/vRZIg==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/utils": "^3.11.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/calendar": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/@react-stately/calendar/-/calendar-3.9.2.tgz", + "integrity": "sha512-AQj8/izwb7eY+KFqKcMLI2ygvnbAIwLuQG5KPHgJsMygFqnN4yzXKz5orGqVJnxEXLKiLPteVztx7b5EQobrtw==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.11.0", + "@react-stately/utils": "^3.11.0", + "@react-types/calendar": "^3.8.2", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/checkbox": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@react-stately/checkbox/-/checkbox-3.7.4.tgz", + "integrity": "sha512-oXHMkK22CWLcmNlunDuu4p52QXYmkpx6es9AjWx/xlh3XLZdJzo/5SANioOH1QvBtwPA/c2KQy+ZBqC21NtMHw==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/form": "^3.2.3", + "@react-stately/utils": "^3.11.0", + "@react-types/checkbox": "^3.10.3", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/collections": { + "version": "3.12.9", + "resolved": "https://registry.npmjs.org/@react-stately/collections/-/collections-3.12.9.tgz", + "integrity": "sha512-2jywPMhVgMOh0XtutxPqIxFCIiLOnL/GXIrRKoBEo8M3Q24NoMRBavUrn9RTvjqNnec1i/8w1/8sq8cmCKEohA==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/color": { + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/@react-stately/color/-/color-3.9.4.tgz", + "integrity": "sha512-SprAP5STMg6K0jq+A3UoimsvvTCIGItUtWurS/lDRoQJYajFR8IUdz+mekU/GaXzvFhMN32dijOtFcfxnA4cfA==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/number": "^3.6.5", + "@internationalized/string": "^3.2.7", + "@react-stately/form": "^3.2.3", + "@react-stately/numberfield": "^3.10.4", + "@react-stately/slider": "^3.7.4", + "@react-stately/utils": "^3.11.0", + "@react-types/color": "^3.1.3", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/combobox": { + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/@react-stately/combobox/-/combobox-3.12.2.tgz", + "integrity": "sha512-h4YRmzA+s3aMwUrXm6jyWLN0BWWXUNiodArB1wC24xNdeI7S8O3mxz6G2r3Ne8AE02FXmZXs9SD30Mx5vVVuqQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/collections": "^3.12.9", + "@react-stately/form": "^3.2.3", + "@react-stately/list": "^3.13.3", + "@react-stately/overlays": "^3.6.22", + "@react-stately/utils": "^3.11.0", + "@react-types/combobox": "^3.13.11", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/data": { + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/@react-stately/data/-/data-3.15.1.tgz", + "integrity": "sha512-lchubLxCWg1Yswpe9yRYJAjmzP0eTYZe+AQyFJQRIT6axRi9Gs92RIZ7zhwLXxI0vcWpnAWADB9kD4bsos7xww==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/datepicker": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/@react-stately/datepicker/-/datepicker-3.16.0.tgz", + "integrity": "sha512-mYtzKXufFVivrHjmxys3ryJFMPIQNhVqaSItmGnWv3ehxw+0HKBrROf3BFiEN4zP20euoP149ZaR4uNx90kMYw==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.11.0", + "@internationalized/number": "^3.6.5", + "@internationalized/string": "^3.2.7", + "@react-stately/form": "^3.2.3", + "@react-stately/overlays": "^3.6.22", + "@react-stately/utils": "^3.11.0", + "@react-types/datepicker": "^3.13.4", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/disclosure": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@react-stately/disclosure/-/disclosure-3.0.10.tgz", + "integrity": "sha512-nUistLYMjBDy+yaS5H0y0Dwfcjr12zpIh7vjhQXF4wxIh3D08NRvV1NCQ0LV+IsMej/qoPJvKS4EnXHxBI3GmQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/utils": "^3.11.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/dnd": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@react-stately/dnd/-/dnd-3.7.3.tgz", + "integrity": "sha512-yBtzAimyYvJWnzP80Scx7l559+43TVSyjaMpUR6/s2IjqD3XoPKgPsv7KaFUmygBTkCBGBFJn404rYgMCOsu3g==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/selection": "^3.20.8", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/flags": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@react-stately/flags/-/flags-3.1.2.tgz", + "integrity": "sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + } + }, + "node_modules/@react-stately/form": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/@react-stately/form/-/form-3.2.3.tgz", + "integrity": "sha512-NPvjJtns1Pq9uvqeRJCf8HIdVmOm2ARLYQ2F/sqXj1w5IChJ4oWL4Xzvj29/zBitgE1vVjDhnrnwSfNlHZGX0g==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/grid": { + "version": "3.11.8", + "resolved": "https://registry.npmjs.org/@react-stately/grid/-/grid-3.11.8.tgz", + "integrity": "sha512-tCabR5U7ype+uEElS5Chv5n6ntUv3drXa9DwebjO05cFevUmjTkEfYPJWixpgX4UlCCvjdUFgzeQlJF+gCiozg==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/collections": "^3.12.9", + "@react-stately/selection": "^3.20.8", + "@react-types/grid": "^3.3.7", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/layout": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/@react-stately/layout/-/layout-4.5.3.tgz", + "integrity": "sha512-BDYnvO2AKzvWfxxVM96kif3qCynsA+XcNoQC+T77exH+LLT8zlK9oOdarZXTlok/eZmjs6+5wmjq51PeL6eM5w==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/collections": "^3.12.9", + "@react-stately/table": "^3.15.3", + "@react-stately/virtualizer": "^4.4.5", + "@react-types/grid": "^3.3.7", + "@react-types/shared": "^3.33.0", + "@react-types/table": "^3.13.5", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/list": { + "version": "3.13.3", + "resolved": "https://registry.npmjs.org/@react-stately/list/-/list-3.13.3.tgz", + "integrity": "sha512-xN0v7rzhIKshhcshOzx+ZgVngXnGCtMPRdhoDLGaHzQy5YfxvKBMNLCnr5Lm4T1U/kIvHbyzxmr5uwmH8WxoIg==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/collections": "^3.12.9", + "@react-stately/selection": "^3.20.8", + "@react-stately/utils": "^3.11.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/menu": { + "version": "3.9.10", + "resolved": "https://registry.npmjs.org/@react-stately/menu/-/menu-3.9.10.tgz", + "integrity": "sha512-dY9FzjQ+6iNInVujZPyMklDGoSbaoO0yguUnALAY+yfkPAyStEElfm4aXZgRfNKOTNHe9E34oV7qefSYsclvTg==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/overlays": "^3.6.22", + "@react-types/menu": "^3.10.6", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/numberfield": { + "version": "3.10.4", + "resolved": "https://registry.npmjs.org/@react-stately/numberfield/-/numberfield-3.10.4.tgz", + "integrity": "sha512-EniHHwXOw/Ta0x5j61OvldDAvLoi/8xOo//bzrqwnDvf2/1IKGFMD9CHs7HYhQw+9oNl3Q2V1meOTNPc4PvoMQ==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/number": "^3.6.5", + "@react-stately/form": "^3.2.3", + "@react-stately/utils": "^3.11.0", + "@react-types/numberfield": "^3.8.17", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/overlays": { + "version": "3.6.22", + "resolved": "https://registry.npmjs.org/@react-stately/overlays/-/overlays-3.6.22.tgz", + "integrity": "sha512-sWBnuy5dqVp8d+1e+ABTRVB3YBcOW86/90pF5PWY44au3bUFXVSUBO2QMdR/6JtojDoPRmrjufonI19/Zs/20w==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/utils": "^3.11.0", + "@react-types/overlays": "^3.9.3", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/radio": { + "version": "3.11.4", + "resolved": "https://registry.npmjs.org/@react-stately/radio/-/radio-3.11.4.tgz", + "integrity": "sha512-3svsW5VxJA5/p1vO+Qlxv+7Jq9g7f4rqX9Rbqdfd+pH7ykHaV0CUKkSRMaWfcY8Vgaf2xmcc6dvusPRqKX8T1A==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/form": "^3.2.3", + "@react-stately/utils": "^3.11.0", + "@react-types/radio": "^3.9.3", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/searchfield": { + "version": "3.5.18", + "resolved": "https://registry.npmjs.org/@react-stately/searchfield/-/searchfield-3.5.18.tgz", + "integrity": "sha512-C3/1wOON5oK0QBljj0vSbHm/IWgd29NxB+7zT1JjZcxtbcFxCj4HOxKdnPCT/d8Pojb0YS26QgKzatLZ0NnhgQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/utils": "^3.11.0", + "@react-types/searchfield": "^3.6.7", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/select": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/@react-stately/select/-/select-3.9.1.tgz", + "integrity": "sha512-CJQRqv8Dg+0RRvcig3a2YfY6POJIscDINvidRF31yK6J72rsP01dY3ria9aJjizNDHR9Q5dWFp/z+ii0cOTWIQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/form": "^3.2.3", + "@react-stately/list": "^3.13.3", + "@react-stately/overlays": "^3.6.22", + "@react-stately/utils": "^3.11.0", + "@react-types/select": "^3.12.1", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/selection": { + "version": "3.20.8", + "resolved": "https://registry.npmjs.org/@react-stately/selection/-/selection-3.20.8.tgz", + "integrity": "sha512-V1kRN1NLW+i/3Xv+Q0pN9OzuM0zFEW9mdXOOOq7l+YL6hFjqIjttT2/q4KoyiNV3W0hfoRFSTQ7XCgqnqtwEng==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/collections": "^3.12.9", + "@react-stately/utils": "^3.11.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/slider": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@react-stately/slider/-/slider-3.7.4.tgz", + "integrity": "sha512-cSOYSx2nsOQejMg6Ql0+GUpqAiPwRA5teYXUghNvuBDtVxnd4l2rnXs54Ww48tU43xf2+L3kkmMofThjABoEPw==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/utils": "^3.11.0", + "@react-types/shared": "^3.33.0", + "@react-types/slider": "^3.8.3", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/table": { + "version": "3.15.3", + "resolved": "https://registry.npmjs.org/@react-stately/table/-/table-3.15.3.tgz", + "integrity": "sha512-W1wR0O/PmdD8hCUFIAelHICjUX/Ii6ZldPlH6EILr9olyGpoCaY7XmnyG7kii1aANuQGBeskjJdXvS6LX/gyDw==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/collections": "^3.12.9", + "@react-stately/flags": "^3.1.2", + "@react-stately/grid": "^3.11.8", + "@react-stately/selection": "^3.20.8", + "@react-stately/utils": "^3.11.0", + "@react-types/grid": "^3.3.7", + "@react-types/shared": "^3.33.0", + "@react-types/table": "^3.13.5", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/tabs": { + "version": "3.8.8", + "resolved": "https://registry.npmjs.org/@react-stately/tabs/-/tabs-3.8.8.tgz", + "integrity": "sha512-BZImWT+pHZitImRQkoL7jVhTtpGPSra1Rhh4pi8epzwogeqseEIEpuWpQebjQP74r1kfNi/iT2p5Qb31eWfh1Q==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/list": "^3.13.3", + "@react-types/shared": "^3.33.0", + "@react-types/tabs": "^3.3.21", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/toast": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@react-stately/toast/-/toast-3.1.3.tgz", + "integrity": "sha512-mT9QJKmD523lqFpOp0VWZ6QHZENFK7HrodnNJDVc7g616s5GNmemdlkITV43fSY3tHeThCVvPu+Uzh7RvQ9mpQ==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0", + "use-sync-external-store": "^1.6.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/toggle": { + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/@react-stately/toggle/-/toggle-3.9.4.tgz", + "integrity": "sha512-tjWsshRJtHC+PI5NYMlnDlV/BTo1eWq6fmR6x1mXlQfKuKGTJRzhgJyaQ2mc5K+LkifD7fchOhfapHCrRlzwMg==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/utils": "^3.11.0", + "@react-types/checkbox": "^3.10.3", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/tooltip": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@react-stately/tooltip/-/tooltip-3.5.10.tgz", + "integrity": "sha512-GauUdc6Of08Np2iUw4xx/DdgpvszS9CxJWYcRnNyAAGPLQrmniVrpJvb0EUKQTP9sUSci1SlmpvJh4SNZx26Bw==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/overlays": "^3.6.22", + "@react-types/tooltip": "^3.5.1", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/tree": { + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/@react-stately/tree/-/tree-3.9.5.tgz", + "integrity": "sha512-UpvBlzL/MpFdOepDg+cohI/zvw8DEVM8cXY/OZ8tKUXWpew1HpUglwnAI3ivm0L2k9laUIB9siW0g04ZWiH9Lg==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/collections": "^3.12.9", + "@react-stately/selection": "^3.20.8", + "@react-stately/utils": "^3.11.0", + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/utils": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@react-stately/utils/-/utils-3.11.0.tgz", + "integrity": "sha512-8LZpYowJ9eZmmYLpudbo/eclIRnbhWIJZ994ncmlKlouNzKohtM8qTC6B1w1pwUbiwGdUoyzLuQbeaIor5Dvcw==", + "license": "Apache-2.0", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-stately/virtualizer": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@react-stately/virtualizer/-/virtualizer-4.4.5.tgz", + "integrity": "sha512-MP33zys3nRYTk/+3BPchxlil9GrwbMksc3XuvNACeZqYEA/oEidsHffgPL+LY0iitKCmQE6pg49MI5HvBuOd2w==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0", + "@swc/helpers": "^0.5.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/autocomplete": { + "version": "3.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/@react-types/autocomplete/-/autocomplete-3.0.0-alpha.37.tgz", + "integrity": "sha512-9KkL/UEUHIqp4OD4PffeZPiRV93ZBKq84sBrzTbTIPN+os+N+Lfz45Mg67NM2RumR/KQSVE0gZp7OA0eOvxPYA==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/combobox": "^3.13.11", + "@react-types/searchfield": "^3.6.7", + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/breadcrumbs": { + "version": "3.7.18", + "resolved": "https://registry.npmjs.org/@react-types/breadcrumbs/-/breadcrumbs-3.7.18.tgz", + "integrity": "sha512-zwltqx2XSELBRQeuCraxrdfT4fpIOVu6eQXsZ4RhWlsT7DLhzj3pUGkxdPDAMfYaVdyNBqc+nhiAnCwz6tUJ8A==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/link": "^3.6.6", + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/button": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.15.0.tgz", + "integrity": "sha512-X/K2/Oeuq7Hi8nMIzx4/YlZuvWFiSOHZt27p4HmThCnNO/9IDFPmvPrpkYjWN5eN9Nuk+P5vZUb4A7QJgYpvGA==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/calendar": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@react-types/calendar/-/calendar-3.8.2.tgz", + "integrity": "sha512-QbPFhvBQfrsz3x1Nnatr5SL+8XtbxvP4obESFuDrKmsqaaAv+jG5vwLiPTKp6Z3L+MWkCvKavBPuW+byhq+69A==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.11.0", + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/checkbox": { + "version": "3.10.3", + "resolved": "https://registry.npmjs.org/@react-types/checkbox/-/checkbox-3.10.3.tgz", + "integrity": "sha512-Xw4jHG7uK352Wc18XXzdzmtr3Xjg8d2tPoBGNgsw39f92EY2UpoDAPHxYR0BaDe04lGfAn6YwVivI4OGVbjXIg==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@react-types/color/-/color-3.1.3.tgz", + "integrity": "sha512-XM0x8iZpAf036w9qceD2RFroehLxKRwkVer7EvdJNs8K8iUN8TuhCagzsomiSJtyYh5MFysEVQ2ir85toiAFyw==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0", + "@react-types/slider": "^3.8.3" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/combobox": { + "version": "3.13.11", + "resolved": "https://registry.npmjs.org/@react-types/combobox/-/combobox-3.13.11.tgz", + "integrity": "sha512-5/tdmTAvqPpiWzEeaV7uLLSbSTkkoQ1mVz6NfKMPuw4ZBkY3lPc9JDkkQjY/JrquZao+KY4Dx8ZIoS0NqkrFrw==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/datepicker": { + "version": "3.13.4", + "resolved": "https://registry.npmjs.org/@react-types/datepicker/-/datepicker-3.13.4.tgz", + "integrity": "sha512-B5sAPoYZfluDBpgVK3ADlHbXBKRkFCQFO18Bs091IvRRwqzfoO/uf+/9UpXMw+BEF4pciLf0/kdiVQTvI3MzlA==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.11.0", + "@react-types/calendar": "^3.8.2", + "@react-types/overlays": "^3.9.3", + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/dialog": { + "version": "3.5.23", + "resolved": "https://registry.npmjs.org/@react-types/dialog/-/dialog-3.5.23.tgz", + "integrity": "sha512-3tMzweYuaDOaufF5tZPMgXSA0pPFJNgdg89YRITh0wMXMG0pm+tAKVQJL1TSLLhOiLCEL08V8M/AK67dBdr2IA==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/overlays": "^3.9.3", + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/form": { + "version": "3.7.17", + "resolved": "https://registry.npmjs.org/@react-types/form/-/form-3.7.17.tgz", + "integrity": "sha512-wBFRJ3jehHw2X2Td/KwUNxFWOqXCK7OTGG9A+W3ZI3nDGyflHQpIjqKCKV1jRySs6sv7huiPckJ7ScDleCKf7w==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/grid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@react-types/grid/-/grid-3.3.7.tgz", + "integrity": "sha512-riET3xeKPTcRWQy6hYCMxdbdL3yubPY5Ow66b2GA2rEqoYvmDBniYXAM2Oh+q9s+YgnAP7qJK++ym8NljvHiLA==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/link": { + "version": "3.6.6", + "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.6.6.tgz", + "integrity": "sha512-M6WXxUJFmiF6GNu7xUH0uHj0jsorFBN6npkfSCNM4puStC8NbUT2+ZPySQyZXCoHMQ89g6qZ6vCc8QduVkTE7Q==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/listbox": { + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/@react-types/listbox/-/listbox-3.7.5.tgz", + "integrity": "sha512-Cn+yNip+YZBaGzu+z5xPNgmfSupnLl+li7uG5hRc+EArkk8/G42myRXz6M8wPrLM1bFAq3r85tAbyoXVmKG5Jw==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/menu": { + "version": "3.10.6", + "resolved": "https://registry.npmjs.org/@react-types/menu/-/menu-3.10.6.tgz", + "integrity": "sha512-OJTznQ4xE/VddBJU+HO4x5tceSOdyQhiHA1bREE1aHl+PcgHOUZLdMjXp1zFaGF16HhItHJaxpifJ4hzf4hWQA==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/overlays": "^3.9.3", + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/meter": { + "version": "3.4.14", + "resolved": "https://registry.npmjs.org/@react-types/meter/-/meter-3.4.14.tgz", + "integrity": "sha512-rNw0Do2AM3zLGZ0pSWweViuddg1uW99PWzE6RQXE8nsTHTeiwDZt9SYGdObEnjd+nJ3YzemqekG0Kqt93iNBcA==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/progress": "^3.5.17" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/numberfield": { + "version": "3.8.17", + "resolved": "https://registry.npmjs.org/@react-types/numberfield/-/numberfield-3.8.17.tgz", + "integrity": "sha512-Q9n24OaSMXrebMowbtowmHLNclknN3XkcBIaYMwA2BIGIl+fZFnI8MERM0pG87W+wki6FepDExsDW9YxQF4pnw==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/overlays": { + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.9.3.tgz", + "integrity": "sha512-LzetThNNk8T26pQRbs1I7+isuFhdFYREy7wJCsZmbB0FnZgCukGTfOtThZWv+ry11veyVJiX68jfl4SV6ACTWA==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/progress": { + "version": "3.5.17", + "resolved": "https://registry.npmjs.org/@react-types/progress/-/progress-3.5.17.tgz", + "integrity": "sha512-JtiGlek6QS04bFrRj1WfChjPNr7+3/+pd6yZayXGUkQUPHt1Z/cFnv3QZ/tSQTdUt1XXmjnCak9ZH9JQBqe64Q==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/radio": { + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/@react-types/radio/-/radio-3.9.3.tgz", + "integrity": "sha512-w2BrMGIiZxYXPCnnB2NQyifwE/rRFMIW87MyawrKO9zPSbnDkqLIHAAtqmlNk2zkz1ZEWjk9opNsuztjP7D4sA==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/searchfield": { + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/@react-types/searchfield/-/searchfield-3.6.7.tgz", + "integrity": "sha512-POo3spZcYD14aqo0f4eNbymJ8w9EKrlu0pOOjYYWI2P0GUSRmib9cBA9xZFhvRGHuNlHo3ePjeFitYQI7L3g1g==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0", + "@react-types/textfield": "^3.12.7" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/select": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@react-types/select/-/select-3.12.1.tgz", + "integrity": "sha512-PtIUymvQNIIzgr+piJtK/8gbH7akWtbswIbfoADPSxtZEd1/vfUIO0s8c750s3XYNlmx/4DrhugQsLYwgC35yg==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/shared": { + "version": "3.33.0", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.33.0.tgz", + "integrity": "sha512-xuUpP6MyuPmJtzNOqF5pzFUIHH2YogyOQfUQHag54PRmWB7AbjuGWBUv0l1UDmz6+AbzAYGmDVAzcRDOu2PFpw==", + "license": "Apache-2.0", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/slider": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/@react-types/slider/-/slider-3.8.3.tgz", + "integrity": "sha512-HCDegYiUA27CcJKvFwgpR8ktFKf2nAirXqQEgVPV4uxk6JIeiRx41yqM/xPJGfmaqa7BARYARLT41yN2V8Kadg==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/switch": { + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@react-types/switch/-/switch-3.5.16.tgz", + "integrity": "sha512-6fynclkyg0wGHo3f1bwk4Z+gZZEg0Z63iP5TFhgHWdZ8W+Uq6F3u7V4IgQpuJ2NleL1c2jy2/CKdS9v06ac2Og==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/table": { + "version": "3.13.5", + "resolved": "https://registry.npmjs.org/@react-types/table/-/table-3.13.5.tgz", + "integrity": "sha512-4/CixlNmXSuJuX2IKuUlgNd/dEgNh3WvfE/bdwuI1t5JBdShP9tHIzSkgZbrzE2xX46NeA2xq4vXNO5kBv+QDA==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/grid": "^3.3.7", + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/tabs": { + "version": "3.3.21", + "resolved": "https://registry.npmjs.org/@react-types/tabs/-/tabs-3.3.21.tgz", + "integrity": "sha512-Dq9bKI62rHoI4LGGcBGlZ5s0aSwB0G4Y8o0r7hQZvf1eZWc9fmqdAdTTaGG/RUyhMIGRYWl5RRUBUuC5RmaO6w==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/textfield": { + "version": "3.12.7", + "resolved": "https://registry.npmjs.org/@react-types/textfield/-/textfield-3.12.7.tgz", + "integrity": "sha512-ddiacsS6sLFtAn2/fym7lR8nbdsLgPfelNDcsDqHiu6XUHh5TCNe8ItXHFaIiyfnKTH8uJqZrSli4wfAYNfMsw==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-types/tooltip": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@react-types/tooltip/-/tooltip-3.5.1.tgz", + "integrity": "sha512-h6xOAWbWUJKs9CzcCyzSPATLHq7W5dS866HkXLrtCrRDShLuzQnojZnctD2tKtNt17990hjnOhl36GUBuO5kyw==", + "license": "Apache-2.0", + "dependencies": { + "@react-types/overlays": "^3.9.3", + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, "node_modules/@rolldown/binding-android-arm64": { "version": "1.0.0-rc.5", "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.5.tgz", @@ -3038,6 +5112,107 @@ "sqlite-wasm": "bin/index.js" } }, + "node_modules/@supabase/auth-js": { + "version": "2.98.0", + "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.98.0.tgz", + "integrity": "sha512-GBH361T0peHU91AQNzOlIrjUZw9TZbB9YDRiyFgk/3Kvr3/Z1NWUZ2athWTfHhwNNi8IrW00foyFxQD9IO/Trg==", + "license": "MIT", + "dependencies": { + "tslib": "2.8.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@supabase/functions-js": { + "version": "2.98.0", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.98.0.tgz", + "integrity": "sha512-N/xEyiNU5Org+d+PNCpv+TWniAXRzxIURxDYsS/m2I/sfAB/HcM9aM2Dmf5edj5oWb9GxID1OBaZ8NMmPXL+Lg==", + "license": "MIT", + "dependencies": { + "tslib": "2.8.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@supabase/postgrest-js": { + "version": "2.98.0", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-2.98.0.tgz", + "integrity": "sha512-v6e9WeZuJijzUut8HyXu6gMqWFepIbaeaMIm1uKzei4yLg9bC9OtEW9O14LE/9ezqNbSAnSLO5GtOLFdm7Bpkg==", + "license": "MIT", + "dependencies": { + "tslib": "2.8.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@supabase/realtime-js": { + "version": "2.98.0", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.98.0.tgz", + "integrity": "sha512-rOWt28uGyFipWOSd+n0WVMr9kUXiWaa7J4hvyLCIHjRFqWm1z9CaaKAoYyfYMC1Exn3WT8WePCgiVhlAtWC2yw==", + "license": "MIT", + "dependencies": { + "@types/phoenix": "^1.6.6", + "@types/ws": "^8.18.1", + "tslib": "2.8.1", + "ws": "^8.18.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@supabase/ssr": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@supabase/ssr/-/ssr-0.8.0.tgz", + "integrity": "sha512-/PKk8kNFSs8QvvJ2vOww1mF5/c5W8y42duYtXvkOSe+yZKRgTTZywYG2l41pjhNomqESZCpZtXuWmYjFRMV+dw==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.2" + }, + "peerDependencies": { + "@supabase/supabase-js": "^2.76.1" + } + }, + "node_modules/@supabase/storage-js": { + "version": "2.98.0", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.98.0.tgz", + "integrity": "sha512-tzr2mG+v7ILSAZSfZMSL9OPyIH4z1ikgQ8EcQTKfMRz4EwmlFt3UnJaGzSOxyvF5b+fc9So7qdSUWTqGgeLokQ==", + "license": "MIT", + "dependencies": { + "iceberg-js": "^0.8.1", + "tslib": "2.8.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@supabase/supabase-js": { + "version": "2.98.0", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.98.0.tgz", + "integrity": "sha512-Ohc97CtInLwZyiSASz7tT9/Abm/vqnIbO9REp+PivVUII8UZsuI3bngRQnYgJdFoOIwvaEII1fX1qy8x0CyNiw==", + "license": "MIT", + "dependencies": { + "@supabase/auth-js": "2.98.0", + "@supabase/functions-js": "2.98.0", + "@supabase/postgrest-js": "2.98.0", + "@supabase/realtime-js": "2.98.0", + "@supabase/storage-js": "2.98.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.19.tgz", + "integrity": "sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, "node_modules/@tailwindcss/node": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.2.1.tgz", @@ -3475,7 +5650,6 @@ "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.90.20.tgz", "integrity": "sha512-OMD2HLpNouXEfZJWcKeVKUgQ5n+n3A2JFmBaScpNDUqSrQSjiveC7dKMe53uJUg1nDG16ttFPz2xfilz6i2uVg==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" @@ -3518,7 +5692,6 @@ "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.21.tgz", "integrity": "sha512-0Lu6y5t+tvlTJMTO7oh5NSpJfpg/5D41LlThfepTixPYkJ0sE2Jj0m0f6yYqujBwIXlId87e234+MxG3D3g7kg==", "license": "MIT", - "peer": true, "dependencies": { "@tanstack/query-core": "5.90.20" }, @@ -3552,7 +5725,6 @@ "resolved": "https://registry.npmjs.org/@tanstack/react-router/-/react-router-1.162.9.tgz", "integrity": "sha512-APbwKAF+YgSNpHAaA+FdgrmfI/7+qa9hApuVO9+P0IVksJayNIWFQ/6AFG90WQiTYWk64RI1R9cFV2K9Z+j2pQ==", "license": "MIT", - "peer": true, "dependencies": { "@tanstack/history": "1.161.4", "@tanstack/react-store": "^0.9.1", @@ -3722,7 +5894,6 @@ "resolved": "https://registry.npmjs.org/@tanstack/router-core/-/router-core-1.162.9.tgz", "integrity": "sha512-eG7C0oVtZbFOkfvsaF8UyGuNjEc1BfIfD5EzQNwG4vqLKOAyY5SMFBCNjabAi2sglRhL0ZOwKon1SExusU5fxA==", "license": "MIT", - "peer": true, "dependencies": { "@tanstack/history": "1.161.4", "@tanstack/store": "^0.9.1", @@ -3790,6 +5961,15 @@ "url": "https://github.com/sponsors/tannerlinsley" } }, + "node_modules/@tanstack/router-generator/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/@tanstack/router-plugin": { "version": "1.162.9", "resolved": "https://registry.npmjs.org/@tanstack/router-plugin/-/router-plugin-1.162.9.tgz", @@ -3842,6 +6022,15 @@ } } }, + "node_modules/@tanstack/router-plugin/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/@tanstack/router-ssr-query-core": { "version": "1.162.9", "resolved": "https://registry.npmjs.org/@tanstack/router-ssr-query-core/-/router-ssr-query-core-1.162.9.tgz", @@ -3970,6 +6159,15 @@ "node": ">=6.9.0" } }, + "node_modules/@tanstack/start-plugin-core/node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, "node_modules/@tanstack/start-server-core": { "version": "1.162.9", "resolved": "https://registry.npmjs.org/@tanstack/start-server-core/-/start-server-core-1.162.9.tgz", @@ -4037,7 +6235,6 @@ "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -4213,12 +6410,17 @@ "@types/pg": "*" } }, + "node_modules/@types/phoenix": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.7.tgz", + "integrity": "sha512-oN9ive//QSBkf19rfDv45M7eZPi0eEXylht2OLEXicu5b4KoQ1OzXIw+xDSGWxSxe1JmepRR/ZH283vsu518/Q==", + "license": "MIT" + }, "node_modules/@types/react": { "version": "19.2.14", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -4228,7 +6430,6 @@ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", "license": "MIT", - "peer": true, "peerDependencies": { "@types/react": "^19.2.0" } @@ -4242,6 +6443,15 @@ "@types/node": "*" } }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@vitejs/plugin-react": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.1.4.tgz", @@ -4410,7 +6620,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -4645,7 +6854,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -4814,6 +7022,12 @@ "url": "https://polar.sh/cva" } }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", @@ -4864,6 +7078,19 @@ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "license": "MIT" }, + "node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/cookie-es": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-2.0.0.tgz", @@ -4896,7 +7123,6 @@ "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.4.4.tgz", "integrity": "sha512-w6c4OdpRNnudVmcgr7brb/+/HmYjMQvYToO/oTrprTwxRUiom3LYWU1PMWuD006okbUWpII1Ea9/+kwpUfmyRg==", "license": "MIT", - "peer": true, "peerDependencies": { "srvx": ">=0.7.1" }, @@ -4978,8 +7204,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/data-urls": { "version": "6.0.1", @@ -5010,7 +7235,6 @@ "resolved": "https://registry.npmjs.org/db0/-/db0-0.3.4.tgz", "integrity": "sha512-RiXXi4WaNzPTHEOu8UPQKMooIbqOEyqA1t7Z6MsdxSCeb8iUC9ko3LcmsLmeUt2SM5bctfArZKkRQggKZz7JNw==", "license": "MIT", - "peer": true, "peerDependencies": { "@electric-sql/pglite": "*", "@libsql/client": "*", @@ -5061,7 +7285,6 @@ "version": "10.6.0", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", - "dev": true, "license": "MIT" }, "node_modules/dedent": { @@ -5656,6 +7879,15 @@ "human-id": "dist/cli.js" } }, + "node_modules/iceberg-js": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/iceberg-js/-/iceberg-js-0.8.1.tgz", + "integrity": "sha512-1dhVQZXhcHje7798IVM+xoo/1ZdVfzOMIc8/rgVSijRK38EDqOJoGula9N/8ZI5RD8QTxNQtK/Gozpr+qUqRRA==", + "license": "MIT", + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -5680,6 +7912,28 @@ "module-details-from-path": "^1.0.4" } }, + "node_modules/input-otp": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/input-otp/-/input-otp-1.4.2.tgz", + "integrity": "sha512-l3jWwYNvrEa6NTCt7BECfCm48GvwuZzkoeG3gBL2w4CHeOXW3eKFmf9UNYkNfYc3mxMrthMnxjIE07MT0zLBQA==", + "license": "MIT", + "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" + } + }, + "node_modules/intl-messageformat": { + "version": "10.7.18", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-10.7.18.tgz", + "integrity": "sha512-m3Ofv/X/tV8Y3tHXLohcuVuhWKo7BBq62cqY15etqmLxg2DZ34AGGgQDeR+SCta2+zICb1NX83af0GJmbQ1++g==", + "license": "BSD-3-Clause", + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/fast-memoize": "2.2.7", + "@formatjs/icu-messageformat-parser": "2.11.4", + "tslib": "^2.8.0" + } + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -5898,7 +8152,6 @@ "integrity": "sha512-FIyV/64EkKhJmjgC0g2hygpBv5RNWVPyNCqSAD7eTCv6eFWNIi4PN1UvdSJGicN/o35bnevgis4Y0UDC0qi8jQ==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=14.0.0" } @@ -6356,23 +8609,6 @@ } } }, - "node_modules/nitro/node_modules/chokidar": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-5.0.0.tgz", - "integrity": "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "readdirp": "^5.0.0" - }, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/nitro/node_modules/consola": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", @@ -6382,31 +8618,6 @@ "node": "^14.18.0 || >=16.10.0" } }, - "node_modules/nitro/node_modules/lru-cache": { - "version": "11.2.6", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", - "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", - "license": "BlueOak-1.0.0", - "optional": true, - "peer": true, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/nitro/node_modules/readdirp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", - "integrity": "sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/nitro/node_modules/unstorage": { "version": "2.0.0-alpha.5", "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-2.0.0-alpha.5.tgz", @@ -6582,8 +8793,7 @@ "version": "2.0.0-alpha.3", "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-2.0.0-alpha.3.tgz", "integrity": "sha512-zpYTCs2byOuft65vI3z43Dd6iSdFbOZZLb9/d21aCpx2rGastVU9dOCv0lu4ykc1Ur1anAYjDi3SUvR0vq50JA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/ohash": { "version": "2.0.11", @@ -6905,17 +9115,110 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.10.0" } }, + "node_modules/react-aria": { + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/react-aria/-/react-aria-3.46.0.tgz", + "integrity": "sha512-We0diSsMK35jw53JFjgF9w8obBjehAUI/TRiynnzSrjRd9eoHYQcecHlptke/HEFxvya/Gcm+LA21Im1+qnIeQ==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/string": "^3.2.7", + "@react-aria/breadcrumbs": "^3.5.31", + "@react-aria/button": "^3.14.4", + "@react-aria/calendar": "^3.9.4", + "@react-aria/checkbox": "^3.16.4", + "@react-aria/color": "^3.1.4", + "@react-aria/combobox": "^3.14.2", + "@react-aria/datepicker": "^3.16.0", + "@react-aria/dialog": "^3.5.33", + "@react-aria/disclosure": "^3.1.2", + "@react-aria/dnd": "^3.11.5", + "@react-aria/focus": "^3.21.4", + "@react-aria/gridlist": "^3.14.3", + "@react-aria/i18n": "^3.12.15", + "@react-aria/interactions": "^3.27.0", + "@react-aria/label": "^3.7.24", + "@react-aria/landmark": "^3.0.9", + "@react-aria/link": "^3.8.8", + "@react-aria/listbox": "^3.15.2", + "@react-aria/menu": "^3.20.0", + "@react-aria/meter": "^3.4.29", + "@react-aria/numberfield": "^3.12.4", + "@react-aria/overlays": "^3.31.1", + "@react-aria/progress": "^3.4.29", + "@react-aria/radio": "^3.12.4", + "@react-aria/searchfield": "^3.8.11", + "@react-aria/select": "^3.17.2", + "@react-aria/selection": "^3.27.1", + "@react-aria/separator": "^3.4.15", + "@react-aria/slider": "^3.8.4", + "@react-aria/ssr": "^3.9.10", + "@react-aria/switch": "^3.7.10", + "@react-aria/table": "^3.17.10", + "@react-aria/tabs": "^3.11.0", + "@react-aria/tag": "^3.8.0", + "@react-aria/textfield": "^3.18.4", + "@react-aria/toast": "^3.0.10", + "@react-aria/tooltip": "^3.9.1", + "@react-aria/tree": "^3.1.6", + "@react-aria/utils": "^3.33.0", + "@react-aria/visually-hidden": "^3.8.30", + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/react-aria-components": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/react-aria-components/-/react-aria-components-1.15.1.tgz", + "integrity": "sha512-irGhZ+vBvoY9xJHf/qzPLLwFZ8cBUrYwPERGhgjE62dy/RXMUiEW+1DeTHz0OvtjbvFbhNp/I7XM9IaBvmLALg==", + "license": "Apache-2.0", + "dependencies": { + "@internationalized/date": "^3.11.0", + "@internationalized/string": "^3.2.7", + "@react-aria/autocomplete": "3.0.0-rc.5", + "@react-aria/collections": "^3.0.2", + "@react-aria/dnd": "^3.11.5", + "@react-aria/focus": "^3.21.4", + "@react-aria/interactions": "^3.27.0", + "@react-aria/live-announcer": "^3.4.4", + "@react-aria/overlays": "^3.31.1", + "@react-aria/ssr": "^3.9.10", + "@react-aria/textfield": "^3.18.4", + "@react-aria/toolbar": "3.0.0-beta.23", + "@react-aria/utils": "^3.33.0", + "@react-aria/virtualizer": "^4.1.12", + "@react-stately/autocomplete": "3.0.0-beta.4", + "@react-stately/layout": "^4.5.3", + "@react-stately/selection": "^3.20.8", + "@react-stately/table": "^3.15.3", + "@react-stately/utils": "^3.11.0", + "@react-stately/virtualizer": "^4.4.5", + "@react-types/form": "^3.7.17", + "@react-types/grid": "^3.3.7", + "@react-types/shared": "^3.33.0", + "@react-types/table": "^3.13.5", + "@swc/helpers": "^0.5.0", + "client-only": "^0.0.1", + "react-aria": "^3.46.0", + "react-stately": "^3.44.0", + "use-sync-external-store": "^1.6.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1", + "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, "node_modules/react-dom": { "version": "19.2.4", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", "license": "MIT", - "peer": true, "dependencies": { "scheduler": "^0.27.0" }, @@ -6940,6 +9243,43 @@ "node": ">=0.10.0" } }, + "node_modules/react-stately": { + "version": "3.44.0", + "resolved": "https://registry.npmjs.org/react-stately/-/react-stately-3.44.0.tgz", + "integrity": "sha512-Il3trIp2Mo1SSa9PhQFraqOpC74zEFmwuMAlu5Fj3qdtihJOKOFqoyDl7ALRrVfnvCkau6rui155d/NMKvd+RQ==", + "license": "Apache-2.0", + "dependencies": { + "@react-stately/calendar": "^3.9.2", + "@react-stately/checkbox": "^3.7.4", + "@react-stately/collections": "^3.12.9", + "@react-stately/color": "^3.9.4", + "@react-stately/combobox": "^3.12.2", + "@react-stately/data": "^3.15.1", + "@react-stately/datepicker": "^3.16.0", + "@react-stately/disclosure": "^3.0.10", + "@react-stately/dnd": "^3.7.3", + "@react-stately/form": "^3.2.3", + "@react-stately/list": "^3.13.3", + "@react-stately/menu": "^3.9.10", + "@react-stately/numberfield": "^3.10.4", + "@react-stately/overlays": "^3.6.22", + "@react-stately/radio": "^3.11.4", + "@react-stately/searchfield": "^3.5.18", + "@react-stately/select": "^3.9.1", + "@react-stately/selection": "^3.20.8", + "@react-stately/slider": "^3.7.4", + "@react-stately/table": "^3.15.3", + "@react-stately/tabs": "^3.8.8", + "@react-stately/toast": "^3.1.3", + "@react-stately/toggle": "^3.9.4", + "@react-stately/tooltip": "^3.5.10", + "@react-stately/tree": "^3.9.5", + "@react-types/shared": "^3.33.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -7063,7 +9403,6 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.59.0.tgz", "integrity": "sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==", "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -7155,7 +9494,6 @@ "resolved": "https://registry.npmjs.org/seroval/-/seroval-1.5.0.tgz", "integrity": "sha512-OE4cvmJ1uSPrKorFIH9/w/Qwuvi/IMcGbv5RKgcJ/zjA/IohDLU6SVaxFN9FwajbP7nsX0dQqMDes1whk3y+yw==", "license": "MIT", - "peer": true, "engines": { "node": ">=10" } @@ -7218,13 +9556,22 @@ "resolved": "https://registry.npmjs.org/solid-js/-/solid-js-1.9.11.tgz", "integrity": "sha512-WEJtcc5mkh/BnHA6Yrg4whlF8g6QwpmXXRg4P2ztPmcKeHHlH4+djYecBLhSpecZY2RRECXYUwIc/C2r3yzQ4Q==", "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.1.0", "seroval": "~1.5.0", "seroval-plugins": "~1.5.0" } }, + "node_modules/sonner": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/sonner/-/sonner-2.0.7.tgz", + "integrity": "sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==", + "license": "MIT", + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" + } + }, "node_modules/source-map": { "version": "0.7.6", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", @@ -7318,6 +9665,25 @@ "url": "https://github.com/sponsors/dcastil" } }, + "node_modules/tailwind-variants": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/tailwind-variants/-/tailwind-variants-3.2.2.tgz", + "integrity": "sha512-Mi4kHeMTLvKlM98XPnK+7HoBPmf4gygdFmqQPaDivc3DpYS6aIY6KiG/PgThrGvii5YZJqRsPz0aPyhoFzmZgg==", + "license": "MIT", + "engines": { + "node": ">=16.x", + "pnpm": ">=7.x" + }, + "peerDependencies": { + "tailwind-merge": ">=3.0.0", + "tailwindcss": "*" + }, + "peerDependenciesMeta": { + "tailwind-merge": { + "optional": true + } + } + }, "node_modules/tailwindcss": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.2.1.tgz", @@ -7528,7 +9894,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -7647,7 +10012,6 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.1.tgz", "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -8040,9 +10404,9 @@ } }, "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", + "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/package.json b/package.json index c033fb3..db1cdbb 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "check": "biome check" }, "dependencies": { - "@heroui/react": "3.0.0-beta.7", - "@heroui/styles": "3.0.0-beta.7", + "@heroui/react": "3.0.0-beta.8", + "@heroui/styles": "3.0.0-beta.8", "@sentry/tanstackstart-react": "^10.34.0", "@supabase/ssr": "^0.8.0", "@supabase/supabase-js": "^2.98.0", @@ -34,9 +34,11 @@ "nitro": "npm:nitro-nightly@latest", "react": "^19.2.0", "react-dom": "^19.2.0", + "sonner": "^2.0.7", "tailwind-merge": "^3.0.2", "tailwindcss": "^4.1.18", - "tw-animate-css": "^1.3.6" + "tw-animate-css": "^1.3.6", + "zod": "^4.3.6" }, "devDependencies": { "@biomejs/biome": "2.4.4", @@ -54,4 +56,4 @@ "vite-tsconfig-paths": "^5.1.4", "vitest": "^3.0.5" } -} \ No newline at end of file +} diff --git a/src/components/Header.tsx b/src/components/Header.tsx index dabbf30..e440efd 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -1,112 +1,111 @@ -import { Link } from '@tanstack/react-router' +import { Link } from "@tanstack/react-router" +import { Globe, Home, Languages, Menu, Network, X } from "lucide-react" -import ParaglideLocaleSwitcher from './LocaleSwitcher.tsx' - -import { useState } from 'react' -import { Globe, Home, Languages, Menu, Network, X } from 'lucide-react' +import { useState } from "react" +import ParaglideLocaleSwitcher from "./LocaleSwitcher.tsx" export default function Header() { - const [isOpen, setIsOpen] = useState(false) + const [isOpen, setIsOpen] = useState(false) - return ( - <> -
- -

- - TanStack Logo - -

-
+ return ( + <> +
+ +

+ + TanStack Logo + +

+
- + + ) } diff --git a/src/integrations/supabase/supabase.ts b/src/integrations/supabase/supabase.ts new file mode 100644 index 0000000..d0f876d --- /dev/null +++ b/src/integrations/supabase/supabase.ts @@ -0,0 +1,24 @@ +import { createServerClient } from "@supabase/ssr" +import { getCookies, setCookie } from "@tanstack/react-start/server" + +export function getSupabaseServerClient() { + return createServerClient( + process.env.VITE_SUPABASE_URL as string, + process.env.VITE_SUPABASE_KEY as string, + { + cookies: { + getAll() { + return Object.entries(getCookies()).map(([name, value]) => ({ + name, + value, + })) + }, + setAll(cookies) { + cookies.forEach((cookie) => { + setCookie(cookie.name, cookie.value) + }) + }, + }, + } + ) +} diff --git a/src/lib/hooks/useLogin.tsx b/src/lib/hooks/useLogin.tsx new file mode 100644 index 0000000..8a3a983 --- /dev/null +++ b/src/lib/hooks/useLogin.tsx @@ -0,0 +1,49 @@ +import { useMutation } from "@tanstack/react-query" +import { useNavigate } from "@tanstack/react-router" +import { toast } from "sonner" +import type z from "zod" +import { user } from "@/lib/server/user" +import { loginFormSchema } from "../validation/user" + +type TLoginForm = z.infer + +export const useLogin = () => { + const navigate = useNavigate() + + const loginMutation = useMutation({ + mutationKey: ["login"], + mutationFn: async (data: TLoginForm) => { + const response = await user.login({ data }) + if (response.error) { + throw new Error(response.message) + } + }, + onMutate: () => { + toast.loading("Logging in...", { id: "login" }) + }, + onSuccess: () => { + toast.success("Login successful! Redirecting to posts..", { id: "login" }) + navigate({ + to: "/", + }) + }, + onError: (error) => { + toast.error(error.message, { id: "login" }) + }, + }) + + const validateLogin = (formData: TLoginForm) => { + if (!loginFormSchema.safeParse(formData).success) { + toast.error("Error en el formulario.") + return false + } + + loginMutation.mutate(formData) + } + + return { + login: validateLogin, + isPending: loginMutation.isPending, + errors: errors, + } +} diff --git a/src/lib/server/user.ts b/src/lib/server/user.ts new file mode 100644 index 0000000..5f4cbfb --- /dev/null +++ b/src/lib/server/user.ts @@ -0,0 +1,142 @@ +import { redirect } from "@tanstack/react-router" +import { createServerFn } from "@tanstack/react-start" +import { getSupabaseServerClient } from "@/integrations/supabase/supabase" +import { + loginFormSchema, + signupFormSchema, + userListParamsSchema, +} from "../validation/user" + +const login = createServerFn({ method: "POST" }) + .inputValidator(loginFormSchema) + .handler(async ({ data }) => { + const supabase = getSupabaseServerClient() + + const login = await supabase.auth.signInWithPassword({ + email: data.email, + password: data.password, + }) + + if (login.error) { + return { + error: true, + message: login.error.message, + } + } + + return { + error: false, + } + }) + +const logout = createServerFn().handler(async () => { + const supabase = getSupabaseServerClient() + + const { error } = await supabase.auth.signOut() + if (error) { + return { + error: true, + message: error.message, + } + } + + throw redirect({ + to: "/", + viewTransition: true, + replace: true, + }) +}) + +const signup = createServerFn({ method: "POST" }) + .inputValidator(signupFormSchema) + .handler(async ({ data }) => { + const supabase = getSupabaseServerClient() + const { error } = await supabase.auth.signUp({ + email: data.email, + password: data.password, + options: { + data: { + name: data.name, + location: data.location, + }, + }, + }) + if (error) { + return { + error: true, + message: error.message, + } + } + + throw redirect({ + href: data.redirectUrl || "/", + }) + }) + +const userData = createServerFn().handler(async () => { + const supabase = getSupabaseServerClient() + const { data, error } = await supabase.auth.getUser() + if (error || !data.user) { + return { + error: true, + message: error?.message ?? "Unknown error", + } + } + return { + user: { + id: data.user.id, + email: data.user.email, + name: data.user.user_metadata.name || "", + location: data.user.user_metadata.location || "", + }, + error: false, + } +}) + +const resendConfirmationEmail = createServerFn({ method: "POST" }) + .inputValidator(signupFormSchema.pick({ email: true })) + .handler(async ({ data }) => { + const supabase = getSupabaseServerClient() + const { error } = await supabase.auth.resetPasswordForEmail(data.email) + + if (error) { + return { + error: true, + message: error.message, + } + } + + return { + error: false, + } + }) + +const userList = createServerFn() + .inputValidator(userListParamsSchema) + .handler(async ({ data }) => { + const supabase = getSupabaseServerClient() + const users = await supabase.auth.admin.listUsers({ + page: data.page, + perPage: data.limit, + }) + + if (users.error) { + return { + error: true, + message: users.error.message, + } + } + return { + users: users.data, + error: false, + } + }) + +export const user = { + login, + logout, + signup, + userData, + resendConfirmationEmail, + userList, +} diff --git a/src/lib/validation/user.ts b/src/lib/validation/user.ts new file mode 100644 index 0000000..9bcda76 --- /dev/null +++ b/src/lib/validation/user.ts @@ -0,0 +1,25 @@ +import * as z from "zod" + +export const loginFormSchema = z.object({ + email: z.string().email("Invalid email address"), + password: z.string().min(1, "Password must be at least 1 character long"), +}) + +export const signupFormSchema = z.object({ + email: z.string().email("Invalid email address"), + password: z.string().min(6, "Password must be at least 6 characters long"), + name: z.string().min(1, "The field is required"), + location: z.string().min(1, "The field is required"), + redirectUrl: z.string().optional(), +}) + +export const profileFormSchema = z.object({ + id: z.uuid(), + firstName: z.string().min(1, "First name is required"), + lastName: z.string().min(1, "Last name is required"), +}) + +export const userListParamsSchema = z.object({ + page: z.number().min(1).default(1), + limit: z.number().min(1).max(100).default(10), +}) diff --git a/src/routeTree.gen.ts b/src/routeTree.gen.ts index 53568ca..e7e1367 100644 --- a/src/routeTree.gen.ts +++ b/src/routeTree.gen.ts @@ -9,11 +9,17 @@ // Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified. import { Route as rootRouteImport } from './routes/__root' +import { Route as LoginRouteRouteImport } from './routes/login/route' import { Route as IndexRouteImport } from './routes/index' import { Route as DemoTanstackQueryRouteImport } from './routes/demo/tanstack-query' import { Route as DemoI18nRouteImport } from './routes/demo.i18n' import { Route as DemoSentryTestingRouteImport } from './routes/demo/sentry.testing' +const LoginRouteRoute = LoginRouteRouteImport.update({ + id: '/login', + path: '/login', + getParentRoute: () => rootRouteImport, +} as any) const IndexRoute = IndexRouteImport.update({ id: '/', path: '/', @@ -37,12 +43,14 @@ const DemoSentryTestingRoute = DemoSentryTestingRouteImport.update({ export interface FileRoutesByFullPath { '/': typeof IndexRoute + '/login': typeof LoginRouteRoute '/demo/i18n': typeof DemoI18nRoute '/demo/tanstack-query': typeof DemoTanstackQueryRoute '/demo/sentry/testing': typeof DemoSentryTestingRoute } export interface FileRoutesByTo { '/': typeof IndexRoute + '/login': typeof LoginRouteRoute '/demo/i18n': typeof DemoI18nRoute '/demo/tanstack-query': typeof DemoTanstackQueryRoute '/demo/sentry/testing': typeof DemoSentryTestingRoute @@ -50,6 +58,7 @@ export interface FileRoutesByTo { export interface FileRoutesById { __root__: typeof rootRouteImport '/': typeof IndexRoute + '/login': typeof LoginRouteRoute '/demo/i18n': typeof DemoI18nRoute '/demo/tanstack-query': typeof DemoTanstackQueryRoute '/demo/sentry/testing': typeof DemoSentryTestingRoute @@ -58,14 +67,21 @@ export interface FileRouteTypes { fileRoutesByFullPath: FileRoutesByFullPath fullPaths: | '/' + | '/login' | '/demo/i18n' | '/demo/tanstack-query' | '/demo/sentry/testing' fileRoutesByTo: FileRoutesByTo - to: '/' | '/demo/i18n' | '/demo/tanstack-query' | '/demo/sentry/testing' + to: + | '/' + | '/login' + | '/demo/i18n' + | '/demo/tanstack-query' + | '/demo/sentry/testing' id: | '__root__' | '/' + | '/login' | '/demo/i18n' | '/demo/tanstack-query' | '/demo/sentry/testing' @@ -73,6 +89,7 @@ export interface FileRouteTypes { } export interface RootRouteChildren { IndexRoute: typeof IndexRoute + LoginRouteRoute: typeof LoginRouteRoute DemoI18nRoute: typeof DemoI18nRoute DemoTanstackQueryRoute: typeof DemoTanstackQueryRoute DemoSentryTestingRoute: typeof DemoSentryTestingRoute @@ -80,6 +97,13 @@ export interface RootRouteChildren { declare module '@tanstack/react-router' { interface FileRoutesByPath { + '/login': { + id: '/login' + path: '/login' + fullPath: '/login' + preLoaderRoute: typeof LoginRouteRouteImport + parentRoute: typeof rootRouteImport + } '/': { id: '/' path: '/' @@ -113,6 +137,7 @@ declare module '@tanstack/react-router' { const rootRouteChildren: RootRouteChildren = { IndexRoute: IndexRoute, + LoginRouteRoute: LoginRouteRoute, DemoI18nRoute: DemoI18nRoute, DemoTanstackQueryRoute: DemoTanstackQueryRoute, DemoSentryTestingRoute: DemoSentryTestingRoute, diff --git a/src/routes/index.tsx b/src/routes/index.tsx index d6b064d..09e0cee 100644 --- a/src/routes/index.tsx +++ b/src/routes/index.tsx @@ -53,7 +53,6 @@ function App() { return (
-
diff --git a/src/routes/login/route.tsx b/src/routes/login/route.tsx new file mode 100644 index 0000000..86a7694 --- /dev/null +++ b/src/routes/login/route.tsx @@ -0,0 +1,142 @@ +import { Button, Card, Input, Label, Tabs } from "@heroui/react" +import { createFileRoute } from "@tanstack/react-router" +import { LogIn } from "lucide-react" +import { useState } from "react" + +export const Route = createFileRoute("/login")({ + component: RouteComponent, +}) + +function RouteComponent() { + const [values, setValues] = useState({ + email: "", + password: "", + }) + return ( +
+
+

+ FindyourPilot +

+
+ + + + + + + Acceso + + + + + Registro + + + + + + + +
+ + + setValues({ ...values, email: e.target.value }) + } + variant="secondary" + className="py-4 text-lg " + required + /> + + + setValues({ ...values, password: e.target.value }) + } + variant="secondary" + className="py-4 text-lg " + required + /> +
+ +
+
+
+ +
+ + +
+
+
+
+
+
+
+ ) +} diff --git a/src/styles.css b/src/styles.css index 0212628..740cdab 100644 --- a/src/styles.css +++ b/src/styles.css @@ -18,122 +18,91 @@ code { font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; } +/* + * HeroUI Theme Customization + * Add this to your global.css after importing @heroui/styles + * Only includes base variables from variables.css + * @see https://v3.heroui.com/docs/react/getting-started/theming + */ -:root { - --background: oklch(1 0 0); - --foreground: oklch(0.141 0.005 285.823); - --card: oklch(1 0 0); - --card-foreground: oklch(0.141 0.005 285.823); - --popover: oklch(1 0 0); - --popover-foreground: oklch(0.141 0.005 285.823); - --primary: oklch(0.21 0.006 285.885); - --primary-foreground: oklch(0.985 0 0); - --secondary: oklch(0.967 0.001 286.375); - --secondary-foreground: oklch(0.21 0.006 285.885); - --muted: oklch(0.967 0.001 286.375); - --muted-foreground: oklch(0.552 0.016 285.938); - --accent: oklch(0.967 0.001 286.375); - --accent-foreground: oklch(0.21 0.006 285.885); - --destructive: oklch(0.577 0.245 27.325); - --destructive-foreground: oklch(0.577 0.245 27.325); - --border: oklch(0.92 0.004 286.32); - --input: oklch(0.92 0.004 286.32); - --ring: oklch(0.871 0.006 286.286); - --chart-1: oklch(0.646 0.222 41.116); - --chart-2: oklch(0.6 0.118 184.704); - --chart-3: oklch(0.398 0.07 227.392); - --chart-4: oklch(0.828 0.189 84.429); - --chart-5: oklch(0.769 0.188 70.08); - --radius: 0.625rem; - --sidebar: oklch(0.985 0 0); - --sidebar-foreground: oklch(0.141 0.005 285.823); - --sidebar-primary: oklch(0.21 0.006 285.885); - --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.967 0.001 286.375); - --sidebar-accent-foreground: oklch(0.21 0.006 285.885); - --sidebar-border: oklch(0.92 0.004 286.32); - --sidebar-ring: oklch(0.871 0.006 286.286); +:root, +.light, +.default, +[data-theme="light"], +[data-theme="default"] { + /* Theme Colors (Light Mode) */ + --accent: oklch(66.78% 0.2232 43.72); + --accent-foreground: oklch(15% 0.0300 43.72); + --background: oklch(97.02% 0.0064 43.72); + --border: oklch(90.00% 0.0064 43.72); + --danger: oklch(65.32% 0.2358 0.53); + --danger-foreground: oklch(99.11% 0 0); + --default: oklch(94.00% 0.0064 43.72); + --default-foreground: oklch(21.03% 0.0059 43.72); + --field-background: oklch(100.00% 0.0032 43.72); + --field-foreground: oklch(21.03% 0.0064 43.72); + --field-placeholder: oklch(55.17% 0.0128 43.72); + --focus: oklch(66.78% 0.2232 43.72); + --foreground: oklch(21.03% 0.0064 43.72); + --muted: oklch(55.17% 0.0128 43.72); + --overlay: oklch(100.00% 0.0019 43.72); + --overlay-foreground: oklch(21.03% 0.0064 43.72); + --scrollbar: oklch(87.10% 0.0064 43.72); + --segment: oklch(100.00% 0.0064 43.72); + --segment-foreground: oklch(21.03% 0.0064 43.72); + --separator: oklch(92.00% 0.0064 43.72); + --success: oklch(73.29% 0.1960 125.60); + --success-foreground: oklch(21.03% 0.0059 125.60); + --surface: oklch(100.00% 0.0032 43.72); + --surface-foreground: oklch(21.03% 0.0064 43.72); + --surface-secondary: oklch(95.24% 0.0051 43.72); + --surface-secondary-foreground: oklch(21.03% 0.0064 43.72); + --surface-tertiary: oklch(93.73% 0.0051 43.72); + --surface-tertiary-foreground: oklch(21.03% 0.0064 43.72); + --warning: oklch(78.19% 0.1605 47.12); + --warning-foreground: oklch(21.03% 0.0059 47.12); + + /* Border Radius */ + --radius: 0.125rem; + --field-radius: 0.125rem; + + /* Font Family */ + /* Make sure to load Inter font in your app */ + --font-sans: var(--font-inter); } -.dark { - --background: oklch(0.141 0.005 285.823); - --foreground: oklch(0.985 0 0); - --card: oklch(0.141 0.005 285.823); - --card-foreground: oklch(0.985 0 0); - --popover: oklch(0.141 0.005 285.823); - --popover-foreground: oklch(0.985 0 0); - --primary: oklch(0.985 0 0); - --primary-foreground: oklch(0.21 0.006 285.885); - --secondary: oklch(0.274 0.006 286.033); - --secondary-foreground: oklch(0.985 0 0); - --muted: oklch(0.274 0.006 286.033); - --muted-foreground: oklch(0.705 0.015 286.067); - --accent: oklch(0.274 0.006 286.033); - --accent-foreground: oklch(0.985 0 0); - --destructive: oklch(0.396 0.141 25.723); - --destructive-foreground: oklch(0.637 0.237 25.331); - --border: oklch(0.274 0.006 286.033); - --input: oklch(0.274 0.006 286.033); - --ring: oklch(0.442 0.017 285.786); - --chart-1: oklch(0.488 0.243 264.376); - --chart-2: oklch(0.696 0.17 162.48); - --chart-3: oklch(0.769 0.188 70.08); - --chart-4: oklch(0.627 0.265 303.9); - --chart-5: oklch(0.645 0.246 16.439); - --sidebar: oklch(0.21 0.006 285.885); - --sidebar-foreground: oklch(0.985 0 0); - --sidebar-primary: oklch(0.488 0.243 264.376); - --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.274 0.006 286.033); - --sidebar-accent-foreground: oklch(0.985 0 0); - --sidebar-border: oklch(0.274 0.006 286.033); - --sidebar-ring: oklch(0.442 0.017 285.786); -} - -@theme inline { - --color-background: var(--background); - --color-foreground: var(--foreground); - --color-card: var(--card); - --color-card-foreground: var(--card-foreground); - --color-popover: var(--popover); - --color-popover-foreground: var(--popover-foreground); - --color-primary: var(--primary); - --color-primary-foreground: var(--primary-foreground); - --color-secondary: var(--secondary); - --color-secondary-foreground: var(--secondary-foreground); - --color-muted: var(--muted); - --color-muted-foreground: var(--muted-foreground); - --color-accent: var(--accent); - --color-accent-foreground: var(--accent-foreground); - --color-destructive: var(--destructive); - --color-destructive-foreground: var(--destructive-foreground); - --color-border: var(--border); - --color-input: var(--input); - --color-ring: var(--ring); - --color-chart-1: var(--chart-1); - --color-chart-2: var(--chart-2); - --color-chart-3: var(--chart-3); - --color-chart-4: var(--chart-4); - --color-chart-5: var(--chart-5); - --radius-sm: calc(var(--radius) - 4px); - --radius-md: calc(var(--radius) - 2px); - --radius-lg: var(--radius); - --radius-xl: calc(var(--radius) + 4px); - --color-sidebar: var(--sidebar); - --color-sidebar-foreground: var(--sidebar-foreground); - --color-sidebar-primary: var(--sidebar-primary); - --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); - --color-sidebar-accent: var(--sidebar-accent); - --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); - --color-sidebar-border: var(--sidebar-border); - --color-sidebar-ring: var(--sidebar-ring); -} - -@layer base { - * { - @apply border-border outline-ring/50; - } - body { - @apply bg-background text-foreground; - } -} +.dark, +[data-theme="dark"] { + color-scheme: dark; + /* Theme Colors (Dark Mode) */ + --accent: oklch(66.78% 0.2232 43.72); + --accent-foreground: oklch(15% 0.0300 43.72); + --background: oklch(12.00% 0.0064 43.72); + --border: oklch(28.00% 0.0064 43.72); + --danger: oklch(59.40% 0.1992 359.42); + --danger-foreground: oklch(99.11% 0 0); + --default: oklch(27.40% 0.0064 43.72); + --default-foreground: oklch(99.11% 0 0); + --field-background: oklch(21.03% 0.0128 43.72); + --field-foreground: oklch(99.11% 0.0064 43.72); + --field-placeholder: oklch(70.50% 0.0128 43.72); + --focus: oklch(66.78% 0.2232 43.72); + --foreground: oklch(99.11% 0.0064 43.72); + --muted: oklch(70.50% 0.0128 43.72); + --overlay: oklch(21.03% 0.0128 43.72); + --overlay-foreground: oklch(99.11% 0.0064 43.72); + --scrollbar: oklch(70.50% 0.0064 43.72); + --segment: oklch(39.64% 0.0064 43.72); + --segment-foreground: oklch(99.11% 0.0064 43.72); + --separator: oklch(25.00% 0.0064 43.72); + --success: oklch(73.29% 0.1960 125.60); + --success-foreground: oklch(21.03% 0.0059 125.60); + --surface: oklch(21.03% 0.0128 43.72); + --surface-foreground: oklch(99.11% 0.0064 43.72); + --surface-secondary: oklch(25.70% 0.0096 43.72); + --surface-secondary-foreground: oklch(99.11% 0.0064 43.72); + --surface-tertiary: oklch(27.21% 0.0096 43.72); + --surface-tertiary-foreground: oklch(99.11% 0.0064 43.72); + --warning: oklch(82.03% 0.1406 51.13); + --warning-foreground: oklch(21.03% 0.0059 51.13); +} \ No newline at end of file