From 2bdcb28d83fa69428c44b583580089bc03161f87 Mon Sep 17 00:00:00 2001 From: dopoto Date: Thu, 22 May 2025 14:07:23 +0300 Subject: [PATCH 01/21] ver --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 215961f..cac271f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "next-menu", - "version": "0.0.69", + "version": "0.0.70", "private": true, "type": "module", "scripts": { From e29a66abba69e374719b8458ef64ff7ea80cd40a Mon Sep 17 00:00:00 2001 From: dopoto Date: Thu, 22 May 2025 14:09:00 +0300 Subject: [PATCH 02/21] upd --- package.json | 48 +- pnpm-lock.yaml | 1192 ++++++++++++++++++++++++------------------------ 2 files changed, 612 insertions(+), 628 deletions(-) diff --git a/package.json b/package.json index cac271f..8262e36 100644 --- a/package.json +++ b/package.json @@ -27,30 +27,30 @@ "knip": "knip" }, "dependencies": { - "@clerk/nextjs": "^6.19.4", - "@clerk/themes": "2.2.45", + "@clerk/nextjs": "^6.19.5", + "@clerk/themes": "2.2.46", "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@hookform/resolvers": "^5.0.1", "@next/env": "~15.3.2", "@next/third-parties": "^15.3.2", - "@radix-ui/react-avatar": "^1.1.9", - "@radix-ui/react-checkbox": "^1.3.1", - "@radix-ui/react-collapsible": "^1.1.10", - "@radix-ui/react-dialog": "^1.1.13", - "@radix-ui/react-dropdown-menu": "^2.1.14", - "@radix-ui/react-label": "^2.1.6", - "@radix-ui/react-popover": "^1.1.13", - "@radix-ui/react-progress": "^1.1.6", - "@radix-ui/react-radio-group": "^1.3.6", - "@radix-ui/react-separator": "^1.1.6", - "@radix-ui/react-slot": "^1.2.2", - "@radix-ui/react-switch": "^1.2.4", - "@radix-ui/react-tabs": "^1.1.11", - "@radix-ui/react-toast": "^1.2.13", - "@radix-ui/react-tooltip": "^1.2.6", - "@sentry/nextjs": "9.19.0", + "@radix-ui/react-avatar": "^1.1.10", + "@radix-ui/react-checkbox": "^1.3.2", + "@radix-ui/react-collapsible": "^1.1.11", + "@radix-ui/react-dialog": "^1.1.14", + "@radix-ui/react-dropdown-menu": "^2.1.15", + "@radix-ui/react-label": "^2.1.7", + "@radix-ui/react-popover": "^1.1.14", + "@radix-ui/react-progress": "^1.1.7", + "@radix-ui/react-radio-group": "^1.3.7", + "@radix-ui/react-separator": "^1.1.7", + "@radix-ui/react-slot": "^1.2.3", + "@radix-ui/react-switch": "^1.2.5", + "@radix-ui/react-tabs": "^1.1.12", + "@radix-ui/react-toast": "^1.2.14", + "@radix-ui/react-tooltip": "^1.2.7", + "@sentry/nextjs": "9.22.0", "@stripe/react-stripe-js": "^3.7.0", "@stripe/stripe-js": "^7.3.0", "@t3-oss/env-nextjs": "^0.13.4", @@ -70,8 +70,8 @@ "next": "15.3.2", "next-themes": "^0.4.6", "postgres": "^3.4.5", - "posthog-js": "^1.242.3", - "posthog-node": "^4.17.1", + "posthog-js": "^1.245.2", + "posthog-node": "^4.17.2", "pusher": "^5.2.0", "pusher-js": "^8.4.0", "react": "^19.1.0", @@ -88,7 +88,7 @@ "tailwindcss-animate": "^1.0.7", "truncate-middle": "^2.0.1", "vaul": "^1.1.2", - "zod": "3.24.4" + "zod": "3.25.20" }, "devDependencies": { "@chromatic-com/storybook": "3.2.6", @@ -105,8 +105,8 @@ "@testing-library/react": "^16.3.0", "@types/eslint": "^9.6.1", "@types/jest": "^29.5.14", - "@types/node": "^22.15.19", - "@types/react": "^19.1.4", + "@types/node": "^22.15.21", + "@types/react": "^19.1.5", "@types/react-dom": "^19.1.5", "cross-env": "^7.0.3", "drizzle-kit": "^0.31.1", @@ -118,7 +118,7 @@ "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "jotai-devtools": "^0.12.0", - "knip": "^5.56.0", + "knip": "^5.57.1", "postcss": "^8.5.3", "prettier": "^3.5.3", "prettier-plugin-organize-imports": "4.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9bb8c49..cac8db0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,11 +9,11 @@ importers: .: dependencies: '@clerk/nextjs': - specifier: ^6.19.4 - version: 6.19.4(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^6.19.5 + version: 6.19.5(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@clerk/themes': - specifier: 2.2.45 - version: 2.2.45 + specifier: 2.2.46 + version: 2.2.46 '@dnd-kit/core': specifier: ^6.3.1 version: 6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -33,53 +33,53 @@ importers: specifier: ^15.3.2 version: 15.3.2(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) '@radix-ui/react-avatar': - specifier: ^1.1.9 - version: 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^1.1.10 + version: 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-checkbox': - specifier: ^1.3.1 - version: 1.3.1(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^1.3.2 + version: 1.3.2(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-collapsible': - specifier: ^1.1.10 - version: 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^1.1.11 + version: 1.1.11(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-dialog': - specifier: ^1.1.13 - version: 1.1.13(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^1.1.14 + version: 1.1.14(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-dropdown-menu': - specifier: ^2.1.14 - version: 2.1.14(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^2.1.15 + version: 2.1.15(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-label': - specifier: ^2.1.6 - version: 2.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^2.1.7 + version: 2.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-popover': - specifier: ^1.1.13 - version: 1.1.13(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^1.1.14 + version: 1.1.14(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-progress': - specifier: ^1.1.6 - version: 1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^1.1.7 + version: 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-radio-group': - specifier: ^1.3.6 - version: 1.3.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^1.3.7 + version: 1.3.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-separator': - specifier: ^1.1.6 - version: 1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^1.1.7 + version: 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-slot': - specifier: ^1.2.2 - version: 1.2.2(@types/react@19.1.4)(react@19.1.0) + specifier: ^1.2.3 + version: 1.2.3(@types/react@19.1.5)(react@19.1.0) '@radix-ui/react-switch': - specifier: ^1.2.4 - version: 1.2.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^1.2.5 + version: 1.2.5(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-tabs': - specifier: ^1.1.11 - version: 1.1.11(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^1.1.12 + version: 1.1.12(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-toast': - specifier: ^1.2.13 - version: 1.2.13(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^1.2.14 + version: 1.2.14(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-tooltip': - specifier: ^1.2.6 - version: 1.2.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^1.2.7 + version: 1.2.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@sentry/nextjs': - specifier: 9.19.0 - version: 9.19.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(webpack@5.98.0(esbuild@0.25.2)) + specifier: 9.22.0 + version: 9.22.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(webpack@5.98.0(esbuild@0.25.2)) '@stripe/react-stripe-js': specifier: ^3.7.0 version: 3.7.0(@stripe/stripe-js@7.3.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -88,7 +88,7 @@ importers: version: 7.3.0 '@t3-oss/env-nextjs': specifier: ^0.13.4 - version: 0.13.4(arktype@2.1.20)(typescript@5.8.3)(zod@3.24.4) + version: 0.13.4(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.20) '@tanstack/react-query': specifier: ^5.76.1 version: 5.76.1(react@19.1.0) @@ -124,7 +124,7 @@ importers: version: 1.4.2(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) jotai: specifier: ^2.12.4 - version: 2.12.4(@types/react@19.1.4)(react@19.1.0) + version: 2.12.4(@types/react@19.1.5)(react@19.1.0) lucide-react: specifier: ^0.511.0 version: 0.511.0(react@19.1.0) @@ -138,11 +138,11 @@ importers: specifier: ^3.4.5 version: 3.4.5 posthog-js: - specifier: ^1.242.3 - version: 1.242.3 + specifier: ^1.245.2 + version: 1.245.2 posthog-node: - specifier: ^4.17.1 - version: 4.17.1 + specifier: ^4.17.2 + version: 4.17.2 pusher: specifier: ^5.2.0 version: 5.2.0 @@ -169,7 +169,7 @@ importers: version: 2.0.15(react@19.1.0) react-select: specifier: ^5.10.1 - version: 5.10.1(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 5.10.1(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-use: specifier: 17.6.0 version: 17.6.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -178,7 +178,7 @@ importers: version: 0.0.1 stripe: specifier: ^18.1.0 - version: 18.1.0(@types/node@22.15.19) + version: 18.1.0(@types/node@22.15.21) tailwind-merge: specifier: ^3.3.0 version: 3.3.0 @@ -190,10 +190,10 @@ importers: version: 2.0.1 vaul: specifier: ^1.1.2 - version: 1.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.2(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) zod: - specifier: 3.24.4 - version: 3.24.4 + specifier: 3.25.20 + version: 3.25.20 devDependencies: '@chromatic-com/storybook': specifier: 3.2.6 @@ -203,7 +203,7 @@ importers: version: 3.3.1 '@storybook/addon-essentials': specifier: 8.6.14 - version: 8.6.14(@types/react@19.1.4)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + version: 8.6.14(@types/react@19.1.5)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) '@storybook/addon-onboarding': specifier: 8.6.14 version: 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) @@ -230,7 +230,7 @@ importers: version: 6.6.3 '@testing-library/react': specifier: ^16.3.0 - version: 16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@types/eslint': specifier: ^9.6.1 version: 9.6.1 @@ -238,14 +238,14 @@ importers: specifier: ^29.5.14 version: 29.5.14 '@types/node': - specifier: ^22.15.19 - version: 22.15.19 + specifier: ^22.15.21 + version: 22.15.21 '@types/react': - specifier: ^19.1.4 - version: 19.1.4 + specifier: ^19.1.5 + version: 19.1.5 '@types/react-dom': specifier: ^19.1.5 - version: 19.1.5(@types/react@19.1.4) + version: 19.1.5(@types/react@19.1.5) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -269,16 +269,16 @@ importers: version: 0.12.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.15.19)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.19)(typescript@5.8.3)) + version: 29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0(bufferutil@4.0.9) jotai-devtools: specifier: ^0.12.0 - version: 0.12.0(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(redux@5.0.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + version: 0.12.0(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(redux@5.0.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) knip: - specifier: ^5.56.0 - version: 5.56.0(@types/node@22.15.19)(typescript@5.8.3) + specifier: ^5.57.1 + version: 5.57.1(@types/node@22.15.21)(typescript@5.8.3) postcss: specifier: ^8.5.3 version: 8.5.3 @@ -299,10 +299,10 @@ importers: version: 4.1.7 ts-jest: specifier: ^29.3.4 - version: 29.3.4(@babel/core@7.26.9)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.9))(esbuild@0.25.2)(jest@29.7.0(@types/node@22.15.19)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.19)(typescript@5.8.3)))(typescript@5.8.3) + version: 29.3.4(@babel/core@7.26.9)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.9))(esbuild@0.25.2)(jest@29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)))(typescript@5.8.3) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.15.19)(typescript@5.8.3) + version: 10.9.2(@types/node@22.15.21)(typescript@5.8.3) typescript: specifier: ^5.8.3 version: 5.8.3 @@ -961,8 +961,8 @@ packages: peerDependencies: storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@clerk/backend@1.32.2': - resolution: {integrity: sha512-upJ9/EnHTQbG8YcdYYdxjumZnmSADU4Zbeag1m37fk0h24MwRP3iwAwk/5MoL2tB4cKTHhSBUDTlGpejSQVCPw==} + '@clerk/backend@1.32.3': + resolution: {integrity: sha512-6t3d9MlMtQAZu9elfaavTu4sTRLzUKlyv6Sz5ohPSD81Qy+k4VtqK+krQDwlB2aigRCpuAlSMpGs4N1zeb7MMg==} engines: {node: '>=18.17.0'} peerDependencies: svix: ^1.62.0 @@ -970,23 +970,23 @@ packages: svix: optional: true - '@clerk/clerk-react@5.31.4': - resolution: {integrity: sha512-VtjOEzq/ncwHRn23xhmy4DRefrrSeUkKHiB/EighusYVkjmpzWMXYGD9Wdd79hwUhJesUsBiQdZhE5qkJ+mnJA==} + '@clerk/clerk-react@5.31.5': + resolution: {integrity: sha512-B5dL2Mg+eaZymA7X6pzpXH104aHubfm/47NlpUxJ92jYTFOSkjLwPszBBJoyy72EPcABs+9XIOWSWH9xvBMTEw==} engines: {node: '>=18.17.0'} peerDependencies: react: ^18.0.0 || ^19.0.0 || ^19.0.0-0 react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-0 - '@clerk/nextjs@6.19.4': - resolution: {integrity: sha512-UlGwjJNY2+xkCwGhBbLdUfwgV3te3+Q3StaeueVQ3/+QrGjfyuHvMftH9lDgmTUExQ/qtWESycrH1kKVFNXsHg==} + '@clerk/nextjs@6.19.5': + resolution: {integrity: sha512-w1kzhFhWiVXtt0D76OOE80ygWf5BZxTEbpLacQdGM5jLFpIdpo0JsfVF9MBTPfzihY9ZRS6Qogyc3JDa02Pwjw==} engines: {node: '>=18.17.0'} peerDependencies: next: ^13.5.7 || ^14.2.25 || ^15.2.3 react: ^18.0.0 || ^19.0.0 || ^19.0.0-0 react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-0 - '@clerk/shared@3.9.1': - resolution: {integrity: sha512-Gw7yPaas3lv+pkkbBwuqVVtWVH1nZl1hF8kVvdEhPALOkf6ww6azL6qcHaiFUHCW+iult3flJjplduFrfWF50g==} + '@clerk/shared@3.9.2': + resolution: {integrity: sha512-w5hUmqcsfCrGC6vX1uMi4+OVa2HcZpGZFWRMCL9Yig7JN/RZx+5Q7Uue7/GJmKRSsG2F4Jc2Yed6oIHIq6vVPg==} engines: {node: '>=18.17.0'} peerDependencies: react: ^18.0.0 || ^19.0.0 || ^19.0.0-0 @@ -997,12 +997,12 @@ packages: react-dom: optional: true - '@clerk/themes@2.2.45': - resolution: {integrity: sha512-tm6eWoyap0oszBP6IQMDgVirZeaEebjAnCWBiEsgnYk0G8iY52imK5JLtmTlSuhDGBw1xNKmOzP850AZgOtDhA==} + '@clerk/themes@2.2.46': + resolution: {integrity: sha512-Zw9SIMFYLmYr9mNqVLXvPgUE8sPKL5oz2xGi37HnJRpUud/aUifEZ1mihRv158vAga2HmJHptAxwAmmKhHVymA==} engines: {node: '>=18.17.0'} - '@clerk/types@4.59.0': - resolution: {integrity: sha512-VZ61lDWoz9cWTlSpO1KMGq7utl96ZuSBIOpM6togxYTp+TG0kD6QEJVinMaJLREtx8jRvXpMG7ZzBLE3zy0GSA==} + '@clerk/types@4.59.1': + resolution: {integrity: sha512-Td/cdDPHmtlKr9stmo10e2pXU+PvMimDgNy5i1vXrlD0LWJJ5cdccFCtzQwqaEfPE5oSoPvAqCCmXJAuHxaWsQ==} engines: {node: '>=18.17.0'} '@cspotcode/source-map-support@0.8.1': @@ -1418,12 +1418,6 @@ packages: resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@fastify/otel@https://codeload.github.com/getsentry/fastify-otel/tar.gz/ae3088d65e286bdc94ac5d722573537d6a6671bb': - resolution: {tarball: https://codeload.github.com/getsentry/fastify-otel/tar.gz/ae3088d65e286bdc94ac5d722573537d6a6671bb} - version: 0.8.0 - peerDependencies: - '@opentelemetry/api': ^1.9.0 - '@floating-ui/core@1.6.9': resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} @@ -2185,8 +2179,8 @@ packages: '@radix-ui/primitive@1.1.2': resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==} - '@radix-ui/react-arrow@1.1.6': - resolution: {integrity: sha512-2JMfHJf/eVnwq+2dewT3C0acmCWD3XiVA1Da+jTDqo342UlU13WvXtqHhG+yJw5JeQmu4ue2eMy6gcEArLBlcw==} + '@radix-ui/react-arrow@1.1.7': + resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2198,8 +2192,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-avatar@1.1.9': - resolution: {integrity: sha512-10tQokfvZdFvnvDkcOJPjm2pWiP8A0R4T83MoD7tb15bC/k2GU7B1YBuzJi8lNQ8V1QqhP8ocNqp27ByZaNagQ==} + '@radix-ui/react-avatar@1.1.10': + resolution: {integrity: sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2211,8 +2205,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-checkbox@1.3.1': - resolution: {integrity: sha512-xTaLKAO+XXMPK/BpVTSaAAhlefmvMSACjIhK9mGsImvX2ljcTDm8VGR1CuS1uYcNdR5J+oiOhoJZc5un6bh3VQ==} + '@radix-ui/react-checkbox@1.3.2': + resolution: {integrity: sha512-yd+dI56KZqawxKZrJ31eENUwqc1QSqg4OZ15rybGjF2ZNwMO+wCyHzAVLRp9qoYJf7kYy0YpZ2b0JCzJ42HZpA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2224,8 +2218,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-collapsible@1.1.10': - resolution: {integrity: sha512-O2mcG3gZNkJ/Ena34HurA3llPOEA/M4dJtIRMa6y/cknRDC8XY5UZBInKTsUwW5cUue9A4k0wi1XU5fKBzKe1w==} + '@radix-ui/react-collapsible@1.1.11': + resolution: {integrity: sha512-2qrRsVGSCYasSz1RFOorXwl0H7g7J1frQtgpQgYrt+MOidtPAINHn9CPovQXb83r8ahapdx3Tu0fa/pdFFSdPg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2237,8 +2231,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-collection@1.1.6': - resolution: {integrity: sha512-PbhRFK4lIEw9ADonj48tiYWzkllz81TM7KVYyyMMw2cwHO7D5h4XKEblL8NlaRisTK3QTe6tBEhDccFUryxHBQ==} + '@radix-ui/react-collection@1.1.7': + resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2268,8 +2262,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dialog@1.1.13': - resolution: {integrity: sha512-ARFmqUyhIVS3+riWzwGTe7JLjqwqgnODBUZdqpWar/z1WFs9z76fuOs/2BOWCR+YboRn4/WN9aoaGVwqNRr8VA==} + '@radix-ui/react-dialog@1.1.14': + resolution: {integrity: sha512-+CpweKjqpzTmwRwcYECQcNYbI8V9VSQt0SNFKeEBLgfucbsLssU6Ppq7wUdNXEGb573bMjFhVjKVll8rmV6zMw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2290,8 +2284,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dismissable-layer@1.1.9': - resolution: {integrity: sha512-way197PiTvNp+WBP7svMJasHl+vibhWGQDb6Mgf5mhEWJkgb85z7Lfl9TUdkqpWsf8GRNmoopx9ZxCyDzmgRMQ==} + '@radix-ui/react-dismissable-layer@1.1.10': + resolution: {integrity: sha512-IM1zzRV4W3HtVgftdQiiOmA0AdJlCtMLe00FXaHwgt3rAnNsIyDqshvkIW3hj/iu5hu8ERP7KIYki6NkqDxAwQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2303,8 +2297,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-dropdown-menu@2.1.14': - resolution: {integrity: sha512-lzuyNjoWOoaMFE/VC5FnAAYM16JmQA8ZmucOXtlhm2kKR5TSU95YLAueQ4JYuRmUJmBvSqXaVFGIfuukybwZJQ==} + '@radix-ui/react-dropdown-menu@2.1.15': + resolution: {integrity: sha512-mIBnOjgwo9AH3FyKaSWoSu/dYj6VdhJ7frEPiGTeXCdUFHjl9h3mFh2wwhEtINOmYXWhdpf1rY2minFsmaNgVQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2325,8 +2319,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-focus-scope@1.1.6': - resolution: {integrity: sha512-r9zpYNUQY+2jWHWZGyddQLL9YHkM/XvSFHVcWs7bdVuxMAnCwTAuy6Pf47Z4nw7dYcUou1vg/VgjjrrH03VeBw==} + '@radix-ui/react-focus-scope@1.1.7': + resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2347,8 +2341,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-label@2.1.6': - resolution: {integrity: sha512-S/hv1mTlgcPX2gCTJrWuTjSXf7ER3Zf7zWGtOprxhIIY93Qin3n5VgNA0Ez9AgrK/lEtlYgzLd4f5x6AVar4Yw==} + '@radix-ui/react-label@2.1.7': + resolution: {integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2360,8 +2354,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-menu@2.1.14': - resolution: {integrity: sha512-0zSiBAIFq9GSKoSH5PdEaQeRB3RnEGxC+H2P0egtnKoKKLNBH8VBHyVO6/jskhjAezhOIplyRUj7U2lds9A+Yg==} + '@radix-ui/react-menu@2.1.15': + resolution: {integrity: sha512-tVlmA3Vb9n8SZSd+YSbuFR66l87Wiy4du+YE+0hzKQEANA+7cWKH1WgqcEX4pXqxUFQKrWQGHdvEfw00TjFiew==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2373,8 +2367,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-popover@1.1.13': - resolution: {integrity: sha512-84uqQV3omKDR076izYgcha6gdpN8m3z6w/AeJ83MSBJYVG/AbOHdLjAgsPZkeC/kt+k64moXFCnio8BbqXszlw==} + '@radix-ui/react-popover@1.1.14': + resolution: {integrity: sha512-ODz16+1iIbGUfFEfKx2HTPKizg2MN39uIOV8MXeHnmdd3i/N9Wt7vU46wbHsqA0xoaQyXVcs0KIlBdOA2Y95bw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2386,8 +2380,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-popper@1.2.6': - resolution: {integrity: sha512-7iqXaOWIjDBfIG7aq8CUEeCSsQMLFdn7VEE8TaFz704DtEzpPHR7w/uuzRflvKgltqSAImgcmxQ7fFX3X7wasg==} + '@radix-ui/react-popper@1.2.7': + resolution: {integrity: sha512-IUFAccz1JyKcf/RjB552PlWwxjeCJB8/4KxT7EhBHOJM+mN7LdW+B3kacJXILm32xawcMMjb2i0cIZpo+f9kiQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2399,8 +2393,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-portal@1.1.8': - resolution: {integrity: sha512-hQsTUIn7p7fxCPvao/q6wpbxmCwgLrlz+nOrJgC+RwfZqWY/WN+UMqkXzrtKbPrF82P43eCTl3ekeKuyAQbFeg==} + '@radix-ui/react-portal@1.1.9': + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2425,8 +2419,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.1.2': - resolution: {integrity: sha512-uHa+l/lKfxuDD2zjN/0peM/RhhSmRjr5YWdk/37EnSv1nJ88uvG85DPexSm8HdFQROd2VdERJ6ynXbkCFi+APw==} + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2438,8 +2432,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-progress@1.1.6': - resolution: {integrity: sha512-QzN9a36nKk2eZKMf9EBCia35x3TT+SOgZuzQBVIHyRrmYYi73VYBRK3zKwdJ6az/F5IZ6QlacGJBg7zfB85liA==} + '@radix-ui/react-progress@1.1.7': + resolution: {integrity: sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2451,8 +2445,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-radio-group@1.3.6': - resolution: {integrity: sha512-1tfTAqnYZNVwSpFhCT273nzK8qGBReeYnNTPspCggqk1fvIrfVxJekIuBFidNivzpdiMqDwVGnQvHqXrRPM4Og==} + '@radix-ui/react-radio-group@1.3.7': + resolution: {integrity: sha512-9w5XhD0KPOrm92OTTE0SysH3sYzHsSTHNvZgUBo/VZ80VdYyB5RneDbc0dKpURS24IxkoFRu/hI0i4XyfFwY6g==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2464,8 +2458,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-roving-focus@1.1.9': - resolution: {integrity: sha512-ZzrIFnMYHHCNqSNCsuN6l7wlewBEq0O0BCSBkabJMFXVO51LRUTq71gLP1UxFvmrXElqmPjA5VX7IqC9VpazAQ==} + '@radix-ui/react-roving-focus@1.1.10': + resolution: {integrity: sha512-dT9aOXUen9JSsxnMPv/0VqySQf5eDQ6LCk5Sw28kamz8wSOW2bJdlX2Bg5VUIIcV+6XlHpWTIuTPCf/UNIyq8Q==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2477,8 +2471,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-separator@1.1.6': - resolution: {integrity: sha512-Izof3lPpbCfTM7WDta+LRkz31jem890VjEvpVRoWQNKpDUMMVffuyq854XPGP1KYGWWmjmYvHvPFeocWhFCy1w==} + '@radix-ui/react-separator@1.1.7': + resolution: {integrity: sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2490,8 +2484,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-slot@1.2.2': - resolution: {integrity: sha512-y7TBO4xN4Y94FvcWIOIh18fM4R1A8S4q1jhoz4PNzOoHsFcN8pogcFmZrTYAm4F9VRUrWP/Mw7xSKybIeRI+CQ==} + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -2499,8 +2493,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-switch@1.2.4': - resolution: {integrity: sha512-yZCky6XZFnR7pcGonJkr9VyNRu46KcYAbyg1v/gVVCZUr8UJ4x+RpncC27hHtiZ15jC+3WS8Yg/JSgyIHnYYsQ==} + '@radix-ui/react-switch@1.2.5': + resolution: {integrity: sha512-5ijLkak6ZMylXsaImpZ8u4Rlf5grRmoc0p0QeX9VJtlrM4f5m3nCTX8tWga/zOA8PZYIR/t0p2Mnvd7InrJ6yQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2512,8 +2506,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-tabs@1.1.11': - resolution: {integrity: sha512-4FiKSVoXqPP/KfzlB7lwwqoFV6EPwkrrqGp9cUYXjwDYHhvpnqq79P+EPHKcdoTE7Rl8w/+6s9rTlsfXHES9GA==} + '@radix-ui/react-tabs@1.1.12': + resolution: {integrity: sha512-GTVAlRVrQrSw3cEARM0nAx73ixrWDPNZAruETn3oHCNP6SbZ/hNxdxp+u7VkIEv3/sFoLq1PfcHrl7Pnp0CDpw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2525,8 +2519,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-toast@1.2.13': - resolution: {integrity: sha512-e/e43mQAwgYs8BY4y9l99xTK6ig1bK2uXsFLOMn9IZ16lAgulSTsotcPHVT2ZlSb/ye6Sllq7IgyDB8dGhpeXQ==} + '@radix-ui/react-toast@1.2.14': + resolution: {integrity: sha512-nAP5FBxBJGQ/YfUB+r+O6USFVkWq3gAInkxyEnmvEV5jtSbfDhfa4hwX8CraCnbjMLsE7XSf/K75l9xXY7joWg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2538,8 +2532,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-tooltip@1.2.6': - resolution: {integrity: sha512-zYb+9dc9tkoN2JjBDIIPLQtk3gGyz8FMKoqYTb8EMVQ5a5hBcdHPECrsZVI4NpPAUOixhkoqg7Hj5ry5USowfA==} + '@radix-ui/react-tooltip@1.2.7': + resolution: {integrity: sha512-Ap+fNYwKTYJ9pzqW+Xe2HtMRbQ/EeWkj2qykZ6SuEV4iS/o1bZI5ssJbk4D2r8XuDuOBVz/tIx2JObtuqU+5Zw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2632,8 +2626,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-visually-hidden@1.2.2': - resolution: {integrity: sha512-ORCmRUbNiZIv6uV5mhFrhsIKw4UX/N3syZtyqvry61tbGm4JlgQuSn0hk5TwCARsCjkcnuRkSdCE3xfb+ADHew==} + '@radix-ui/react-visually-hidden@1.2.3': + resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -2772,28 +2766,28 @@ packages: '@rushstack/eslint-patch@1.10.5': resolution: {integrity: sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==} - '@sentry-internal/browser-utils@9.19.0': - resolution: {integrity: sha512-DlEHX4eIHe5yIuh/cFu9OiaFuk1CTnFK95zj61I7Q2fxmN43dIwC3xAAGJ/Hy+GDQi7kU+BiS2sudSHSTq81BA==} + '@sentry-internal/browser-utils@9.22.0': + resolution: {integrity: sha512-Ou1tBnVxFAIn8i9gvrWzRotNJQYiu3awNXpsFCw6qFwmiKAVPa6b13vCdolhXnrIiuR77jY1LQnKh9hXpoRzsg==} engines: {node: '>=18'} - '@sentry-internal/feedback@9.19.0': - resolution: {integrity: sha512-yixRrv4NfpjhFW56AuUTjVwZlignB9FWAXXyrmRP3SsFeJCFrAsSD8HOxV9RXNr9ePYl7MEU0Agi43YWhJsiAw==} + '@sentry-internal/feedback@9.22.0': + resolution: {integrity: sha512-zgMVkoC61fgi41zLcSZA59vOtKxcLrKBo1ECYhPD1hxEaneNqY5fhXDwlQBw96P5l2yqkgfX6YZtSdU4ejI9yA==} engines: {node: '>=18'} - '@sentry-internal/replay-canvas@9.19.0': - resolution: {integrity: sha512-YC8yrOjuKSfQgGniJnzkdbFsWEPTlNpzeeYPTxS4ouH1FwfGrSkPmcddjor2YHaLfiuHHqQ/Vvq70n+zruJH7A==} + '@sentry-internal/replay-canvas@9.22.0': + resolution: {integrity: sha512-EcG9IMSEalFe49kowBTJObWjof/iHteDwpyuAszsFDdQUYATrVUtwpwN7o52vDYWJud4arhjrQnMamIGxa79eQ==} engines: {node: '>=18'} - '@sentry-internal/replay@9.19.0': - resolution: {integrity: sha512-i/X9brRchbAF25yjxLTI7E8eoESRPBgIyQOWoWRXXt2n51iBRTjLXSaEfGvjdN+qrMq/yd6nC1/UqJVxXHeIhA==} + '@sentry-internal/replay@9.22.0': + resolution: {integrity: sha512-9GOycoKbrclcRXfcbNV8svbmAsOS5R4wXBQmKF4pFLkmFA/lJv9kdZSNYkRvkrxdNfbMIJXP+DV9EqTZcryXig==} engines: {node: '>=18'} '@sentry/babel-plugin-component-annotate@3.3.1': resolution: {integrity: sha512-5GOxGT7lZN+I8A7Vp0rWY+726FDKEw8HnFiebe51rQrMbfGfCu2Aw9uSM0nT9OG6xhV6WvGccIcCszTPs4fUZQ==} engines: {node: '>= 14'} - '@sentry/browser@9.19.0': - resolution: {integrity: sha512-efKfPQ0yQkdIkC7qJ5TIHxnecLNENGUYl1YD/TC8yyzW2JRf/3OYo5yg1hY2rhsP5RwQShXlT7uA03ABVIkA4A==} + '@sentry/browser@9.22.0': + resolution: {integrity: sha512-3TeRm74dvX0JdjX0AgkQa+22iUHwHnY+Q6M05NZ+tDeCNHGK/mEBTeqquS1oQX67jWyuvYmG3VV6RJUxtG9Paw==} engines: {node: '>=18'} '@sentry/bundler-plugin-core@3.3.1': @@ -2846,22 +2840,22 @@ packages: engines: {node: '>= 10'} hasBin: true - '@sentry/core@9.19.0': - resolution: {integrity: sha512-I41rKpMJHHZb0z0Nja+Lxto6IkEEmX3uWjnECypF8Z1HIjeJB0+PXl8p/7TeaKYqw2J2GYcRTg7jQZDmvKle1w==} + '@sentry/core@9.22.0': + resolution: {integrity: sha512-ixvtKmPF42Y6ckGUbFlB54OWI75H2gO5UYHojO6eXFpS7xO3ZGgV/QH6wb40mWK+0w5XZ0233FuU9VpsuE6mKA==} engines: {node: '>=18'} - '@sentry/nextjs@9.19.0': - resolution: {integrity: sha512-VE8xCIHaJBNF7DdiaG3MhBvUn5EWSJyCrrbtEkY5cvlo5pc19tBaxDwGJQfK63Z0DuZCuG9lwih7jCdmCXziwA==} + '@sentry/nextjs@9.22.0': + resolution: {integrity: sha512-FbXP0z32kTxavz39E096JcGJQfp6hmmddXSSmG23m2Va/dpC+xNl5+bxmLdt2NRaY6o3nPxqsB/bKccpMJBvMw==} engines: {node: '>=18'} peerDependencies: next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 - '@sentry/node@9.19.0': - resolution: {integrity: sha512-WKVcUBy5Zc+LGvfV/CfGPBDfnmEOSxLCMYzXIhx0gUxf2+8WpMMc/8yW/25zbXMo3eC4oST4GBDSpTfNdMBz1w==} + '@sentry/node@9.22.0': + resolution: {integrity: sha512-89r2p6n0xeT2eiqIB0WXgz/rJzUgiOgZex7NvYwzEGeP0GoteDIf0Kbth/gCOy1md/ngiW+0X+S2Ed/uRw4XEQ==} engines: {node: '>=18'} - '@sentry/opentelemetry@9.19.0': - resolution: {integrity: sha512-Js6153kW5mNjjukk6TVb04D/8DDhA9MO++WRzXWzNP+FiPi5zwtvm+Je2TvTeAjSH74f6o2JpfECdrfPYHWopA==} + '@sentry/opentelemetry@9.22.0': + resolution: {integrity: sha512-m6JI2LUCm4FT34OQgh7or2Y9chKn8BrqawNqu7BEqbsGADE5VPwtdu7DwPOD7pC6KN9lGHVf0bqS7197e8Kz/A==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -2871,14 +2865,14 @@ packages: '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.0.0 '@opentelemetry/semantic-conventions': ^1.30.0 - '@sentry/react@9.19.0': - resolution: {integrity: sha512-tHuzPVbqKsONlFQsy7FqqGjBaujQoLRIDBLlPPMNoiGvP3rodBl6t1v5zoNAq4m47i3MhvpLEYf6C00j1w5UMQ==} + '@sentry/react@9.22.0': + resolution: {integrity: sha512-mI43NnioBYdG5TiXqRlhV1feZs9bnrrl+k5HOHBK7VQtymaXO0fkcsRLZTkdSgLRLMJGasZuvVhq2xK+18QyWQ==} engines: {node: '>=18'} peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x - '@sentry/vercel-edge@9.19.0': - resolution: {integrity: sha512-oPWFCYMYvzaEyyR/HDS42RniHoQA+p32UysAa6yW3HrTs5139d41R8+qaX1TUVKlcNVVTePajCz/V37fBBaPpA==} + '@sentry/vercel-edge@9.22.0': + resolution: {integrity: sha512-M1BXBCFKKXzYz+rQnHyZb8p7yuraRu/cQAOxY5Cksd5RhS8RqVbKBHrtaIQ4tJ9dDRo0PkQxb02Ufun3JVsByg==} engines: {node: '>=18'} '@sentry/webpack-plugin@3.3.1': @@ -3370,8 +3364,8 @@ packages: '@types/node-fetch@2.6.12': resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} - '@types/node@22.15.19': - resolution: {integrity: sha512-3vMNr4TzNQyjHcRZadojpRaD9Ofr6LsonZAoQ+HMUa/9ORTPoxVIw0e0mpqWpdjj8xybyCM+oKOUH2vwFu/oEw==} + '@types/node@22.15.21': + resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -3395,8 +3389,8 @@ packages: peerDependencies: '@types/react': '*' - '@types/react@19.1.4': - resolution: {integrity: sha512-EB1yiiYdvySuIITtD5lhW4yPyJ31RkJkkDw794LaQYrxCSaQV/47y5o1FMC4zF9ZyjUjzJMZwbovEnT5yHTW6g==} + '@types/react@19.1.5': + resolution: {integrity: sha512-piErsCVVbpMMT2r7wbawdZsq4xMvIAhQuac2gedQHysu1TZYEigE6pnFfgZT+/jQnrRuF5r+SHzuehFjfRjr4g==} '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -5707,8 +5701,8 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - knip@5.56.0: - resolution: {integrity: sha512-4RNCi41ax0zzl7jloxiUAcomwHIW+tj201jfr7TmHkSvb1/LkChsfXH0JOFFesVHhtSrMw6Dv4N6fmfFd4sJ0Q==} + knip@5.57.1: + resolution: {integrity: sha512-FWdCuoYtaVB9+/9F9iGcKOGX2Orz9xEfbxCENq2UGnCwa6PGRYmlVR8d3MybnoplLmBjTC9yO/+npK5CRLTb2w==} engines: {node: '>=18.18.0'} hasBin: true peerDependencies: @@ -6378,8 +6372,8 @@ packages: resolution: {integrity: sha512-cDWgoah1Gez9rN3H4165peY9qfpEo+SA61oQv65O3cRUE1pOEoJWwddwcqKE8XZYjbblOJlYDlLV4h67HrEVDg==} engines: {node: '>=12'} - posthog-js@1.242.3: - resolution: {integrity: sha512-T6fR5Y5y2nW/Q2pv+5WwTBUkocvBkCO87aZRGjjbiaD5wCeW5ofgk/EAkqUrKlasLXNYPo6WTPixp3dHCIJa2Q==} + posthog-js@1.245.2: + resolution: {integrity: sha512-6N2CMksaTXolR4z6UmMgJt6NdDvfGMJu4gLrV9te855aKm6huLviIQ3AUY8XTsd64YqVhrGyIyk3Nnfm45OPgg==} peerDependencies: '@rrweb/types': 2.0.0-alpha.17 rrweb-snapshot: 2.0.0-alpha.17 @@ -6389,8 +6383,8 @@ packages: rrweb-snapshot: optional: true - posthog-node@4.17.1: - resolution: {integrity: sha512-cVlQPOwOPjakUnrueKRCQe1m2Ku+XzKaOos7Tn/zDZkkZFeBT/byP7tbNf7LiwhaBRWFBRowZZb/MsTtSRaorg==} + posthog-node@4.17.2: + resolution: {integrity: sha512-bFmwOTk4QdYavopeHVXtyFGQ9vyLMVaNWkWocwjix+0n6sQgv7Zq5nYjYulz7ThmK18zsvNJ337ahuMLv3ulow==} engines: {node: '>=15.0.0'} preact@10.26.4: @@ -7755,8 +7749,8 @@ packages: peerDependencies: zod: ^3.18.0 - zod@3.24.4: - resolution: {integrity: sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==} + zod@3.25.20: + resolution: {integrity: sha512-z03fqpTMDF1G02VLKUMt6vyACE7rNWkh3gpXVHgPTw28NPtDFRGvcpTtPwn2kMKtQ0idtYJUTxchytmnqYswcw==} snapshots: @@ -8589,10 +8583,10 @@ snapshots: - '@chromatic-com/playwright' - react - '@clerk/backend@1.32.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@clerk/backend@1.32.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@clerk/shared': 3.9.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@clerk/types': 4.59.0 + '@clerk/shared': 3.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@clerk/types': 4.59.1 cookie: 1.0.2 snakecase-keys: 8.0.1 tslib: 2.8.1 @@ -8600,20 +8594,20 @@ snapshots: - react - react-dom - '@clerk/clerk-react@5.31.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@clerk/clerk-react@5.31.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@clerk/shared': 3.9.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@clerk/types': 4.59.0 + '@clerk/shared': 3.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@clerk/types': 4.59.1 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) tslib: 2.8.1 - '@clerk/nextjs@6.19.4(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@clerk/nextjs@6.19.5(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@clerk/backend': 1.32.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@clerk/clerk-react': 5.31.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@clerk/shared': 3.9.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@clerk/types': 4.59.0 + '@clerk/backend': 1.32.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@clerk/clerk-react': 5.31.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@clerk/shared': 3.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@clerk/types': 4.59.1 next: 15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) @@ -8622,9 +8616,9 @@ snapshots: transitivePeerDependencies: - svix - '@clerk/shared@3.9.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@clerk/shared@3.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@clerk/types': 4.59.0 + '@clerk/types': 4.59.1 dequal: 2.0.3 glob-to-regexp: 0.4.1 js-cookie: 3.0.5 @@ -8634,12 +8628,12 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@clerk/themes@2.2.45': + '@clerk/themes@2.2.46': dependencies: - '@clerk/types': 4.59.0 + '@clerk/types': 4.59.1 tslib: 2.8.1 - '@clerk/types@4.59.0': + '@clerk/types@4.59.1': dependencies: csstype: 3.1.3 @@ -8718,7 +8712,7 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@19.1.4)(react@19.1.0)': + '@emotion/react@11.14.0(@types/react@19.1.5)(react@19.1.0)': dependencies: '@babel/runtime': 7.26.10 '@emotion/babel-plugin': 11.13.5 @@ -8730,7 +8724,7 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 transitivePeerDependencies: - supports-color @@ -8954,16 +8948,6 @@ snapshots: '@eslint/core': 0.14.0 levn: 0.4.1 - '@fastify/otel@https://codeload.github.com/getsentry/fastify-otel/tar.gz/ae3088d65e286bdc94ac5d722573537d6a6671bb(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 - minimatch: 9.0.5 - transitivePeerDependencies: - - supports-color - '@floating-ui/core@1.6.9': dependencies: '@floating-ui/utils': 0.2.9 @@ -9177,27 +9161,27 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.19 + '@types/node': 22.15.21 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.19)(typescript@5.8.3))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.19 + '@types/node': 22.15.21 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.15.19)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.19)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -9222,7 +9206,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.19 + '@types/node': 22.15.21 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -9240,7 +9224,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.15.19 + '@types/node': 22.15.21 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -9262,7 +9246,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.15.19 + '@types/node': 22.15.21 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -9332,7 +9316,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.15.19 + '@types/node': 22.15.21 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -9363,16 +9347,16 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@mantine/code-highlight@7.17.7(@mantine/core@7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@7.17.7(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@mantine/code-highlight@7.17.7(@mantine/core@7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@7.17.7(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@mantine/core': 7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/core': 7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/hooks': 7.17.7(react@19.1.0) clsx: 2.1.1 highlight.js: 11.11.1 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@mantine/core@7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@mantine/core@7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@floating-ui/react': 0.26.28(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/hooks': 7.17.7(react@19.1.0) @@ -9380,8 +9364,8 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) react-number-format: 5.4.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.4)(react@19.1.0) - react-textarea-autosize: 8.5.9(@types/react@19.1.4)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.5)(react@19.1.0) + react-textarea-autosize: 8.5.9(@types/react@19.1.5)(react@19.1.0) type-fest: 4.41.0 transitivePeerDependencies: - '@types/react' @@ -9390,10 +9374,10 @@ snapshots: dependencies: react: 19.1.0 - '@mdx-js/react@3.1.0(@types/react@19.1.4)(react@19.1.0)': + '@mdx-js/react@3.1.0(@types/react@19.1.5)(react@19.1.0)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.1.4 + '@types/react': 19.1.5 react: 19.1.0 '@napi-rs/wasm-runtime@0.2.9': @@ -9767,470 +9751,470 @@ snapshots: '@radix-ui/primitive@1.1.2': {} - '@radix-ui/react-arrow@1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-avatar@1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-checkbox@1.3.1(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-checkbox@1.3.2(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-collapsible@1.1.10(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-collapsible@1.1.11(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-collection@1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.5)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-context@1.1.2(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-context@1.1.2(@types/react@19.1.5)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-dialog@1.1.13(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dialog@1.1.14(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-portal': 1.1.8(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) aria-hidden: 1.2.4 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.4)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.5)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-direction@1.1.1(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-direction@1.1.1(@types/react@19.1.5)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-dismissable-layer@1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-dropdown-menu@2.1.14(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dropdown-menu@2.1.15(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-menu': 2.1.14(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-menu': 2.1.15(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.5)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-focus-scope@1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-id@1.1.1(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-id@1.1.1(@types/react@19.1.5)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-label@2.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-label@2.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-menu@2.1.14(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-menu@2.1.15(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-popper': 1.2.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.8(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) aria-hidden: 1.2.4 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.4)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.5)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-popover@1.1.13(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-popover@1.1.14(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-popper': 1.2.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.8(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) aria-hidden: 1.2.4 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.4)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.5)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-popper@1.2.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-popper@1.2.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-arrow': 1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.5)(react@19.1.0) '@radix-ui/rect': 1.1.1 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-portal@1.1.8(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-primitive@2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-slot': 1.2.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-progress@1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-progress@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-radio-group@1.3.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-radio-group@1.3.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-roving-focus@1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-roving-focus@1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-separator@1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-separator@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-slot@1.2.2(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-slot@1.2.3(@types/react@19.1.5)(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-switch@1.2.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-switch@1.2.5(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-tabs@1.1.11(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-tabs@1.1.12(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-toast@1.2.13(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-toast@1.2.14(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.8(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-visually-hidden': 1.2.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-tooltip@1.2.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-tooltip@1.2.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-popper': 1.2.6(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.8(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-visually-hidden': 1.2.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.5)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.5)(react@19.1.0)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.4)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.5)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.5)(react@19.1.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.5)(react@19.1.0)': dependencies: react: 19.1.0 use-sync-external-store: 1.5.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.5)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.5)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.5)(react@19.1.0)': dependencies: '@radix-ui/rect': 1.1.1 react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-use-size@1.1.1(@types/react@19.1.4)(react@19.1.0)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.1.5)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.4)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@radix-ui/react-visually-hidden@1.2.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) '@radix-ui/rect@1.1.1': {} @@ -10321,33 +10305,33 @@ snapshots: '@rushstack/eslint-patch@1.10.5': {} - '@sentry-internal/browser-utils@9.19.0': + '@sentry-internal/browser-utils@9.22.0': dependencies: - '@sentry/core': 9.19.0 + '@sentry/core': 9.22.0 - '@sentry-internal/feedback@9.19.0': + '@sentry-internal/feedback@9.22.0': dependencies: - '@sentry/core': 9.19.0 + '@sentry/core': 9.22.0 - '@sentry-internal/replay-canvas@9.19.0': + '@sentry-internal/replay-canvas@9.22.0': dependencies: - '@sentry-internal/replay': 9.19.0 - '@sentry/core': 9.19.0 + '@sentry-internal/replay': 9.22.0 + '@sentry/core': 9.22.0 - '@sentry-internal/replay@9.19.0': + '@sentry-internal/replay@9.22.0': dependencies: - '@sentry-internal/browser-utils': 9.19.0 - '@sentry/core': 9.19.0 + '@sentry-internal/browser-utils': 9.22.0 + '@sentry/core': 9.22.0 '@sentry/babel-plugin-component-annotate@3.3.1': {} - '@sentry/browser@9.19.0': + '@sentry/browser@9.22.0': dependencies: - '@sentry-internal/browser-utils': 9.19.0 - '@sentry-internal/feedback': 9.19.0 - '@sentry-internal/replay': 9.19.0 - '@sentry-internal/replay-canvas': 9.19.0 - '@sentry/core': 9.19.0 + '@sentry-internal/browser-utils': 9.22.0 + '@sentry-internal/feedback': 9.22.0 + '@sentry-internal/replay': 9.22.0 + '@sentry-internal/replay-canvas': 9.22.0 + '@sentry/core': 9.22.0 '@sentry/bundler-plugin-core@3.3.1': dependencies: @@ -10403,19 +10387,19 @@ snapshots: - encoding - supports-color - '@sentry/core@9.19.0': {} + '@sentry/core@9.22.0': {} - '@sentry/nextjs@9.19.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(webpack@5.98.0(esbuild@0.25.2))': + '@sentry/nextjs@9.22.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(webpack@5.98.0(esbuild@0.25.2))': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.30.0 '@rollup/plugin-commonjs': 28.0.1(rollup@4.35.0) - '@sentry-internal/browser-utils': 9.19.0 - '@sentry/core': 9.19.0 - '@sentry/node': 9.19.0 - '@sentry/opentelemetry': 9.19.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0) - '@sentry/react': 9.19.0(react@19.1.0) - '@sentry/vercel-edge': 9.19.0 + '@sentry-internal/browser-utils': 9.22.0 + '@sentry/core': 9.22.0 + '@sentry/node': 9.22.0 + '@sentry/opentelemetry': 9.22.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0) + '@sentry/react': 9.22.0(react@19.1.0) + '@sentry/vercel-edge': 9.22.0 '@sentry/webpack-plugin': 3.3.1(webpack@5.98.0(esbuild@0.25.2)) chalk: 3.0.0 next: 15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -10432,9 +10416,8 @@ snapshots: - supports-color - webpack - '@sentry/node@9.19.0': + '@sentry/node@9.22.0': dependencies: - '@fastify/otel': https://codeload.github.com/getsentry/fastify-otel/tar.gz/ae3088d65e286bdc94ac5d722573537d6a6671bb(@opentelemetry/api@1.9.0) '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) @@ -10465,13 +10448,14 @@ snapshots: '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.30.0 '@prisma/instrumentation': 6.7.0(@opentelemetry/api@1.9.0) - '@sentry/core': 9.19.0 - '@sentry/opentelemetry': 9.19.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0) + '@sentry/core': 9.22.0 + '@sentry/opentelemetry': 9.22.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0) import-in-the-middle: 1.13.2 + minimatch: 9.0.5 transitivePeerDependencies: - supports-color - '@sentry/opentelemetry@9.19.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0)': + '@sentry/opentelemetry@9.22.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) @@ -10479,19 +10463,19 @@ snapshots: '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.30.0 - '@sentry/core': 9.19.0 + '@sentry/core': 9.22.0 - '@sentry/react@9.19.0(react@19.1.0)': + '@sentry/react@9.22.0(react@19.1.0)': dependencies: - '@sentry/browser': 9.19.0 - '@sentry/core': 9.19.0 + '@sentry/browser': 9.22.0 + '@sentry/core': 9.22.0 hoist-non-react-statics: 3.3.2 react: 19.1.0 - '@sentry/vercel-edge@9.19.0': + '@sentry/vercel-edge@9.22.0': dependencies: '@opentelemetry/api': 1.9.0 - '@sentry/core': 9.19.0 + '@sentry/core': 9.22.0 '@sentry/webpack-plugin@3.3.1(webpack@5.98.0(esbuild@0.25.2))': dependencies: @@ -10538,9 +10522,9 @@ snapshots: storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/addon-docs@8.6.14(@types/react@19.1.4)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-docs@8.6.14(@types/react@19.1.5)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: - '@mdx-js/react': 3.1.0(@types/react@19.1.4)(react@19.1.0) + '@mdx-js/react': 3.1.0(@types/react@19.1.5)(react@19.1.0) '@storybook/blocks': 8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) '@storybook/csf-plugin': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) '@storybook/react-dom-shim': 8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) @@ -10551,12 +10535,12 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@storybook/addon-essentials@8.6.14(@types/react@19.1.4)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-essentials@8.6.14(@types/react@19.1.5)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/addon-actions': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) '@storybook/addon-backgrounds': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) '@storybook/addon-controls': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/addon-docs': 8.6.14(@types/react@19.1.4)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-docs': 8.6.14(@types/react@19.1.5)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) '@storybook/addon-highlight': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) '@storybook/addon-measure': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) '@storybook/addon-outline': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) @@ -10858,19 +10842,19 @@ snapshots: dependencies: tslib: 2.8.1 - '@t3-oss/env-core@0.13.4(arktype@2.1.20)(typescript@5.8.3)(zod@3.24.4)': + '@t3-oss/env-core@0.13.4(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.20)': dependencies: arktype: 2.1.20 optionalDependencies: typescript: 5.8.3 - zod: 3.24.4 + zod: 3.25.20 - '@t3-oss/env-nextjs@0.13.4(arktype@2.1.20)(typescript@5.8.3)(zod@3.24.4)': + '@t3-oss/env-nextjs@0.13.4(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.20)': dependencies: - '@t3-oss/env-core': 0.13.4(arktype@2.1.20)(typescript@5.8.3)(zod@3.24.4) + '@t3-oss/env-core': 0.13.4(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.20) optionalDependencies: typescript: 5.8.3 - zod: 3.24.4 + zod: 3.25.20 transitivePeerDependencies: - arktype @@ -10992,15 +10976,15 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react@16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@testing-library/react@16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@babel/runtime': 7.26.10 '@testing-library/dom': 10.4.0 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 - '@types/react-dom': 19.1.5(@types/react@19.1.4) + '@types/react': 19.1.5 + '@types/react-dom': 19.1.5(@types/react@19.1.5) '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: @@ -11048,7 +11032,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 22.15.19 + '@types/node': 22.15.21 '@types/doctrine@0.0.9': {} @@ -11066,7 +11050,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.15.19 + '@types/node': 22.15.21 '@types/html-minifier-terser@6.1.0': {} @@ -11089,7 +11073,7 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 22.15.19 + '@types/node': 22.15.21 '@types/tough-cookie': 4.0.5 parse5: 7.2.1 @@ -11103,14 +11087,14 @@ snapshots: '@types/mysql@2.15.26': dependencies: - '@types/node': 22.15.19 + '@types/node': 22.15.21 '@types/node-fetch@2.6.12': dependencies: - '@types/node': 22.15.19 + '@types/node': 22.15.21 form-data: 4.0.2 - '@types/node@22.15.19': + '@types/node@22.15.21': dependencies: undici-types: 6.21.0 @@ -11122,25 +11106,25 @@ snapshots: '@types/pg@8.11.6': dependencies: - '@types/node': 22.15.19 + '@types/node': 22.15.21 pg-protocol: 1.7.1 pg-types: 4.0.2 '@types/pg@8.6.1': dependencies: - '@types/node': 22.15.19 + '@types/node': 22.15.21 pg-protocol: 1.7.1 pg-types: 2.2.0 - '@types/react-dom@19.1.5(@types/react@19.1.4)': + '@types/react-dom@19.1.5(@types/react@19.1.5)': dependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@types/react-transition-group@4.4.12(@types/react@19.1.4)': + '@types/react-transition-group@4.4.12(@types/react@19.1.5)': dependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - '@types/react@19.1.4': + '@types/react@19.1.5': dependencies: csstype: 3.1.3 @@ -11154,7 +11138,7 @@ snapshots: '@types/tedious@4.0.14': dependencies: - '@types/node': 22.15.19 + '@types/node': 22.15.21 '@types/tough-cookie@4.0.5': {} @@ -12133,13 +12117,13 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.11 - create-jest@29.7.0(@types/node@22.15.19)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.19)(typescript@5.8.3)): + create-jest@29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.15.19)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.19)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -13536,7 +13520,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.19 + '@types/node': 22.15.21 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3(babel-plugin-macros@3.1.0) @@ -13556,16 +13540,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.15.19)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.19)(typescript@5.8.3)): + jest-cli@29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.19)(typescript@5.8.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.15.19)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.19)(typescript@5.8.3)) + create-jest: 29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.15.19)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.19)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -13575,7 +13559,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.15.19)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.19)(typescript@5.8.3)): + jest-config@29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)): dependencies: '@babel/core': 7.26.9 '@jest/test-sequencer': 29.7.0 @@ -13600,8 +13584,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.15.19 - ts-node: 10.9.2(@types/node@22.15.19)(typescript@5.8.3) + '@types/node': 22.15.21 + ts-node: 10.9.2(@types/node@22.15.21)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -13631,7 +13615,7 @@ snapshots: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 22.15.19 + '@types/node': 22.15.21 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3(bufferutil@4.0.9) @@ -13645,7 +13629,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.19 + '@types/node': 22.15.21 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -13655,7 +13639,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.15.19 + '@types/node': 22.15.21 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -13694,7 +13678,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.19 + '@types/node': 22.15.21 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -13729,7 +13713,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.19 + '@types/node': 22.15.21 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -13757,7 +13741,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.19 + '@types/node': 22.15.21 chalk: 4.1.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.2 @@ -13803,7 +13787,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.19 + '@types/node': 22.15.21 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -13822,7 +13806,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.19 + '@types/node': 22.15.21 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -13831,23 +13815,23 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.15.19 + '@types/node': 22.15.21 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 22.15.19 + '@types/node': 22.15.21 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.15.19)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.19)(typescript@5.8.3)): + jest@29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.19)(typescript@5.8.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.15.19)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.19)(typescript@5.8.3)) + jest-cli: 29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -13858,21 +13842,21 @@ snapshots: jiti@2.4.2: {} - jotai-devtools@0.12.0(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(redux@5.0.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)): + jotai-devtools@0.12.0(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(redux@5.0.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)): dependencies: - '@mantine/code-highlight': 7.17.7(@mantine/core@7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@7.17.7(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/core': 7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/code-highlight': 7.17.7(@mantine/core@7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@7.17.7(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/core': 7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/hooks': 7.17.7(react@19.1.0) '@redux-devtools/extension': 3.3.0(redux@5.0.1) '@storybook/test': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) clsx: 2.1.1 javascript-stringify: 2.1.0 - jotai: 2.12.4(@types/react@19.1.4)(react@19.1.0) + jotai: 2.12.4(@types/react@19.1.5)(react@19.1.0) jsondiffpatch: 0.5.0 react: 19.1.0 react-base16-styling: 0.9.1 react-error-boundary: 5.0.0(react@19.1.0) - react-json-tree: 0.18.0(@types/react@19.1.4)(react@19.1.0) + react-json-tree: 0.18.0(@types/react@19.1.5)(react@19.1.0) react-resizable-panels: 2.1.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@types/react' @@ -13880,9 +13864,9 @@ snapshots: - redux - storybook - jotai@2.12.4(@types/react@19.1.4)(react@19.1.0): + jotai@2.12.4(@types/react@19.1.5)(react@19.1.0): optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 react: 19.1.0 js-cookie@2.2.1: {} @@ -13979,10 +13963,10 @@ snapshots: kleur@3.0.3: {} - knip@5.56.0(@types/node@22.15.19)(typescript@5.8.3): + knip@5.57.1(@types/node@22.15.21)(typescript@5.8.3): dependencies: '@nodelib/fs.walk': 1.2.8 - '@types/node': 22.15.19 + '@types/node': 22.15.21 fast-glob: 3.3.3 formatly: 0.2.3 jiti: 2.4.2 @@ -13994,8 +13978,8 @@ snapshots: smol-toml: 1.3.3 strip-json-comments: 5.0.1 typescript: 5.8.3 - zod: 3.24.4 - zod-validation-error: 3.4.0(zod@3.24.4) + zod: 3.25.20 + zod-validation-error: 3.4.0(zod@3.25.20) language-subtag-registry@0.3.23: {} @@ -14640,14 +14624,14 @@ snapshots: postgres@3.4.5: {} - posthog-js@1.242.3: + posthog-js@1.245.2: dependencies: core-js: 3.41.0 fflate: 0.4.8 preact: 10.26.4 web-vitals: 4.2.4 - posthog-node@4.17.1: + posthog-node@4.17.2: dependencies: axios: 1.8.4 transitivePeerDependencies: @@ -14821,11 +14805,11 @@ snapshots: react-is@18.3.1: {} - react-json-tree@0.18.0(@types/react@19.1.4)(react@19.1.0): + react-json-tree@0.18.0(@types/react@19.1.5)(react@19.1.0): dependencies: '@babel/runtime': 7.26.10 '@types/lodash': 4.17.16 - '@types/react': 19.1.4 + '@types/react': 19.1.5 react: 19.1.0 react-base16-styling: 0.9.1 @@ -14846,61 +14830,61 @@ snapshots: react-refresh@0.14.2: {} - react-remove-scroll-bar@2.3.8(@types/react@19.1.4)(react@19.1.0): + react-remove-scroll-bar@2.3.8(@types/react@19.1.5)(react@19.1.0): dependencies: react: 19.1.0 - react-style-singleton: 2.2.3(@types/react@19.1.4)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.5)(react@19.1.0) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - react-remove-scroll@2.6.3(@types/react@19.1.4)(react@19.1.0): + react-remove-scroll@2.6.3(@types/react@19.1.5)(react@19.1.0): dependencies: react: 19.1.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.4)(react@19.1.0) - react-style-singleton: 2.2.3(@types/react@19.1.4)(react@19.1.0) + react-remove-scroll-bar: 2.3.8(@types/react@19.1.5)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.5)(react@19.1.0) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.4)(react@19.1.0) - use-sidecar: 1.1.3(@types/react@19.1.4)(react@19.1.0) + use-callback-ref: 1.3.3(@types/react@19.1.5)(react@19.1.0) + use-sidecar: 1.1.3(@types/react@19.1.5)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 react-resizable-panels@2.1.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-select@5.10.1(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + react-select@5.10.1(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@babel/runtime': 7.26.10 '@emotion/cache': 11.14.0 - '@emotion/react': 11.14.0(@types/react@19.1.4)(react@19.1.0) + '@emotion/react': 11.14.0(@types/react@19.1.5)(react@19.1.0) '@floating-ui/dom': 1.6.13 - '@types/react-transition-group': 4.4.12(@types/react@19.1.4) + '@types/react-transition-group': 4.4.12(@types/react@19.1.5) memoize-one: 6.0.0 prop-types: 15.8.1 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) react-transition-group: 4.4.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.4)(react@19.1.0) + use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.5)(react@19.1.0) transitivePeerDependencies: - '@types/react' - supports-color - react-style-singleton@2.2.3(@types/react@19.1.4)(react@19.1.0): + react-style-singleton@2.2.3(@types/react@19.1.5)(react@19.1.0): dependencies: get-nonce: 1.0.1 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - react-textarea-autosize@8.5.9(@types/react@19.1.4)(react@19.1.0): + react-textarea-autosize@8.5.9(@types/react@19.1.5)(react@19.1.0): dependencies: '@babel/runtime': 7.26.10 react: 19.1.0 - use-composed-ref: 1.4.0(@types/react@19.1.4)(react@19.1.0) - use-latest: 1.3.0(@types/react@19.1.4)(react@19.1.0) + use-composed-ref: 1.4.0(@types/react@19.1.5)(react@19.1.0) + use-latest: 1.3.0(@types/react@19.1.5)(react@19.1.0) transitivePeerDependencies: - '@types/react' @@ -15521,11 +15505,11 @@ snapshots: strip-json-comments@5.0.1: {} - stripe@18.1.0(@types/node@22.15.19): + stripe@18.1.0(@types/node@22.15.21): dependencies: qs: 6.14.0 optionalDependencies: - '@types/node': 22.15.19 + '@types/node': 22.15.21 style-loader@3.3.4(webpack@5.98.0(esbuild@0.25.2)): dependencies: @@ -15655,12 +15639,12 @@ snapshots: ts-easing@0.2.0: {} - ts-jest@29.3.4(@babel/core@7.26.9)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.9))(esbuild@0.25.2)(jest@29.7.0(@types/node@22.15.19)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.19)(typescript@5.8.3)))(typescript@5.8.3): + ts-jest@29.3.4(@babel/core@7.26.9)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.9))(esbuild@0.25.2)(jest@29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)))(typescript@5.8.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.15.19)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.19)(typescript@5.8.3)) + jest: 29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -15676,14 +15660,14 @@ snapshots: babel-jest: 29.7.0(@babel/core@7.26.9) esbuild: 0.25.2 - ts-node@10.9.2(@types/node@22.15.19)(typescript@5.8.3): + ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.15.19 + '@types/node': 22.15.21 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -15843,39 +15827,39 @@ snapshots: punycode: 1.4.1 qs: 6.14.0 - use-callback-ref@1.3.3(@types/react@19.1.4)(react@19.1.0): + use-callback-ref@1.3.3(@types/react@19.1.5)(react@19.1.0): dependencies: react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - use-composed-ref@1.4.0(@types/react@19.1.4)(react@19.1.0): + use-composed-ref@1.4.0(@types/react@19.1.5)(react@19.1.0): dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - use-isomorphic-layout-effect@1.2.0(@types/react@19.1.4)(react@19.1.0): + use-isomorphic-layout-effect@1.2.0(@types/react@19.1.5)(react@19.1.0): dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - use-latest@1.3.0(@types/react@19.1.4)(react@19.1.0): + use-latest@1.3.0(@types/react@19.1.5)(react@19.1.0): dependencies: react: 19.1.0 - use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.4)(react@19.1.0) + use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.5)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 - use-sidecar@1.1.3(@types/react@19.1.4)(react@19.1.0): + use-sidecar@1.1.3(@types/react@19.1.5)(react@19.1.0): dependencies: detect-node-es: 1.1.0 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.4 + '@types/react': 19.1.5 use-sync-external-store@1.5.0(react@19.1.0): dependencies: @@ -15903,9 +15887,9 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 - vaul@1.1.2(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + vaul@1.1.2(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@radix-ui/react-dialog': 1.1.13(@types/react-dom@19.1.5(@types/react@19.1.4))(@types/react@19.1.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-dialog': 1.1.14(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) transitivePeerDependencies: @@ -16103,8 +16087,8 @@ snapshots: yocto-queue@1.2.1: {} - zod-validation-error@3.4.0(zod@3.24.4): + zod-validation-error@3.4.0(zod@3.25.20): dependencies: - zod: 3.24.4 + zod: 3.25.20 - zod@3.24.4: {} + zod@3.25.20: {} From 4c268cee3b36fde956459b9dbf41cf87853ab27b Mon Sep 17 00:00:00 2001 From: dopoto Date: Tue, 3 Jun 2025 16:44:26 +0300 Subject: [PATCH 03/21] fix --- .vscode/settings.json | 8 +- package.json | 61 +- pnpm-lock.yaml | 2520 ++++++++--------- .../updateOrderItemDeliveryStatusAction.ts} | 13 +- .../PublicFooterInteractiveMode.tsx | 21 +- .../[locationSlug]/_components/StickyTabs.tsx | 2 +- .../live/_components/LiveOrders.tsx | 2 +- .../live/_components/OrderCard.tsx | 104 +- src/components/ThreeStateToggle.tsx | 12 +- src/components/public/PublicMenuItem.tsx | 2 +- src/domain/order-items.ts | 5 +- src/server/db/schema.ts | 40 +- src/server/queries/orders.ts | 12 +- 13 files changed, 1278 insertions(+), 1524 deletions(-) rename src/app/{u/[locationId]/live/_actions/markOrderItemAsDeliveredAction.ts => actions/updateOrderItemDeliveryStatusAction.ts} (83%) diff --git a/.vscode/settings.json b/.vscode/settings.json index 271c4c9..81f163f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -12,5 +12,11 @@ "eslint.format.enable": true, "editor.formatOnSave": true, "javascript.updateImportsOnFileMove.enabled": "always", - "typescript.updateImportsOnFileMove.enabled": "always" + "typescript.updateImportsOnFileMove.enabled": "always", + "[typescript]": { + "editor.defaultFormatter": "vscode.typescript-language-features" + }, + "[typescriptreact]": { + "editor.defaultFormatter": "vscode.typescript-language-features" + } } diff --git a/package.json b/package.json index 8262e36..4e4098e 100644 --- a/package.json +++ b/package.json @@ -27,14 +27,15 @@ "knip": "knip" }, "dependencies": { - "@clerk/nextjs": "^6.19.5", - "@clerk/themes": "2.2.46", + "@clerk/nextjs": "^6.20.2", + "@clerk/themes": "2.2.48", "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@hookform/resolvers": "^5.0.1", - "@next/env": "~15.3.2", - "@next/third-parties": "^15.3.2", + "@next/env": "~15.3.3", + "@next/third-parties": "^15.3.3", + "@number-flow/react": "^0.5.9", "@radix-ui/react-avatar": "^1.1.10", "@radix-ui/react-checkbox": "^1.3.2", "@radix-ui/react-collapsible": "^1.1.11", @@ -50,19 +51,19 @@ "@radix-ui/react-tabs": "^1.1.12", "@radix-ui/react-toast": "^1.2.14", "@radix-ui/react-tooltip": "^1.2.7", - "@sentry/nextjs": "9.22.0", + "@sentry/nextjs": "9.25.0", "@stripe/react-stripe-js": "^3.7.0", - "@stripe/stripe-js": "^7.3.0", - "@t3-oss/env-nextjs": "^0.13.4", - "@tanstack/react-query": "^5.76.1", - "@tanstack/react-query-devtools": "^5.76.1", + "@stripe/stripe-js": "^7.3.1", + "@t3-oss/env-nextjs": "^0.13.6", + "@tanstack/react-query": "^5.79.2", + "@tanstack/react-query-devtools": "^5.79.2", "@vercel/analytics": "^1.5.0", "@vercel/edge-config": "^1.4.0", "@vercel/postgres": "^0.10.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "cookies-next": "^5.1.0", - "drizzle-orm": "^0.43.1", + "cookies-next": "^6.0.0", + "drizzle-orm": "^0.44.1", "embla-carousel-react": "^8.6.0", "geist": "^1.4.2", "jotai": "^2.12.4", @@ -70,51 +71,51 @@ "next": "15.3.2", "next-themes": "^0.4.6", "postgres": "^3.4.5", - "posthog-js": "^1.245.2", - "posthog-node": "^4.17.2", + "posthog-js": "^1.249.2", + "posthog-node": "^4.18.0", "pusher": "^5.2.0", "pusher-js": "^8.4.0", "react": "^19.1.0", "react-confetti": "6.4.0", "react-dom": "^19.1.0", - "react-hook-form": "^7.56.4", + "react-hook-form": "^7.57.0", "react-loading-skeleton": "^3.5.0", "react-qr-code": "^2.0.15", "react-select": "^5.10.1", "react-use": "17.6.0", "server-only": "^0.0.1", - "stripe": "^18.1.0", + "stripe": "^18.2.1", "tailwind-merge": "^3.3.0", "tailwindcss-animate": "^1.0.7", "truncate-middle": "^2.0.1", "vaul": "^1.1.2", - "zod": "3.25.20" + "zod": "3.25.49" }, "devDependencies": { - "@chromatic-com/storybook": "3.2.6", + "@chromatic-com/storybook": "4.0.0", "@eslint/eslintrc": "^3.3.1", "@storybook/addon-essentials": "8.6.14", - "@storybook/addon-onboarding": "8.6.14", + "@storybook/addon-onboarding": "9.0.4", "@storybook/blocks": "8.6.14", - "@storybook/nextjs": "8.6.14", - "@storybook/react": "8.6.14", + "@storybook/nextjs": "9.0.4", + "@storybook/react": "9.0.4", "@storybook/test": "8.6.14", - "@tailwindcss/postcss": "^4.1.7", + "@tailwindcss/postcss": "^4.1.8", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", "@types/eslint": "^9.6.1", "@types/jest": "^29.5.14", - "@types/node": "^22.15.21", - "@types/react": "^19.1.5", + "@types/node": "^22.15.29", + "@types/react": "^19.1.6", "@types/react-dom": "^19.1.5", "cross-env": "^7.0.3", "drizzle-kit": "^0.31.1", - "eslint": "9.27.0", - "eslint-config-next": "^15.3.2", + "eslint": "9.28.0", + "eslint-config-next": "^15.3.3", "eslint-config-prettier": "^10.1.5", "eslint-plugin-drizzle": "^0.2.3", - "eslint-plugin-storybook": "^0.12.0", + "eslint-plugin-storybook": "9.0.4", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "jotai-devtools": "^0.12.0", @@ -122,13 +123,13 @@ "postcss": "^8.5.3", "prettier": "^3.5.3", "prettier-plugin-organize-imports": "4.1.0", - "prettier-plugin-tailwindcss": "^0.6.11", - "storybook": "8.6.14", - "tailwindcss": "^4.1.7", + "prettier-plugin-tailwindcss": "^0.6.12", + "storybook": "9.0.4", + "tailwindcss": "^4.1.8", "ts-jest": "^29.3.4", "ts-node": "^10.9.2", "typescript": "^5.8.3", - "typescript-eslint": "^8.32.1" + "typescript-eslint": "^8.33.1" }, "ct3aMetadata": { "initVersion": "7.38.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cac8db0..51ceeb4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,11 +9,11 @@ importers: .: dependencies: '@clerk/nextjs': - specifier: ^6.19.5 - version: 6.19.5(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ^6.20.2 + version: 6.20.2(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@clerk/themes': - specifier: 2.2.46 - version: 2.2.46 + specifier: 2.2.48 + version: 2.2.48 '@dnd-kit/core': specifier: ^6.3.1 version: 6.3.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -25,76 +25,79 @@ importers: version: 3.2.2(react@19.1.0) '@hookform/resolvers': specifier: ^5.0.1 - version: 5.0.1(react-hook-form@7.56.4(react@19.1.0)) + version: 5.0.1(react-hook-form@7.57.0(react@19.1.0)) '@next/env': - specifier: ~15.3.2 - version: 15.3.2 + specifier: ~15.3.3 + version: 15.3.3 '@next/third-parties': - specifier: ^15.3.2 - version: 15.3.2(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) + specifier: ^15.3.3 + version: 15.3.3(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) + '@number-flow/react': + specifier: ^0.5.9 + version: 0.5.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-avatar': specifier: ^1.1.10 - version: 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-checkbox': specifier: ^1.3.2 - version: 1.3.2(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.3.2(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-collapsible': specifier: ^1.1.11 - version: 1.1.11(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.11(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-dialog': specifier: ^1.1.14 - version: 1.1.14(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.14(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-dropdown-menu': specifier: ^2.1.15 - version: 2.1.15(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.1.15(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-label': specifier: ^2.1.7 - version: 2.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.1.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-popover': specifier: ^1.1.14 - version: 1.1.14(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.14(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-progress': specifier: ^1.1.7 - version: 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-radio-group': specifier: ^1.3.7 - version: 1.3.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.3.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-separator': specifier: ^1.1.7 - version: 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-slot': specifier: ^1.2.3 - version: 1.2.3(@types/react@19.1.5)(react@19.1.0) + version: 1.2.3(@types/react@19.1.6)(react@19.1.0) '@radix-ui/react-switch': specifier: ^1.2.5 - version: 1.2.5(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.5(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-tabs': specifier: ^1.1.12 - version: 1.1.12(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.12(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-toast': specifier: ^1.2.14 - version: 1.2.14(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.14(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-tooltip': specifier: ^1.2.7 - version: 1.2.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@sentry/nextjs': - specifier: 9.22.0 - version: 9.22.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(webpack@5.98.0(esbuild@0.25.2)) + specifier: 9.25.0 + version: 9.25.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(webpack@5.98.0(esbuild@0.25.2)) '@stripe/react-stripe-js': specifier: ^3.7.0 - version: 3.7.0(@stripe/stripe-js@7.3.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 3.7.0(@stripe/stripe-js@7.3.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@stripe/stripe-js': - specifier: ^7.3.0 - version: 7.3.0 + specifier: ^7.3.1 + version: 7.3.1 '@t3-oss/env-nextjs': - specifier: ^0.13.4 - version: 0.13.4(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.20) + specifier: ^0.13.6 + version: 0.13.6(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.49) '@tanstack/react-query': - specifier: ^5.76.1 - version: 5.76.1(react@19.1.0) + specifier: ^5.79.2 + version: 5.79.2(react@19.1.0) '@tanstack/react-query-devtools': - specifier: ^5.76.1 - version: 5.76.1(@tanstack/react-query@5.76.1(react@19.1.0))(react@19.1.0) + specifier: ^5.79.2 + version: 5.79.2(@tanstack/react-query@5.79.2(react@19.1.0))(react@19.1.0) '@vercel/analytics': specifier: ^1.5.0 version: 1.5.0(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) @@ -111,11 +114,11 @@ importers: specifier: ^2.1.1 version: 2.1.1 cookies-next: - specifier: ^5.1.0 - version: 5.1.0(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) + specifier: ^6.0.0 + version: 6.0.0(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0) drizzle-orm: - specifier: ^0.43.1 - version: 0.43.1(@opentelemetry/api@1.9.0)(@types/pg@8.11.6)(@vercel/postgres@0.10.0)(gel@2.0.1)(postgres@3.4.5) + specifier: ^0.44.1 + version: 0.44.1(@opentelemetry/api@1.9.0)(@types/pg@8.11.6)(@vercel/postgres@0.10.0)(gel@2.0.1)(postgres@3.4.5) embla-carousel-react: specifier: ^8.6.0 version: 8.6.0(react@19.1.0) @@ -124,7 +127,7 @@ importers: version: 1.4.2(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) jotai: specifier: ^2.12.4 - version: 2.12.4(@types/react@19.1.5)(react@19.1.0) + version: 2.12.4(@types/react@19.1.6)(react@19.1.0) lucide-react: specifier: ^0.511.0 version: 0.511.0(react@19.1.0) @@ -138,11 +141,11 @@ importers: specifier: ^3.4.5 version: 3.4.5 posthog-js: - specifier: ^1.245.2 - version: 1.245.2 + specifier: ^1.249.2 + version: 1.249.2 posthog-node: - specifier: ^4.17.2 - version: 4.17.2 + specifier: ^4.18.0 + version: 4.18.0 pusher: specifier: ^5.2.0 version: 5.2.0 @@ -159,8 +162,8 @@ importers: specifier: ^19.1.0 version: 19.1.0(react@19.1.0) react-hook-form: - specifier: ^7.56.4 - version: 7.56.4(react@19.1.0) + specifier: ^7.57.0 + version: 7.57.0(react@19.1.0) react-loading-skeleton: specifier: ^3.5.0 version: 3.5.0(react@19.1.0) @@ -169,7 +172,7 @@ importers: version: 2.0.15(react@19.1.0) react-select: specifier: ^5.10.1 - version: 5.10.1(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 5.10.1(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-use: specifier: 17.6.0 version: 17.6.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -177,51 +180,51 @@ importers: specifier: ^0.0.1 version: 0.0.1 stripe: - specifier: ^18.1.0 - version: 18.1.0(@types/node@22.15.21) + specifier: ^18.2.1 + version: 18.2.1(@types/node@22.15.29) tailwind-merge: specifier: ^3.3.0 version: 3.3.0 tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@4.1.7) + version: 1.0.7(tailwindcss@4.1.8) truncate-middle: specifier: ^2.0.1 version: 2.0.1 vaul: specifier: ^1.1.2 - version: 1.1.2(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.2(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) zod: - specifier: 3.25.20 - version: 3.25.20 + specifier: 3.25.49 + version: 3.25.49 devDependencies: '@chromatic-com/storybook': - specifier: 3.2.6 - version: 3.2.6(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + specifier: 4.0.0 + version: 4.0.0(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) '@eslint/eslintrc': specifier: ^3.3.1 version: 3.3.1 '@storybook/addon-essentials': specifier: 8.6.14 - version: 8.6.14(@types/react@19.1.5)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + version: 8.6.14(@types/react@19.1.6)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) '@storybook/addon-onboarding': - specifier: 8.6.14 - version: 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + specifier: 9.0.4 + version: 9.0.4(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) '@storybook/blocks': specifier: 8.6.14 - version: 8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + version: 8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) '@storybook/nextjs': - specifier: 8.6.14 - version: 8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.2)(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.2)) + specifier: 9.0.4 + version: 9.0.4(babel-plugin-macros@3.1.0)(esbuild@0.25.2)(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.2)) '@storybook/react': - specifier: 8.6.14 - version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) + specifier: 9.0.4 + version: 9.0.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) '@storybook/test': specifier: 8.6.14 - version: 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + version: 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) '@tailwindcss/postcss': - specifier: ^4.1.7 - version: 4.1.7 + specifier: ^4.1.8 + version: 4.1.8 '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 @@ -230,7 +233,7 @@ importers: version: 6.6.3 '@testing-library/react': specifier: ^16.3.0 - version: 16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@types/eslint': specifier: ^9.6.1 version: 9.6.1 @@ -238,14 +241,14 @@ importers: specifier: ^29.5.14 version: 29.5.14 '@types/node': - specifier: ^22.15.21 - version: 22.15.21 + specifier: ^22.15.29 + version: 22.15.29 '@types/react': - specifier: ^19.1.5 - version: 19.1.5 + specifier: ^19.1.6 + version: 19.1.6 '@types/react-dom': specifier: ^19.1.5 - version: 19.1.5(@types/react@19.1.5) + version: 19.1.5(@types/react@19.1.6) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -253,32 +256,32 @@ importers: specifier: ^0.31.1 version: 0.31.1 eslint: - specifier: 9.27.0 - version: 9.27.0(jiti@2.4.2) + specifier: 9.28.0 + version: 9.28.0(jiti@2.4.2) eslint-config-next: - specifier: ^15.3.2 - version: 15.3.2(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + specifier: ^15.3.3 + version: 15.3.3(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) eslint-config-prettier: specifier: ^10.1.5 - version: 10.1.5(eslint@9.27.0(jiti@2.4.2)) + version: 10.1.5(eslint@9.28.0(jiti@2.4.2)) eslint-plugin-drizzle: specifier: ^0.2.3 - version: 0.2.3(eslint@9.27.0(jiti@2.4.2)) + version: 0.2.3(eslint@9.28.0(jiti@2.4.2)) eslint-plugin-storybook: - specifier: ^0.12.0 - version: 0.12.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + specifier: 9.0.4 + version: 9.0.4(eslint@9.28.0(jiti@2.4.2))(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) + version: 29.7.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0(bufferutil@4.0.9) jotai-devtools: specifier: ^0.12.0 - version: 0.12.0(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(redux@5.0.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + version: 0.12.0(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(redux@5.0.1)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) knip: specifier: ^5.57.1 - version: 5.57.1(@types/node@22.15.21)(typescript@5.8.3) + version: 5.57.1(@types/node@22.15.29)(typescript@5.8.3) postcss: specifier: ^8.5.3 version: 8.5.3 @@ -289,26 +292,26 @@ importers: specifier: 4.1.0 version: 4.1.0(prettier@3.5.3)(typescript@5.8.3) prettier-plugin-tailwindcss: - specifier: ^0.6.11 - version: 0.6.11(prettier-plugin-organize-imports@4.1.0(prettier@3.5.3)(typescript@5.8.3))(prettier@3.5.3) + specifier: ^0.6.12 + version: 0.6.12(prettier-plugin-organize-imports@4.1.0(prettier@3.5.3)(typescript@5.8.3))(prettier@3.5.3) storybook: - specifier: 8.6.14 - version: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + specifier: 9.0.4 + version: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) tailwindcss: - specifier: ^4.1.7 - version: 4.1.7 + specifier: ^4.1.8 + version: 4.1.8 ts-jest: specifier: ^29.3.4 - version: 29.3.4(@babel/core@7.26.9)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.9))(esbuild@0.25.2)(jest@29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)))(typescript@5.8.3) + version: 29.3.4(@babel/core@7.26.9)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.9))(esbuild@0.25.2)(jest@29.7.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)))(typescript@5.8.3) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.15.21)(typescript@5.8.3) + version: 10.9.2(@types/node@22.15.29)(typescript@5.8.3) typescript: specifier: ^5.8.3 version: 5.8.3 typescript-eslint: - specifier: ^8.32.1 - version: 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + specifier: ^8.33.1 + version: 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) packages: @@ -955,14 +958,14 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@chromatic-com/storybook@3.2.6': - resolution: {integrity: sha512-FDmn5Ry2DzQdik+eq2sp/kJMMT36Ewe7ONXUXM2Izd97c7r6R/QyGli8eyh/F0iyqVvbLveNYFyF0dBOJNwLqw==} - engines: {node: '>=16.0.0', yarn: '>=1.22.18'} + '@chromatic-com/storybook@4.0.0': + resolution: {integrity: sha512-FfyMHK/lz/dHezWxwNZv4ReFORWVvv+bJx71NT2BSfLhOKOaoZnKJOe4QLyGxWAB7ynnedrM9V9qea3FPFj+rQ==} + engines: {node: '>=20.0.0', yarn: '>=1.22.18'} peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + storybook: ^0.0.0-0 || ^9.0.0 || ^9.1.0-0 - '@clerk/backend@1.32.3': - resolution: {integrity: sha512-6t3d9MlMtQAZu9elfaavTu4sTRLzUKlyv6Sz5ohPSD81Qy+k4VtqK+krQDwlB2aigRCpuAlSMpGs4N1zeb7MMg==} + '@clerk/backend@1.34.0': + resolution: {integrity: sha512-9rZ8hQJVpX5KX2bEpiuVXfpjhojQCiqCWADJDdCI0PCeKxn58Ep0JPYiIcczg4VKUc3a7jve9vXylykG2XajLQ==} engines: {node: '>=18.17.0'} peerDependencies: svix: ^1.62.0 @@ -970,23 +973,23 @@ packages: svix: optional: true - '@clerk/clerk-react@5.31.5': - resolution: {integrity: sha512-B5dL2Mg+eaZymA7X6pzpXH104aHubfm/47NlpUxJ92jYTFOSkjLwPszBBJoyy72EPcABs+9XIOWSWH9xvBMTEw==} + '@clerk/clerk-react@5.31.8': + resolution: {integrity: sha512-GPhOdI7drAaamiKIhzfWiOVe4zw4wUi1sKp6khgUzcjr9hRopdZvzMts0fU+XLHFnYUSX8IPw4c0CDXY1wBKuw==} engines: {node: '>=18.17.0'} peerDependencies: react: ^18.0.0 || ^19.0.0 || ^19.0.0-0 react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-0 - '@clerk/nextjs@6.19.5': - resolution: {integrity: sha512-w1kzhFhWiVXtt0D76OOE80ygWf5BZxTEbpLacQdGM5jLFpIdpo0JsfVF9MBTPfzihY9ZRS6Qogyc3JDa02Pwjw==} + '@clerk/nextjs@6.20.2': + resolution: {integrity: sha512-rBtAdx2PFxexBDU41GEmEQwSsfbTU7J7OVBKRtmXAXFMYdknGNw41674sFBTaG+wjbTYrhW7wsXcyphEUyVMoQ==} engines: {node: '>=18.17.0'} peerDependencies: next: ^13.5.7 || ^14.2.25 || ^15.2.3 react: ^18.0.0 || ^19.0.0 || ^19.0.0-0 react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-0 - '@clerk/shared@3.9.2': - resolution: {integrity: sha512-w5hUmqcsfCrGC6vX1uMi4+OVa2HcZpGZFWRMCL9Yig7JN/RZx+5Q7Uue7/GJmKRSsG2F4Jc2Yed6oIHIq6vVPg==} + '@clerk/shared@3.9.5': + resolution: {integrity: sha512-KeIug5qV4LnzZD+16SLkJvdONPs2HQ7I1A7jbHYOGB37vQrQrus64Wu5XeNzbWFTN1Z5fAPSGuja8MfT2cBT4A==} engines: {node: '>=18.17.0'} peerDependencies: react: ^18.0.0 || ^19.0.0 || ^19.0.0-0 @@ -997,12 +1000,12 @@ packages: react-dom: optional: true - '@clerk/themes@2.2.46': - resolution: {integrity: sha512-Zw9SIMFYLmYr9mNqVLXvPgUE8sPKL5oz2xGi37HnJRpUud/aUifEZ1mihRv158vAga2HmJHptAxwAmmKhHVymA==} + '@clerk/themes@2.2.48': + resolution: {integrity: sha512-vylu+2IShOCBr6OBhIFlXL3ULqIZc4L5A/muB0HEum7BHR0bjq6UWHyNZuPKla0W4QGc3azPrTgi19zI4PlZ6A==} engines: {node: '>=18.17.0'} - '@clerk/types@4.59.1': - resolution: {integrity: sha512-Td/cdDPHmtlKr9stmo10e2pXU+PvMimDgNy5i1vXrlD0LWJJ5cdccFCtzQwqaEfPE5oSoPvAqCCmXJAuHxaWsQ==} + '@clerk/types@4.59.3': + resolution: {integrity: sha512-xwOO/hfABzbFr3f1RaVXHsDDQ0+jYpm84GiaUDxo+mLsYUgD9f2GmGjKkgWybXzvsBsgZlycSwRXkeDD6utFqg==} engines: {node: '>=18.17.0'} '@cspotcode/source-map-support@0.8.1': @@ -1374,12 +1377,6 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.1': - resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/eslint-utils@4.7.0': resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1406,8 +1403,8 @@ packages: resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.27.0': - resolution: {integrity: sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==} + '@eslint/js@9.28.0': + resolution: {integrity: sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': @@ -1464,65 +1461,33 @@ packages: resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} engines: {node: '>=18.18'} - '@img/sharp-darwin-arm64@0.33.5': - resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [darwin] - '@img/sharp-darwin-arm64@0.34.1': resolution: {integrity: sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.33.5': - resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [darwin] - '@img/sharp-darwin-x64@0.34.1': resolution: {integrity: sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.0.4': - resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} - cpu: [arm64] - os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.1.0': resolution: {integrity: sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.0.4': - resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} - cpu: [x64] - os: [darwin] - '@img/sharp-libvips-darwin-x64@1.1.0': resolution: {integrity: sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.0.4': - resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} - cpu: [arm64] - os: [linux] - '@img/sharp-libvips-linux-arm64@1.1.0': resolution: {integrity: sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linux-arm@1.0.5': - resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} - cpu: [arm] - os: [linux] - '@img/sharp-libvips-linux-arm@1.1.0': resolution: {integrity: sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==} cpu: [arm] @@ -1533,146 +1498,73 @@ packages: cpu: [ppc64] os: [linux] - '@img/sharp-libvips-linux-s390x@1.0.4': - resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} - cpu: [s390x] - os: [linux] - '@img/sharp-libvips-linux-s390x@1.1.0': resolution: {integrity: sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==} cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-x64@1.0.4': - resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} - cpu: [x64] - os: [linux] - '@img/sharp-libvips-linux-x64@1.1.0': resolution: {integrity: sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==} cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.0.4': - resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} - cpu: [arm64] - os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.1.0': resolution: {integrity: sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.0.4': - resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} - cpu: [x64] - os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.1.0': resolution: {integrity: sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==} cpu: [x64] os: [linux] - '@img/sharp-linux-arm64@0.33.5': - resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - '@img/sharp-linux-arm64@0.34.1': resolution: {integrity: sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linux-arm@0.33.5': - resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm] - os: [linux] - '@img/sharp-linux-arm@0.34.1': resolution: {integrity: sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - '@img/sharp-linux-s390x@0.33.5': - resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [s390x] - os: [linux] - '@img/sharp-linux-s390x@0.34.1': resolution: {integrity: sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - '@img/sharp-linux-x64@0.33.5': - resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - '@img/sharp-linux-x64@0.34.1': resolution: {integrity: sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.33.5': - resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - '@img/sharp-linuxmusl-arm64@0.34.1': resolution: {integrity: sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-x64@0.33.5': - resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - '@img/sharp-linuxmusl-x64@0.34.1': resolution: {integrity: sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-wasm32@0.33.5': - resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [wasm32] - '@img/sharp-wasm32@0.34.1': resolution: {integrity: sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-win32-ia32@0.33.5': - resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ia32] - os: [win32] - '@img/sharp-win32-ia32@0.34.1': resolution: {integrity: sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.33.5': - resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [win32] - '@img/sharp-win32-x64@0.34.1': resolution: {integrity: sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -1810,14 +1702,20 @@ packages: '@napi-rs/wasm-runtime@0.2.9': resolution: {integrity: sha512-OKRBiajrrxB9ATokgEQoG87Z25c67pCpYcCwmXYX8PBftC9pBfN18gnm/fh1wurSLEKIAt+QRFLFCQISrb66Jg==} + '@neoconfetti/react@1.0.0': + resolution: {integrity: sha512-klcSooChXXOzIm+SE5IISIAn3bYzYfPjbX7D7HoqZL84oAfgREeSg5vSIaSFH+DaGzzvImTyWe1OyrJ67vik4A==} + '@neondatabase/serverless@0.9.5': resolution: {integrity: sha512-siFas6gItqv6wD/pZnvdu34wEqgG3nSE6zWZdq5j2DEsa+VvX8i/5HXJOo06qrw5axPXn+lGCxeR+NLaSPIXug==} '@next/env@15.3.2': resolution: {integrity: sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==} - '@next/eslint-plugin-next@15.3.2': - resolution: {integrity: sha512-ijVRTXBgnHT33aWnDtmlG+LJD+5vhc9AKTJPquGG5NKXjpKNjc62woIhFtrAcWdBobt8kqjCoaJ0q6sDQoX7aQ==} + '@next/env@15.3.3': + resolution: {integrity: sha512-OdiMrzCl2Xi0VTjiQQUK0Xh7bJHnOuET2s+3V+Y40WJBAXrJeGA3f+I8MZJ/YQ3mVGi5XGR1L66oFlgqXhQ4Vw==} + + '@next/eslint-plugin-next@15.3.3': + resolution: {integrity: sha512-VKZJEiEdpKkfBmcokGjHu0vGDG+8CehGs90tBEy/IDoDDKGngeyIStt2MmE5FYNyU9BhgR7tybNWTAJY/30u+Q==} '@next/swc-darwin-arm64@15.3.2': resolution: {integrity: sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g==} @@ -1867,8 +1765,8 @@ packages: cpu: [x64] os: [win32] - '@next/third-parties@15.3.2': - resolution: {integrity: sha512-zE9xYkMKZ6gLbkP6lWt60yaeKB5r0A4eZhFKAhgik/eO+zzZPFkTy5K7+0ykgfB6MTkcend3BaDXZhz9KnDjYw==} + '@next/third-parties@15.3.3': + resolution: {integrity: sha512-kwhDkK/3klTvW6SuNkmIMSqzEk9Rnc7PkpGeAi3x0mcbPJhFTwdC/qTEd/HZt53J2yFv73YohOBk6dUG3TEIkQ==} peerDependencies: next: ^13.0.0 || ^14.0.0 || ^15.0.0 react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 @@ -1889,6 +1787,12 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} + '@number-flow/react@0.5.9': + resolution: {integrity: sha512-cletUjLUIV6NoNg36z4CR4khIff3fb4RWzuNx8TOZVw34pUpZlgWpnDpJb4UG8B2QyYAFbptVunW0RiqoHVCDA==} + peerDependencies: + react: ^18 || ^19 + react-dom: ^18 || ^19 + '@opentelemetry/api-logs@0.57.2': resolution: {integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==} engines: {node: '>=14'} @@ -2067,8 +1971,8 @@ packages: resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} engines: {node: '>=14'} - '@opentelemetry/semantic-conventions@1.30.0': - resolution: {integrity: sha512-4VlGgo32k2EQ2wcCY3vEU28A0O13aOtHz3Xt2/2U5FAh9EfhD6t6DqL5Z6yAnRCntbTFDU4YfbpyzSlHNWycPw==} + '@opentelemetry/semantic-conventions@1.34.0': + resolution: {integrity: sha512-aKcOkyrorBGlajjRdVoJWHTxfxO1vCNHLJVlSDaRHDIdjU+pX8IYQPvPDkYiujKLbRnWU+1TBwEt0QRgSm4SGA==} engines: {node: '>=14'} '@opentelemetry/sql-common@0.40.1': @@ -2171,8 +2075,8 @@ packages: webpack-plugin-serve: optional: true - '@prisma/instrumentation@6.7.0': - resolution: {integrity: sha512-3NuxWlbzYNevgPZbV0ktA2z6r0bfh0g22ONTxcK09a6+6MdIPjHsYx1Hnyu4yOq+j7LmupO5J69hhuOnuvj8oQ==} + '@prisma/instrumentation@6.8.2': + resolution: {integrity: sha512-5NCTbZjw7a+WIZ/ey6G8SY+YKcyM2zBF0hOT1muvqC9TbVtTCr5Qv3RL/2iNDOzLUHEvo4I1uEfioyfuNOGK8Q==} peerDependencies: '@opentelemetry/api': ^1.8 @@ -2766,32 +2670,32 @@ packages: '@rushstack/eslint-patch@1.10.5': resolution: {integrity: sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==} - '@sentry-internal/browser-utils@9.22.0': - resolution: {integrity: sha512-Ou1tBnVxFAIn8i9gvrWzRotNJQYiu3awNXpsFCw6qFwmiKAVPa6b13vCdolhXnrIiuR77jY1LQnKh9hXpoRzsg==} + '@sentry-internal/browser-utils@9.25.0': + resolution: {integrity: sha512-pPlIXHcXNKjVsN/hMeh6ujBkDBMKfxFSdPHHshMSj9tRNc5SI1A1pxWK6QaEMAXor74ICYWt/fazJDw9wE2shg==} engines: {node: '>=18'} - '@sentry-internal/feedback@9.22.0': - resolution: {integrity: sha512-zgMVkoC61fgi41zLcSZA59vOtKxcLrKBo1ECYhPD1hxEaneNqY5fhXDwlQBw96P5l2yqkgfX6YZtSdU4ejI9yA==} + '@sentry-internal/feedback@9.25.0': + resolution: {integrity: sha512-myrU1H1IR3EjRPo/66+Jjy5xHq9xEuosI8iRKN/0dSMeS6TZQ+PF0ixNHlwtyxhJn3z0o1gobB1Oawi7W/EDeQ==} engines: {node: '>=18'} - '@sentry-internal/replay-canvas@9.22.0': - resolution: {integrity: sha512-EcG9IMSEalFe49kowBTJObWjof/iHteDwpyuAszsFDdQUYATrVUtwpwN7o52vDYWJud4arhjrQnMamIGxa79eQ==} + '@sentry-internal/replay-canvas@9.25.0': + resolution: {integrity: sha512-eNjfS40OyU1Ca74YmDRm8PlLmwIH4N0EyIw7FScc92cr7ip+Y4UzRDEa2zJGwHPPuTRXexUI3vaZqmMQkWQP1g==} engines: {node: '>=18'} - '@sentry-internal/replay@9.22.0': - resolution: {integrity: sha512-9GOycoKbrclcRXfcbNV8svbmAsOS5R4wXBQmKF4pFLkmFA/lJv9kdZSNYkRvkrxdNfbMIJXP+DV9EqTZcryXig==} + '@sentry-internal/replay@9.25.0': + resolution: {integrity: sha512-aSk4cUv8KasQd8Gb2NHDH/c6IHRZwTq4gx9oo5rCYzMAHRQGNjGU18ecHOtLKKueQGCfrmF1Xv76LgjJVYsVOw==} engines: {node: '>=18'} - '@sentry/babel-plugin-component-annotate@3.3.1': - resolution: {integrity: sha512-5GOxGT7lZN+I8A7Vp0rWY+726FDKEw8HnFiebe51rQrMbfGfCu2Aw9uSM0nT9OG6xhV6WvGccIcCszTPs4fUZQ==} + '@sentry/babel-plugin-component-annotate@3.5.0': + resolution: {integrity: sha512-s2go8w03CDHbF9luFGtBHKJp4cSpsQzNVqgIa9Pfa4wnjipvrK6CxVT4icpLA3YO6kg5u622Yoa5GF3cJdippw==} engines: {node: '>= 14'} - '@sentry/browser@9.22.0': - resolution: {integrity: sha512-3TeRm74dvX0JdjX0AgkQa+22iUHwHnY+Q6M05NZ+tDeCNHGK/mEBTeqquS1oQX67jWyuvYmG3VV6RJUxtG9Paw==} + '@sentry/browser@9.25.0': + resolution: {integrity: sha512-IkeGKrTX2nX0POgZATLiYJEIyjcwtf5z40fvuSofVSnONrnSuJmlkDI2grRLX+OhQh4MJaq8gwPhTMqf9koRTQ==} engines: {node: '>=18'} - '@sentry/bundler-plugin-core@3.3.1': - resolution: {integrity: sha512-Dd6xaWb293j9otEJ1yJqG2Ra6zB49OPzMNdIkdP8wdY+S9UFQE5PyKTyredmPY7hqCc005OrUQZolIIo9Zl13A==} + '@sentry/bundler-plugin-core@3.5.0': + resolution: {integrity: sha512-zDzPrhJqAAy2VzV4g540qAZH4qxzisstK2+NIJPZUUKztWRWUV2cMHsyUtdctYgloGkLyGpZJBE3RE6dmP/xqQ==} engines: {node: '>= 14'} '@sentry/cli-darwin@2.42.2': @@ -2840,22 +2744,22 @@ packages: engines: {node: '>= 10'} hasBin: true - '@sentry/core@9.22.0': - resolution: {integrity: sha512-ixvtKmPF42Y6ckGUbFlB54OWI75H2gO5UYHojO6eXFpS7xO3ZGgV/QH6wb40mWK+0w5XZ0233FuU9VpsuE6mKA==} + '@sentry/core@9.25.0': + resolution: {integrity: sha512-k0AgzR6RIf6OEwkVz09zer8GcK1s7RothlS1R6Z4x1wAJ+brtx4HqWnbLp05LDNDNrjTzK30HXvuCGGusnZuig==} engines: {node: '>=18'} - '@sentry/nextjs@9.22.0': - resolution: {integrity: sha512-FbXP0z32kTxavz39E096JcGJQfp6hmmddXSSmG23m2Va/dpC+xNl5+bxmLdt2NRaY6o3nPxqsB/bKccpMJBvMw==} + '@sentry/nextjs@9.25.0': + resolution: {integrity: sha512-XPTD4aX+NLn8N3JZJ3tW8o+leclL7v9N8jBqH9byay6iXaJxdKi27dokFs2GpwqIAZAqm3RIihECKtUnv8utmQ==} engines: {node: '>=18'} peerDependencies: next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 - '@sentry/node@9.22.0': - resolution: {integrity: sha512-89r2p6n0xeT2eiqIB0WXgz/rJzUgiOgZex7NvYwzEGeP0GoteDIf0Kbth/gCOy1md/ngiW+0X+S2Ed/uRw4XEQ==} + '@sentry/node@9.25.0': + resolution: {integrity: sha512-Z7nkj7kwH1/kbsETmNN12pMD3Npe9X0bCKV3jlTv6KkEdVvklc1+/pT7Bz+4iYqHUysZTrNomQxdzjcQbIb2aw==} engines: {node: '>=18'} - '@sentry/opentelemetry@9.22.0': - resolution: {integrity: sha512-m6JI2LUCm4FT34OQgh7or2Y9chKn8BrqawNqu7BEqbsGADE5VPwtdu7DwPOD7pC6KN9lGHVf0bqS7197e8Kz/A==} + '@sentry/opentelemetry@9.25.0': + resolution: {integrity: sha512-yzl/DnlQMkpOsEHlZJeTXdJ8GJNyonUjM+d3jhAXDjsvG2yXXBrda0PhNkxCN+rScbP/sJEbvfGPtcnnysh7NA==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -2863,20 +2767,20 @@ packages: '@opentelemetry/core': ^1.30.1 || ^2.0.0 '@opentelemetry/instrumentation': ^0.57.1 || ^0.200.0 '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.0.0 - '@opentelemetry/semantic-conventions': ^1.30.0 + '@opentelemetry/semantic-conventions': ^1.34.0 - '@sentry/react@9.22.0': - resolution: {integrity: sha512-mI43NnioBYdG5TiXqRlhV1feZs9bnrrl+k5HOHBK7VQtymaXO0fkcsRLZTkdSgLRLMJGasZuvVhq2xK+18QyWQ==} + '@sentry/react@9.25.0': + resolution: {integrity: sha512-J7IXIubVl09lNVQy7xO7xLrTgL6SNe4aZPBw5j7aUF5MrskloCtJ86C20LMo8X+x1ZOoHshSFUdv1dt3ayDt7g==} engines: {node: '>=18'} peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x - '@sentry/vercel-edge@9.22.0': - resolution: {integrity: sha512-M1BXBCFKKXzYz+rQnHyZb8p7yuraRu/cQAOxY5Cksd5RhS8RqVbKBHrtaIQ4tJ9dDRo0PkQxb02Ufun3JVsByg==} + '@sentry/vercel-edge@9.25.0': + resolution: {integrity: sha512-4bkJU6bJRx8qrabMqFHBk2IHmNpd89eRiS7Vr8u9QKsc/6cwqNRwpZnqw6znfkNFCtPIbXf+6FpP2xrhzGB3yA==} engines: {node: '>=18'} - '@sentry/webpack-plugin@3.3.1': - resolution: {integrity: sha512-AFRnGNUnlIvq3M+ADdfWb+DIXWKK6yYEkVPAyOppkjO+cL/19gjXMdvAwv+CMFts28YCFKF8Kr3pamUiCmwodA==} + '@sentry/webpack-plugin@3.5.0': + resolution: {integrity: sha512-xvclj0QY2HyU7uJLzOlHSrZQBDwfnGKJxp8mmlU4L7CwmK+8xMCqlO7tYZoqE4K/wU3c2xpXql70x8qmvNMxzQ==} engines: {node: '>= 14'} peerDependencies: webpack: '>=4.40.0' @@ -2928,10 +2832,10 @@ packages: peerDependencies: storybook: ^8.6.14 - '@storybook/addon-onboarding@8.6.14': - resolution: {integrity: sha512-bHdHiGJFigVcSzMIsNLHY5IODZHr+nKwyz5/QOZLMkLcGH2IaUbOJfm4RyGOaTTPsUtAKbdsVXNEG3Otf+qO9A==} + '@storybook/addon-onboarding@9.0.4': + resolution: {integrity: sha512-RIQAAh2Dm+N/tmPRFVoeRpJDZpzr98AaKwTw6rNjkI1EXATUUT1x04SaIee5OEXnjyKtbQrWwleY3Fxc9a4LKg==} peerDependencies: - storybook: ^8.6.14 + storybook: ^9.0.4 '@storybook/addon-outline@8.6.14': resolution: {integrity: sha512-CW857JvN6OxGWElqjlzJO2S69DHf+xO3WsEfT5mT3ZtIjmsvRDukdWfDU9bIYUFyA2lFvYjncBGjbK+I91XR7w==} @@ -2960,41 +2864,25 @@ packages: react-dom: optional: true - '@storybook/builder-webpack5@8.6.14': - resolution: {integrity: sha512-YZYAqc6NBKoMTKZpjxnkMch6zDtMkBZdS/yaji1+wJX2QPFBwTbSh7SpeBxDp1S11gXSAJ4f1btUWeqSqo8nJA==} + '@storybook/builder-webpack5@9.0.4': + resolution: {integrity: sha512-0od1TMg9Y4WWIuae/Lb7Uo5L+O/NCOG2/z1fzsp7hxURy4ST8LHBTiyUTeGT+IiymvK51Bi1ZDC0Kb/wImLOIw==} peerDependencies: - storybook: ^8.6.14 + storybook: ^9.0.4 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@storybook/components@8.6.14': - resolution: {integrity: sha512-HNR2mC5I4Z5ek8kTrVZlIY/B8gJGs5b3XdZPBPBopTIN6U/YHXiDyOjY3JlaS4fSG1fVhp/Qp1TpMn1w/9m1pw==} + '@storybook/core-webpack@9.0.4': + resolution: {integrity: sha512-Fs+03PFbOmuqwokgFESfP9eUmRDLxPpeqhLdqXzUTj/xpzA2ti4bu0Sq/BHSss6VvzdS0Tj9za+TcoxhfQwU5g==} peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - - '@storybook/core-webpack@8.6.14': - resolution: {integrity: sha512-iG7r8osNKabSGBbuJuSeMWKbU+ilt5PvzTYkClcYaagla/DliXkXvfywA6jOugVk/Cpx+c6tVKlPfjLcaQHwmw==} - peerDependencies: - storybook: ^8.6.14 - - '@storybook/core@8.6.14': - resolution: {integrity: sha512-1P/w4FSNRqP8j3JQBOi3yGt8PVOgSRbP66Ok520T78eJBeqx9ukCfl912PQZ7SPbW3TIunBwLXMZOjZwBB/JmA==} - peerDependencies: - prettier: ^2 || ^3 - peerDependenciesMeta: - prettier: - optional: true + storybook: ^9.0.4 '@storybook/csf-plugin@8.6.14': resolution: {integrity: sha512-dErtc9teAuN+eelN8FojzFE635xlq9cNGGGEu0WEmMUQ4iJ8pingvBO1N8X3scz4Ry7KnxX++NNf3J3gpxS8qQ==} peerDependencies: storybook: ^8.6.14 - '@storybook/csf@0.1.13': - resolution: {integrity: sha512-7xOOwCLGB3ebM87eemep89MYRFTko+D8qE7EdAAq74lgdqRR5cOUtYWJLjO2dLtP94nqoOdHJo6MdLLKzg412Q==} - '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} @@ -3010,19 +2898,14 @@ packages: peerDependencies: storybook: ^8.6.14 - '@storybook/manager-api@8.6.14': - resolution: {integrity: sha512-ez0Zihuy17udLbfHZQXkGqwtep0mSGgHcNzGN7iZrMP1m+VmNo+7aGCJJdvXi7+iU3yq8weXSQFWg5DqWgLS7g==} - peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - - '@storybook/nextjs@8.6.14': - resolution: {integrity: sha512-HbOOpwxJxO8nIDBvEQL3Pt51GHxnSeVxQ/WApr1HCT5Ffu6KCHz8WVsX56taHdigxjonSq0NTnog+aTIP06Nkw==} - engines: {node: '>=18.0.0'} + '@storybook/nextjs@9.0.4': + resolution: {integrity: sha512-O7omt9AR28NXRJpl0KIKbp8u/G5GFBl/VRvfXaeXnNFzwolJReRZ11PjKmNHwWKReP2WhKDrGzSMDgCR9E37mQ==} + engines: {node: '>=20.0.0'} peerDependencies: - next: ^13.5.0 || ^14.0.0 || ^15.0.0 + next: ^14.1.0 || ^15.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.14 + storybook: ^9.0.4 typescript: '*' webpack: ^5.0.0 peerDependenciesMeta: @@ -3031,23 +2914,18 @@ packages: webpack: optional: true - '@storybook/preset-react-webpack@8.6.14': - resolution: {integrity: sha512-M7Q6ErNx7N2hQorTz0OLa3YV8nc8OcvkDlCxqqnkHPGQNEIWEpeDvq3wn2OvZlrHDpchyuiquGXZ8aztVtBP2g==} - engines: {node: '>=18.0.0'} + '@storybook/preset-react-webpack@9.0.4': + resolution: {integrity: sha512-hJdXkFO0knrwC6VCjCLVu3dhMKukINfpABm9rlYHjEuB7d9CRJU5qrOnzKoj1ubkteohqsKuyIsR6x6d4paLSQ==} + engines: {node: '>=20.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.14 + storybook: ^9.0.4 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@storybook/preview-api@8.6.14': - resolution: {integrity: sha512-2GhcCd4dNMrnD7eooEfvbfL4I83qAqEyO0CO7JQAmIO6Rxb9BsOLLI/GD5HkvQB73ArTJ+PT50rfaO820IExOQ==} - peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0': resolution: {integrity: sha512-KUqXC3oa9JuQ0kZJLBhVdS4lOneKTOopnNBK4tUAgoxWQ3u/IjzdueZjFr7gyBrXMoU6duutk3RQR9u8ZpYJ4Q==} peerDependencies: @@ -3061,18 +2939,22 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta storybook: ^8.6.14 - '@storybook/react@8.6.14': - resolution: {integrity: sha512-BOepx5bBFwl/CPI+F+LnmMmsG1wQYmrX/UQXgUbHQUU9Tj7E2ndTnNbpIuSLc8IrM03ru+DfwSg1Co3cxWtT+g==} - engines: {node: '>=18.0.0'} + '@storybook/react-dom-shim@9.0.4': + resolution: {integrity: sha512-KZYb0/7VzWfCupiioFyFCITDixSeEpuww95VjanAxlwkjq78ufWZ4MnlXk9vzVDghRQN3+JoNEvTCJXN37KWjQ==} peerDependencies: - '@storybook/test': 8.6.14 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^8.6.14 - typescript: '>= 4.2.x' + storybook: ^9.0.4 + + '@storybook/react@9.0.4': + resolution: {integrity: sha512-fBpVnvyEzs5fU5KjVhgY6ZcA4SyNbtZwhM7E8mbaEm+DKQvhV+SBXaDcT/FzTRR5srp4DyjOMUEqKcN9un1Dvw==} + engines: {node: '>=20.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: ^9.0.4 + typescript: '>= 4.9.x' peerDependenciesMeta: - '@storybook/test': - optional: true typescript: optional: true @@ -3081,11 +2963,6 @@ packages: peerDependencies: storybook: ^8.6.14 - '@storybook/theming@8.6.14': - resolution: {integrity: sha512-r4y+LsiB37V5hzpQo+BM10PaCsp7YlZ0YcZzQP1OCkPlYXmUAFy2VvDKaFRpD8IeNPKug2u4iFm/laDEbs03dg==} - peerDependencies: - storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 - '@stripe/react-stripe-js@3.7.0': resolution: {integrity: sha512-PYls/2S9l0FF+2n0wHaEJsEU8x7CmBagiH7zYOsxbBlLIHEsqUIQ4MlIAbV9Zg6xwT8jlYdlRIyBTHmO3yM7kQ==} peerDependencies: @@ -3093,8 +2970,8 @@ packages: react: '>=16.8.0 <20.0.0' react-dom: '>=16.8.0 <20.0.0' - '@stripe/stripe-js@7.3.0': - resolution: {integrity: sha512-xnCyFIEI5SQnQrKkCxVj7nS5fWTZap+zuIGzmmxLMdlmgahFJaihK4zogqE8YyKKTLtrp/EldkEijSgtXsRVDg==} + '@stripe/stripe-js@7.3.1': + resolution: {integrity: sha512-pTzb864TQWDRQBPLgSPFRoyjSDUqpCkbEgTzpsjiTjGz1Z5SxZNXJek28w1s6Dyry4CyW4/Izj5jHE/J9hCJYQ==} engines: {node: '>=12.16'} '@swc/counter@0.1.3': @@ -3103,14 +2980,16 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - '@t3-oss/env-core@0.13.4': - resolution: {integrity: sha512-zVOiYO0+CF7EnBScz8s0O5JnJLPTU0lrUi8qhKXfIxIJXvI/jcppSiXXsEJwfB4A6XZawY/Wg/EQGKANi/aPmQ==} + '@t3-oss/env-core@0.13.6': + resolution: {integrity: sha512-rH7FgcB1YGbv/tvv7mdJAxnNvRkK/gEqdVYBwO1AVvaWOTNuftqskxkEYyhM2O+lkNPJmTq5YBE7H+Unl7CLjg==} peerDependencies: arktype: ^2.1.0 typescript: '>=5.0.0' valibot: ^1.0.0-beta.7 || ^1.0.0 zod: ^3.24.0 || ^4.0.0-beta.0 peerDependenciesMeta: + arktype: + optional: true typescript: optional: true valibot: @@ -3118,13 +2997,16 @@ packages: zod: optional: true - '@t3-oss/env-nextjs@0.13.4': - resolution: {integrity: sha512-6ecXR7SH7zJKVcBODIkB7wV9QLMU23uV8D9ec6P+ULHJ5Ea/YXEHo+Z/2hSYip5i9ptD/qZh8VuOXyldspvTTg==} + '@t3-oss/env-nextjs@0.13.6': + resolution: {integrity: sha512-KcA5U8L+Be4OuR5YxmrBzkeo7WsKkEFJDwcAgYFwcBgxxc3oJBdTB7KPQfVrx7wjtX5aDr2jZ0LG55yEXqQi9A==} peerDependencies: + arktype: ^2.1.0 typescript: '>=5.0.0' valibot: ^1.0.0-beta.7 || ^1.0.0 zod: ^3.24.0 || ^4.0.0-beta.0 peerDependenciesMeta: + arktype: + optional: true typescript: optional: true valibot: @@ -3132,65 +3014,65 @@ packages: zod: optional: true - '@tailwindcss/node@4.1.7': - resolution: {integrity: sha512-9rsOpdY9idRI2NH6CL4wORFY0+Q6fnx9XP9Ju+iq/0wJwGD5IByIgFmwVbyy4ymuyprj8Qh4ErxMKTUL4uNh3g==} + '@tailwindcss/node@4.1.8': + resolution: {integrity: sha512-OWwBsbC9BFAJelmnNcrKuf+bka2ZxCE2A4Ft53Tkg4uoiE67r/PMEYwCsourC26E+kmxfwE0hVzMdxqeW+xu7Q==} - '@tailwindcss/oxide-android-arm64@4.1.7': - resolution: {integrity: sha512-IWA410JZ8fF7kACus6BrUwY2Z1t1hm0+ZWNEzykKmMNM09wQooOcN/VXr0p/WJdtHZ90PvJf2AIBS/Ceqx1emg==} + '@tailwindcss/oxide-android-arm64@4.1.8': + resolution: {integrity: sha512-Fbz7qni62uKYceWYvUjRqhGfZKwhZDQhlrJKGtnZfuNtHFqa8wmr+Wn74CTWERiW2hn3mN5gTpOoxWKk0jRxjg==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@tailwindcss/oxide-darwin-arm64@4.1.7': - resolution: {integrity: sha512-81jUw9To7fimGGkuJ2W5h3/oGonTOZKZ8C2ghm/TTxbwvfSiFSDPd6/A/KE2N7Jp4mv3Ps9OFqg2fEKgZFfsvg==} + '@tailwindcss/oxide-darwin-arm64@4.1.8': + resolution: {integrity: sha512-RdRvedGsT0vwVVDztvyXhKpsU2ark/BjgG0huo4+2BluxdXo8NDgzl77qh0T1nUxmM11eXwR8jA39ibvSTbi7A==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tailwindcss/oxide-darwin-x64@4.1.7': - resolution: {integrity: sha512-q77rWjEyGHV4PdDBtrzO0tgBBPlQWKY7wZK0cUok/HaGgbNKecegNxCGikuPJn5wFAlIywC3v+WMBt0PEBtwGw==} + '@tailwindcss/oxide-darwin-x64@4.1.8': + resolution: {integrity: sha512-t6PgxjEMLp5Ovf7uMb2OFmb3kqzVTPPakWpBIFzppk4JE4ix0yEtbtSjPbU8+PZETpaYMtXvss2Sdkx8Vs4XRw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tailwindcss/oxide-freebsd-x64@4.1.7': - resolution: {integrity: sha512-RfmdbbK6G6ptgF4qqbzoxmH+PKfP4KSVs7SRlTwcbRgBwezJkAO3Qta/7gDy10Q2DcUVkKxFLXUQO6J3CRvBGw==} + '@tailwindcss/oxide-freebsd-x64@4.1.8': + resolution: {integrity: sha512-g8C8eGEyhHTqwPStSwZNSrOlyx0bhK/V/+zX0Y+n7DoRUzyS8eMbVshVOLJTDDC+Qn9IJnilYbIKzpB9n4aBsg==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.7': - resolution: {integrity: sha512-OZqsGvpwOa13lVd1z6JVwQXadEobmesxQ4AxhrwRiPuE04quvZHWn/LnihMg7/XkN+dTioXp/VMu/p6A5eZP3g==} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.8': + resolution: {integrity: sha512-Jmzr3FA4S2tHhaC6yCjac3rGf7hG9R6Gf2z9i9JFcuyy0u79HfQsh/thifbYTF2ic82KJovKKkIB6Z9TdNhCXQ==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tailwindcss/oxide-linux-arm64-gnu@4.1.7': - resolution: {integrity: sha512-voMvBTnJSfKecJxGkoeAyW/2XRToLZ227LxswLAwKY7YslG/Xkw9/tJNH+3IVh5bdYzYE7DfiaPbRkSHFxY1xA==} + '@tailwindcss/oxide-linux-arm64-gnu@4.1.8': + resolution: {integrity: sha512-qq7jXtO1+UEtCmCeBBIRDrPFIVI4ilEQ97qgBGdwXAARrUqSn/L9fUrkb1XP/mvVtoVeR2bt/0L77xx53bPZ/Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-arm64-musl@4.1.7': - resolution: {integrity: sha512-PjGuNNmJeKHnP58M7XyjJyla8LPo+RmwHQpBI+W/OxqrwojyuCQ+GUtygu7jUqTEexejZHr/z3nBc/gTiXBj4A==} + '@tailwindcss/oxide-linux-arm64-musl@4.1.8': + resolution: {integrity: sha512-O6b8QesPbJCRshsNApsOIpzKt3ztG35gfX9tEf4arD7mwNinsoCKxkj8TgEE0YRjmjtO3r9FlJnT/ENd9EVefQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-x64-gnu@4.1.7': - resolution: {integrity: sha512-HMs+Va+ZR3gC3mLZE00gXxtBo3JoSQxtu9lobbZd+DmfkIxR54NO7Z+UQNPsa0P/ITn1TevtFxXTpsRU7qEvWg==} + '@tailwindcss/oxide-linux-x64-gnu@4.1.8': + resolution: {integrity: sha512-32iEXX/pXwikshNOGnERAFwFSfiltmijMIAbUhnNyjFr3tmWmMJWQKU2vNcFX0DACSXJ3ZWcSkzNbaKTdngH6g==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-linux-x64-musl@4.1.7': - resolution: {integrity: sha512-MHZ6jyNlutdHH8rd+YTdr3QbXrHXqwIhHw9e7yXEBcQdluGwhpQY2Eku8UZK6ReLaWtQ4gijIv5QoM5eE+qlsA==} + '@tailwindcss/oxide-linux-x64-musl@4.1.8': + resolution: {integrity: sha512-s+VSSD+TfZeMEsCaFaHTaY5YNj3Dri8rST09gMvYQKwPphacRG7wbuQ5ZJMIJXN/puxPcg/nU+ucvWguPpvBDg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-wasm32-wasi@4.1.7': - resolution: {integrity: sha512-ANaSKt74ZRzE2TvJmUcbFQ8zS201cIPxUDm5qez5rLEwWkie2SkGtA4P+GPTj+u8N6JbPrC8MtY8RmJA35Oo+A==} + '@tailwindcss/oxide-wasm32-wasi@4.1.8': + resolution: {integrity: sha512-CXBPVFkpDjM67sS1psWohZ6g/2/cd+cq56vPxK4JeawelxwK4YECgl9Y9TjkE2qfF+9/s1tHHJqrC4SS6cVvSg==} engines: {node: '>=14.0.0'} cpu: [wasm32] bundledDependencies: @@ -3201,39 +3083,39 @@ packages: - '@emnapi/wasi-threads' - tslib - '@tailwindcss/oxide-win32-arm64-msvc@4.1.7': - resolution: {integrity: sha512-HUiSiXQ9gLJBAPCMVRk2RT1ZrBjto7WvqsPBwUrNK2BcdSxMnk19h4pjZjI7zgPhDxlAbJSumTC4ljeA9y0tEw==} + '@tailwindcss/oxide-win32-arm64-msvc@4.1.8': + resolution: {integrity: sha512-7GmYk1n28teDHUjPlIx4Z6Z4hHEgvP5ZW2QS9ygnDAdI/myh3HTHjDqtSqgu1BpRoI4OiLx+fThAyA1JePoENA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tailwindcss/oxide-win32-x64-msvc@4.1.7': - resolution: {integrity: sha512-rYHGmvoHiLJ8hWucSfSOEmdCBIGZIq7SpkPRSqLsH2Ab2YUNgKeAPT1Fi2cx3+hnYOrAb0jp9cRyode3bBW4mQ==} + '@tailwindcss/oxide-win32-x64-msvc@4.1.8': + resolution: {integrity: sha512-fou+U20j+Jl0EHwK92spoWISON2OBnCazIc038Xj2TdweYV33ZRkS9nwqiUi2d/Wba5xg5UoHfvynnb/UB49cQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tailwindcss/oxide@4.1.7': - resolution: {integrity: sha512-5SF95Ctm9DFiUyjUPnDGkoKItPX/k+xifcQhcqX5RA85m50jw1pT/KzjdvlqxRja45Y52nR4MR9fD1JYd7f8NQ==} + '@tailwindcss/oxide@4.1.8': + resolution: {integrity: sha512-d7qvv9PsM5N3VNKhwVUhpK6r4h9wtLkJ6lz9ZY9aeZgrUWk1Z8VPyqyDT9MZlem7GTGseRQHkeB1j3tC7W1P+A==} engines: {node: '>= 10'} - '@tailwindcss/postcss@4.1.7': - resolution: {integrity: sha512-88g3qmNZn7jDgrrcp3ZXEQfp9CVox7xjP1HN2TFKI03CltPVd/c61ydn5qJJL8FYunn0OqBaW5HNUga0kmPVvw==} + '@tailwindcss/postcss@4.1.8': + resolution: {integrity: sha512-vB/vlf7rIky+w94aWMw34bWW1ka6g6C3xIOdICKX2GC0VcLtL6fhlLiafF0DVIwa9V6EHz8kbWMkS2s2QvvNlw==} - '@tanstack/query-core@5.76.0': - resolution: {integrity: sha512-FN375hb8ctzfNAlex5gHI6+WDXTNpe0nbxp/d2YJtnP+IBM6OUm7zcaoCW6T63BawGOYZBbKC0iPvr41TteNVg==} + '@tanstack/query-core@5.79.2': + resolution: {integrity: sha512-kr+KQrBuqd6495eP9S41BoftFI1H50XA9O+6FmbnTx/Te6bjiq1mj8rt9rJjW3YZSO2aaUNUres0TWesJW1j1g==} '@tanstack/query-devtools@5.76.0': resolution: {integrity: sha512-1p92nqOBPYVqVDU0Ua5nzHenC6EGZNrLnB2OZphYw8CNA1exuvI97FVgIKON7Uug3uQqvH/QY8suUKpQo8qHNQ==} - '@tanstack/react-query-devtools@5.76.1': - resolution: {integrity: sha512-LFVWgk/VtXPkerNLfYIeuGHh0Aim/k9PFGA+JxLdRaUiroQ4j4eoEqBrUpQ1Pd/KXoG4AB9vVE/M6PUQ9vwxBQ==} + '@tanstack/react-query-devtools@5.79.2': + resolution: {integrity: sha512-yYhm7rnvG6p3n7yBIUWz+XtuWUROMVFJ/07+O5M6OPny9C05n0wPjTNFgRnnaHXORxGqZKwWSZR1gmceFMsE7Q==} peerDependencies: - '@tanstack/react-query': ^5.76.1 + '@tanstack/react-query': ^5.79.2 react: ^18 || ^19 - '@tanstack/react-query@5.76.1': - resolution: {integrity: sha512-YxdLZVGN4QkT5YT1HKZQWiIlcgauIXEIsMOTSjvyD5wLYK8YVvKZUPAysMqossFJJfDpJW3pFn7WNZuPOqq+fw==} + '@tanstack/react-query@5.79.2': + resolution: {integrity: sha512-kadeprsH6bWuhHCpqukXHRykJkxcLBxAaF0cQ05yawPmLZ/KiCpR1DyQenonF7A/70rnRUxhJD0RJejqk9wImQ==} peerDependencies: react: ^18 || ^19 @@ -3270,6 +3152,12 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' + '@testing-library/user-event@14.6.1': + resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} + engines: {node: '>=12', npm: '>=6'} + peerDependencies: + '@testing-library/dom': '>=7.21.4' + '@tootallnate/once@2.0.0': resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} @@ -3364,8 +3252,8 @@ packages: '@types/node-fetch@2.6.12': resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} - '@types/node@22.15.21': - resolution: {integrity: sha512-EV/37Td6c+MgKAbkcLG6vqZ2zEYHD7bvSrzqqs2RIhbA6w3x+Dqz8MZM3sP6kGTeLrdoOgKZe+Xja7tUB2DNkQ==} + '@types/node@22.15.29': + resolution: {integrity: sha512-LNdjOkUDlU1RZb8e1kOIUpN1qQUlzGkEtbVNo53vbrwDg5om6oduhm4SiUaPW5ASTXhAiP0jInWG8Qx9fVlOeQ==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -3389,8 +3277,8 @@ packages: peerDependencies: '@types/react': '*' - '@types/react@19.1.5': - resolution: {integrity: sha512-piErsCVVbpMMT2r7wbawdZsq4xMvIAhQuac2gedQHysu1TZYEigE6pnFfgZT+/jQnrRuF5r+SHzuehFjfRjr4g==} + '@types/react@19.1.6': + resolution: {integrity: sha512-JeG0rEWak0N6Itr6QUx+X60uQmN+5t3j9r/OVDtWzFXKaj6kD1BwJzOksD0FF6iWxZlbE1kB0q9vtnU2ekqa1Q==} '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -3419,14 +3307,6 @@ packages: '@types/yargs@17.0.33': resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} - '@typescript-eslint/eslint-plugin@8.32.0': - resolution: {integrity: sha512-/jU9ettcntkBFmWUzzGgsClEi2ZFiikMX5eEQsmxIAWMOn4H3D4rvHssstmAHGVvrYnaMqdWWWg0b5M6IN/MTQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/eslint-plugin@8.32.1': resolution: {integrity: sha512-6u6Plg9nP/J1GRpe/vcjjabo6Uc5YQPAMxsgQyGC/I0RuukiG1wIe3+Vtg3IrSCVJDmqK3j8adrtzXSENRtFgg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3435,10 +3315,11 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.32.0': - resolution: {integrity: sha512-B2MdzyWxCE2+SqiZHAjPphft+/2x2FlO9YBx7eKE1BCb+rqBlQdhtAEhzIEdozHd55DXPmxBdpMygFJjfjjA9A==} + '@typescript-eslint/eslint-plugin@8.33.1': + resolution: {integrity: sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: + '@typescript-eslint/parser': ^8.33.1 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' @@ -3449,23 +3330,31 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.29.0': - resolution: {integrity: sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==} + '@typescript-eslint/parser@8.33.1': + resolution: {integrity: sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.32.0': - resolution: {integrity: sha512-jc/4IxGNedXkmG4mx4nJTILb6TMjL66D41vyeaPWvDUmeYQzF3lKtN15WsAeTr65ce4mPxwopPSo1yUUAWw0hQ==} + '@typescript-eslint/project-service@8.33.1': + resolution: {integrity: sha512-DZR0efeNklDIHHGRpMpR5gJITQpu6tLr9lDJnKdONTC7vvzOlLAG/wcfxcdxEWrbiZApcoBCzXqU/Z458Za5Iw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/scope-manager@8.32.1': resolution: {integrity: sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.32.0': - resolution: {integrity: sha512-t2vouuYQKEKSLtJaa5bB4jHeha2HJczQ6E5IXPDPgIty9EqcJxpr1QHQ86YyIPwDwxvUmLfP2YADQ5ZY4qddZg==} + '@typescript-eslint/scope-manager@8.33.1': + resolution: {integrity: sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.33.1': + resolution: {integrity: sha512-STAQsGYbHCF0/e+ShUQ4EatXQ7ceh3fBCXkNU7/MZVKulrlq1usH7t2FhxvCpuCi5O5oi1vmVaAjrGeL71OK1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/type-utils@8.32.1': @@ -3475,29 +3364,20 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/types@8.29.0': - resolution: {integrity: sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/types@8.32.0': - resolution: {integrity: sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA==} + '@typescript-eslint/type-utils@8.33.1': + resolution: {integrity: sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/types@8.32.1': resolution: {integrity: sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.29.0': - resolution: {integrity: sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==} + '@typescript-eslint/types@8.33.1': + resolution: {integrity: sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/typescript-estree@8.32.0': - resolution: {integrity: sha512-pU9VD7anSCOIoBFnhTGfOzlVFQIA1XXiQpH/CezqOBaDppRwTglJzCC6fUQGpfwey4T183NKhF1/mfatYmjRqQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' '@typescript-eslint/typescript-estree@8.32.1': resolution: {integrity: sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg==} @@ -3505,39 +3385,34 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.29.0': - resolution: {integrity: sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==} + '@typescript-eslint/typescript-estree@8.33.1': + resolution: {integrity: sha512-+s9LYcT8LWjdYWu7IWs7FvUxpQ/DGkdjZeE/GGulHvv8rvYwQvVaUZ6DE+j5x/prADUgSbbCWZ2nPI3usuVeOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.32.0': - resolution: {integrity: sha512-8S9hXau6nQ/sYVtC3D6ISIDoJzS1NsCK+gluVhLN2YkBPX+/1wkwyUiDKnxRh15579WoOIyVWnoyIf3yGI9REw==} + '@typescript-eslint/utils@8.32.1': + resolution: {integrity: sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/utils@8.32.1': - resolution: {integrity: sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==} + '@typescript-eslint/utils@8.33.1': + resolution: {integrity: sha512-52HaBiEQUaRYqAXpfzWSR2U3gxk92Kw006+xZpElaPMg3C4PgM+A5LqwoQI1f9E5aZ/qlxAZxzm42WX+vn92SQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/visitor-keys@8.29.0': - resolution: {integrity: sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/visitor-keys@8.32.0': - resolution: {integrity: sha512-1rYQTCLFFzOI5Nl0c8LUpJT8HxpwVRn9E4CkMsYfuN6ctmQqExjSTzzSk0Tz2apmXy7WU6/6fyaZVVA/thPN+w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.32.1': resolution: {integrity: sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.33.1': + resolution: {integrity: sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vercel/analytics@1.5.0': resolution: {integrity: sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==} peerDependencies: @@ -3583,21 +3458,33 @@ packages: '@vitest/expect@2.0.5': resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} + '@vitest/expect@3.0.9': + resolution: {integrity: sha512-5eCqRItYgIML7NNVgJj6TVCmdzE7ZVgJhruW0ziSQV4V7PvLkDL1bBkBdcTs/VuIz0IxPb5da1IDSqc1TR9eig==} + '@vitest/pretty-format@2.0.5': resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} '@vitest/pretty-format@2.1.9': resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} + '@vitest/pretty-format@3.0.9': + resolution: {integrity: sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==} + '@vitest/spy@2.0.5': resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} + '@vitest/spy@3.0.9': + resolution: {integrity: sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ==} + '@vitest/utils@2.0.5': resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} '@vitest/utils@2.1.9': resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} + '@vitest/utils@3.0.9': + resolution: {integrity: sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==} + '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -3938,9 +3825,6 @@ packages: brorand@1.1.0: resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} - browser-assert@1.2.1: - resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} - browserify-aes@1.2.0: resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} @@ -4055,8 +3939,8 @@ packages: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} - chromatic@11.27.0: - resolution: {integrity: sha512-jQ2ufjS+ePpg+NtcPI9B2eOi+pAzlRd2nhd1LgNMsVCC9Bzf5t8mJtyd8v2AUuJS0LdX0QVBgkOnlNv9xviHzA==} + chromatic@12.0.0: + resolution: {integrity: sha512-X7v26BLfAzHCU92nxPsCuvt+MazmA7S6cN7pCRRhnDYChDxHES48YvXarOybLdlH9kNP/3lMyknu6iseTh0T9A==} hasBin: true peerDependencies: '@chromatic-com/cypress': ^0.*.* || ^1.0.0 @@ -4169,8 +4053,8 @@ packages: resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} engines: {node: '>=18'} - cookies-next@5.1.0: - resolution: {integrity: sha512-9Ekne+q8hfziJtnT9c1yDUBqT0eDMGgPrfPl4bpR3xwQHLTd/8gbSf6+IEkP/pjGsDZt1TGbC6emYmFYRbIXwQ==} + cookies-next@6.0.0: + resolution: {integrity: sha512-Xq87TPIe7faqluf7gr3mobzO2JRe65oX+pnv4nrnDE/ak49Ic6QhNZSLCk+E5xOKtpVm1EoEazu0iBNyr5TXTA==} peerDependencies: next: '>=15.0.0' react: '>= 16.8.0' @@ -4446,8 +4330,8 @@ packages: resolution: {integrity: sha512-PUjYKWtzOzPtdtQlTHQG3qfv4Y0XT8+Eas6UbxCmxTj7qgMf+39dDujf1BP1I+qqZtw9uzwTh8jYtkMuCq+B0Q==} hasBin: true - drizzle-orm@0.43.1: - resolution: {integrity: sha512-dUcDaZtE/zN4RV/xqGrVSMpnEczxd5cIaoDeor7Zst9wOe/HzC/7eAaulywWGYXdDEc9oBPMjayVEDg0ziTLJA==} + drizzle-orm@0.44.1: + resolution: {integrity: sha512-prIWOlwJbiYInvcJxE+IMiJCtMiFVrSUJCwx6AXSJvGOdLu35qZ46QncTZDgloiLNCG0XxTC8agQElSmsl++TA==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' '@cloudflare/workers-types': '>=4' @@ -4463,6 +4347,7 @@ packages: '@types/better-sqlite3': '*' '@types/pg': '*' '@types/sql.js': '*' + '@upstash/redis': '>=1.34.7' '@vercel/postgres': '>=0.8.0' '@xata.io/client': '*' better-sqlite3: '>=7' @@ -4506,6 +4391,8 @@ packages: optional: true '@types/sql.js': optional: true + '@upstash/redis': + optional: true '@vercel/postgres': optional: true '@xata.io/client': @@ -4672,8 +4559,8 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-config-next@15.3.2: - resolution: {integrity: sha512-FerU4DYccO4FgeYFFglz0SnaKRe1ejXQrDb8kWUkTAg036YWi+jUsgg4sIGNCDhAsDITsZaL4MzBWKB6f4G1Dg==} + eslint-config-next@15.3.3: + resolution: {integrity: sha512-QJLv/Ouk2vZnxL4b67njJwTLjTf7uZRltI0LL4GERYR4qMF5z08+gxkfODAeaK7TiC6o+cER91bDaEnwrTWV6Q==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 typescript: '>=3.3.1' @@ -4757,11 +4644,12 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-storybook@0.12.0: - resolution: {integrity: sha512-Lg5I0+npTgiYgZ4KSvGWGDFZi3eOCNJPaWX0c9rTEEXC5wvooOClsP9ZtbI4hhFKyKgYR877KiJxbRTSJq9gWA==} - engines: {node: '>= 18'} + eslint-plugin-storybook@9.0.4: + resolution: {integrity: sha512-HdwbfgPkZKsWG859RQk4iROH8D4zGsXxH2C3/7RlqELoT+nZYtc1BzVWzDeMAHadSXRasX3J+O1/4HNyuPXpJw==} + engines: {node: '>=20.0.0'} peerDependencies: eslint: '>=8' + storybook: ^9.0.4 eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} @@ -4779,8 +4667,8 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.27.0: - resolution: {integrity: sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==} + eslint@9.28.0: + resolution: {integrity: sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -4789,6 +4677,9 @@ packages: jiti: optional: true + esm-env@1.2.2: + resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} + espree@10.3.0: resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5209,8 +5100,8 @@ packages: resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==} engines: {node: '>= 4'} - image-size@1.2.0: - resolution: {integrity: sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w==} + image-size@2.0.2: + resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} engines: {node: '>=16.x'} hasBin: true @@ -5634,10 +5525,6 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsdoc-type-pratt-parser@4.1.0: - resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} - engines: {node: '>=12.0.0'} - jsdom@20.0.3: resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} engines: {node: '>=14'} @@ -6067,6 +5954,9 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + number-flow@0.5.7: + resolution: {integrity: sha512-P83Y9rBgN3Xpz5677YDNtuQHZpIldw6WXeWRg0+edrfFthhV7QqRdABas5gtu07QPLvbA8XhfO69rIvbKRzYIg==} + nwsapi@2.2.20: resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} @@ -6269,10 +6159,6 @@ packages: resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} engines: {node: '>=14.16'} - pnp-webpack-plugin@1.7.0: - resolution: {integrity: sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg==} - engines: {node: '>=6'} - polished@4.3.1: resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} engines: {node: '>=10'} @@ -6372,8 +6258,8 @@ packages: resolution: {integrity: sha512-cDWgoah1Gez9rN3H4165peY9qfpEo+SA61oQv65O3cRUE1pOEoJWwddwcqKE8XZYjbblOJlYDlLV4h67HrEVDg==} engines: {node: '>=12'} - posthog-js@1.245.2: - resolution: {integrity: sha512-6N2CMksaTXolR4z6UmMgJt6NdDvfGMJu4gLrV9te855aKm6huLviIQ3AUY8XTsd64YqVhrGyIyk3Nnfm45OPgg==} + posthog-js@1.249.2: + resolution: {integrity: sha512-OMXCO/IfcJBjYTuebVynMbp8Kq329yKEQSCAnkqLmi8W2Bt5bi7S5xxMwDM3Pm7818Uh0C40XMG3rAtYozId6Q==} peerDependencies: '@rrweb/types': 2.0.0-alpha.17 rrweb-snapshot: 2.0.0-alpha.17 @@ -6383,8 +6269,8 @@ packages: rrweb-snapshot: optional: true - posthog-node@4.17.2: - resolution: {integrity: sha512-bFmwOTk4QdYavopeHVXtyFGQ9vyLMVaNWkWocwjix+0n6sQgv7Zq5nYjYulz7ThmK18zsvNJ337ahuMLv3ulow==} + posthog-node@4.18.0: + resolution: {integrity: sha512-XROs1h+DNatgKh/AlIlCtDxWzwrKdYDb2mOs58n4yN8BkGN9ewqeQwG5ApS4/IzwCb7HPttUkOVulkYatd2PIw==} engines: {node: '>=15.0.0'} preact@10.26.4: @@ -6404,8 +6290,8 @@ packages: vue-tsc: optional: true - prettier-plugin-tailwindcss@0.6.11: - resolution: {integrity: sha512-YxaYSIvZPAqhrrEpRtonnrXdghZg1irNg4qrjboCXrpybLWVs55cW2N3juhspVJiO0JBvYJT8SYsJpc8OQSnsA==} + prettier-plugin-tailwindcss@0.6.12: + resolution: {integrity: sha512-OuTQKoqNwV7RnxTPwXWzOFXy6Jc4z8oeRZYGuMpRyG3WbuR3jjXdQFK8qFBMBx8UHWdHrddARz2fgUenild6aw==} engines: {node: '>=14.21.3'} peerDependencies: '@ianvs/prettier-plugin-sort-imports': '*' @@ -6536,9 +6422,6 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - queue@6.0.2: - resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} - randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -6577,8 +6460,8 @@ packages: peerDependencies: react: '>=16.13.1' - react-hook-form@7.56.4: - resolution: {integrity: sha512-Rob7Ftz2vyZ/ZGsQZPaRdIefkgOSrQSPXfqBdvOPwJfoGnjwRJUs7EM7Kc1mcoDv3NOtqBzPGbcMB8CGn9CKgw==} + react-hook-form@7.57.0: + resolution: {integrity: sha512-RbEks3+cbvTP84l/VXGUZ+JMrKOS8ykQCRYdm5aYsxnDquL0vspsyNhGRO7pcH6hsZqWlPOjLye7rJqdtdAmlg==} engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 @@ -6898,11 +6781,6 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.7.1: - resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} - engines: {node: '>=10'} - hasBin: true - semver@7.7.2: resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} engines: {node: '>=10'} @@ -6937,10 +6815,6 @@ packages: resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} hasBin: true - sharp@0.33.5: - resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - sharp@0.34.1: resolution: {integrity: sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -7055,8 +6929,8 @@ packages: std-env@3.9.0: resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} - storybook@8.6.14: - resolution: {integrity: sha512-sVKbCj/OTx67jhmauhxc2dcr1P+yOgz/x3h0krwjyMgdc5Oubvxyg4NYDZmzAw+ym36g/lzH8N0Ccp4dwtdfxw==} + storybook@9.0.4: + resolution: {integrity: sha512-ncYRogaG5N2LNgrh2BoTzgizd3oYI3lTe8gqSi6Zk9P4z2P4wpOI4cNwIcw78ShDJ7v1Md5y0qrK/HnSB9vsKA==} hasBin: true peerDependencies: prettier: ^2 || ^3 @@ -7147,8 +7021,8 @@ packages: resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} engines: {node: '>=14.16'} - stripe@18.1.0: - resolution: {integrity: sha512-MLDiniPTHqcfIT3anyBPmOEcaiDhYa7/jRaNypQ3Rt2SJnayQZBvVbFghIziUCZdltGAndm/ZxVOSw6uuSCDig==} + stripe@18.2.1: + resolution: {integrity: sha512-GwB1B7WSwEBzW4dilgyJruUYhbGMscrwuyHsPUmSRKrGHZ5poSh2oU9XKdii5BFVJzXHn35geRvGJ6R8bYcp8w==} engines: {node: '>=12.*'} peerDependencies: '@types/node': '>=12.x.x' @@ -7212,8 +7086,8 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || insiders' - tailwindcss@4.1.7: - resolution: {integrity: sha512-kr1o/ErIdNhTz8uzAYL7TpaUuzKIE6QPQ4qmSdxnoX/lo+5wmUHQA6h3L5yIqEImSRnAAURDirLu/BgiXGPAhg==} + tailwindcss@4.1.8: + resolution: {integrity: sha512-kjeW8gjdxasbmFKpVGrGd5T4i40mV5J2Rasw48QARfYeQ8YS9x02ON9SFWax3Qf616rt4Cp3nVNIj6Hd1mP3og==} tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} @@ -7266,6 +7140,10 @@ packages: resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} engines: {node: '>=14.0.0'} + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} + engines: {node: '>=14.0.0'} + tinyspy@3.0.2: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} @@ -7294,12 +7172,6 @@ packages: truncate-middle@2.0.1: resolution: {integrity: sha512-upHYhCcywHt40b/H3TU6q75GCE7p8Na5Gp0xwC0JKSDg9p7ByWiMDBzAz0YpC1hvOi/L0y5YE3Ml5ngSA4IRtQ==} - ts-api-utils@2.0.1: - resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - ts-api-utils@2.1.0: resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} engines: {node: '>=18.12'} @@ -7351,15 +7223,6 @@ packages: '@swc/wasm': optional: true - ts-pnp@1.2.0: - resolution: {integrity: sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==} - engines: {node: '>=6'} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - tsconfig-paths-webpack-plugin@4.2.0: resolution: {integrity: sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==} engines: {node: '>=10.13.0'} @@ -7426,8 +7289,8 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.32.1: - resolution: {integrity: sha512-D7el+eaDHAmXvrZBy1zpzSNIRqnCOrkwTgZxTu3MUqRWk8k0q9m9Ho4+vPf7iHtgUfrK/o8IZaEApsxPlHTFCg==} + typescript-eslint@8.33.1: + resolution: {integrity: sha512-AgRnV4sKkWOiZ0Kjbnf5ytTJXMUZQ0qhSVdQtDNYLPLnjsATEYhaO94GlRQwi4t4gO8FfjM6NnikHeKjUm8D7A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7749,8 +7612,8 @@ packages: peerDependencies: zod: ^3.18.0 - zod@3.25.20: - resolution: {integrity: sha512-z03fqpTMDF1G02VLKUMt6vyACE7rNWkh3gpXVHgPTw28NPtDFRGvcpTtPwn2kMKtQ0idtYJUTxchytmnqYswcw==} + zod@3.25.49: + resolution: {integrity: sha512-JMMPMy9ZBk3XFEdbM3iL1brx4NUSejd6xr3ELrrGEfGb355gjhiAWtG3K5o+AViV/3ZfkIrCzXsZn6SbLwTR8Q==} snapshots: @@ -7766,8 +7629,10 @@ snapshots: '@ark/schema@0.46.0': dependencies: '@ark/util': 0.46.0 + optional: true - '@ark/util@0.46.0': {} + '@ark/util@0.46.0': + optional: true '@babel/code-frame@7.26.2': dependencies: @@ -8570,23 +8435,22 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@chromatic-com/storybook@3.2.6(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@chromatic-com/storybook@4.0.0(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: - chromatic: 11.27.0 + '@neoconfetti/react': 1.0.0 + chromatic: 12.0.0 filesize: 10.1.6 jsonfile: 6.1.0 - react-confetti: 6.4.0(react@19.1.0) - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) strip-ansi: 7.1.0 transitivePeerDependencies: - '@chromatic-com/cypress' - '@chromatic-com/playwright' - - react - '@clerk/backend@1.32.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@clerk/backend@1.34.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@clerk/shared': 3.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@clerk/types': 4.59.1 + '@clerk/shared': 3.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@clerk/types': 4.59.3 cookie: 1.0.2 snakecase-keys: 8.0.1 tslib: 2.8.1 @@ -8594,20 +8458,20 @@ snapshots: - react - react-dom - '@clerk/clerk-react@5.31.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@clerk/clerk-react@5.31.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@clerk/shared': 3.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@clerk/types': 4.59.1 + '@clerk/shared': 3.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@clerk/types': 4.59.3 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) tslib: 2.8.1 - '@clerk/nextjs@6.19.5(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@clerk/nextjs@6.20.2(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@clerk/backend': 1.32.3(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@clerk/clerk-react': 5.31.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@clerk/shared': 3.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@clerk/types': 4.59.1 + '@clerk/backend': 1.34.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@clerk/clerk-react': 5.31.8(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@clerk/shared': 3.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@clerk/types': 4.59.3 next: 15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) @@ -8616,9 +8480,9 @@ snapshots: transitivePeerDependencies: - svix - '@clerk/shared@3.9.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@clerk/shared@3.9.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@clerk/types': 4.59.1 + '@clerk/types': 4.59.3 dequal: 2.0.3 glob-to-regexp: 0.4.1 js-cookie: 3.0.5 @@ -8628,12 +8492,12 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@clerk/themes@2.2.46': + '@clerk/themes@2.2.48': dependencies: - '@clerk/types': 4.59.1 + '@clerk/types': 4.59.3 tslib: 2.8.1 - '@clerk/types@4.59.1': + '@clerk/types@4.59.3': dependencies: csstype: 3.1.3 @@ -8712,7 +8576,7 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@19.1.5)(react@19.1.0)': + '@emotion/react@11.14.0(@types/react@19.1.6)(react@19.1.0)': dependencies: '@babel/runtime': 7.26.10 '@emotion/babel-plugin': 11.13.5 @@ -8724,7 +8588,7 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 transitivePeerDependencies: - supports-color @@ -8899,14 +8763,9 @@ snapshots: '@esbuild/win32-x64@0.25.2': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.27.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.7.0(eslint@9.28.0(jiti@2.4.2))': dependencies: - eslint: 9.27.0(jiti@2.4.2) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/eslint-utils@4.7.0(eslint@9.27.0(jiti@2.4.2))': - dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} @@ -8939,7 +8798,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.27.0': {} + '@eslint/js@9.28.0': {} '@eslint/object-schema@2.1.6': {} @@ -8973,10 +8832,10 @@ snapshots: '@floating-ui/utils@0.2.9': {} - '@hookform/resolvers@5.0.1(react-hook-form@7.56.4(react@19.1.0))': + '@hookform/resolvers@5.0.1(react-hook-form@7.57.0(react@19.1.0))': dependencies: '@standard-schema/utils': 0.3.0 - react-hook-form: 7.56.4(react@19.1.0) + react-hook-form: 7.57.0(react@19.1.0) '@humanfs/core@0.19.1': {} @@ -8991,156 +8850,81 @@ snapshots: '@humanwhocodes/retry@0.4.2': {} - '@img/sharp-darwin-arm64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.0.4 - optional: true - '@img/sharp-darwin-arm64@0.34.1': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.1.0 optional: true - '@img/sharp-darwin-x64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.0.4 - optional: true - '@img/sharp-darwin-x64@0.34.1': optionalDependencies: '@img/sharp-libvips-darwin-x64': 1.1.0 optional: true - '@img/sharp-libvips-darwin-arm64@1.0.4': - optional: true - '@img/sharp-libvips-darwin-arm64@1.1.0': optional: true - '@img/sharp-libvips-darwin-x64@1.0.4': - optional: true - '@img/sharp-libvips-darwin-x64@1.1.0': optional: true - '@img/sharp-libvips-linux-arm64@1.0.4': - optional: true - '@img/sharp-libvips-linux-arm64@1.1.0': optional: true - '@img/sharp-libvips-linux-arm@1.0.5': - optional: true - '@img/sharp-libvips-linux-arm@1.1.0': optional: true '@img/sharp-libvips-linux-ppc64@1.1.0': optional: true - '@img/sharp-libvips-linux-s390x@1.0.4': - optional: true - '@img/sharp-libvips-linux-s390x@1.1.0': optional: true - '@img/sharp-libvips-linux-x64@1.0.4': - optional: true - '@img/sharp-libvips-linux-x64@1.1.0': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.0.4': - optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.1.0': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.0.4': - optional: true - '@img/sharp-libvips-linuxmusl-x64@1.1.0': optional: true - '@img/sharp-linux-arm64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.0.4 - optional: true - '@img/sharp-linux-arm64@0.34.1': optionalDependencies: '@img/sharp-libvips-linux-arm64': 1.1.0 optional: true - '@img/sharp-linux-arm@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.0.5 - optional: true - '@img/sharp-linux-arm@0.34.1': optionalDependencies: '@img/sharp-libvips-linux-arm': 1.1.0 optional: true - '@img/sharp-linux-s390x@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.0.4 - optional: true - '@img/sharp-linux-s390x@0.34.1': optionalDependencies: '@img/sharp-libvips-linux-s390x': 1.1.0 optional: true - '@img/sharp-linux-x64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.0.4 - optional: true - '@img/sharp-linux-x64@0.34.1': optionalDependencies: '@img/sharp-libvips-linux-x64': 1.1.0 optional: true - '@img/sharp-linuxmusl-arm64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 - optional: true - '@img/sharp-linuxmusl-arm64@0.34.1': optionalDependencies: '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 optional: true - '@img/sharp-linuxmusl-x64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.0.4 - optional: true - '@img/sharp-linuxmusl-x64@0.34.1': optionalDependencies: '@img/sharp-libvips-linuxmusl-x64': 1.1.0 optional: true - '@img/sharp-wasm32@0.33.5': - dependencies: - '@emnapi/runtime': 1.4.0 - optional: true - '@img/sharp-wasm32@0.34.1': dependencies: '@emnapi/runtime': 1.4.0 optional: true - '@img/sharp-win32-ia32@0.33.5': - optional: true - '@img/sharp-win32-ia32@0.34.1': optional: true - '@img/sharp-win32-x64@0.33.5': - optional: true - '@img/sharp-win32-x64@0.34.1': optional: true @@ -9161,27 +8945,27 @@ snapshots: '@jest/console@29.7.0': dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.21 + '@types/node': 22.15.29 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.21 + '@types/node': 22.15.29 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -9206,7 +8990,7 @@ snapshots: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.21 + '@types/node': 22.15.29 jest-mock: 29.7.0 '@jest/expect-utils@29.7.0': @@ -9224,7 +9008,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 22.15.21 + '@types/node': 22.15.29 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -9246,7 +9030,7 @@ snapshots: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 22.15.21 + '@types/node': 22.15.29 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -9316,7 +9100,7 @@ snapshots: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.15.21 + '@types/node': 22.15.29 '@types/yargs': 17.0.33 chalk: 4.1.2 @@ -9347,16 +9131,16 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@mantine/code-highlight@7.17.7(@mantine/core@7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@7.17.7(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@mantine/code-highlight@7.17.7(@mantine/core@7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@7.17.7(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@mantine/core': 7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/core': 7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/hooks': 7.17.7(react@19.1.0) clsx: 2.1.1 highlight.js: 11.11.1 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@mantine/core@7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@mantine/core@7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@floating-ui/react': 0.26.28(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/hooks': 7.17.7(react@19.1.0) @@ -9364,8 +9148,8 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) react-number-format: 5.4.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.5)(react@19.1.0) - react-textarea-autosize: 8.5.9(@types/react@19.1.5)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.6)(react@19.1.0) + react-textarea-autosize: 8.5.9(@types/react@19.1.6)(react@19.1.0) type-fest: 4.41.0 transitivePeerDependencies: - '@types/react' @@ -9374,10 +9158,10 @@ snapshots: dependencies: react: 19.1.0 - '@mdx-js/react@3.1.0(@types/react@19.1.5)(react@19.1.0)': + '@mdx-js/react@3.1.0(@types/react@19.1.6)(react@19.1.0)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.1.5 + '@types/react': 19.1.6 react: 19.1.0 '@napi-rs/wasm-runtime@0.2.9': @@ -9387,13 +9171,17 @@ snapshots: '@tybys/wasm-util': 0.9.0 optional: true + '@neoconfetti/react@1.0.0': {} + '@neondatabase/serverless@0.9.5': dependencies: '@types/pg': 8.11.6 '@next/env@15.3.2': {} - '@next/eslint-plugin-next@15.3.2': + '@next/env@15.3.3': {} + + '@next/eslint-plugin-next@15.3.3': dependencies: fast-glob: 3.3.1 @@ -9421,7 +9209,7 @@ snapshots: '@next/swc-win32-x64-msvc@15.3.2': optional: true - '@next/third-parties@15.3.2(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)': + '@next/third-parties@15.3.3(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)': dependencies: next: 15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 @@ -9441,6 +9229,13 @@ snapshots: '@nolyfill/is-core-module@1.0.39': {} + '@number-flow/react@0.5.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + esm-env: 1.2.2 + number-flow: 0.5.7 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + '@opentelemetry/api-logs@0.57.2': dependencies: '@opentelemetry/api': 1.9.0 @@ -9461,7 +9256,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.34.0 transitivePeerDependencies: - supports-color @@ -9470,7 +9265,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.34.0 '@types/connect': 3.4.38 transitivePeerDependencies: - supports-color @@ -9487,7 +9282,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.34.0 transitivePeerDependencies: - supports-color @@ -9518,7 +9313,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.34.0 transitivePeerDependencies: - supports-color @@ -9538,7 +9333,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.34.0 transitivePeerDependencies: - supports-color @@ -9546,7 +9341,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.34.0 transitivePeerDependencies: - supports-color @@ -9554,7 +9349,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.34.0 transitivePeerDependencies: - supports-color @@ -9563,7 +9358,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.34.0 transitivePeerDependencies: - supports-color @@ -9578,7 +9373,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.34.0 transitivePeerDependencies: - supports-color @@ -9587,7 +9382,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.34.0 transitivePeerDependencies: - supports-color @@ -9595,7 +9390,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.34.0 '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color @@ -9604,7 +9399,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.34.0 '@types/mysql': 2.15.26 transitivePeerDependencies: - supports-color @@ -9614,7 +9409,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.34.0 '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) '@types/pg': 8.6.1 '@types/pg-pool': 2.0.6 @@ -9626,7 +9421,7 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.34.0 transitivePeerDependencies: - supports-color @@ -9634,7 +9429,7 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.34.0 '@types/tedious': 4.0.14 transitivePeerDependencies: - supports-color @@ -9676,7 +9471,7 @@ snapshots: '@opentelemetry/semantic-conventions@1.28.0': {} - '@opentelemetry/semantic-conventions@1.30.0': {} + '@opentelemetry/semantic-conventions@1.34.0': {} '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.0)': dependencies: @@ -9742,7 +9537,7 @@ snapshots: type-fest: 4.41.0 webpack-hot-middleware: 2.26.1 - '@prisma/instrumentation@6.7.0(@opentelemetry/api@1.9.0)': + '@prisma/instrumentation@6.8.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) @@ -9751,470 +9546,470 @@ snapshots: '@radix-ui/primitive@1.1.2': {} - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-checkbox@1.3.2(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-checkbox@1.3.2(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-collapsible@1.1.11(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-collapsible@1.1.11(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.5)(react@19.1.0)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.6)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@radix-ui/react-context@1.1.2(@types/react@19.1.5)(react@19.1.0)': + '@radix-ui/react-context@1.1.2(@types/react@19.1.6)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@radix-ui/react-dialog@1.1.14(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dialog@1.1.14(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) aria-hidden: 1.2.4 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.5)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.6)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-direction@1.1.1(@types/react@19.1.5)(react@19.1.0)': + '@radix-ui/react-direction@1.1.1(@types/react@19.1.6)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-dropdown-menu@2.1.15(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-dropdown-menu@2.1.15(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-menu': 2.1.15(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-menu': 2.1.15(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.5)(react@19.1.0)': + '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.6)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-id@1.1.1(@types/react@19.1.5)(react@19.1.0)': + '@radix-ui/react-id@1.1.1(@types/react@19.1.6)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@radix-ui/react-label@2.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-label@2.1.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-menu@2.1.15(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-menu@2.1.15(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) aria-hidden: 1.2.4 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.5)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.6)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-popover@1.1.14(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-popover@1.1.14(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-focus-guards': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) aria-hidden: 1.2.4 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-remove-scroll: 2.6.3(@types/react@19.1.5)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.6)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-popper@1.2.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-popper@1.2.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@floating-ui/react-dom': 2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.6)(react@19.1.0) '@radix-ui/rect': 1.1.1 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-progress@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-progress@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-radio-group@1.3.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-radio-group@1.3.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-roving-focus@1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-roving-focus@1.1.10(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-separator@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-separator@1.1.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-slot@1.2.3(@types/react@19.1.5)(react@19.1.0)': + '@radix-ui/react-slot@1.2.3(@types/react@19.1.6)(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@radix-ui/react-switch@1.2.5(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-switch@1.2.5(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-tabs@1.1.12(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-tabs@1.1.12(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-roving-focus': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-toast@1.2.14(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-toast@1.2.14(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-tooltip@1.2.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-tooltip@1.2.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.5)(react@19.1.0)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.6)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.5)(react@19.1.0)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.6)(react@19.1.0)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.5)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.5)(react@19.1.0)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.6)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.5)(react@19.1.0)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.6)(react@19.1.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.5)(react@19.1.0)': + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.6)(react@19.1.0)': dependencies: react: 19.1.0 use-sync-external-store: 1.5.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.5)(react@19.1.0)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.6)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.5)(react@19.1.0)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.6)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.5)(react@19.1.0)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.6)(react@19.1.0)': dependencies: '@radix-ui/rect': 1.1.1 react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@radix-ui/react-use-size@1.1.1(@types/react@19.1.5)(react@19.1.0)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.1.6)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.5)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.6)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) '@radix-ui/rect@1.1.1': {} @@ -10305,38 +10100,38 @@ snapshots: '@rushstack/eslint-patch@1.10.5': {} - '@sentry-internal/browser-utils@9.22.0': + '@sentry-internal/browser-utils@9.25.0': dependencies: - '@sentry/core': 9.22.0 + '@sentry/core': 9.25.0 - '@sentry-internal/feedback@9.22.0': + '@sentry-internal/feedback@9.25.0': dependencies: - '@sentry/core': 9.22.0 + '@sentry/core': 9.25.0 - '@sentry-internal/replay-canvas@9.22.0': + '@sentry-internal/replay-canvas@9.25.0': dependencies: - '@sentry-internal/replay': 9.22.0 - '@sentry/core': 9.22.0 + '@sentry-internal/replay': 9.25.0 + '@sentry/core': 9.25.0 - '@sentry-internal/replay@9.22.0': + '@sentry-internal/replay@9.25.0': dependencies: - '@sentry-internal/browser-utils': 9.22.0 - '@sentry/core': 9.22.0 + '@sentry-internal/browser-utils': 9.25.0 + '@sentry/core': 9.25.0 - '@sentry/babel-plugin-component-annotate@3.3.1': {} + '@sentry/babel-plugin-component-annotate@3.5.0': {} - '@sentry/browser@9.22.0': + '@sentry/browser@9.25.0': dependencies: - '@sentry-internal/browser-utils': 9.22.0 - '@sentry-internal/feedback': 9.22.0 - '@sentry-internal/replay': 9.22.0 - '@sentry-internal/replay-canvas': 9.22.0 - '@sentry/core': 9.22.0 + '@sentry-internal/browser-utils': 9.25.0 + '@sentry-internal/feedback': 9.25.0 + '@sentry-internal/replay': 9.25.0 + '@sentry-internal/replay-canvas': 9.25.0 + '@sentry/core': 9.25.0 - '@sentry/bundler-plugin-core@3.3.1': + '@sentry/bundler-plugin-core@3.5.0': dependencies: '@babel/core': 7.26.9 - '@sentry/babel-plugin-component-annotate': 3.3.1 + '@sentry/babel-plugin-component-annotate': 3.5.0 '@sentry/cli': 2.42.2 dotenv: 16.4.7 find-up: 5.0.0 @@ -10387,20 +10182,20 @@ snapshots: - encoding - supports-color - '@sentry/core@9.22.0': {} + '@sentry/core@9.25.0': {} - '@sentry/nextjs@9.22.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(webpack@5.98.0(esbuild@0.25.2))': + '@sentry/nextjs@9.25.0(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)(webpack@5.98.0(esbuild@0.25.2))': dependencies: '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.30.0 + '@opentelemetry/semantic-conventions': 1.34.0 '@rollup/plugin-commonjs': 28.0.1(rollup@4.35.0) - '@sentry-internal/browser-utils': 9.22.0 - '@sentry/core': 9.22.0 - '@sentry/node': 9.22.0 - '@sentry/opentelemetry': 9.22.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0) - '@sentry/react': 9.22.0(react@19.1.0) - '@sentry/vercel-edge': 9.22.0 - '@sentry/webpack-plugin': 3.3.1(webpack@5.98.0(esbuild@0.25.2)) + '@sentry-internal/browser-utils': 9.25.0 + '@sentry/core': 9.25.0 + '@sentry/node': 9.25.0 + '@sentry/opentelemetry': 9.25.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0) + '@sentry/react': 9.25.0(react@19.1.0) + '@sentry/vercel-edge': 9.25.0 + '@sentry/webpack-plugin': 3.5.0(webpack@5.98.0(esbuild@0.25.2)) chalk: 3.0.0 next: 15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) resolve: 1.22.8 @@ -10416,7 +10211,7 @@ snapshots: - supports-color - webpack - '@sentry/node@9.22.0': + '@sentry/node@9.25.0': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) @@ -10446,40 +10241,40 @@ snapshots: '@opentelemetry/instrumentation-undici': 0.10.1(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 - '@prisma/instrumentation': 6.7.0(@opentelemetry/api@1.9.0) - '@sentry/core': 9.22.0 - '@sentry/opentelemetry': 9.22.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0) + '@opentelemetry/semantic-conventions': 1.34.0 + '@prisma/instrumentation': 6.8.2(@opentelemetry/api@1.9.0) + '@sentry/core': 9.25.0 + '@sentry/opentelemetry': 9.25.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0) import-in-the-middle: 1.13.2 minimatch: 9.0.5 transitivePeerDependencies: - supports-color - '@sentry/opentelemetry@9.22.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.30.0)': + '@sentry/opentelemetry@9.25.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.34.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.30.0 - '@sentry/core': 9.22.0 + '@opentelemetry/semantic-conventions': 1.34.0 + '@sentry/core': 9.25.0 - '@sentry/react@9.22.0(react@19.1.0)': + '@sentry/react@9.25.0(react@19.1.0)': dependencies: - '@sentry/browser': 9.22.0 - '@sentry/core': 9.22.0 + '@sentry/browser': 9.25.0 + '@sentry/core': 9.25.0 hoist-non-react-statics: 3.3.2 react: 19.1.0 - '@sentry/vercel-edge@9.22.0': + '@sentry/vercel-edge@9.25.0': dependencies: '@opentelemetry/api': 1.9.0 - '@sentry/core': 9.22.0 + '@sentry/core': 9.25.0 - '@sentry/webpack-plugin@3.3.1(webpack@5.98.0(esbuild@0.25.2))': + '@sentry/webpack-plugin@3.5.0(webpack@5.98.0(esbuild@0.25.2))': dependencies: - '@sentry/bundler-plugin-core': 3.3.1 + '@sentry/bundler-plugin-core': 3.5.0 unplugin: 1.0.1 uuid: 9.0.1 webpack: 5.98.0(esbuild@0.25.2) @@ -10499,120 +10294,111 @@ snapshots: '@standard-schema/utils@0.3.0': {} - '@storybook/addon-actions@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-actions@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) uuid: 9.0.1 - '@storybook/addon-backgrounds@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-backgrounds@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/addon-controls@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-controls@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 dequal: 2.0.3 - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/addon-docs@8.6.14(@types/react@19.1.5)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-docs@8.6.14(@types/react@19.1.6)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: - '@mdx-js/react': 3.1.0(@types/react@19.1.5)(react@19.1.0) - '@storybook/blocks': 8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/csf-plugin': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/react-dom-shim': 8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@mdx-js/react': 3.1.0(@types/react@19.1.6)(react@19.1.0) + '@storybook/blocks': 8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/csf-plugin': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/react-dom-shim': 8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-essentials@8.6.14(@types/react@19.1.5)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': - dependencies: - '@storybook/addon-actions': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/addon-backgrounds': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/addon-controls': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/addon-docs': 8.6.14(@types/react@19.1.5)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/addon-highlight': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/addon-measure': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/addon-outline': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/addon-toolbars': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/addon-viewport': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + '@storybook/addon-essentials@8.6.14(@types/react@19.1.6)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + dependencies: + '@storybook/addon-actions': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-backgrounds': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-controls': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-docs': 8.6.14(@types/react@19.1.6)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-highlight': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-measure': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-outline': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-toolbars': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-viewport': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-highlight@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-highlight@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) - '@storybook/addon-measure@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-measure@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) tiny-invariant: 1.3.3 - '@storybook/addon-onboarding@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-onboarding@9.0.4(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) - '@storybook/addon-outline@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-outline@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/addon-toolbars@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-toolbars@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) - '@storybook/addon-viewport@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-viewport@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: memoizerific: 1.11.3 - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) - '@storybook/blocks@8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/blocks@8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/icons': 1.4.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) ts-dedent: 2.2.0 optionalDependencies: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@storybook/builder-webpack5@8.6.14(esbuild@0.25.2)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3)': + '@storybook/builder-webpack5@9.0.4(esbuild@0.25.2)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3)': dependencies: - '@storybook/core-webpack': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - '@types/semver': 7.7.0 - browser-assert: 1.2.1 + '@storybook/core-webpack': 9.0.4(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.3 - constants-browserify: 1.0.0 css-loader: 6.11.0(webpack@5.98.0(esbuild@0.25.2)) es-module-lexer: 1.6.0 fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.2)) html-webpack-plugin: 5.6.3(webpack@5.98.0(esbuild@0.25.2)) magic-string: 0.30.17 - path-browserify: 1.0.1 - process: 0.11.10 - semver: 7.7.2 - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) style-loader: 3.3.4(webpack@5.98.0(esbuild@0.25.2)) terser-webpack-plugin: 5.3.11(esbuild@0.25.2)(webpack@5.98.0(esbuild@0.25.2)) ts-dedent: 2.2.0 - url: 0.11.4 - util: 0.12.5 - util-deprecate: 1.0.2 webpack: 5.98.0(esbuild@0.25.2) webpack-dev-middleware: 6.1.3(webpack@5.98.0(esbuild@0.25.2)) webpack-hot-middleware: 2.26.1 @@ -10626,45 +10412,16 @@ snapshots: - uglify-js - webpack-cli - '@storybook/components@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': - dependencies: - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) - - '@storybook/core-webpack@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/core-webpack@9.0.4(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/core@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': - dependencies: - '@storybook/theming': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - better-opn: 3.0.2 - browser-assert: 1.2.1 - esbuild: 0.25.2 - esbuild-register: 3.6.0(esbuild@0.25.2) - jsdoc-type-pratt-parser: 4.1.0 - process: 0.11.10 - recast: 0.23.11 - semver: 7.7.2 - util: 0.12.5 - ws: 8.18.0(bufferutil@4.0.9) - optionalDependencies: - prettier: 3.5.3 - transitivePeerDependencies: - - bufferutil - - storybook - - supports-color - - utf-8-validate - - '@storybook/csf-plugin@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/csf-plugin@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) unplugin: 1.16.1 - '@storybook/csf@0.1.13': - dependencies: - type-fest: 2.19.0 - '@storybook/global@5.0.0': {} '@storybook/icons@1.4.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': @@ -10672,17 +10429,13 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@storybook/instrumenter@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/instrumenter@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 '@vitest/utils': 2.1.9 - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) - '@storybook/manager-api@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': - dependencies: - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) - - '@storybook/nextjs@8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.2)(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.2))': + '@storybook/nextjs@9.0.4(babel-plugin-macros@3.1.0)(esbuild@0.25.2)(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.2))': dependencies: '@babel/core': 7.26.9 '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.9) @@ -10698,19 +10451,16 @@ snapshots: '@babel/preset-typescript': 7.27.0(@babel/core@7.26.9) '@babel/runtime': 7.26.10 '@pmmmwh/react-refresh-webpack-plugin': 0.5.16(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.2)) - '@storybook/builder-webpack5': 8.6.14(esbuild@0.25.2)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) - '@storybook/preset-react-webpack': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)))(esbuild@0.25.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) - '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) - '@storybook/test': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/builder-webpack5': 9.0.4(esbuild@0.25.2)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) + '@storybook/preset-react-webpack': 9.0.4(esbuild@0.25.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) + '@storybook/react': 9.0.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) '@types/semver': 7.7.0 babel-loader: 9.2.1(@babel/core@7.26.9)(webpack@5.98.0(esbuild@0.25.2)) css-loader: 6.11.0(webpack@5.98.0(esbuild@0.25.2)) - find-up: 5.0.0 - image-size: 1.2.0 + image-size: 2.0.2 loader-utils: 3.3.1 next: 15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) node-polyfill-webpack-plugin: 2.0.1(webpack@5.98.0(esbuild@0.25.2)) - pnp-webpack-plugin: 1.7.0(typescript@5.8.3) postcss: 8.5.3 postcss-loader: 8.1.1(postcss@8.5.3)(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.2)) react: 19.1.0 @@ -10719,14 +10469,12 @@ snapshots: resolve-url-loader: 5.0.0 sass-loader: 14.2.1(webpack@5.98.0(esbuild@0.25.2)) semver: 7.7.2 - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) style-loader: 3.3.4(webpack@5.98.0(esbuild@0.25.2)) styled-jsx: 5.1.6(@babel/core@7.26.9)(babel-plugin-macros@3.1.0)(react@19.1.0) - ts-dedent: 2.2.0 tsconfig-paths: 4.2.0 tsconfig-paths-webpack-plugin: 4.2.0 optionalDependencies: - sharp: 0.33.5 typescript: 5.8.3 webpack: 5.98.0(esbuild@0.25.2) transitivePeerDependencies: @@ -10747,10 +10495,9 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/preset-react-webpack@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)))(esbuild@0.25.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3)': + '@storybook/preset-react-webpack@9.0.4(esbuild@0.25.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3)': dependencies: - '@storybook/core-webpack': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) + '@storybook/core-webpack': 9.0.4(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.2)) '@types/semver': 7.7.0 find-up: 5.0.0 @@ -10760,23 +10507,18 @@ snapshots: react-dom: 19.1.0(react@19.1.0) resolve: 1.22.10 semver: 7.7.2 - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) tsconfig-paths: 4.2.0 webpack: 5.98.0(esbuild@0.25.2) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - - '@storybook/test' - '@swc/core' - esbuild - supports-color - uglify-js - webpack-cli - '@storybook/preview-api@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': - dependencies: - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.2))': dependencies: debug: 4.4.0 @@ -10791,50 +10533,47 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/react-dom-shim@8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/react-dom-shim@8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + dependencies: + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + + '@storybook/react-dom-shim@9.0.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) - '@storybook/react@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3)': + '@storybook/react@9.0.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3)': dependencies: - '@storybook/components': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) '@storybook/global': 5.0.0 - '@storybook/manager-api': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/preview-api': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/react-dom-shim': 8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/theming': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/react-dom-shim': 9.0.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) optionalDependencies: - '@storybook/test': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) typescript: 5.8.3 - '@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/test@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/instrumenter': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) '@testing-library/dom': 10.4.0 '@testing-library/jest-dom': 6.5.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) '@vitest/expect': 2.0.5 '@vitest/spy': 2.0.5 - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) - '@storybook/theming@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@stripe/react-stripe-js@3.7.0(@stripe/stripe-js@7.3.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: - storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) - - '@stripe/react-stripe-js@3.7.0(@stripe/stripe-js@7.3.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': - dependencies: - '@stripe/stripe-js': 7.3.0 + '@stripe/stripe-js': 7.3.1 prop-types: 15.8.1 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@stripe/stripe-js@7.3.0': {} + '@stripe/stripe-js@7.3.1': {} '@swc/counter@0.1.3': {} @@ -10842,23 +10581,21 @@ snapshots: dependencies: tslib: 2.8.1 - '@t3-oss/env-core@0.13.4(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.20)': - dependencies: - arktype: 2.1.20 + '@t3-oss/env-core@0.13.6(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.49)': optionalDependencies: + arktype: 2.1.20 typescript: 5.8.3 - zod: 3.25.20 + zod: 3.25.49 - '@t3-oss/env-nextjs@0.13.4(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.20)': + '@t3-oss/env-nextjs@0.13.6(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.49)': dependencies: - '@t3-oss/env-core': 0.13.4(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.20) + '@t3-oss/env-core': 0.13.6(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.49) optionalDependencies: + arktype: 2.1.20 typescript: 5.8.3 - zod: 3.25.20 - transitivePeerDependencies: - - arktype + zod: 3.25.49 - '@tailwindcss/node@4.1.7': + '@tailwindcss/node@4.1.8': dependencies: '@ampproject/remapping': 2.3.0 enhanced-resolve: 5.18.1 @@ -10866,83 +10603,83 @@ snapshots: lightningcss: 1.30.1 magic-string: 0.30.17 source-map-js: 1.2.1 - tailwindcss: 4.1.7 + tailwindcss: 4.1.8 - '@tailwindcss/oxide-android-arm64@4.1.7': + '@tailwindcss/oxide-android-arm64@4.1.8': optional: true - '@tailwindcss/oxide-darwin-arm64@4.1.7': + '@tailwindcss/oxide-darwin-arm64@4.1.8': optional: true - '@tailwindcss/oxide-darwin-x64@4.1.7': + '@tailwindcss/oxide-darwin-x64@4.1.8': optional: true - '@tailwindcss/oxide-freebsd-x64@4.1.7': + '@tailwindcss/oxide-freebsd-x64@4.1.8': optional: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.7': + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.8': optional: true - '@tailwindcss/oxide-linux-arm64-gnu@4.1.7': + '@tailwindcss/oxide-linux-arm64-gnu@4.1.8': optional: true - '@tailwindcss/oxide-linux-arm64-musl@4.1.7': + '@tailwindcss/oxide-linux-arm64-musl@4.1.8': optional: true - '@tailwindcss/oxide-linux-x64-gnu@4.1.7': + '@tailwindcss/oxide-linux-x64-gnu@4.1.8': optional: true - '@tailwindcss/oxide-linux-x64-musl@4.1.7': + '@tailwindcss/oxide-linux-x64-musl@4.1.8': optional: true - '@tailwindcss/oxide-wasm32-wasi@4.1.7': + '@tailwindcss/oxide-wasm32-wasi@4.1.8': optional: true - '@tailwindcss/oxide-win32-arm64-msvc@4.1.7': + '@tailwindcss/oxide-win32-arm64-msvc@4.1.8': optional: true - '@tailwindcss/oxide-win32-x64-msvc@4.1.7': + '@tailwindcss/oxide-win32-x64-msvc@4.1.8': optional: true - '@tailwindcss/oxide@4.1.7': + '@tailwindcss/oxide@4.1.8': dependencies: detect-libc: 2.0.4 tar: 7.4.3 optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.1.7 - '@tailwindcss/oxide-darwin-arm64': 4.1.7 - '@tailwindcss/oxide-darwin-x64': 4.1.7 - '@tailwindcss/oxide-freebsd-x64': 4.1.7 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.7 - '@tailwindcss/oxide-linux-arm64-gnu': 4.1.7 - '@tailwindcss/oxide-linux-arm64-musl': 4.1.7 - '@tailwindcss/oxide-linux-x64-gnu': 4.1.7 - '@tailwindcss/oxide-linux-x64-musl': 4.1.7 - '@tailwindcss/oxide-wasm32-wasi': 4.1.7 - '@tailwindcss/oxide-win32-arm64-msvc': 4.1.7 - '@tailwindcss/oxide-win32-x64-msvc': 4.1.7 - - '@tailwindcss/postcss@4.1.7': + '@tailwindcss/oxide-android-arm64': 4.1.8 + '@tailwindcss/oxide-darwin-arm64': 4.1.8 + '@tailwindcss/oxide-darwin-x64': 4.1.8 + '@tailwindcss/oxide-freebsd-x64': 4.1.8 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.8 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.8 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.8 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.8 + '@tailwindcss/oxide-linux-x64-musl': 4.1.8 + '@tailwindcss/oxide-wasm32-wasi': 4.1.8 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.8 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.8 + + '@tailwindcss/postcss@4.1.8': dependencies: '@alloc/quick-lru': 5.2.0 - '@tailwindcss/node': 4.1.7 - '@tailwindcss/oxide': 4.1.7 + '@tailwindcss/node': 4.1.8 + '@tailwindcss/oxide': 4.1.8 postcss: 8.5.3 - tailwindcss: 4.1.7 + tailwindcss: 4.1.8 - '@tanstack/query-core@5.76.0': {} + '@tanstack/query-core@5.79.2': {} '@tanstack/query-devtools@5.76.0': {} - '@tanstack/react-query-devtools@5.76.1(@tanstack/react-query@5.76.1(react@19.1.0))(react@19.1.0)': + '@tanstack/react-query-devtools@5.79.2(@tanstack/react-query@5.79.2(react@19.1.0))(react@19.1.0)': dependencies: '@tanstack/query-devtools': 5.76.0 - '@tanstack/react-query': 5.76.1(react@19.1.0) + '@tanstack/react-query': 5.79.2(react@19.1.0) react: 19.1.0 - '@tanstack/react-query@5.76.1(react@19.1.0)': + '@tanstack/react-query@5.79.2(react@19.1.0)': dependencies: - '@tanstack/query-core': 5.76.0 + '@tanstack/query-core': 5.79.2 react: 19.1.0 '@testing-library/dom@10.4.0': @@ -10976,20 +10713,24 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react@16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@testing-library/react@16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@babel/runtime': 7.26.10 '@testing-library/dom': 10.4.0 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 - '@types/react-dom': 19.1.5(@types/react@19.1.5) + '@types/react': 19.1.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: '@testing-library/dom': 10.4.0 + '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.0)': + dependencies: + '@testing-library/dom': 10.4.0 + '@tootallnate/once@2.0.0': {} '@tsconfig/node10@1.0.11': {} @@ -11032,7 +10773,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.29 '@types/doctrine@0.0.9': {} @@ -11050,7 +10791,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.29 '@types/html-minifier-terser@6.1.0': {} @@ -11073,7 +10814,7 @@ snapshots: '@types/jsdom@20.0.1': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.29 '@types/tough-cookie': 4.0.5 parse5: 7.2.1 @@ -11087,14 +10828,14 @@ snapshots: '@types/mysql@2.15.26': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.29 '@types/node-fetch@2.6.12': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.29 form-data: 4.0.2 - '@types/node@22.15.21': + '@types/node@22.15.29': dependencies: undici-types: 6.21.0 @@ -11106,25 +10847,25 @@ snapshots: '@types/pg@8.11.6': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.29 pg-protocol: 1.7.1 pg-types: 4.0.2 '@types/pg@8.6.1': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.29 pg-protocol: 1.7.1 pg-types: 2.2.0 - '@types/react-dom@19.1.5(@types/react@19.1.5)': + '@types/react-dom@19.1.5(@types/react@19.1.6)': dependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@types/react-transition-group@4.4.12(@types/react@19.1.5)': + '@types/react-transition-group@4.4.12(@types/react@19.1.6)': dependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - '@types/react@19.1.5': + '@types/react@19.1.6': dependencies: csstype: 3.1.3 @@ -11138,7 +10879,7 @@ snapshots: '@types/tedious@4.0.14': dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.29 '@types/tough-cookie@4.0.5': {} @@ -11150,32 +10891,32 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.32.0 - '@typescript-eslint/type-utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.32.0 - eslint: 9.27.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.32.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.32.1 + '@typescript-eslint/type-utils': 8.32.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.32.1 + eslint: 9.28.0(jiti@2.4.2) graphemer: 1.4.0 - ignore: 5.3.2 + ignore: 7.0.4 natural-compare: 1.4.0 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.32.1 - '@typescript-eslint/type-utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.32.1 - eslint: 9.27.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.33.1 + '@typescript-eslint/type-utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.33.1 + eslint: 9.28.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 7.0.4 natural-compare: 1.4.0 @@ -11184,161 +10925,139 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.32.0 - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.32.0 - debug: 4.4.0 - eslint: 9.27.0(jiti@2.4.2) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/parser@8.32.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 8.32.1 '@typescript-eslint/types': 8.32.1 '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.32.1 debug: 4.4.0 - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.29.0': + '@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.29.0 - '@typescript-eslint/visitor-keys': 8.29.0 + '@typescript-eslint/scope-manager': 8.33.1 + '@typescript-eslint/types': 8.33.1 + '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.33.1 + debug: 4.4.0 + eslint: 9.28.0(jiti@2.4.2) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color - '@typescript-eslint/scope-manager@8.32.0': + '@typescript-eslint/project-service@8.33.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/visitor-keys': 8.32.0 + '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) + '@typescript-eslint/types': 8.33.1 + debug: 4.4.0 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color '@typescript-eslint/scope-manager@8.32.1': dependencies: '@typescript-eslint/types': 8.32.1 '@typescript-eslint/visitor-keys': 8.32.1 - '@typescript-eslint/type-utils@8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/scope-manager@8.33.1': + dependencies: + '@typescript-eslint/types': 8.33.1 + '@typescript-eslint/visitor-keys': 8.33.1 + + '@typescript-eslint/tsconfig-utils@8.33.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - debug: 4.4.0 - eslint: 9.27.0(jiti@2.4.2) - ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/type-utils@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.32.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.32.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) debug: 4.4.0 - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.29.0': {} - - '@typescript-eslint/types@8.32.0': {} - - '@typescript-eslint/types@8.32.1': {} - - '@typescript-eslint/typescript-estree@8.29.0(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.29.0 - '@typescript-eslint/visitor-keys': 8.29.0 + '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) debug: 4.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.7.1 - ts-api-utils: 2.0.1(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) + ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.32.0(typescript@5.8.3)': + '@typescript-eslint/types@8.32.1': {} + + '@typescript-eslint/types@8.33.1': {} + + '@typescript-eslint/typescript-estree@8.32.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/visitor-keys': 8.32.0 + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/visitor-keys': 8.32.1 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.1 + semver: 7.7.2 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.32.1(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.33.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/visitor-keys': 8.32.1 + '@typescript-eslint/project-service': 8.33.1(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.33.1(typescript@5.8.3) + '@typescript-eslint/types': 8.33.1 + '@typescript-eslint/visitor-keys': 8.33.1 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.1 + semver: 7.7.2 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.29.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/utils@8.32.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.27.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.29.0 - '@typescript-eslint/types': 8.29.0 - '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.32.1 + '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/utils@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.32.0 - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.33.1 + '@typescript-eslint/types': 8.33.1 + '@typescript-eslint/typescript-estree': 8.33.1(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/visitor-keys@8.32.1': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.32.1 '@typescript-eslint/types': 8.32.1 - '@typescript-eslint/typescript-estree': 8.32.1(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.29.0': - dependencies: - '@typescript-eslint/types': 8.29.0 - eslint-visitor-keys: 4.2.0 - - '@typescript-eslint/visitor-keys@8.32.0': - dependencies: - '@typescript-eslint/types': 8.32.0 eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.32.1': + '@typescript-eslint/visitor-keys@8.33.1': dependencies: - '@typescript-eslint/types': 8.32.1 + '@typescript-eslint/types': 8.33.1 eslint-visitor-keys: 4.2.0 '@vercel/analytics@1.5.0(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0)': @@ -11369,6 +11088,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 1.2.0 + '@vitest/expect@3.0.9': + dependencies: + '@vitest/spy': 3.0.9 + '@vitest/utils': 3.0.9 + chai: 5.2.0 + tinyrainbow: 2.0.0 + '@vitest/pretty-format@2.0.5': dependencies: tinyrainbow: 1.2.0 @@ -11377,10 +11103,18 @@ snapshots: dependencies: tinyrainbow: 1.2.0 + '@vitest/pretty-format@3.0.9': + dependencies: + tinyrainbow: 2.0.0 + '@vitest/spy@2.0.5': dependencies: tinyspy: 3.0.2 + '@vitest/spy@3.0.9': + dependencies: + tinyspy: 3.0.2 + '@vitest/utils@2.0.5': dependencies: '@vitest/pretty-format': 2.0.5 @@ -11394,6 +11128,12 @@ snapshots: loupe: 3.1.3 tinyrainbow: 1.2.0 + '@vitest/utils@3.0.9': + dependencies: + '@vitest/pretty-format': 3.0.9 + loupe: 3.1.3 + tinyrainbow: 2.0.0 + '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -11584,6 +11324,7 @@ snapshots: dependencies: '@ark/schema': 0.46.0 '@ark/util': 0.46.0 + optional: true array-buffer-byte-length@1.0.2: dependencies: @@ -11820,8 +11561,6 @@ snapshots: brorand@1.1.0: {} - browser-assert@1.2.1: {} - browserify-aes@1.2.0: dependencies: buffer-xor: 1.0.3 @@ -11969,7 +11708,7 @@ snapshots: chownr@3.0.0: {} - chromatic@11.27.0: {} + chromatic@12.0.0: {} chrome-trace-event@1.0.4: {} @@ -12058,7 +11797,7 @@ snapshots: cookie@1.0.2: {} - cookies-next@5.1.0(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0): + cookies-next@6.0.0(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react@19.1.0): dependencies: cookie: 1.0.2 next: 15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -12117,13 +11856,13 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.11 - create-jest@29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)): + create-jest@29.7.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -12358,7 +12097,7 @@ snapshots: transitivePeerDependencies: - supports-color - drizzle-orm@0.43.1(@opentelemetry/api@1.9.0)(@types/pg@8.11.6)(@vercel/postgres@0.10.0)(gel@2.0.1)(postgres@3.4.5): + drizzle-orm@0.44.1(@opentelemetry/api@1.9.0)(@types/pg@8.11.6)(@vercel/postgres@0.10.0)(gel@2.0.1)(postgres@3.4.5): optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/pg': 8.11.6 @@ -12610,19 +12349,19 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-next@15.3.2(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): + eslint-config-next@15.3.3(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@next/eslint-plugin-next': 15.3.2 + '@next/eslint-plugin-next': 15.3.3 '@rushstack/eslint-patch': 1.10.5 - '@typescript-eslint/eslint-plugin': 8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.32.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) + '@typescript-eslint/eslint-plugin': 8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.32.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.27.0(jiti@2.4.2)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.27.0(jiti@2.4.2)) - eslint-plugin-react: 7.37.4(eslint@9.27.0(jiti@2.4.2)) - eslint-plugin-react-hooks: 5.1.0(eslint@9.27.0(jiti@2.4.2)) + eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0)(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-jsx-a11y: 6.10.2(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-react: 7.37.4(eslint@9.28.0(jiti@2.4.2)) + eslint-plugin-react-hooks: 5.1.0(eslint@9.28.0(jiti@2.4.2)) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -12630,9 +12369,9 @@ snapshots: - eslint-plugin-import-x - supports-color - eslint-config-prettier@10.1.5(eslint@9.27.0(jiti@2.4.2)): + eslint-config-prettier@10.1.5(eslint@9.28.0(jiti@2.4.2)): dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) eslint-import-resolver-node@0.3.9: dependencies: @@ -12642,37 +12381,37 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@9.27.0(jiti@2.4.2)): + eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0)(eslint@9.28.0(jiti@2.4.2)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.0 enhanced-resolve: 5.18.1 - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) fast-glob: 3.3.3 get-tsconfig: 4.10.0 is-bun-module: 1.3.0 is-glob: 4.0.3 stable-hash: 0.0.4 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.27.0(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.28.0(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) + '@typescript-eslint/parser': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-drizzle@0.2.3(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-drizzle@0.2.3(eslint@9.28.0(jiti@2.4.2)): dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -12681,9 +12420,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.27.0(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.28.0(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -12695,13 +12434,13 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.10.2(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-jsx-a11y@6.10.2(eslint@9.28.0(jiti@2.4.2)): dependencies: aria-query: 5.3.2 array-includes: 3.1.8 @@ -12711,7 +12450,7 @@ snapshots: axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -12720,11 +12459,11 @@ snapshots: safe-regex-test: 1.1.0 string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@5.1.0(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-react-hooks@5.1.0(eslint@9.28.0(jiti@2.4.2)): dependencies: - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) - eslint-plugin-react@7.37.4(eslint@9.27.0(jiti@2.4.2)): + eslint-plugin-react@7.37.4(eslint@9.28.0(jiti@2.4.2)): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -12732,7 +12471,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.27.0(jiti@2.4.2) + eslint: 9.28.0(jiti@2.4.2) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -12746,12 +12485,11 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-storybook@0.12.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): + eslint-plugin-storybook@9.0.4(eslint@9.28.0(jiti@2.4.2))(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3): dependencies: - '@storybook/csf': 0.1.13 - '@typescript-eslint/utils': 8.29.0(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) - ts-dedent: 2.2.0 + '@typescript-eslint/utils': 8.32.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) + storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) transitivePeerDependencies: - supports-color - typescript @@ -12770,15 +12508,15 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.27.0(jiti@2.4.2): + eslint@9.28.0(jiti@2.4.2): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.27.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.20.0 '@eslint/config-helpers': 0.2.1 '@eslint/core': 0.14.0 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.27.0 + '@eslint/js': 9.28.0 '@eslint/plugin-kit': 0.3.1 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 @@ -12812,6 +12550,8 @@ snapshots: transitivePeerDependencies: - supports-color + esm-env@1.2.2: {} + espree@10.3.0: dependencies: acorn: 8.14.0 @@ -13249,9 +12989,7 @@ snapshots: ignore@7.0.4: {} - image-size@1.2.0: - dependencies: - queue: 6.0.2 + image-size@2.0.2: {} immutable@4.3.7: {} @@ -13333,7 +13071,7 @@ snapshots: is-bun-module@1.3.0: dependencies: - semver: 7.7.1 + semver: 7.7.2 is-callable@1.2.7: {} @@ -13520,7 +13258,7 @@ snapshots: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.21 + '@types/node': 22.15.29 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3(babel-plugin-macros@3.1.0) @@ -13540,16 +13278,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)): + jest-cli@29.7.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) + create-jest: 29.7.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -13559,7 +13297,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)): + jest-config@29.7.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)): dependencies: '@babel/core': 7.26.9 '@jest/test-sequencer': 29.7.0 @@ -13584,8 +13322,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 22.15.21 - ts-node: 10.9.2(@types/node@22.15.21)(typescript@5.8.3) + '@types/node': 22.15.29 + ts-node: 10.9.2(@types/node@22.15.29)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -13615,7 +13353,7 @@ snapshots: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 22.15.21 + '@types/node': 22.15.29 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3(bufferutil@4.0.9) @@ -13629,7 +13367,7 @@ snapshots: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.21 + '@types/node': 22.15.29 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -13639,7 +13377,7 @@ snapshots: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 22.15.21 + '@types/node': 22.15.29 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -13678,7 +13416,7 @@ snapshots: jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.21 + '@types/node': 22.15.29 jest-util: 29.7.0 jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): @@ -13713,7 +13451,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.21 + '@types/node': 22.15.29 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -13741,7 +13479,7 @@ snapshots: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.21 + '@types/node': 22.15.29 chalk: 4.1.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.2 @@ -13787,7 +13525,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.15.21 + '@types/node': 22.15.29 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -13806,7 +13544,7 @@ snapshots: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 22.15.21 + '@types/node': 22.15.29 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -13815,23 +13553,23 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.29 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@29.7.0: dependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.29 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)): + jest@29.7.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) + jest-cli: 29.7.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -13842,21 +13580,21 @@ snapshots: jiti@2.4.2: {} - jotai-devtools@0.12.0(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(redux@5.0.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)): + jotai-devtools@0.12.0(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(redux@5.0.1)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)): dependencies: - '@mantine/code-highlight': 7.17.7(@mantine/core@7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@7.17.7(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@mantine/core': 7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/code-highlight': 7.17.7(@mantine/core@7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@7.17.7(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/core': 7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/hooks': 7.17.7(react@19.1.0) '@redux-devtools/extension': 3.3.0(redux@5.0.1) - '@storybook/test': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/test': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) clsx: 2.1.1 javascript-stringify: 2.1.0 - jotai: 2.12.4(@types/react@19.1.5)(react@19.1.0) + jotai: 2.12.4(@types/react@19.1.6)(react@19.1.0) jsondiffpatch: 0.5.0 react: 19.1.0 react-base16-styling: 0.9.1 react-error-boundary: 5.0.0(react@19.1.0) - react-json-tree: 0.18.0(@types/react@19.1.5)(react@19.1.0) + react-json-tree: 0.18.0(@types/react@19.1.6)(react@19.1.0) react-resizable-panels: 2.1.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0) transitivePeerDependencies: - '@types/react' @@ -13864,9 +13602,9 @@ snapshots: - redux - storybook - jotai@2.12.4(@types/react@19.1.5)(react@19.1.0): + jotai@2.12.4(@types/react@19.1.6)(react@19.1.0): optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 react: 19.1.0 js-cookie@2.2.1: {} @@ -13884,8 +13622,6 @@ snapshots: dependencies: argparse: 2.0.1 - jsdoc-type-pratt-parser@4.1.0: {} - jsdom@20.0.3(bufferutil@4.0.9): dependencies: abab: 2.0.6 @@ -13963,10 +13699,10 @@ snapshots: kleur@3.0.3: {} - knip@5.57.1(@types/node@22.15.21)(typescript@5.8.3): + knip@5.57.1(@types/node@22.15.29)(typescript@5.8.3): dependencies: '@nodelib/fs.walk': 1.2.8 - '@types/node': 22.15.21 + '@types/node': 22.15.29 fast-glob: 3.3.3 formatly: 0.2.3 jiti: 2.4.2 @@ -13978,8 +13714,8 @@ snapshots: smol-toml: 1.3.3 strip-json-comments: 5.0.1 typescript: 5.8.3 - zod: 3.25.20 - zod-validation-error: 3.4.0(zod@3.25.20) + zod: 3.25.49 + zod-validation-error: 3.4.0(zod@3.25.49) language-subtag-registry@0.3.23: {} @@ -14307,6 +14043,10 @@ snapshots: dependencies: boolbase: 1.0.0 + number-flow@0.5.7: + dependencies: + esm-env: 1.2.2 + nwsapi@2.2.20: {} object-assign@4.1.1: {} @@ -14537,12 +14277,6 @@ snapshots: dependencies: find-up: 6.3.0 - pnp-webpack-plugin@1.7.0(typescript@5.8.3): - dependencies: - ts-pnp: 1.2.0(typescript@5.8.3) - transitivePeerDependencies: - - typescript - polished@4.3.1: dependencies: '@babel/runtime': 7.26.10 @@ -14624,14 +14358,14 @@ snapshots: postgres@3.4.5: {} - posthog-js@1.245.2: + posthog-js@1.249.2: dependencies: core-js: 3.41.0 fflate: 0.4.8 preact: 10.26.4 web-vitals: 4.2.4 - posthog-node@4.17.2: + posthog-node@4.18.0: dependencies: axios: 1.8.4 transitivePeerDependencies: @@ -14646,7 +14380,7 @@ snapshots: prettier: 3.5.3 typescript: 5.8.3 - prettier-plugin-tailwindcss@0.6.11(prettier-plugin-organize-imports@4.1.0(prettier@3.5.3)(typescript@5.8.3))(prettier@3.5.3): + prettier-plugin-tailwindcss@0.6.12(prettier-plugin-organize-imports@4.1.0(prettier@3.5.3)(typescript@5.8.3))(prettier@3.5.3): dependencies: prettier: 3.5.3 optionalDependencies: @@ -14736,10 +14470,6 @@ snapshots: queue-microtask@1.2.3: {} - queue@6.0.2: - dependencies: - inherits: 2.0.4 - randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 @@ -14795,7 +14525,7 @@ snapshots: '@babel/runtime': 7.26.10 react: 19.1.0 - react-hook-form@7.56.4(react@19.1.0): + react-hook-form@7.57.0(react@19.1.0): dependencies: react: 19.1.0 @@ -14805,11 +14535,11 @@ snapshots: react-is@18.3.1: {} - react-json-tree@0.18.0(@types/react@19.1.5)(react@19.1.0): + react-json-tree@0.18.0(@types/react@19.1.6)(react@19.1.0): dependencies: '@babel/runtime': 7.26.10 '@types/lodash': 4.17.16 - '@types/react': 19.1.5 + '@types/react': 19.1.6 react: 19.1.0 react-base16-styling: 0.9.1 @@ -14830,61 +14560,61 @@ snapshots: react-refresh@0.14.2: {} - react-remove-scroll-bar@2.3.8(@types/react@19.1.5)(react@19.1.0): + react-remove-scroll-bar@2.3.8(@types/react@19.1.6)(react@19.1.0): dependencies: react: 19.1.0 - react-style-singleton: 2.2.3(@types/react@19.1.5)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.6)(react@19.1.0) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - react-remove-scroll@2.6.3(@types/react@19.1.5)(react@19.1.0): + react-remove-scroll@2.6.3(@types/react@19.1.6)(react@19.1.0): dependencies: react: 19.1.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.5)(react@19.1.0) - react-style-singleton: 2.2.3(@types/react@19.1.5)(react@19.1.0) + react-remove-scroll-bar: 2.3.8(@types/react@19.1.6)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.6)(react@19.1.0) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.5)(react@19.1.0) - use-sidecar: 1.1.3(@types/react@19.1.5)(react@19.1.0) + use-callback-ref: 1.3.3(@types/react@19.1.6)(react@19.1.0) + use-sidecar: 1.1.3(@types/react@19.1.6)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 react-resizable-panels@2.1.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-select@5.10.1(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + react-select@5.10.1(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@babel/runtime': 7.26.10 '@emotion/cache': 11.14.0 - '@emotion/react': 11.14.0(@types/react@19.1.5)(react@19.1.0) + '@emotion/react': 11.14.0(@types/react@19.1.6)(react@19.1.0) '@floating-ui/dom': 1.6.13 - '@types/react-transition-group': 4.4.12(@types/react@19.1.5) + '@types/react-transition-group': 4.4.12(@types/react@19.1.6) memoize-one: 6.0.0 prop-types: 15.8.1 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) react-transition-group: 4.4.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.5)(react@19.1.0) + use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.6)(react@19.1.0) transitivePeerDependencies: - '@types/react' - supports-color - react-style-singleton@2.2.3(@types/react@19.1.5)(react@19.1.0): + react-style-singleton@2.2.3(@types/react@19.1.6)(react@19.1.0): dependencies: get-nonce: 1.0.1 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - react-textarea-autosize@8.5.9(@types/react@19.1.5)(react@19.1.0): + react-textarea-autosize@8.5.9(@types/react@19.1.6)(react@19.1.0): dependencies: '@babel/runtime': 7.26.10 react: 19.1.0 - use-composed-ref: 1.4.0(@types/react@19.1.5)(react@19.1.0) - use-latest: 1.3.0(@types/react@19.1.5)(react@19.1.0) + use-composed-ref: 1.4.0(@types/react@19.1.6)(react@19.1.0) + use-latest: 1.3.0(@types/react@19.1.6)(react@19.1.0) transitivePeerDependencies: - '@types/react' @@ -15177,8 +14907,6 @@ snapshots: semver@6.3.1: {} - semver@7.7.1: {} - semver@7.7.2: {} serialize-javascript@6.0.2: @@ -15218,33 +14946,6 @@ snapshots: inherits: 2.0.4 safe-buffer: 5.2.1 - sharp@0.33.5: - dependencies: - color: 4.2.3 - detect-libc: 2.0.4 - semver: 7.7.2 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.33.5 - '@img/sharp-darwin-x64': 0.33.5 - '@img/sharp-libvips-darwin-arm64': 1.0.4 - '@img/sharp-libvips-darwin-x64': 1.0.4 - '@img/sharp-libvips-linux-arm': 1.0.5 - '@img/sharp-libvips-linux-arm64': 1.0.4 - '@img/sharp-libvips-linux-s390x': 1.0.4 - '@img/sharp-libvips-linux-x64': 1.0.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 - '@img/sharp-libvips-linuxmusl-x64': 1.0.4 - '@img/sharp-linux-arm': 0.33.5 - '@img/sharp-linux-arm64': 0.33.5 - '@img/sharp-linux-s390x': 0.33.5 - '@img/sharp-linux-x64': 0.33.5 - '@img/sharp-linuxmusl-arm64': 0.33.5 - '@img/sharp-linuxmusl-x64': 0.33.5 - '@img/sharp-wasm32': 0.33.5 - '@img/sharp-win32-ia32': 0.33.5 - '@img/sharp-win32-x64': 0.33.5 - optional: true - sharp@0.34.1: dependencies: color: 4.2.3 @@ -15386,12 +15087,23 @@ snapshots: std-env@3.9.0: {} - storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3): + storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3): dependencies: - '@storybook/core': 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/global': 5.0.0 + '@testing-library/jest-dom': 6.6.3 + '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.0) + '@vitest/expect': 3.0.9 + '@vitest/spy': 3.0.9 + better-opn: 3.0.2 + esbuild: 0.25.2 + esbuild-register: 3.6.0(esbuild@0.25.2) + recast: 0.23.11 + semver: 7.7.2 + ws: 8.18.0(bufferutil@4.0.9) optionalDependencies: prettier: 3.5.3 transitivePeerDependencies: + - '@testing-library/dom' - bufferutil - supports-color - utf-8-validate @@ -15505,11 +15217,11 @@ snapshots: strip-json-comments@5.0.1: {} - stripe@18.1.0(@types/node@22.15.21): + stripe@18.2.1(@types/node@22.15.29): dependencies: qs: 6.14.0 optionalDependencies: - '@types/node': 22.15.21 + '@types/node': 22.15.29 style-loader@3.3.4(webpack@5.98.0(esbuild@0.25.2)): dependencies: @@ -15549,11 +15261,11 @@ snapshots: tailwind-merge@3.3.0: {} - tailwindcss-animate@1.0.7(tailwindcss@4.1.7): + tailwindcss-animate@1.0.7(tailwindcss@4.1.8): dependencies: - tailwindcss: 4.1.7 + tailwindcss: 4.1.8 - tailwindcss@4.1.7: {} + tailwindcss@4.1.8: {} tapable@2.2.1: {} @@ -15602,6 +15314,8 @@ snapshots: tinyrainbow@1.2.0: {} + tinyrainbow@2.0.0: {} + tinyspy@3.0.2: {} tmpl@1.0.5: {} @@ -15627,10 +15341,6 @@ snapshots: truncate-middle@2.0.1: {} - ts-api-utils@2.0.1(typescript@5.8.3): - dependencies: - typescript: 5.8.3 - ts-api-utils@2.1.0(typescript@5.8.3): dependencies: typescript: 5.8.3 @@ -15639,12 +15349,12 @@ snapshots: ts-easing@0.2.0: {} - ts-jest@29.3.4(@babel/core@7.26.9)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.9))(esbuild@0.25.2)(jest@29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)))(typescript@5.8.3): + ts-jest@29.3.4(@babel/core@7.26.9)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.9))(esbuild@0.25.2)(jest@29.7.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)))(typescript@5.8.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.15.21)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3)) + jest: 29.7.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -15660,14 +15370,14 @@ snapshots: babel-jest: 29.7.0(@babel/core@7.26.9) esbuild: 0.25.2 - ts-node@10.9.2(@types/node@22.15.21)(typescript@5.8.3): + ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.15.21 + '@types/node': 22.15.29 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -15678,10 +15388,6 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-pnp@1.2.0(typescript@5.8.3): - optionalDependencies: - typescript: 5.8.3 - tsconfig-paths-webpack-plugin@4.2.0: dependencies: chalk: 4.1.2 @@ -15759,12 +15465,12 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3): + typescript-eslint@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.32.1(@typescript-eslint/parser@8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.32.1(eslint@9.27.0(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.27.0(jiti@2.4.2) + '@typescript-eslint/eslint-plugin': 8.33.1(@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3))(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -15827,39 +15533,39 @@ snapshots: punycode: 1.4.1 qs: 6.14.0 - use-callback-ref@1.3.3(@types/react@19.1.5)(react@19.1.0): + use-callback-ref@1.3.3(@types/react@19.1.6)(react@19.1.0): dependencies: react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - use-composed-ref@1.4.0(@types/react@19.1.5)(react@19.1.0): + use-composed-ref@1.4.0(@types/react@19.1.6)(react@19.1.0): dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - use-isomorphic-layout-effect@1.2.0(@types/react@19.1.5)(react@19.1.0): + use-isomorphic-layout-effect@1.2.0(@types/react@19.1.6)(react@19.1.0): dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - use-latest@1.3.0(@types/react@19.1.5)(react@19.1.0): + use-latest@1.3.0(@types/react@19.1.6)(react@19.1.0): dependencies: react: 19.1.0 - use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.5)(react@19.1.0) + use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.6)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 - use-sidecar@1.1.3(@types/react@19.1.5)(react@19.1.0): + use-sidecar@1.1.3(@types/react@19.1.6)(react@19.1.0): dependencies: detect-node-es: 1.1.0 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.5 + '@types/react': 19.1.6 use-sync-external-store@1.5.0(react@19.1.0): dependencies: @@ -15887,9 +15593,9 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 - vaul@1.1.2(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + vaul@1.1.2(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@radix-ui/react-dialog': 1.1.14(@types/react-dom@19.1.5(@types/react@19.1.5))(@types/react@19.1.5)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-dialog': 1.1.14(@types/react-dom@19.1.5(@types/react@19.1.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) transitivePeerDependencies: @@ -16087,8 +15793,8 @@ snapshots: yocto-queue@1.2.1: {} - zod-validation-error@3.4.0(zod@3.25.20): + zod-validation-error@3.4.0(zod@3.25.49): dependencies: - zod: 3.25.20 + zod: 3.25.49 - zod@3.25.20: {} + zod@3.25.49: {} diff --git a/src/app/u/[locationId]/live/_actions/markOrderItemAsDeliveredAction.ts b/src/app/actions/updateOrderItemDeliveryStatusAction.ts similarity index 83% rename from src/app/u/[locationId]/live/_actions/markOrderItemAsDeliveredAction.ts rename to src/app/actions/updateOrderItemDeliveryStatusAction.ts index 27594ce..5b7b173 100644 --- a/src/app/u/[locationId]/live/_actions/markOrderItemAsDeliveredAction.ts +++ b/src/app/actions/updateOrderItemDeliveryStatusAction.ts @@ -4,6 +4,7 @@ import { eq } from 'drizzle-orm'; import { revalidateTag } from 'next/cache'; import { notifyOrderUpdated } from '~/app/api/realtime/notifications'; import { type LocationId } from '~/domain/locations'; +import { DeliveryStatusId } from '~/domain/order-items'; import { TAGS } from '~/domain/tags'; import { AppError } from '~/lib/error-utils.server'; import { db } from '~/server/db'; @@ -15,7 +16,11 @@ import { getOrderById } from '~/server/queries/orders'; // menuItem: InferSelectModel; // }; -export async function markOrderItemAsDeliveredAction(locationId: LocationId, orderItemId: number) { +export async function updateOrderItemDeliveryStatusAction( + locationId: LocationId, orderItemId: number, status: DeliveryStatusId) { + + // TODO Other validations + // Verify that the location belongs to the current user's organization await getLocationForCurrentUserOrThrow(locationId); @@ -26,7 +31,7 @@ export async function markOrderItemAsDeliveredAction(locationId: LocationId, ord const [updatedItem] = await db .update(orderItems) .set({ - isDelivered: true, + deliveryStatus: status, updatedAt: new Date(), }) .where(eq(orderItems.id, orderItemId)) @@ -52,13 +57,13 @@ export async function markOrderItemAsDeliveredAction(locationId: LocationId, ord menuItemId: item.menuItemId, orderItem: { id: item.orderItem.id, - isDelivered: item.orderItem.isDelivered, + deliveryStatus: item.orderItem.deliveryStatus, isPaid: item.orderItem.isPaid, }, })), }); - revalidateTag(TAGS.locationOpenOrders(locationId)); + //revalidateTag(TAGS.locationOpenOrders(locationId)); return order; } diff --git a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx index bc1dced..0976712 100644 --- a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx +++ b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx @@ -1,5 +1,6 @@ 'use client'; +import NumberFlow from '@number-flow/react'; import { useAtom } from 'jotai'; import { ChevronsDownIcon, ChevronsUpIcon } from 'lucide-react'; import Image from 'next/image'; @@ -22,7 +23,7 @@ function OrderSummaryItem(props: { quantity: number; description: string; childr const textColor = props.quantity > 0 ? 'text-black' : 'text-gray-500'; return (
-
{props.quantity}
+
{props.description}
{props.children}
@@ -120,8 +121,8 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc }; const draftItems = order.items.filter((item) => !item.orderItem.id); - const inPreparationItems = order.items.filter((item) => item.orderItem.id && item.orderItem.isDelivered === false); - const deliveredItems = order.items.filter((item) => item.orderItem.id && item.orderItem.isDelivered === true); + const inPreparationItems = order.items.filter((item) => item.orderItem.id && item.orderItem.deliveryStatus === 'pending'); + const deliveredItems = order.items.filter((item) => item.orderItem.id && item.orderItem.deliveryStatus === 'delivered'); const draftItemsSummary = ( @@ -147,7 +148,7 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc const deliveredItemsSummary = ; const collapsedContent = ( -
+
@@ -170,20 +171,20 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc
-
-
{draftItemsSummary}
+
+
{draftItemsSummary}
-
-
{inPreparationItemsSummary}
+
+
{inPreparationItemsSummary}
-
-
{deliveredItemsSummary}
+
+
{deliveredItemsSummary}
diff --git a/src/app/p/[locationSlug]/_components/StickyTabs.tsx b/src/app/p/[locationSlug]/_components/StickyTabs.tsx index 19fc516..d234cea 100644 --- a/src/app/p/[locationSlug]/_components/StickyTabs.tsx +++ b/src/app/p/[locationSlug]/_components/StickyTabs.tsx @@ -153,7 +153,7 @@ export default function StickyTabs(props: { sections: Section[] }) { - - )} - {item.orderItem.isDelivered && } + {order.items.map((item, index) => { + const itemState: ThreeStateToggleSelectedItem = ITEM_STATE[item.orderItem.deliveryStatus as DeliveryStatusId] || 1; + return ( +
+
+

+ {menuItemsMap.get(item.menuItemId)?.name ?? 'Unknown Item'} +

+

+ ${menuItemsMap.get(item.menuItemId)?.price ?? 'Unknown Item'} +

+
+
+ handleItemStateChange(state, item.orderItem.id!)} + size={44} + leftIcon={} + centerIcon={} + rightIcon={} + /> + {/* {item.orderItem.isDelivered === false && ( + <> + + + + )} */} + {/* {item.orderItem.isDelivered && } */} +
-
- ))} + ); + })}
); diff --git a/src/components/ThreeStateToggle.tsx b/src/components/ThreeStateToggle.tsx index f02aeec..a524816 100644 --- a/src/components/ThreeStateToggle.tsx +++ b/src/components/ThreeStateToggle.tsx @@ -6,14 +6,14 @@ import { ChevronLeft, ChevronRight, Minus } from 'lucide-react'; import { cloneElement, isValidElement, useCallback, useEffect, useRef, useState } from 'react'; import { cn } from '~/lib/utils'; -type SelectedItem = 0 | 1 | 2; +export type ThreeStateToggleSelectedItem = 0 | 1 | 2; interface ThreeStateToggleProps { leftIcon?: React.ReactNode; centerIcon?: React.ReactNode; rightIcon?: React.ReactNode; - onStateChange?: (state: number) => void; - defaultState?: SelectedItem; + onStateChange?: (state: ThreeStateToggleSelectedItem) => void; + defaultState?: ThreeStateToggleSelectedItem; className?: string; size?: number; } @@ -36,7 +36,7 @@ export function ThreeStateToggle({ const iconSize = Math.max(16, Math.round(size * 0.4)); const handleStateChange = useCallback( - (newState: SelectedItem) => { + (newState: ThreeStateToggleSelectedItem) => { if (newState >= 0 && newState <= 2) { setSelectedState(newState); onStateChange?.(newState); @@ -46,11 +46,11 @@ export function ThreeStateToggle({ ); const swipeLeft = useCallback(() => { - handleStateChange(Math.min((selectedState as number) - 1, 2) as SelectedItem); + handleStateChange(Math.min((selectedState as number) - 1, 2) as ThreeStateToggleSelectedItem); }, [handleStateChange, selectedState]); const swipeRight = useCallback(() => { - handleStateChange(Math.min((selectedState as number) + 1, 2) as SelectedItem); + handleStateChange(Math.min((selectedState as number) + 1, 2) as ThreeStateToggleSelectedItem); }, [handleStateChange, selectedState]); const handleTouchStart = (e: React.TouchEvent) => { diff --git a/src/components/public/PublicMenuItem.tsx b/src/components/public/PublicMenuItem.tsx index a0c0b87..bec2d43 100644 --- a/src/components/public/PublicMenuItem.tsx +++ b/src/components/public/PublicMenuItem.tsx @@ -26,7 +26,7 @@ export function PublicMenuItem(props: { item: MenuItem; currencyId: CurrencyId; ...prevOrder.items, { menuItemId: id, - orderItem: { isDelivered: false, isPaid: false }, + orderItem: { deliveryStatus: 'pending', isPaid: false }, }, ], }; diff --git a/src/domain/order-items.ts b/src/domain/order-items.ts index b4880ea..e286d23 100644 --- a/src/domain/order-items.ts +++ b/src/domain/order-items.ts @@ -11,9 +11,12 @@ import { type orderItems } from '~/server/db/schema'; // export type OrderItemStatus = PostpaidOrderItemStatus | PrepaidOrderItemStatus; +export const deliveryStatusValues = ['pending', 'delivered', 'canceled'] as const; +export type DeliveryStatusId = (typeof deliveryStatusValues)[number]; + export type OrderItem = InferSelectModel; export interface PublicOrderItem { menuItemId: MenuItemId; - orderItem: { id?: OrderItem['id'] } & Pick; + orderItem: { id?: OrderItem['id'] } & Pick; } diff --git a/src/server/db/schema.ts b/src/server/db/schema.ts index 7553c7d..f8eee6e 100644 --- a/src/server/db/schema.ts +++ b/src/server/db/schema.ts @@ -4,6 +4,7 @@ import { relations, sql } from 'drizzle-orm'; import { boolean, decimal, index, integer, pgTableCreator, primaryKey, timestamp, varchar } from 'drizzle-orm/pg-core'; import { MENU_MODES, type MenuModeId } from '~/domain/menu-modes'; +import { DeliveryStatusId, deliveryStatusValues } from '~/domain/order-items'; import { CURRENCIES, type CurrencyId } from '../../domain/currencies'; /** @@ -149,21 +150,30 @@ export const orders = createTable('order', { updatedAt: timestamp('updated_at', { withTimezone: true }).$onUpdate(() => new Date()), }); -export const orderItems = createTable('order_item', { - id: integer('id').primaryKey().generatedByDefaultAsIdentity(), - orderId: integer('order_id') - .notNull() - .references(() => orders.id), - menuItemId: integer('menu_item_id') - .notNull() - .references(() => menuItems.id), - isDelivered: boolean('is_delivered').default(false).notNull(), - isPaid: boolean('is_paid').default(false).notNull(), - createdAt: timestamp('created_at', { withTimezone: true }) - .default(sql`CURRENT_TIMESTAMP`) - .notNull(), - updatedAt: timestamp('updated_at', { withTimezone: true }).$onUpdate(() => new Date()), -}); +const defaultDeliveryStatus: DeliveryStatusId = 'pending'; +export const orderItems = createTable( + 'order_item', + { + id: integer('id').primaryKey().generatedByDefaultAsIdentity(), + orderId: integer('order_id') + .notNull() + .references(() => orders.id), + menuItemId: integer('menu_item_id') + .notNull() + .references(() => menuItems.id), + deliveryStatus: varchar('delivery_status', { length: 10 }).notNull().default(defaultDeliveryStatus), + isPaid: boolean('is_paid').default(false).notNull(), + createdAt: timestamp('created_at', { withTimezone: true }) + .default(sql`CURRENT_TIMESTAMP`) + .notNull(), + updatedAt: timestamp('updated_at', { withTimezone: true }).$onUpdate(() => new Date()), + }, + () => [ + { + deliveryStatus: sql`CHECK (delivery_status IN (${sql.join([...deliveryStatusValues])}))`, + }, + ], +); export const ordersRelations = relations(orders, ({ many }) => ({ orderItems: many(orderItems), diff --git a/src/server/queries/orders.ts b/src/server/queries/orders.ts index 072386f..3e5ebc8 100644 --- a/src/server/queries/orders.ts +++ b/src/server/queries/orders.ts @@ -39,7 +39,7 @@ export async function createOrder(data: z.infer): Promis .values({ orderId: order.id, menuItemId: item.menuItemId, - isDelivered: false, + deliveryStatus: 'pending', isPaid: false, createdAt: sql`CURRENT_TIMESTAMP`, updatedAt: sql`CURRENT_TIMESTAMP`, @@ -50,7 +50,7 @@ export async function createOrder(data: z.infer): Promis menuItemId: item.menuItemId, orderItem: { id: insertedItem.id, - isDelivered: false, + deliveryStatus: 'pending', isPaid: false, }, }; @@ -78,7 +78,7 @@ export async function updateOrder(data: z.infer): Promis .values({ orderId: Number(data.orderId), //TODO review menuItemId: item.menuItemId, - isDelivered: false, + deliveryStatus: 'pending', isPaid: false, createdAt: sql`CURRENT_TIMESTAMP`, updatedAt: sql`CURRENT_TIMESTAMP`, @@ -89,7 +89,7 @@ export async function updateOrder(data: z.infer): Promis menuItemId: item.menuItemId, orderItem: { id: insertedItem.id, - isDelivered: false, + deliveryStatus: 'pending', isPaid: false, }, }; @@ -139,7 +139,7 @@ export const getOpenOrdersByLocation = async (locationId: LocationId): Promise

Date: Tue, 3 Jun 2025 18:28:22 +0300 Subject: [PATCH 04/21] wip --- .../live/_components/OpenOrdersList.tsx | 13 ++-- .../live/_components/OrderCard.tsx | 19 +----- src/server/queries/orders.ts | 60 ++++++++++--------- 3 files changed, 40 insertions(+), 52 deletions(-) diff --git a/src/app/u/[locationId]/live/_components/OpenOrdersList.tsx b/src/app/u/[locationId]/live/_components/OpenOrdersList.tsx index 32df39a..e2eca6a 100644 --- a/src/app/u/[locationId]/live/_components/OpenOrdersList.tsx +++ b/src/app/u/[locationId]/live/_components/OpenOrdersList.tsx @@ -59,12 +59,11 @@ export async function OpenOrdersList(props: { locationId: LocationId }) { throw error instanceof AppError ? error : new AppError({ - internalMessage: `Unexpected error in OpenOrdersList: ${ - typeof error === 'object' && error !== null && 'toString' in error - ? (error as { toString: () => string }).toString() - : String(error) - }`, - publicMessage: 'Failed to load orders. Please try refreshing the page.', - }); + internalMessage: `Unexpected error in OpenOrdersList: ${typeof error === 'object' && error !== null && 'toString' in error + ? (error as { toString: () => string }).toString() + : String(error) + }`, + publicMessage: 'Failed to load orders. Please try refreshing the page.', + }); } } diff --git a/src/app/u/[locationId]/live/_components/OrderCard.tsx b/src/app/u/[locationId]/live/_components/OrderCard.tsx index 31fc929..09070d6 100644 --- a/src/app/u/[locationId]/live/_components/OrderCard.tsx +++ b/src/app/u/[locationId]/live/_components/OrderCard.tsx @@ -55,13 +55,12 @@ export function OrderCard({

{new Date(order.createdAt).toLocaleTimeString()}

-
- {order.items.map((item, index) => { + {order.items.map((item) => { const itemState: ThreeStateToggleSelectedItem = ITEM_STATE[item.orderItem.deliveryStatus as DeliveryStatusId] || 1; return (
@@ -81,20 +80,6 @@ export function OrderCard({ centerIcon={} rightIcon={} /> - {/* {item.orderItem.isDelivered === false && ( - <> - - - - )} */} - {/* {item.orderItem.isDelivered && } */}
); diff --git a/src/server/queries/orders.ts b/src/server/queries/orders.ts index 3e5ebc8..6f21003 100644 --- a/src/server/queries/orders.ts +++ b/src/server/queries/orders.ts @@ -116,39 +116,43 @@ export async function updateOrder(data: z.infer): Promis } export const getOpenOrdersByLocation = async (locationId: LocationId): Promise => { + const items = await db.query.orders.findMany({ + where: (orders, { eq }) => eq(orders.locationId, locationId), + with: { + orderItems: true, + }, + }); + + const ordersWithItems: PublicOrderWithItems[] = items.map((order) => ({ + id: order.id, + locationId: order.locationId, + createdAt: order.createdAt, + updatedAt: order.updatedAt, + items: order.orderItems + .map((orderItem) => ({ + menuItemId: orderItem.menuItemId, + orderItem: { + id: orderItem.id, + deliveryStatus: orderItem.deliveryStatus, + isPaid: orderItem.isPaid, + createdAt: orderItem.createdAt, + }, + })) + .sort((a, b) => { + return a.orderItem.id - b.orderItem.id; + }), + })); + return ordersWithItems; +} + +export const getCachedOpenOrdersByLocation = async (locationId: LocationId): Promise => { // Validate location access before caching const validLocation = await getLocationForCurrentUserOrThrow(locationId); return unstable_cache( async () => { - // Use the locationId directly since we've already validated it - const items = await db.query.orders.findMany({ - where: (orders, { eq }) => eq(orders.locationId, validLocation.id), - with: { - orderItems: true, - }, - }); - - const ordersWithItems: PublicOrderWithItems[] = items.map((order) => ({ - id: order.id, - locationId: order.locationId, - createdAt: order.createdAt, - updatedAt: order.updatedAt, - items: order.orderItems - .map((orderItem) => ({ - menuItemId: orderItem.menuItemId, - orderItem: { - id: orderItem.id, - deliveryStatus: orderItem.deliveryStatus, - isPaid: orderItem.isPaid, - createdAt: orderItem.createdAt, - }, - })) - .sort((a, b) => { - return a.orderItem.id - b.orderItem.id; - }), - })); - return ordersWithItems; + const items = await getOpenOrdersByLocation(validLocation.id); + return items; }, [TAGS.locationOpenOrders(locationId)], { From f5c039d0a784b74babb16c41bca9307500ef7830 Mon Sep 17 00:00:00 2001 From: dopoto Date: Tue, 3 Jun 2025 18:50:21 +0300 Subject: [PATCH 05/21] fix pb --- src/app/p/[locationSlug]/layout.tsx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/app/p/[locationSlug]/layout.tsx b/src/app/p/[locationSlug]/layout.tsx index b71c6a9..22b0a3e 100644 --- a/src/app/p/[locationSlug]/layout.tsx +++ b/src/app/p/[locationSlug]/layout.tsx @@ -65,11 +65,9 @@ export default async function Layout({ params, children }: { params: Params; chi
-
{children}
- - {location.menuMode === 'interactive' && ( - - )} +
+ {children} +
+ {/* Footer */} + {location.menuMode === 'interactive' && ( + + )} + ); } From 0baf228e76967775aa05246fe055b4d0a82d7bcc Mon Sep 17 00:00:00 2001 From: dopoto Date: Tue, 3 Jun 2025 19:15:53 +0300 Subject: [PATCH 06/21] delete draft item --- .../_components/OrderItemsList.tsx | 10 +++--- .../PublicFooterInteractiveMode.tsx | 36 ++++++++++++++++--- src/components/public/PublicMenuItem.tsx | 2 +- src/domain/order-items.ts | 6 +++- 4 files changed, 44 insertions(+), 10 deletions(-) diff --git a/src/app/p/[locationSlug]/_components/OrderItemsList.tsx b/src/app/p/[locationSlug]/_components/OrderItemsList.tsx index 4e84d3f..950d373 100644 --- a/src/app/p/[locationSlug]/_components/OrderItemsList.tsx +++ b/src/app/p/[locationSlug]/_components/OrderItemsList.tsx @@ -1,22 +1,24 @@ import { useAtom } from 'jotai'; +import { Trash2Icon } from 'lucide-react'; import { menuItemsAtom } from '~/app/p/[locationSlug]/_state/menu-items-atom'; import { orderAtom } from '~/app/p/[locationSlug]/_state/order-atom'; import { CURRENCIES } from '~/domain/currencies'; -import { type PublicOrderItem } from '~/domain/order-items'; +import { OrderItemId, type PublicOrderItem } from '~/domain/order-items'; -export function OrderItemsList(props: { items: PublicOrderItem[] }) { +export function OrderItemsList(props: { items: PublicOrderItem[], onDelete?: (orderItemId: OrderItemId) => void }) { const [order] = useAtom(orderAtom); const [menuItems] = useAtom(menuItemsAtom); const currency = CURRENCIES[order.currencyId]; + return ( <> {props.items?.map((item, index) => { const menuItem = menuItems.get(item.menuItemId) ?? { name: 'Unknown item', price: 0 }; const { name, price } = menuItem; return ( -
- 1 x {name}, {price} {currency?.symbol} +
+ {props.onDelete && props.onDelete!(item.orderItem.id ?? '')} />} 1 x {name}, {price} {currency?.symbol}
); })} diff --git a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx index 0976712..5f4d0b5 100644 --- a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx +++ b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx @@ -5,16 +5,19 @@ import { useAtom } from 'jotai'; import { ChevronsDownIcon, ChevronsUpIcon } from 'lucide-react'; import Image from 'next/image'; import { useState } from 'react'; +import { commonSentryOptions } from 'sentry.common.config'; import { placeOrderAction } from '~/app/actions/placeOrderAction'; import { updateOrderAction } from '~/app/actions/updateOrderAction'; import { OrderItemsList } from '~/app/p/[locationSlug]/_components/OrderItemsList'; import { PublicFooterDrawer } from '~/app/p/[locationSlug]/_components/PublicFooterDrawer'; +import { menuItemsAtom } from '~/app/p/[locationSlug]/_state/menu-items-atom'; import { orderAtom } from '~/app/p/[locationSlug]/_state/order-atom'; import { Labeled } from '~/components/Labeled'; import { Button } from '~/components/ui/button'; import { DrawerClose } from '~/components/ui/drawer'; import { type CurrencyId } from '~/domain/currencies'; import { type LocationId } from '~/domain/locations'; +import { OrderItemId } from '~/domain/order-items'; import { useRealTimeOrderUpdates } from '~/hooks/use-real-time'; import { useToast } from '~/hooks/use-toast'; import { getTopPositionedToast } from '~/lib/toast-utils'; @@ -32,6 +35,7 @@ function OrderSummaryItem(props: { quantity: number; description: string; childr export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; locationId: LocationId }) { const [order, setOrder] = useAtom(orderAtom); + const [menuItems,] = useAtom(menuItemsAtom); const [isLoading, setIsLoading] = useState(false); const { toast } = useToast(); @@ -120,9 +124,9 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc } }; - const draftItems = order.items.filter((item) => !item.orderItem.id); - const inPreparationItems = order.items.filter((item) => item.orderItem.id && item.orderItem.deliveryStatus === 'pending'); - const deliveredItems = order.items.filter((item) => item.orderItem.id && item.orderItem.deliveryStatus === 'delivered'); + const draftItems = order.items.filter((item) => item.orderItem.deliveryStatus == ''); + const inPreparationItems = order.items.filter((item) => item.orderItem.deliveryStatus === 'pending'); + const deliveredItems = order.items.filter((item) => item.orderItem.deliveryStatus === 'delivered'); const draftItemsSummary = ( @@ -161,6 +165,30 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc
); + function handleDeleteDraftItem(orderItemId: OrderItemId) { + setOrder((prevOrder) => { + const itemIndex = prevOrder.items.findIndex((item) => item.orderItem.id === orderItemId); + if (itemIndex === -1) return prevOrder; + + const menuItemId = prevOrder.items[itemIndex]!.menuItemId; + const name = menuItems.get(menuItemId)?.name ?? 'Unknown item'; + + const updatedItems = [...prevOrder.items]; + updatedItems.splice(itemIndex, 1); + + toast({ + title: `${name} was removed from your cart`, + description: `Press 'Order now!' when you're ready to place your order.`, + className: getTopPositionedToast(), + }); + + return { + ...prevOrder, + items: updatedItems, + }; + }); + } + return (
@@ -174,7 +202,7 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc
{draftItemsSummary}
- +
diff --git a/src/components/public/PublicMenuItem.tsx b/src/components/public/PublicMenuItem.tsx index bec2d43..368316c 100644 --- a/src/components/public/PublicMenuItem.tsx +++ b/src/components/public/PublicMenuItem.tsx @@ -26,7 +26,7 @@ export function PublicMenuItem(props: { item: MenuItem; currencyId: CurrencyId; ...prevOrder.items, { menuItemId: id, - orderItem: { deliveryStatus: 'pending', isPaid: false }, + orderItem: { id: `TEMP-${Date.now()}`, deliveryStatus: '', isPaid: false }, }, ], }; diff --git a/src/domain/order-items.ts b/src/domain/order-items.ts index e286d23..5938493 100644 --- a/src/domain/order-items.ts +++ b/src/domain/order-items.ts @@ -3,6 +3,7 @@ // export const ORDER_ITEM_STATUSES = [...new Set([...POSTPAID_STATUSES, ...PREPAID_STATUSES])] as const; import type { InferSelectModel } from 'drizzle-orm'; +import z from 'zod'; import { type MenuItemId } from '~/domain/menu-items'; import { type orderItems } from '~/server/db/schema'; @@ -16,7 +17,10 @@ export type DeliveryStatusId = (typeof deliveryStatusValues)[number]; export type OrderItem = InferSelectModel; +export const orderItemIdSchema = z.coerce.string(); +export type OrderItemId = z.infer; + export interface PublicOrderItem { menuItemId: MenuItemId; - orderItem: { id?: OrderItem['id'] } & Pick; + orderItem: { id?: OrderItemId } & Pick; } From bdba1acdee97a596d7de3b99a1b1fcf0d4e2ba92 Mon Sep 17 00:00:00 2001 From: dopoto Date: Wed, 4 Jun 2025 07:42:37 +0300 Subject: [PATCH 07/21] 3state --- src/app/actions/updateOrderItemDeliveryStatusAction.ts | 4 ++-- src/app/u/[locationId]/live/_components/OrderCard.tsx | 8 ++++---- src/components/ThreeStateToggle.tsx | 2 +- src/domain/order-items.ts | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/app/actions/updateOrderItemDeliveryStatusAction.ts b/src/app/actions/updateOrderItemDeliveryStatusAction.ts index 5b7b173..6b9e32d 100644 --- a/src/app/actions/updateOrderItemDeliveryStatusAction.ts +++ b/src/app/actions/updateOrderItemDeliveryStatusAction.ts @@ -4,7 +4,7 @@ import { eq } from 'drizzle-orm'; import { revalidateTag } from 'next/cache'; import { notifyOrderUpdated } from '~/app/api/realtime/notifications'; import { type LocationId } from '~/domain/locations'; -import { DeliveryStatusId } from '~/domain/order-items'; +import { DeliveryStatusId, OrderItemId } from '~/domain/order-items'; import { TAGS } from '~/domain/tags'; import { AppError } from '~/lib/error-utils.server'; import { db } from '~/server/db'; @@ -17,7 +17,7 @@ import { getOrderById } from '~/server/queries/orders'; // }; export async function updateOrderItemDeliveryStatusAction( - locationId: LocationId, orderItemId: number, status: DeliveryStatusId) { + locationId: number, orderItemId: number, status: DeliveryStatusId) { // TODO Other validations diff --git a/src/app/u/[locationId]/live/_components/OrderCard.tsx b/src/app/u/[locationId]/live/_components/OrderCard.tsx index 09070d6..0d1ce3c 100644 --- a/src/app/u/[locationId]/live/_components/OrderCard.tsx +++ b/src/app/u/[locationId]/live/_components/OrderCard.tsx @@ -9,7 +9,7 @@ import { type LocationId } from '~/domain/locations'; import { type PublicOrderWithItems } from '~/domain/orders'; import { type menuItems } from '~/server/db/schema'; import { updateOrderItemDeliveryStatusAction } from '../../../../actions/updateOrderItemDeliveryStatusAction'; -import { DeliveryStatusId } from '~/domain/order-items'; +import { DeliveryStatusId, OrderItemId } from '~/domain/order-items'; const ITEM_STATE: Record = { 'canceled': 0, @@ -28,7 +28,7 @@ export function OrderCard({ }) { const [isUpdating, setIsUpdating] = useState(false); - async function handleItemStateChange(state: ThreeStateToggleSelectedItem, itemId: number) { + async function handleItemStateChange(state: ThreeStateToggleSelectedItem, orderItemId: OrderItemId) { const status = Object.keys(ITEM_STATE).find( key => ITEM_STATE[key as DeliveryStatusId] === state @@ -38,7 +38,7 @@ export function OrderCard({ try { setIsUpdating(true); - await updateOrderItemDeliveryStatusAction(locationId, itemId, status); + await updateOrderItemDeliveryStatusAction(locationId, orderItemId, status); } catch (error) { console.error('Failed to mark as pending:', error); } finally { @@ -65,7 +65,7 @@ export function OrderCard({ >

- {menuItemsMap.get(item.menuItemId)?.name ?? 'Unknown Item'} + [{item.orderItem.id}]{menuItemsMap.get(item.menuItemId)?.name ?? 'Unknown Item'}

${menuItemsMap.get(item.menuItemId)?.price ?? 'Unknown Item'} diff --git a/src/components/ThreeStateToggle.tsx b/src/components/ThreeStateToggle.tsx index a524816..0db07c0 100644 --- a/src/components/ThreeStateToggle.tsx +++ b/src/components/ThreeStateToggle.tsx @@ -166,7 +166,7 @@ export function ThreeStateToggle({ top: `${padding}px`, height: `${size - padding * 2}px`, width: `calc(100%/3 - ${padding}px)`, - left: `calc(${selectedState} * (100% - 100%/3 + ${padding / 2}px)/2)`, + left: `calc((${selectedState} * 66.67%)/2 + ${['4px', '2px', '0px'][selectedState]})`, }} /> diff --git a/src/domain/order-items.ts b/src/domain/order-items.ts index 5938493..bdec58a 100644 --- a/src/domain/order-items.ts +++ b/src/domain/order-items.ts @@ -17,7 +17,7 @@ export type DeliveryStatusId = (typeof deliveryStatusValues)[number]; export type OrderItem = InferSelectModel; -export const orderItemIdSchema = z.coerce.string(); +export const orderItemIdSchema = z.coerce.number(); export type OrderItemId = z.infer; export interface PublicOrderItem { From 4cfc704927830575a901e786b2d2529e791e3448 Mon Sep 17 00:00:00 2001 From: dopoto Date: Wed, 4 Jun 2025 10:28:28 +0300 Subject: [PATCH 08/21] fix order --- src/server/queries/orders.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/server/queries/orders.ts b/src/server/queries/orders.ts index 6f21003..16c9444 100644 --- a/src/server/queries/orders.ts +++ b/src/server/queries/orders.ts @@ -109,7 +109,9 @@ export async function updateOrder(data: z.infer): Promis const orderWithItems: PublicOrderWithItems = { ...order, - items: [...itemsAlreadyOrdered, ...insertedItems], + items: [...itemsAlreadyOrdered, ...insertedItems].sort((a, b) => { + return (a.orderItem.id ?? 0) - (b.orderItem.id ?? 0); + }), }; return orderWithItems; }); From d37a2a394bf85b917ee5c717e66ef7bafeab6528 Mon Sep 17 00:00:00 2001 From: dopoto Date: Wed, 4 Jun 2025 11:05:49 +0300 Subject: [PATCH 09/21] wip --- .../updateOrderItemDeliveryStatusAction.ts | 104 +++++++++--------- .../_components/OrderItemsList.tsx | 2 +- .../PublicFooterInteractiveMode.tsx | 2 +- .../live/_components/OrderCard.tsx | 4 +- src/server/db/schema.ts | 2 +- src/server/queries/order-items.ts | 34 ++++++ 6 files changed, 94 insertions(+), 54 deletions(-) create mode 100644 src/server/queries/order-items.ts diff --git a/src/app/actions/updateOrderItemDeliveryStatusAction.ts b/src/app/actions/updateOrderItemDeliveryStatusAction.ts index 6b9e32d..78aa651 100644 --- a/src/app/actions/updateOrderItemDeliveryStatusAction.ts +++ b/src/app/actions/updateOrderItemDeliveryStatusAction.ts @@ -1,69 +1,75 @@ 'use server'; +import * as Sentry from '@sentry/nextjs'; import { eq } from 'drizzle-orm'; -import { revalidateTag } from 'next/cache'; +import { headers } from 'next/headers'; import { notifyOrderUpdated } from '~/app/api/realtime/notifications'; -import { type LocationId } from '~/domain/locations'; -import { DeliveryStatusId, OrderItemId } from '~/domain/order-items'; -import { TAGS } from '~/domain/tags'; +import { orderItemIdSchema, type DeliveryStatusId } from '~/domain/order-items'; +import { PublicOrderWithItems } from '~/domain/orders'; import { AppError } from '~/lib/error-utils.server'; import { db } from '~/server/db'; import { orderItems } from '~/server/db/schema'; import { getLocationForCurrentUserOrThrow } from '~/server/queries/locations'; +import { updateOrderItemStatus } from '~/server/queries/order-items'; import { getOrderById } from '~/server/queries/orders'; -// type OrderItem = InferSelectModel & { -// menuItem: InferSelectModel; -// }; +export const updateOrderItemDeliveryStatusAction = async ( + locationId: number, orderItemId: number, status: DeliveryStatusId): Promise => { + 'use server'; + return await Sentry.withServerActionInstrumentation( + 'updateOrderItemDeliveryStatusAction', + { + headers: headers(), + recordResponse: true, + }, + async () => { -export async function updateOrderItemDeliveryStatusAction( - locationId: number, orderItemId: number, status: DeliveryStatusId) { + const orderItemIdValidationResult = orderItemIdSchema.safeParse(orderItemId); + if (!orderItemIdValidationResult.success) { + throw new AppError({ publicMessage: `Invalid order item id` }); + } + const validatedOrderItemId = orderItemIdValidationResult.data; - // TODO Other validations + // Verify that the location belongs to the current user's organization + await getLocationForCurrentUserOrThrow(locationId); - // Verify that the location belongs to the current user's organization - await getLocationForCurrentUserOrThrow(locationId); + // TODO Check that the order item id is in the order items for the location - // TODO Check that the order item id is in the order items for the location + // TODO move to queries + // Update the order item status + // const [updatedItem] = await db + // .update(orderItems) + // .set({ + // deliveryStatus: status, + // updatedAt: new Date(), + // }) + // .where(eq(orderItems.id, validatedOrderItemId)) + // .returning(); - // TODO move to queries - // Update the order item status - const [updatedItem] = await db - .update(orderItems) - .set({ - deliveryStatus: status, - updatedAt: new Date(), - }) - .where(eq(orderItems.id, orderItemId)) - .returning(); + const updatedItem = await updateOrderItemStatus(locationId, validatedOrderItemId, status); - if (!updatedItem) { - throw new AppError({ internalMessage: 'Could not update order item' }); - } + if (!updatedItem) { + throw new AppError({ internalMessage: 'Could not update order item' }); + } - // Get the full updated order with items and menu items - //const foundOrders = await getOpenOrdersByLocation(locationId) + const order = await getOrderById(locationId, updatedItem.orderId.toString()); + if (!order) { + throw new AppError({ internalMessage: 'Order not found after update' }); + } - // Send real-time notification - // Fetch the full order with its items after updating - const order = await getOrderById(locationId, updatedItem.orderId.toString()); + await notifyOrderUpdated(locationId, { + ...order, + items: order.items.map((item) => ({ + menuItemId: item.menuItemId, + orderItem: { + id: item.orderItem.id, + deliveryStatus: item.orderItem.deliveryStatus, + isPaid: item.orderItem.isPaid, + }, + })), + }); - if (!order) { - throw new AppError({ internalMessage: 'Order not found after update' }); - } - await notifyOrderUpdated(locationId, { - ...order, - items: order.items.map((item) => ({ - menuItemId: item.menuItemId, - orderItem: { - id: item.orderItem.id, - deliveryStatus: item.orderItem.deliveryStatus, - isPaid: item.orderItem.isPaid, - }, - })), - }); - - //revalidateTag(TAGS.locationOpenOrders(locationId)); - - return order; + return order; + } + ) } diff --git a/src/app/p/[locationSlug]/_components/OrderItemsList.tsx b/src/app/p/[locationSlug]/_components/OrderItemsList.tsx index 950d373..b188ed2 100644 --- a/src/app/p/[locationSlug]/_components/OrderItemsList.tsx +++ b/src/app/p/[locationSlug]/_components/OrderItemsList.tsx @@ -3,7 +3,7 @@ import { Trash2Icon } from 'lucide-react'; import { menuItemsAtom } from '~/app/p/[locationSlug]/_state/menu-items-atom'; import { orderAtom } from '~/app/p/[locationSlug]/_state/order-atom'; import { CURRENCIES } from '~/domain/currencies'; -import { OrderItemId, type PublicOrderItem } from '~/domain/order-items'; +import { type OrderItemId, type PublicOrderItem } from '~/domain/order-items'; export function OrderItemsList(props: { items: PublicOrderItem[], onDelete?: (orderItemId: OrderItemId) => void }) { const [order] = useAtom(orderAtom); diff --git a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx index 5f4d0b5..9c7baba 100644 --- a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx +++ b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx @@ -17,7 +17,7 @@ import { Button } from '~/components/ui/button'; import { DrawerClose } from '~/components/ui/drawer'; import { type CurrencyId } from '~/domain/currencies'; import { type LocationId } from '~/domain/locations'; -import { OrderItemId } from '~/domain/order-items'; +import { type OrderItemId } from '~/domain/order-items'; import { useRealTimeOrderUpdates } from '~/hooks/use-real-time'; import { useToast } from '~/hooks/use-toast'; import { getTopPositionedToast } from '~/lib/toast-utils'; diff --git a/src/app/u/[locationId]/live/_components/OrderCard.tsx b/src/app/u/[locationId]/live/_components/OrderCard.tsx index 0d1ce3c..f3744a9 100644 --- a/src/app/u/[locationId]/live/_components/OrderCard.tsx +++ b/src/app/u/[locationId]/live/_components/OrderCard.tsx @@ -3,13 +3,13 @@ import type { InferSelectModel } from 'drizzle-orm'; import { BanIcon, CircleCheckIcon, ClockIcon } from 'lucide-react'; import { useState } from 'react'; -import { ThreeStateToggle, ThreeStateToggleSelectedItem } from '~/components/ThreeStateToggle'; +import { ThreeStateToggle, type ThreeStateToggleSelectedItem } from '~/components/ThreeStateToggle'; import { Card } from '~/components/ui/card'; import { type LocationId } from '~/domain/locations'; import { type PublicOrderWithItems } from '~/domain/orders'; import { type menuItems } from '~/server/db/schema'; import { updateOrderItemDeliveryStatusAction } from '../../../../actions/updateOrderItemDeliveryStatusAction'; -import { DeliveryStatusId, OrderItemId } from '~/domain/order-items'; +import { type DeliveryStatusId, type OrderItemId } from '~/domain/order-items'; const ITEM_STATE: Record = { 'canceled': 0, diff --git a/src/server/db/schema.ts b/src/server/db/schema.ts index f8eee6e..a72fbd5 100644 --- a/src/server/db/schema.ts +++ b/src/server/db/schema.ts @@ -4,7 +4,7 @@ import { relations, sql } from 'drizzle-orm'; import { boolean, decimal, index, integer, pgTableCreator, primaryKey, timestamp, varchar } from 'drizzle-orm/pg-core'; import { MENU_MODES, type MenuModeId } from '~/domain/menu-modes'; -import { DeliveryStatusId, deliveryStatusValues } from '~/domain/order-items'; +import { type DeliveryStatusId, deliveryStatusValues } from '~/domain/order-items'; import { CURRENCIES, type CurrencyId } from '../../domain/currencies'; /** diff --git a/src/server/queries/order-items.ts b/src/server/queries/order-items.ts new file mode 100644 index 0000000..c548200 --- /dev/null +++ b/src/server/queries/order-items.ts @@ -0,0 +1,34 @@ +import { sql, eq } from 'drizzle-orm'; +import type { z } from 'node_modules/zod/dist/types/v3/external'; +import type { LocationId, locationFormSchema } from '~/domain/locations'; +import type { DeliveryStatusId, OrderItem, OrderItemId } from '~/domain/order-items'; +import { AppError } from '~/lib/error-utils.server'; +import { db } from '~/server/db'; +import { locations, orderItems } from '~/server/db/schema'; +import { getLocationForCurrentUserOrThrow } from '~/server/queries/locations'; + +export async function updateOrderItemStatus(locationId: LocationId, orderItemId: OrderItemId, status: DeliveryStatusId): Promise { + const validLocation = await getLocationForCurrentUserOrThrow(locationId); + + await db.transaction(async (tx) => { + const result = await tx + .update(orderItems) + .set({ + deliveryStatus: status, + updatedAt: new Date(), + }) + .where(eq(orderItems.id, orderItemId)) + .returning(); + + // .update(locations) + // .set({ + // name: data.locationName, + // currencyId: data.currencyId, + // menuMode: data.menuMode, + // updatedAt: sql`CURRENT_TIMESTAMP`, + // }) + // .where(eq(locations.id, validLocation.id)); + + return result; + }); +} From 8cc237ecc033ed5e1f9ed48637dfbdbd63b15579 Mon Sep 17 00:00:00 2001 From: dopoto Date: Wed, 4 Jun 2025 11:31:20 +0300 Subject: [PATCH 10/21] wip --- .../updateOrderItemDeliveryStatusAction.ts | 18 ------ .../_components/OrderItemsList.tsx | 2 +- src/components/public/PublicMenuItem.tsx | 2 +- src/server/queries/order-items.ts | 60 ++++++++++++------- src/server/queries/orders.ts | 4 +- 5 files changed, 42 insertions(+), 44 deletions(-) diff --git a/src/app/actions/updateOrderItemDeliveryStatusAction.ts b/src/app/actions/updateOrderItemDeliveryStatusAction.ts index 78aa651..a4c7cd2 100644 --- a/src/app/actions/updateOrderItemDeliveryStatusAction.ts +++ b/src/app/actions/updateOrderItemDeliveryStatusAction.ts @@ -1,14 +1,11 @@ 'use server'; import * as Sentry from '@sentry/nextjs'; -import { eq } from 'drizzle-orm'; import { headers } from 'next/headers'; import { notifyOrderUpdated } from '~/app/api/realtime/notifications'; import { orderItemIdSchema, type DeliveryStatusId } from '~/domain/order-items'; import { PublicOrderWithItems } from '~/domain/orders'; import { AppError } from '~/lib/error-utils.server'; -import { db } from '~/server/db'; -import { orderItems } from '~/server/db/schema'; import { getLocationForCurrentUserOrThrow } from '~/server/queries/locations'; import { updateOrderItemStatus } from '~/server/queries/order-items'; import { getOrderById } from '~/server/queries/orders'; @@ -23,7 +20,6 @@ export const updateOrderItemDeliveryStatusAction = async ( recordResponse: true, }, async () => { - const orderItemIdValidationResult = orderItemIdSchema.safeParse(orderItemId); if (!orderItemIdValidationResult.success) { throw new AppError({ publicMessage: `Invalid order item id` }); @@ -33,21 +29,7 @@ export const updateOrderItemDeliveryStatusAction = async ( // Verify that the location belongs to the current user's organization await getLocationForCurrentUserOrThrow(locationId); - // TODO Check that the order item id is in the order items for the location - - // TODO move to queries - // Update the order item status - // const [updatedItem] = await db - // .update(orderItems) - // .set({ - // deliveryStatus: status, - // updatedAt: new Date(), - // }) - // .where(eq(orderItems.id, validatedOrderItemId)) - // .returning(); - const updatedItem = await updateOrderItemStatus(locationId, validatedOrderItemId, status); - if (!updatedItem) { throw new AppError({ internalMessage: 'Could not update order item' }); } diff --git a/src/app/p/[locationSlug]/_components/OrderItemsList.tsx b/src/app/p/[locationSlug]/_components/OrderItemsList.tsx index b188ed2..dae999a 100644 --- a/src/app/p/[locationSlug]/_components/OrderItemsList.tsx +++ b/src/app/p/[locationSlug]/_components/OrderItemsList.tsx @@ -18,7 +18,7 @@ export function OrderItemsList(props: { items: PublicOrderItem[], onDelete?: (or const { name, price } = menuItem; return (

- {props.onDelete && props.onDelete!(item.orderItem.id ?? '')} />} 1 x {name}, {price} {currency?.symbol} + {props.onDelete && props.onDelete?.(item.orderItem.id ?? 0)} />} 1 x {name}, {price} {currency?.symbol}
); })} diff --git a/src/components/public/PublicMenuItem.tsx b/src/components/public/PublicMenuItem.tsx index 368316c..776145f 100644 --- a/src/components/public/PublicMenuItem.tsx +++ b/src/components/public/PublicMenuItem.tsx @@ -26,7 +26,7 @@ export function PublicMenuItem(props: { item: MenuItem; currencyId: CurrencyId; ...prevOrder.items, { menuItemId: id, - orderItem: { id: `TEMP-${Date.now()}`, deliveryStatus: '', isPaid: false }, + orderItem: { id: Date.now(), deliveryStatus: '', isPaid: false }, }, ], }; diff --git a/src/server/queries/order-items.ts b/src/server/queries/order-items.ts index c548200..47034c1 100644 --- a/src/server/queries/order-items.ts +++ b/src/server/queries/order-items.ts @@ -1,34 +1,48 @@ -import { sql, eq } from 'drizzle-orm'; -import type { z } from 'node_modules/zod/dist/types/v3/external'; -import type { LocationId, locationFormSchema } from '~/domain/locations'; +import { eq } from 'drizzle-orm'; +import type { LocationId } from '~/domain/locations'; import type { DeliveryStatusId, OrderItem, OrderItemId } from '~/domain/order-items'; import { AppError } from '~/lib/error-utils.server'; import { db } from '~/server/db'; -import { locations, orderItems } from '~/server/db/schema'; +import { orderItems, orders } from '~/server/db/schema'; import { getLocationForCurrentUserOrThrow } from '~/server/queries/locations'; export async function updateOrderItemStatus(locationId: LocationId, orderItemId: OrderItemId, status: DeliveryStatusId): Promise { const validLocation = await getLocationForCurrentUserOrThrow(locationId); - await db.transaction(async (tx) => { - const result = await tx - .update(orderItems) - .set({ - deliveryStatus: status, - updatedAt: new Date(), - }) - .where(eq(orderItems.id, orderItemId)) - .returning(); + // First verify that the order item belongs to this location through its order + const orderItem = await db.query.orderItems.findFirst({ + where: eq(orderItems.id, orderItemId), + with: { + order: { + columns: { + locationId: true + } + } + } + }); - // .update(locations) - // .set({ - // name: data.locationName, - // currencyId: data.currencyId, - // menuMode: data.menuMode, - // updatedAt: sql`CURRENT_TIMESTAMP`, - // }) - // .where(eq(locations.id, validLocation.id)); + if (!orderItem || orderItem.order.locationId !== validLocation.id) { + throw new AppError({ + publicMessage: 'Order item not found.', + internalMessage: `Order item ${orderItemId} not found or does not belong to location ${locationId}`, + }); + } - return result; - }); + const [updatedOrderItem] = await db + .update(orderItems) + .set({ + deliveryStatus: status, + updatedAt: new Date(), + }) + .where(eq(orderItems.id, orderItemId)) + .returning(); + + if (!updatedOrderItem) { + throw new AppError({ + publicMessage: 'Failed to update order item', + internalMessage: `Failed to update order item ${orderItemId}`, + }); + } + + return updatedOrderItem; } diff --git a/src/server/queries/orders.ts b/src/server/queries/orders.ts index 16c9444..7253bdd 100644 --- a/src/server/queries/orders.ts +++ b/src/server/queries/orders.ts @@ -190,7 +190,9 @@ export async function getOrderById(locationId: LocationId, orderId: OrderId): Pr deliveryStatus: orderItem.deliveryStatus, isPaid: orderItem.isPaid, }, - })), + })).sort((a, b) => { + return (a.orderItem.id ?? 0) - (b.orderItem.id ?? 0); + }), }; return orderWithItems; } From 2af5a83c11404297266b28c4dec589e361fa5d96 Mon Sep 17 00:00:00 2001 From: dopoto Date: Wed, 4 Jun 2025 14:53:17 +0300 Subject: [PATCH 11/21] ts fixed --- src/app/actions/placeOrderAction.ts | 6 +- src/app/actions/updateOrderAction.ts | 6 +- .../updateOrderItemDeliveryStatusAction.ts | 2 +- src/app/api/realtime/notifications.ts | 2 +- .../_components/JotaiProviderWrapper.tsx | 11 +- .../_components/OrderItemsList.tsx | 6 +- .../PublicFooterInteractiveMode.tsx | 14 +- src/app/p/[locationSlug]/_state/order-atom.ts | 11 +- src/components/public/PublicMenuItem.tsx | 15 +- src/domain/locations.ts | 4 +- src/domain/order-items.ts | 12 +- src/domain/orders.ts | 25 ++-- src/hooks/use-real-time.ts | 16 +-- src/lib/pusher.ts | 3 +- src/server/queries/orders.ts | 131 ++++++++++-------- 15 files changed, 151 insertions(+), 113 deletions(-) diff --git a/src/app/actions/placeOrderAction.ts b/src/app/actions/placeOrderAction.ts index b47b14f..a7faf50 100644 --- a/src/app/actions/placeOrderAction.ts +++ b/src/app/actions/placeOrderAction.ts @@ -5,13 +5,13 @@ import { headers } from 'next/headers'; import { type z } from 'zod'; import { notifyOrderCreated } from '~/app/api/realtime/notifications'; import { type menuFormSchema } from '~/domain/menus'; -import { orderFormSchema, type PublicOrderWithItems } from '~/domain/orders'; +import { orderFormSchema, publicOrderWithItemsSchema, type PublicOrderWithItems } from '~/domain/orders'; import { AppError } from '~/lib/error-utils.server'; import { type FormState, processFormErrors } from '~/lib/form-state'; import { createOrder } from '~/server/queries/orders'; export const placeOrderAction = async ( - data: z.infer, + data: z.infer, ): Promise> => { 'use server'; return await Sentry.withServerActionInstrumentation( @@ -22,7 +22,7 @@ export const placeOrderAction = async ( }, async () => { try { - const parsedForm = orderFormSchema.safeParse(data); + const parsedForm = publicOrderWithItemsSchema.safeParse(data); if (!parsedForm.success) { return processFormErrors(parsedForm.error, data); } diff --git a/src/app/actions/updateOrderAction.ts b/src/app/actions/updateOrderAction.ts index c787f9d..23305e0 100644 --- a/src/app/actions/updateOrderAction.ts +++ b/src/app/actions/updateOrderAction.ts @@ -5,13 +5,13 @@ import { headers } from 'next/headers'; import { type z } from 'zod'; import { notifyOrderUpdated } from '~/app/api/realtime/notifications'; import { type menuFormSchema } from '~/domain/menus'; -import { orderFormSchema, type PublicOrderWithItems } from '~/domain/orders'; +import { orderFormSchema, publicOrderWithItemsSchema, type PublicOrderWithItems } from '~/domain/orders'; import { AppError } from '~/lib/error-utils.server'; import { type FormState, processFormErrors } from '~/lib/form-state'; import { updateOrder } from '~/server/queries/orders'; export const updateOrderAction = async ( - data: z.infer, + data: z.infer, ): Promise> => { 'use server'; return await Sentry.withServerActionInstrumentation( @@ -22,7 +22,7 @@ export const updateOrderAction = async ( }, async () => { try { - const parsedForm = orderFormSchema.safeParse(data); + const parsedForm = publicOrderWithItemsSchema.safeParse(data); if (!parsedForm.success) { return processFormErrors(parsedForm.error, data); } diff --git a/src/app/actions/updateOrderItemDeliveryStatusAction.ts b/src/app/actions/updateOrderItemDeliveryStatusAction.ts index a4c7cd2..8bf91c5 100644 --- a/src/app/actions/updateOrderItemDeliveryStatusAction.ts +++ b/src/app/actions/updateOrderItemDeliveryStatusAction.ts @@ -34,7 +34,7 @@ export const updateOrderItemDeliveryStatusAction = async ( throw new AppError({ internalMessage: 'Could not update order item' }); } - const order = await getOrderById(locationId, updatedItem.orderId.toString()); + const order = await getOrderById(locationId, updatedItem.orderId); if (!order) { throw new AppError({ internalMessage: 'Order not found after update' }); } diff --git a/src/app/api/realtime/notifications.ts b/src/app/api/realtime/notifications.ts index db4b552..e2a5931 100644 --- a/src/app/api/realtime/notifications.ts +++ b/src/app/api/realtime/notifications.ts @@ -14,5 +14,5 @@ export async function notifyOrderUpdated(locationId: LocationId, order: PublicOr await pusher.trigger(CHANNELS.location(locationId), EVENTS.ORDER_UPDATED, order); // Also notify clients specifically listening to this order - await pusher.trigger(CHANNELS.order(order.id.toString()), EVENTS.ORDER_UPDATED, order); + await pusher.trigger(CHANNELS.order(order.id), EVENTS.ORDER_UPDATED, order); } diff --git a/src/app/p/[locationSlug]/_components/JotaiProviderWrapper.tsx b/src/app/p/[locationSlug]/_components/JotaiProviderWrapper.tsx index bc58dfd..2f004d4 100644 --- a/src/app/p/[locationSlug]/_components/JotaiProviderWrapper.tsx +++ b/src/app/p/[locationSlug]/_components/JotaiProviderWrapper.tsx @@ -12,6 +12,7 @@ import dynamic from 'next/dynamic'; import type { ComponentType } from 'react'; import { menuItemsAtom } from '~/app/p/[locationSlug]/_state/menu-items-atom'; import type { MenuItem } from '~/domain/menu-items'; +import { PublicOrderWithItems } from '~/domain/orders'; let DevTools: ComponentType | null = null; @@ -24,7 +25,15 @@ function Initializer(props: { locationId: LocationId; currencyId: CurrencyId; me const setMenuItems = useSetAtom(menuItemsAtom); useEffect(() => { - setOrder({ locationId: props.locationId, currencyId: props.currencyId, items: [] }); + const newOrder: PublicOrderWithItems = { + id: 0, + createdAt: new Date(), + updatedAt: null, + locationId: props.locationId, + currencyId: props.currencyId, + items: [], + }; + setOrder(newOrder); }, [props.locationId, props.currencyId, setOrder]); useEffect(() => { diff --git a/src/app/p/[locationSlug]/_components/OrderItemsList.tsx b/src/app/p/[locationSlug]/_components/OrderItemsList.tsx index dae999a..2956f50 100644 --- a/src/app/p/[locationSlug]/_components/OrderItemsList.tsx +++ b/src/app/p/[locationSlug]/_components/OrderItemsList.tsx @@ -3,9 +3,9 @@ import { Trash2Icon } from 'lucide-react'; import { menuItemsAtom } from '~/app/p/[locationSlug]/_state/menu-items-atom'; import { orderAtom } from '~/app/p/[locationSlug]/_state/order-atom'; import { CURRENCIES } from '~/domain/currencies'; -import { type OrderItemId, type PublicOrderItem } from '~/domain/order-items'; +import { type PublicOrderItem } from '~/domain/order-items'; -export function OrderItemsList(props: { items: PublicOrderItem[], onDelete?: (orderItemId: OrderItemId) => void }) { +export function OrderItemsList(props: { items: PublicOrderItem[], onDelete?: (orderItemTempId: string) => void }) { const [order] = useAtom(orderAtom); const [menuItems] = useAtom(menuItemsAtom); const currency = CURRENCIES[order.currencyId]; @@ -18,7 +18,7 @@ export function OrderItemsList(props: { items: PublicOrderItem[], onDelete?: (or const { name, price } = menuItem; return (
- {props.onDelete && props.onDelete?.(item.orderItem.id ?? 0)} />} 1 x {name}, {price} {currency?.symbol} + {props.onDelete && props.onDelete?.(item.orderItem.tempId ?? '')} />} 1 x {name}, {price} {currency?.symbol}
); })} diff --git a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx index 9c7baba..1028ad8 100644 --- a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx +++ b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx @@ -5,7 +5,6 @@ import { useAtom } from 'jotai'; import { ChevronsDownIcon, ChevronsUpIcon } from 'lucide-react'; import Image from 'next/image'; import { useState } from 'react'; -import { commonSentryOptions } from 'sentry.common.config'; import { placeOrderAction } from '~/app/actions/placeOrderAction'; import { updateOrderAction } from '~/app/actions/updateOrderAction'; import { OrderItemsList } from '~/app/p/[locationSlug]/_components/OrderItemsList'; @@ -17,7 +16,6 @@ import { Button } from '~/components/ui/button'; import { DrawerClose } from '~/components/ui/drawer'; import { type CurrencyId } from '~/domain/currencies'; import { type LocationId } from '~/domain/locations'; -import { type OrderItemId } from '~/domain/order-items'; import { useRealTimeOrderUpdates } from '~/hooks/use-real-time'; import { useToast } from '~/hooks/use-toast'; import { getTopPositionedToast } from '~/lib/toast-utils'; @@ -40,7 +38,7 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc const { toast } = useToast(); // Add real-time updates - useRealTimeOrderUpdates(order.orderId, props.locationId); + useRealTimeOrderUpdates(order.id, props.locationId); //const totalAmount = order.items.reduce((sum, item) => sum + parseFloat(item.menuItem?.price ?? '0'), 0); @@ -131,7 +129,7 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc const draftItemsSummary = ( {draftItems.length > 0 && - (order.orderId ? ( + (order.id ? ( @@ -154,7 +152,7 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc const collapsedContent = (
- +
@@ -165,9 +163,9 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc
); - function handleDeleteDraftItem(orderItemId: OrderItemId) { + function handleDeleteDraftItem(orderItemTempId: string) { setOrder((prevOrder) => { - const itemIndex = prevOrder.items.findIndex((item) => item.orderItem.id === orderItemId); + const itemIndex = prevOrder.items.findIndex((item) => item.orderItem.tempId === orderItemTempId); if (itemIndex === -1) return prevOrder; const menuItemId = prevOrder.items[itemIndex]!.menuItemId; @@ -193,7 +191,7 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc
- + diff --git a/src/app/p/[locationSlug]/_state/order-atom.ts b/src/app/p/[locationSlug]/_state/order-atom.ts index 818ea0a..963e8c7 100644 --- a/src/app/p/[locationSlug]/_state/order-atom.ts +++ b/src/app/p/[locationSlug]/_state/order-atom.ts @@ -1,5 +1,12 @@ import { atom } from 'jotai'; -import { type PublicOrder } from '~/domain/orders'; +import { PublicOrderWithItems } from '~/domain/orders'; -export const orderAtom = atom({ locationId: 0, currencyId: 'USD', items: [] }); +export const orderAtom = atom({ + id: 0, + createdAt: new Date(), + updatedAt: null, + locationId: 0, + currencyId: 'USD', + items: [] +}); orderAtom.debugLabel = 'orderAtom'; diff --git a/src/components/public/PublicMenuItem.tsx b/src/components/public/PublicMenuItem.tsx index 776145f..56e39f4 100644 --- a/src/components/public/PublicMenuItem.tsx +++ b/src/components/public/PublicMenuItem.tsx @@ -7,6 +7,7 @@ import { Badge } from '~/components/ui/badge'; import { CURRENCIES, type CurrencyId } from '~/domain/currencies'; import { type MenuItem } from '~/domain/menu-items'; import { MENU_MODES, type MenuModeId } from '~/domain/menu-modes'; +import { PublicOrderItem } from '~/domain/order-items'; import { toast } from '~/hooks/use-toast'; import { getTopPositionedToast } from '~/lib/toast-utils'; @@ -20,14 +21,20 @@ export function PublicMenuItem(props: { item: MenuItem; currencyId: CurrencyId; const addToOrder = () => { setOrder((prevOrder) => { const { id } = props.item; + const newOrderItem: PublicOrderItem = { + menuItemId: id, + orderItem: { + tempId: Date.now().toString(), + deliveryStatus: '', + isPaid: false + } + }; + return { ...prevOrder, items: [ ...prevOrder.items, - { - menuItemId: id, - orderItem: { id: Date.now(), deliveryStatus: '', isPaid: false }, - }, + newOrderItem ], }; }); diff --git a/src/domain/locations.ts b/src/domain/locations.ts index fd15412..e4349f6 100644 --- a/src/domain/locations.ts +++ b/src/domain/locations.ts @@ -11,8 +11,8 @@ export type Location = Omit, 'menuMode' | 'cu }; export type NewLocation = InferInsertModel; -export const locationIdSchema = z.coerce.number().positive().int(); -export type LocationId = z.infer; +export type LocationId = Location['id']; +export const locationIdSchema = z.custom(); export const LOCATION_SLUG_LENGTH = 8; export const locationSlugSchema = z.coerce diff --git a/src/domain/order-items.ts b/src/domain/order-items.ts index bdec58a..f894c61 100644 --- a/src/domain/order-items.ts +++ b/src/domain/order-items.ts @@ -17,10 +17,16 @@ export type DeliveryStatusId = (typeof deliveryStatusValues)[number]; export type OrderItem = InferSelectModel; -export const orderItemIdSchema = z.coerce.number(); -export type OrderItemId = z.infer; +export type OrderItemId = OrderItem['id'] +export const orderItemIdSchema = z.custom(); export interface PublicOrderItem { menuItemId: MenuItemId; - orderItem: { id?: OrderItemId } & Pick; + orderItem: { + /** + * Temporary client-side only ID for tracking items not ordered yet. + */ + tempId?: string, + id?: OrderItemId + } & Pick; } diff --git a/src/domain/orders.ts b/src/domain/orders.ts index ec2c301..cf93a40 100644 --- a/src/domain/orders.ts +++ b/src/domain/orders.ts @@ -2,24 +2,17 @@ import { type InferSelectModel } from 'drizzle-orm'; import { z } from 'zod'; import { type CurrencyId } from '~/domain/currencies'; import { type PublicOrderItem } from '~/domain/order-items'; - import { type orders } from '~/server/db/schema'; export const PREPAID_STATUSES = ['draft', 'paid'] as const; export type Order = InferSelectModel; -export type PublicOrder = z.infer & { currencyId: CurrencyId }; - -export type PublicOrderWithItems = Order & { - items: PublicOrderItem[]; -}; - -export const orderIdSchema = z.coerce.string(); -export type OrderId = z.infer; +export type OrderId = Order['id']; +export const orderIdSchema = z.custom(); export const orderFormSchema = z.object({ - orderId: z.string().optional(), + orderId: orderIdSchema.optional(), locationId: z .number({ required_error: 'Location ID is required', @@ -27,3 +20,15 @@ export const orderFormSchema = z.object({ .min(0, 'Location Id must be positive'), items: z.array(z.custom()), }); + + +export type PublicOrderWithItems = Order & { + currencyId: CurrencyId + items: PublicOrderItem[]; +}; + +export const publicOrderWithItemsSchema = z.object({ + ...orderFormSchema.shape, + currencyId: z.custom(), + items: z.array(z.custom()), +}); \ No newline at end of file diff --git a/src/hooks/use-real-time.ts b/src/hooks/use-real-time.ts index eb3d059..6a7494d 100644 --- a/src/hooks/use-real-time.ts +++ b/src/hooks/use-real-time.ts @@ -1,20 +1,12 @@ import { useAtom } from 'jotai'; import { useEffect } from 'react'; import { orderAtom } from '~/app/p/[locationSlug]/_state/order-atom'; -import { type PublicOrder, type PublicOrderWithItems } from '~/domain/orders'; +import { OrderId, type PublicOrderWithItems } from '~/domain/orders'; import { useToast } from '~/hooks/use-toast'; import { CHANNELS, EVENTS, pusherClient } from '~/lib/pusher'; import { getTopPositionedToast } from '~/lib/toast-utils'; -//TODO revisit: -const convertToPublicOrder = (order: PublicOrderWithItems, currencyId = 'USD'): PublicOrder => ({ - locationId: order.locationId, - orderId: order.id.toString(), - items: order.items, - currencyId: currencyId as PublicOrder['currencyId'], -}); - -export function useRealTimeOrderUpdates(orderId: string | undefined, locationId: number) { +export function useRealTimeOrderUpdates(orderId: OrderId | undefined, locationId: number) { const [order, setOrder] = useAtom(orderAtom); const { toast } = useToast(); @@ -36,7 +28,7 @@ export function useRealTimeOrderUpdates(orderId: string | undefined, locationId: // Handle updates to the current order orderChannel.bind(EVENTS.ORDER_UPDATED, (data: PublicOrderWithItems) => { - setOrder(convertToPublicOrder(data, order.currencyId)); + setOrder(data); toast({ title: 'Order Updated', description: `Order #${orderId} has been updated`, @@ -46,7 +38,7 @@ export function useRealTimeOrderUpdates(orderId: string | undefined, locationId: // Handle updates to order items orderChannel.bind(EVENTS.ORDER_ITEM_UPDATED, (data: PublicOrderWithItems) => { - setOrder(convertToPublicOrder(data, order.currencyId)); + setOrder(data); }); return () => { diff --git a/src/lib/pusher.ts b/src/lib/pusher.ts index 0fd376e..b2883e1 100644 --- a/src/lib/pusher.ts +++ b/src/lib/pusher.ts @@ -1,5 +1,6 @@ import PusherServer from 'pusher'; import PusherClient from 'pusher-js'; +import { OrderId } from '~/domain/orders'; import { env } from '~/env'; // Server-side Pusher instance (only import in server components) @@ -32,5 +33,5 @@ export const EVENTS = { // Channel types export const CHANNELS = { location: (locationId: number) => `location-${locationId}`, - order: (orderId: string) => `order-${orderId}`, + order: (orderId: OrderId) => `order-${orderId}`, } as const; diff --git a/src/server/queries/orders.ts b/src/server/queries/orders.ts index 7253bdd..b55b66f 100644 --- a/src/server/queries/orders.ts +++ b/src/server/queries/orders.ts @@ -1,23 +1,27 @@ -import { sql } from 'drizzle-orm'; +import { eq, sql } from 'drizzle-orm'; import { unstable_cache } from 'next/cache'; import { type z } from 'zod'; +import { type CurrencyId } from '~/domain/currencies'; import type { LocationId } from '~/domain/locations'; import { type PublicOrderItem } from '~/domain/order-items'; -import { type orderFormSchema, type OrderId, type PublicOrderWithItems } from '~/domain/orders'; +import { orderIdSchema, publicOrderWithItemsSchema, type OrderId, type PublicOrderWithItems } from '~/domain/orders'; import { TAGS } from '~/domain/tags'; import { AppError } from '~/lib/error-utils.server'; import { db } from '~/server/db'; import { orderItems, orders } from '~/server/db/schema'; import { getLocationForCurrentUserOrThrow } from '~/server/queries/locations'; -// function generateUniqueOrderNumber(): string { -// const timestamp = new Date().getTime().toString(36).toUpperCase(); -// const randomStr = Math.random().toString(36).substring(2, 6).toUpperCase(); -// return `ORD-${timestamp}${randomStr}`; -// } - -export async function createOrder(data: z.infer): Promise { +export async function createOrder(data: z.infer): Promise { return await db.transaction(async (tx) => { + // Get the location to get its currency + const location = await tx.query.locations.findFirst({ + where: (locations, { eq }) => eq(locations.id, data.locationId), + }); + + if (!location) { + throw new AppError({ internalMessage: `Location ${data.locationId} not found` }); + } + const [order] = await tx .insert(orders) .values({ @@ -60,14 +64,31 @@ export async function createOrder(data: z.infer): Promis } const orderWithItems: PublicOrderWithItems = { ...order, + currencyId: location.currencyId as CurrencyId, items: insertedItems, }; return orderWithItems; }); } -export async function updateOrder(data: z.infer): Promise { +export async function updateOrder(data: z.infer): Promise { + + const orderIdValidationResult = orderIdSchema.safeParse(data.orderId); + if (!orderIdValidationResult.success) { + throw new AppError({ publicMessage: `Invalid Order ID` }); + } + const validatedOrderId = orderIdValidationResult.data; + return await db.transaction(async (tx) => { + // Get the location to get its currency + const location = await tx.query.locations.findFirst({ + where: (locations, { eq }) => eq(locations.id, data.locationId), + }); + + if (!location) { + throw new AppError({ internalMessage: `Location ${data.locationId} not found` }); + } + const itemsToInsert = data.items?.filter((item) => item.orderItem.id === undefined) ?? []; const itemsAlreadyOrdered = data.items?.filter((item) => item.orderItem.id !== undefined) ?? []; const insertedItems: PublicOrderItem[] = []; @@ -76,7 +97,7 @@ export async function updateOrder(data: z.infer): Promis const [insertedItem] = await tx .insert(orderItems) .values({ - orderId: Number(data.orderId), //TODO review + orderId: validatedOrderId, menuItemId: item.menuItemId, deliveryStatus: 'pending', isPaid: false, @@ -98,71 +119,62 @@ export async function updateOrder(data: z.infer): Promis } } - const [order] = await tx - .select() - .from(orders) - .where(sql`${orders.id} = ${Number(data.orderId)}`); + const order = await getOrderById(location.id, validatedOrderId) if (!order) { - throw new AppError({ internalMessage: 'Order not found after update' }); + throw new AppError({ internalMessage: 'Could not find order to update' }); } + // Combine existing and new items + const allItems = [...itemsAlreadyOrdered, ...insertedItems].sort((a, b) => { + return (a.orderItem.id ?? 0) - (b.orderItem.id ?? 0); + }); + const orderWithItems: PublicOrderWithItems = { ...order, - items: [...itemsAlreadyOrdered, ...insertedItems].sort((a, b) => { - return (a.orderItem.id ?? 0) - (b.orderItem.id ?? 0); - }), + currencyId: location.currencyId as CurrencyId, + items: allItems, }; return orderWithItems; }); } -export const getOpenOrdersByLocation = async (locationId: LocationId): Promise => { - const items = await db.query.orders.findMany({ - where: (orders, { eq }) => eq(orders.locationId, locationId), +export async function getOpenOrdersByLocation(locationId: LocationId): Promise { + // Get the location to get its currency + const location = await db.query.locations.findFirst({ + where: (locations, { eq }) => eq(locations.id, locationId), + }); + + if (!location) { + throw new AppError({ internalMessage: `Location ${locationId} not found` }); + } + + const rows = await db.query.orders.findMany({ with: { orderItems: true, }, + where: (orders, { eq }) => eq(orders.locationId, locationId), }); - const ordersWithItems: PublicOrderWithItems[] = items.map((order) => ({ - id: order.id, - locationId: order.locationId, - createdAt: order.createdAt, - updatedAt: order.updatedAt, - items: order.orderItems - .map((orderItem) => ({ - menuItemId: orderItem.menuItemId, - orderItem: { - id: orderItem.id, - deliveryStatus: orderItem.deliveryStatus, - isPaid: orderItem.isPaid, - createdAt: orderItem.createdAt, - }, - })) - .sort((a, b) => { - return a.orderItem.id - b.orderItem.id; - }), - })); - return ordersWithItems; -} - -export const getCachedOpenOrdersByLocation = async (locationId: LocationId): Promise => { - // Validate location access before caching - const validLocation = await getLocationForCurrentUserOrThrow(locationId); + return rows.map((row): PublicOrderWithItems => { + const items: PublicOrderItem[] = row.orderItems.map((orderItem) => ({ + menuItemId: orderItem.menuItemId, + orderItem: { + id: orderItem.id, + deliveryStatus: orderItem.deliveryStatus, + isPaid: orderItem.isPaid, + }, + })).sort((a, b) => { + return (a.orderItem.id ?? 0) - (b.orderItem.id ?? 0); + }); - return unstable_cache( - async () => { - const items = await getOpenOrdersByLocation(validLocation.id); - return items; - }, - [TAGS.locationOpenOrders(locationId)], - { - tags: [TAGS.locationOpenOrders(locationId)], - revalidate: 60, // Cache for 60 seconds - }, - )(); -}; + return { + ...row, + currencyId: location.currencyId as CurrencyId, + items, + }; + }); +} export async function getOrderById(locationId: LocationId, orderId: OrderId): Promise { const validLocation = await getLocationForCurrentUserOrThrow(locationId); @@ -183,6 +195,7 @@ export async function getOrderById(locationId: LocationId, orderId: OrderId): Pr locationId: order.locationId, createdAt: order.createdAt, updatedAt: order.updatedAt, + currencyId: validLocation.currencyId as CurrencyId, items: order.orderItems.map((orderItem) => ({ menuItemId: orderItem.menuItemId, orderItem: { From 93fa79e73dc55c85e1eb8d3aa294d7c8b1109b59 Mon Sep 17 00:00:00 2001 From: dopoto Date: Wed, 4 Jun 2025 14:55:49 +0300 Subject: [PATCH 12/21] prettier --- src/app/actions/placeOrderAction.ts | 4 +- src/app/actions/updateOrderAction.ts | 4 +- .../updateOrderItemDeliveryStatusAction.ts | 13 ++-- .../_components/JotaiProviderWrapper.tsx | 2 +- .../_components/OrderItemsList.tsx | 8 ++- .../PublicFooterInteractiveMode.tsx | 2 +- src/app/p/[locationSlug]/_state/order-atom.ts | 4 +- src/app/p/[locationSlug]/layout.tsx | 5 +- .../live/_components/OpenOrdersList.tsx | 13 ++-- .../live/_components/OrderCard.tsx | 26 ++++---- src/components/public/PublicMenuItem.tsx | 11 ++-- src/domain/order-items.ts | 6 +- src/domain/orders.ts | 5 +- src/hooks/use-real-time.ts | 4 +- src/lib/pusher.ts | 2 +- src/server/queries/order-items.ts | 16 +++-- src/server/queries/orders.ts | 60 ++++++++++--------- 17 files changed, 95 insertions(+), 90 deletions(-) diff --git a/src/app/actions/placeOrderAction.ts b/src/app/actions/placeOrderAction.ts index a7faf50..ca9a76e 100644 --- a/src/app/actions/placeOrderAction.ts +++ b/src/app/actions/placeOrderAction.ts @@ -5,9 +5,9 @@ import { headers } from 'next/headers'; import { type z } from 'zod'; import { notifyOrderCreated } from '~/app/api/realtime/notifications'; import { type menuFormSchema } from '~/domain/menus'; -import { orderFormSchema, publicOrderWithItemsSchema, type PublicOrderWithItems } from '~/domain/orders'; +import { publicOrderWithItemsSchema, type PublicOrderWithItems } from '~/domain/orders'; import { AppError } from '~/lib/error-utils.server'; -import { type FormState, processFormErrors } from '~/lib/form-state'; +import { processFormErrors, type FormState } from '~/lib/form-state'; import { createOrder } from '~/server/queries/orders'; export const placeOrderAction = async ( diff --git a/src/app/actions/updateOrderAction.ts b/src/app/actions/updateOrderAction.ts index 23305e0..5bc2074 100644 --- a/src/app/actions/updateOrderAction.ts +++ b/src/app/actions/updateOrderAction.ts @@ -5,9 +5,9 @@ import { headers } from 'next/headers'; import { type z } from 'zod'; import { notifyOrderUpdated } from '~/app/api/realtime/notifications'; import { type menuFormSchema } from '~/domain/menus'; -import { orderFormSchema, publicOrderWithItemsSchema, type PublicOrderWithItems } from '~/domain/orders'; +import { publicOrderWithItemsSchema, type PublicOrderWithItems } from '~/domain/orders'; import { AppError } from '~/lib/error-utils.server'; -import { type FormState, processFormErrors } from '~/lib/form-state'; +import { processFormErrors, type FormState } from '~/lib/form-state'; import { updateOrder } from '~/server/queries/orders'; export const updateOrderAction = async ( diff --git a/src/app/actions/updateOrderItemDeliveryStatusAction.ts b/src/app/actions/updateOrderItemDeliveryStatusAction.ts index 8bf91c5..6040333 100644 --- a/src/app/actions/updateOrderItemDeliveryStatusAction.ts +++ b/src/app/actions/updateOrderItemDeliveryStatusAction.ts @@ -4,14 +4,17 @@ import * as Sentry from '@sentry/nextjs'; import { headers } from 'next/headers'; import { notifyOrderUpdated } from '~/app/api/realtime/notifications'; import { orderItemIdSchema, type DeliveryStatusId } from '~/domain/order-items'; -import { PublicOrderWithItems } from '~/domain/orders'; +import { type PublicOrderWithItems } from '~/domain/orders'; import { AppError } from '~/lib/error-utils.server'; import { getLocationForCurrentUserOrThrow } from '~/server/queries/locations'; import { updateOrderItemStatus } from '~/server/queries/order-items'; import { getOrderById } from '~/server/queries/orders'; export const updateOrderItemDeliveryStatusAction = async ( - locationId: number, orderItemId: number, status: DeliveryStatusId): Promise => { + locationId: number, + orderItemId: number, + status: DeliveryStatusId, +): Promise => { 'use server'; return await Sentry.withServerActionInstrumentation( 'updateOrderItemDeliveryStatusAction', @@ -52,6 +55,6 @@ export const updateOrderItemDeliveryStatusAction = async ( }); return order; - } - ) -} + }, + ); +}; diff --git a/src/app/p/[locationSlug]/_components/JotaiProviderWrapper.tsx b/src/app/p/[locationSlug]/_components/JotaiProviderWrapper.tsx index 2f004d4..ed5d1cf 100644 --- a/src/app/p/[locationSlug]/_components/JotaiProviderWrapper.tsx +++ b/src/app/p/[locationSlug]/_components/JotaiProviderWrapper.tsx @@ -12,7 +12,7 @@ import dynamic from 'next/dynamic'; import type { ComponentType } from 'react'; import { menuItemsAtom } from '~/app/p/[locationSlug]/_state/menu-items-atom'; import type { MenuItem } from '~/domain/menu-items'; -import { PublicOrderWithItems } from '~/domain/orders'; +import { type PublicOrderWithItems } from '~/domain/orders'; let DevTools: ComponentType | null = null; diff --git a/src/app/p/[locationSlug]/_components/OrderItemsList.tsx b/src/app/p/[locationSlug]/_components/OrderItemsList.tsx index 2956f50..0664b6e 100644 --- a/src/app/p/[locationSlug]/_components/OrderItemsList.tsx +++ b/src/app/p/[locationSlug]/_components/OrderItemsList.tsx @@ -5,12 +5,11 @@ import { orderAtom } from '~/app/p/[locationSlug]/_state/order-atom'; import { CURRENCIES } from '~/domain/currencies'; import { type PublicOrderItem } from '~/domain/order-items'; -export function OrderItemsList(props: { items: PublicOrderItem[], onDelete?: (orderItemTempId: string) => void }) { +export function OrderItemsList(props: { items: PublicOrderItem[]; onDelete?: (orderItemTempId: string) => void }) { const [order] = useAtom(orderAtom); const [menuItems] = useAtom(menuItemsAtom); const currency = CURRENCIES[order.currencyId]; - return ( <> {props.items?.map((item, index) => { @@ -18,7 +17,10 @@ export function OrderItemsList(props: { items: PublicOrderItem[], onDelete?: (or const { name, price } = menuItem; return (
- {props.onDelete && props.onDelete?.(item.orderItem.tempId ?? '')} />} 1 x {name}, {price} {currency?.symbol} + {props.onDelete && ( + props.onDelete?.(item.orderItem.tempId ?? '')} /> + )}{' '} + 1 x {name}, {price} {currency?.symbol}
); })} diff --git a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx index 1028ad8..bddc1ca 100644 --- a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx +++ b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx @@ -33,7 +33,7 @@ function OrderSummaryItem(props: { quantity: number; description: string; childr export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; locationId: LocationId }) { const [order, setOrder] = useAtom(orderAtom); - const [menuItems,] = useAtom(menuItemsAtom); + const [menuItems] = useAtom(menuItemsAtom); const [isLoading, setIsLoading] = useState(false); const { toast } = useToast(); diff --git a/src/app/p/[locationSlug]/_state/order-atom.ts b/src/app/p/[locationSlug]/_state/order-atom.ts index 963e8c7..7eedf1b 100644 --- a/src/app/p/[locationSlug]/_state/order-atom.ts +++ b/src/app/p/[locationSlug]/_state/order-atom.ts @@ -1,5 +1,5 @@ import { atom } from 'jotai'; -import { PublicOrderWithItems } from '~/domain/orders'; +import { type PublicOrderWithItems } from '~/domain/orders'; export const orderAtom = atom({ id: 0, @@ -7,6 +7,6 @@ export const orderAtom = atom({ updatedAt: null, locationId: 0, currencyId: 'USD', - items: [] + items: [], }); orderAtom.debugLabel = 'orderAtom'; diff --git a/src/app/p/[locationSlug]/layout.tsx b/src/app/p/[locationSlug]/layout.tsx index 22b0a3e..c219105 100644 --- a/src/app/p/[locationSlug]/layout.tsx +++ b/src/app/p/[locationSlug]/layout.tsx @@ -65,9 +65,7 @@ export default async function Layout({ params, children }: { params: Params; chi
-
- {children} -
+
{children}
)} - ); } diff --git a/src/app/u/[locationId]/live/_components/OpenOrdersList.tsx b/src/app/u/[locationId]/live/_components/OpenOrdersList.tsx index e2eca6a..32df39a 100644 --- a/src/app/u/[locationId]/live/_components/OpenOrdersList.tsx +++ b/src/app/u/[locationId]/live/_components/OpenOrdersList.tsx @@ -59,11 +59,12 @@ export async function OpenOrdersList(props: { locationId: LocationId }) { throw error instanceof AppError ? error : new AppError({ - internalMessage: `Unexpected error in OpenOrdersList: ${typeof error === 'object' && error !== null && 'toString' in error - ? (error as { toString: () => string }).toString() - : String(error) - }`, - publicMessage: 'Failed to load orders. Please try refreshing the page.', - }); + internalMessage: `Unexpected error in OpenOrdersList: ${ + typeof error === 'object' && error !== null && 'toString' in error + ? (error as { toString: () => string }).toString() + : String(error) + }`, + publicMessage: 'Failed to load orders. Please try refreshing the page.', + }); } } diff --git a/src/app/u/[locationId]/live/_components/OrderCard.tsx b/src/app/u/[locationId]/live/_components/OrderCard.tsx index f3744a9..dea7e83 100644 --- a/src/app/u/[locationId]/live/_components/OrderCard.tsx +++ b/src/app/u/[locationId]/live/_components/OrderCard.tsx @@ -6,15 +6,15 @@ import { useState } from 'react'; import { ThreeStateToggle, type ThreeStateToggleSelectedItem } from '~/components/ThreeStateToggle'; import { Card } from '~/components/ui/card'; import { type LocationId } from '~/domain/locations'; +import { type DeliveryStatusId, type OrderItemId } from '~/domain/order-items'; import { type PublicOrderWithItems } from '~/domain/orders'; import { type menuItems } from '~/server/db/schema'; import { updateOrderItemDeliveryStatusAction } from '../../../../actions/updateOrderItemDeliveryStatusAction'; -import { type DeliveryStatusId, type OrderItemId } from '~/domain/order-items'; const ITEM_STATE: Record = { - 'canceled': 0, - 'pending': 1, - 'delivered': 2, + canceled: 0, + pending: 1, + delivered: 2, }; export function OrderCard({ @@ -26,13 +26,12 @@ export function OrderCard({ locationId: LocationId; menuItemsMap: Map>; }) { - const [isUpdating, setIsUpdating] = useState(false); + const [, setIsUpdating] = useState(false); async function handleItemStateChange(state: ThreeStateToggleSelectedItem, orderItemId: OrderItemId) { - - const status = Object.keys(ITEM_STATE).find( - key => ITEM_STATE[key as DeliveryStatusId] === state - ) as DeliveryStatusId | undefined; + const status = Object.keys(ITEM_STATE).find((key) => ITEM_STATE[key as DeliveryStatusId] === state) as + | DeliveryStatusId + | undefined; if (!status) return; @@ -44,7 +43,6 @@ export function OrderCard({ } finally { setIsUpdating(false); } - } return ( @@ -57,12 +55,10 @@ export function OrderCard({
{order.items.map((item) => { - const itemState: ThreeStateToggleSelectedItem = ITEM_STATE[item.orderItem.deliveryStatus as DeliveryStatusId] || 1; + const itemState: ThreeStateToggleSelectedItem = + ITEM_STATE[item.orderItem.deliveryStatus as DeliveryStatusId] || 1; return ( -
+

[{item.orderItem.id}]{menuItemsMap.get(item.menuItemId)?.name ?? 'Unknown Item'} diff --git a/src/components/public/PublicMenuItem.tsx b/src/components/public/PublicMenuItem.tsx index 56e39f4..bf63335 100644 --- a/src/components/public/PublicMenuItem.tsx +++ b/src/components/public/PublicMenuItem.tsx @@ -7,7 +7,7 @@ import { Badge } from '~/components/ui/badge'; import { CURRENCIES, type CurrencyId } from '~/domain/currencies'; import { type MenuItem } from '~/domain/menu-items'; import { MENU_MODES, type MenuModeId } from '~/domain/menu-modes'; -import { PublicOrderItem } from '~/domain/order-items'; +import { type PublicOrderItem } from '~/domain/order-items'; import { toast } from '~/hooks/use-toast'; import { getTopPositionedToast } from '~/lib/toast-utils'; @@ -26,16 +26,13 @@ export function PublicMenuItem(props: { item: MenuItem; currencyId: CurrencyId; orderItem: { tempId: Date.now().toString(), deliveryStatus: '', - isPaid: false - } + isPaid: false, + }, }; return { ...prevOrder, - items: [ - ...prevOrder.items, - newOrderItem - ], + items: [...prevOrder.items, newOrderItem], }; }); diff --git a/src/domain/order-items.ts b/src/domain/order-items.ts index f894c61..b078a2f 100644 --- a/src/domain/order-items.ts +++ b/src/domain/order-items.ts @@ -17,7 +17,7 @@ export type DeliveryStatusId = (typeof deliveryStatusValues)[number]; export type OrderItem = InferSelectModel; -export type OrderItemId = OrderItem['id'] +export type OrderItemId = OrderItem['id']; export const orderItemIdSchema = z.custom(); export interface PublicOrderItem { @@ -26,7 +26,7 @@ export interface PublicOrderItem { /** * Temporary client-side only ID for tracking items not ordered yet. */ - tempId?: string, - id?: OrderItemId + tempId?: string; + id?: OrderItemId; } & Pick; } diff --git a/src/domain/orders.ts b/src/domain/orders.ts index cf93a40..00f0c0c 100644 --- a/src/domain/orders.ts +++ b/src/domain/orders.ts @@ -21,9 +21,8 @@ export const orderFormSchema = z.object({ items: z.array(z.custom()), }); - export type PublicOrderWithItems = Order & { - currencyId: CurrencyId + currencyId: CurrencyId; items: PublicOrderItem[]; }; @@ -31,4 +30,4 @@ export const publicOrderWithItemsSchema = z.object({ ...orderFormSchema.shape, currencyId: z.custom(), items: z.array(z.custom()), -}); \ No newline at end of file +}); diff --git a/src/hooks/use-real-time.ts b/src/hooks/use-real-time.ts index 6a7494d..830aaeb 100644 --- a/src/hooks/use-real-time.ts +++ b/src/hooks/use-real-time.ts @@ -1,7 +1,7 @@ import { useAtom } from 'jotai'; import { useEffect } from 'react'; import { orderAtom } from '~/app/p/[locationSlug]/_state/order-atom'; -import { OrderId, type PublicOrderWithItems } from '~/domain/orders'; +import { type OrderId, type PublicOrderWithItems } from '~/domain/orders'; import { useToast } from '~/hooks/use-toast'; import { CHANNELS, EVENTS, pusherClient } from '~/lib/pusher'; import { getTopPositionedToast } from '~/lib/toast-utils'; @@ -18,7 +18,7 @@ export function useRealTimeOrderUpdates(orderId: OrderId | undefined, locationId const orderChannel = pusherClient.subscribe(CHANNELS.order(orderId)); // Handle new orders in the location - locationChannel.bind(EVENTS.ORDER_CREATED, (data: PublicOrderWithItems) => { + locationChannel.bind(EVENTS.ORDER_CREATED, () => { toast({ title: 'New Order', description: `Order #${orderId} has been created`, diff --git a/src/lib/pusher.ts b/src/lib/pusher.ts index b2883e1..c7e47bf 100644 --- a/src/lib/pusher.ts +++ b/src/lib/pusher.ts @@ -1,6 +1,6 @@ import PusherServer from 'pusher'; import PusherClient from 'pusher-js'; -import { OrderId } from '~/domain/orders'; +import { type OrderId } from '~/domain/orders'; import { env } from '~/env'; // Server-side Pusher instance (only import in server components) diff --git a/src/server/queries/order-items.ts b/src/server/queries/order-items.ts index 47034c1..256b2f3 100644 --- a/src/server/queries/order-items.ts +++ b/src/server/queries/order-items.ts @@ -3,10 +3,14 @@ import type { LocationId } from '~/domain/locations'; import type { DeliveryStatusId, OrderItem, OrderItemId } from '~/domain/order-items'; import { AppError } from '~/lib/error-utils.server'; import { db } from '~/server/db'; -import { orderItems, orders } from '~/server/db/schema'; +import { orderItems } from '~/server/db/schema'; import { getLocationForCurrentUserOrThrow } from '~/server/queries/locations'; -export async function updateOrderItemStatus(locationId: LocationId, orderItemId: OrderItemId, status: DeliveryStatusId): Promise { +export async function updateOrderItemStatus( + locationId: LocationId, + orderItemId: OrderItemId, + status: DeliveryStatusId, +): Promise { const validLocation = await getLocationForCurrentUserOrThrow(locationId); // First verify that the order item belongs to this location through its order @@ -15,10 +19,10 @@ export async function updateOrderItemStatus(locationId: LocationId, orderItemId: with: { order: { columns: { - locationId: true - } - } - } + locationId: true, + }, + }, + }, }); if (!orderItem || orderItem.order.locationId !== validLocation.id) { diff --git a/src/server/queries/orders.ts b/src/server/queries/orders.ts index b55b66f..1eeb081 100644 --- a/src/server/queries/orders.ts +++ b/src/server/queries/orders.ts @@ -1,11 +1,14 @@ -import { eq, sql } from 'drizzle-orm'; -import { unstable_cache } from 'next/cache'; +import { sql } from 'drizzle-orm'; import { type z } from 'zod'; import { type CurrencyId } from '~/domain/currencies'; import type { LocationId } from '~/domain/locations'; import { type PublicOrderItem } from '~/domain/order-items'; -import { orderIdSchema, publicOrderWithItemsSchema, type OrderId, type PublicOrderWithItems } from '~/domain/orders'; -import { TAGS } from '~/domain/tags'; +import { + orderIdSchema, + type OrderId, + type PublicOrderWithItems, + type publicOrderWithItemsSchema, +} from '~/domain/orders'; import { AppError } from '~/lib/error-utils.server'; import { db } from '~/server/db'; import { orderItems, orders } from '~/server/db/schema'; @@ -72,7 +75,6 @@ export async function createOrder(data: z.infer): Promise { - const orderIdValidationResult = orderIdSchema.safeParse(data.orderId); if (!orderIdValidationResult.success) { throw new AppError({ publicMessage: `Invalid Order ID` }); @@ -119,7 +121,7 @@ export async function updateOrder(data: z.infer { - const items: PublicOrderItem[] = row.orderItems.map((orderItem) => ({ - menuItemId: orderItem.menuItemId, - orderItem: { - id: orderItem.id, - deliveryStatus: orderItem.deliveryStatus, - isPaid: orderItem.isPaid, - }, - })).sort((a, b) => { - return (a.orderItem.id ?? 0) - (b.orderItem.id ?? 0); - }); + const items: PublicOrderItem[] = row.orderItems + .map((orderItem) => ({ + menuItemId: orderItem.menuItemId, + orderItem: { + id: orderItem.id, + deliveryStatus: orderItem.deliveryStatus, + isPaid: orderItem.isPaid, + }, + })) + .sort((a, b) => { + return (a.orderItem.id ?? 0) - (b.orderItem.id ?? 0); + }); return { ...row, @@ -195,17 +199,19 @@ export async function getOrderById(locationId: LocationId, orderId: OrderId): Pr locationId: order.locationId, createdAt: order.createdAt, updatedAt: order.updatedAt, - currencyId: validLocation.currencyId as CurrencyId, - items: order.orderItems.map((orderItem) => ({ - menuItemId: orderItem.menuItemId, - orderItem: { - id: orderItem.id, - deliveryStatus: orderItem.deliveryStatus, - isPaid: orderItem.isPaid, - }, - })).sort((a, b) => { - return (a.orderItem.id ?? 0) - (b.orderItem.id ?? 0); - }), + currencyId: validLocation.currencyId, + items: order.orderItems + .map((orderItem) => ({ + menuItemId: orderItem.menuItemId, + orderItem: { + id: orderItem.id, + deliveryStatus: orderItem.deliveryStatus, + isPaid: orderItem.isPaid, + }, + })) + .sort((a, b) => { + return (a.orderItem.id ?? 0) - (b.orderItem.id ?? 0); + }), }; return orderWithItems; } From 1fec2b978cb231f8e58184b1b39b219544dcd3e2 Mon Sep 17 00:00:00 2001 From: dopoto Date: Wed, 4 Jun 2025 15:15:29 +0300 Subject: [PATCH 13/21] fix orderid --- .../_components/PublicFooterInteractiveMode.tsx | 6 ++++-- src/domain/orders.ts | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx index bddc1ca..e876538 100644 --- a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx +++ b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx @@ -16,6 +16,7 @@ import { Button } from '~/components/ui/button'; import { DrawerClose } from '~/components/ui/drawer'; import { type CurrencyId } from '~/domain/currencies'; import { type LocationId } from '~/domain/locations'; +import { PublicOrderWithItems } from '~/domain/orders'; import { useRealTimeOrderUpdates } from '~/hooks/use-real-time'; import { useToast } from '~/hooks/use-toast'; import { getTopPositionedToast } from '~/lib/toast-utils'; @@ -61,11 +62,12 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc className: getTopPositionedToast(), }); setOrder((prevOrder) => { - return { + const newOrder: PublicOrderWithItems = { ...prevOrder, - orderId: orderWithItems?.id ? String(orderWithItems.id) : undefined, //TODO review + id: orderWithItems?.id ?? 0, items: orderWithItems?.items ?? [], }; + return newOrder; }); } else { toast({ diff --git a/src/domain/orders.ts b/src/domain/orders.ts index 00f0c0c..f382125 100644 --- a/src/domain/orders.ts +++ b/src/domain/orders.ts @@ -12,7 +12,7 @@ export type OrderId = Order['id']; export const orderIdSchema = z.custom(); export const orderFormSchema = z.object({ - orderId: orderIdSchema.optional(), + id: orderIdSchema.optional(), locationId: z .number({ required_error: 'Location ID is required', From 316c2142bdc1658af58b9b13bf91bdffb64068ac Mon Sep 17 00:00:00 2001 From: dopoto Date: Wed, 4 Jun 2025 15:42:19 +0300 Subject: [PATCH 14/21] fix id --- TODO.md | 4 +++- .../_components/PublicFooterInteractiveMode.tsx | 2 +- src/server/queries/orders.ts | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/TODO.md b/TODO.md index 830c65a..6f1d6a2 100644 --- a/TODO.md +++ b/TODO.md @@ -13,4 +13,6 @@ Errors with context Page titles Knip Use next-menu-test_* tables in non-prod -https://www.npmjs.com/package/@changesets/changelog-github \ No newline at end of file +https://www.npmjs.com/package/@changesets/changelog-github +Remotion.dev https://www.perplexity.ai/search/my-web-app-has-a-complicated-f-tnVvH4BWTQ6MktSeIgM9_g +Next.js Server Actions Supercharged (5 Must-Know Upgrades) https://www.youtube.com/watch?v=j-FB9oWTfsg&list=WL&index=14 \ No newline at end of file diff --git a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx index e876538..73c7da3 100644 --- a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx +++ b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx @@ -16,7 +16,7 @@ import { Button } from '~/components/ui/button'; import { DrawerClose } from '~/components/ui/drawer'; import { type CurrencyId } from '~/domain/currencies'; import { type LocationId } from '~/domain/locations'; -import { PublicOrderWithItems } from '~/domain/orders'; +import { type PublicOrderWithItems } from '~/domain/orders'; import { useRealTimeOrderUpdates } from '~/hooks/use-real-time'; import { useToast } from '~/hooks/use-toast'; import { getTopPositionedToast } from '~/lib/toast-utils'; diff --git a/src/server/queries/orders.ts b/src/server/queries/orders.ts index 1eeb081..f27e714 100644 --- a/src/server/queries/orders.ts +++ b/src/server/queries/orders.ts @@ -75,7 +75,7 @@ export async function createOrder(data: z.infer): Promise { - const orderIdValidationResult = orderIdSchema.safeParse(data.orderId); + const orderIdValidationResult = orderIdSchema.safeParse(data.id); if (!orderIdValidationResult.success) { throw new AppError({ publicMessage: `Invalid Order ID` }); } From 629ca453ba50352aef5fd214564aa967221e6c75 Mon Sep 17 00:00:00 2001 From: dopoto Date: Wed, 4 Jun 2025 16:30:58 +0300 Subject: [PATCH 15/21] wip --- .../PublicFooterInteractiveMode.tsx | 20 +++++++++++++++---- src/components/public/PublicMenuItem.tsx | 1 - src/domain/order-items.ts | 4 +++- src/server/queries/order-items.ts | 5 ++++- src/server/queries/orders.ts | 6 +++--- 5 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx index 73c7da3..fe803b2 100644 --- a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx +++ b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx @@ -16,6 +16,7 @@ import { Button } from '~/components/ui/button'; import { DrawerClose } from '~/components/ui/drawer'; import { type CurrencyId } from '~/domain/currencies'; import { type LocationId } from '~/domain/locations'; +import { DeliveryStatusId } from '~/domain/order-items'; import { type PublicOrderWithItems } from '~/domain/orders'; import { useRealTimeOrderUpdates } from '~/hooks/use-real-time'; import { useToast } from '~/hooks/use-toast'; @@ -124,9 +125,16 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc } }; - const draftItems = order.items.filter((item) => item.orderItem.deliveryStatus == ''); - const inPreparationItems = order.items.filter((item) => item.orderItem.deliveryStatus === 'pending'); - const deliveredItems = order.items.filter((item) => item.orderItem.deliveryStatus === 'delivered'); + const filteredItems = (deliveryStatus: DeliveryStatusId | null) => { + return order.items.filter((item) => { + return deliveryStatus == null ? item.orderItem.deliveryStatus == null : item.orderItem.deliveryStatus == deliveryStatus; + }); + }; + + const draftItems = filteredItems(null); + const inPreparationItems = filteredItems('pending'); + const deliveredItems = filteredItems('delivered'); + const cancelledItems = filteredItems('canceled'); const draftItemsSummary = ( @@ -149,7 +157,11 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc )} ); - const deliveredItemsSummary = ; + const deliveredItemsSummary = + {cancelledItems.length > 0 && ( + <>+ {cancelledItems.length} cancelled + )} + ; const collapsedContent = (

diff --git a/src/components/public/PublicMenuItem.tsx b/src/components/public/PublicMenuItem.tsx index bf63335..e5e2b6e 100644 --- a/src/components/public/PublicMenuItem.tsx +++ b/src/components/public/PublicMenuItem.tsx @@ -25,7 +25,6 @@ export function PublicMenuItem(props: { item: MenuItem; currencyId: CurrencyId; menuItemId: id, orderItem: { tempId: Date.now().toString(), - deliveryStatus: '', isPaid: false, }, }; diff --git a/src/domain/order-items.ts b/src/domain/order-items.ts index b078a2f..49baa9d 100644 --- a/src/domain/order-items.ts +++ b/src/domain/order-items.ts @@ -15,7 +15,9 @@ import { type orderItems } from '~/server/db/schema'; export const deliveryStatusValues = ['pending', 'delivered', 'canceled'] as const; export type DeliveryStatusId = (typeof deliveryStatusValues)[number]; -export type OrderItem = InferSelectModel; +export type OrderItem = Omit, 'deliveryStatus'> & { + deliveryStatus?: DeliveryStatusId +}; export type OrderItemId = OrderItem['id']; export const orderItemIdSchema = z.custom(); diff --git a/src/server/queries/order-items.ts b/src/server/queries/order-items.ts index 256b2f3..c03f1d5 100644 --- a/src/server/queries/order-items.ts +++ b/src/server/queries/order-items.ts @@ -48,5 +48,8 @@ export async function updateOrderItemStatus( }); } - return updatedOrderItem; + return { + ...updatedOrderItem, + deliveryStatus: updatedOrderItem.deliveryStatus as OrderItem['deliveryStatus'], + }; } diff --git a/src/server/queries/orders.ts b/src/server/queries/orders.ts index f27e714..1edef1e 100644 --- a/src/server/queries/orders.ts +++ b/src/server/queries/orders.ts @@ -2,7 +2,7 @@ import { sql } from 'drizzle-orm'; import { type z } from 'zod'; import { type CurrencyId } from '~/domain/currencies'; import type { LocationId } from '~/domain/locations'; -import { type PublicOrderItem } from '~/domain/order-items'; +import { OrderItem, type PublicOrderItem } from '~/domain/order-items'; import { orderIdSchema, type OrderId, @@ -164,7 +164,7 @@ export async function getOpenOrdersByLocation(locationId: LocationId): Promise

Date: Wed, 4 Jun 2025 16:50:50 +0300 Subject: [PATCH 16/21] revertr storybook --- TODO.md | 5 +- package.json | 12 +- pnpm-lock.yaml | 687 ++++++++++++++++++++++++++++++++++--------------- 3 files changed, 490 insertions(+), 214 deletions(-) diff --git a/TODO.md b/TODO.md index 6f1d6a2..9a4a49d 100644 --- a/TODO.md +++ b/TODO.md @@ -15,4 +15,7 @@ Knip Use next-menu-test_* tables in non-prod https://www.npmjs.com/package/@changesets/changelog-github Remotion.dev https://www.perplexity.ai/search/my-web-app-has-a-complicated-f-tnVvH4BWTQ6MktSeIgM9_g -Next.js Server Actions Supercharged (5 Must-Know Upgrades) https://www.youtube.com/watch?v=j-FB9oWTfsg&list=WL&index=14 \ No newline at end of file +Next.js Server Actions Supercharged (5 Must-Know Upgrades) https://www.youtube.com/watch?v=j-FB9oWTfsg&list=WL&index=14 +Storybook 9 +Storybook snapshot testing + pipeline integration +Zod 4 \ No newline at end of file diff --git a/package.json b/package.json index 4e4098e..5674595 100644 --- a/package.json +++ b/package.json @@ -92,13 +92,13 @@ "zod": "3.25.49" }, "devDependencies": { - "@chromatic-com/storybook": "4.0.0", + "@chromatic-com/storybook": "3.2.6", "@eslint/eslintrc": "^3.3.1", "@storybook/addon-essentials": "8.6.14", - "@storybook/addon-onboarding": "9.0.4", + "@storybook/addon-onboarding": "8.6.14", "@storybook/blocks": "8.6.14", - "@storybook/nextjs": "9.0.4", - "@storybook/react": "9.0.4", + "@storybook/nextjs": "8.6.14", + "@storybook/react": "8.6.14", "@storybook/test": "8.6.14", "@tailwindcss/postcss": "^4.1.8", "@testing-library/dom": "^10.4.0", @@ -115,7 +115,7 @@ "eslint-config-next": "^15.3.3", "eslint-config-prettier": "^10.1.5", "eslint-plugin-drizzle": "^0.2.3", - "eslint-plugin-storybook": "9.0.4", + "eslint-plugin-storybook": "^0.12.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "jotai-devtools": "^0.12.0", @@ -124,7 +124,7 @@ "prettier": "^3.5.3", "prettier-plugin-organize-imports": "4.1.0", "prettier-plugin-tailwindcss": "^0.6.12", - "storybook": "9.0.4", + "storybook": "8.6.14", "tailwindcss": "^4.1.8", "ts-jest": "^29.3.4", "ts-node": "^10.9.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 51ceeb4..645672e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -199,29 +199,29 @@ importers: version: 3.25.49 devDependencies: '@chromatic-com/storybook': - specifier: 4.0.0 - version: 4.0.0(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + specifier: 3.2.6 + version: 3.2.6(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) '@eslint/eslintrc': specifier: ^3.3.1 version: 3.3.1 '@storybook/addon-essentials': specifier: 8.6.14 - version: 8.6.14(@types/react@19.1.6)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + version: 8.6.14(@types/react@19.1.6)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) '@storybook/addon-onboarding': - specifier: 9.0.4 - version: 9.0.4(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + specifier: 8.6.14 + version: 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) '@storybook/blocks': specifier: 8.6.14 - version: 8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + version: 8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) '@storybook/nextjs': - specifier: 9.0.4 - version: 9.0.4(babel-plugin-macros@3.1.0)(esbuild@0.25.2)(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.2)) + specifier: 8.6.14 + version: 8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.2)(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.2)) '@storybook/react': - specifier: 9.0.4 - version: 9.0.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) + specifier: 8.6.14 + version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) '@storybook/test': specifier: 8.6.14 - version: 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + version: 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) '@tailwindcss/postcss': specifier: ^4.1.8 version: 4.1.8 @@ -268,8 +268,8 @@ importers: specifier: ^0.2.3 version: 0.2.3(eslint@9.28.0(jiti@2.4.2)) eslint-plugin-storybook: - specifier: 9.0.4 - version: 9.0.4(eslint@9.28.0(jiti@2.4.2))(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) + specifier: ^0.12.0 + version: 0.12.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) jest: specifier: ^29.7.0 version: 29.7.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)) @@ -278,7 +278,7 @@ importers: version: 29.7.0(bufferutil@4.0.9) jotai-devtools: specifier: ^0.12.0 - version: 0.12.0(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(redux@5.0.1)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + version: 0.12.0(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(redux@5.0.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) knip: specifier: ^5.57.1 version: 5.57.1(@types/node@22.15.29)(typescript@5.8.3) @@ -295,8 +295,8 @@ importers: specifier: ^0.6.12 version: 0.6.12(prettier-plugin-organize-imports@4.1.0(prettier@3.5.3)(typescript@5.8.3))(prettier@3.5.3) storybook: - specifier: 9.0.4 - version: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + specifier: 8.6.14 + version: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) tailwindcss: specifier: ^4.1.8 version: 4.1.8 @@ -958,11 +958,11 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - '@chromatic-com/storybook@4.0.0': - resolution: {integrity: sha512-FfyMHK/lz/dHezWxwNZv4ReFORWVvv+bJx71NT2BSfLhOKOaoZnKJOe4QLyGxWAB7ynnedrM9V9qea3FPFj+rQ==} - engines: {node: '>=20.0.0', yarn: '>=1.22.18'} + '@chromatic-com/storybook@3.2.6': + resolution: {integrity: sha512-FDmn5Ry2DzQdik+eq2sp/kJMMT36Ewe7ONXUXM2Izd97c7r6R/QyGli8eyh/F0iyqVvbLveNYFyF0dBOJNwLqw==} + engines: {node: '>=16.0.0', yarn: '>=1.22.18'} peerDependencies: - storybook: ^0.0.0-0 || ^9.0.0 || ^9.1.0-0 + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 '@clerk/backend@1.34.0': resolution: {integrity: sha512-9rZ8hQJVpX5KX2bEpiuVXfpjhojQCiqCWADJDdCI0PCeKxn58Ep0JPYiIcczg4VKUc3a7jve9vXylykG2XajLQ==} @@ -1461,33 +1461,65 @@ packages: resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} engines: {node: '>=18.18'} + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + '@img/sharp-darwin-arm64@0.34.1': resolution: {integrity: sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + '@img/sharp-darwin-x64@0.34.1': resolution: {integrity: sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + '@img/sharp-libvips-darwin-arm64@1.1.0': resolution: {integrity: sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==} cpu: [arm64] os: [darwin] + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + '@img/sharp-libvips-darwin-x64@1.1.0': resolution: {integrity: sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==} cpu: [x64] os: [darwin] + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + '@img/sharp-libvips-linux-arm64@1.1.0': resolution: {integrity: sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==} cpu: [arm64] os: [linux] + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + '@img/sharp-libvips-linux-arm@1.1.0': resolution: {integrity: sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==} cpu: [arm] @@ -1498,73 +1530,146 @@ packages: cpu: [ppc64] os: [linux] + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + '@img/sharp-libvips-linux-s390x@1.1.0': resolution: {integrity: sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==} cpu: [s390x] os: [linux] + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + '@img/sharp-libvips-linux-x64@1.1.0': resolution: {integrity: sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==} cpu: [x64] os: [linux] + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + '@img/sharp-libvips-linuxmusl-arm64@1.1.0': resolution: {integrity: sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==} cpu: [arm64] os: [linux] + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + '@img/sharp-libvips-linuxmusl-x64@1.1.0': resolution: {integrity: sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==} cpu: [x64] os: [linux] + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + '@img/sharp-linux-arm64@0.34.1': resolution: {integrity: sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + '@img/sharp-linux-arm@0.34.1': resolution: {integrity: sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + '@img/sharp-linux-s390x@0.34.1': resolution: {integrity: sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + '@img/sharp-linux-x64@0.34.1': resolution: {integrity: sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + '@img/sharp-linuxmusl-arm64@0.34.1': resolution: {integrity: sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + '@img/sharp-linuxmusl-x64@0.34.1': resolution: {integrity: sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + '@img/sharp-wasm32@0.34.1': resolution: {integrity: sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + '@img/sharp-win32-ia32@0.34.1': resolution: {integrity: sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + '@img/sharp-win32-x64@0.34.1': resolution: {integrity: sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -1702,9 +1807,6 @@ packages: '@napi-rs/wasm-runtime@0.2.9': resolution: {integrity: sha512-OKRBiajrrxB9ATokgEQoG87Z25c67pCpYcCwmXYX8PBftC9pBfN18gnm/fh1wurSLEKIAt+QRFLFCQISrb66Jg==} - '@neoconfetti/react@1.0.0': - resolution: {integrity: sha512-klcSooChXXOzIm+SE5IISIAn3bYzYfPjbX7D7HoqZL84oAfgREeSg5vSIaSFH+DaGzzvImTyWe1OyrJ67vik4A==} - '@neondatabase/serverless@0.9.5': resolution: {integrity: sha512-siFas6gItqv6wD/pZnvdu34wEqgG3nSE6zWZdq5j2DEsa+VvX8i/5HXJOo06qrw5axPXn+lGCxeR+NLaSPIXug==} @@ -2832,10 +2934,10 @@ packages: peerDependencies: storybook: ^8.6.14 - '@storybook/addon-onboarding@9.0.4': - resolution: {integrity: sha512-RIQAAh2Dm+N/tmPRFVoeRpJDZpzr98AaKwTw6rNjkI1EXATUUT1x04SaIee5OEXnjyKtbQrWwleY3Fxc9a4LKg==} + '@storybook/addon-onboarding@8.6.14': + resolution: {integrity: sha512-bHdHiGJFigVcSzMIsNLHY5IODZHr+nKwyz5/QOZLMkLcGH2IaUbOJfm4RyGOaTTPsUtAKbdsVXNEG3Otf+qO9A==} peerDependencies: - storybook: ^9.0.4 + storybook: ^8.6.14 '@storybook/addon-outline@8.6.14': resolution: {integrity: sha512-CW857JvN6OxGWElqjlzJO2S69DHf+xO3WsEfT5mT3ZtIjmsvRDukdWfDU9bIYUFyA2lFvYjncBGjbK+I91XR7w==} @@ -2864,25 +2966,41 @@ packages: react-dom: optional: true - '@storybook/builder-webpack5@9.0.4': - resolution: {integrity: sha512-0od1TMg9Y4WWIuae/Lb7Uo5L+O/NCOG2/z1fzsp7hxURy4ST8LHBTiyUTeGT+IiymvK51Bi1ZDC0Kb/wImLOIw==} + '@storybook/builder-webpack5@8.6.14': + resolution: {integrity: sha512-YZYAqc6NBKoMTKZpjxnkMch6zDtMkBZdS/yaji1+wJX2QPFBwTbSh7SpeBxDp1S11gXSAJ4f1btUWeqSqo8nJA==} peerDependencies: - storybook: ^9.0.4 + storybook: ^8.6.14 typescript: '*' peerDependenciesMeta: typescript: optional: true - '@storybook/core-webpack@9.0.4': - resolution: {integrity: sha512-Fs+03PFbOmuqwokgFESfP9eUmRDLxPpeqhLdqXzUTj/xpzA2ti4bu0Sq/BHSss6VvzdS0Tj9za+TcoxhfQwU5g==} + '@storybook/components@8.6.14': + resolution: {integrity: sha512-HNR2mC5I4Z5ek8kTrVZlIY/B8gJGs5b3XdZPBPBopTIN6U/YHXiDyOjY3JlaS4fSG1fVhp/Qp1TpMn1w/9m1pw==} peerDependencies: - storybook: ^9.0.4 + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + + '@storybook/core-webpack@8.6.14': + resolution: {integrity: sha512-iG7r8osNKabSGBbuJuSeMWKbU+ilt5PvzTYkClcYaagla/DliXkXvfywA6jOugVk/Cpx+c6tVKlPfjLcaQHwmw==} + peerDependencies: + storybook: ^8.6.14 + + '@storybook/core@8.6.14': + resolution: {integrity: sha512-1P/w4FSNRqP8j3JQBOi3yGt8PVOgSRbP66Ok520T78eJBeqx9ukCfl912PQZ7SPbW3TIunBwLXMZOjZwBB/JmA==} + peerDependencies: + prettier: ^2 || ^3 + peerDependenciesMeta: + prettier: + optional: true '@storybook/csf-plugin@8.6.14': resolution: {integrity: sha512-dErtc9teAuN+eelN8FojzFE635xlq9cNGGGEu0WEmMUQ4iJ8pingvBO1N8X3scz4Ry7KnxX++NNf3J3gpxS8qQ==} peerDependencies: storybook: ^8.6.14 + '@storybook/csf@0.1.13': + resolution: {integrity: sha512-7xOOwCLGB3ebM87eemep89MYRFTko+D8qE7EdAAq74lgdqRR5cOUtYWJLjO2dLtP94nqoOdHJo6MdLLKzg412Q==} + '@storybook/global@5.0.0': resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} @@ -2898,14 +3016,19 @@ packages: peerDependencies: storybook: ^8.6.14 - '@storybook/nextjs@9.0.4': - resolution: {integrity: sha512-O7omt9AR28NXRJpl0KIKbp8u/G5GFBl/VRvfXaeXnNFzwolJReRZ11PjKmNHwWKReP2WhKDrGzSMDgCR9E37mQ==} - engines: {node: '>=20.0.0'} + '@storybook/manager-api@8.6.14': + resolution: {integrity: sha512-ez0Zihuy17udLbfHZQXkGqwtep0mSGgHcNzGN7iZrMP1m+VmNo+7aGCJJdvXi7+iU3yq8weXSQFWg5DqWgLS7g==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + + '@storybook/nextjs@8.6.14': + resolution: {integrity: sha512-HbOOpwxJxO8nIDBvEQL3Pt51GHxnSeVxQ/WApr1HCT5Ffu6KCHz8WVsX56taHdigxjonSq0NTnog+aTIP06Nkw==} + engines: {node: '>=18.0.0'} peerDependencies: - next: ^14.1.0 || ^15.0.0 + next: ^13.5.0 || ^14.0.0 || ^15.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^9.0.4 + storybook: ^8.6.14 typescript: '*' webpack: ^5.0.0 peerDependenciesMeta: @@ -2914,18 +3037,23 @@ packages: webpack: optional: true - '@storybook/preset-react-webpack@9.0.4': - resolution: {integrity: sha512-hJdXkFO0knrwC6VCjCLVu3dhMKukINfpABm9rlYHjEuB7d9CRJU5qrOnzKoj1ubkteohqsKuyIsR6x6d4paLSQ==} - engines: {node: '>=20.0.0'} + '@storybook/preset-react-webpack@8.6.14': + resolution: {integrity: sha512-M7Q6ErNx7N2hQorTz0OLa3YV8nc8OcvkDlCxqqnkHPGQNEIWEpeDvq3wn2OvZlrHDpchyuiquGXZ8aztVtBP2g==} + engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^9.0.4 + storybook: ^8.6.14 typescript: '*' peerDependenciesMeta: typescript: optional: true + '@storybook/preview-api@8.6.14': + resolution: {integrity: sha512-2GhcCd4dNMrnD7eooEfvbfL4I83qAqEyO0CO7JQAmIO6Rxb9BsOLLI/GD5HkvQB73ArTJ+PT50rfaO820IExOQ==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0': resolution: {integrity: sha512-KUqXC3oa9JuQ0kZJLBhVdS4lOneKTOopnNBK4tUAgoxWQ3u/IjzdueZjFr7gyBrXMoU6duutk3RQR9u8ZpYJ4Q==} peerDependencies: @@ -2939,22 +3067,18 @@ packages: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta storybook: ^8.6.14 - '@storybook/react-dom-shim@9.0.4': - resolution: {integrity: sha512-KZYb0/7VzWfCupiioFyFCITDixSeEpuww95VjanAxlwkjq78ufWZ4MnlXk9vzVDghRQN3+JoNEvTCJXN37KWjQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^9.0.4 - - '@storybook/react@9.0.4': - resolution: {integrity: sha512-fBpVnvyEzs5fU5KjVhgY6ZcA4SyNbtZwhM7E8mbaEm+DKQvhV+SBXaDcT/FzTRR5srp4DyjOMUEqKcN9un1Dvw==} - engines: {node: '>=20.0.0'} + '@storybook/react@8.6.14': + resolution: {integrity: sha512-BOepx5bBFwl/CPI+F+LnmMmsG1wQYmrX/UQXgUbHQUU9Tj7E2ndTnNbpIuSLc8IrM03ru+DfwSg1Co3cxWtT+g==} + engines: {node: '>=18.0.0'} peerDependencies: + '@storybook/test': 8.6.14 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: ^9.0.4 - typescript: '>= 4.9.x' + storybook: ^8.6.14 + typescript: '>= 4.2.x' peerDependenciesMeta: + '@storybook/test': + optional: true typescript: optional: true @@ -2963,6 +3087,11 @@ packages: peerDependencies: storybook: ^8.6.14 + '@storybook/theming@8.6.14': + resolution: {integrity: sha512-r4y+LsiB37V5hzpQo+BM10PaCsp7YlZ0YcZzQP1OCkPlYXmUAFy2VvDKaFRpD8IeNPKug2u4iFm/laDEbs03dg==} + peerDependencies: + storybook: ^8.2.0 || ^8.3.0-0 || ^8.4.0-0 || ^8.5.0-0 || ^8.6.0-0 + '@stripe/react-stripe-js@3.7.0': resolution: {integrity: sha512-PYls/2S9l0FF+2n0wHaEJsEU8x7CmBagiH7zYOsxbBlLIHEsqUIQ4MlIAbV9Zg6xwT8jlYdlRIyBTHmO3yM7kQ==} peerDependencies: @@ -3152,12 +3281,6 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' - '@testing-library/user-event@14.6.1': - resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} - engines: {node: '>=12', npm: '>=6'} - peerDependencies: - '@testing-library/dom': '>=7.21.4' - '@tootallnate/once@2.0.0': resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} @@ -3458,33 +3581,21 @@ packages: '@vitest/expect@2.0.5': resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} - '@vitest/expect@3.0.9': - resolution: {integrity: sha512-5eCqRItYgIML7NNVgJj6TVCmdzE7ZVgJhruW0ziSQV4V7PvLkDL1bBkBdcTs/VuIz0IxPb5da1IDSqc1TR9eig==} - '@vitest/pretty-format@2.0.5': resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} '@vitest/pretty-format@2.1.9': resolution: {integrity: sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==} - '@vitest/pretty-format@3.0.9': - resolution: {integrity: sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==} - '@vitest/spy@2.0.5': resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} - '@vitest/spy@3.0.9': - resolution: {integrity: sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ==} - '@vitest/utils@2.0.5': resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} '@vitest/utils@2.1.9': resolution: {integrity: sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==} - '@vitest/utils@3.0.9': - resolution: {integrity: sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==} - '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -3825,6 +3936,9 @@ packages: brorand@1.1.0: resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + browser-assert@1.2.1: + resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} + browserify-aes@1.2.0: resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} @@ -3939,8 +4053,8 @@ packages: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} - chromatic@12.0.0: - resolution: {integrity: sha512-X7v26BLfAzHCU92nxPsCuvt+MazmA7S6cN7pCRRhnDYChDxHES48YvXarOybLdlH9kNP/3lMyknu6iseTh0T9A==} + chromatic@11.29.0: + resolution: {integrity: sha512-yisBlntp9hHVj19lIQdpTlcYIXuU9H/DbFuu6tyWHmj6hWT2EtukCCcxYXL78XdQt1vm2GfIrtgtKpj/Rzmo4A==} hasBin: true peerDependencies: '@chromatic-com/cypress': ^0.*.* || ^1.0.0 @@ -4644,12 +4758,11 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-storybook@9.0.4: - resolution: {integrity: sha512-HdwbfgPkZKsWG859RQk4iROH8D4zGsXxH2C3/7RlqELoT+nZYtc1BzVWzDeMAHadSXRasX3J+O1/4HNyuPXpJw==} - engines: {node: '>=20.0.0'} + eslint-plugin-storybook@0.12.0: + resolution: {integrity: sha512-Lg5I0+npTgiYgZ4KSvGWGDFZi3eOCNJPaWX0c9rTEEXC5wvooOClsP9ZtbI4hhFKyKgYR877KiJxbRTSJq9gWA==} + engines: {node: '>= 18'} peerDependencies: eslint: '>=8' - storybook: ^9.0.4 eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} @@ -5100,8 +5213,8 @@ packages: resolution: {integrity: sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==} engines: {node: '>= 4'} - image-size@2.0.2: - resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} + image-size@1.2.1: + resolution: {integrity: sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==} engines: {node: '>=16.x'} hasBin: true @@ -5525,6 +5638,10 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + jsdoc-type-pratt-parser@4.1.0: + resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} + engines: {node: '>=12.0.0'} + jsdom@20.0.3: resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} engines: {node: '>=14'} @@ -6159,6 +6276,10 @@ packages: resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} engines: {node: '>=14.16'} + pnp-webpack-plugin@1.7.0: + resolution: {integrity: sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg==} + engines: {node: '>=6'} + polished@4.3.1: resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} engines: {node: '>=10'} @@ -6422,6 +6543,9 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -6815,6 +6939,10 @@ packages: resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} hasBin: true + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + sharp@0.34.1: resolution: {integrity: sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -6929,8 +7057,8 @@ packages: std-env@3.9.0: resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} - storybook@9.0.4: - resolution: {integrity: sha512-ncYRogaG5N2LNgrh2BoTzgizd3oYI3lTe8gqSi6Zk9P4z2P4wpOI4cNwIcw78ShDJ7v1Md5y0qrK/HnSB9vsKA==} + storybook@8.6.14: + resolution: {integrity: sha512-sVKbCj/OTx67jhmauhxc2dcr1P+yOgz/x3h0krwjyMgdc5Oubvxyg4NYDZmzAw+ym36g/lzH8N0Ccp4dwtdfxw==} hasBin: true peerDependencies: prettier: ^2 || ^3 @@ -7140,10 +7268,6 @@ packages: resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} engines: {node: '>=14.0.0'} - tinyrainbow@2.0.0: - resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} - engines: {node: '>=14.0.0'} - tinyspy@3.0.2: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} @@ -7223,6 +7347,15 @@ packages: '@swc/wasm': optional: true + ts-pnp@1.2.0: + resolution: {integrity: sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==} + engines: {node: '>=6'} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + tsconfig-paths-webpack-plugin@4.2.0: resolution: {integrity: sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==} engines: {node: '>=10.13.0'} @@ -8435,17 +8568,18 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} - '@chromatic-com/storybook@4.0.0(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + '@chromatic-com/storybook@3.2.6(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: - '@neoconfetti/react': 1.0.0 - chromatic: 12.0.0 + chromatic: 11.29.0 filesize: 10.1.6 jsonfile: 6.1.0 - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + react-confetti: 6.4.0(react@19.1.0) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) strip-ansi: 7.1.0 transitivePeerDependencies: - '@chromatic-com/cypress' - '@chromatic-com/playwright' + - react '@clerk/backend@1.34.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: @@ -8850,81 +8984,156 @@ snapshots: '@humanwhocodes/retry@0.4.2': {} + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + '@img/sharp-darwin-arm64@0.34.1': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.1.0 optional: true + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + '@img/sharp-darwin-x64@0.34.1': optionalDependencies: '@img/sharp-libvips-darwin-x64': 1.1.0 optional: true + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + '@img/sharp-libvips-darwin-arm64@1.1.0': optional: true + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + '@img/sharp-libvips-darwin-x64@1.1.0': optional: true + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + '@img/sharp-libvips-linux-arm64@1.1.0': optional: true + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + '@img/sharp-libvips-linux-arm@1.1.0': optional: true '@img/sharp-libvips-linux-ppc64@1.1.0': optional: true + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + '@img/sharp-libvips-linux-s390x@1.1.0': optional: true + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + '@img/sharp-libvips-linux-x64@1.1.0': optional: true + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + '@img/sharp-libvips-linuxmusl-arm64@1.1.0': optional: true + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + '@img/sharp-libvips-linuxmusl-x64@1.1.0': optional: true + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + '@img/sharp-linux-arm64@0.34.1': optionalDependencies: '@img/sharp-libvips-linux-arm64': 1.1.0 optional: true + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + '@img/sharp-linux-arm@0.34.1': optionalDependencies: '@img/sharp-libvips-linux-arm': 1.1.0 optional: true + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + '@img/sharp-linux-s390x@0.34.1': optionalDependencies: '@img/sharp-libvips-linux-s390x': 1.1.0 optional: true + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + '@img/sharp-linux-x64@0.34.1': optionalDependencies: '@img/sharp-libvips-linux-x64': 1.1.0 optional: true + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + '@img/sharp-linuxmusl-arm64@0.34.1': optionalDependencies: '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 optional: true + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + '@img/sharp-linuxmusl-x64@0.34.1': optionalDependencies: '@img/sharp-libvips-linuxmusl-x64': 1.1.0 optional: true + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.4.0 + optional: true + '@img/sharp-wasm32@0.34.1': dependencies: '@emnapi/runtime': 1.4.0 optional: true + '@img/sharp-win32-ia32@0.33.5': + optional: true + '@img/sharp-win32-ia32@0.34.1': optional: true + '@img/sharp-win32-x64@0.33.5': + optional: true + '@img/sharp-win32-x64@0.34.1': optional: true @@ -9171,8 +9380,6 @@ snapshots: '@tybys/wasm-util': 0.9.0 optional: true - '@neoconfetti/react@1.0.0': {} - '@neondatabase/serverless@0.9.5': dependencies: '@types/pg': 8.11.6 @@ -10294,111 +10501,120 @@ snapshots: '@standard-schema/utils@0.3.0': {} - '@storybook/addon-actions@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-actions@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 '@types/uuid': 9.0.8 dequal: 2.0.3 polished: 4.3.1 - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) uuid: 9.0.1 - '@storybook/addon-backgrounds@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-backgrounds@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/addon-controls@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-controls@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 dequal: 2.0.3 - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/addon-docs@8.6.14(@types/react@19.1.6)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-docs@8.6.14(@types/react@19.1.6)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@mdx-js/react': 3.1.0(@types/react@19.1.6)(react@19.1.0) - '@storybook/blocks': 8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/csf-plugin': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/react-dom-shim': 8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/blocks': 8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/csf-plugin': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/react-dom-shim': 8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-essentials@8.6.14(@types/react@19.1.6)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': - dependencies: - '@storybook/addon-actions': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/addon-backgrounds': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/addon-controls': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/addon-docs': 8.6.14(@types/react@19.1.6)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/addon-highlight': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/addon-measure': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/addon-outline': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/addon-toolbars': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) - '@storybook/addon-viewport': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + '@storybook/addon-essentials@8.6.14(@types/react@19.1.6)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + dependencies: + '@storybook/addon-actions': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-backgrounds': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-controls': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-docs': 8.6.14(@types/react@19.1.6)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-highlight': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-measure': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-outline': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-toolbars': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-viewport': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) ts-dedent: 2.2.0 transitivePeerDependencies: - '@types/react' - '@storybook/addon-highlight@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-highlight@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) - '@storybook/addon-measure@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-measure@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) tiny-invariant: 1.3.3 - '@storybook/addon-onboarding@9.0.4(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-onboarding@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) - '@storybook/addon-outline@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-outline@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/addon-toolbars@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-toolbars@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) - '@storybook/addon-viewport@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-viewport@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: memoizerific: 1.11.3 - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) - '@storybook/blocks@8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/blocks@8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/icons': 1.4.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) ts-dedent: 2.2.0 optionalDependencies: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@storybook/builder-webpack5@9.0.4(esbuild@0.25.2)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3)': + '@storybook/builder-webpack5@8.6.14(esbuild@0.25.2)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3)': dependencies: - '@storybook/core-webpack': 9.0.4(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/core-webpack': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@types/semver': 7.7.0 + browser-assert: 1.2.1 case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.4.3 + constants-browserify: 1.0.0 css-loader: 6.11.0(webpack@5.98.0(esbuild@0.25.2)) es-module-lexer: 1.6.0 fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.2)) html-webpack-plugin: 5.6.3(webpack@5.98.0(esbuild@0.25.2)) magic-string: 0.30.17 - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + path-browserify: 1.0.1 + process: 0.11.10 + semver: 7.7.2 + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) style-loader: 3.3.4(webpack@5.98.0(esbuild@0.25.2)) terser-webpack-plugin: 5.3.11(esbuild@0.25.2)(webpack@5.98.0(esbuild@0.25.2)) ts-dedent: 2.2.0 + url: 0.11.4 + util: 0.12.5 + util-deprecate: 1.0.2 webpack: 5.98.0(esbuild@0.25.2) webpack-dev-middleware: 6.1.3(webpack@5.98.0(esbuild@0.25.2)) webpack-hot-middleware: 2.26.1 @@ -10412,16 +10628,45 @@ snapshots: - uglify-js - webpack-cli - '@storybook/core-webpack@9.0.4(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/components@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + dependencies: + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + + '@storybook/core-webpack@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) ts-dedent: 2.2.0 - '@storybook/csf-plugin@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/core@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + '@storybook/theming': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + better-opn: 3.0.2 + browser-assert: 1.2.1 + esbuild: 0.25.2 + esbuild-register: 3.6.0(esbuild@0.25.2) + jsdoc-type-pratt-parser: 4.1.0 + process: 0.11.10 + recast: 0.23.11 + semver: 7.7.2 + util: 0.12.5 + ws: 8.18.0(bufferutil@4.0.9) + optionalDependencies: + prettier: 3.5.3 + transitivePeerDependencies: + - bufferutil + - storybook + - supports-color + - utf-8-validate + + '@storybook/csf-plugin@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + dependencies: + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) unplugin: 1.16.1 + '@storybook/csf@0.1.13': + dependencies: + type-fest: 2.19.0 + '@storybook/global@5.0.0': {} '@storybook/icons@1.4.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': @@ -10429,13 +10674,17 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - '@storybook/instrumenter@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/instrumenter@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 '@vitest/utils': 2.1.9 - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) - '@storybook/nextjs@9.0.4(babel-plugin-macros@3.1.0)(esbuild@0.25.2)(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.2))': + '@storybook/manager-api@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + dependencies: + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + + '@storybook/nextjs@8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.2)(next@15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(type-fest@4.41.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.2))': dependencies: '@babel/core': 7.26.9 '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.9) @@ -10451,16 +10700,19 @@ snapshots: '@babel/preset-typescript': 7.27.0(@babel/core@7.26.9) '@babel/runtime': 7.26.10 '@pmmmwh/react-refresh-webpack-plugin': 0.5.16(react-refresh@0.14.2)(type-fest@4.41.0)(webpack-hot-middleware@2.26.1)(webpack@5.98.0(esbuild@0.25.2)) - '@storybook/builder-webpack5': 9.0.4(esbuild@0.25.2)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) - '@storybook/preset-react-webpack': 9.0.4(esbuild@0.25.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) - '@storybook/react': 9.0.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) + '@storybook/builder-webpack5': 8.6.14(esbuild@0.25.2)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) + '@storybook/preset-react-webpack': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)))(esbuild@0.25.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) + '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) + '@storybook/test': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) '@types/semver': 7.7.0 babel-loader: 9.2.1(@babel/core@7.26.9)(webpack@5.98.0(esbuild@0.25.2)) css-loader: 6.11.0(webpack@5.98.0(esbuild@0.25.2)) - image-size: 2.0.2 + find-up: 5.0.0 + image-size: 1.2.1 loader-utils: 3.3.1 next: 15.3.2(@babel/core@7.26.9)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) node-polyfill-webpack-plugin: 2.0.1(webpack@5.98.0(esbuild@0.25.2)) + pnp-webpack-plugin: 1.7.0(typescript@5.8.3) postcss: 8.5.3 postcss-loader: 8.1.1(postcss@8.5.3)(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.2)) react: 19.1.0 @@ -10469,12 +10721,14 @@ snapshots: resolve-url-loader: 5.0.0 sass-loader: 14.2.1(webpack@5.98.0(esbuild@0.25.2)) semver: 7.7.2 - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) style-loader: 3.3.4(webpack@5.98.0(esbuild@0.25.2)) styled-jsx: 5.1.6(@babel/core@7.26.9)(babel-plugin-macros@3.1.0)(react@19.1.0) + ts-dedent: 2.2.0 tsconfig-paths: 4.2.0 tsconfig-paths-webpack-plugin: 4.2.0 optionalDependencies: + sharp: 0.33.5 typescript: 5.8.3 webpack: 5.98.0(esbuild@0.25.2) transitivePeerDependencies: @@ -10495,9 +10749,10 @@ snapshots: - webpack-hot-middleware - webpack-plugin-serve - '@storybook/preset-react-webpack@9.0.4(esbuild@0.25.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3)': + '@storybook/preset-react-webpack@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)))(esbuild@0.25.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3)': dependencies: - '@storybook/core-webpack': 9.0.4(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/core-webpack': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/react': 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3) '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.2)) '@types/semver': 7.7.0 find-up: 5.0.0 @@ -10507,18 +10762,23 @@ snapshots: react-dom: 19.1.0(react@19.1.0) resolve: 1.22.10 semver: 7.7.2 - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) tsconfig-paths: 4.2.0 webpack: 5.98.0(esbuild@0.25.2) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: + - '@storybook/test' - '@swc/core' - esbuild - supports-color - uglify-js - webpack-cli + '@storybook/preview-api@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + dependencies: + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.2))': dependencies: debug: 4.4.0 @@ -10533,38 +10793,41 @@ snapshots: transitivePeerDependencies: - supports-color - '@storybook/react-dom-shim@8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/react-dom-shim@8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) - '@storybook/react-dom-shim@9.0.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': - dependencies: - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) - - '@storybook/react@9.0.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3)': + '@storybook/react@8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)))(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3)': dependencies: + '@storybook/components': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) '@storybook/global': 5.0.0 - '@storybook/react-dom-shim': 9.0.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/manager-api': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/preview-api': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/react-dom-shim': 8.6.14(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/theming': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) optionalDependencies: + '@storybook/test': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) typescript: 5.8.3 - '@storybook/test@8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: '@storybook/global': 5.0.0 - '@storybook/instrumenter': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/instrumenter': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) '@testing-library/dom': 10.4.0 '@testing-library/jest-dom': 6.5.0 '@testing-library/user-event': 14.5.2(@testing-library/dom@10.4.0) '@vitest/expect': 2.0.5 '@vitest/spy': 2.0.5 - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) + + '@storybook/theming@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + dependencies: + storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3) '@stripe/react-stripe-js@3.7.0(@stripe/stripe-js@7.3.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: @@ -10727,10 +10990,6 @@ snapshots: dependencies: '@testing-library/dom': 10.4.0 - '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.0)': - dependencies: - '@testing-library/dom': 10.4.0 - '@tootallnate/once@2.0.0': {} '@tsconfig/node10@1.0.11': {} @@ -11088,13 +11347,6 @@ snapshots: chai: 5.2.0 tinyrainbow: 1.2.0 - '@vitest/expect@3.0.9': - dependencies: - '@vitest/spy': 3.0.9 - '@vitest/utils': 3.0.9 - chai: 5.2.0 - tinyrainbow: 2.0.0 - '@vitest/pretty-format@2.0.5': dependencies: tinyrainbow: 1.2.0 @@ -11103,18 +11355,10 @@ snapshots: dependencies: tinyrainbow: 1.2.0 - '@vitest/pretty-format@3.0.9': - dependencies: - tinyrainbow: 2.0.0 - '@vitest/spy@2.0.5': dependencies: tinyspy: 3.0.2 - '@vitest/spy@3.0.9': - dependencies: - tinyspy: 3.0.2 - '@vitest/utils@2.0.5': dependencies: '@vitest/pretty-format': 2.0.5 @@ -11128,12 +11372,6 @@ snapshots: loupe: 3.1.3 tinyrainbow: 1.2.0 - '@vitest/utils@3.0.9': - dependencies: - '@vitest/pretty-format': 3.0.9 - loupe: 3.1.3 - tinyrainbow: 2.0.0 - '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -11561,6 +11799,8 @@ snapshots: brorand@1.1.0: {} + browser-assert@1.2.1: {} + browserify-aes@1.2.0: dependencies: buffer-xor: 1.0.3 @@ -11708,7 +11948,7 @@ snapshots: chownr@3.0.0: {} - chromatic@12.0.0: {} + chromatic@11.29.0: {} chrome-trace-event@1.0.4: {} @@ -12485,11 +12725,12 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-storybook@9.0.4(eslint@9.28.0(jiti@2.4.2))(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3))(typescript@5.8.3): + eslint-plugin-storybook@0.12.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/utils': 8.32.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@storybook/csf': 0.1.13 + '@typescript-eslint/utils': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) eslint: 9.28.0(jiti@2.4.2) - storybook: 9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3) + ts-dedent: 2.2.0 transitivePeerDependencies: - supports-color - typescript @@ -12989,7 +13230,9 @@ snapshots: ignore@7.0.4: {} - image-size@2.0.2: {} + image-size@1.2.1: + dependencies: + queue: 6.0.2 immutable@4.3.7: {} @@ -13580,13 +13823,13 @@ snapshots: jiti@2.4.2: {} - jotai-devtools@0.12.0(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(redux@5.0.1)(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)): + jotai-devtools@0.12.0(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(redux@5.0.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)): dependencies: '@mantine/code-highlight': 7.17.7(@mantine/core@7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@7.17.7(react@19.1.0))(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/core': 7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@mantine/hooks': 7.17.7(react@19.1.0) '@redux-devtools/extension': 3.3.0(redux@5.0.1) - '@storybook/test': 8.6.14(storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/test': 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) clsx: 2.1.1 javascript-stringify: 2.1.0 jotai: 2.12.4(@types/react@19.1.6)(react@19.1.0) @@ -13622,6 +13865,8 @@ snapshots: dependencies: argparse: 2.0.1 + jsdoc-type-pratt-parser@4.1.0: {} + jsdom@20.0.3(bufferutil@4.0.9): dependencies: abab: 2.0.6 @@ -14277,6 +14522,12 @@ snapshots: dependencies: find-up: 6.3.0 + pnp-webpack-plugin@1.7.0(typescript@5.8.3): + dependencies: + ts-pnp: 1.2.0(typescript@5.8.3) + transitivePeerDependencies: + - typescript + polished@4.3.1: dependencies: '@babel/runtime': 7.26.10 @@ -14470,6 +14721,10 @@ snapshots: queue-microtask@1.2.3: {} + queue@6.0.2: + dependencies: + inherits: 2.0.4 + randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 @@ -14946,6 +15201,33 @@ snapshots: inherits: 2.0.4 safe-buffer: 5.2.1 + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.0.4 + semver: 7.7.2 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 + optional: true + sharp@0.34.1: dependencies: color: 4.2.3 @@ -15087,23 +15369,12 @@ snapshots: std-env@3.9.0: {} - storybook@9.0.4(@testing-library/dom@10.4.0)(bufferutil@4.0.9)(prettier@3.5.3): + storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3): dependencies: - '@storybook/global': 5.0.0 - '@testing-library/jest-dom': 6.6.3 - '@testing-library/user-event': 14.6.1(@testing-library/dom@10.4.0) - '@vitest/expect': 3.0.9 - '@vitest/spy': 3.0.9 - better-opn: 3.0.2 - esbuild: 0.25.2 - esbuild-register: 3.6.0(esbuild@0.25.2) - recast: 0.23.11 - semver: 7.7.2 - ws: 8.18.0(bufferutil@4.0.9) + '@storybook/core': 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) optionalDependencies: prettier: 3.5.3 transitivePeerDependencies: - - '@testing-library/dom' - bufferutil - supports-color - utf-8-validate @@ -15314,8 +15585,6 @@ snapshots: tinyrainbow@1.2.0: {} - tinyrainbow@2.0.0: {} - tinyspy@3.0.2: {} tmpl@1.0.5: {} @@ -15388,6 +15657,10 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + ts-pnp@1.2.0(typescript@5.8.3): + optionalDependencies: + typescript: 5.8.3 + tsconfig-paths-webpack-plugin@4.2.0: dependencies: chalk: 4.1.2 From b1aba3c3819a07ec0cd84c654cbb60dc47baf98c Mon Sep 17 00:00:00 2001 From: dopoto Date: Wed, 4 Jun 2025 17:54:48 +0300 Subject: [PATCH 17/21] 3state --- TODO.md | 3 +- .../live/_components/OrderCard.tsx | 42 +++++++++-- src/components/ThreeStateToggle.tsx | 74 +++++++++---------- src/domain/order-items.ts | 12 ++- src/domain/orders.ts | 4 +- src/server/queries/order-items.ts | 8 +- src/server/queries/orders.ts | 65 ++++++---------- 7 files changed, 102 insertions(+), 106 deletions(-) diff --git a/TODO.md b/TODO.md index 9a4a49d..0bb8a61 100644 --- a/TODO.md +++ b/TODO.md @@ -18,4 +18,5 @@ Remotion.dev https://www.perplexity.ai/search/my-web-app-has-a-complicated-f-tnV Next.js Server Actions Supercharged (5 Must-Know Upgrades) https://www.youtube.com/watch?v=j-FB9oWTfsg&list=WL&index=14 Storybook 9 Storybook snapshot testing + pipeline integration -Zod 4 \ No newline at end of file +Zod 4 +Shadcn registry \ No newline at end of file diff --git a/src/app/u/[locationId]/live/_components/OrderCard.tsx b/src/app/u/[locationId]/live/_components/OrderCard.tsx index dea7e83..61a8f80 100644 --- a/src/app/u/[locationId]/live/_components/OrderCard.tsx +++ b/src/app/u/[locationId]/live/_components/OrderCard.tsx @@ -3,7 +3,7 @@ import type { InferSelectModel } from 'drizzle-orm'; import { BanIcon, CircleCheckIcon, ClockIcon } from 'lucide-react'; import { useState } from 'react'; -import { ThreeStateToggle, type ThreeStateToggleSelectedItem } from '~/components/ThreeStateToggle'; +import { ThreeStateToggle, ThreeStateToggleMetadata, type ThreeStateToggleSelectedItem } from '~/components/ThreeStateToggle'; import { Card } from '~/components/ui/card'; import { type LocationId } from '~/domain/locations'; import { type DeliveryStatusId, type OrderItemId } from '~/domain/order-items'; @@ -26,7 +26,7 @@ export function OrderCard({ locationId: LocationId; menuItemsMap: Map>; }) { - const [, setIsUpdating] = useState(false); + const [itemIdBeingUpdated, setItemIdBeingUpdated] = useState(null); async function handleItemStateChange(state: ThreeStateToggleSelectedItem, orderItemId: OrderItemId) { const status = Object.keys(ITEM_STATE).find((key) => ITEM_STATE[key as DeliveryStatusId] === state) as @@ -36,12 +36,12 @@ export function OrderCard({ if (!status) return; try { - setIsUpdating(true); + setItemIdBeingUpdated(orderItemId); await updateOrderItemDeliveryStatusAction(locationId, orderItemId, status); } catch (error) { console.error('Failed to mark as pending:', error); } finally { - setIsUpdating(false); + setItemIdBeingUpdated(null); } } @@ -57,11 +57,34 @@ export function OrderCard({ {order.items.map((item) => { const itemState: ThreeStateToggleSelectedItem = ITEM_STATE[item.orderItem.deliveryStatus as DeliveryStatusId] || 1; + + const left: ThreeStateToggleMetadata = { + id: 0, + className: itemIdBeingUpdated === item.orderItem.id ? 'animate-spin text-gray-400' : 'text-gray-600', + labelWhenSelected: 'Marked as cancelled', + labelWhenNotSelected: 'Mark as cancelled', + component: , + }; + const center: ThreeStateToggleMetadata = { + id: 1, + className: itemIdBeingUpdated === item.orderItem.id ? 'animate-spin text-gray-400' : 'text-orange-500', + labelWhenSelected: 'Marked as in preparation', + labelWhenNotSelected: 'Mark as in preparation', + component: , + }; + const right: ThreeStateToggleMetadata = { + id: 2, + className: itemIdBeingUpdated === item.orderItem.id ? 'animate-spin text-gray-400' : 'text-green-600', + labelWhenSelected: 'Marked as delivered', + labelWhenNotSelected: 'Mark as delivered', + component: , + }; + return (

- [{item.orderItem.id}]{menuItemsMap.get(item.menuItemId)?.name ?? 'Unknown Item'} + {menuItemsMap.get(item.menuItemId)?.name ?? 'Unknown Item'}

${menuItemsMap.get(item.menuItemId)?.price ?? 'Unknown Item'} @@ -69,12 +92,15 @@ export function OrderCard({

handleItemStateChange(state, item.orderItem.id!)} size={44} - leftIcon={} - centerIcon={} - rightIcon={} + // leftIcon={} + // centerIcon={} + // rightIcon={} />
diff --git a/src/components/ThreeStateToggle.tsx b/src/components/ThreeStateToggle.tsx index 0db07c0..7788c02 100644 --- a/src/components/ThreeStateToggle.tsx +++ b/src/components/ThreeStateToggle.tsx @@ -5,10 +5,23 @@ import type React from 'react'; import { ChevronLeft, ChevronRight, Minus } from 'lucide-react'; import { cloneElement, isValidElement, useCallback, useEffect, useRef, useState } from 'react'; import { cn } from '~/lib/utils'; +import { Tooltip, TooltipContent, TooltipTrigger } from '~/components/ui/tooltip'; +import { idText } from 'typescript'; export type ThreeStateToggleSelectedItem = 0 | 1 | 2; +export type ThreeStateToggleMetadata = { + id: ThreeStateToggleSelectedItem; + component: React.ReactNode; + className?: string; + labelWhenSelected?: string; + labelWhenNotSelected?: string; +} + interface ThreeStateToggleProps { + left: ThreeStateToggleMetadata; + right: ThreeStateToggleMetadata; + center: ThreeStateToggleMetadata; leftIcon?: React.ReactNode; centerIcon?: React.ReactNode; rightIcon?: React.ReactNode; @@ -19,9 +32,12 @@ interface ThreeStateToggleProps { } export function ThreeStateToggle({ - leftIcon = , - centerIcon = , - rightIcon = , + // leftIcon = , + // centerIcon = , + // rightIcon = , + left, + center, + right, onStateChange, defaultState = 2, className, @@ -170,41 +186,23 @@ export function ThreeStateToggle({ }} /> - {/* Left state */} -
handleStateChange(0)} - > - {resizeIcon(leftIcon)} - Left state -
- - {/* Center state */} -
handleStateChange(1)} - > - {resizeIcon(centerIcon)} - Center state -
- - {/* Right state */} -
handleStateChange(2)} - > - {resizeIcon(rightIcon)} - Right state -
+ {[left, center, right].map((item) => { + const label = selectedState === item.id ? item.labelWhenSelected : item.labelWhenNotSelected + return ( +
handleStateChange(item.id)} + > + {resizeIcon(item.component)} + {label} +
+ ) + })}
); } diff --git a/src/domain/order-items.ts b/src/domain/order-items.ts index 49baa9d..9b7b9f2 100644 --- a/src/domain/order-items.ts +++ b/src/domain/order-items.ts @@ -1,12 +1,12 @@ -// export const PREPAID_STATUSES = ['draft', 'paid'] as const; -// export const POSTPAID_STATUSES = ['draft', 'ordered', 'delivered', 'paid'] as const; -// export const ORDER_ITEM_STATUSES = [...new Set([...POSTPAID_STATUSES, ...PREPAID_STATUSES])] as const; - import type { InferSelectModel } from 'drizzle-orm'; import z from 'zod'; import { type MenuItemId } from '~/domain/menu-items'; import { type orderItems } from '~/server/db/schema'; +// export const PREPAID_STATUSES = ['draft', 'paid'] as const; +// export const POSTPAID_STATUSES = ['draft', 'ordered', 'delivered', 'paid'] as const; +// export const ORDER_ITEM_STATUSES = [...new Set([...POSTPAID_STATUSES, ...PREPAID_STATUSES])] as const; + // type PostpaidOrderItemStatus = (typeof POSTPAID_STATUSES)[number]; // type PrepaidOrderItemStatus = (typeof PREPAID_STATUSES)[number]; @@ -15,9 +15,7 @@ import { type orderItems } from '~/server/db/schema'; export const deliveryStatusValues = ['pending', 'delivered', 'canceled'] as const; export type DeliveryStatusId = (typeof deliveryStatusValues)[number]; -export type OrderItem = Omit, 'deliveryStatus'> & { - deliveryStatus?: DeliveryStatusId -}; +export type OrderItem = Omit, 'deliveryStatus'> & { deliveryStatus?: DeliveryStatusId }; export type OrderItemId = OrderItem['id']; export const orderItemIdSchema = z.custom(); diff --git a/src/domain/orders.ts b/src/domain/orders.ts index f382125..85cc1fb 100644 --- a/src/domain/orders.ts +++ b/src/domain/orders.ts @@ -14,9 +14,7 @@ export const orderIdSchema = z.custom(); export const orderFormSchema = z.object({ id: orderIdSchema.optional(), locationId: z - .number({ - required_error: 'Location ID is required', - }) + .number({ required_error: 'Location ID is required' }) .min(0, 'Location Id must be positive'), items: z.array(z.custom()), }); diff --git a/src/server/queries/order-items.ts b/src/server/queries/order-items.ts index c03f1d5..e547f92 100644 --- a/src/server/queries/order-items.ts +++ b/src/server/queries/order-items.ts @@ -16,13 +16,7 @@ export async function updateOrderItemStatus( // First verify that the order item belongs to this location through its order const orderItem = await db.query.orderItems.findFirst({ where: eq(orderItems.id, orderItemId), - with: { - order: { - columns: { - locationId: true, - }, - }, - }, + with: { order: { columns: { locationId: true } } }, }); if (!orderItem || orderItem.order.locationId !== validLocation.id) { diff --git a/src/server/queries/orders.ts b/src/server/queries/orders.ts index 1edef1e..c151bec 100644 --- a/src/server/queries/orders.ts +++ b/src/server/queries/orders.ts @@ -2,7 +2,7 @@ import { sql } from 'drizzle-orm'; import { type z } from 'zod'; import { type CurrencyId } from '~/domain/currencies'; import type { LocationId } from '~/domain/locations'; -import { OrderItem, type PublicOrderItem } from '~/domain/order-items'; +import { DeliveryStatusId, OrderItem, type PublicOrderItem } from '~/domain/order-items'; import { orderIdSchema, type OrderId, @@ -14,17 +14,15 @@ import { db } from '~/server/db'; import { orderItems, orders } from '~/server/db/schema'; import { getLocationForCurrentUserOrThrow } from '~/server/queries/locations'; +// function generateUniqueOrderNumber(): string { +// const timestamp = new Date().getTime().toString(36).toUpperCase(); +// const randomStr = Math.random().toString(36).substring(2, 6).toUpperCase(); +// return `ORD-${timestamp}${randomStr}`; +// } + export async function createOrder(data: z.infer): Promise { + const validLocation = await getLocationForCurrentUserOrThrow(data.locationId); return await db.transaction(async (tx) => { - // Get the location to get its currency - const location = await tx.query.locations.findFirst({ - where: (locations, { eq }) => eq(locations.id, data.locationId), - }); - - if (!location) { - throw new AppError({ internalMessage: `Location ${data.locationId} not found` }); - } - const [order] = await tx .insert(orders) .values({ @@ -39,6 +37,7 @@ export async function createOrder(data: z.infer): Promise { + const validLocation = await getLocationForCurrentUserOrThrow(data.locationId); + const orderIdValidationResult = orderIdSchema.safeParse(data.id); if (!orderIdValidationResult.success) { throw new AppError({ publicMessage: `Invalid Order ID` }); @@ -82,18 +83,10 @@ export async function updateOrder(data: z.infer { - // Get the location to get its currency - const location = await tx.query.locations.findFirst({ - where: (locations, { eq }) => eq(locations.id, data.locationId), - }); - - if (!location) { - throw new AppError({ internalMessage: `Location ${data.locationId} not found` }); - } - const itemsToInsert = data.items?.filter((item) => item.orderItem.id === undefined) ?? []; const itemsAlreadyOrdered = data.items?.filter((item) => item.orderItem.id !== undefined) ?? []; const insertedItems: PublicOrderItem[] = []; + const pending: DeliveryStatusId = 'pending'; if (itemsToInsert) { for (const item of itemsToInsert) { const [insertedItem] = await tx @@ -101,7 +94,7 @@ export async function updateOrder(data: z.infer { return (a.orderItem.id ?? 0) - (b.orderItem.id ?? 0); }); const orderWithItems: PublicOrderWithItems = { ...order, - currencyId: location.currencyId as CurrencyId, + currencyId: validLocation.currencyId as CurrencyId, items: allItems, }; return orderWithItems; @@ -142,19 +134,10 @@ export async function updateOrder(data: z.infer { - // Get the location to get its currency - const location = await db.query.locations.findFirst({ - where: (locations, { eq }) => eq(locations.id, locationId), - }); - - if (!location) { - throw new AppError({ internalMessage: `Location ${locationId} not found` }); - } + const validLocation = await getLocationForCurrentUserOrThrow(locationId); const rows = await db.query.orders.findMany({ - with: { - orderItems: true, - }, + with: { orderItems: true }, where: (orders, { eq }) => eq(orders.locationId, locationId), }); @@ -174,7 +157,7 @@ export async function getOpenOrdersByLocation(locationId: LocationId): Promise

and(eq(orders.locationId, validLocation.id), eq(orders.id, Number(orderId))), - with: { - orderItems: true, - }, + with: { orderItems: true }, }); if (!order) { From b60c421391ffc77754765e28d3632fc728356db0 Mon Sep 17 00:00:00 2001 From: dopoto Date: Thu, 5 Jun 2025 07:36:38 +0300 Subject: [PATCH 18/21] w --- src/app/u/[locationId]/live/_components/OrderCard.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/u/[locationId]/live/_components/OrderCard.tsx b/src/app/u/[locationId]/live/_components/OrderCard.tsx index 61a8f80..c9e1160 100644 --- a/src/app/u/[locationId]/live/_components/OrderCard.tsx +++ b/src/app/u/[locationId]/live/_components/OrderCard.tsx @@ -56,7 +56,7 @@ export function OrderCard({

{order.items.map((item) => { const itemState: ThreeStateToggleSelectedItem = - ITEM_STATE[item.orderItem.deliveryStatus as DeliveryStatusId] || 1; + ITEM_STATE[item.orderItem.deliveryStatus as DeliveryStatusId]; const left: ThreeStateToggleMetadata = { id: 0, From 49b006f1dc51a2c51e8de0f78cff5b3142ca5185 Mon Sep 17 00:00:00 2001 From: dopoto Date: Thu, 5 Jun 2025 07:38:03 +0300 Subject: [PATCH 19/21] pret --- .../PublicFooterInteractiveMode.tsx | 16 +++++++------ .../live/_components/OrderCard.tsx | 24 ++++++++++++------- src/components/ThreeStateToggle.tsx | 13 +++------- src/domain/order-items.ts | 4 +++- src/domain/orders.ts | 4 +--- src/server/queries/orders.ts | 9 ++++--- 6 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx index fe803b2..6ad7c57 100644 --- a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx +++ b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx @@ -16,7 +16,7 @@ import { Button } from '~/components/ui/button'; import { DrawerClose } from '~/components/ui/drawer'; import { type CurrencyId } from '~/domain/currencies'; import { type LocationId } from '~/domain/locations'; -import { DeliveryStatusId } from '~/domain/order-items'; +import { type DeliveryStatusId } from '~/domain/order-items'; import { type PublicOrderWithItems } from '~/domain/orders'; import { useRealTimeOrderUpdates } from '~/hooks/use-real-time'; import { useToast } from '~/hooks/use-toast'; @@ -127,7 +127,9 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc const filteredItems = (deliveryStatus: DeliveryStatusId | null) => { return order.items.filter((item) => { - return deliveryStatus == null ? item.orderItem.deliveryStatus == null : item.orderItem.deliveryStatus == deliveryStatus; + return deliveryStatus == null + ? item.orderItem.deliveryStatus == null + : item.orderItem.deliveryStatus == deliveryStatus; }); }; @@ -157,11 +159,11 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc )} ); - const deliveredItemsSummary = - {cancelledItems.length > 0 && ( - <>+ {cancelledItems.length} cancelled - )} - ; + const deliveredItemsSummary = ( + + {cancelledItems.length > 0 && <>+ {cancelledItems.length} cancelled} + + ); const collapsedContent = (
diff --git a/src/app/u/[locationId]/live/_components/OrderCard.tsx b/src/app/u/[locationId]/live/_components/OrderCard.tsx index c9e1160..7d1698d 100644 --- a/src/app/u/[locationId]/live/_components/OrderCard.tsx +++ b/src/app/u/[locationId]/live/_components/OrderCard.tsx @@ -3,7 +3,11 @@ import type { InferSelectModel } from 'drizzle-orm'; import { BanIcon, CircleCheckIcon, ClockIcon } from 'lucide-react'; import { useState } from 'react'; -import { ThreeStateToggle, ThreeStateToggleMetadata, type ThreeStateToggleSelectedItem } from '~/components/ThreeStateToggle'; +import { + ThreeStateToggle, + type ThreeStateToggleMetadata, + type ThreeStateToggleSelectedItem, +} from '~/components/ThreeStateToggle'; import { Card } from '~/components/ui/card'; import { type LocationId } from '~/domain/locations'; import { type DeliveryStatusId, type OrderItemId } from '~/domain/order-items'; @@ -55,26 +59,28 @@ export function OrderCard({
{order.items.map((item) => { - const itemState: ThreeStateToggleSelectedItem = - ITEM_STATE[item.orderItem.deliveryStatus as DeliveryStatusId]; + const itemState: ThreeStateToggleSelectedItem = ITEM_STATE[item.orderItem.deliveryStatus!]; const left: ThreeStateToggleMetadata = { id: 0, - className: itemIdBeingUpdated === item.orderItem.id ? 'animate-spin text-gray-400' : 'text-gray-600', + className: + itemIdBeingUpdated === item.orderItem.id ? 'animate-spin text-gray-400' : 'text-gray-600', labelWhenSelected: 'Marked as cancelled', labelWhenNotSelected: 'Mark as cancelled', component: , }; const center: ThreeStateToggleMetadata = { id: 1, - className: itemIdBeingUpdated === item.orderItem.id ? 'animate-spin text-gray-400' : 'text-orange-500', + className: + itemIdBeingUpdated === item.orderItem.id ? 'animate-spin text-gray-400' : 'text-orange-500', labelWhenSelected: 'Marked as in preparation', labelWhenNotSelected: 'Mark as in preparation', component: , }; const right: ThreeStateToggleMetadata = { id: 2, - className: itemIdBeingUpdated === item.orderItem.id ? 'animate-spin text-gray-400' : 'text-green-600', + className: + itemIdBeingUpdated === item.orderItem.id ? 'animate-spin text-gray-400' : 'text-green-600', labelWhenSelected: 'Marked as delivered', labelWhenNotSelected: 'Mark as delivered', component: , @@ -98,9 +104,9 @@ export function OrderCard({ defaultState={itemState} onStateChange={(state) => handleItemStateChange(state, item.orderItem.id!)} size={44} - // leftIcon={} - // centerIcon={} - // rightIcon={} + // leftIcon={} + // centerIcon={} + // rightIcon={} />
diff --git a/src/components/ThreeStateToggle.tsx b/src/components/ThreeStateToggle.tsx index 7788c02..7f014ba 100644 --- a/src/components/ThreeStateToggle.tsx +++ b/src/components/ThreeStateToggle.tsx @@ -1,12 +1,8 @@ 'use client'; import type React from 'react'; - -import { ChevronLeft, ChevronRight, Minus } from 'lucide-react'; import { cloneElement, isValidElement, useCallback, useEffect, useRef, useState } from 'react'; import { cn } from '~/lib/utils'; -import { Tooltip, TooltipContent, TooltipTrigger } from '~/components/ui/tooltip'; -import { idText } from 'typescript'; export type ThreeStateToggleSelectedItem = 0 | 1 | 2; @@ -16,7 +12,7 @@ export type ThreeStateToggleMetadata = { className?: string; labelWhenSelected?: string; labelWhenNotSelected?: string; -} +}; interface ThreeStateToggleProps { left: ThreeStateToggleMetadata; @@ -32,9 +28,6 @@ interface ThreeStateToggleProps { } export function ThreeStateToggle({ - // leftIcon = , - // centerIcon = , - // rightIcon = , left, center, right, @@ -187,7 +180,7 @@ export function ThreeStateToggle({ /> {[left, center, right].map((item) => { - const label = selectedState === item.id ? item.labelWhenSelected : item.labelWhenNotSelected + const label = selectedState === item.id ? item.labelWhenSelected : item.labelWhenNotSelected; return (
{label}
- ) + ); })}
); diff --git a/src/domain/order-items.ts b/src/domain/order-items.ts index 9b7b9f2..07577ce 100644 --- a/src/domain/order-items.ts +++ b/src/domain/order-items.ts @@ -15,7 +15,9 @@ import { type orderItems } from '~/server/db/schema'; export const deliveryStatusValues = ['pending', 'delivered', 'canceled'] as const; export type DeliveryStatusId = (typeof deliveryStatusValues)[number]; -export type OrderItem = Omit, 'deliveryStatus'> & { deliveryStatus?: DeliveryStatusId }; +export type OrderItem = Omit, 'deliveryStatus'> & { + deliveryStatus?: DeliveryStatusId; +}; export type OrderItemId = OrderItem['id']; export const orderItemIdSchema = z.custom(); diff --git a/src/domain/orders.ts b/src/domain/orders.ts index 85cc1fb..d9f03f1 100644 --- a/src/domain/orders.ts +++ b/src/domain/orders.ts @@ -13,9 +13,7 @@ export const orderIdSchema = z.custom(); export const orderFormSchema = z.object({ id: orderIdSchema.optional(), - locationId: z - .number({ required_error: 'Location ID is required' }) - .min(0, 'Location Id must be positive'), + locationId: z.number({ required_error: 'Location ID is required' }).min(0, 'Location Id must be positive'), items: z.array(z.custom()), }); diff --git a/src/server/queries/orders.ts b/src/server/queries/orders.ts index c151bec..30493b4 100644 --- a/src/server/queries/orders.ts +++ b/src/server/queries/orders.ts @@ -1,8 +1,7 @@ import { sql } from 'drizzle-orm'; import { type z } from 'zod'; -import { type CurrencyId } from '~/domain/currencies'; import type { LocationId } from '~/domain/locations'; -import { DeliveryStatusId, OrderItem, type PublicOrderItem } from '~/domain/order-items'; +import { type DeliveryStatusId, type OrderItem, type PublicOrderItem } from '~/domain/order-items'; import { orderIdSchema, type OrderId, @@ -66,7 +65,7 @@ export async function createOrder(data: z.infer Date: Thu, 5 Jun 2025 08:10:59 +0300 Subject: [PATCH 20/21] cleanup --- TODO.md | 4 +++- .../updateOrderItemDeliveryStatusAction.ts | 2 ++ .../PublicFooterInteractiveMode.tsx | 4 +--- .../[locationId]/_components/DashboardCard.tsx | 13 ------------- .../live/_components/LiveOrders.tsx | 18 ------------------ .../live/_components/OrderCard.tsx | 7 +++---- 6 files changed, 9 insertions(+), 39 deletions(-) delete mode 100644 src/app/u/[locationId]/_components/DashboardCard.tsx diff --git a/TODO.md b/TODO.md index 0bb8a61..6452813 100644 --- a/TODO.md +++ b/TODO.md @@ -19,4 +19,6 @@ Next.js Server Actions Supercharged (5 Must-Know Upgrades) https://www.youtube.c Storybook 9 Storybook snapshot testing + pipeline integration Zod 4 -Shadcn registry \ No newline at end of file +Shadcn registry +GLobal open orders checker in Admin -> show toast, count badge over open orders menu icon +Server actions errors - show friendly error message in modal / parallel route - \ No newline at end of file diff --git a/src/app/actions/updateOrderItemDeliveryStatusAction.ts b/src/app/actions/updateOrderItemDeliveryStatusAction.ts index 6040333..da965a1 100644 --- a/src/app/actions/updateOrderItemDeliveryStatusAction.ts +++ b/src/app/actions/updateOrderItemDeliveryStatusAction.ts @@ -23,6 +23,8 @@ export const updateOrderItemDeliveryStatusAction = async ( recordResponse: true, }, async () => { + //TODO try / catch ,change return + const orderItemIdValidationResult = orderItemIdSchema.safeParse(orderItemId); if (!orderItemIdValidationResult.success) { throw new AppError({ publicMessage: `Invalid order item id` }); diff --git a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx index 6ad7c57..9ec4a41 100644 --- a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx +++ b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx @@ -127,9 +127,7 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc const filteredItems = (deliveryStatus: DeliveryStatusId | null) => { return order.items.filter((item) => { - return deliveryStatus == null - ? item.orderItem.deliveryStatus == null - : item.orderItem.deliveryStatus == deliveryStatus; + return item.orderItem.deliveryStatus == deliveryStatus; }); }; diff --git a/src/app/u/[locationId]/_components/DashboardCard.tsx b/src/app/u/[locationId]/_components/DashboardCard.tsx deleted file mode 100644 index 1de97bf..0000000 --- a/src/app/u/[locationId]/_components/DashboardCard.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { Card } from '~/components/ui/card'; - -export function DashboardCard(props: { title: string; value: string; secondaryValue: string }) { - return ( - -

{props.title}

-

- {props.value} -

-

{props.secondaryValue}

-
- ); -} diff --git a/src/app/u/[locationId]/live/_components/LiveOrders.tsx b/src/app/u/[locationId]/live/_components/LiveOrders.tsx index c5a2f11..931d5cf 100644 --- a/src/app/u/[locationId]/live/_components/LiveOrders.tsx +++ b/src/app/u/[locationId]/live/_components/LiveOrders.tsx @@ -48,26 +48,8 @@ export function LiveOrders({ }; }, [locationId, toast]); - // const orderedCount = orders.filter((o) => o.items.some((i) => i.status === 'ordered')).length; - // const preparingCount = orderedCount; // For now they're the same - // const deliveredCount = orders.filter((o) => o.items.every((i) => i.status === 'delivered')).length; - return (
- {/*
- - - -
*/} -
{orders diff --git a/src/app/u/[locationId]/live/_components/OrderCard.tsx b/src/app/u/[locationId]/live/_components/OrderCard.tsx index 7d1698d..ca48898 100644 --- a/src/app/u/[locationId]/live/_components/OrderCard.tsx +++ b/src/app/u/[locationId]/live/_components/OrderCard.tsx @@ -33,6 +33,7 @@ export function OrderCard({ const [itemIdBeingUpdated, setItemIdBeingUpdated] = useState(null); async function handleItemStateChange(state: ThreeStateToggleSelectedItem, orderItemId: OrderItemId) { + //TODO refactor, simplify const status = Object.keys(ITEM_STATE).find((key) => ITEM_STATE[key as DeliveryStatusId] === state) as | DeliveryStatusId | undefined; @@ -43,7 +44,8 @@ export function OrderCard({ setItemIdBeingUpdated(orderItemId); await updateOrderItemDeliveryStatusAction(locationId, orderItemId, status); } catch (error) { - console.error('Failed to mark as pending:', error); + //TODO proper error handling + alert(`Failed to update order item\n${error?.toString()}`); } finally { setItemIdBeingUpdated(null); } @@ -104,9 +106,6 @@ export function OrderCard({ defaultState={itemState} onStateChange={(state) => handleItemStateChange(state, item.orderItem.id!)} size={44} - // leftIcon={} - // centerIcon={} - // rightIcon={} />
From a681a1122b6054bb8220517a902e4c6e6ca2f0f4 Mon Sep 17 00:00:00 2001 From: dopoto Date: Thu, 5 Jun 2025 08:12:24 +0300 Subject: [PATCH 21/21] migr --- drizzle/0009_chilly_ben_urich.sql | 2 + drizzle/meta/0009_snapshot.json | 709 ++++++++++++++++++++++++++++++ drizzle/meta/_journal.json | 7 + 3 files changed, 718 insertions(+) create mode 100644 drizzle/0009_chilly_ben_urich.sql create mode 100644 drizzle/meta/0009_snapshot.json diff --git a/drizzle/0009_chilly_ben_urich.sql b/drizzle/0009_chilly_ben_urich.sql new file mode 100644 index 0000000..bcbaaab --- /dev/null +++ b/drizzle/0009_chilly_ben_urich.sql @@ -0,0 +1,2 @@ +ALTER TABLE "next-menu_order_item" ADD COLUMN "delivery_status" varchar(10) DEFAULT 'pending' NOT NULL;--> statement-breakpoint +ALTER TABLE "next-menu_order_item" DROP COLUMN "is_delivered"; \ No newline at end of file diff --git a/drizzle/meta/0009_snapshot.json b/drizzle/meta/0009_snapshot.json new file mode 100644 index 0000000..adc701d --- /dev/null +++ b/drizzle/meta/0009_snapshot.json @@ -0,0 +1,709 @@ +{ + "id": "a80dc4a7-3b47-437b-9ce8-9f099aee6003", + "prevId": "96ca4a66-968b-40ef-8a68-5d7df22b46cb", + "version": "7", + "dialect": "postgresql", + "tables": { + "public.next-menu_location": { + "name": "next-menu_location", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "next-menu_location_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "name": { + "name": "name", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "slug": { + "name": "slug", + "type": "varchar(50)", + "primaryKey": false, + "notNull": true + }, + "currency_id": { + "name": "currency_id", + "type": "varchar(3)", + "primaryKey": false, + "notNull": true, + "default": "'USD'" + }, + "org_id": { + "name": "org_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "menu_mode": { + "name": "menu_mode", + "type": "varchar(20)", + "primaryKey": false, + "notNull": true, + "default": "'noninteractive'" + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "CURRENT_TIMESTAMP" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "next-menu_location_org_id_next-menu_organization_id_fk": { + "name": "next-menu_location_org_id_next-menu_organization_id_fk", + "tableFrom": "next-menu_location", + "tableTo": "next-menu_organization", + "columnsFrom": [ + "org_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "next-menu_location_name_unique": { + "name": "next-menu_location_name_unique", + "nullsNotDistinct": false, + "columns": [ + "name" + ] + }, + "next-menu_location_slug_unique": { + "name": "next-menu_location_slug_unique", + "nullsNotDistinct": false, + "columns": [ + "slug" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.next-menu_menu_item": { + "name": "next-menu_menu_item", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "next-menu_menu_item_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "location_id": { + "name": "location_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "name": { + "name": "name", + "type": "varchar(256)", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "varchar(256)", + "primaryKey": false, + "notNull": false + }, + "price": { + "name": "price", + "type": "numeric", + "primaryKey": false, + "notNull": true + }, + "type": { + "name": "type", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true, + "default": "'dish'" + }, + "is_new": { + "name": "is_new", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "is_published": { + "name": "is_published", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "CURRENT_TIMESTAMP" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "next-menu_menu_item_location_id_next-menu_location_id_fk": { + "name": "next-menu_menu_item_location_id_next-menu_location_id_fk", + "tableFrom": "next-menu_menu_item", + "tableTo": "next-menu_location", + "columnsFrom": [ + "location_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.next-menu_menu_items_to_menus": { + "name": "next-menu_menu_items_to_menus", + "schema": "", + "columns": { + "menu_id": { + "name": "menu_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "menu_item_id": { + "name": "menu_item_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "sort_order_index": { + "name": "sort_order_index", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "CURRENT_TIMESTAMP" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": { + "menu_items_to_menus_menu_item_idx": { + "name": "menu_items_to_menus_menu_item_idx", + "columns": [ + { + "expression": "menu_item_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + }, + "menu_items_to_menus_menu_idx": { + "name": "menu_items_to_menus_menu_idx", + "columns": [ + { + "expression": "menu_id", + "isExpression": false, + "asc": true, + "nulls": "last" + } + ], + "isUnique": false, + "concurrently": false, + "method": "btree", + "with": {} + } + }, + "foreignKeys": { + "next-menu_menu_items_to_menus_menu_id_next-menu_menu_id_fk": { + "name": "next-menu_menu_items_to_menus_menu_id_next-menu_menu_id_fk", + "tableFrom": "next-menu_menu_items_to_menus", + "tableTo": "next-menu_menu", + "columnsFrom": [ + "menu_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "next-menu_menu_items_to_menus_menu_item_id_next-menu_menu_item_id_fk": { + "name": "next-menu_menu_items_to_menus_menu_item_id_next-menu_menu_item_id_fk", + "tableFrom": "next-menu_menu_items_to_menus", + "tableTo": "next-menu_menu_item", + "columnsFrom": [ + "menu_item_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": { + "next-menu_menu_items_to_menus_menu_id_menu_item_id_pk": { + "name": "next-menu_menu_items_to_menus_menu_id_menu_item_id_pk", + "columns": [ + "menu_id", + "menu_item_id" + ] + } + }, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.next-menu_menu": { + "name": "next-menu_menu", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "next-menu_menu_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "name": { + "name": "name", + "type": "varchar(256)", + "primaryKey": false, + "notNull": false + }, + "location_id": { + "name": "location_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "is_published": { + "name": "is_published", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "CURRENT_TIMESTAMP" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "next-menu_menu_location_id_next-menu_location_id_fk": { + "name": "next-menu_menu_location_id_next-menu_location_id_fk", + "tableFrom": "next-menu_menu", + "tableTo": "next-menu_location", + "columnsFrom": [ + "location_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.next-menu_order_item": { + "name": "next-menu_order_item", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "next-menu_order_item_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "order_id": { + "name": "order_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "menu_item_id": { + "name": "menu_item_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "delivery_status": { + "name": "delivery_status", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true, + "default": "'pending'" + }, + "is_paid": { + "name": "is_paid", + "type": "boolean", + "primaryKey": false, + "notNull": true, + "default": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "CURRENT_TIMESTAMP" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "next-menu_order_item_order_id_next-menu_order_id_fk": { + "name": "next-menu_order_item_order_id_next-menu_order_id_fk", + "tableFrom": "next-menu_order_item", + "tableTo": "next-menu_order", + "columnsFrom": [ + "order_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + }, + "next-menu_order_item_menu_item_id_next-menu_menu_item_id_fk": { + "name": "next-menu_order_item_menu_item_id_next-menu_menu_item_id_fk", + "tableFrom": "next-menu_order_item", + "tableTo": "next-menu_menu_item", + "columnsFrom": [ + "menu_item_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.next-menu_order": { + "name": "next-menu_order", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "next-menu_order_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "location_id": { + "name": "location_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "CURRENT_TIMESTAMP" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "next-menu_order_location_id_next-menu_location_id_fk": { + "name": "next-menu_order_location_id_next-menu_location_id_fk", + "tableFrom": "next-menu_order", + "tableTo": "next-menu_location", + "columnsFrom": [ + "location_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.next-menu_organization": { + "name": "next-menu_organization", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "next-menu_organization_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "clerk_org_id": { + "name": "clerk_org_id", + "type": "varchar(256)", + "primaryKey": false, + "notNull": true + }, + "stripe_customer_id": { + "name": "stripe_customer_id", + "type": "varchar(256)", + "primaryKey": false, + "notNull": false + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "CURRENT_TIMESTAMP" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": { + "next-menu_organization_clerk_org_id_unique": { + "name": "next-menu_organization_clerk_org_id_unique", + "nullsNotDistinct": false, + "columns": [ + "clerk_org_id" + ] + } + }, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + }, + "public.next-menu_user": { + "name": "next-menu_user", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "identity": { + "type": "byDefault", + "name": "next-menu_user_id_seq", + "schema": "public", + "increment": "1", + "startWith": "1", + "minValue": "1", + "maxValue": "2147483647", + "cache": "1", + "cycle": false + } + }, + "role": { + "name": "role", + "type": "varchar(10)", + "primaryKey": false, + "notNull": true + }, + "clerk_user_id": { + "name": "clerk_user_id", + "type": "varchar(256)", + "primaryKey": false, + "notNull": true + }, + "org_id": { + "name": "org_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "created_at": { + "name": "created_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": true, + "default": "CURRENT_TIMESTAMP" + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp with time zone", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "next-menu_user_org_id_next-menu_organization_id_fk": { + "name": "next-menu_user_org_id_next-menu_organization_id_fk", + "tableFrom": "next-menu_user", + "tableTo": "next-menu_organization", + "columnsFrom": [ + "org_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {}, + "policies": {}, + "checkConstraints": {}, + "isRLSEnabled": false + } + }, + "enums": {}, + "schemas": {}, + "sequences": {}, + "roles": {}, + "policies": {}, + "views": {}, + "_meta": { + "columns": {}, + "schemas": {}, + "tables": {} + } +} \ No newline at end of file diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json index 8557a78..656dbc2 100644 --- a/drizzle/meta/_journal.json +++ b/drizzle/meta/_journal.json @@ -64,6 +64,13 @@ "when": 1747897608278, "tag": "0008_low_the_renegades", "breakpoints": true + }, + { + "idx": 9, + "version": "7", + "when": 1749100301609, + "tag": "0009_chilly_ben_urich", + "breakpoints": true } ] } \ No newline at end of file