From 9afb050547308727bb64abc8968e49548b56a70e Mon Sep 17 00:00:00 2001 From: dopoto Date: Thu, 5 Jun 2025 15:49:03 +0300 Subject: [PATCH 01/17] pck --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ff5d856..d9de443 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "next-menu", - "version": "0.0.73", + "version": "0.0.74", "private": true, "type": "module", "scripts": { From b919f7a43b3d4d758cb3884c4e7a005a63a218f1 Mon Sep 17 00:00:00 2001 From: dopoto Date: Fri, 6 Jun 2025 14:24:24 +0300 Subject: [PATCH 02/17] wip --- TODO.md | 9 +-- package.json | 2 + pnpm-lock.yaml | 71 +++++++++++++++++++ .../(landing)/_components/LandingFeatures.tsx | 4 +- src/app/(landing)/_components/LandingHero.tsx | 15 ++-- .../(landing)/_components/LandingReadyTo.tsx | 51 +++++++++++++ src/components/GetStartedCta.tsx | 8 +-- src/components/PriceTierCard.tsx | 47 +++++++++--- src/components/ui/hover-card.tsx | 44 ++++++++++++ src/domain/price-tier-flags.ts | 2 +- src/domain/price-tiers.ts | 6 +- 11 files changed, 226 insertions(+), 33 deletions(-) create mode 100644 src/app/(landing)/_components/LandingReadyTo.tsx create mode 100644 src/components/ui/hover-card.tsx diff --git a/TODO.md b/TODO.md index 0de317e..c54e899 100644 --- a/TODO.md +++ b/TODO.md @@ -1,6 +1,5 @@ # Next Menu -Handle users that reuse their existing account in Sign Up Validate Stripe / Clerk on sign in / (& regularly?) Delete my account Manage org > remove Invite Members @@ -14,7 +13,7 @@ Page titles 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 +How does it work? landing component - 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 Storybook 9 Storybook snapshot testing + pipeline integration @@ -25,6 +24,8 @@ Server actions errors - show friendly error message in modal / parallel route - language switch in menu - non-free tiers 360 view? pricing - number of scans per month -info icon on Price card /docs route - GitBook? https://docusaurus.io/docs/playground? -custom layouts \ No newline at end of file +custom layouts +feature matrix - mobile friendly +SplitScreenContainer logo link - home page where it makes sense - e.g. if not signed in +currency in add menu items \ No newline at end of file diff --git a/package.json b/package.json index d9de443..d651f6b 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "@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-hover-card": "^1.1.14", "@radix-ui/react-label": "^2.1.7", "@radix-ui/react-popover": "^1.1.14", "@radix-ui/react-progress": "^1.1.7", @@ -65,6 +66,7 @@ "cookies-next": "^6.0.0", "drizzle-orm": "^0.44.1", "embla-carousel-react": "^8.6.0", + "framer-motion": "~12.16.0", "geist": "^1.4.2", "jotai": "^2.12.4", "lucide-react": "^0.513.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fa75452..dc1a634 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,6 +50,9 @@ importers: '@radix-ui/react-dropdown-menu': specifier: ^2.1.15 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-hover-card': + specifier: ^1.1.14 + 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-label': specifier: ^2.1.7 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) @@ -122,6 +125,9 @@ importers: embla-carousel-react: specifier: ^8.6.0 version: 8.6.0(react@19.1.0) + framer-motion: + specifier: ~12.16.0 + version: 12.16.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) geist: specifier: ^1.4.2 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)) @@ -2333,6 +2339,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-hover-card@1.1.14': + resolution: {integrity: sha512-CPYZ24Mhirm+g6D8jArmLzjYu4Eyg3TTUHswR26QgzXBHBe64BO/RHOJKzmF/Dxb4y4f9PKyJdwm/O/AhNkb+Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-id@1.1.1': resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} peerDependencies: @@ -4980,6 +4999,20 @@ packages: forwarded-parse@2.1.2: resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==} + framer-motion@12.16.0: + resolution: {integrity: sha512-xryrmD4jSBQrS2IkMdcTmiS4aSKckbS7kLDCuhUn9110SQKG1w3zlq1RTqCblewg+ZYe+m3sdtzQA6cRwo5g8Q==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} @@ -5977,6 +6010,12 @@ packages: module-details-from-path@1.0.3: resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} + motion-dom@12.16.0: + resolution: {integrity: sha512-Z2nGwWrrdH4egLEtgYMCEN4V2qQt1qxlKy/uV7w691ztyA41Q5Rbn0KNGbsNVDZr9E8PD2IOQ3hSccRnB6xWzw==} + + motion-utils@12.12.1: + resolution: {integrity: sha512-f9qiqUHm7hWSLlNW8gS9pisnsN7CRFRD58vNjptKdsqFLpkVnX00TNeD6Q0d27V9KzT7ySFyK1TZ/DShfVOv6w==} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -9897,6 +9936,23 @@ snapshots: '@types/react': 19.1.6 '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@radix-ui/react-hover-card@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.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-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-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.6 + '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@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.6)(react@19.1.0) @@ -12986,6 +13042,15 @@ snapshots: forwarded-parse@2.1.2: {} + framer-motion@12.16.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + motion-dom: 12.16.0 + motion-utils: 12.12.1 + tslib: 2.8.1 + optionalDependencies: + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 @@ -14173,6 +14238,12 @@ snapshots: module-details-from-path@1.0.3: {} + motion-dom@12.16.0: + dependencies: + motion-utils: 12.12.1 + + motion-utils@12.12.1: {} + ms@2.1.3: {} nano-css@5.6.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): diff --git a/src/app/(landing)/_components/LandingFeatures.tsx b/src/app/(landing)/_components/LandingFeatures.tsx index 2b1030b..ec0885d 100644 --- a/src/app/(landing)/_components/LandingFeatures.tsx +++ b/src/app/(landing)/_components/LandingFeatures.tsx @@ -12,8 +12,8 @@ export interface Feature { export const LandingFeatures: React.FC = () => { const features: Feature[] = [ { - title: `Your own site - on us`, - description: `Once you set up your menus, you get a public link that hosts them - always online, ready to be shared, no web hosting required.`, + title: `Your own public page - on us`, + description: `Once you set up your menus, you get a public link, hosted by us - always online, ready to be shared.`, icon: , }, { diff --git a/src/app/(landing)/_components/LandingHero.tsx b/src/app/(landing)/_components/LandingHero.tsx index dcfa399..65b275b 100644 --- a/src/app/(landing)/_components/LandingHero.tsx +++ b/src/app/(landing)/_components/LandingHero.tsx @@ -1,5 +1,6 @@ import Image from 'next/image'; import React from 'react'; +import LandingReadyTo from '~/app/(landing)/_components/LandingReadyTo'; import { GetStartedCta } from '~/components/GetStartedCta'; export const LandingHero: React.FC = () => { @@ -9,16 +10,15 @@ export const LandingHero: React.FC = () => {

- QR menus, - super-powered! + The home of + super-powered + QR code menus

- TheMenu is the ultimate QR code menu platform for restaurants, bars, cafes, food trucks and - hotels. -

-

- Ready to start accepting orders for dine-in, takeaway and delivery? + We are the ultimate QR code menu platform for restaurants, bars, cafes, food trucks and + hotels!

+
{
); }; + diff --git a/src/app/(landing)/_components/LandingReadyTo.tsx b/src/app/(landing)/_components/LandingReadyTo.tsx new file mode 100644 index 0000000..92c2e49 --- /dev/null +++ b/src/app/(landing)/_components/LandingReadyTo.tsx @@ -0,0 +1,51 @@ +"use client" + +import { useState, useEffect } from "react" +import { motion, AnimatePresence } from "framer-motion" + + + +export default function LandingReadyTo() { + const textOptions = [ + "Ready to start accepting orders for dine-in, takeaway and delivery?", + "Ready to fully automate your in-location order flow?", + "Ready to see your orders in real-time?", + "Ready to start growing your food business?", + "Ready to start serving your customers better?", + ] + + const [currentIndex, setCurrentIndex] = useState(0) + + useEffect(() => { + const interval = setInterval(() => { + setCurrentIndex((prevIndex) => (prevIndex + 1) % textOptions.length) + }, 3000) // Change text every 3 seconds + + return () => clearInterval(interval) + }, [textOptions.length]) + + return ( + +

+ + + + + {textOptions[currentIndex]} + + + +

+ + ) +} diff --git a/src/components/GetStartedCta.tsx b/src/components/GetStartedCta.tsx index 3833f6e..efab68f 100644 --- a/src/components/GetStartedCta.tsx +++ b/src/components/GetStartedCta.tsx @@ -23,13 +23,7 @@ function SignedInCta(props: { tier?: PriceTierId; secondaryText?: string; varian const { user } = useUser(); if (props.tier == null) { - return ( - - - - ); + return null; } const userTier = user?.publicMetadata?.tier; diff --git a/src/components/PriceTierCard.tsx b/src/components/PriceTierCard.tsx index dbf780b..9a24bc9 100644 --- a/src/components/PriceTierCard.tsx +++ b/src/components/PriceTierCard.tsx @@ -1,7 +1,10 @@ +import { InfoIcon } from 'lucide-react'; import { type ReactNode } from 'react'; import { PriceTierHeader } from '~/components/PriceTierHeader'; import { Badge } from '~/components/ui/badge'; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '~/components/ui/card'; +import { HoverCard, HoverCardContent, HoverCardTrigger } from '~/components/ui/hover-card'; +import { Tooltip, TooltipContent, TooltipTrigger } from '~/components/ui/tooltip'; import { priceTierFeatures } from '~/domain/price-tier-features'; import { priceTierFlags } from '~/domain/price-tier-flags'; import { type ExceededFeature } from '~/domain/price-tier-usage'; @@ -43,8 +46,8 @@ export function PriceTierCard(props: { const availableFeatures = props.exceededFeatures && props.exceededFeatures.length > 0 ? features.filter((f) => { - return props.exceededFeatures?.findIndex((ef) => ef.id === f.id) === -1; - }) + return props.exceededFeatures?.findIndex((ef) => ef.id === f.id) === -1; + }) : features; return ( @@ -69,9 +72,10 @@ export function PriceTierCard(props: { return (
- {featureDetails.resourcePluralName} + + {featureDetails.resourcePluralName}
@@ -87,8 +91,9 @@ export function PriceTierCard(props: { return (
-
- {featureDetails.resourcePluralName} +
+ + {featureDetails.resourcePluralName}
@@ -106,11 +111,12 @@ export function PriceTierCard(props: { const flagDetails = priceTierFlags[flag.id]; const isEnabled = props.tier.flags.find((f) => f.id === flag.id)?.isEnabled ?? false; return ( -
+
- {flagDetails.resourcePluralName} + + {flagDetails.resourcePluralName}
@@ -143,3 +149,26 @@ export const getExceededPlanCardCustomizations = (): CardCustomizations => { badgeText: 'Does not fit your current usage', }; }; + +export const Info = (props: { title: string, text: string, footer: string }) => { + return ( + + + + + +
+
+

{props.title}

+

+ {props.text} +

+
+ {props.footer} +
+
+
+
+
+ ) +} \ No newline at end of file diff --git a/src/components/ui/hover-card.tsx b/src/components/ui/hover-card.tsx new file mode 100644 index 0000000..01febed --- /dev/null +++ b/src/components/ui/hover-card.tsx @@ -0,0 +1,44 @@ +"use client" + +import * as React from "react" +import * as HoverCardPrimitive from "@radix-ui/react-hover-card" + +import { cn } from "~/lib/utils" + +function HoverCard({ + ...props +}: React.ComponentProps) { + return +} + +function HoverCardTrigger({ + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function HoverCardContent({ + className, + align = "center", + sideOffset = 4, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +export { HoverCard, HoverCardTrigger, HoverCardContent } diff --git a/src/domain/price-tier-flags.ts b/src/domain/price-tier-flags.ts index c6f0b0c..b441eed 100644 --- a/src/domain/price-tier-flags.ts +++ b/src/domain/price-tier-flags.ts @@ -35,7 +35,7 @@ export const priceTierFlags: Record = { id: 'publicSite', resourceSingularName: 'public site', resourcePluralName: 'public site', - description: 'A public-facing professional-looking web site that your customers can use to browse your menus.', + description: 'A public-facing professional-looking web page that your customers can use to browse your menus.', }, nonInteractiveMode: { id: 'nonInteractiveMode', diff --git a/src/domain/price-tiers.ts b/src/domain/price-tiers.ts index e828a73..91280f8 100644 --- a/src/domain/price-tiers.ts +++ b/src/domain/price-tiers.ts @@ -47,7 +47,7 @@ export const priceTiers: Record = { { id: 'menuItems', quota: 10 }, ], flags: [ - { id: 'reports', isEnabled: true }, + { id: 'reports', isEnabled: false }, { id: 'publicSite', isEnabled: true }, { id: 'nonInteractiveMode', isEnabled: true }, { id: 'interactiveMode', isEnabled: true }, @@ -67,7 +67,7 @@ export const priceTiers: Record = { { id: 'menuItems', quota: 0 }, ], flags: [ - { id: 'reports', isEnabled: true }, + { id: 'reports', isEnabled: false }, { id: 'publicSite', isEnabled: true }, { id: 'nonInteractiveMode', isEnabled: true }, { id: 'interactiveMode', isEnabled: true }, @@ -88,7 +88,7 @@ export const priceTiers: Record = { { id: 'menuItems', quota: 100 }, ], flags: [ - { id: 'reports', isEnabled: false }, + { id: 'reports', isEnabled: true }, { id: 'publicSite', isEnabled: true }, { id: 'nonInteractiveMode', isEnabled: true }, { id: 'interactiveMode', isEnabled: true }, From eefe83c13500b30ab5571624f65e017048f040d8 Mon Sep 17 00:00:00 2001 From: dopoto Date: Wed, 11 Jun 2025 15:26:39 +0300 Subject: [PATCH 03/17] prett --- next.config.ts | 2 +- package.json | 36 +- pnpm-lock.yaml | 3212 ++++++++++------- src/app/(landing)/_components/LandingHero.tsx | 6 +- .../(landing)/_components/LandingReadyTo.tsx | 89 +- src/app/onboard/select-plan/page.tsx | 2 +- src/components/PriceTierCard.tsx | 37 +- src/components/SplitScreenContainer.tsx | 7 +- src/components/ui/hover-card.tsx | 60 +- src/domain/menu-modes.ts | 6 +- 10 files changed, 2127 insertions(+), 1330 deletions(-) diff --git a/next.config.ts b/next.config.ts index 8920751..e121110 100644 --- a/next.config.ts +++ b/next.config.ts @@ -16,7 +16,7 @@ const cspHeader = ` frame-src https://checkout.stripe.com https://*.js.stripe.com https://js.stripe.com https://hooks.stripe.com https://challenges.cloudflare.com; object-src ${process.env.NODE_ENV !== 'development' ? "'self' data:;" : "'none';"} worker-src 'self' blob: ${env.NEXT_PUBLIC_CLERK_SUBDOMAIN}; - connect-src 'self' https://checkout.stripe.com https://api.stripe.com https://maps.googleapis.com ${env.NEXT_PUBLIC_CLERK_SUBDOMAIN} https://clerk-telemetry.com/v1/event https://*.sentry.io https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com wss://ws-eu.pusher.com/app/${env.NEXT_PUBLIC_PUSHER_APP_KEY} https://sockjs-eu.pusher.com/pusher/app/${env.NEXT_PUBLIC_PUSHER_APP_KEY}; + connect-src 'self' https://checkout.stripe.com https://api.stripe.com https://maps.googleapis.com ${env.NEXT_PUBLIC_CLERK_SUBDOMAIN} https://clerk-telemetry.com/v1/event https://*.sentry.io https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com wss://ws-eu.pusher.com/app/${env.NEXT_PUBLIC_PUSHER_APP_KEY} https://sockjs-eu.pusher.com/pusher/app/${env.NEXT_PUBLIC_PUSHER_APP_KEY}*; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; diff --git a/package.json b/package.json index d651f6b..83e29fb 100644 --- a/package.json +++ b/package.json @@ -32,10 +32,10 @@ "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", - "@hookform/resolvers": "^5.0.1", + "@hookform/resolvers": "^5.1.1", "@next/env": "~15.3.3", "@next/third-parties": "^15.3.3", - "@number-flow/react": "^0.5.9", + "@number-flow/react": "^0.5.10", "@radix-ui/react-avatar": "^1.1.10", "@radix-ui/react-checkbox": "^1.3.2", "@radix-ui/react-collapsible": "^1.1.11", @@ -52,29 +52,27 @@ "@radix-ui/react-tabs": "^1.1.12", "@radix-ui/react-toast": "^1.2.14", "@radix-ui/react-tooltip": "^1.2.7", - "@sentry/nextjs": "9.26.0", + "@sentry/nextjs": "9.28.1", "@stripe/react-stripe-js": "^3.7.0", "@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", + "@t3-oss/env-nextjs": "^0.13.8", "@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": "^6.0.0", - "drizzle-orm": "^0.44.1", + "drizzle-orm": "^0.44.2", "embla-carousel-react": "^8.6.0", - "framer-motion": "~12.16.0", + "framer-motion": "~12.17.0", "geist": "^1.4.2", "jotai": "^2.12.4", - "lucide-react": "^0.513.0", + "lucide-react": "^0.514.0", "next": "15.3.2", "next-themes": "^0.4.6", - "postgres": "^3.4.5", - "posthog-js": "^1.249.2", - "posthog-node": "^4.18.0", + "postgres": "^3.4.7", + "posthog-js": "^1.250.1", + "posthog-node": "^5.0.0", "pusher": "^5.2.0", "pusher-js": "^8.4.0", "react": "^19.1.0", @@ -87,11 +85,11 @@ "react-use": "17.6.0", "server-only": "^0.0.1", "stripe": "^18.2.1", - "tailwind-merge": "^3.3.0", + "tailwind-merge": "^3.3.1", "tailwindcss-animate": "^1.0.7", "truncate-middle": "^2.0.1", "vaul": "^1.1.2", - "zod": "3.25.51" + "zod": "3.25.61" }, "devDependencies": { "@chromatic-com/storybook": "3.2.6", @@ -109,8 +107,8 @@ "@types/eslint": "^9.6.1", "@types/jest": "^29.5.14", "@types/node": "^22.15.29", - "@types/react": "^19.1.6", - "@types/react-dom": "^19.1.5", + "@types/react": "^19.1.7", + "@types/react-dom": "^19.1.6", "cross-env": "^7.0.3", "drizzle-kit": "^0.31.1", "eslint": "9.28.0", @@ -118,8 +116,8 @@ "eslint-config-prettier": "^10.1.5", "eslint-plugin-drizzle": "^0.2.3", "eslint-plugin-storybook": "^0.12.0", - "jest": "^29.7.0", - "jest-environment-jsdom": "^29.7.0", + "jest": "^30.0.0", + "jest-environment-jsdom": "^30.0.0", "jotai-devtools": "^0.12.0", "knip": "^5.57.1", "postcss": "^8.5.3", @@ -131,7 +129,7 @@ "ts-jest": "^29.3.4", "ts-node": "^10.9.2", "typescript": "^5.8.3", - "typescript-eslint": "^8.33.1" + "typescript-eslint": "^8.34.0" }, "ct3aMetadata": { "initVersion": "7.38.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dc1a634..07f4c0b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: dependencies: '@clerk/nextjs': specifier: ^6.21.0 - version: 6.21.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-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 6.21.0(next@15.3.2(@babel/core@7.27.4)(@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.49 version: 2.2.49 @@ -24,68 +24,68 @@ importers: specifier: ^3.2.2 version: 3.2.2(react@19.1.0) '@hookform/resolvers': - specifier: ^5.0.1 - version: 5.0.1(react-hook-form@7.57.0(react@19.1.0)) + specifier: ^5.1.1 + version: 5.1.1(react-hook-form@7.57.0(react@19.1.0)) '@next/env': specifier: ~15.3.3 version: 15.3.3 '@next/third-parties': 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) + version: 15.3.3(next@15.3.2(@babel/core@7.27.4)(@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) + specifier: ^0.5.10 + version: 0.5.10(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.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.3.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.11(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.1.15(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-hover-card': specifier: ^1.1.14 - 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) + version: 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.3.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6)(react@19.1.0) + version: 1.2.3(@types/react@19.1.7)(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.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.5(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.12(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.14(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@sentry/nextjs': - specifier: 9.26.0 - version: 9.26.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.28.1 + version: 9.28.1(@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.27.4)(@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.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -93,17 +93,11 @@ importers: specifier: ^7.3.1 version: 7.3.1 '@t3-oss/env-nextjs': - specifier: ^0.13.6 - version: 0.13.6(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.51) - '@tanstack/react-query': - specifier: ^5.79.2 - version: 5.79.2(react@19.1.0) - '@tanstack/react-query-devtools': - specifier: ^5.79.2 - version: 5.79.2(@tanstack/react-query@5.79.2(react@19.1.0))(react@19.1.0) + specifier: ^0.13.8 + version: 0.13.8(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.61) '@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) + version: 1.5.0(next@15.3.2(@babel/core@7.27.4)(@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) '@vercel/edge-config': specifier: ^1.4.0 version: 1.4.0(@opentelemetry/api@1.9.0) @@ -118,40 +112,40 @@ importers: version: 2.1.1 cookies-next: 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) + version: 6.0.0(next@15.3.2(@babel/core@7.27.4)(@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.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) + specifier: ^0.44.2 + version: 0.44.2(@opentelemetry/api@1.9.0)(@types/pg@8.11.6)(@vercel/postgres@0.10.0)(gel@2.0.1)(postgres@3.4.7) embla-carousel-react: specifier: ^8.6.0 version: 8.6.0(react@19.1.0) framer-motion: - specifier: ~12.16.0 - version: 12.16.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: ~12.17.0 + version: 12.17.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) geist: specifier: ^1.4.2 - 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)) + version: 1.4.2(next@15.3.2(@babel/core@7.27.4)(@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.6)(react@19.1.0) + version: 2.12.4(@types/react@19.1.7)(react@19.1.0) lucide-react: - specifier: ^0.513.0 - version: 0.513.0(react@19.1.0) + specifier: ^0.514.0 + version: 0.514.0(react@19.1.0) next: specifier: 15.3.2 - version: 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) + version: 15.3.2(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next-themes: specifier: ^0.4.6 version: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) postgres: - specifier: ^3.4.5 - version: 3.4.5 + specifier: ^3.4.7 + version: 3.4.7 posthog-js: - specifier: ^1.249.2 - version: 1.249.2 + specifier: ^1.250.1 + version: 1.250.1 posthog-node: - specifier: ^4.18.0 - version: 4.18.0 + specifier: ^5.0.0 + version: 5.0.0 pusher: specifier: ^5.2.0 version: 5.2.0 @@ -178,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.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 5.10.1(@types/react@19.1.7)(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) @@ -189,8 +183,8 @@ importers: specifier: ^18.2.1 version: 18.2.1(@types/node@22.15.29) tailwind-merge: - specifier: ^3.3.0 - version: 3.3.0 + specifier: ^3.3.1 + version: 3.3.1 tailwindcss-animate: specifier: ^1.0.7 version: 1.0.7(tailwindcss@4.1.8) @@ -199,10 +193,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.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) zod: - specifier: 3.25.51 - version: 3.25.51 + specifier: 3.25.61 + version: 3.25.61 devDependencies: '@chromatic-com/storybook': specifier: 3.2.6 @@ -212,7 +206,7 @@ importers: version: 3.3.1 '@storybook/addon-essentials': specifier: 8.6.14 - version: 8.6.14(@types/react@19.1.6)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + version: 8.6.14(@types/react@19.1.7)(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)) @@ -221,7 +215,7 @@ importers: 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: 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)) + version: 8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.2)(next@15.3.2(@babel/core@7.27.4)(@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: 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) @@ -239,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.6))(@types/react@19.1.6)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@types/eslint': specifier: ^9.6.1 version: 9.6.1 @@ -250,11 +244,11 @@ importers: specifier: ^22.15.29 version: 22.15.29 '@types/react': - specifier: ^19.1.6 - version: 19.1.6 + specifier: ^19.1.7 + version: 19.1.7 '@types/react-dom': - specifier: ^19.1.5 - version: 19.1.5(@types/react@19.1.6) + specifier: ^19.1.6 + version: 19.1.6(@types/react@19.1.7) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -277,14 +271,14 @@ importers: 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)) + specifier: ^30.0.0 + version: 30.0.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.2))(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) + specifier: ^30.0.0 + version: 30.0.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@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + version: 0.12.0(@types/react@19.1.7)(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) @@ -308,7 +302,7 @@ importers: 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.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) + version: 29.3.4(@babel/core@7.27.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.4))(esbuild@0.25.2)(jest@30.0.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.2))(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.29)(typescript@5.8.3) @@ -316,8 +310,8 @@ importers: specifier: ^5.8.3 version: 5.8.3 typescript-eslint: - specifier: ^8.33.1 - version: 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + specifier: ^8.34.0 + version: 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) packages: @@ -338,22 +332,41 @@ packages: '@ark/util@0.46.0': resolution: {integrity: sha512-JPy/NGWn/lvf1WmGCPw2VGpBg5utZraE84I7wli18EDF3p3zc/e9WolT35tINeZO3l7C77SjqRJeAUoT0CvMRg==} + '@asamuzakjp/css-color@3.2.0': + resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} + '@babel/code-frame@7.26.2': resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.26.8': resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.27.5': + resolution: {integrity: sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==} + engines: {node: '>=6.9.0'} + '@babel/core@7.26.9': resolution: {integrity: sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==} engines: {node: '>=6.9.0'} + '@babel/core@7.27.4': + resolution: {integrity: sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.27.0': resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} engines: {node: '>=6.9.0'} + '@babel/generator@7.27.5': + resolution: {integrity: sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.25.9': resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} @@ -362,6 +375,10 @@ packages: resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@7.27.0': resolution: {integrity: sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==} engines: {node: '>=6.9.0'} @@ -387,12 +404,22 @@ packages: resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.26.0': resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.27.3': + resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.25.9': resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} engines: {node: '>=6.9.0'} @@ -401,6 +428,10 @@ packages: resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + engines: {node: '>=6.9.0'} + '@babel/helper-remap-async-to-generator@7.25.9': resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} engines: {node: '>=6.9.0'} @@ -421,14 +452,26 @@ packages: resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.9': resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.25.9': resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + '@babel/helper-wrap-function@7.25.9': resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} engines: {node: '>=6.9.0'} @@ -437,11 +480,20 @@ packages: resolution: {integrity: sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.27.6': + resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.27.0': resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.27.5': + resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} engines: {node: '>=6.9.0'} @@ -532,6 +584,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.27.1': + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: @@ -580,6 +638,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-typescript@7.27.1': + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} @@ -953,14 +1017,26 @@ packages: resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} engines: {node: '>=6.9.0'} + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.27.0': resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.27.4': + resolution: {integrity: sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==} + engines: {node: '>=6.9.0'} + '@babel/types@7.27.0': resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} engines: {node: '>=6.9.0'} + '@babel/types@7.27.6': + resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -1013,6 +1089,34 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} + '@csstools/color-helpers@5.0.2': + resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} + engines: {node: '>=18'} + + '@csstools/css-calc@2.1.4': + resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 + + '@csstools/css-color-parser@3.0.10': + resolution: {integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 + + '@csstools/css-parser-algorithms@3.0.5': + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-tokenizer': ^3.0.4 + + '@csstools/css-tokenizer@3.0.4': + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} + engines: {node: '>=18'} + '@dnd-kit/accessibility@3.1.1': resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==} peerDependencies: @@ -1044,6 +1148,9 @@ packages: '@emnapi/runtime@1.4.0': resolution: {integrity: sha512-64WYIf4UYcdLnbKn/umDlNjQDSS8AgZrI/R9+x5ilkUVFxXcA1Ebl+gQLc/6mERA4407Xof0R7wEyEuj091CVw==} + '@emnapi/runtime@1.4.3': + resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} + '@emnapi/wasi-threads@1.0.2': resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} @@ -1437,8 +1544,8 @@ packages: '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} - '@hookform/resolvers@5.0.1': - resolution: {integrity: sha512-u/+Jp83luQNx9AdyW2fIPGY6Y7NG68eN2ZW8FOJYL+M0i4s49+refdJdOp/A9n9HFQtQs3HIDHQvX3ZET2o7YA==} + '@hookform/resolvers@5.1.1': + resolution: {integrity: sha512-J/NVING3LMAEvexJkyTLjruSm7aOFx7QX21pzkiJfMoNG0wl5aFEjLTl7ay7IQb9EWY6AkrBy7tHL2Alijpdcg==} peerDependencies: react-hook-form: ^7.55.0 @@ -1677,6 +1784,10 @@ packages: cpu: [x64] os: [win32] + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + '@isaacs/fs-minipass@4.0.1': resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} @@ -1689,42 +1800,68 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jest/console@29.7.0': - resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/console@30.0.0': + resolution: {integrity: sha512-vfpJap6JZQ3I8sUN8dsFqNAKJYO4KIGxkcB+3Fw7Q/BJiWY5HwtMMiuT1oP0avsiDhjE/TCLaDgbGfHwDdBVeg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/core@29.7.0': - resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/core@30.0.0': + resolution: {integrity: sha512-1zU39zFtWSl5ZuDK3Rd6P8S28MmS4F11x6Z4CURrgJ99iaAJg68hmdJ2SAHEEO6ociaNk43UhUYtHxWKEWoNYw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true - '@jest/environment@29.7.0': - resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/diff-sequences@30.0.0': + resolution: {integrity: sha512-xMbtoCeKJDto86GW6AiwVv7M4QAuI56R7dVBr1RNGYbOT44M2TIzOiske2RxopBqkumDY+A1H55pGvuribRY9A==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/environment-jsdom-abstract@30.0.0': + resolution: {integrity: sha512-Fcn1eZbH1JK+bqwUVkUVprlQL3xWUrhvOe/4L0PfDkaJOiAz3HUI1m4s0bgmXBYyCyTVogBuUFZkRpAKMox5Dw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + canvas: ^3.0.0 + jsdom: '*' + peerDependenciesMeta: + canvas: + optional: true + + '@jest/environment@30.0.0': + resolution: {integrity: sha512-09sFbMMgS5JxYnvgmmtwIHhvoyzvR5fUPrVl8nOCrC5KdzmmErTcAxfWyAhJ2bv3rvHNQaKiS+COSG+O7oNbXw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/expect-utils@29.7.0': resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/expect@29.7.0': - resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect-utils@30.0.0': + resolution: {integrity: sha512-UiWfsqNi/+d7xepfOv8KDcbbzcYtkWBe3a3kVDtg6M1kuN6CJ7b4HzIp5e1YHrSaQaVS8sdCoyCMCZClTLNKFQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/fake-timers@29.7.0': - resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/expect@30.0.0': + resolution: {integrity: sha512-XZ3j6syhMeKiBknmmc8V3mNIb44kxLTbOQtaXA4IFdHy+vEN0cnXRzbRjdGBtrp4k1PWyMWNU3Fjz3iejrhpQg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/globals@29.7.0': - resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/fake-timers@30.0.0': + resolution: {integrity: sha512-yzBmJcrMHAMcAEbV2w1kbxmx8WFpEz8Cth3wjLMSkq+LO8VeGKRhpr5+BUp7PPK+x4njq/b6mVnDR8e/tPL5ng==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/reporters@29.7.0': - resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/get-type@30.0.0': + resolution: {integrity: sha512-VZWMjrBzqfDKngQ7sUctKeLxanAbsBFoZnPxNIG6CmxK7Gv6K44yqd0nzveNIBfuhGZMmk1n5PGbvdSTOu0yTg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/globals@30.0.0': + resolution: {integrity: sha512-OEzYes5A1xwBJVMPqFRa8NCao8Vr42nsUZuf/SpaJWoLE+4kyl6nCQZ1zqfipmCrIXQVALC5qJwKy/7NQQLPhw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/pattern@30.0.0': + resolution: {integrity: sha512-k+TpEThzLVXMkbdxf8KHjZ83Wl+G54ytVJoDIGWwS96Ql4xyASRjc6SU1hs5jHVql+hpyK9G8N7WuFhLpGHRpQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/reporters@30.0.0': + resolution: {integrity: sha512-5WHNlLO0Ok+/o6ML5IzgVm1qyERtLHBNhwn67PAq92H4hZ+n5uW/BYj1VVwmTdxIcNrZLxdV9qtpdZkXf16HxA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -1735,26 +1872,42 @@ packages: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/source-map@29.6.3': - resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/schemas@30.0.0': + resolution: {integrity: sha512-NID2VRyaEkevCRz6badhfqYwri/RvMbiHY81rk3AkK/LaiB0LSxi1RdVZ7MpZdTjNugtZeGfpL0mLs9Kp3MrQw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/test-result@29.7.0': - resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/snapshot-utils@30.0.0': + resolution: {integrity: sha512-C/QSFUmvZEYptg2Vin84FggAphwHvj6la39vkw1CNOZQORWZ7O/H0BXmdeeeGnvlXDYY8TlFM5jgFnxLAxpFjA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/test-sequencer@29.7.0': - resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/source-map@30.0.0': + resolution: {integrity: sha512-oYBJ4d/NF4ZY3/7iq1VaeoERHRvlwKtrGClgescaXMIa1mmb+vfJd0xMgbW9yrI80IUA7qGbxpBWxlITrHkWoA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/test-result@30.0.0': + resolution: {integrity: sha512-685zco9HdgBaaWiB9T4xjLtBuN0Q795wgaQPpmuAeZPHwHZSoKFAUnozUtU+ongfi4l5VCz8AclOE5LAQdyjxQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + '@jest/test-sequencer@30.0.0': + resolution: {integrity: sha512-Hmvv5Yg6UmghXIcVZIydkT0nAK7M/hlXx9WMHR5cLVwdmc14/qUQt3mC72T6GN0olPC6DhmKE6Cd/pHsgDbuqQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/transform@29.7.0': resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/transform@30.0.0': + resolution: {integrity: sha512-8xhpsCGYJsUjqpJOgLyMkeOSSlhqggFZEWAnZquBsvATtueoEs7CkMRxOUmJliF3E5x+mXmZ7gEEsHank029Og==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jest/types@29.6.3': resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/types@30.0.0': + resolution: {integrity: sha512-1Nox8mAL52PKPfEnUQWBvKU/bp8FTT6AiDu76bFDEJj/qsRFSAVSldfCH3XYMqialti2zHXKvD5gN0AaHc0yKA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} @@ -1805,6 +1958,9 @@ packages: '@types/react': '>=16' react: '>=16' + '@napi-rs/wasm-runtime@0.2.11': + resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} + '@napi-rs/wasm-runtime@0.2.9': resolution: {integrity: sha512-OKRBiajrrxB9ATokgEQoG87Z25c67pCpYcCwmXYX8PBftC9pBfN18gnm/fh1wurSLEKIAt+QRFLFCQISrb66Jg==} @@ -1890,8 +2046,8 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} - '@number-flow/react@0.5.9': - resolution: {integrity: sha512-cletUjLUIV6NoNg36z4CR4khIff3fb4RWzuNx8TOZVw34pUpZlgWpnDpJb4UG8B2QyYAFbptVunW0RiqoHVCDA==} + '@number-flow/react@0.5.10': + resolution: {integrity: sha512-a8Wh5eNITn7Km4xbddAH7QH8eNmnduR6k34ER1hkHSGO4H2yU1DDnuAWLQM99vciGInFODemSc0tdxrXkJEpbA==} peerDependencies: react: ^18 || ^19 react-dom: ^18 || ^19 @@ -2152,6 +2308,14 @@ packages: '@petamoriken/float16@3.9.1': resolution: {integrity: sha512-j+ejhYwY6PeB+v1kn7lZFACUIG97u90WxMuGosILFsl9d4Ovi0sjk0GlPfoEcx+FzvXZDAfioD+NGnnPamXgMA==} + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pkgr/core@0.2.7': + resolution: {integrity: sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@pmmmwh/react-refresh-webpack-plugin@0.5.16': resolution: {integrity: sha512-kLQc9xz6QIqd2oIYyXRUiAp79kGpFBm3fEM9ahfG1HI0WI5gdZ2OVHWdmZYnwODt7ISck+QuQ6sBPrtvUBML7Q==} engines: {node: '>= 10.13'} @@ -2786,28 +2950,28 @@ packages: '@rushstack/eslint-patch@1.10.5': resolution: {integrity: sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==} - '@sentry-internal/browser-utils@9.26.0': - resolution: {integrity: sha512-Ya4YQSzrM6TSuCuO+tUPK+WXFHfndaX73wszCmIu7UZlUHbKTZ5HVWxXxHW9f6KhVIHYzdYQMeA/4F4N7n+rgg==} + '@sentry-internal/browser-utils@9.28.1': + resolution: {integrity: sha512-P/FEZkT7UqTw9P/2n/Y4Aa1OtGP6dnCvyqzPPkjiRdVa7Ep7S5ElBJloGv7077TLLBtAfCsEUVRlM1F6/jQoaA==} engines: {node: '>=18'} - '@sentry-internal/feedback@9.26.0': - resolution: {integrity: sha512-XnN6UiFNGkJMCw8Oy9qnP2GW/ueiQOUEl8vaA28v0uAIL2cIMxJY7mrii9D3NNip8d/iPzpgDZJk2epBClfpyw==} + '@sentry-internal/feedback@9.28.1': + resolution: {integrity: sha512-HOk/c26D3nlClO/xEefev8fIJzRA621PFQvNFPu/y0Z5HujEqSmIsrff0cXszPPYD95h4Mwk63E0ZYdspdeXcw==} engines: {node: '>=18'} - '@sentry-internal/replay-canvas@9.26.0': - resolution: {integrity: sha512-ABj5TRRI3WWgLFPHrncCLOL5On/K+TpsbwWCM58AXQwwvtsSN2R22RY0ftuYgmAzBt4tygUJ9VQfIAWcRtC5sQ==} + '@sentry-internal/replay-canvas@9.28.1': + resolution: {integrity: sha512-RtkogfcIpXLFCyV8CTnXmVTH2QauT/KwmUAXBbeOz3rRWsM19yjN1moHrsjxn7OdjTv+D4qWSCA8Ka1aKSpr7g==} engines: {node: '>=18'} - '@sentry-internal/replay@9.26.0': - resolution: {integrity: sha512-SrND17u9Of0Jal4i9fJLoi98puBU3CQxwWq1Vda5JI9nLNwVU00QRbcsXsiartp/e0A8m0yGsySlrAGb1tZTaA==} + '@sentry-internal/replay@9.28.1': + resolution: {integrity: sha512-Tv9pkfAX+1bmhxF42TL0c4uTiK2+rp5LMYEPdz6JBfpfvG/Z1unPGsuB7fQmHYKyfHBQJmi92DZV+smljm7w/g==} engines: {node: '>=18'} '@sentry/babel-plugin-component-annotate@3.5.0': resolution: {integrity: sha512-s2go8w03CDHbF9luFGtBHKJp4cSpsQzNVqgIa9Pfa4wnjipvrK6CxVT4icpLA3YO6kg5u622Yoa5GF3cJdippw==} engines: {node: '>= 14'} - '@sentry/browser@9.26.0': - resolution: {integrity: sha512-aZFAXcNtJe+QQidIiB8wW8uyzBnIJR81CoeZkDxl1fJ0YlAZraazyD35DWP7suLKujCPtWNv3vRzSxYMxxP/NQ==} + '@sentry/browser@9.28.1': + resolution: {integrity: sha512-XAS46iQSq8lXTnv9udQP025JTf3PwSVRE9ePJVQhx25QBWxedqGhEOv5qqX9b1Ijf8KiZYXXhBWMQxBBXVzUaw==} engines: {node: '>=18'} '@sentry/bundler-plugin-core@3.5.0': @@ -2860,22 +3024,22 @@ packages: engines: {node: '>= 10'} hasBin: true - '@sentry/core@9.26.0': - resolution: {integrity: sha512-XTFSqOPn6wsZgF3NLRVY/FjYCkFahZoR46BtLVmBliD60QZLChpya81slD3M8BgLQpjsA2q6N1xrQor1Rc29gg==} + '@sentry/core@9.28.1': + resolution: {integrity: sha512-6q59r/71MeE+4StkvwdKAAyhBBNpWcii0HeiWBZ3l1gaFYQlb6bChjZJRZmxSzF5dnvkdF4duQbAC3JmjeIbPA==} engines: {node: '>=18'} - '@sentry/nextjs@9.26.0': - resolution: {integrity: sha512-baOIDZT98rgaYUF1ZY3nrlQhZF3TwvksxxekJnZ1uuZp6FfDEvfK+4ruJDlWlcblv/aNPJLRhI22xAyUsS1cMg==} + '@sentry/nextjs@9.28.1': + resolution: {integrity: sha512-3ryNddo0S+Ni2pcUx9u3hxhXvbGpjU8dLO8lemH3chlDMG787URD/IpO9o+mN/WXJcA/UnNFgDMebQ4bXSRj1g==} engines: {node: '>=18'} peerDependencies: next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 - '@sentry/node@9.26.0': - resolution: {integrity: sha512-B7VdUtXlg1Y8DeZMWc9gOIoSmGT9hkKepits+kmkZgjYlyPhZtT8a0fwUNBLYFYq1Ti/JzKWw3ZNIlg00BY40w==} + '@sentry/node@9.28.1': + resolution: {integrity: sha512-1bC8ywFPs1EIKzRlUhLoreTR/fUU45O+ezVNvOu0I6JURMwjyC8uT23f0Xkiolx4WjKZXER+d0el3HojPaYkYw==} engines: {node: '>=18'} - '@sentry/opentelemetry@9.26.0': - resolution: {integrity: sha512-yVxRv6GtrtKFfNKpfb+b/focF4cKslInIN+HPzllQBoVebrq+KeCjUYzDEj9b6OwZGbUZDbQdxGRgXrrxcZUMg==} + '@sentry/opentelemetry@9.28.1': + resolution: {integrity: sha512-1xxriB2diNSlNpkMosdgIKzPOPwAiyFg7XgEWKpLtDYWj7WVbLNyLkUWriFr4JgU40uZp3LW+sGgnshA48/zQQ==} engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 @@ -2885,14 +3049,14 @@ packages: '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.0.0 '@opentelemetry/semantic-conventions': ^1.34.0 - '@sentry/react@9.26.0': - resolution: {integrity: sha512-I2AreDlNK6bak5eRRLCRnphJTx8mrhXEZ0MiUMAbg0fcQ5kM/yf4C6LNJpMPa86UhBQDkXQus+Cb1uYQYNF7og==} + '@sentry/react@9.28.1': + resolution: {integrity: sha512-XnEURhb2wG7FFCGMuW/IJc8YeDMb9LM7cZSBwBDcplR11mCRsLpf4AGm6K1nWmAn5ZvWrXRO/TBAf9DNRAfnfg==} engines: {node: '>=18'} peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x - '@sentry/vercel-edge@9.26.0': - resolution: {integrity: sha512-CO18exGB8fClwXxFqz9TpWYSQkq+fIqF1DZx3gLEsbt8x3giw5Fk4/itoBaQUBctXLa6+X9kQm5lSvf+wRkonQ==} + '@sentry/vercel-edge@9.28.1': + resolution: {integrity: sha512-fX4Zc3uzpnJxcallZrWCvXFaMDBy710KlnPll3ja82QJVIhyzCf2ot109jGW8mKlpMXXBbDSKGZlY0v4pQW+lg==} engines: {node: '>=18'} '@sentry/webpack-plugin@3.5.0': @@ -2904,11 +3068,14 @@ packages: '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sinclair/typebox@0.34.33': + resolution: {integrity: sha512-5HAV9exOMcXRUxo+9iYB5n09XxzCXnfy4VTNW4xnDv+FgjzAGY989C28BIdljKqmF+ZltUwujE3aossvcVtq6g==} + '@sinonjs/commons@3.0.1': resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - '@sinonjs/fake-timers@10.3.0': - resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} + '@sinonjs/fake-timers@13.0.5': + resolution: {integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==} '@standard-schema/utils@0.3.0': resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} @@ -3123,8 +3290,8 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - '@t3-oss/env-core@0.13.6': - resolution: {integrity: sha512-rH7FgcB1YGbv/tvv7mdJAxnNvRkK/gEqdVYBwO1AVvaWOTNuftqskxkEYyhM2O+lkNPJmTq5YBE7H+Unl7CLjg==} + '@t3-oss/env-core@0.13.8': + resolution: {integrity: sha512-L1inmpzLQyYu4+Q1DyrXsGJYCXbtXjC4cICw1uAKv0ppYPQv656lhZPU91Qd1VS6SO/bou1/q5ufVzBGbNsUpw==} peerDependencies: arktype: ^2.1.0 typescript: '>=5.0.0' @@ -3140,8 +3307,8 @@ packages: zod: optional: true - '@t3-oss/env-nextjs@0.13.6': - resolution: {integrity: sha512-KcA5U8L+Be4OuR5YxmrBzkeo7WsKkEFJDwcAgYFwcBgxxc3oJBdTB7KPQfVrx7wjtX5aDr2jZ0LG55yEXqQi9A==} + '@t3-oss/env-nextjs@0.13.8': + resolution: {integrity: sha512-QmTLnsdQJ8BiQad2W2nvV6oUpH4oMZMqnFEjhVpzU0h3sI9hn8zb8crjWJ1Amq453mGZs6A4v4ihIeBFDOrLeQ==} peerDependencies: arktype: ^2.1.0 typescript: '>=5.0.0' @@ -3245,23 +3412,6 @@ packages: '@tailwindcss/postcss@4.1.8': resolution: {integrity: sha512-vB/vlf7rIky+w94aWMw34bWW1ka6g6C3xIOdICKX2GC0VcLtL6fhlLiafF0DVIwa9V6EHz8kbWMkS2s2QvvNlw==} - '@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.79.2': - resolution: {integrity: sha512-yYhm7rnvG6p3n7yBIUWz+XtuWUROMVFJ/07+O5M6OPny9C05n0wPjTNFgRnnaHXORxGqZKwWSZR1gmceFMsE7Q==} - peerDependencies: - '@tanstack/react-query': ^5.79.2 - react: ^18 || ^19 - - '@tanstack/react-query@5.79.2': - resolution: {integrity: sha512-kadeprsH6bWuhHCpqukXHRykJkxcLBxAaF0cQ05yawPmLZ/KiCpR1DyQenonF7A/70rnRUxhJD0RJejqk9wImQ==} - peerDependencies: - react: ^18 || ^19 - '@testing-library/dom@10.4.0': resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} engines: {node: '>=18'} @@ -3295,10 +3445,6 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' - '@tootallnate/once@2.0.0': - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -3368,8 +3514,8 @@ packages: '@types/js-cookie@2.2.7': resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} - '@types/jsdom@20.0.1': - resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} + '@types/jsdom@21.1.7': + resolution: {integrity: sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==} '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -3404,8 +3550,8 @@ packages: '@types/pg@8.6.1': resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==} - '@types/react-dom@19.1.5': - resolution: {integrity: sha512-CMCjrWucUBZvohgZxkjd6S9h0nZxXjzus6yDfUb+xLxYM7VvjKNH1tQrE9GWLql1XoOP4/Ds3bwFqShHUYraGg==} + '@types/react-dom@19.1.6': + resolution: {integrity: sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==} peerDependencies: '@types/react': ^19.0.0 @@ -3414,8 +3560,8 @@ packages: peerDependencies: '@types/react': '*' - '@types/react@19.1.6': - resolution: {integrity: sha512-JeG0rEWak0N6Itr6QUx+X60uQmN+5t3j9r/OVDtWzFXKaj6kD1BwJzOksD0FF6iWxZlbE1kB0q9vtnU2ekqa1Q==} + '@types/react@19.1.7': + resolution: {integrity: sha512-BnsPLV43ddr05N71gaGzyZ5hzkCmGwhMvYc8zmvI8Ci1bRkkDSzDDVfAXfN2tk748OwI7ediiPX6PfT9p0QGVg==} '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -3452,11 +3598,11 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/eslint-plugin@8.33.1': - resolution: {integrity: sha512-TDCXj+YxLgtvxvFlAvpoRv9MAncDLBV2oT9Bd7YBGC/b/sEURoOYuIwLI99rjWOfY3QtDzO+mk0n4AmdFExW8A==} + '@typescript-eslint/eslint-plugin@8.34.0': + resolution: {integrity: sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.33.1 + '@typescript-eslint/parser': ^8.34.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' @@ -3467,8 +3613,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.33.1': - resolution: {integrity: sha512-qwxv6dq682yVvgKKp2qWwLgRbscDAYktPptK4JPojCwwi3R9cwrvIxS4lvBpzmcqzR4bdn54Z0IG1uHFskW4dA==} + '@typescript-eslint/parser@8.34.0': + resolution: {integrity: sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -3480,6 +3626,12 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/project-service@8.34.0': + resolution: {integrity: sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==} + 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} @@ -3488,12 +3640,22 @@ packages: resolution: {integrity: sha512-dM4UBtgmzHR9bS0Rv09JST0RcHYearoEoo3pG5B6GoTR9XcyeqX87FEhPo+5kTvVfKCvfHaHrcgeJQc6mrDKrA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/scope-manager@8.34.0': + resolution: {integrity: sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==} + 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: typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/tsconfig-utils@8.34.0': + resolution: {integrity: sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/type-utils@8.32.1': resolution: {integrity: sha512-mv9YpQGA8iIsl5KyUPi+FGLm7+bA4fgXaeRcFKRDRwDMu4iwrSHeDPipwueNXhdIIZltwCJv+NkxftECbIZWfA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3501,8 +3663,8 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.33.1': - resolution: {integrity: sha512-1cG37d9xOkhlykom55WVwG2QRNC7YXlxMaMzqw2uPeJixBFfKWZgaP/hjAObqMN/u3fr5BrTwTnc31/L9jQ2ww==} + '@typescript-eslint/type-utils@8.34.0': + resolution: {integrity: sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -3516,6 +3678,10 @@ packages: resolution: {integrity: sha512-xid1WfizGhy/TKMTwhtVOgalHwPtV8T32MS9MaH50Cwvz6x6YqRIPdD2WvW0XaqOzTV9p5xdLY0h/ZusU5Lokg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.34.0': + resolution: {integrity: sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.32.1': resolution: {integrity: sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3528,6 +3694,12 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/typescript-estree@8.34.0': + resolution: {integrity: sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/utils@8.32.1': resolution: {integrity: sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3542,6 +3714,13 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' + '@typescript-eslint/utils@8.34.0': + resolution: {integrity: sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==} + 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.32.1': resolution: {integrity: sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3550,6 +3729,98 @@ packages: resolution: {integrity: sha512-3i8NrFcZeeDHJ+7ZUuDkGT+UHq+XoFGsymNK2jZCOHcfEzRQ0BdpRtdpSx/Iyf3MHLWIcLS0COuOPibKQboIiQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/visitor-keys@8.34.0': + resolution: {integrity: sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@unrs/resolver-binding-darwin-arm64@1.8.1': + resolution: {integrity: sha512-OKuBTQdOb4Kjbe+y4KgbRhn+nu47hNyNU2K3qjD+SA/bnQouvZnRzEiR85xZAIyZ6z1C+O1Zg1dK4hGH1RPdYA==} + cpu: [arm64] + os: [darwin] + + '@unrs/resolver-binding-darwin-x64@1.8.1': + resolution: {integrity: sha512-inaphBsOqqzauNvx6kSHrgqDLShicPg3+fInBcEdD7Ut8sUUbm2z19LL+S9ccGpHnYoNiJ+Qrf7/B8hRsCUvBw==} + cpu: [x64] + os: [darwin] + + '@unrs/resolver-binding-freebsd-x64@1.8.1': + resolution: {integrity: sha512-LkGw7jDoLKEZO6yYwTKUlrboD6Qmy9Jkq7ZDPlJReq/FnCnNh0k1Z1hjtevpqPCMLz9hGW0ITMb04jdDZ796Cg==} + cpu: [x64] + os: [freebsd] + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.8.1': + resolution: {integrity: sha512-6vhu22scv64dynXTVmeClenn3OPI8cwdhtydLFDkoW4UJzNwcgJ5mVtzbtikDGM9PmIQa+ekpH6tdvKt0ToK3A==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm-musleabihf@1.8.1': + resolution: {integrity: sha512-SrQ286JVFWlnZSm1/TJwulTgJVOdb1x8BWW2ecOK0Sx+acdRpoMf4WSxH+/+R4LyE/YYyekcEtUrPhSEgJ748g==} + cpu: [arm] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-gnu@1.8.1': + resolution: {integrity: sha512-I2s4L27V+2kAee43x/qAkFjTZJgmDvSd9vtnyINOdBEdz5+QqiG6ccd5pgOw06MsUwygkrhB4jOe4ZN4SA6IwA==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-arm64-musl@1.8.1': + resolution: {integrity: sha512-Drq80e/EQbdSVyJpheF65qVmfYy8OaDdQqoWV+09tZHz/P1SdSulvVtgtYrk216D++9hbx3c1bwVXwR5PZ2TzA==} + cpu: [arm64] + os: [linux] + + '@unrs/resolver-binding-linux-ppc64-gnu@1.8.1': + resolution: {integrity: sha512-EninHQHw8Zkq8K5qB6KWNDqjCtUzTDsCRQ6LzAtQWIxic/VQxR5Kl36V/GCXNvQaR7W0AB5gvJLyQtJwkf+AJA==} + cpu: [ppc64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-gnu@1.8.1': + resolution: {integrity: sha512-s7Xu5PS4vWhsb5ZFAi+UBguTn0g8qDhN+BbB1t9APX23AdAI7TS4DRrJV5dBVdQ6a8MiergGr1Cjb0Q1V/sW8w==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-musl@1.8.1': + resolution: {integrity: sha512-Ca+bVzOJtgQ3OrMkRSeDLYWJIjRmEylDHSZuSKqqPmZI2vgX6yZgzrKY28I6hjjG9idlW4DcJzLv/TjFXev+4Q==} + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-s390x-gnu@1.8.1': + resolution: {integrity: sha512-ut1vBBFs6AC5EcerH8HorcmS/9wAy6iI1tfpzT7jy+SKnMgmPth/psc3W5V04njble7cyLPjFHwYJTlxmozQ/g==} + cpu: [s390x] + os: [linux] + + '@unrs/resolver-binding-linux-x64-gnu@1.8.1': + resolution: {integrity: sha512-w5agLxesvrYKrCOlAsUkwRDogjnyRBi4/vEaujZRkXbeRCupJ9dFD0qUhLXZyIed+GSzJJIsJocUZIVzcTHYXQ==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-linux-x64-musl@1.8.1': + resolution: {integrity: sha512-vk5htmWYCLRpfjn2wmCUne6pLvlcYUFDAAut4g02/2iWeGeZO/3GmSLmiZ9fcn9oH0FUzgetg0/zSo8oZ7liIg==} + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-wasm32-wasi@1.8.1': + resolution: {integrity: sha512-RcsLTcrqDT5XW/TnhhIeM7lVLgUv/gvPEC4WaH+OhkLCkRfH6EEuhprwrcp1WhdlrtL/U5FkHh4NtFLnMXoeXA==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.8.1': + resolution: {integrity: sha512-XbSRLZY/gEi5weYv/aCkiUiSWvrNKkvec3m6/bDypDI+ZACwMllPH7smeOW/fdnIGhf9YtPATNliJHAS2GyMUA==} + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.8.1': + resolution: {integrity: sha512-SbCJMKOmqOsIBCklT5c+t0DjVbOkseE7ZN0OtMxRnraLKdj1AAv7d3cjJMYkPd9ZGKosHoMXo66gBs02YM8KeA==} + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.8.1': + resolution: {integrity: sha512-DdHqo7XbeUa/ZOcxq+q5iuO4sSxhwX9HR1JPL0JMOKEzgkIO4OKF2TPjqmo6UCCGZUXIMwrAycFXj/40sICagw==} + cpu: [x64] + os: [win32] + '@vercel/analytics@1.5.0': resolution: {integrity: sha512-MYsBzfPki4gthY5HnYN7jgInhAZ7Ac1cYDoRWFomwGHWEX7odTEzbtg9kf/QSo7XEsEAqlQugA6gJ2WS2DEa3g==} peerDependencies: @@ -3664,17 +3935,10 @@ packages: '@xtuc/long@4.2.2': resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} - abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - deprecated: Use your platform's native atob() and btoa() methods instead - abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} - acorn-globals@7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} - acorn-import-attributes@1.9.5: resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: @@ -3702,6 +3966,10 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} + agent-base@7.1.3: + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} + engines: {node: '>= 14'} + ajv-formats@2.1.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -3756,6 +4024,10 @@ packages: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -3850,9 +4122,6 @@ packages: resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} engines: {node: '>=4'} - axios@1.8.4: - resolution: {integrity: sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==} - axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} @@ -3863,6 +4132,12 @@ packages: peerDependencies: '@babel/core': ^7.8.0 + babel-jest@30.0.0: + resolution: {integrity: sha512-JQ0DhdFjODbSawDf0026uZuwaqfKkQzk+9mwWkq2XkKFIaMhFVOxlVmbFCOnnC76jATdxrff3IiUAvOAJec6tw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@babel/core': ^7.11.0 + babel-loader@9.2.1: resolution: {integrity: sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==} engines: {node: '>= 14.15.0'} @@ -3874,10 +4149,18 @@ packages: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} + babel-plugin-istanbul@7.0.0: + resolution: {integrity: sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw==} + engines: {node: '>=12'} + babel-plugin-jest-hoist@29.6.3: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + babel-plugin-jest-hoist@30.0.0: + resolution: {integrity: sha512-DSRm+US/FCB4xPDD6Rnslb6PAF9Bej1DZ+1u4aTiqJnk7ZX12eHsnDiIOqjGvITCq+u6wLqUhgS+faCNbVY8+g==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + babel-plugin-macros@3.1.0: resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} engines: {node: '>=10', npm: '>=6'} @@ -3908,6 +4191,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + babel-preset-jest@30.0.0: + resolution: {integrity: sha512-hgEuu/W7gk8QOWUA9+m3Zk+WpGvKc1Egp6rFQEfYxEoM9Fk/q8nuTXNL65OkhwGrTApauEGgakOoWVXj+UfhKw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + peerDependencies: + '@babel/core': ^7.11.0 + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -4087,6 +4376,10 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} + ci-info@4.2.0: + resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} + engines: {node: '>=8'} + cipher-base@1.0.6: resolution: {integrity: sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==} engines: {node: '>= 0.10'} @@ -4094,6 +4387,9 @@ packages: cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + cjs-module-lexer@2.1.0: + resolution: {integrity: sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA==} + class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} @@ -4224,11 +4520,6 @@ packages: create-hmac@1.1.7: resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} - create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} @@ -4279,15 +4570,9 @@ packages: engines: {node: '>=4'} hasBin: true - cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - - cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - - cssstyle@2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} + cssstyle@4.4.0: + resolution: {integrity: sha512-W0Y2HOXlPkb2yaKrCVRjinYKciu/qSLEmK0K9mcfDei3zwlnHFEHAs/Du3cIRwPqY+J4JsiBzUjoHyc8RsJ03A==} + engines: {node: '>=18'} csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -4295,9 +4580,9 @@ packages: damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - data-urls@3.0.2: - resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} - engines: {node: '>=12'} + data-urls@5.0.0: + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} + engines: {node: '>=18'} data-view-buffer@1.0.2: resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} @@ -4334,8 +4619,8 @@ packages: dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} - dedent@1.5.3: - resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + dedent@1.6.0: + resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==} peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: @@ -4435,11 +4720,6 @@ packages: domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} - deprecated: Use your platform's native DOMException instead - domhandler@4.3.1: resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} engines: {node: '>= 4'} @@ -4458,8 +4738,8 @@ packages: resolution: {integrity: sha512-PUjYKWtzOzPtdtQlTHQG3qfv4Y0XT8+Eas6UbxCmxTj7qgMf+39dDujf1BP1I+qqZtw9uzwTh8jYtkMuCq+B0Q==} hasBin: true - drizzle-orm@0.44.1: - resolution: {integrity: sha512-prIWOlwJbiYInvcJxE+IMiJCtMiFVrSUJCwx6AXSJvGOdLu35qZ46QncTZDgloiLNCG0XxTC8agQElSmsl++TA==} + drizzle-orm@0.44.2: + resolution: {integrity: sha512-zGAqBzWWkVSFjZpwPOrmCrgO++1kZ5H/rZ4qTGeGOe18iXGVJWf3WPfHOVwFIbmi8kHjfJstC6rJomzGx8g/dQ==} peerDependencies: '@aws-sdk/client-rds-data': '>=3' '@cloudflare/workers-types': '>=4' @@ -4554,6 +4834,9 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + ejs@3.1.10: resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} engines: {node: '>=0.10.0'} @@ -4682,11 +4965,6 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true - eslint-config-next@15.3.3: resolution: {integrity: sha512-QJLv/Ouk2vZnxL4b67njJwTLjTf7uZRltI0LL4GERYR4qMF5z08+gxkfODAeaK7TiC6o+cER91bDaEnwrTWV6Q==} peerDependencies: @@ -4857,14 +5135,18 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} - exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} + exit-x@0.2.2: + resolution: {integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==} engines: {node: '>= 0.8.0'} expect@29.7.0: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + expect@30.0.0: + resolution: {integrity: sha512-xCdPp6gwiR9q9lsPCHANarIkFTN/IMZso6Kkq03sOm9IIGtzK/UJqml0dkhHibGh8HKOj8BIDIpZ0BZuU7QK6w==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -4967,19 +5249,14 @@ packages: flatted@3.3.2: resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} - follow-redirects@1.15.9: - resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + fork-ts-checker-webpack-plugin@8.0.0: resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} @@ -4999,8 +5276,8 @@ packages: forwarded-parse@2.1.2: resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==} - framer-motion@12.16.0: - resolution: {integrity: sha512-xryrmD4jSBQrS2IkMdcTmiS4aSKckbS7kLDCuhUn9110SQKG1w3zlq1RTqCblewg+ZYe+m3sdtzQA6cRwo5g8Q==} + framer-motion@12.17.0: + resolution: {integrity: sha512-2hISKgDk49yCLStwG1wf4Kdy/D6eBw9/eRNaWFIYoI9vMQ/Mqd1Fz+gzVlEtxJmtQ9y4IWnXm19/+UXD3dAYAA==} peerDependencies: '@emotion/is-prop-valid': '*' react: ^18.0.0 || ^19.0.0 @@ -5094,6 +5371,10 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -5172,9 +5453,9 @@ packages: hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} + html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} html-entities@2.6.0: resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} @@ -5202,9 +5483,9 @@ packages: htmlparser2@6.1.0: resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} - http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} https-browserify@1.0.0: resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} @@ -5213,6 +5494,10 @@ packages: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -5460,8 +5745,8 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} - istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} engines: {node: '>=10'} istanbul-reports@3.1.7: @@ -5472,6 +5757,9 @@ packages: resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} engines: {node: '>= 0.4'} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jake@10.9.2: resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} engines: {node: '>=10'} @@ -5480,17 +5768,17 @@ packages: javascript-stringify@2.1.0: resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==} - jest-changed-files@29.7.0: - resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-changed-files@30.0.0: + resolution: {integrity: sha512-rzGpvCdPdEV1Ma83c1GbZif0L2KAm3vXSXGRlpx7yCt0vhruwCNouKNRh3SiVcISHP1mb3iJzjb7tAEnNu1laQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-circus@29.7.0: - resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-circus@30.0.0: + resolution: {integrity: sha512-nTwah78qcKVyndBS650hAkaEmwWGaVsMMoWdJwMnH77XArRJow2Ir7hc+8p/mATtxVZuM9OTkA/3hQocRIK5Dw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-cli@30.0.0: + resolution: {integrity: sha512-fWKAgrhlwVVCfeizsmIrPRTBYTzO82WSba3gJniZNR3PKXADgdC0mmCSK+M+t7N8RCXOVfY6kvCkvjUNtzmHYQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -5498,15 +5786,18 @@ packages: node-notifier: optional: true - jest-config@29.7.0: - resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-config@30.0.0: + resolution: {integrity: sha512-p13a/zun+sbOMrBnTEUdq/5N7bZMOGd1yMfqtAJniPNuzURMay4I+vxZLK1XSDbjvIhmeVdG8h8RznqYyjctyg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@types/node': '*' + esbuild-register: '>=3.4.0' ts-node: '>=9.0.0' peerDependenciesMeta: '@types/node': optional: true + esbuild-register: + optional: true ts-node: optional: true @@ -5514,26 +5805,30 @@ packages: resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-docblock@29.7.0: - resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-diff@30.0.0: + resolution: {integrity: sha512-TgT1+KipV8JTLXXeFX0qSvIJR/UXiNNojjxb/awh3vYlBZyChU/NEmyKmq+wijKjWEztyrGJFL790nqMqNjTHA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-each@29.7.0: - resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-docblock@30.0.0: + resolution: {integrity: sha512-By/iQ0nvTzghEecGzUMCp1axLtBh+8wB4Hpoi5o+x1stycjEmPcH1mHugL4D9Q+YKV++vKeX/3ZTW90QC8ICPg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-environment-jsdom@29.7.0: - resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-each@30.0.0: + resolution: {integrity: sha512-qkFEW3cfytEjG2KtrhwtldZfXYnWSanO8xUMXLe4A6yaiHMHJUalk0Yyv4MQH6aeaxgi4sGVrukvF0lPMM7U1w==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-environment-jsdom@30.0.0: + resolution: {integrity: sha512-IjDRABkSx+HpO7+WGVKPZL5XZajWRsMo2iQIudyiG4BhCi9Uah9HrFluqLUXdjPkIOoox+utUEUl8TDR2kc/Og==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: - canvas: ^2.5.0 + canvas: ^3.0.0 peerDependenciesMeta: canvas: optional: true - jest-environment-node@29.7.0: - resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-environment-node@30.0.0: + resolution: {integrity: sha512-sF6lxyA25dIURyDk4voYmGU9Uwz2rQKMfjxKnDd19yk+qxKGrimFqS5YsPHWTlAVBo+YhWzXsqZoaMzrTFvqfg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-get-type@29.6.3: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} @@ -5543,21 +5838,33 @@ packages: resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-leak-detector@29.7.0: - resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-haste-map@30.0.0: + resolution: {integrity: sha512-p4bXAhXTawTsADgQgTpbymdLaTyPW1xWNu1oIGG7/N3LIAbZVkH2JMJqS8/IUcnGR8Kc7WFE+vWbJvsqGCWZXw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-leak-detector@30.0.0: + resolution: {integrity: sha512-E/ly1azdVVbZrS0T6FIpyYHvsdek4FNaThJTtggjV/8IpKxh3p9NLndeUZy2+sjAI3ncS+aM0uLLon/dBg8htA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-matcher-utils@29.7.0: resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-matcher-utils@30.0.0: + resolution: {integrity: sha512-m5mrunqopkrqwG1mMdJxe1J4uGmS9AHHKYUmoxeQOxBcLjEvirIrIDwuKmUYrecPHVB/PUBpXs2gPoeA2FSSLQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-message-util@29.7.0: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-mock@29.7.0: - resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-message-util@30.0.0: + resolution: {integrity: sha512-pV3qcrb4utEsa/U7UI2VayNzSDQcmCllBZLSoIucrESRu0geKThFZOjjh0kACDJFJRAQwsK7GVsmS6SpEceD8w==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-mock@30.0.0: + resolution: {integrity: sha512-W2sRA4ALXILrEetEOh2ooZG6fZ01iwVs0OWMKSSWRcUlaLr4ESHuiKXDNTg+ZVgOq8Ei5445i/Yxrv59VT+XkA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-pnp-resolver@1.2.3: resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} @@ -5572,37 +5879,45 @@ packages: resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-resolve-dependencies@29.7.0: - resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-regex-util@30.0.0: + resolution: {integrity: sha512-rT84010qRu/5OOU7a9TeidC2Tp3Qgt9Sty4pOZ/VSDuEmRupIjKZAb53gU3jr4ooMlhwScrgC9UixJxWzVu9oQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-resolve@29.7.0: - resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve-dependencies@30.0.0: + resolution: {integrity: sha512-Yhh7odCAUNXhluK1bCpwIlHrN1wycYaTlZwq1GdfNBEESNNI/z1j1a7dUEWHbmB9LGgv0sanxw3JPmWU8NeebQ==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runner@29.7.0: - resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-resolve@30.0.0: + resolution: {integrity: sha512-zwWl1P15CcAfuQCEuxszjiKdsValhnWcj/aXg/R3aMHs8HVoCWHC4B/+5+1BirMoOud8NnN85GSP2LEZCbj3OA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runtime@29.7.0: - resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runner@30.0.0: + resolution: {integrity: sha512-xbhmvWIc8X1IQ8G7xTv0AQJXKjBVyxoVJEJgy7A4RXsSaO+k/1ZSBbHwjnUhvYqMvwQPomWssDkUx6EoidEhlw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-snapshot@29.7.0: - resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-runtime@30.0.0: + resolution: {integrity: sha512-/O07qVgFrFAOGKGigojmdR3jUGz/y3+a/v9S/Yi2MHxsD+v6WcPppglZJw0gNJkRBArRDK8CFAwpM/VuEiiRjA==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-snapshot@30.0.0: + resolution: {integrity: sha512-6oCnzjpvfj/UIOMTqKZ6gedWAUgaycMdV8Y8h2dRJPvc2wSjckN03pzeoonw8y33uVngfx7WMo1ygdRGEKOT7w==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-util@29.7.0: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-validate@29.7.0: - resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-util@30.0.0: + resolution: {integrity: sha512-fhNBBM9uSUbd4Lzsf8l/kcAdaHD/4SgoI48en3HXcBEMwKwoleKFMZ6cYEYs21SB779PRuRCyNLmymApAm8tZw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-watcher@29.7.0: - resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-validate@30.0.0: + resolution: {integrity: sha512-d6OkzsdlWItHAikUDs1hlLmpOIRhsZoXTCliV2XXalVQ3ZOeb9dy0CQ6AKulJu/XOZqpOEr/FiMH+FeOBVV+nw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest-watcher@30.0.0: + resolution: {integrity: sha512-fbAkojcyS53bOL/B7XYhahORq9cIaPwOgd/p9qW/hybbC8l6CzxfWJJxjlPBAIVN8dRipLR0zdhpGQdam+YBtw==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} @@ -5612,9 +5927,13 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-worker@30.0.0: + resolution: {integrity: sha512-VZvxfWIybIvwK8N/Bsfe43LfQgd/rD0c4h5nLUx78CAqPxIQcW2qDjsVAC53iUR8yxzFIeCFFvWOh8en8hGzdg==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + + jest@30.0.0: + resolution: {integrity: sha512-/3G2iFwsUY95vkflmlDn/IdLyLWqpQXcftptooaPH4qkyU52V7qVYf1BjmdSPlp1+0fs6BmNtrGaSFwOfV07ew==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -5670,11 +5989,11 @@ packages: 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'} + jsdom@26.1.0: + resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} + engines: {node: '>=18'} peerDependencies: - canvas: ^2.5.0 + canvas: ^3.0.0 peerDependenciesMeta: canvas: optional: true @@ -5729,10 +6048,6 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - knip@5.57.1: resolution: {integrity: sha512-FWdCuoYtaVB9+/9F9iGcKOGX2Orz9xEfbxCENq2UGnCwa6PGRYmlVR8d3MybnoplLmBjTC9yO/+npK5CRLTb2w==} engines: {node: '>=18.18.0'} @@ -5878,8 +6193,8 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - lucide-react@0.513.0: - resolution: {integrity: sha512-CJZKq2g8Y8yN4Aq002GahSXbG2JpFv9kXwyiOAMvUBv7pxeOFHUWKB0mO7MiY4ZVFCV4aNjv2BJFq/z3DgKPQg==} + lucide-react@0.514.0: + resolution: {integrity: sha512-HXD0OAMd+JM2xCjlwG1EGW9Nuab64dhjO3+MvdyD+pSUeOTBaVAPhQblKIYmmX4RyBYbdzW0VWnJpjJmxWGr6w==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -6010,8 +6325,8 @@ packages: module-details-from-path@1.0.3: resolution: {integrity: sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==} - motion-dom@12.16.0: - resolution: {integrity: sha512-Z2nGwWrrdH4egLEtgYMCEN4V2qQt1qxlKy/uV7w691ztyA41Q5Rbn0KNGbsNVDZr9E8PD2IOQ3hSccRnB6xWzw==} + motion-dom@12.17.0: + resolution: {integrity: sha512-FA6/c70R9NKs3g41XDVONzmUUrEmyaifLVGCWtAmHP0usDnX9W+RN/tmbC4EUl0w6yLGvMTOwnWCFVgA5luhRg==} motion-utils@12.12.1: resolution: {integrity: sha512-f9qiqUHm7hWSLlNW8gS9pisnsN7CRFRD58vNjptKdsqFLpkVnX00TNeD6Q0d27V9KzT7ySFyK1TZ/DShfVOv6w==} @@ -6030,6 +6345,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + napi-postinstall@0.2.4: + resolution: {integrity: sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + hasBin: true + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -6105,8 +6425,8 @@ 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==} + number-flow@0.5.8: + resolution: {integrity: sha512-FPr1DumWyGi5Nucoug14bC6xEz70A1TnhgSHhKyfqjgji2SOTz+iLJxKtv37N5JyJbteGYCm6NQ9p1O4KZ7iiA==} nwsapi@2.2.20: resolution: {integrity: sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==} @@ -6206,6 +6526,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} @@ -6409,12 +6732,12 @@ packages: postgres-range@1.1.4: resolution: {integrity: sha512-i/hbxIE9803Alj/6ytL7UHQxRvZkI9O4Sy+J3HGc4F4oo/2eQAjTSNJ0bfxyse3bH0nuVesCk+3IRLaMtG3H6w==} - postgres@3.4.5: - resolution: {integrity: sha512-cDWgoah1Gez9rN3H4165peY9qfpEo+SA61oQv65O3cRUE1pOEoJWwddwcqKE8XZYjbblOJlYDlLV4h67HrEVDg==} + postgres@3.4.7: + resolution: {integrity: sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==} engines: {node: '>=12'} - posthog-js@1.249.2: - resolution: {integrity: sha512-OMXCO/IfcJBjYTuebVynMbp8Kq329yKEQSCAnkqLmi8W2Bt5bi7S5xxMwDM3Pm7818Uh0C40XMG3rAtYozId6Q==} + posthog-js@1.250.1: + resolution: {integrity: sha512-Dl9BQjPa5FFVUauLSX/8HP6naRfU605GQYq+oAHFqwyv20NQDCHT0uRtFT1x2EYrY0kIQdd0d/rOY6Tg4wgqEg==} peerDependencies: '@rrweb/types': 2.0.0-alpha.17 rrweb-snapshot: 2.0.0-alpha.17 @@ -6424,9 +6747,9 @@ packages: rrweb-snapshot: optional: true - posthog-node@4.18.0: - resolution: {integrity: sha512-XROs1h+DNatgKh/AlIlCtDxWzwrKdYDb2mOs58n4yN8BkGN9ewqeQwG5ApS4/IzwCb7HPttUkOVulkYatd2PIw==} - engines: {node: '>=15.0.0'} + posthog-node@5.0.0: + resolution: {integrity: sha512-gontigBt1pGHGXZme3+ojDdCYL66h/vvo+6KaQ6A51xqUOYgRvyzCLkS9Xv816jNBesRO8ouRjG428SDb2fFkg==} + engines: {node: '>=20'} preact@10.26.4: resolution: {integrity: sha512-KJhO7LBFTjP71d83trW+Ilnjbo+ySsaAgCfXOXUlmGzJ4ygYPWmysm77yg4emwfmoz3b22yvH5IsVFHbhUaH5w==} @@ -6516,6 +6839,10 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + pretty-format@30.0.0: + resolution: {integrity: sha512-18NAOUr4ZOQiIR+BgI5NhQE7uREdx4ZyV0dyay5izh4yfQ+1T7BSvggxvRGoXocrRyevqW5OhScUjbi9GB8R8Q==} + engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -6527,19 +6854,12 @@ packages: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} - prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - psl@1.15.0: - resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} - public-encrypt@4.0.3: resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} @@ -6550,8 +6870,8 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - pure-rand@6.1.0: - resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + pure-rand@7.0.1: + resolution: {integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==} pusher-js@8.4.0: resolution: {integrity: sha512-wp3HqIIUc1GRyu1XrP6m2dgyE9MoCsXVsWNlohj0rjSkLf+a0jLvEyVubdg58oMk7bhjBWnFClgp8jfAa6Ak4Q==} @@ -6571,9 +6891,6 @@ packages: resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} engines: {node: '>=0.4.x'} - querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -6809,9 +7126,6 @@ packages: resolution: {integrity: sha512-fgZEz/t3FDrU9o7EhI+iNNq1pNNpJImOvX72HUd6RoFiw8MaKd8/gR5tLuc8A0G0e55LMbP6ImjnmXY6zrTmjw==} engines: {node: '>=8.6.0'} - requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - resize-observer-polyfill@1.5.1: resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} @@ -6834,10 +7148,6 @@ packages: resolution: {integrity: sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==} engines: {node: '>=12'} - resolve.exports@2.0.3: - resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} - engines: {node: '>=10'} - resolve@1.22.10: resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} engines: {node: '>= 0.4'} @@ -6868,6 +7178,9 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rrweb-cssom@0.8.0: + resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} + rtl-css-js@1.16.1: resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} @@ -7015,12 +7328,13 @@ packages: signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -7118,6 +7432,10 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + string.prototype.includes@2.0.1: resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} engines: {node: '>= 0.4'} @@ -7237,11 +7555,15 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + synckit@0.11.8: + resolution: {integrity: sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==} + engines: {node: ^14.18.0 || >=16.0.0} + tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - tailwind-merge@3.3.0: - resolution: {integrity: sha512-fyW/pEfcQSiigd5SNn0nApUOxx0zB/dm6UDU/rEwc2c3sX2smWUNbapHv+QRqLGVp9GWX3THIa7MUGPo+YkDzQ==} + tailwind-merge@3.3.1: + resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==} tailwindcss-animate@1.0.7: resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} @@ -7306,6 +7628,13 @@ packages: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} + tldts-core@6.1.86: + resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} + + tldts@6.1.86: + resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} + hasBin: true + tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -7316,16 +7645,16 @@ packages: toggle-selection@1.0.6: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - tough-cookie@4.1.4: - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} - engines: {node: '>=6'} + tough-cookie@5.1.2: + resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} + engines: {node: '>=16'} tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} + tr46@5.1.1: + resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} + engines: {node: '>=18'} truncate-middle@2.0.1: resolution: {integrity: sha512-upHYhCcywHt40b/H3TU6q75GCE7p8Na5Gp0xwC0JKSDg9p7ByWiMDBzAz0YpC1hvOi/L0y5YE3Ml5ngSA4IRtQ==} @@ -7456,8 +7785,8 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.33.1: - resolution: {integrity: sha512-AgRnV4sKkWOiZ0Kjbnf5ytTJXMUZQ0qhSVdQtDNYLPLnjsATEYhaO94GlRQwi4t4gO8FfjM6NnikHeKjUm8D7A==} + typescript-eslint@8.34.0: + resolution: {integrity: sha512-MRpfN7uYjTrTGigFCt8sRyNqJFhjN0WwZecldaqhWm+wy0gaRt8Edb/3cuUy0zdq2opJWT6iXINKAtewnDOltQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -7491,10 +7820,6 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} - universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -7506,6 +7831,9 @@ packages: resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} + unrs-resolver@1.8.1: + resolution: {integrity: sha512-M5++xH5Tu/m3NNAc0+dBHidXfF6bTC08mfhQ3AB5UTonEzQSH9ASC/a7EbZN3WU5m0OWMTvf12GHVJZ3uUmPtA==} + update-browserslist-db@1.1.2: resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} hasBin: true @@ -7515,9 +7843,6 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - url@0.11.4: resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} engines: {node: '>= 0.4'} @@ -7603,9 +7928,9 @@ packages: vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} - w3c-xmlserializer@4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} - engines: {node: '>=14'} + w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} walk-up-path@3.0.1: resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} @@ -7659,17 +7984,17 @@ packages: webpack-cli: optional: true - whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} - whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} - whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} + whatwg-url@14.2.0: + resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} + engines: {node: '>=18'} whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} @@ -7708,6 +8033,10 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -7715,6 +8044,10 @@ packages: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + ws@8.18.0: resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} @@ -7727,9 +8060,9 @@ packages: utf-8-validate: optional: true - xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} + xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} @@ -7779,8 +8112,8 @@ packages: peerDependencies: zod: ^3.18.0 - zod@3.25.51: - resolution: {integrity: sha512-TQSnBldh+XSGL+opiSIq0575wvDPqu09AqWe1F7JhUMKY+M91/aGlK4MhpVNO7MgYfHcVCB1ffwAUTJzllKJqg==} + zod@3.25.61: + resolution: {integrity: sha512-fzfJgUw78LTNnHujj9re1Ov/JJQkRZZGDMcYqSx7Hp4rPOkKywaFHq0S6GoHeXs0wGNE/sIOutkXgnwzrVOGCQ==} snapshots: @@ -7801,14 +8134,30 @@ snapshots: '@ark/util@0.46.0': optional: true + '@asamuzakjp/css-color@3.2.0': + dependencies: + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + lru-cache: 10.4.3 + '@babel/code-frame@7.26.2': dependencies: '@babel/helper-validator-identifier': 7.25.9 js-tokens: 4.0.0 picocolors: 1.1.1 + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.26.8': {} + '@babel/compat-data@7.27.5': {} + '@babel/core@7.26.9': dependencies: '@ampproject/remapping': 2.3.0 @@ -7829,6 +8178,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.27.4': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) + '@babel/helpers': 7.27.6 + '@babel/parser': 7.27.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.27.4 + '@babel/types': 7.27.6 + convert-source-map: 2.0.0 + debug: 4.4.0 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/generator@7.27.0': dependencies: '@babel/parser': 7.27.0 @@ -7837,6 +8206,14 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 + '@babel/generator@7.27.5': + dependencies: + '@babel/parser': 7.27.5 + '@babel/types': 7.27.6 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.25.9': dependencies: '@babel/types': 7.27.0 @@ -7849,6 +8226,14 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-compilation-targets@7.27.2': + dependencies: + '@babel/compat-data': 7.27.5 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.24.4 + lru-cache: 5.1.1 + semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.27.0(@babel/core@7.26.9)': dependencies: '@babel/core': 7.26.9 @@ -7894,6 +8279,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-imports@7.27.1': + dependencies: + '@babel/traverse': 7.27.4 + '@babel/types': 7.27.6 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.9)': dependencies: '@babel/core': 7.26.9 @@ -7903,12 +8295,23 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.4)': + dependencies: + '@babel/core': 7.27.4 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.27.4 + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.25.9': dependencies: '@babel/types': 7.27.0 '@babel/helper-plugin-utils@7.26.5': {} + '@babel/helper-plugin-utils@7.27.1': {} + '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.9)': dependencies: '@babel/core': 7.26.9 @@ -7936,10 +8339,16 @@ snapshots: '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-option@7.25.9': {} + '@babel/helper-validator-option@7.27.1': {} + '@babel/helper-wrap-function@7.25.9': dependencies: '@babel/template': 7.27.0 @@ -7953,10 +8362,19 @@ snapshots: '@babel/template': 7.27.0 '@babel/types': 7.27.0 + '@babel/helpers@7.27.6': + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.27.6 + '@babel/parser@7.27.0': dependencies: '@babel/types': 7.27.0 + '@babel/parser@7.27.5': + dependencies: + '@babel/types': 7.27.6 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.9)': dependencies: '@babel/core': 7.26.9 @@ -7996,9 +8414,9 @@ snapshots: dependencies: '@babel/core': 7.26.9 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.9)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.9)': @@ -8006,14 +8424,19 @@ snapshots: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.9)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.9)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.27.4)': + dependencies: + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.26.9)': @@ -8031,14 +8454,19 @@ snapshots: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.9)': + '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.9)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.27.4)': + dependencies: + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.9)': @@ -8046,44 +8474,49 @@ snapshots: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.9)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.27.4)': + dependencies: + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.9)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.9)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.9)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.9)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.9)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.9)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.9)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.27.4 '@babel/helper-plugin-utils': 7.26.5 '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.9)': @@ -8091,6 +8524,11 @@ snapshots: '@babel/core': 7.26.9 '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.27.4)': + dependencies: + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.9)': dependencies: '@babel/core': 7.26.9 @@ -8583,6 +9021,12 @@ snapshots: '@babel/parser': 7.27.0 '@babel/types': 7.27.0 + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.27.5 + '@babel/types': 7.27.6 + '@babel/traverse@7.27.0': dependencies: '@babel/code-frame': 7.26.2 @@ -8595,11 +9039,28 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.27.4': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.5 + '@babel/parser': 7.27.5 + '@babel/template': 7.27.2 + '@babel/types': 7.27.6 + debug: 4.4.0 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + '@babel/types@7.27.0': dependencies: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@babel/types@7.27.6': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@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))': @@ -8634,13 +9095,13 @@ snapshots: react-dom: 19.1.0(react@19.1.0) tslib: 2.8.1 - '@clerk/nextjs@6.21.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-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@clerk/nextjs@6.21.0(next@15.3.2(@babel/core@7.27.4)(@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': 2.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@clerk/clerk-react': 5.31.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@clerk/shared': 3.9.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@clerk/types': 4.60.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) + next: 15.3.2(@babel/core@7.27.4)(@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) server-only: 0.0.1 @@ -8671,6 +9132,26 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 + '@csstools/color-helpers@5.0.2': {} + + '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/css-color-parser@3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/color-helpers': 5.0.2 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/css-tokenizer@3.0.4': {} + '@dnd-kit/accessibility@3.1.1(react@19.1.0)': dependencies: react: 19.1.0 @@ -8709,6 +9190,11 @@ snapshots: tslib: 2.8.1 optional: true + '@emnapi/runtime@1.4.3': + dependencies: + tslib: 2.8.1 + optional: true + '@emnapi/wasi-threads@1.0.2': dependencies: tslib: 2.8.1 @@ -8742,7 +9228,7 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@19.1.6)(react@19.1.0)': + '@emotion/react@11.14.0(@types/react@19.1.7)(react@19.1.0)': dependencies: '@babel/runtime': 7.26.10 '@emotion/babel-plugin': 11.13.5 @@ -8754,7 +9240,7 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 transitivePeerDependencies: - supports-color @@ -8998,7 +9484,7 @@ snapshots: '@floating-ui/utils@0.2.9': {} - '@hookform/resolvers@5.0.1(react-hook-form@7.57.0(react@19.1.0))': + '@hookform/resolvers@5.1.1(react-hook-form@7.57.0(react@19.1.0))': dependencies: '@standard-schema/utils': 0.3.0 react-hook-form: 7.57.0(react@19.1.0) @@ -9169,6 +9655,15 @@ snapshots: '@img/sharp-win32-x64@0.34.1': optional: true + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + '@isaacs/fs-minipass@4.0.1': dependencies: minipass: 7.1.2 @@ -9183,111 +9678,135 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@jest/console@29.7.0': + '@jest/console@30.0.0': dependencies: - '@jest/types': 29.6.3 + '@jest/types': 30.0.0 '@types/node': 22.15.29 chalk: 4.1.2 - jest-message-util: 29.7.0 - jest-util: 29.7.0 + jest-message-util: 30.0.0 + jest-util: 30.0.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.29)(typescript@5.8.3))': + '@jest/core@30.0.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.2))(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 + '@jest/console': 30.0.0 + '@jest/pattern': 30.0.0 + '@jest/reporters': 30.0.0 + '@jest/test-result': 30.0.0 + '@jest/transform': 30.0.0 + '@jest/types': 30.0.0 '@types/node': 22.15.29 ansi-escapes: 4.3.2 chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 + ci-info: 4.2.0 + exit-x: 0.2.2 graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - 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 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 + jest-changed-files: 30.0.0 + jest-config: 30.0.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)) + jest-haste-map: 30.0.0 + jest-message-util: 30.0.0 + jest-regex-util: 30.0.0 + jest-resolve: 30.0.0 + jest-resolve-dependencies: 30.0.0 + jest-runner: 30.0.0 + jest-runtime: 30.0.0 + jest-snapshot: 30.0.0 + jest-util: 30.0.0 + jest-validate: 30.0.0 + jest-watcher: 30.0.0 micromatch: 4.0.8 - pretty-format: 29.7.0 + pretty-format: 30.0.0 slash: 3.0.0 - strip-ansi: 6.0.1 transitivePeerDependencies: - babel-plugin-macros + - esbuild-register - supports-color - ts-node - '@jest/environment@29.7.0': + '@jest/diff-sequences@30.0.0': {} + + '@jest/environment-jsdom-abstract@30.0.0(jsdom@26.1.0(bufferutil@4.0.9))': dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 + '@jest/environment': 30.0.0 + '@jest/fake-timers': 30.0.0 + '@jest/types': 30.0.0 + '@types/jsdom': 21.1.7 + '@types/node': 22.15.29 + jest-mock: 30.0.0 + jest-util: 30.0.0 + jsdom: 26.1.0(bufferutil@4.0.9) + + '@jest/environment@30.0.0': + dependencies: + '@jest/fake-timers': 30.0.0 + '@jest/types': 30.0.0 '@types/node': 22.15.29 - jest-mock: 29.7.0 + jest-mock: 30.0.0 '@jest/expect-utils@29.7.0': dependencies: jest-get-type: 29.6.3 - '@jest/expect@29.7.0': + '@jest/expect-utils@30.0.0': dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 + '@jest/get-type': 30.0.0 + + '@jest/expect@30.0.0': + dependencies: + expect: 30.0.0 + jest-snapshot: 30.0.0 transitivePeerDependencies: - supports-color - '@jest/fake-timers@29.7.0': + '@jest/fake-timers@30.0.0': dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 + '@jest/types': 30.0.0 + '@sinonjs/fake-timers': 13.0.5 '@types/node': 22.15.29 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 + jest-message-util: 30.0.0 + jest-mock: 30.0.0 + jest-util: 30.0.0 - '@jest/globals@29.7.0': + '@jest/get-type@30.0.0': {} + + '@jest/globals@30.0.0': dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 + '@jest/environment': 30.0.0 + '@jest/expect': 30.0.0 + '@jest/types': 30.0.0 + jest-mock: 30.0.0 transitivePeerDependencies: - supports-color - '@jest/reporters@29.7.0': + '@jest/pattern@30.0.0': + dependencies: + '@types/node': 22.15.29 + jest-regex-util: 30.0.0 + + '@jest/reporters@30.0.0': dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + '@jest/console': 30.0.0 + '@jest/test-result': 30.0.0 + '@jest/transform': 30.0.0 + '@jest/types': 30.0.0 '@jridgewell/trace-mapping': 0.3.25 '@types/node': 22.15.29 chalk: 4.1.2 collect-v8-coverage: 1.0.2 - exit: 0.1.2 - glob: 7.2.3 + exit-x: 0.2.2 + glob: 10.4.5 graceful-fs: 4.2.11 istanbul-lib-coverage: 3.2.2 istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 + istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.7 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - jest-worker: 29.7.0 + jest-message-util: 30.0.0 + jest-util: 30.0.0 + jest-worker: 30.0.0 slash: 3.0.0 string-length: 4.0.2 - strip-ansi: 6.0.1 v8-to-istanbul: 9.3.0 transitivePeerDependencies: - supports-color @@ -9296,24 +9815,35 @@ snapshots: dependencies: '@sinclair/typebox': 0.27.8 - '@jest/source-map@29.6.3': + '@jest/schemas@30.0.0': + dependencies: + '@sinclair/typebox': 0.34.33 + + '@jest/snapshot-utils@30.0.0': + dependencies: + '@jest/types': 30.0.0 + chalk: 4.1.2 + graceful-fs: 4.2.11 + natural-compare: 1.4.0 + + '@jest/source-map@30.0.0': dependencies: '@jridgewell/trace-mapping': 0.3.25 callsites: 3.1.0 graceful-fs: 4.2.11 - '@jest/test-result@29.7.0': + '@jest/test-result@30.0.0': dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 + '@jest/console': 30.0.0 + '@jest/types': 30.0.0 '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 - '@jest/test-sequencer@29.7.0': + '@jest/test-sequencer@30.0.0': dependencies: - '@jest/test-result': 29.7.0 + '@jest/test-result': 30.0.0 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 + jest-haste-map: 30.0.0 slash: 3.0.0 '@jest/transform@29.7.0': @@ -9335,6 +9865,27 @@ snapshots: write-file-atomic: 4.0.2 transitivePeerDependencies: - supports-color + optional: true + + '@jest/transform@30.0.0': + dependencies: + '@babel/core': 7.27.4 + '@jest/types': 30.0.0 + '@jridgewell/trace-mapping': 0.3.25 + babel-plugin-istanbul: 7.0.0 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 30.0.0 + jest-regex-util: 30.0.0 + jest-util: 30.0.0 + micromatch: 4.0.8 + pirates: 4.0.7 + slash: 3.0.0 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color '@jest/types@29.6.3': dependencies: @@ -9345,6 +9896,16 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 + '@jest/types@30.0.0': + dependencies: + '@jest/pattern': 30.0.0 + '@jest/schemas': 30.0.0 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 22.15.29 + '@types/yargs': 17.0.33 + chalk: 4.1.2 + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 @@ -9372,16 +9933,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.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/code-highlight@7.17.7(@mantine/core@7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.7)(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.6)(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.7)(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.6)(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.7)(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) @@ -9389,8 +9950,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.6)(react@19.1.0) - react-textarea-autosize: 8.5.9(@types/react@19.1.6)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.7)(react@19.1.0) + react-textarea-autosize: 8.5.9(@types/react@19.1.7)(react@19.1.0) type-fest: 4.41.0 transitivePeerDependencies: - '@types/react' @@ -9399,12 +9960,19 @@ snapshots: dependencies: react: 19.1.0 - '@mdx-js/react@3.1.0(@types/react@19.1.6)(react@19.1.0)': + '@mdx-js/react@3.1.0(@types/react@19.1.7)(react@19.1.0)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.1.6 + '@types/react': 19.1.7 react: 19.1.0 + '@napi-rs/wasm-runtime@0.2.11': + dependencies: + '@emnapi/core': 1.4.3 + '@emnapi/runtime': 1.4.3 + '@tybys/wasm-util': 0.9.0 + optional: true + '@napi-rs/wasm-runtime@0.2.9': dependencies: '@emnapi/core': 1.4.3 @@ -9448,9 +10016,9 @@ snapshots: '@next/swc-win32-x64-msvc@15.3.2': optional: true - '@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)': + '@next/third-parties@15.3.3(next@15.3.2(@babel/core@7.27.4)(@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) + next: 15.3.2(@babel/core@7.27.4)(@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 third-party-capital: 1.0.20 @@ -9468,10 +10036,10 @@ 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)': + '@number-flow/react@0.5.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: esm-env: 1.2.2 - number-flow: 0.5.7 + number-flow: 0.5.8 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) @@ -9761,6 +10329,11 @@ snapshots: '@petamoriken/float16@3.9.1': optional: true + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.2.7': {} + '@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))': dependencies: ansi-html: 0.0.9 @@ -9785,487 +10358,487 @@ snapshots: '@radix-ui/primitive@1.1.2': {} - '@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-arrow@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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)': + '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.7)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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)': + '@radix-ui/react-checkbox@1.3.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.7)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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)': + '@radix-ui/react-collapsible@1.1.11(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.7)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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-collection@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.7)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.7)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - '@radix-ui/react-context@1.1.2(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-context@1.1.2(@types/react@19.1.7)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - '@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)': + '@radix-ui/react-dialog@1.1.14(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.7)(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.6)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.7)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@radix-ui/react-direction@1.1.1(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-direction@1.1.1(@types/react@19.1.7)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - '@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-dismissable-layer@1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.7)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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)': + '@radix-ui/react-dropdown-menu@2.1.15(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-menu': 2.1.15(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.7)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - '@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-focus-scope@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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-compose-refs': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@radix-ui/react-hover-card@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-hover-card@1.1.14(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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-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-use-controllable-state': 1.2.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@radix-ui/react-id@1.1.1(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-id@1.1.1(@types/react@19.1.7)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 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.7)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - '@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)': + '@radix-ui/react-label@2.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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-menu@2.1.15(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.7)(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.6)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.7)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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)': + '@radix-ui/react-popover@1.1.14(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.7)(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.6)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.7)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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-popper@1.2.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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/react-arrow': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.7)(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.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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-portal@1.1.9(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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-presence@1.1.4(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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-compose-refs': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.7)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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-primitive@2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6)(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.7)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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)': + '@radix-ui/react-progress@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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)': + '@radix-ui/react-radio-group@1.3.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.7)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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-roving-focus@1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.7)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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)': + '@radix-ui/react-separator@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@radix-ui/react-slot@1.2.3(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-slot@1.2.3(@types/react@19.1.7)(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.7)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - '@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)': + '@radix-ui/react-switch@1.2.5(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.7)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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)': + '@radix-ui/react-tabs@1.1.12(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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)': + '@radix-ui/react-toast@1.2.14(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@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)': + '@radix-ui/react-tooltip@1.2.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.7)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.7)(react@19.1.0)': dependencies: - '@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) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.7)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.7)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 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.7)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - '@radix-ui/react-use-escape-keydown@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.7)(react@19.1.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.6)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.7)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.7)(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.6 + '@types/react': 19.1.7 - '@radix-ui/react-use-layout-effect@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.7)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.7)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.7)(react@19.1.0)': dependencies: '@radix-ui/rect': 1.1.1 react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - '@radix-ui/react-use-size@1.1.1(@types/react@19.1.6)(react@19.1.0)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.1.7)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 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.7)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - '@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)': + '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) '@radix-ui/rect@1.1.1': {} @@ -10356,33 +10929,33 @@ snapshots: '@rushstack/eslint-patch@1.10.5': {} - '@sentry-internal/browser-utils@9.26.0': + '@sentry-internal/browser-utils@9.28.1': dependencies: - '@sentry/core': 9.26.0 + '@sentry/core': 9.28.1 - '@sentry-internal/feedback@9.26.0': + '@sentry-internal/feedback@9.28.1': dependencies: - '@sentry/core': 9.26.0 + '@sentry/core': 9.28.1 - '@sentry-internal/replay-canvas@9.26.0': + '@sentry-internal/replay-canvas@9.28.1': dependencies: - '@sentry-internal/replay': 9.26.0 - '@sentry/core': 9.26.0 + '@sentry-internal/replay': 9.28.1 + '@sentry/core': 9.28.1 - '@sentry-internal/replay@9.26.0': + '@sentry-internal/replay@9.28.1': dependencies: - '@sentry-internal/browser-utils': 9.26.0 - '@sentry/core': 9.26.0 + '@sentry-internal/browser-utils': 9.28.1 + '@sentry/core': 9.28.1 '@sentry/babel-plugin-component-annotate@3.5.0': {} - '@sentry/browser@9.26.0': + '@sentry/browser@9.28.1': dependencies: - '@sentry-internal/browser-utils': 9.26.0 - '@sentry-internal/feedback': 9.26.0 - '@sentry-internal/replay': 9.26.0 - '@sentry-internal/replay-canvas': 9.26.0 - '@sentry/core': 9.26.0 + '@sentry-internal/browser-utils': 9.28.1 + '@sentry-internal/feedback': 9.28.1 + '@sentry-internal/replay': 9.28.1 + '@sentry-internal/replay-canvas': 9.28.1 + '@sentry/core': 9.28.1 '@sentry/bundler-plugin-core@3.5.0': dependencies: @@ -10438,22 +11011,22 @@ snapshots: - encoding - supports-color - '@sentry/core@9.26.0': {} + '@sentry/core@9.28.1': {} - '@sentry/nextjs@9.26.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.28.1(@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.27.4)(@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.34.0 '@rollup/plugin-commonjs': 28.0.1(rollup@4.35.0) - '@sentry-internal/browser-utils': 9.26.0 - '@sentry/core': 9.26.0 - '@sentry/node': 9.26.0 - '@sentry/opentelemetry': 9.26.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.26.0(react@19.1.0) - '@sentry/vercel-edge': 9.26.0 + '@sentry-internal/browser-utils': 9.28.1 + '@sentry/core': 9.28.1 + '@sentry/node': 9.28.1 + '@sentry/opentelemetry': 9.28.1(@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.28.1(react@19.1.0) + '@sentry/vercel-edge': 9.28.1 '@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) + next: 15.3.2(@babel/core@7.27.4)(@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 rollup: 4.35.0 stacktrace-parser: 0.1.10 @@ -10467,7 +11040,7 @@ snapshots: - supports-color - webpack - '@sentry/node@9.26.0': + '@sentry/node@9.28.1': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) @@ -10499,14 +11072,14 @@ snapshots: '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.34.0 '@prisma/instrumentation': 6.8.2(@opentelemetry/api@1.9.0) - '@sentry/core': 9.26.0 - '@sentry/opentelemetry': 9.26.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/core': 9.28.1 + '@sentry/opentelemetry': 9.28.1(@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.26.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/opentelemetry@9.28.1(@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) @@ -10514,19 +11087,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.34.0 - '@sentry/core': 9.26.0 + '@sentry/core': 9.28.1 - '@sentry/react@9.26.0(react@19.1.0)': + '@sentry/react@9.28.1(react@19.1.0)': dependencies: - '@sentry/browser': 9.26.0 - '@sentry/core': 9.26.0 + '@sentry/browser': 9.28.1 + '@sentry/core': 9.28.1 hoist-non-react-statics: 3.3.2 react: 19.1.0 - '@sentry/vercel-edge@9.26.0': + '@sentry/vercel-edge@9.28.1': dependencies: '@opentelemetry/api': 1.9.0 - '@sentry/core': 9.26.0 + '@sentry/core': 9.28.1 '@sentry/webpack-plugin@3.5.0(webpack@5.98.0(esbuild@0.25.2))': dependencies: @@ -10540,11 +11113,13 @@ snapshots: '@sinclair/typebox@0.27.8': {} + '@sinclair/typebox@0.34.33': {} + '@sinonjs/commons@3.0.1': dependencies: type-detect: 4.0.8 - '@sinonjs/fake-timers@10.3.0': + '@sinonjs/fake-timers@13.0.5': dependencies: '@sinonjs/commons': 3.0.1 @@ -10573,9 +11148,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.6)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-docs@8.6.14(@types/react@19.1.7)(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) + '@mdx-js/react': 3.1.0(@types/react@19.1.7)(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)) @@ -10586,12 +11161,12 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@storybook/addon-essentials@8.6.14(@types/react@19.1.6)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-essentials@8.6.14(@types/react@19.1.7)(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-docs': 8.6.14(@types/react@19.1.7)(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)) @@ -10733,7 +11308,7 @@ snapshots: 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@8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.2)(next@15.3.2(@babel/core@7.27.4)(@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) @@ -10759,7 +11334,7 @@ snapshots: 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) + next: 15.3.2(@babel/core@7.27.4)(@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 @@ -10893,19 +11468,19 @@ snapshots: dependencies: tslib: 2.8.1 - '@t3-oss/env-core@0.13.6(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.51)': + '@t3-oss/env-core@0.13.8(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.61)': optionalDependencies: arktype: 2.1.20 typescript: 5.8.3 - zod: 3.25.51 + zod: 3.25.61 - '@t3-oss/env-nextjs@0.13.6(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.51)': + '@t3-oss/env-nextjs@0.13.8(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.61)': dependencies: - '@t3-oss/env-core': 0.13.6(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.51) + '@t3-oss/env-core': 0.13.8(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.61) optionalDependencies: arktype: 2.1.20 typescript: 5.8.3 - zod: 3.25.51 + zod: 3.25.61 '@tailwindcss/node@4.1.8': dependencies: @@ -10979,21 +11554,6 @@ snapshots: postcss: 8.5.3 tailwindcss: 4.1.8 - '@tanstack/query-core@5.79.2': {} - - '@tanstack/query-devtools@5.76.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.79.2(react@19.1.0) - react: 19.1.0 - - '@tanstack/react-query@5.79.2(react@19.1.0)': - dependencies: - '@tanstack/query-core': 5.79.2 - react: 19.1.0 - '@testing-library/dom@10.4.0': dependencies: '@babel/code-frame': 7.26.2 @@ -11025,22 +11585,20 @@ 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.6))(@types/react@19.1.6)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6 - '@types/react-dom': 19.1.5(@types/react@19.1.6) + '@types/react': 19.1.7 + '@types/react-dom': 19.1.6(@types/react@19.1.7) '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: '@testing-library/dom': 10.4.0 - '@tootallnate/once@2.0.0': {} - '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -11100,6 +11658,7 @@ snapshots: '@types/graceful-fs@4.1.9': dependencies: '@types/node': 22.15.29 + optional: true '@types/html-minifier-terser@6.1.0': {} @@ -11120,7 +11679,7 @@ snapshots: '@types/js-cookie@2.2.7': {} - '@types/jsdom@20.0.1': + '@types/jsdom@21.1.7': dependencies: '@types/node': 22.15.29 '@types/tough-cookie': 4.0.5 @@ -11165,15 +11724,15 @@ snapshots: pg-protocol: 1.7.1 pg-types: 2.2.0 - '@types/react-dom@19.1.5(@types/react@19.1.6)': + '@types/react-dom@19.1.6(@types/react@19.1.7)': dependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - '@types/react-transition-group@4.4.12(@types/react@19.1.6)': + '@types/react-transition-group@4.4.12(@types/react@19.1.7)': dependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - '@types/react@19.1.6': + '@types/react@19.1.7': dependencies: csstype: 3.1.3 @@ -11216,14 +11775,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@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/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(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.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 + '@typescript-eslint/parser': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/type-utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 eslint: 9.28.0(jiti@2.4.2) graphemer: 1.4.0 ignore: 7.0.4 @@ -11245,12 +11804,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/parser@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@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 + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 debug: 4.4.0 eslint: 9.28.0(jiti@2.4.2) typescript: 5.8.3 @@ -11266,6 +11825,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/project-service@8.34.0(typescript@5.8.3)': + dependencies: + '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) + '@typescript-eslint/types': 8.34.0 + 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 @@ -11276,10 +11844,19 @@ snapshots: '@typescript-eslint/types': 8.33.1 '@typescript-eslint/visitor-keys': 8.33.1 + '@typescript-eslint/scope-manager@8.34.0': + dependencies: + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/visitor-keys': 8.34.0 + '@typescript-eslint/tsconfig-utils@8.33.1(typescript@5.8.3)': dependencies: typescript: 5.8.3 + '@typescript-eslint/tsconfig-utils@8.34.0(typescript@5.8.3)': + dependencies: + 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) @@ -11291,10 +11868,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: - '@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) + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) debug: 4.4.0 eslint: 9.28.0(jiti@2.4.2) ts-api-utils: 2.1.0(typescript@5.8.3) @@ -11306,6 +11883,8 @@ snapshots: '@typescript-eslint/types@8.33.1': {} + '@typescript-eslint/types@8.34.0': {} + '@typescript-eslint/typescript-estree@8.32.1(typescript@5.8.3)': dependencies: '@typescript-eslint/types': 8.32.1 @@ -11336,6 +11915,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/typescript-estree@8.34.0(typescript@5.8.3)': + dependencies: + '@typescript-eslint/project-service': 8.34.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/visitor-keys': 8.34.0 + debug: 4.4.0 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + 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.32.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) @@ -11358,19 +11953,90 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.32.1': - dependencies: - '@typescript-eslint/types': 8.32.1 - eslint-visitor-keys: 4.2.0 - - '@typescript-eslint/visitor-keys@8.33.1': + '@typescript-eslint/utils@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3)': + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0(jiti@2.4.2)) + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + eslint: 9.28.0(jiti@2.4.2) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.32.1': + dependencies: + '@typescript-eslint/types': 8.32.1 + eslint-visitor-keys: 4.2.0 + + '@typescript-eslint/visitor-keys@8.33.1': dependencies: '@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)': + '@typescript-eslint/visitor-keys@8.34.0': + dependencies: + '@typescript-eslint/types': 8.34.0 + eslint-visitor-keys: 4.2.0 + + '@ungap/structured-clone@1.3.0': {} + + '@unrs/resolver-binding-darwin-arm64@1.8.1': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.8.1': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.8.1': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.8.1': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.8.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.8.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.8.1': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.8.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.8.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.8.1': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.8.1': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.8.1': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.8.1': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.8.1': + dependencies: + '@napi-rs/wasm-runtime': 0.2.11 + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.8.1': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.8.1': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.8.1': + optional: true + + '@vercel/analytics@1.5.0(next@15.3.2(@babel/core@7.27.4)(@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)': optionalDependencies: - 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) + next: 15.3.2(@babel/core@7.27.4)(@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 '@vercel/edge-config-fs@0.1.0': {} @@ -11503,17 +12169,10 @@ snapshots: '@xtuc/long@4.2.2': {} - abab@2.0.6: {} - abort-controller@3.0.0: dependencies: event-target-shim: 5.0.1 - acorn-globals@7.0.1: - dependencies: - acorn: 8.14.0 - acorn-walk: 8.3.4 - acorn-import-attributes@1.9.5(acorn@8.14.0): dependencies: acorn: 8.14.0 @@ -11539,6 +12198,8 @@ snapshots: transitivePeerDependencies: - supports-color + agent-base@7.1.3: {} + ajv-formats@2.1.1(ajv@8.17.1): optionalDependencies: ajv: 8.17.1 @@ -11584,6 +12245,8 @@ snapshots: ansi-styles@5.2.0: {} + ansi-styles@6.2.1: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -11711,23 +12374,29 @@ snapshots: axe-core@4.10.2: {} - axios@1.8.4: - dependencies: - follow-redirects: 1.15.9 - form-data: 4.0.2 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - axobject-query@4.1.0: {} - babel-jest@29.7.0(@babel/core@7.26.9): + babel-jest@29.7.0(@babel/core@7.27.4): dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.27.4 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.26.9) + babel-preset-jest: 29.6.3(@babel/core@7.27.4) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + optional: true + + babel-jest@30.0.0(@babel/core@7.27.4): + dependencies: + '@babel/core': 7.27.4 + '@jest/transform': 30.0.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 7.0.0 + babel-preset-jest: 30.0.0(@babel/core@7.27.4) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -11750,6 +12419,17 @@ snapshots: test-exclude: 6.0.0 transitivePeerDependencies: - supports-color + optional: true + + babel-plugin-istanbul@7.0.0: + dependencies: + '@babel/helper-plugin-utils': 7.26.5 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 6.0.3 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color babel-plugin-jest-hoist@29.6.3: dependencies: @@ -11757,6 +12437,13 @@ snapshots: '@babel/types': 7.27.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.7 + optional: true + + babel-plugin-jest-hoist@30.0.0: + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.27.6 + '@types/babel__core': 7.20.5 babel-plugin-macros@3.1.0: dependencies: @@ -11788,30 +12475,37 @@ snapshots: transitivePeerDependencies: - supports-color - babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.9): - dependencies: - '@babel/core': 7.26.9 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.9) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.9) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.9) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.9) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.9) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.9) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.9) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.9) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.9) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.9) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.9) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.9) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.9) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.9) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.9) - - babel-preset-jest@29.6.3(@babel/core@7.26.9): - dependencies: - '@babel/core': 7.26.9 + babel-preset-current-node-syntax@1.1.0(@babel/core@7.27.4): + dependencies: + '@babel/core': 7.27.4 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.27.4) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.4) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.27.4) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.27.4) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.27.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.27.4) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.27.4) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.27.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.27.4) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.27.4) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.27.4) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.27.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.27.4) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.27.4) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.27.4) + + babel-preset-jest@29.6.3(@babel/core@7.27.4): + dependencies: + '@babel/core': 7.27.4 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.9) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.27.4) + optional: true + + babel-preset-jest@30.0.0(@babel/core@7.27.4): + dependencies: + '@babel/core': 7.27.4 + babel-plugin-jest-hoist: 30.0.0 + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.27.4) balanced-match@1.0.2: {} @@ -12003,6 +12697,8 @@ snapshots: ci-info@3.9.0: {} + ci-info@4.2.0: {} + cipher-base@1.0.6: dependencies: inherits: 2.0.4 @@ -12010,6 +12706,8 @@ snapshots: cjs-module-lexer@1.4.3: {} + cjs-module-lexer@2.1.0: {} + class-variance-authority@0.7.1: dependencies: clsx: 2.1.1 @@ -12086,10 +12784,10 @@ snapshots: cookie@1.0.2: {} - 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): + cookies-next@6.0.0(next@15.3.2(@babel/core@7.27.4)(@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) + next: 15.3.2(@babel/core@7.27.4)(@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 copy-to-clipboard@3.3.3: @@ -12145,21 +12843,6 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.11 - 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.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: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - create-require@1.1.1: {} cross-env@7.0.3: @@ -12223,23 +12906,19 @@ snapshots: cssesc@3.0.0: {} - cssom@0.3.8: {} - - cssom@0.5.0: {} - - cssstyle@2.3.0: + cssstyle@4.4.0: dependencies: - cssom: 0.3.8 + '@asamuzakjp/css-color': 3.2.0 + rrweb-cssom: 0.8.0 csstype@3.1.3: {} damerau-levenshtein@1.0.8: {} - data-urls@3.0.2: + data-urls@5.0.0: dependencies: - abab: 2.0.6 - whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.2.0 data-view-buffer@1.0.2: dependencies: @@ -12271,7 +12950,7 @@ snapshots: dedent@0.7.0: {} - dedent@1.5.3(babel-plugin-macros@3.1.0): + dedent@1.6.0(babel-plugin-macros@3.1.0): optionalDependencies: babel-plugin-macros: 3.1.0 @@ -12356,10 +13035,6 @@ snapshots: domelementtype@2.3.0: {} - domexception@4.0.0: - dependencies: - webidl-conversions: 7.0.0 - domhandler@4.3.1: dependencies: domelementtype: 2.3.0 @@ -12386,13 +13061,13 @@ snapshots: transitivePeerDependencies: - supports-color - 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): + drizzle-orm@0.44.2(@opentelemetry/api@1.9.0)(@types/pg@8.11.6)(@vercel/postgres@0.10.0)(gel@2.0.1)(postgres@3.4.7): optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/pg': 8.11.6 '@vercel/postgres': 0.10.0 gel: 2.0.1 - postgres: 3.4.5 + postgres: 3.4.7 dunder-proto@1.0.1: dependencies: @@ -12400,6 +13075,8 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 + eastasianwidth@0.2.0: {} + ejs@3.1.10: dependencies: jake: 10.9.2 @@ -12630,14 +13307,6 @@ snapshots: escape-string-regexp@4.0.0: {} - escodegen@2.1.0: - dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionalDependencies: - source-map: 0.6.1 - 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.3 @@ -12647,7 +13316,7 @@ snapshots: 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.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-import: 2.31.0(@typescript-eslint/parser@8.34.0(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)) @@ -12682,15 +13351,15 @@ snapshots: is-glob: 4.0.3 stable-hash: 0.0.4 optionalDependencies: - 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-import: 2.31.0(@typescript-eslint/parser@8.34.0(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.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)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.34.0(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.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.34.0(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: @@ -12700,7 +13369,7 @@ snapshots: dependencies: 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-import@2.31.0(@typescript-eslint/parser@8.34.0(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 @@ -12711,7 +13380,7 @@ snapshots: doctrine: 2.1.0 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.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)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.34.0(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 @@ -12723,7 +13392,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/parser': 8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -12891,7 +13560,7 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - exit@0.1.2: {} + exit-x@0.2.2: {} expect@29.7.0: dependencies: @@ -12901,6 +13570,15 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 + expect@30.0.0: + dependencies: + '@jest/expect-utils': 30.0.0 + '@jest/get-type': 30.0.0 + jest-matcher-utils: 30.0.0 + jest-message-util: 30.0.0 + jest-mock: 30.0.0 + jest-util: 30.0.0 + fast-deep-equal@3.1.3: {} fast-glob@3.3.1: @@ -13006,12 +13684,15 @@ snapshots: flatted@3.3.2: {} - follow-redirects@1.15.9: {} - for-each@0.3.5: dependencies: is-callable: 1.2.7 + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + fork-ts-checker-webpack-plugin@8.0.0(typescript@5.8.3)(webpack@5.98.0(esbuild@0.25.2)): dependencies: '@babel/code-frame': 7.26.2 @@ -13042,9 +13723,9 @@ snapshots: forwarded-parse@2.1.2: {} - framer-motion@12.16.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + framer-motion@12.17.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - motion-dom: 12.16.0 + motion-dom: 12.17.0 motion-utils: 12.12.1 tslib: 2.8.1 optionalDependencies: @@ -13077,9 +13758,9 @@ snapshots: functions-have-names@1.2.3: {} - geist@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)): + geist@1.4.2(next@15.3.2(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@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) + next: 15.3.2(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) gel@2.0.1: dependencies: @@ -13141,6 +13822,15 @@ snapshots: glob-to-regexp@0.4.1: {} + glob@10.4.5: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -13218,9 +13908,9 @@ snapshots: dependencies: react-is: 16.13.1 - html-encoding-sniffer@3.0.0: + html-encoding-sniffer@4.0.0: dependencies: - whatwg-encoding: 2.0.0 + whatwg-encoding: 3.1.1 html-entities@2.6.0: {} @@ -13253,10 +13943,9 @@ snapshots: domutils: 2.8.0 entities: 2.2.0 - http-proxy-agent@5.0.0: + http-proxy-agent@7.0.2: dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 + agent-base: 7.1.3 debug: 4.4.0 transitivePeerDependencies: - supports-color @@ -13270,6 +13959,13 @@ snapshots: transitivePeerDependencies: - supports-color + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.3 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + human-signals@2.1.0: {} hyphenate-style-name@1.1.0: {} @@ -13499,6 +14195,7 @@ snapshots: semver: 6.3.1 transitivePeerDependencies: - supports-color + optional: true istanbul-lib-instrument@6.0.3: dependencies: @@ -13516,11 +14213,11 @@ snapshots: make-dir: 4.0.0 supports-color: 7.2.0 - istanbul-lib-source-maps@4.0.1: + istanbul-lib-source-maps@5.0.6: dependencies: + '@jridgewell/trace-mapping': 0.3.25 debug: 4.4.0 istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 transitivePeerDependencies: - supports-color @@ -13538,6 +14235,12 @@ snapshots: has-symbols: 1.1.0 set-function-name: 2.0.2 + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jake@10.9.2: dependencies: async: 3.2.6 @@ -13547,83 +14250,86 @@ snapshots: javascript-stringify@2.1.0: {} - jest-changed-files@29.7.0: + jest-changed-files@30.0.0: dependencies: execa: 5.1.1 - jest-util: 29.7.0 + jest-util: 30.0.0 p-limit: 3.1.0 - jest-circus@29.7.0(babel-plugin-macros@3.1.0): + jest-circus@30.0.0(babel-plugin-macros@3.1.0): dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 + '@jest/environment': 30.0.0 + '@jest/expect': 30.0.0 + '@jest/test-result': 30.0.0 + '@jest/types': 30.0.0 '@types/node': 22.15.29 chalk: 4.1.2 co: 4.6.0 - dedent: 1.5.3(babel-plugin-macros@3.1.0) + dedent: 1.6.0(babel-plugin-macros@3.1.0) is-generator-fn: 2.1.0 - jest-each: 29.7.0 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 + jest-each: 30.0.0 + jest-matcher-utils: 30.0.0 + jest-message-util: 30.0.0 + jest-runtime: 30.0.0 + jest-snapshot: 30.0.0 + jest-util: 30.0.0 p-limit: 3.1.0 - pretty-format: 29.7.0 - pure-rand: 6.1.0 + pretty-format: 30.0.0 + pure-rand: 7.0.1 slash: 3.0.0 stack-utils: 2.0.6 transitivePeerDependencies: - babel-plugin-macros - supports-color - 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)): + jest-cli@30.0.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.2))(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.29)(typescript@5.8.3)) - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 + '@jest/core': 30.0.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)) + '@jest/test-result': 30.0.0 + '@jest/types': 30.0.0 chalk: 4.1.2 - 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 + exit-x: 0.2.2 import-local: 3.2.0 - 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 + jest-config: 30.0.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)) + jest-util: 30.0.0 + jest-validate: 30.0.0 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' - babel-plugin-macros + - esbuild-register - supports-color - ts-node - 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-config@30.0.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.2))(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 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.26.9) + '@babel/core': 7.27.4 + '@jest/get-type': 30.0.0 + '@jest/pattern': 30.0.0 + '@jest/test-sequencer': 30.0.0 + '@jest/types': 30.0.0 + babel-jest: 30.0.0(@babel/core@7.27.4) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 4.2.0 deepmerge: 4.3.1 - glob: 7.2.3 + glob: 10.4.5 graceful-fs: 4.2.11 - jest-circus: 29.7.0(babel-plugin-macros@3.1.0) - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 + jest-circus: 30.0.0(babel-plugin-macros@3.1.0) + jest-docblock: 30.0.0 + jest-environment-node: 30.0.0 + jest-regex-util: 30.0.0 + jest-resolve: 30.0.0 + jest-runner: 30.0.0 + jest-util: 30.0.0 + jest-validate: 30.0.0 micromatch: 4.0.8 parse-json: 5.2.0 - pretty-format: 29.7.0 + pretty-format: 30.0.0 slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 22.15.29 + esbuild-register: 3.6.0(esbuild@0.25.2) ts-node: 10.9.2(@types/node@22.15.29)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros @@ -13636,41 +14342,46 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 - jest-docblock@29.7.0: + jest-diff@30.0.0: + dependencies: + '@jest/diff-sequences': 30.0.0 + '@jest/get-type': 30.0.0 + chalk: 4.1.2 + pretty-format: 30.0.0 + + jest-docblock@30.0.0: dependencies: detect-newline: 3.1.0 - jest-each@29.7.0: + jest-each@30.0.0: dependencies: - '@jest/types': 29.6.3 + '@jest/get-type': 30.0.0 + '@jest/types': 30.0.0 chalk: 4.1.2 - jest-get-type: 29.6.3 - jest-util: 29.7.0 - pretty-format: 29.7.0 + jest-util: 30.0.0 + pretty-format: 30.0.0 - jest-environment-jsdom@29.7.0(bufferutil@4.0.9): + jest-environment-jsdom@30.0.0(bufferutil@4.0.9): dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/jsdom': 20.0.1 + '@jest/environment': 30.0.0 + '@jest/environment-jsdom-abstract': 30.0.0(jsdom@26.1.0(bufferutil@4.0.9)) + '@types/jsdom': 21.1.7 '@types/node': 22.15.29 - jest-mock: 29.7.0 - jest-util: 29.7.0 - jsdom: 20.0.3(bufferutil@4.0.9) + jsdom: 26.1.0(bufferutil@4.0.9) transitivePeerDependencies: - bufferutil - supports-color - utf-8-validate - jest-environment-node@29.7.0: + jest-environment-node@30.0.0: dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 + '@jest/environment': 30.0.0 + '@jest/fake-timers': 30.0.0 + '@jest/types': 30.0.0 '@types/node': 22.15.29 - jest-mock: 29.7.0 - jest-util: 29.7.0 + jest-mock: 30.0.0 + jest-util: 30.0.0 + jest-validate: 30.0.0 jest-get-type@29.6.3: {} @@ -13689,11 +14400,27 @@ snapshots: walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 + optional: true - jest-leak-detector@29.7.0: + jest-haste-map@30.0.0: dependencies: - jest-get-type: 29.6.3 - pretty-format: 29.7.0 + '@jest/types': 30.0.0 + '@types/node': 22.15.29 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 30.0.0 + jest-util: 30.0.0 + jest-worker: 30.0.0 + micromatch: 4.0.8 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + + jest-leak-detector@30.0.0: + dependencies: + '@jest/get-type': 30.0.0 + pretty-format: 30.0.0 jest-matcher-utils@29.7.0: dependencies: @@ -13702,6 +14429,13 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 + jest-matcher-utils@30.0.0: + dependencies: + '@jest/get-type': 30.0.0 + chalk: 4.1.2 + jest-diff: 30.0.0 + pretty-format: 30.0.0 + jest-message-util@29.7.0: dependencies: '@babel/code-frame': 7.26.2 @@ -13714,112 +14448,128 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 - jest-mock@29.7.0: + jest-message-util@30.0.0: dependencies: - '@jest/types': 29.6.3 + '@babel/code-frame': 7.27.1 + '@jest/types': 30.0.0 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 30.0.0 + slash: 3.0.0 + stack-utils: 2.0.6 + + jest-mock@30.0.0: + dependencies: + '@jest/types': 30.0.0 '@types/node': 22.15.29 - jest-util: 29.7.0 + jest-util: 30.0.0 - jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): + jest-pnp-resolver@1.2.3(jest-resolve@30.0.0): optionalDependencies: - jest-resolve: 29.7.0 + jest-resolve: 30.0.0 - jest-regex-util@29.6.3: {} + jest-regex-util@29.6.3: + optional: true + + jest-regex-util@30.0.0: {} - jest-resolve-dependencies@29.7.0: + jest-resolve-dependencies@30.0.0: dependencies: - jest-regex-util: 29.6.3 - jest-snapshot: 29.7.0 + jest-regex-util: 30.0.0 + jest-snapshot: 30.0.0 transitivePeerDependencies: - supports-color - jest-resolve@29.7.0: + jest-resolve@30.0.0: dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) - jest-util: 29.7.0 - jest-validate: 29.7.0 - resolve: 1.22.10 - resolve.exports: 2.0.3 + jest-haste-map: 30.0.0 + jest-pnp-resolver: 1.2.3(jest-resolve@30.0.0) + jest-util: 30.0.0 + jest-validate: 30.0.0 slash: 3.0.0 + unrs-resolver: 1.8.1 - jest-runner@29.7.0: + jest-runner@30.0.0: dependencies: - '@jest/console': 29.7.0 - '@jest/environment': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + '@jest/console': 30.0.0 + '@jest/environment': 30.0.0 + '@jest/test-result': 30.0.0 + '@jest/transform': 30.0.0 + '@jest/types': 30.0.0 '@types/node': 22.15.29 chalk: 4.1.2 emittery: 0.13.1 + exit-x: 0.2.2 graceful-fs: 4.2.11 - jest-docblock: 29.7.0 - jest-environment-node: 29.7.0 - jest-haste-map: 29.7.0 - jest-leak-detector: 29.7.0 - jest-message-util: 29.7.0 - jest-resolve: 29.7.0 - jest-runtime: 29.7.0 - jest-util: 29.7.0 - jest-watcher: 29.7.0 - jest-worker: 29.7.0 + jest-docblock: 30.0.0 + jest-environment-node: 30.0.0 + jest-haste-map: 30.0.0 + jest-leak-detector: 30.0.0 + jest-message-util: 30.0.0 + jest-resolve: 30.0.0 + jest-runtime: 30.0.0 + jest-util: 30.0.0 + jest-watcher: 30.0.0 + jest-worker: 30.0.0 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: - supports-color - jest-runtime@29.7.0: + jest-runtime@30.0.0: dependencies: - '@jest/environment': 29.7.0 - '@jest/fake-timers': 29.7.0 - '@jest/globals': 29.7.0 - '@jest/source-map': 29.6.3 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 + '@jest/environment': 30.0.0 + '@jest/fake-timers': 30.0.0 + '@jest/globals': 30.0.0 + '@jest/source-map': 30.0.0 + '@jest/test-result': 30.0.0 + '@jest/transform': 30.0.0 + '@jest/types': 30.0.0 '@types/node': 22.15.29 chalk: 4.1.2 - cjs-module-lexer: 1.4.3 + cjs-module-lexer: 2.1.0 collect-v8-coverage: 1.0.2 - glob: 7.2.3 + glob: 10.4.5 graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 + jest-haste-map: 30.0.0 + jest-message-util: 30.0.0 + jest-mock: 30.0.0 + jest-regex-util: 30.0.0 + jest-resolve: 30.0.0 + jest-snapshot: 30.0.0 + jest-util: 30.0.0 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color - jest-snapshot@29.7.0: - dependencies: - '@babel/core': 7.26.9 - '@babel/generator': 7.27.0 - '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.9) - '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.9) - '@babel/types': 7.27.0 - '@jest/expect-utils': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.9) + jest-snapshot@30.0.0: + dependencies: + '@babel/core': 7.27.4 + '@babel/generator': 7.27.5 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.27.4) + '@babel/types': 7.27.6 + '@jest/expect-utils': 30.0.0 + '@jest/get-type': 30.0.0 + '@jest/snapshot-utils': 30.0.0 + '@jest/transform': 30.0.0 + '@jest/types': 30.0.0 + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.27.4) chalk: 4.1.2 - expect: 29.7.0 + expect: 30.0.0 graceful-fs: 4.2.11 - jest-diff: 29.7.0 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.7.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - natural-compare: 1.4.0 - pretty-format: 29.7.0 + jest-diff: 30.0.0 + jest-matcher-utils: 30.0.0 + jest-message-util: 30.0.0 + jest-util: 30.0.0 + pretty-format: 30.0.0 semver: 7.7.2 + synckit: 0.11.8 transitivePeerDependencies: - supports-color @@ -13832,24 +14582,33 @@ snapshots: graceful-fs: 4.2.11 picomatch: 2.3.1 - jest-validate@29.7.0: + jest-util@30.0.0: dependencies: - '@jest/types': 29.6.3 + '@jest/types': 30.0.0 + '@types/node': 22.15.29 + chalk: 4.1.2 + ci-info: 4.2.0 + graceful-fs: 4.2.11 + picomatch: 4.0.2 + + jest-validate@30.0.0: + dependencies: + '@jest/get-type': 30.0.0 + '@jest/types': 30.0.0 camelcase: 6.3.0 chalk: 4.1.2 - jest-get-type: 29.6.3 leven: 3.1.0 - pretty-format: 29.7.0 + pretty-format: 30.0.0 - jest-watcher@29.7.0: + jest-watcher@30.0.0: dependencies: - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 + '@jest/test-result': 30.0.0 + '@jest/types': 30.0.0 '@types/node': 22.15.29 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 29.7.0 + jest-util: 30.0.0 string-length: 4.0.2 jest-worker@27.5.1: @@ -13864,16 +14623,26 @@ snapshots: jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 + optional: true - 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-worker@30.0.0: dependencies: - '@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 + '@types/node': 22.15.29 + '@ungap/structured-clone': 1.3.0 + jest-util: 30.0.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest@30.0.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)): + dependencies: + '@jest/core': 30.0.0(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)) + '@jest/types': 30.0.0 import-local: 3.2.0 - 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)) + jest-cli: 30.0.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.2))(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros + - esbuild-register - supports-color - ts-node @@ -13881,21 +14650,21 @@ 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@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)): + jotai-devtools@0.12.0(@types/react@19.1.7)(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/code-highlight': 7.17.7(@mantine/core@7.17.7(@mantine/hooks@7.17.7(react@19.1.0))(@types/react@19.1.7)(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.7)(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.6)(react@19.1.0) + jotai: 2.12.4(@types/react@19.1.7)(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.6)(react@19.1.0) + react-json-tree: 0.18.0(@types/react@19.1.7)(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' @@ -13903,9 +14672,9 @@ snapshots: - redux - storybook - jotai@2.12.4(@types/react@19.1.6)(react@19.1.0): + jotai@2.12.4(@types/react@19.1.7)(react@19.1.0): optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 react: 19.1.0 js-cookie@2.2.1: {} @@ -13925,34 +14694,28 @@ snapshots: jsdoc-type-pratt-parser@4.1.0: {} - jsdom@20.0.3(bufferutil@4.0.9): + jsdom@26.1.0(bufferutil@4.0.9): dependencies: - abab: 2.0.6 - acorn: 8.14.0 - acorn-globals: 7.0.1 - cssom: 0.5.0 - cssstyle: 2.3.0 - data-urls: 3.0.2 + cssstyle: 4.4.0 + data-urls: 5.0.0 decimal.js: 10.5.0 - domexception: 4.0.0 - escodegen: 2.1.0 - form-data: 4.0.2 - html-encoding-sniffer: 3.0.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 nwsapi: 2.2.20 parse5: 7.2.1 + rrweb-cssom: 0.8.0 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 4.1.4 - w3c-xmlserializer: 4.0.0 + tough-cookie: 5.1.2 + w3c-xmlserializer: 5.0.0 webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 - whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.2.0 ws: 8.18.0(bufferutil@4.0.9) - xml-name-validator: 4.0.0 + xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil - supports-color @@ -14000,8 +14763,6 @@ snapshots: dependencies: json-buffer: 3.0.1 - kleur@3.0.3: {} - knip@5.57.1(@types/node@22.15.29)(typescript@5.8.3): dependencies: '@nodelib/fs.walk': 1.2.8 @@ -14017,8 +14778,8 @@ snapshots: smol-toml: 1.3.3 strip-json-comments: 5.0.1 typescript: 5.8.3 - zod: 3.25.51 - zod-validation-error: 3.4.0(zod@3.25.51) + zod: 3.25.61 + zod-validation-error: 3.4.0(zod@3.25.61) language-subtag-registry@0.3.23: {} @@ -14128,7 +14889,7 @@ snapshots: dependencies: yallist: 3.1.1 - lucide-react@0.513.0(react@19.1.0): + lucide-react@0.514.0(react@19.1.0): dependencies: react: 19.1.0 @@ -14238,7 +14999,7 @@ snapshots: module-details-from-path@1.0.3: {} - motion-dom@12.16.0: + motion-dom@12.17.0: dependencies: motion-utils: 12.12.1 @@ -14261,6 +15022,8 @@ snapshots: nanoid@3.3.8: {} + napi-postinstall@0.2.4: {} + natural-compare@1.4.0: {} neo-async@2.6.2: {} @@ -14270,7 +15033,7 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.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): + next@15.3.2(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: '@next/env': 15.3.2 '@swc/counter': 0.1.3 @@ -14280,7 +15043,7 @@ snapshots: postcss: 8.4.31 react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - styled-jsx: 5.1.6(@babel/core@7.26.9)(babel-plugin-macros@3.1.0)(react@19.1.0) + styled-jsx: 5.1.6(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@19.1.0) optionalDependencies: '@next/swc-darwin-arm64': 15.3.2 '@next/swc-darwin-x64': 15.3.2 @@ -14352,7 +15115,7 @@ snapshots: dependencies: boolbase: 1.0.0 - number-flow@0.5.7: + number-flow@0.5.8: dependencies: esm-env: 1.2.2 @@ -14481,6 +15244,8 @@ snapshots: p-try@2.2.0: {} + package-json-from-dist@1.0.1: {} + pako@1.0.11: {} param-case@3.0.4: @@ -14671,20 +15436,16 @@ snapshots: postgres-range@1.1.4: {} - postgres@3.4.5: {} + postgres@3.4.7: {} - posthog-js@1.249.2: + posthog-js@1.250.1: dependencies: core-js: 3.41.0 fflate: 0.4.8 preact: 10.26.4 web-vitals: 4.2.4 - posthog-node@4.18.0: - dependencies: - axios: 1.8.4 - transitivePeerDependencies: - - debug + posthog-node@5.0.0: {} preact@10.26.4: {} @@ -14720,17 +15481,18 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 + pretty-format@30.0.0: + dependencies: + '@jest/schemas': 30.0.0 + ansi-styles: 5.2.0 + react-is: 18.3.1 + process-nextick-args@2.0.1: {} process@0.11.10: {} progress@2.0.3: {} - prompts@2.4.2: - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - prop-types@15.8.1: dependencies: loose-envify: 1.4.0 @@ -14739,10 +15501,6 @@ snapshots: proxy-from-env@1.1.0: {} - psl@1.15.0: - dependencies: - punycode: 2.3.1 - public-encrypt@4.0.3: dependencies: bn.js: 4.12.1 @@ -14756,7 +15514,7 @@ snapshots: punycode@2.3.1: {} - pure-rand@6.1.0: {} + pure-rand@7.0.1: {} pusher-js@8.4.0: dependencies: @@ -14781,8 +15539,6 @@ snapshots: querystring-es3@0.2.1: {} - querystringify@2.2.0: {} - queue-microtask@1.2.3: {} queue@6.0.2: @@ -14854,11 +15610,11 @@ snapshots: react-is@18.3.1: {} - react-json-tree@0.18.0(@types/react@19.1.6)(react@19.1.0): + react-json-tree@0.18.0(@types/react@19.1.7)(react@19.1.0): dependencies: '@babel/runtime': 7.26.10 '@types/lodash': 4.17.16 - '@types/react': 19.1.6 + '@types/react': 19.1.7 react: 19.1.0 react-base16-styling: 0.9.1 @@ -14879,61 +15635,61 @@ snapshots: react-refresh@0.14.2: {} - react-remove-scroll-bar@2.3.8(@types/react@19.1.6)(react@19.1.0): + react-remove-scroll-bar@2.3.8(@types/react@19.1.7)(react@19.1.0): dependencies: react: 19.1.0 - react-style-singleton: 2.2.3(@types/react@19.1.6)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.7)(react@19.1.0) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - react-remove-scroll@2.6.3(@types/react@19.1.6)(react@19.1.0): + react-remove-scroll@2.6.3(@types/react@19.1.7)(react@19.1.0): dependencies: 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) + react-remove-scroll-bar: 2.3.8(@types/react@19.1.7)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.7)(react@19.1.0) tslib: 2.8.1 - 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) + use-callback-ref: 1.3.3(@types/react@19.1.7)(react@19.1.0) + use-sidecar: 1.1.3(@types/react@19.1.7)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 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.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + react-select@5.10.1(@types/react@19.1.7)(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.6)(react@19.1.0) + '@emotion/react': 11.14.0(@types/react@19.1.7)(react@19.1.0) '@floating-ui/dom': 1.6.13 - '@types/react-transition-group': 4.4.12(@types/react@19.1.6) + '@types/react-transition-group': 4.4.12(@types/react@19.1.7) 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.6)(react@19.1.0) + use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.7)(react@19.1.0) transitivePeerDependencies: - '@types/react' - supports-color - react-style-singleton@2.2.3(@types/react@19.1.6)(react@19.1.0): + react-style-singleton@2.2.3(@types/react@19.1.7)(react@19.1.0): dependencies: get-nonce: 1.0.1 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - react-textarea-autosize@8.5.9(@types/react@19.1.6)(react@19.1.0): + react-textarea-autosize@8.5.9(@types/react@19.1.7)(react@19.1.0): dependencies: '@babel/runtime': 7.26.10 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) + use-composed-ref: 1.4.0(@types/react@19.1.7)(react@19.1.0) + use-latest: 1.3.0(@types/react@19.1.7)(react@19.1.0) transitivePeerDependencies: - '@types/react' @@ -15086,8 +15842,6 @@ snapshots: transitivePeerDependencies: - supports-color - requires-port@1.0.0: {} - resize-observer-polyfill@1.5.1: {} resolve-cwd@3.0.0: @@ -15108,8 +15862,6 @@ snapshots: postcss: 8.5.3 source-map: 0.6.1 - resolve.exports@2.0.3: {} - resolve@1.22.10: dependencies: is-core-module: 2.16.1 @@ -15164,6 +15916,8 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.35.0 fsevents: 2.3.3 + rrweb-cssom@0.8.0: {} + rtl-css-js@1.16.1: dependencies: '@babel/runtime': 7.26.10 @@ -15361,12 +16115,12 @@ snapshots: signal-exit@3.0.7: {} + signal-exit@4.1.0: {} + simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 - sisteransi@1.0.5: {} - slash@3.0.0: {} smol-toml@1.3.3: {} @@ -15468,6 +16222,12 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + string.prototype.includes@2.0.1: dependencies: call-bind: 1.0.8 @@ -15570,6 +16330,14 @@ snapshots: '@babel/core': 7.26.9 babel-plugin-macros: 3.1.0 + styled-jsx@5.1.6(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@19.1.0): + dependencies: + client-only: 0.0.1 + react: 19.1.0 + optionalDependencies: + '@babel/core': 7.27.4 + babel-plugin-macros: 3.1.0 + stylis@4.2.0: {} stylis@4.3.6: {} @@ -15592,9 +16360,13 @@ snapshots: symbol-tree@3.2.4: {} + synckit@0.11.8: + dependencies: + '@pkgr/core': 0.2.7 + tabbable@6.2.0: {} - tailwind-merge@3.3.0: {} + tailwind-merge@3.3.1: {} tailwindcss-animate@1.0.7(tailwindcss@4.1.8): dependencies: @@ -15651,6 +16423,12 @@ snapshots: tinyspy@3.0.2: {} + tldts-core@6.1.86: {} + + tldts@6.1.86: + dependencies: + tldts-core: 6.1.86 + tmpl@1.0.5: {} to-regex-range@5.0.1: @@ -15659,16 +16437,13 @@ snapshots: toggle-selection@1.0.6: {} - tough-cookie@4.1.4: + tough-cookie@5.1.2: dependencies: - psl: 1.15.0 - punycode: 2.3.1 - universalify: 0.2.0 - url-parse: 1.5.10 + tldts: 6.1.86 tr46@0.0.3: {} - tr46@3.0.0: + tr46@5.1.1: dependencies: punycode: 2.3.1 @@ -15682,12 +16457,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.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-jest@29.3.4(@babel/core@7.27.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.27.4))(esbuild@0.25.2)(jest@30.0.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.2))(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.29)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3)) + jest: 30.0.0(@types/node@22.15.29)(babel-plugin-macros@3.1.0)(esbuild-register@3.6.0(esbuild@0.25.2))(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 @@ -15697,10 +16472,10 @@ snapshots: typescript: 5.8.3 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.27.4 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.26.9) + babel-jest: 29.7.0(@babel/core@7.27.4) esbuild: 0.25.2 ts-node@10.9.2(@types/node@22.15.29)(typescript@5.8.3): @@ -15802,11 +16577,11 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.33.1(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): + typescript-eslint@8.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3): dependencies: - '@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) + '@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/parser@8.34.0(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.34.0(eslint@9.28.0(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(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: @@ -15834,8 +16609,6 @@ snapshots: unicode-property-aliases-ecmascript@2.1.0: {} - universalify@0.2.0: {} - universalify@2.0.1: {} unplugin@1.0.1: @@ -15850,6 +16623,28 @@ snapshots: acorn: 8.14.0 webpack-virtual-modules: 0.6.2 + unrs-resolver@1.8.1: + dependencies: + napi-postinstall: 0.2.4 + optionalDependencies: + '@unrs/resolver-binding-darwin-arm64': 1.8.1 + '@unrs/resolver-binding-darwin-x64': 1.8.1 + '@unrs/resolver-binding-freebsd-x64': 1.8.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.8.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.8.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.8.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.8.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.8.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.8.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.8.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.8.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.8.1 + '@unrs/resolver-binding-linux-x64-musl': 1.8.1 + '@unrs/resolver-binding-wasm32-wasi': 1.8.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.8.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.8.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.8.1 + update-browserslist-db@1.1.2(browserslist@4.24.4): dependencies: browserslist: 4.24.4 @@ -15860,49 +16655,44 @@ snapshots: dependencies: punycode: 2.3.1 - url-parse@1.5.10: - dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - url@0.11.4: dependencies: punycode: 1.4.1 qs: 6.14.0 - use-callback-ref@1.3.3(@types/react@19.1.6)(react@19.1.0): + use-callback-ref@1.3.3(@types/react@19.1.7)(react@19.1.0): dependencies: react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - use-composed-ref@1.4.0(@types/react@19.1.6)(react@19.1.0): + use-composed-ref@1.4.0(@types/react@19.1.7)(react@19.1.0): dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - use-isomorphic-layout-effect@1.2.0(@types/react@19.1.6)(react@19.1.0): + use-isomorphic-layout-effect@1.2.0(@types/react@19.1.7)(react@19.1.0): dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - use-latest@1.3.0(@types/react@19.1.6)(react@19.1.0): + use-latest@1.3.0(@types/react@19.1.7)(react@19.1.0): dependencies: react: 19.1.0 - use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.6)(react@19.1.0) + use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.7)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 - use-sidecar@1.1.3(@types/react@19.1.6)(react@19.1.0): + use-sidecar@1.1.3(@types/react@19.1.7)(react@19.1.0): dependencies: detect-node-es: 1.1.0 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.6 + '@types/react': 19.1.7 use-sync-external-store@1.5.0(react@19.1.0): dependencies: @@ -15930,9 +16720,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.6))(@types/react@19.1.6)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + vaul@1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6))(@types/react@19.1.6)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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: @@ -15941,9 +16731,9 @@ snapshots: vm-browserify@1.1.2: {} - w3c-xmlserializer@4.0.0: + w3c-xmlserializer@5.0.0: dependencies: - xml-name-validator: 4.0.0 + xml-name-validator: 5.0.0 walk-up-path@3.0.1: {} @@ -16014,15 +16804,15 @@ snapshots: - esbuild - uglify-js - whatwg-encoding@2.0.0: + whatwg-encoding@3.1.1: dependencies: iconv-lite: 0.6.3 - whatwg-mimetype@3.0.0: {} + whatwg-mimetype@4.0.0: {} - whatwg-url@11.0.0: + whatwg-url@14.2.0: dependencies: - tr46: 3.0.0 + tr46: 5.1.1 webidl-conversions: 7.0.0 whatwg-url@5.0.0: @@ -16087,18 +16877,30 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + wrappy@1.0.2: {} write-file-atomic@4.0.2: dependencies: imurmurhash: 0.1.4 signal-exit: 3.0.7 + optional: true + + write-file-atomic@5.0.1: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 ws@8.18.0(bufferutil@4.0.9): optionalDependencies: bufferutil: 4.0.9 - xml-name-validator@4.0.0: {} + xml-name-validator@5.0.0: {} xmlchars@2.2.0: {} @@ -16130,8 +16932,8 @@ snapshots: yocto-queue@1.2.1: {} - zod-validation-error@3.4.0(zod@3.25.51): + zod-validation-error@3.4.0(zod@3.25.61): dependencies: - zod: 3.25.51 + zod: 3.25.61 - zod@3.25.51: {} + zod@3.25.61: {} diff --git a/src/app/(landing)/_components/LandingHero.tsx b/src/app/(landing)/_components/LandingHero.tsx index 65b275b..a2293d5 100644 --- a/src/app/(landing)/_components/LandingHero.tsx +++ b/src/app/(landing)/_components/LandingHero.tsx @@ -15,8 +15,9 @@ export const LandingHero: React.FC = () => { QR code menus

- We are the ultimate QR code menu platform for restaurants, bars, cafes, food trucks and - hotels! + the + Menu is the ultimate QR code menu platform for restaurants, bars, cafes, food trucks + and hotels.

@@ -34,4 +35,3 @@ export const LandingHero: React.FC = () => {
); }; - diff --git a/src/app/(landing)/_components/LandingReadyTo.tsx b/src/app/(landing)/_components/LandingReadyTo.tsx index 92c2e49..d6e84a5 100644 --- a/src/app/(landing)/_components/LandingReadyTo.tsx +++ b/src/app/(landing)/_components/LandingReadyTo.tsx @@ -1,51 +1,46 @@ -"use client" - -import { useState, useEffect } from "react" -import { motion, AnimatePresence } from "framer-motion" - +'use client'; +import { AnimatePresence, motion } from 'framer-motion'; +import { useEffect, useState } from 'react'; export default function LandingReadyTo() { - const textOptions = [ - "Ready to start accepting orders for dine-in, takeaway and delivery?", - "Ready to fully automate your in-location order flow?", - "Ready to see your orders in real-time?", - "Ready to start growing your food business?", - "Ready to start serving your customers better?", - ] - - const [currentIndex, setCurrentIndex] = useState(0) - - useEffect(() => { - const interval = setInterval(() => { - setCurrentIndex((prevIndex) => (prevIndex + 1) % textOptions.length) - }, 3000) // Change text every 3 seconds - - return () => clearInterval(interval) - }, [textOptions.length]) - - return ( - -

- - - - - {textOptions[currentIndex]} - - - -

- - ) + const textOptions = [ + 'Ready to start accepting orders for dine-in, takeaway and delivery?', + 'Ready to fully automate your in-location order flow?', + 'Ready to see your orders in real-time?', + 'Ready to start growing your food business?', + 'Ready to start serving your customers better?', + ]; + + const [currentIndex, setCurrentIndex] = useState(0); + + useEffect(() => { + const interval = setInterval(() => { + setCurrentIndex((prevIndex) => (prevIndex + 1) % textOptions.length); + }, 3000); // Change text every 3 seconds + + return () => clearInterval(interval); + }, [textOptions.length]); + + return ( +

+ + + + {textOptions[currentIndex]} + + + +

+ ); } diff --git a/src/app/onboard/select-plan/page.tsx b/src/app/onboard/select-plan/page.tsx index f10f450..a0345b2 100644 --- a/src/app/onboard/select-plan/page.tsx +++ b/src/app/onboard/select-plan/page.tsx @@ -9,11 +9,11 @@ export const metadata = { /** * This is the first step of signing up a user. - * TODO act if user is already signed in */ export default async function SignUpSelectPlanPage() { return ( } secondaryComponent={} title={"Let's get you onboarded!"} diff --git a/src/components/PriceTierCard.tsx b/src/components/PriceTierCard.tsx index 9a24bc9..c99f33f 100644 --- a/src/components/PriceTierCard.tsx +++ b/src/components/PriceTierCard.tsx @@ -4,7 +4,6 @@ import { PriceTierHeader } from '~/components/PriceTierHeader'; import { Badge } from '~/components/ui/badge'; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '~/components/ui/card'; import { HoverCard, HoverCardContent, HoverCardTrigger } from '~/components/ui/hover-card'; -import { Tooltip, TooltipContent, TooltipTrigger } from '~/components/ui/tooltip'; import { priceTierFeatures } from '~/domain/price-tier-features'; import { priceTierFlags } from '~/domain/price-tier-flags'; import { type ExceededFeature } from '~/domain/price-tier-usage'; @@ -46,8 +45,8 @@ export function PriceTierCard(props: { const availableFeatures = props.exceededFeatures && props.exceededFeatures.length > 0 ? features.filter((f) => { - return props.exceededFeatures?.findIndex((ef) => ef.id === f.id) === -1; - }) + return props.exceededFeatures?.findIndex((ef) => ef.id === f.id) === -1; + }) : features; return ( @@ -74,7 +73,11 @@ export function PriceTierCard(props: {
- + {featureDetails.resourcePluralName}
@@ -92,7 +95,11 @@ export function PriceTierCard(props: {
- + {featureDetails.resourcePluralName}
@@ -115,7 +122,11 @@ export function PriceTierCard(props: {
- + {flagDetails.resourcePluralName}
@@ -150,7 +161,7 @@ export const getExceededPlanCardCustomizations = (): CardCustomizations => { }; }; -export const Info = (props: { title: string, text: string, footer: string }) => { +export const Info = (props: { title: string; text: string; footer: string }) => { return ( @@ -160,15 +171,11 @@ export const Info = (props: { title: string, text: string, footer: string }) =>

{props.title}

-

- {props.text} -

-
- {props.footer} -
+

{props.text}

+
{props.footer}
- ) -} \ No newline at end of file + ); +}; diff --git a/src/components/SplitScreenContainer.tsx b/src/components/SplitScreenContainer.tsx index 17ce360..887cb5d 100644 --- a/src/components/SplitScreenContainer.tsx +++ b/src/components/SplitScreenContainer.tsx @@ -45,9 +45,10 @@ export function SplitScreenContainer(props: { {props.showSignInLink && ( -
- - I already have an account +
+

Already have an account?

+ + Sign in
diff --git a/src/components/ui/hover-card.tsx b/src/components/ui/hover-card.tsx index 01febed..a21a743 100644 --- a/src/components/ui/hover-card.tsx +++ b/src/components/ui/hover-card.tsx @@ -1,44 +1,38 @@ -"use client" +'use client'; -import * as React from "react" -import * as HoverCardPrimitive from "@radix-ui/react-hover-card" +import * as HoverCardPrimitive from '@radix-ui/react-hover-card'; +import * as React from 'react'; -import { cn } from "~/lib/utils" +import { cn } from '~/lib/utils'; -function HoverCard({ - ...props -}: React.ComponentProps) { - return +function HoverCard({ ...props }: React.ComponentProps) { + return ; } -function HoverCardTrigger({ - ...props -}: React.ComponentProps) { - return ( - - ) +function HoverCardTrigger({ ...props }: React.ComponentProps) { + return ; } function HoverCardContent({ - className, - align = "center", - sideOffset = 4, - ...props + className, + align = 'center', + sideOffset = 4, + ...props }: React.ComponentProps) { - return ( - - - - ) + return ( + + + + ); } -export { HoverCard, HoverCardTrigger, HoverCardContent } +export { HoverCard, HoverCardContent, HoverCardTrigger }; diff --git a/src/domain/menu-modes.ts b/src/domain/menu-modes.ts index 345f748..56cc20e 100644 --- a/src/domain/menu-modes.ts +++ b/src/domain/menu-modes.ts @@ -21,7 +21,7 @@ export const MENU_MODES: Record = { id: 'interactive', name: 'Interactive', description: - 'Customers can use your menus to create orders and track delivered items in real time, but they will not be able to pay through the app.', + 'Customers can use your QR menus to create orders and see which order items are being prepared or have been delivered.', allowsAddToOrder: true, isEnabled: true, }, @@ -29,7 +29,7 @@ export const MENU_MODES: Record = { id: 'postpaid', name: 'Post-paid', description: - 'Customers can use your menus to create orders, track delivered items in real time and pay their bill through the app.', + 'Customers can use your QR menus to create orders, track delivered items in real time and pay their bill through the app.', allowsAddToOrder: true, isEnabled: false, }, @@ -37,7 +37,7 @@ export const MENU_MODES: Record = { id: 'prepaid', name: 'Pre-paid', description: - 'Customers can use your menus to create orders and track delivered items in real time. They will be required to pay for items beforehand.', + 'Customers can use your QR menus to create orders and track delivered items in real time. They will be required to pay for items beforehand.', allowsAddToOrder: true, isEnabled: false, }, From 464840c98a52480fe3d969d29edd21722ec9f2d3 Mon Sep 17 00:00:00 2001 From: dopoto Date: Wed, 11 Jun 2025 17:29:27 +0300 Subject: [PATCH 04/17] wip cloudinary --- .env.example | 9 +- next.config.ts | 88 +++++++++---------- package.json | 1 + pnpm-lock.yaml | 68 ++++++++++++-- .../_components/AddEditMenuItemForm.tsx | 3 + .../_components/UploadMenuItemPicture.tsx | 15 ++++ src/env.js | 6 ++ 7 files changed, 138 insertions(+), 52 deletions(-) create mode 100644 src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx diff --git a/.env.example b/.env.example index d12b032..111d421 100644 --- a/.env.example +++ b/.env.example @@ -46,11 +46,16 @@ POSTHOG_PROJECT_ID=12345... POSTHOG_ANALYTICS_QUERIES_API_KEY=phx_... # See https://vercel.com/docs/edge-config/get-started -EDGE_CONFIG="https://edge-config.vercel.com/... +EDGE_CONFIG="https://edge-config.vercel.com/..." PUSHER_APP_ID=your_app_id PUSHER_APP_KEY=your_app_key PUSHER_APP_SECRET=your_app_secret PUSHER_CLUSTER=your_cluster NEXT_PUBLIC_PUSHER_APP_KEY=your_app_key -NEXT_PUBLIC_PUSHER_CLUSTER=your_cluster \ No newline at end of file +NEXT_PUBLIC_PUSHER_CLUSTER=your_cluster + +# Cloudinary +NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME="" +NEXT_PUBLIC_CLOUDINARY_API_KEY="" +CLOUDINARY_API_SECRET="" \ No newline at end of file diff --git a/next.config.ts b/next.config.ts index e121110..f714cf9 100644 --- a/next.config.ts +++ b/next.config.ts @@ -8,12 +8,12 @@ import { env } from '~/env'; */ const cspHeader = ` default-src 'self'; - script-src 'self' 'unsafe-eval' 'unsafe-inline' https://*.js.stripe.com https://js.stripe.com https://maps.googleapis.com ${env.NEXT_PUBLIC_CLERK_SUBDOMAIN} https://challenges.cloudflare.com https://*.googletagmanager.com https://va.vercel-scripts.com/v1/script.debug.js; - script-src-elem 'self' 'unsafe-inline' https://checkout.stripe.com https://js.stripe.com ${env.NEXT_PUBLIC_CLERK_SUBDOMAIN} https://challenges.cloudflare.com https://www.googletagmanager.com https://va.vercel-scripts.com/v1/script.debug.js; + script-src 'self' 'unsafe-eval' 'unsafe-inline' https://*.js.stripe.com https://js.stripe.com https://maps.googleapis.com ${env.NEXT_PUBLIC_CLERK_SUBDOMAIN} https://challenges.cloudflare.com https://*.googletagmanager.com https://va.vercel-scripts.com/v1/script.debug.js https://upload-widget.cloudinary.com/global/all.js; + script-src-elem 'self' 'unsafe-inline' https://checkout.stripe.com https://js.stripe.com ${env.NEXT_PUBLIC_CLERK_SUBDOMAIN} https://challenges.cloudflare.com https://www.googletagmanager.com https://va.vercel-scripts.com/v1/script.debug.js https://upload-widget.cloudinary.com/global/all.js; style-src 'self' 'unsafe-inline' https://www.googletagmanager.com https://fonts.googleapis.com; img-src 'self' blob: data: https://*.stripe.com https://img.clerk.com https://*.google-analytics.com https://*.googletagmanager.com https://fonts.gstatic.com; font-src 'self'; - frame-src https://checkout.stripe.com https://*.js.stripe.com https://js.stripe.com https://hooks.stripe.com https://challenges.cloudflare.com; + frame-src https://checkout.stripe.com https://*.js.stripe.com https://js.stripe.com https://hooks.stripe.com https://challenges.cloudflare.com https://upload-widget.cloudinary.com; object-src ${process.env.NODE_ENV !== 'development' ? "'self' data:;" : "'none';"} worker-src 'self' blob: ${env.NEXT_PUBLIC_CLERK_SUBDOMAIN}; connect-src 'self' https://checkout.stripe.com https://api.stripe.com https://maps.googleapis.com ${env.NEXT_PUBLIC_CLERK_SUBDOMAIN} https://clerk-telemetry.com/v1/event https://*.sentry.io https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com wss://ws-eu.pusher.com/app/${env.NEXT_PUBLIC_PUSHER_APP_KEY} https://sockjs-eu.pusher.com/pusher/app/${env.NEXT_PUBLIC_PUSHER_APP_KEY}*; @@ -95,47 +95,47 @@ const nextConfig: NextConfig = { const config = env.NEXT_PUBLIC_LOG_TO_SENTRY === 'yes' ? withSentryConfig(nextConfig, { - // For all available options, see: - // https://github.com/getsentry/sentry-webpack-plugin#options - - org: env.NEXT_PUBLIC_SENTRY_ORG, - project: env.NEXT_PUBLIC_SENTRY_PROJECT, - authToken: process.env.SENTRY_AUTH_TOKEN, // Required for source map validation - - // Only print logs for uploading source maps in CI - silent: !process.env.CI, - - // For all available options, see: - // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ - - // Upload a larger set of source maps for prettier stack traces (increases build time) - widenClientFileUpload: true, - - // Automatically annotate React components to show their full name in breadcrumbs and session replay - reactComponentAnnotation: { - enabled: true, - }, - - // Uncomment to route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers. - // This can increase your server load as well as your hosting bill. - // Note: Check that the configured route will not match with your Next.js middleware, otherwise reporting of client- - // side errors will fail. - // tunnelRoute: "/monitoring", - - // Automatically tree-shake Sentry logger statements to reduce bundle size - disableLogger: true, - - // Enables automatic instrumentation of Vercel Cron Monitors. (Does not yet work with App Router route handlers.) - // See the following for more information: - // https://docs.sentry.io/product/crons/ - // https://vercel.com/docs/cron-jobs - automaticVercelMonitors: true, - - sourcemaps: { - disable: false, - deleteSourcemapsAfterUpload: true, - }, - }) + // For all available options, see: + // https://github.com/getsentry/sentry-webpack-plugin#options + + org: env.NEXT_PUBLIC_SENTRY_ORG, + project: env.NEXT_PUBLIC_SENTRY_PROJECT, + authToken: process.env.SENTRY_AUTH_TOKEN, // Required for source map validation + + // Only print logs for uploading source maps in CI + silent: !process.env.CI, + + // For all available options, see: + // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ + + // Upload a larger set of source maps for prettier stack traces (increases build time) + widenClientFileUpload: true, + + // Automatically annotate React components to show their full name in breadcrumbs and session replay + reactComponentAnnotation: { + enabled: true, + }, + + // Uncomment to route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers. + // This can increase your server load as well as your hosting bill. + // Note: Check that the configured route will not match with your Next.js middleware, otherwise reporting of client- + // side errors will fail. + // tunnelRoute: "/monitoring", + + // Automatically tree-shake Sentry logger statements to reduce bundle size + disableLogger: true, + + // Enables automatic instrumentation of Vercel Cron Monitors. (Does not yet work with App Router route handlers.) + // See the following for more information: + // https://docs.sentry.io/product/crons/ + // https://vercel.com/docs/cron-jobs + automaticVercelMonitors: true, + + sourcemaps: { + disable: false, + deleteSourcemapsAfterUpload: true, + }, + }) : nextConfig; module.exports = config; diff --git a/package.json b/package.json index 83e29fb..9bb3750 100644 --- a/package.json +++ b/package.json @@ -69,6 +69,7 @@ "jotai": "^2.12.4", "lucide-react": "^0.514.0", "next": "15.3.2", + "next-cloudinary": "^6.16.0", "next-themes": "^0.4.6", "postgres": "^3.4.7", "posthog-js": "^1.250.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 07f4c0b..ce7f66d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -134,6 +134,9 @@ importers: next: specifier: 15.3.2 version: 15.3.2(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next-cloudinary: + specifier: ^6.16.0 + version: 6.16.0(next@15.3.2(@babel/core@7.27.4)(@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-themes: specifier: ^0.4.6 version: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -1085,6 +1088,24 @@ packages: resolution: {integrity: sha512-60u/Z3VD0lgepsySUPyFM1MV5cwhMwouN63na5g9+qm3PpaTE2kN4DeW9Nq6t1YB0TFpVEKIb1r8U6EOWPa01A==} engines: {node: '>=18.17.0'} + '@cloudinary-util/types@1.5.10': + resolution: {integrity: sha512-n5lrm7SdAXhgWEbkSJKHZGnaoO9G/g4WYS6HYnq/k4nLj79sYfQZOoKjyR8hF2iyLRdLkT+qlk68RNFFv5tKew==} + + '@cloudinary-util/url-loader@5.10.4': + resolution: {integrity: sha512-gHkdvOaV+rlcwuIT7Vqd0ts/H5bsH4+bwFten/gIZ8oRjzdTBvgIY3R6F8bbJt0pFIEfpFEQLe4rPkl0NNqEWg==} + + '@cloudinary-util/util@3.3.2': + resolution: {integrity: sha512-Cc0iFxzfl7fcOXuznpeZFGYC885Of/vDgccRDnhTe/8Rf8YKv2PjLtezyo0VgmdA/CpeZy29NCXAsf6liokbwg==} + + '@cloudinary-util/util@4.0.0': + resolution: {integrity: sha512-S4xcou/3A7l5o+bcKlw2VHBNgwups7/0lbVDT/cO5YmtrcEYXgj6LGmwnjvpTm/x571VPVN8x5jWdT3rLZiKJQ==} + + '@cloudinary/transformation-builder-sdk@1.17.0': + resolution: {integrity: sha512-zPHNtEpLkil+1obvLK7zHDMWAs9ZwUGI0GUKnMMkEC3pOLtKETswPBdLAjJTMH512lGc18vgdzogWdItPRN3Kg==} + + '@cloudinary/url-gen@1.15.0': + resolution: {integrity: sha512-bjU67eZxLUgoRy/Plli4TQio7q6P31OYqnEgXxeN9TKXrzr6h0DeEdIUhKI9gy3HkEBWXWWJIPh7j7gkOJPnyA==} + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -6356,6 +6377,12 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + next-cloudinary@6.16.0: + resolution: {integrity: sha512-gbw/A1aBHJBC2thm4/veI77IkmbAQXuRUj8kNEuxf1zgjGkUWkShho/cXS4VsFhnHuDieqb30gMjZnZdBDrQ/Q==} + peerDependencies: + next: ^12 || ^13 || ^14 || >=15.0.0-rc || ^15 + react: ^17 || ^18 || >=19.0.0-beta || ^19 + next-themes@0.4.6: resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==} peerDependencies: @@ -9128,6 +9155,27 @@ snapshots: dependencies: csstype: 3.1.3 + '@cloudinary-util/types@1.5.10': {} + + '@cloudinary-util/url-loader@5.10.4': + dependencies: + '@cloudinary-util/types': 1.5.10 + '@cloudinary-util/util': 3.3.2 + '@cloudinary/url-gen': 1.15.0 + zod: 3.25.61 + + '@cloudinary-util/util@3.3.2': {} + + '@cloudinary-util/util@4.0.0': {} + + '@cloudinary/transformation-builder-sdk@1.17.0': + dependencies: + '@cloudinary/url-gen': 1.15.0 + + '@cloudinary/url-gen@1.15.0': + dependencies: + '@cloudinary/transformation-builder-sdk': 1.17.0 + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 @@ -9848,7 +9896,7 @@ snapshots: '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.26.9 + '@babel/core': 7.27.4 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 @@ -12412,7 +12460,7 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-plugin-utils': 7.27.1 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -12433,8 +12481,8 @@ snapshots: babel-plugin-jest-hoist@29.6.3: dependencies: - '@babel/template': 7.27.0 - '@babel/types': 7.27.0 + '@babel/template': 7.27.2 + '@babel/types': 7.27.6 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.7 optional: true @@ -14188,8 +14236,8 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.26.9 - '@babel/parser': 7.27.0 + '@babel/core': 7.27.4 + '@babel/parser': 7.27.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -15028,6 +15076,14 @@ snapshots: neo-async@2.6.2: {} + next-cloudinary@6.16.0(next@15.3.2(@babel/core@7.27.4)(@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: + '@cloudinary-util/types': 1.5.10 + '@cloudinary-util/url-loader': 5.10.4 + '@cloudinary-util/util': 4.0.0 + next: 15.3.2(@babel/core@7.27.4)(@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-themes@0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 diff --git a/src/app/u/[locationId]/menu-items/_components/AddEditMenuItemForm.tsx b/src/app/u/[locationId]/menu-items/_components/AddEditMenuItemForm.tsx index e6b09de..b3fc185 100644 --- a/src/app/u/[locationId]/menu-items/_components/AddEditMenuItemForm.tsx +++ b/src/app/u/[locationId]/menu-items/_components/AddEditMenuItemForm.tsx @@ -1,5 +1,6 @@ import { type UseFormReturn } from 'react-hook-form'; import { type z } from 'zod'; +import { UploadMenuItemPicture } from '~/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture'; import { ReactHookFormField } from '~/components/forms/ReactHookFormField'; import { Button } from '~/components/ui/button'; import { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage } from '~/components/ui/form'; @@ -68,6 +69,8 @@ export function AddEditMenuItemForm(props: { )} /> + [] +
diff --git a/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx b/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx new file mode 100644 index 0000000..97f4344 --- /dev/null +++ b/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx @@ -0,0 +1,15 @@ +'use client'; + +import { CldUploadWidget } from 'next-cloudinary'; + +export function UploadMenuItemPicture() { + return + {({ open }) => { + return ( + + ); + }} + +} \ No newline at end of file diff --git a/src/env.js b/src/env.js index 7033efd..353efe3 100644 --- a/src/env.js +++ b/src/env.js @@ -23,6 +23,7 @@ export const env = createEnv({ PUSHER_APP_KEY: z.string(), PUSHER_APP_SECRET: z.string(), PUSHER_CLUSTER: z.string(), + CLOUDINARY_API_SECRET: z.string(), }, /** @@ -53,6 +54,8 @@ export const env = createEnv({ NEXT_PUBLIC_CSP_REPORT_URI: z.string().optional(), NEXT_PUBLIC_POSTHOG_KEY: z.string().optional(), NEXT_PUBLIC_POSTHOG_HOST: z.string().optional(), + NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME: z.string(), + NEXT_PUBLIC_CLOUDINARY_API_KEY: z.string(), }, /** @@ -92,6 +95,9 @@ export const env = createEnv({ NEXT_PUBLIC_POSTHOG_HOST: process.env.NEXT_PUBLIC_POSTHOG_HOST, POSTHOG_ANALYTICS_QUERIES_API_KEY: process.env.POSTHOG_ANALYTICS_QUERIES_API_KEY, POSTHOG_PROJECT_ID: process.env.POSTHOG_PROJECT_ID, + NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME: process.env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME, + NEXT_PUBLIC_CLOUDINARY_API_KEY: process.env.NEXT_PUBLIC_CLOUDINARY_API_KEY, + CLOUDINARY_API_SECRET: process.env.CLOUDINARY_API_SECRET, }, /** * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially From d832e586a30bca16298177cc420c127770407b4b Mon Sep 17 00:00:00 2001 From: dopoto Date: Thu, 12 Jun 2025 09:14:06 +0300 Subject: [PATCH 05/17] wip --- drizzle/0010_gorgeous_hammerhead.sql | 1 + drizzle/meta/0010_snapshot.json | 716 ++++++++++++++++++ drizzle/meta/_journal.json | 7 + next.config.ts | 12 +- .../_components/AddEditMenuItemForm.tsx | 2 +- .../menu-items/_components/MenuItemCard.tsx | 4 +- .../_components/UploadMenuItemPicture.tsx | 166 +++- src/components/public/PublicMenuItem.tsx | 16 +- src/domain/menu-items.ts | 5 + src/server/db/schema.ts | 1 + src/server/queries/menus.ts | 1 + src/services/cloudinary/cloudinary-utils.ts | 11 + 12 files changed, 924 insertions(+), 18 deletions(-) create mode 100644 drizzle/0010_gorgeous_hammerhead.sql create mode 100644 drizzle/meta/0010_snapshot.json create mode 100644 src/services/cloudinary/cloudinary-utils.ts diff --git a/drizzle/0010_gorgeous_hammerhead.sql b/drizzle/0010_gorgeous_hammerhead.sql new file mode 100644 index 0000000..c4c2d11 --- /dev/null +++ b/drizzle/0010_gorgeous_hammerhead.sql @@ -0,0 +1 @@ +ALTER TABLE "next-menu_menu_item" ADD COLUMN "image_id" varchar(256) DEFAULT null; \ No newline at end of file diff --git a/drizzle/meta/0010_snapshot.json b/drizzle/meta/0010_snapshot.json new file mode 100644 index 0000000..50a7321 --- /dev/null +++ b/drizzle/meta/0010_snapshot.json @@ -0,0 +1,716 @@ +{ + "id": "89d6493a-1982-46a8-bac2-18eefde60375", + "prevId": "a80dc4a7-3b47-437b-9ce8-9f099aee6003", + "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 + }, + "image_id": { + "name": "image_id", + "type": "varchar(256)", + "primaryKey": false, + "notNull": false, + "default": null + }, + "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 656dbc2..e09a3a9 100644 --- a/drizzle/meta/_journal.json +++ b/drizzle/meta/_journal.json @@ -71,6 +71,13 @@ "when": 1749100301609, "tag": "0009_chilly_ben_urich", "breakpoints": true + }, + { + "idx": 10, + "version": "7", + "when": 1749702490925, + "tag": "0010_gorgeous_hammerhead", + "breakpoints": true } ] } \ No newline at end of file diff --git a/next.config.ts b/next.config.ts index f714cf9..50ac01c 100644 --- a/next.config.ts +++ b/next.config.ts @@ -11,7 +11,7 @@ const cspHeader = ` script-src 'self' 'unsafe-eval' 'unsafe-inline' https://*.js.stripe.com https://js.stripe.com https://maps.googleapis.com ${env.NEXT_PUBLIC_CLERK_SUBDOMAIN} https://challenges.cloudflare.com https://*.googletagmanager.com https://va.vercel-scripts.com/v1/script.debug.js https://upload-widget.cloudinary.com/global/all.js; script-src-elem 'self' 'unsafe-inline' https://checkout.stripe.com https://js.stripe.com ${env.NEXT_PUBLIC_CLERK_SUBDOMAIN} https://challenges.cloudflare.com https://www.googletagmanager.com https://va.vercel-scripts.com/v1/script.debug.js https://upload-widget.cloudinary.com/global/all.js; style-src 'self' 'unsafe-inline' https://www.googletagmanager.com https://fonts.googleapis.com; - img-src 'self' blob: data: https://*.stripe.com https://img.clerk.com https://*.google-analytics.com https://*.googletagmanager.com https://fonts.gstatic.com; + img-src 'self' blob: data: https://*.stripe.com https://img.clerk.com https://*.google-analytics.com https://*.googletagmanager.com https://fonts.gstatic.com https://res.cloudinary.com; font-src 'self'; frame-src https://checkout.stripe.com https://*.js.stripe.com https://js.stripe.com https://hooks.stripe.com https://challenges.cloudflare.com https://upload-widget.cloudinary.com; object-src ${process.env.NODE_ENV !== 'development' ? "'self' data:;" : "'none';"} @@ -58,9 +58,7 @@ const nextConfig: NextConfig = { ], }, ]; - }, - - images: { + }, images: { remotePatterns: [ { protocol: 'https', @@ -68,6 +66,12 @@ const nextConfig: NextConfig = { port: '', search: '', }, + { + protocol: 'https', + hostname: 'res.cloudinary.com', + port: '', + pathname: `/${env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME}/**`, + }, ], }, diff --git a/src/app/u/[locationId]/menu-items/_components/AddEditMenuItemForm.tsx b/src/app/u/[locationId]/menu-items/_components/AddEditMenuItemForm.tsx index b3fc185..f165e10 100644 --- a/src/app/u/[locationId]/menu-items/_components/AddEditMenuItemForm.tsx +++ b/src/app/u/[locationId]/menu-items/_components/AddEditMenuItemForm.tsx @@ -69,7 +69,7 @@ export function AddEditMenuItemForm(props: { )} /> - [] +
diff --git a/src/app/u/[locationId]/menu-items/_components/MenuItemCard.tsx b/src/app/u/[locationId]/menu-items/_components/MenuItemCard.tsx index 935f968..dfdd0c1 100644 --- a/src/app/u/[locationId]/menu-items/_components/MenuItemCard.tsx +++ b/src/app/u/[locationId]/menu-items/_components/MenuItemCard.tsx @@ -49,8 +49,7 @@ export default function MenuItemCard(props: { locationId: LocationId; currencyId return ( <>
- {/* TODO menumode */} - - {({ open }) => { - return ( - - ); - }} - + const form = useFormContext>(); + const [isUploading, setIsUploading] = useState(false); + + const handleUpload = (result: any) => { + console.log('Upload result:', result); + setIsUploading(true); + + try { + if (result.event !== 'success') { + console.log('Upload was not successful:', result.event); + toast({ + title: 'Upload failed', + description: 'The image upload was not successful. Please try again.', + variant: 'destructive', + }); + return; + } + + if (!result.info) { + console.log('No info in upload result'); + toast({ + title: 'Upload failed', + description: 'Could not get image information from upload.', + variant: 'destructive', + }); + return; + } + + // Handle both object and string responses + const publicId = typeof result.info === 'object' ? result.info.public_id : result.info; + + if (!publicId) { + toast({ + title: 'Upload failed', + description: 'Could not get image ID from upload result', + variant: 'destructive', + }); + return; + } + + console.log('Setting public_id:', publicId); + form.setValue('imageId', publicId, { + shouldDirty: true, + shouldTouch: true, + shouldValidate: true + }); + + toast({ + title: 'Image uploaded', + description: 'The image was successfully uploaded.', + variant: 'default', + }); + } catch (error) { + console.error('Error handling upload:', error); + toast({ + title: 'Upload error', + description: 'An unexpected error occurred while uploading the image.', + variant: 'destructive', + }); + } finally { + setIsUploading(false); + } + }; + + return ( + ( + + Picture + +
+ {field.value ? ( +
+
+ Menu item image +
+
+ + +
+
+ ) : ( + + {({ open }) => ( + + )} + + )} +
+
+ + Upload a picture of your menu item. Recommended size: 800x800 pixels. + + +
+ )} + /> + ); } \ No newline at end of file diff --git a/src/components/public/PublicMenuItem.tsx b/src/components/public/PublicMenuItem.tsx index e5e2b6e..fa7fa74 100644 --- a/src/components/public/PublicMenuItem.tsx +++ b/src/components/public/PublicMenuItem.tsx @@ -2,6 +2,7 @@ import { useAtom } from 'jotai'; import { PlusIcon, SoupIcon, WineIcon } from 'lucide-react'; +import Image from 'next/image'; import { orderAtom } from '~/app/p/[locationSlug]/_state/order-atom'; import { Badge } from '~/components/ui/badge'; import { CURRENCIES, type CurrencyId } from '~/domain/currencies'; @@ -10,6 +11,7 @@ import { MENU_MODES, type MenuModeId } from '~/domain/menu-modes'; import { type PublicOrderItem } from '~/domain/order-items'; import { toast } from '~/hooks/use-toast'; import { getTopPositionedToast } from '~/lib/toast-utils'; +import { getCloudinaryScaledImageUrl } from '~/services/cloudinary/cloudinary-utils'; export function PublicMenuItem(props: { item: MenuItem; currencyId: CurrencyId; menuMode: MenuModeId }) { const { name, description, price, isNew, type } = props.item; @@ -44,8 +46,18 @@ export function PublicMenuItem(props: { item: MenuItem; currencyId: CurrencyId; return (
-
- {type === 'dish' ? : } +
+ {props.item.imageId && props.item.imageId.length > 0 ? ( + {name + ) : ( + type === 'dish' ? : + )}
diff --git a/src/domain/menu-items.ts b/src/domain/menu-items.ts index 7a37f3e..55f07f7 100644 --- a/src/domain/menu-items.ts +++ b/src/domain/menu-items.ts @@ -1,3 +1,4 @@ + import { type InferInsertModel, type InferSelectModel } from 'drizzle-orm'; import { z } from 'zod'; import { withMeta } from '~/lib/form-validation'; @@ -14,6 +15,10 @@ export const menuItemIdSchema = z.coerce.number().int().positive(); export type MenuItemId = z.infer; export const menuItemFormSchema = z.object({ + imageId: withMeta(z.string().optional(), { + label: 'Image', + description: 'Upload an image for this menu item', + }), name: withMeta( z .string({ diff --git a/src/server/db/schema.ts b/src/server/db/schema.ts index a72fbd5..7626c79 100644 --- a/src/server/db/schema.ts +++ b/src/server/db/schema.ts @@ -100,6 +100,7 @@ export const menuItems = createTable( .references(() => locations.id), name: varchar('name', { length: 256 }), description: varchar('description', { length: 256 }), + imageId: varchar('image_id', { length: 256 }).default(sql`NULL`), price: decimal('price').notNull(), type: varchar('type', { length: 10 }).notNull().default('dish'), isNew: boolean('is_new').default(false).notNull(), diff --git a/src/server/queries/menus.ts b/src/server/queries/menus.ts index c1edf68..e23407f 100644 --- a/src/server/queries/menus.ts +++ b/src/server/queries/menus.ts @@ -147,6 +147,7 @@ export async function getMenuById(locationId: LocationId, menuId: MenuId): Promi id: menuItems.id, name: menuItems.name, description: menuItems.description, + imageId: menuItems.imageId, price: menuItems.price, type: menuItems.type, isNew: menuItems.isNew, diff --git a/src/services/cloudinary/cloudinary-utils.ts b/src/services/cloudinary/cloudinary-utils.ts new file mode 100644 index 0000000..a85c65e --- /dev/null +++ b/src/services/cloudinary/cloudinary-utils.ts @@ -0,0 +1,11 @@ +import { env } from '~/env'; + +export type CloudinaryImageId = string; + +export function getCloudinaryImageUrl(imageId: CloudinaryImageId) { + return `https://res.cloudinary.com/${env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME}/image/upload/${imageId}` +} + +export function getCloudinaryScaledImageUrl(imageId: CloudinaryImageId) { + return `https://res.cloudinary.com/${env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME}/image/upload/c_fill,w_40,h_40/${imageId}` +} \ No newline at end of file From 74cc5dd10480acff0caabab695df8692b6fb4b7c Mon Sep 17 00:00:00 2001 From: dopoto Date: Thu, 12 Jun 2025 09:26:08 +0300 Subject: [PATCH 06/17] fix edit picture --- .../[locationId]/menu-items/_components/EditMenuItem.tsx | 4 ++-- .../menu-items/_components/UploadMenuItemPicture.tsx | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/app/u/[locationId]/menu-items/_components/EditMenuItem.tsx b/src/app/u/[locationId]/menu-items/_components/EditMenuItem.tsx index efb45a0..36669ca 100644 --- a/src/app/u/[locationId]/menu-items/_components/EditMenuItem.tsx +++ b/src/app/u/[locationId]/menu-items/_components/EditMenuItem.tsx @@ -17,12 +17,12 @@ import { ROUTES } from '~/lib/routes'; export function EditMenuItem(props: { locationId: LocationId; menuItem: MenuItem; currencyId: CurrencyId }) { const router = useRouter(); const form = useForm>({ - resolver: zodResolver(menuItemFormSchema), - defaultValues: { + resolver: zodResolver(menuItemFormSchema), defaultValues: { name: props.menuItem.name ?? '', description: props.menuItem.description ?? '', price: parseFloat(props.menuItem.price) || 0, isNew: props.menuItem.isNew, + imageId: props.menuItem.imageId ?? '', locationId: props.locationId, }, }); diff --git a/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx b/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx index 01936c3..36bd136 100644 --- a/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx +++ b/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx @@ -81,16 +81,17 @@ export function UploadMenuItemPicture() { ( - + render={({ field }) => { + return Picture +
{field.value ? (
Menu item image - )} + }} /> ); } \ No newline at end of file From 844cf04edd7b3770ed987588c1525a2e14b95d15 Mon Sep 17 00:00:00 2001 From: dopoto Date: Thu, 12 Jun 2025 09:38:36 +0300 Subject: [PATCH 07/17] fix img --- src/server/queries/menus.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/server/queries/menus.ts b/src/server/queries/menus.ts index e23407f..b22e694 100644 --- a/src/server/queries/menus.ts +++ b/src/server/queries/menus.ts @@ -230,6 +230,7 @@ export async function getPublicMenusByLocation(locationId: LocationId): Promise< item: { id: menuItems.id, name: menuItems.name, + imageId: menuItems.imageId, description: menuItems.description, price: menuItems.price, type: menuItems.type, @@ -264,6 +265,7 @@ export async function getPublicMenusByLocation(locationId: LocationId): Promise< menuMap.get(row.menu.id)?.items.push({ id: item.id, name: item.name, + imageId: item.imageId, description: item.description, price: item.price, type: item.type, From 5ceaee6a35b8701ad7775cb91efdb10913905575 Mon Sep 17 00:00:00 2001 From: dopoto Date: Thu, 12 Jun 2025 10:00:39 +0300 Subject: [PATCH 08/17] wip --- package.json | 12 +- pnpm-lock.yaml | 1007 +++++++++---------- src/components/public/PublicMenuItem.tsx | 6 +- src/services/cloudinary/cloudinary-utils.ts | 2 +- 4 files changed, 510 insertions(+), 517 deletions(-) diff --git a/package.json b/package.json index 9bb3750..da4d02e 100644 --- a/package.json +++ b/package.json @@ -66,13 +66,13 @@ "embla-carousel-react": "^8.6.0", "framer-motion": "~12.17.0", "geist": "^1.4.2", - "jotai": "^2.12.4", + "jotai": "^2.12.5", "lucide-react": "^0.514.0", - "next": "15.3.2", + "next": "15.3.3", "next-cloudinary": "^6.16.0", "next-themes": "^0.4.6", "postgres": "^3.4.7", - "posthog-js": "^1.250.1", + "posthog-js": "^1.250.2", "posthog-node": "^5.0.0", "pusher": "^5.2.0", "pusher-js": "^8.4.0", @@ -101,14 +101,14 @@ "@storybook/nextjs": "8.6.14", "@storybook/react": "8.6.14", "@storybook/test": "8.6.14", - "@tailwindcss/postcss": "^4.1.8", + "@tailwindcss/postcss": "^4.1.10", "@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.29", - "@types/react": "^19.1.7", + "@types/react": "^19.1.8", "@types/react-dom": "^19.1.6", "cross-env": "^7.0.3", "drizzle-kit": "^0.31.1", @@ -135,7 +135,7 @@ "ct3aMetadata": { "initVersion": "7.38.1" }, - "packageManager": "pnpm@10.11.0", + "packageManager": "pnpm@10.12.1", "pnpm": { "ignoredBuiltDependencies": [ "@sentry/cli" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ce7f66d..1f3f1d1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: dependencies: '@clerk/nextjs': specifier: ^6.21.0 - version: 6.21.0(next@15.3.2(@babel/core@7.27.4)(@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) + version: 6.21.0(next@15.3.3(@babel/core@7.27.4)(@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.49 version: 2.2.49 @@ -31,61 +31,61 @@ importers: version: 15.3.3 '@next/third-parties': specifier: ^15.3.3 - version: 15.3.3(next@15.3.2(@babel/core@7.27.4)(@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) + version: 15.3.3(next@15.3.3(@babel/core@7.27.4)(@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.10 version: 0.5.10(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.3.2(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.1.15(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-hover-card': specifier: ^1.1.14 - version: 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 2.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.3.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) + version: 1.2.3(@types/react@19.1.8)(react@19.1.0) '@radix-ui/react-switch': specifier: ^1.2.5 - version: 1.2.5(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.5(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.12(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@sentry/nextjs': specifier: 9.28.1 - version: 9.28.1(@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.27.4)(@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)) + version: 9.28.1(@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.3(@babel/core@7.27.4)(@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.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -97,7 +97,7 @@ importers: version: 0.13.8(arktype@2.1.20)(typescript@5.8.3)(zod@3.25.61) '@vercel/analytics': specifier: ^1.5.0 - version: 1.5.0(next@15.3.2(@babel/core@7.27.4)(@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) + version: 1.5.0(next@15.3.3(@babel/core@7.27.4)(@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) '@vercel/edge-config': specifier: ^1.4.0 version: 1.4.0(@opentelemetry/api@1.9.0) @@ -112,7 +112,7 @@ importers: version: 2.1.1 cookies-next: specifier: ^6.0.0 - version: 6.0.0(next@15.3.2(@babel/core@7.27.4)(@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) + version: 6.0.0(next@15.3.3(@babel/core@7.27.4)(@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.44.2 version: 0.44.2(@opentelemetry/api@1.9.0)(@types/pg@8.11.6)(@vercel/postgres@0.10.0)(gel@2.0.1)(postgres@3.4.7) @@ -124,19 +124,19 @@ importers: version: 12.17.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) geist: specifier: ^1.4.2 - version: 1.4.2(next@15.3.2(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)) + version: 1.4.2(next@15.3.3(@babel/core@7.27.4)(@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.7)(react@19.1.0) + specifier: ^2.12.5 + version: 2.12.5(@types/react@19.1.8)(react@19.1.0) lucide-react: specifier: ^0.514.0 version: 0.514.0(react@19.1.0) next: - specifier: 15.3.2 - version: 15.3.2(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: 15.3.3 + version: 15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) next-cloudinary: specifier: ^6.16.0 - version: 6.16.0(next@15.3.2(@babel/core@7.27.4)(@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) + version: 6.16.0(next@15.3.3(@babel/core@7.27.4)(@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-themes: specifier: ^0.4.6 version: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -144,8 +144,8 @@ importers: specifier: ^3.4.7 version: 3.4.7 posthog-js: - specifier: ^1.250.1 - version: 1.250.1 + specifier: ^1.250.2 + version: 1.250.2 posthog-node: specifier: ^5.0.0 version: 5.0.0 @@ -175,7 +175,7 @@ importers: version: 2.0.15(react@19.1.0) react-select: specifier: ^5.10.1 - version: 5.10.1(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 5.10.1(@types/react@19.1.8)(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) @@ -196,7 +196,7 @@ importers: version: 2.0.1 vaul: specifier: ^1.1.2 - version: 1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.1.2(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) zod: specifier: 3.25.61 version: 3.25.61 @@ -209,7 +209,7 @@ importers: version: 3.3.1 '@storybook/addon-essentials': specifier: 8.6.14 - version: 8.6.14(@types/react@19.1.7)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + version: 8.6.14(@types/react@19.1.8)(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)) @@ -218,7 +218,7 @@ importers: 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: 8.6.14 - version: 8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.2)(next@15.3.2(@babel/core@7.27.4)(@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)) + version: 8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.2)(next@15.3.3(@babel/core@7.27.4)(@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: 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) @@ -226,8 +226,8 @@ importers: specifier: 8.6.14 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 + specifier: ^4.1.10 + version: 4.1.10 '@testing-library/dom': specifier: ^10.4.0 version: 10.4.0 @@ -236,7 +236,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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@types/eslint': specifier: ^9.6.1 version: 9.6.1 @@ -247,11 +247,11 @@ importers: specifier: ^22.15.29 version: 22.15.29 '@types/react': - specifier: ^19.1.7 - version: 19.1.7 + specifier: ^19.1.8 + version: 19.1.8 '@types/react-dom': specifier: ^19.1.6 - version: 19.1.6(@types/react@19.1.7) + version: 19.1.6(@types/react@19.1.8) cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -281,7 +281,7 @@ importers: version: 30.0.0(bufferutil@4.0.9) jotai-devtools: specifier: ^0.12.0 - version: 0.12.0(@types/react@19.1.7)(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.8)(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) @@ -1988,59 +1988,56 @@ packages: '@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/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==} + '@next/swc-darwin-arm64@15.3.3': + resolution: {integrity: sha512-WRJERLuH+O3oYB4yZNVahSVFmtxRNjNF1I1c34tYMoJb0Pve+7/RaLAJJizyYiFhjYNGHRAE1Ri2Fd23zgDqhg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@15.3.2': - resolution: {integrity: sha512-ro/fdqaZWL6k1S/5CLv1I0DaZfDVJkWNaUU3un8Lg6m0YENWlDulmIWzV96Iou2wEYyEsZq51mwV8+XQXqMp3w==} + '@next/swc-darwin-x64@15.3.3': + resolution: {integrity: sha512-XHdzH/yBc55lu78k/XwtuFR/ZXUTcflpRXcsu0nKmF45U96jt1tsOZhVrn5YH+paw66zOANpOnFQ9i6/j+UYvw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@15.3.2': - resolution: {integrity: sha512-covwwtZYhlbRWK2HlYX9835qXum4xYZ3E2Mra1mdQ+0ICGoMiw1+nVAn4d9Bo7R3JqSmK1grMq/va+0cdh7bJA==} + '@next/swc-linux-arm64-gnu@15.3.3': + resolution: {integrity: sha512-VZ3sYL2LXB8znNGcjhocikEkag/8xiLgnvQts41tq6i+wql63SMS1Q6N8RVXHw5pEUjiof+II3HkDd7GFcgkzw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.3.2': - resolution: {integrity: sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg==} + '@next/swc-linux-arm64-musl@15.3.3': + resolution: {integrity: sha512-h6Y1fLU4RWAp1HPNJWDYBQ+e3G7sLckyBXhmH9ajn8l/RSMnhbuPBV/fXmy3muMcVwoJdHL+UtzRzs0nXOf9SA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@15.3.2': - resolution: {integrity: sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg==} + '@next/swc-linux-x64-gnu@15.3.3': + resolution: {integrity: sha512-jJ8HRiF3N8Zw6hGlytCj5BiHyG/K+fnTKVDEKvUCyiQ/0r5tgwO7OgaRiOjjRoIx2vwLR+Rz8hQoPrnmFbJdfw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.3.2': - resolution: {integrity: sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w==} + '@next/swc-linux-x64-musl@15.3.3': + resolution: {integrity: sha512-HrUcTr4N+RgiiGn3jjeT6Oo208UT/7BuTr7K0mdKRBtTbT4v9zJqCDKO97DUqqoBK1qyzP1RwvrWTvU6EPh/Cw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@15.3.2': - resolution: {integrity: sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ==} + '@next/swc-win32-arm64-msvc@15.3.3': + resolution: {integrity: sha512-SxorONgi6K7ZUysMtRF3mIeHC5aA3IQLmKFQzU0OuhuUYwpOBc1ypaLJLP5Bf3M9k53KUUUj4vTPwzGvl/NwlQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@15.3.2': - resolution: {integrity: sha512-aW5B8wOPioJ4mBdMDXkt5f3j8pUr9W8AnlX0Df35uRWNT1Y6RIybxjnSUe+PhM+M1bwgyY8PHLmXZC6zT1o5tA==} + '@next/swc-win32-x64-msvc@15.3.3': + resolution: {integrity: sha512-4QZG6F8enl9/S2+yIiOiju0iCTFd93d8VC1q9LZS4p/Xuk81W2QDjCFeoogmrWWkAD59z8ZxepBQap2dKS5ruw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -3345,65 +3342,65 @@ packages: zod: optional: true - '@tailwindcss/node@4.1.8': - resolution: {integrity: sha512-OWwBsbC9BFAJelmnNcrKuf+bka2ZxCE2A4Ft53Tkg4uoiE67r/PMEYwCsourC26E+kmxfwE0hVzMdxqeW+xu7Q==} + '@tailwindcss/node@4.1.10': + resolution: {integrity: sha512-2ACf1znY5fpRBwRhMgj9ZXvb2XZW8qs+oTfotJ2C5xR0/WNL7UHZ7zXl6s+rUqedL1mNi+0O+WQr5awGowS3PQ==} - '@tailwindcss/oxide-android-arm64@4.1.8': - resolution: {integrity: sha512-Fbz7qni62uKYceWYvUjRqhGfZKwhZDQhlrJKGtnZfuNtHFqa8wmr+Wn74CTWERiW2hn3mN5gTpOoxWKk0jRxjg==} + '@tailwindcss/oxide-android-arm64@4.1.10': + resolution: {integrity: sha512-VGLazCoRQ7rtsCzThaI1UyDu/XRYVyH4/EWiaSX6tFglE+xZB5cvtC5Omt0OQ+FfiIVP98su16jDVHDEIuH4iQ==} engines: {node: '>= 10'} cpu: [arm64] os: [android] - '@tailwindcss/oxide-darwin-arm64@4.1.8': - resolution: {integrity: sha512-RdRvedGsT0vwVVDztvyXhKpsU2ark/BjgG0huo4+2BluxdXo8NDgzl77qh0T1nUxmM11eXwR8jA39ibvSTbi7A==} + '@tailwindcss/oxide-darwin-arm64@4.1.10': + resolution: {integrity: sha512-ZIFqvR1irX2yNjWJzKCqTCcHZbgkSkSkZKbRM3BPzhDL/18idA8uWCoopYA2CSDdSGFlDAxYdU2yBHwAwx8euQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@tailwindcss/oxide-darwin-x64@4.1.8': - resolution: {integrity: sha512-t6PgxjEMLp5Ovf7uMb2OFmb3kqzVTPPakWpBIFzppk4JE4ix0yEtbtSjPbU8+PZETpaYMtXvss2Sdkx8Vs4XRw==} + '@tailwindcss/oxide-darwin-x64@4.1.10': + resolution: {integrity: sha512-eCA4zbIhWUFDXoamNztmS0MjXHSEJYlvATzWnRiTqJkcUteSjO94PoRHJy1Xbwp9bptjeIxxBHh+zBWFhttbrQ==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@tailwindcss/oxide-freebsd-x64@4.1.8': - resolution: {integrity: sha512-g8C8eGEyhHTqwPStSwZNSrOlyx0bhK/V/+zX0Y+n7DoRUzyS8eMbVshVOLJTDDC+Qn9IJnilYbIKzpB9n4aBsg==} + '@tailwindcss/oxide-freebsd-x64@4.1.10': + resolution: {integrity: sha512-8/392Xu12R0cc93DpiJvNpJ4wYVSiciUlkiOHOSOQNH3adq9Gi/dtySK7dVQjXIOzlpSHjeCL89RUUI8/GTI6g==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.8': - resolution: {integrity: sha512-Jmzr3FA4S2tHhaC6yCjac3rGf7hG9R6Gf2z9i9JFcuyy0u79HfQsh/thifbYTF2ic82KJovKKkIB6Z9TdNhCXQ==} + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.10': + resolution: {integrity: sha512-t9rhmLT6EqeuPT+MXhWhlRYIMSfh5LZ6kBrC4FS6/+M1yXwfCtp24UumgCWOAJVyjQwG+lYva6wWZxrfvB+NhQ==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - '@tailwindcss/oxide-linux-arm64-gnu@4.1.8': - resolution: {integrity: sha512-qq7jXtO1+UEtCmCeBBIRDrPFIVI4ilEQ97qgBGdwXAARrUqSn/L9fUrkb1XP/mvVtoVeR2bt/0L77xx53bPZ/Q==} + '@tailwindcss/oxide-linux-arm64-gnu@4.1.10': + resolution: {integrity: sha512-3oWrlNlxLRxXejQ8zImzrVLuZ/9Z2SeKoLhtCu0hpo38hTO2iL86eFOu4sVR8cZc6n3z7eRXXqtHJECa6mFOvA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-arm64-musl@4.1.8': - resolution: {integrity: sha512-O6b8QesPbJCRshsNApsOIpzKt3ztG35gfX9tEf4arD7mwNinsoCKxkj8TgEE0YRjmjtO3r9FlJnT/ENd9EVefQ==} + '@tailwindcss/oxide-linux-arm64-musl@4.1.10': + resolution: {integrity: sha512-saScU0cmWvg/Ez4gUmQWr9pvY9Kssxt+Xenfx1LG7LmqjcrvBnw4r9VjkFcqmbBb7GCBwYNcZi9X3/oMda9sqQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@tailwindcss/oxide-linux-x64-gnu@4.1.8': - resolution: {integrity: sha512-32iEXX/pXwikshNOGnERAFwFSfiltmijMIAbUhnNyjFr3tmWmMJWQKU2vNcFX0DACSXJ3ZWcSkzNbaKTdngH6g==} + '@tailwindcss/oxide-linux-x64-gnu@4.1.10': + resolution: {integrity: sha512-/G3ao/ybV9YEEgAXeEg28dyH6gs1QG8tvdN9c2MNZdUXYBaIY/Gx0N6RlJzfLy/7Nkdok4kaxKPHKJUlAaoTdA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-linux-x64-musl@4.1.8': - resolution: {integrity: sha512-s+VSSD+TfZeMEsCaFaHTaY5YNj3Dri8rST09gMvYQKwPphacRG7wbuQ5ZJMIJXN/puxPcg/nU+ucvWguPpvBDg==} + '@tailwindcss/oxide-linux-x64-musl@4.1.10': + resolution: {integrity: sha512-LNr7X8fTiKGRtQGOerSayc2pWJp/9ptRYAa4G+U+cjw9kJZvkopav1AQc5HHD+U364f71tZv6XamaHKgrIoVzA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@tailwindcss/oxide-wasm32-wasi@4.1.8': - resolution: {integrity: sha512-CXBPVFkpDjM67sS1psWohZ6g/2/cd+cq56vPxK4JeawelxwK4YECgl9Y9TjkE2qfF+9/s1tHHJqrC4SS6cVvSg==} + '@tailwindcss/oxide-wasm32-wasi@4.1.10': + resolution: {integrity: sha512-d6ekQpopFQJAcIK2i7ZzWOYGZ+A6NzzvQ3ozBvWFdeyqfOZdYHU66g5yr+/HC4ipP1ZgWsqa80+ISNILk+ae/Q==} engines: {node: '>=14.0.0'} cpu: [wasm32] bundledDependencies: @@ -3414,24 +3411,24 @@ packages: - '@emnapi/wasi-threads' - tslib - '@tailwindcss/oxide-win32-arm64-msvc@4.1.8': - resolution: {integrity: sha512-7GmYk1n28teDHUjPlIx4Z6Z4hHEgvP5ZW2QS9ygnDAdI/myh3HTHjDqtSqgu1BpRoI4OiLx+fThAyA1JePoENA==} + '@tailwindcss/oxide-win32-arm64-msvc@4.1.10': + resolution: {integrity: sha512-i1Iwg9gRbwNVOCYmnigWCCgow8nDWSFmeTUU5nbNx3rqbe4p0kRbEqLwLJbYZKmSSp23g4N6rCDmm7OuPBXhDA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@tailwindcss/oxide-win32-x64-msvc@4.1.8': - resolution: {integrity: sha512-fou+U20j+Jl0EHwK92spoWISON2OBnCazIc038Xj2TdweYV33ZRkS9nwqiUi2d/Wba5xg5UoHfvynnb/UB49cQ==} + '@tailwindcss/oxide-win32-x64-msvc@4.1.10': + resolution: {integrity: sha512-sGiJTjcBSfGq2DVRtaSljq5ZgZS2SDHSIfhOylkBvHVjwOsodBhnb3HdmiKkVuUGKD0I7G63abMOVaskj1KpOA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - '@tailwindcss/oxide@4.1.8': - resolution: {integrity: sha512-d7qvv9PsM5N3VNKhwVUhpK6r4h9wtLkJ6lz9ZY9aeZgrUWk1Z8VPyqyDT9MZlem7GTGseRQHkeB1j3tC7W1P+A==} + '@tailwindcss/oxide@4.1.10': + resolution: {integrity: sha512-v0C43s7Pjw+B9w21htrQwuFObSkio2aV/qPx/mhrRldbqxbWJK6KizM+q7BF1/1CmuLqZqX3CeYF7s7P9fbA8Q==} engines: {node: '>= 10'} - '@tailwindcss/postcss@4.1.8': - resolution: {integrity: sha512-vB/vlf7rIky+w94aWMw34bWW1ka6g6C3xIOdICKX2GC0VcLtL6fhlLiafF0DVIwa9V6EHz8kbWMkS2s2QvvNlw==} + '@tailwindcss/postcss@4.1.10': + resolution: {integrity: sha512-B+7r7ABZbkXJwpvt2VMnS6ujcDoR2OOcFaqrLIo1xbcdxje4Vf+VgJdBzNNbrAjBj/rLZ66/tlQ1knIGNLKOBQ==} '@testing-library/dom@10.4.0': resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} @@ -3581,8 +3578,8 @@ packages: peerDependencies: '@types/react': '*' - '@types/react@19.1.7': - resolution: {integrity: sha512-BnsPLV43ddr05N71gaGzyZ5hzkCmGwhMvYc8zmvI8Ci1bRkkDSzDDVfAXfN2tk748OwI7ediiPX6PfT9p0QGVg==} + '@types/react@19.1.8': + resolution: {integrity: sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==} '@types/resolve@1.20.6': resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} @@ -4682,10 +4679,6 @@ packages: des.js@1.1.0: resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} - detect-libc@2.0.4: resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} @@ -5976,8 +5969,8 @@ packages: peerDependencies: react: '>=17.0.0' - jotai@2.12.4: - resolution: {integrity: sha512-eFXLJol4oOLM8BS1+QV+XwaYQITG8n1tatBCFl4F5HE3zR5j2WIK8QpMt7VJIYmlogNUZfvB7wjwLoVk+umB9Q==} + jotai@2.12.5: + resolution: {integrity: sha512-G8m32HW3lSmcz/4mbqx0hgJIQ0ekndKWiYP7kWVKi0p6saLXdSoye+FZiOFyonnd7Q482LCzm8sMDl7Ar1NWDw==} engines: {node: '>=12.20.0'} peerDependencies: '@types/react': '>=17.0.0' @@ -6389,8 +6382,8 @@ packages: react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc - next@15.3.2: - resolution: {integrity: sha512-CA3BatMyHkxZ48sgOCLdVHjFU36N7TF1HhqAHLFOkV6buwZnvMI84Cug8xD56B9mCuKrqXnLn94417GrZ/jjCQ==} + next@15.3.3: + resolution: {integrity: sha512-JqNj29hHNmCLtNvd090SyRbXJiivQ+58XjCcrC50Crb5g5u2zi7Y2YivbsEfzk6AtVI80akdOQbaMZwWB1Hthw==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: @@ -6763,8 +6756,8 @@ packages: resolution: {integrity: sha512-Jtc2612XINuBjIl/QTWsV5UvE8UHuNblcO3vVADSrKsrc6RqGX6lOW1cEo3CM2v0XG4Nat8nI+YM7/f26VxXLw==} engines: {node: '>=12'} - posthog-js@1.250.1: - resolution: {integrity: sha512-Dl9BQjPa5FFVUauLSX/8HP6naRfU605GQYq+oAHFqwyv20NQDCHT0uRtFT1x2EYrY0kIQdd0d/rOY6Tg4wgqEg==} + posthog-js@1.250.2: + resolution: {integrity: sha512-g/H9lJhjhsYPnpxntqp36osK7oJ6CFqul2+mVUkaacAJUG4DqCG8iawsSnZvvUmapjapbf2HUA7PCRrpRsl06A==} peerDependencies: '@rrweb/types': 2.0.0-alpha.17 rrweb-snapshot: 2.0.0-alpha.17 @@ -7597,6 +7590,9 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || insiders' + tailwindcss@4.1.10: + resolution: {integrity: sha512-P3nr6WkvKV/ONsTzj6Gb57sWPMX29EPNPopo7+FcpkQaNsrNpZ1pv8QmrYI2RqEKD7mlGqLnGovlcYnBK0IqUA==} + tailwindcss@4.1.8: resolution: {integrity: sha512-kjeW8gjdxasbmFKpVGrGd5T4i40mV5J2Rasw48QARfYeQ8YS9x02ON9SFWax3Qf616rt4Cp3nVNIj6Hd1mP3og==} @@ -9122,13 +9118,13 @@ snapshots: react-dom: 19.1.0(react@19.1.0) tslib: 2.8.1 - '@clerk/nextjs@6.21.0(next@15.3.2(@babel/core@7.27.4)(@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.21.0(next@15.3.3(@babel/core@7.27.4)(@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': 2.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@clerk/clerk-react': 5.31.9(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@clerk/shared': 3.9.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@clerk/types': 4.60.0 - next: 15.3.2(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.3.3(@babel/core@7.27.4)(@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) server-only: 0.0.1 @@ -9276,7 +9272,7 @@ snapshots: '@emotion/memoize@0.9.0': {} - '@emotion/react@11.14.0(@types/react@19.1.7)(react@19.1.0)': + '@emotion/react@11.14.0(@types/react@19.1.8)(react@19.1.0)': dependencies: '@babel/runtime': 7.26.10 '@emotion/babel-plugin': 11.13.5 @@ -9288,7 +9284,7 @@ snapshots: hoist-non-react-statics: 3.3.2 react: 19.1.0 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 transitivePeerDependencies: - supports-color @@ -9688,7 +9684,7 @@ snapshots: '@img/sharp-wasm32@0.34.1': dependencies: - '@emnapi/runtime': 1.4.0 + '@emnapi/runtime': 1.4.3 optional: true '@img/sharp-win32-ia32@0.33.5': @@ -9981,16 +9977,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.7)(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.8)(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.7)(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.8)(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.7)(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.8)(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) @@ -9998,8 +9994,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.7)(react@19.1.0) - react-textarea-autosize: 8.5.9(@types/react@19.1.7)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.8)(react@19.1.0) + react-textarea-autosize: 8.5.9(@types/react@19.1.8)(react@19.1.0) type-fest: 4.41.0 transitivePeerDependencies: - '@types/react' @@ -10008,10 +10004,10 @@ snapshots: dependencies: react: 19.1.0 - '@mdx-js/react@3.1.0(@types/react@19.1.7)(react@19.1.0)': + '@mdx-js/react@3.1.0(@types/react@19.1.8)(react@19.1.0)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.1.7 + '@types/react': 19.1.8 react: 19.1.0 '@napi-rs/wasm-runtime@0.2.11': @@ -10032,41 +10028,39 @@ snapshots: dependencies: '@types/pg': 8.11.6 - '@next/env@15.3.2': {} - '@next/env@15.3.3': {} '@next/eslint-plugin-next@15.3.3': dependencies: fast-glob: 3.3.1 - '@next/swc-darwin-arm64@15.3.2': + '@next/swc-darwin-arm64@15.3.3': optional: true - '@next/swc-darwin-x64@15.3.2': + '@next/swc-darwin-x64@15.3.3': optional: true - '@next/swc-linux-arm64-gnu@15.3.2': + '@next/swc-linux-arm64-gnu@15.3.3': optional: true - '@next/swc-linux-arm64-musl@15.3.2': + '@next/swc-linux-arm64-musl@15.3.3': optional: true - '@next/swc-linux-x64-gnu@15.3.2': + '@next/swc-linux-x64-gnu@15.3.3': optional: true - '@next/swc-linux-x64-musl@15.3.2': + '@next/swc-linux-x64-musl@15.3.3': optional: true - '@next/swc-win32-arm64-msvc@15.3.2': + '@next/swc-win32-arm64-msvc@15.3.3': optional: true - '@next/swc-win32-x64-msvc@15.3.2': + '@next/swc-win32-x64-msvc@15.3.3': optional: true - '@next/third-parties@15.3.3(next@15.3.2(@babel/core@7.27.4)(@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.3(@babel/core@7.27.4)(@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.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.3.3(@babel/core@7.27.4)(@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 third-party-capital: 1.0.20 @@ -10406,487 +10400,487 @@ snapshots: '@radix-ui/primitive@1.1.2': {} - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-avatar@1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) - '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) + '@radix-ui/react-use-is-hydrated': 0.1.0(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-checkbox@1.3.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-collapsible@1.1.11(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.1.8)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - '@radix-ui/react-context@1.1.2(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-context@1.1.2(@types/react@19.1.8)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - '@radix-ui/react-dialog@1.1.14(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(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.7)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.8)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-direction@1.1.1(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-direction@1.1.1(@types/react@19.1.8)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - '@radix-ui/react-dismissable-layer@1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-dropdown-menu@2.1.15(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-menu': 2.1.15(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-menu': 2.1.15(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-focus-guards@1.1.2(@types/react@19.1.8)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-hover-card@1.1.14(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + '@radix-ui/react-hover-card@1.1.14(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-id@1.1.1(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-id@1.1.1(@types/react@19.1.8)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - '@radix-ui/react-label@2.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-menu@2.1.15(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(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.7)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.8)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-popover@1.1.14(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(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.7)(react@19.1.0) + react-remove-scroll: 2.6.3(@types/react@19.1.8)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-popper@1.2.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.8)(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.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-presence@1.1.4(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-progress@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-radio-group@1.3.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-roving-focus@1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-separator@1.1.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-slot@1.2.3(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-slot@1.2.3(@types/react@19.1.8)(react@19.1.0)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - '@radix-ui/react-switch@1.2.5(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) - '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) + '@radix-ui/react-use-previous': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-tabs@1.1.12(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) - '@radix-ui/react-direction': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) react: 19.1.0 react-dom: 19.1.0(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-toast@1.2.14(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.7)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.8)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-tooltip@1.2.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7)(react@19.1.0) - '@radix-ui/react-context': 1.1.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-id': 1.1.1(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@radix-ui/react-slot': 1.2.3(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.8)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-dismissable-layer': 1.1.10(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-popper': 1.2.7(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-visually-hidden': 1.2.3(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.1.8)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.1.8)(react@19.1.0)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.7)(react@19.1.0) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.1.8)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.1.8)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.1.8)(react@19.1.0)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-use-is-hydrated@0.1.0(@types/react@19.1.8)(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.7 + '@types/react': 19.1.8 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.1.8)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-use-previous@1.1.1(@types/react@19.1.8)(react@19.1.0)': dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.1.8)(react@19.1.0)': dependencies: '@radix-ui/rect': 1.1.1 react: 19.1.0 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - '@radix-ui/react-use-size@1.1.1(@types/react@19.1.7)(react@19.1.0)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.1.8)(react@19.1.0)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.7)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.1.8)(react@19.1.0) react: 19.1.0 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - '@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) '@radix-ui/rect@1.1.1': {} @@ -11061,7 +11055,7 @@ snapshots: '@sentry/core@9.28.1': {} - '@sentry/nextjs@9.28.1(@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.27.4)(@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.28.1(@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.3(@babel/core@7.27.4)(@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.34.0 @@ -11074,7 +11068,7 @@ snapshots: '@sentry/vercel-edge': 9.28.1 '@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.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.3.3(@babel/core@7.27.4)(@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 rollup: 4.35.0 stacktrace-parser: 0.1.10 @@ -11196,9 +11190,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.7)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-docs@8.6.14(@types/react@19.1.8)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': dependencies: - '@mdx-js/react': 3.1.0(@types/react@19.1.7)(react@19.1.0) + '@mdx-js/react': 3.1.0(@types/react@19.1.8)(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)) @@ -11209,12 +11203,12 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@storybook/addon-essentials@8.6.14(@types/react@19.1.7)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3))': + '@storybook/addon-essentials@8.6.14(@types/react@19.1.8)(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.7)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)) + '@storybook/addon-docs': 8.6.14(@types/react@19.1.8)(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)) @@ -11356,7 +11350,7 @@ snapshots: 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.27.4)(@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@8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.2)(next@15.3.3(@babel/core@7.27.4)(@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) @@ -11382,7 +11376,7 @@ snapshots: find-up: 5.0.0 image-size: 1.2.1 loader-utils: 3.3.1 - next: 15.3.2(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.3.3(@babel/core@7.27.4)(@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 @@ -11530,7 +11524,7 @@ snapshots: typescript: 5.8.3 zod: 3.25.61 - '@tailwindcss/node@4.1.8': + '@tailwindcss/node@4.1.10': dependencies: '@ampproject/remapping': 2.3.0 enhanced-resolve: 5.18.1 @@ -11538,69 +11532,69 @@ snapshots: lightningcss: 1.30.1 magic-string: 0.30.17 source-map-js: 1.2.1 - tailwindcss: 4.1.8 + tailwindcss: 4.1.10 - '@tailwindcss/oxide-android-arm64@4.1.8': + '@tailwindcss/oxide-android-arm64@4.1.10': optional: true - '@tailwindcss/oxide-darwin-arm64@4.1.8': + '@tailwindcss/oxide-darwin-arm64@4.1.10': optional: true - '@tailwindcss/oxide-darwin-x64@4.1.8': + '@tailwindcss/oxide-darwin-x64@4.1.10': optional: true - '@tailwindcss/oxide-freebsd-x64@4.1.8': + '@tailwindcss/oxide-freebsd-x64@4.1.10': optional: true - '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.8': + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.10': optional: true - '@tailwindcss/oxide-linux-arm64-gnu@4.1.8': + '@tailwindcss/oxide-linux-arm64-gnu@4.1.10': optional: true - '@tailwindcss/oxide-linux-arm64-musl@4.1.8': + '@tailwindcss/oxide-linux-arm64-musl@4.1.10': optional: true - '@tailwindcss/oxide-linux-x64-gnu@4.1.8': + '@tailwindcss/oxide-linux-x64-gnu@4.1.10': optional: true - '@tailwindcss/oxide-linux-x64-musl@4.1.8': + '@tailwindcss/oxide-linux-x64-musl@4.1.10': optional: true - '@tailwindcss/oxide-wasm32-wasi@4.1.8': + '@tailwindcss/oxide-wasm32-wasi@4.1.10': optional: true - '@tailwindcss/oxide-win32-arm64-msvc@4.1.8': + '@tailwindcss/oxide-win32-arm64-msvc@4.1.10': optional: true - '@tailwindcss/oxide-win32-x64-msvc@4.1.8': + '@tailwindcss/oxide-win32-x64-msvc@4.1.10': optional: true - '@tailwindcss/oxide@4.1.8': + '@tailwindcss/oxide@4.1.10': dependencies: detect-libc: 2.0.4 tar: 7.4.3 optionalDependencies: - '@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': + '@tailwindcss/oxide-android-arm64': 4.1.10 + '@tailwindcss/oxide-darwin-arm64': 4.1.10 + '@tailwindcss/oxide-darwin-x64': 4.1.10 + '@tailwindcss/oxide-freebsd-x64': 4.1.10 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.10 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.10 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.10 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.10 + '@tailwindcss/oxide-linux-x64-musl': 4.1.10 + '@tailwindcss/oxide-wasm32-wasi': 4.1.10 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.10 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.10 + + '@tailwindcss/postcss@4.1.10': dependencies: '@alloc/quick-lru': 5.2.0 - '@tailwindcss/node': 4.1.8 - '@tailwindcss/oxide': 4.1.8 + '@tailwindcss/node': 4.1.10 + '@tailwindcss/oxide': 4.1.10 postcss: 8.5.3 - tailwindcss: 4.1.8 + tailwindcss: 4.1.10 '@testing-library/dom@10.4.0': dependencies: @@ -11633,15 +11627,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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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.7 - '@types/react-dom': 19.1.6(@types/react@19.1.7) + '@types/react': 19.1.8 + '@types/react-dom': 19.1.6(@types/react@19.1.8) '@testing-library/user-event@14.5.2(@testing-library/dom@10.4.0)': dependencies: @@ -11772,15 +11766,15 @@ snapshots: pg-protocol: 1.7.1 pg-types: 2.2.0 - '@types/react-dom@19.1.6(@types/react@19.1.7)': + '@types/react-dom@19.1.6(@types/react@19.1.8)': dependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - '@types/react-transition-group@4.4.12(@types/react@19.1.7)': + '@types/react-transition-group@4.4.12(@types/react@19.1.8)': dependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - '@types/react@19.1.7': + '@types/react@19.1.8': dependencies: csstype: 3.1.3 @@ -12082,9 +12076,9 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.8.1': optional: true - '@vercel/analytics@1.5.0(next@15.3.2(@babel/core@7.27.4)(@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)': + '@vercel/analytics@1.5.0(next@15.3.3(@babel/core@7.27.4)(@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)': optionalDependencies: - next: 15.3.2(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.3.3(@babel/core@7.27.4)(@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 '@vercel/edge-config-fs@0.1.0': {} @@ -12832,10 +12826,10 @@ snapshots: cookie@1.0.2: {} - cookies-next@6.0.0(next@15.3.2(@babel/core@7.27.4)(@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.3(@babel/core@7.27.4)(@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.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.3.3(@babel/core@7.27.4)(@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 copy-to-clipboard@3.3.3: @@ -13031,9 +13025,6 @@ snapshots: inherits: 2.0.4 minimalistic-assert: 1.0.1 - detect-libc@2.0.3: - optional: true - detect-libc@2.0.4: {} detect-newline@3.1.0: {} @@ -13806,9 +13797,9 @@ snapshots: functions-have-names@1.2.3: {} - geist@1.4.2(next@15.3.2(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)): + geist@1.4.2(next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)): dependencies: - next: 15.3.2(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) gel@2.0.1: dependencies: @@ -14698,21 +14689,21 @@ snapshots: jiti@2.4.2: {} - jotai-devtools@0.12.0(@types/react@19.1.7)(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.8)(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.7)(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.7)(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.8)(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.8)(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.7)(react@19.1.0) + jotai: 2.12.5(@types/react@19.1.8)(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.7)(react@19.1.0) + react-json-tree: 0.18.0(@types/react@19.1.8)(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' @@ -14720,9 +14711,9 @@ snapshots: - redux - storybook - jotai@2.12.4(@types/react@19.1.7)(react@19.1.0): + jotai@2.12.5(@types/react@19.1.8)(react@19.1.0): optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 react: 19.1.0 js-cookie@2.2.1: {} @@ -15076,12 +15067,12 @@ snapshots: neo-async@2.6.2: {} - next-cloudinary@6.16.0(next@15.3.2(@babel/core@7.27.4)(@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-cloudinary@6.16.0(next@15.3.3(@babel/core@7.27.4)(@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: '@cloudinary-util/types': 1.5.10 '@cloudinary-util/url-loader': 5.10.4 '@cloudinary-util/util': 4.0.0 - next: 15.3.2(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next: 15.3.3(@babel/core@7.27.4)(@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-themes@0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0): @@ -15089,9 +15080,9 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - next@15.3.2(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + next@15.3.3(@babel/core@7.27.4)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: - '@next/env': 15.3.2 + '@next/env': 15.3.3 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 @@ -15101,14 +15092,14 @@ snapshots: react-dom: 19.1.0(react@19.1.0) styled-jsx: 5.1.6(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@19.1.0) optionalDependencies: - '@next/swc-darwin-arm64': 15.3.2 - '@next/swc-darwin-x64': 15.3.2 - '@next/swc-linux-arm64-gnu': 15.3.2 - '@next/swc-linux-arm64-musl': 15.3.2 - '@next/swc-linux-x64-gnu': 15.3.2 - '@next/swc-linux-x64-musl': 15.3.2 - '@next/swc-win32-arm64-msvc': 15.3.2 - '@next/swc-win32-x64-msvc': 15.3.2 + '@next/swc-darwin-arm64': 15.3.3 + '@next/swc-darwin-x64': 15.3.3 + '@next/swc-linux-arm64-gnu': 15.3.3 + '@next/swc-linux-arm64-musl': 15.3.3 + '@next/swc-linux-x64-gnu': 15.3.3 + '@next/swc-linux-x64-musl': 15.3.3 + '@next/swc-win32-arm64-msvc': 15.3.3 + '@next/swc-win32-x64-msvc': 15.3.3 '@opentelemetry/api': 1.9.0 sharp: 0.34.1 transitivePeerDependencies: @@ -15494,7 +15485,7 @@ snapshots: postgres@3.4.7: {} - posthog-js@1.250.1: + posthog-js@1.250.2: dependencies: core-js: 3.41.0 fflate: 0.4.8 @@ -15666,11 +15657,11 @@ snapshots: react-is@18.3.1: {} - react-json-tree@0.18.0(@types/react@19.1.7)(react@19.1.0): + react-json-tree@0.18.0(@types/react@19.1.8)(react@19.1.0): dependencies: '@babel/runtime': 7.26.10 '@types/lodash': 4.17.16 - '@types/react': 19.1.7 + '@types/react': 19.1.8 react: 19.1.0 react-base16-styling: 0.9.1 @@ -15691,61 +15682,61 @@ snapshots: react-refresh@0.14.2: {} - react-remove-scroll-bar@2.3.8(@types/react@19.1.7)(react@19.1.0): + react-remove-scroll-bar@2.3.8(@types/react@19.1.8)(react@19.1.0): dependencies: react: 19.1.0 - react-style-singleton: 2.2.3(@types/react@19.1.7)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.8)(react@19.1.0) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - react-remove-scroll@2.6.3(@types/react@19.1.7)(react@19.1.0): + react-remove-scroll@2.6.3(@types/react@19.1.8)(react@19.1.0): dependencies: react: 19.1.0 - react-remove-scroll-bar: 2.3.8(@types/react@19.1.7)(react@19.1.0) - react-style-singleton: 2.2.3(@types/react@19.1.7)(react@19.1.0) + react-remove-scroll-bar: 2.3.8(@types/react@19.1.8)(react@19.1.0) + react-style-singleton: 2.2.3(@types/react@19.1.8)(react@19.1.0) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.1.7)(react@19.1.0) - use-sidecar: 1.1.3(@types/react@19.1.7)(react@19.1.0) + use-callback-ref: 1.3.3(@types/react@19.1.8)(react@19.1.0) + use-sidecar: 1.1.3(@types/react@19.1.8)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 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.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + react-select@5.10.1(@types/react@19.1.8)(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.7)(react@19.1.0) + '@emotion/react': 11.14.0(@types/react@19.1.8)(react@19.1.0) '@floating-ui/dom': 1.6.13 - '@types/react-transition-group': 4.4.12(@types/react@19.1.7) + '@types/react-transition-group': 4.4.12(@types/react@19.1.8) 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.7)(react@19.1.0) + use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.8)(react@19.1.0) transitivePeerDependencies: - '@types/react' - supports-color - react-style-singleton@2.2.3(@types/react@19.1.7)(react@19.1.0): + react-style-singleton@2.2.3(@types/react@19.1.8)(react@19.1.0): dependencies: get-nonce: 1.0.1 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - react-textarea-autosize@8.5.9(@types/react@19.1.7)(react@19.1.0): + react-textarea-autosize@8.5.9(@types/react@19.1.8)(react@19.1.0): dependencies: '@babel/runtime': 7.26.10 react: 19.1.0 - use-composed-ref: 1.4.0(@types/react@19.1.7)(react@19.1.0) - use-latest: 1.3.0(@types/react@19.1.7)(react@19.1.0) + use-composed-ref: 1.4.0(@types/react@19.1.8)(react@19.1.0) + use-latest: 1.3.0(@types/react@19.1.8)(react@19.1.0) transitivePeerDependencies: - '@types/react' @@ -16105,7 +16096,7 @@ snapshots: sharp@0.34.1: dependencies: color: 4.2.3 - detect-libc: 2.0.3 + detect-libc: 2.0.4 semver: 7.7.2 optionalDependencies: '@img/sharp-darwin-arm64': 0.34.1 @@ -16428,6 +16419,8 @@ snapshots: dependencies: tailwindcss: 4.1.8 + tailwindcss@4.1.10: {} + tailwindcss@4.1.8: {} tapable@2.2.1: {} @@ -16716,39 +16709,39 @@ snapshots: punycode: 1.4.1 qs: 6.14.0 - use-callback-ref@1.3.3(@types/react@19.1.7)(react@19.1.0): + use-callback-ref@1.3.3(@types/react@19.1.8)(react@19.1.0): dependencies: react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - use-composed-ref@1.4.0(@types/react@19.1.7)(react@19.1.0): + use-composed-ref@1.4.0(@types/react@19.1.8)(react@19.1.0): dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - use-isomorphic-layout-effect@1.2.0(@types/react@19.1.7)(react@19.1.0): + use-isomorphic-layout-effect@1.2.0(@types/react@19.1.8)(react@19.1.0): dependencies: react: 19.1.0 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - use-latest@1.3.0(@types/react@19.1.7)(react@19.1.0): + use-latest@1.3.0(@types/react@19.1.8)(react@19.1.0): dependencies: react: 19.1.0 - use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.7)(react@19.1.0) + use-isomorphic-layout-effect: 1.2.0(@types/react@19.1.8)(react@19.1.0) optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 - use-sidecar@1.1.3(@types/react@19.1.7)(react@19.1.0): + use-sidecar@1.1.3(@types/react@19.1.8)(react@19.1.0): dependencies: detect-node-es: 1.1.0 react: 19.1.0 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.1.7 + '@types/react': 19.1.8 use-sync-external-store@1.5.0(react@19.1.0): dependencies: @@ -16776,9 +16769,9 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 - vaul@1.1.2(@types/react-dom@19.1.6(@types/react@19.1.7))(@types/react@19.1.7)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + vaul@1.1.2(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(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.6(@types/react@19.1.7))(@types/react@19.1.7)(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.6(@types/react@19.1.8))(@types/react@19.1.8)(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: diff --git a/src/components/public/PublicMenuItem.tsx b/src/components/public/PublicMenuItem.tsx index fa7fa74..75742b9 100644 --- a/src/components/public/PublicMenuItem.tsx +++ b/src/components/public/PublicMenuItem.tsx @@ -46,13 +46,13 @@ export function PublicMenuItem(props: { item: MenuItem; currencyId: CurrencyId; return (
-
+
{props.item.imageId && props.item.imageId.length > 0 ? ( {name ) : ( diff --git a/src/services/cloudinary/cloudinary-utils.ts b/src/services/cloudinary/cloudinary-utils.ts index a85c65e..56910ff 100644 --- a/src/services/cloudinary/cloudinary-utils.ts +++ b/src/services/cloudinary/cloudinary-utils.ts @@ -7,5 +7,5 @@ export function getCloudinaryImageUrl(imageId: CloudinaryImageId) { } export function getCloudinaryScaledImageUrl(imageId: CloudinaryImageId) { - return `https://res.cloudinary.com/${env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME}/image/upload/c_fill,w_40,h_40/${imageId}` + return `https://res.cloudinary.com/${env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME}/image/upload/c_fill,w_120,h_120/${imageId}` } \ No newline at end of file From 3932446e8b8f687eba6e97ea08a8be8e35a55835 Mon Sep 17 00:00:00 2001 From: dopoto Date: Thu, 12 Jun 2025 11:32:45 +0300 Subject: [PATCH 09/17] wip --- .../[locationSlug]/_components/PublicMenu.tsx | 48 +++++++++++- .../menu-items/_components/MenuItemCard.tsx | 43 +++++----- .../menu-items/_components/MenuItemsList.tsx | 2 +- src/components/EllipsisText.tsx | 41 ++++++++++ src/components/public/PublicMenuItem.tsx | 78 +++++++------------ 5 files changed, 135 insertions(+), 77 deletions(-) create mode 100644 src/components/EllipsisText.tsx diff --git a/src/app/p/[locationSlug]/_components/PublicMenu.tsx b/src/app/p/[locationSlug]/_components/PublicMenu.tsx index 91854ff..0730ca9 100644 --- a/src/app/p/[locationSlug]/_components/PublicMenu.tsx +++ b/src/app/p/[locationSlug]/_components/PublicMenu.tsx @@ -1,20 +1,60 @@ +'use client'; + +import { useAtom } from 'jotai'; +import { PlusIcon } from 'lucide-react'; +import { orderAtom } from '~/app/p/[locationSlug]/_state/order-atom'; import { PublicMenuItem } from '~/components/public/PublicMenuItem'; import { type CurrencyId } from '~/domain/currencies'; -import { type MenuItemWithSortOrder } from '~/domain/menu-items'; -import { type MenuModeId } from '~/domain/menu-modes'; +import { MenuItemId, type MenuItemWithSortOrder } 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'; -export async function PublicMenu(props: { +export function PublicMenu(props: { name: string; currencyId: CurrencyId; menuMode: MenuModeId; items: MenuItemWithSortOrder[]; }) { + + const [, setOrder] = useAtom(orderAtom); + + const addToOrder = (id: MenuItemId, name: string) => { + setOrder((prevOrder) => { + + const newOrderItem: PublicOrderItem = { + menuItemId: id, + orderItem: { + tempId: Date.now().toString(), + isPaid: false, + }, + }; + + return { + ...prevOrder, + items: [...prevOrder.items, newOrderItem], + }; + }); + + toast({ + title: `${name} was added to your cart`, + description: `Press 'Order now!' when you're ready to place your order.`, + className: getTopPositionedToast(), + }); + }; + + const menuConfig = MENU_MODES[props.menuMode]; + return ( <>

{props.name}

{props.items?.map((item) => { return ( - + + addToOrder(item.id, item.name ?? 'Item')} /> +
) : null} /> ); })} diff --git a/src/app/u/[locationId]/menu-items/_components/MenuItemCard.tsx b/src/app/u/[locationId]/menu-items/_components/MenuItemCard.tsx index dfdd0c1..0e2ce15 100644 --- a/src/app/u/[locationId]/menu-items/_components/MenuItemCard.tsx +++ b/src/app/u/[locationId]/menu-items/_components/MenuItemCard.tsx @@ -46,10 +46,30 @@ export default function MenuItemCard(props: { locationId: LocationId; currencyId setIsDeleting(false); } + const dropdownMenu =
+ + + + + + + + + Edit + + + setShowDeleteDialog(true)}> + + Delete + + + +
+ return ( <>
- {/* TODO menumode */} -
- - - - - - - - - Edit - - - setShowDeleteDialog(true)}> - - Delete - - - -
+
diff --git a/src/app/u/[locationId]/menu-items/_components/MenuItemsList.tsx b/src/app/u/[locationId]/menu-items/_components/MenuItemsList.tsx index 51a24cc..3aab6e7 100644 --- a/src/app/u/[locationId]/menu-items/_components/MenuItemsList.tsx +++ b/src/app/u/[locationId]/menu-items/_components/MenuItemsList.tsx @@ -10,7 +10,7 @@ import { getMenuItemsByLocation } from '~/server/queries/menu-items'; export async function MenusItemsList(props: { locationId: LocationId; currencyId: CurrencyId }) { const items = await getMenuItemsByLocation(props.locationId); return ( -
+
= ({ text, className }) => { + const [expanded, setExpanded] = useState(false); + + return ( +
setExpanded((prev) => !prev)} + title={expanded ? undefined : text} + > + {expanded ? ( + {text} + ) : ( + + {text} + + )} +
+ ); +}; + +export default EllipsisText; diff --git a/src/components/public/PublicMenuItem.tsx b/src/components/public/PublicMenuItem.tsx index 75742b9..304118d 100644 --- a/src/components/public/PublicMenuItem.tsx +++ b/src/components/public/PublicMenuItem.tsx @@ -1,65 +1,41 @@ 'use client'; -import { useAtom } from 'jotai'; -import { PlusIcon, SoupIcon, WineIcon } from 'lucide-react'; +import { SoupIcon, WineIcon } from 'lucide-react'; import Image from 'next/image'; -import { orderAtom } from '~/app/p/[locationSlug]/_state/order-atom'; +import EllipsisText from '~/components/EllipsisText'; 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 { type PublicOrderItem } from '~/domain/order-items'; -import { toast } from '~/hooks/use-toast'; -import { getTopPositionedToast } from '~/lib/toast-utils'; +import { type MenuModeId } from '~/domain/menu-modes'; import { getCloudinaryScaledImageUrl } from '~/services/cloudinary/cloudinary-utils'; -export function PublicMenuItem(props: { item: MenuItem; currencyId: CurrencyId; menuMode: MenuModeId }) { +export function PublicMenuItem(props: { + item: MenuItem; + currencyId: CurrencyId; + menuMode: MenuModeId, + actionComponent?: React.ReactNode +}) { const { name, description, price, isNew, type } = props.item; const currency = CURRENCIES[props.currencyId]; - const [, setOrder] = useAtom(orderAtom); - - const menuMode = MENU_MODES[props.menuMode]; - - const addToOrder = () => { - setOrder((prevOrder) => { - const { id } = props.item; - const newOrderItem: PublicOrderItem = { - menuItemId: id, - orderItem: { - tempId: Date.now().toString(), - isPaid: false, - }, - }; - - return { - ...prevOrder, - items: [...prevOrder.items, newOrderItem], - }; - }); - - toast({ - title: `${name} was added to your cart`, - description: `Press 'Order now!' when you're ready to place your order.`, - className: getTopPositionedToast(), - }); - }; return ( -
-
- {props.item.imageId && props.item.imageId.length > 0 ? ( +
+ {props.item.imageId && props.item.imageId.length > 0 ? ( +
{name - ) : ( - type === 'dish' ? : - )} -
-
+
+ ) : ( +
+ {type === 'dish' ? : } +
+ )} +
{name}{' '} {isNew && ( @@ -68,16 +44,14 @@ export function PublicMenuItem(props: { item: MenuItem; currencyId: CurrencyId; )}
-
{description}
{' '} -
+
+ +
+
{price} {currency.symbol}
- {menuMode.allowsAddToOrder && ( -
- -
- )} + {props.actionComponent}
); } From c3633ba5c024cc41b62b16e98e17dbe82c030250 Mon Sep 17 00:00:00 2001 From: dopoto Date: Thu, 12 Jun 2025 12:52:10 +0300 Subject: [PATCH 10/17] txt --- .../menu-items/_components/UploadMenuItemPicture.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx b/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx index 36bd136..ed20e3d 100644 --- a/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx +++ b/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx @@ -154,7 +154,7 @@ export function UploadMenuItemPicture() {
- Upload a picture of your menu item. Recommended size: 800x800 pixels. + Upload a picture of your menu item (use a square picture for best results). From 54174ece39630af95c88cadccc4ef915e3d03aed Mon Sep 17 00:00:00 2001 From: dopoto Date: Thu, 12 Jun 2025 12:52:33 +0300 Subject: [PATCH 11/17] prett --- next.config.ts | 85 ++++----- .../[locationSlug]/_components/PublicMenu.tsx | 23 ++- .../menu-items/_components/EditMenuItem.tsx | 3 +- .../menu-items/_components/MenuItemCard.tsx | 39 +++-- .../_components/UploadMenuItemPicture.tsx | 165 +++++++++--------- src/components/EllipsisText.tsx | 18 +- src/components/public/PublicMenuItem.tsx | 6 +- src/domain/menu-items.ts | 1 - src/services/cloudinary/cloudinary-utils.ts | 6 +- 9 files changed, 181 insertions(+), 165 deletions(-) diff --git a/next.config.ts b/next.config.ts index 50ac01c..7b00f0f 100644 --- a/next.config.ts +++ b/next.config.ts @@ -58,7 +58,8 @@ const nextConfig: NextConfig = { ], }, ]; - }, images: { + }, + images: { remotePatterns: [ { protocol: 'https', @@ -99,47 +100,47 @@ const nextConfig: NextConfig = { const config = env.NEXT_PUBLIC_LOG_TO_SENTRY === 'yes' ? withSentryConfig(nextConfig, { - // For all available options, see: - // https://github.com/getsentry/sentry-webpack-plugin#options - - org: env.NEXT_PUBLIC_SENTRY_ORG, - project: env.NEXT_PUBLIC_SENTRY_PROJECT, - authToken: process.env.SENTRY_AUTH_TOKEN, // Required for source map validation - - // Only print logs for uploading source maps in CI - silent: !process.env.CI, - - // For all available options, see: - // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ - - // Upload a larger set of source maps for prettier stack traces (increases build time) - widenClientFileUpload: true, - - // Automatically annotate React components to show their full name in breadcrumbs and session replay - reactComponentAnnotation: { - enabled: true, - }, - - // Uncomment to route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers. - // This can increase your server load as well as your hosting bill. - // Note: Check that the configured route will not match with your Next.js middleware, otherwise reporting of client- - // side errors will fail. - // tunnelRoute: "/monitoring", - - // Automatically tree-shake Sentry logger statements to reduce bundle size - disableLogger: true, - - // Enables automatic instrumentation of Vercel Cron Monitors. (Does not yet work with App Router route handlers.) - // See the following for more information: - // https://docs.sentry.io/product/crons/ - // https://vercel.com/docs/cron-jobs - automaticVercelMonitors: true, - - sourcemaps: { - disable: false, - deleteSourcemapsAfterUpload: true, - }, - }) + // For all available options, see: + // https://github.com/getsentry/sentry-webpack-plugin#options + + org: env.NEXT_PUBLIC_SENTRY_ORG, + project: env.NEXT_PUBLIC_SENTRY_PROJECT, + authToken: process.env.SENTRY_AUTH_TOKEN, // Required for source map validation + + // Only print logs for uploading source maps in CI + silent: !process.env.CI, + + // For all available options, see: + // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/ + + // Upload a larger set of source maps for prettier stack traces (increases build time) + widenClientFileUpload: true, + + // Automatically annotate React components to show their full name in breadcrumbs and session replay + reactComponentAnnotation: { + enabled: true, + }, + + // Uncomment to route browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers. + // This can increase your server load as well as your hosting bill. + // Note: Check that the configured route will not match with your Next.js middleware, otherwise reporting of client- + // side errors will fail. + // tunnelRoute: "/monitoring", + + // Automatically tree-shake Sentry logger statements to reduce bundle size + disableLogger: true, + + // Enables automatic instrumentation of Vercel Cron Monitors. (Does not yet work with App Router route handlers.) + // See the following for more information: + // https://docs.sentry.io/product/crons/ + // https://vercel.com/docs/cron-jobs + automaticVercelMonitors: true, + + sourcemaps: { + disable: false, + deleteSourcemapsAfterUpload: true, + }, + }) : nextConfig; module.exports = config; diff --git a/src/app/p/[locationSlug]/_components/PublicMenu.tsx b/src/app/p/[locationSlug]/_components/PublicMenu.tsx index 0730ca9..cc47b84 100644 --- a/src/app/p/[locationSlug]/_components/PublicMenu.tsx +++ b/src/app/p/[locationSlug]/_components/PublicMenu.tsx @@ -17,12 +17,10 @@ export function PublicMenu(props: { menuMode: MenuModeId; items: MenuItemWithSortOrder[]; }) { - const [, setOrder] = useAtom(orderAtom); const addToOrder = (id: MenuItemId, name: string) => { setOrder((prevOrder) => { - const newOrderItem: PublicOrderItem = { menuItemId: id, orderItem: { @@ -51,10 +49,23 @@ export function PublicMenu(props: {

{props.name}

{props.items?.map((item) => { return ( - - addToOrder(item.id, item.name ?? 'Item')} /> -
) : null} /> + + addToOrder(item.id, item.name ?? 'Item')} + /> +
+ ) : null + } + /> ); })} diff --git a/src/app/u/[locationId]/menu-items/_components/EditMenuItem.tsx b/src/app/u/[locationId]/menu-items/_components/EditMenuItem.tsx index 36669ca..19eafd7 100644 --- a/src/app/u/[locationId]/menu-items/_components/EditMenuItem.tsx +++ b/src/app/u/[locationId]/menu-items/_components/EditMenuItem.tsx @@ -17,7 +17,8 @@ import { ROUTES } from '~/lib/routes'; export function EditMenuItem(props: { locationId: LocationId; menuItem: MenuItem; currencyId: CurrencyId }) { const router = useRouter(); const form = useForm>({ - resolver: zodResolver(menuItemFormSchema), defaultValues: { + resolver: zodResolver(menuItemFormSchema), + defaultValues: { name: props.menuItem.name ?? '', description: props.menuItem.description ?? '', price: parseFloat(props.menuItem.price) || 0, diff --git a/src/app/u/[locationId]/menu-items/_components/MenuItemCard.tsx b/src/app/u/[locationId]/menu-items/_components/MenuItemCard.tsx index 0e2ce15..3237967 100644 --- a/src/app/u/[locationId]/menu-items/_components/MenuItemCard.tsx +++ b/src/app/u/[locationId]/menu-items/_components/MenuItemCard.tsx @@ -46,25 +46,27 @@ export default function MenuItemCard(props: { locationId: LocationId; currencyId setIsDeleting(false); } - const dropdownMenu =
- - - - - - - - - Edit + const dropdownMenu = ( +
+ + + + + + + + + Edit + + + setShowDeleteDialog(true)}> + + Delete - - setShowDeleteDialog(true)}> - - Delete - - - -
+
+
+
+ ); return ( <> @@ -87,7 +89,6 @@ export default function MenuItemCard(props: { locationId: LocationId; currencyId menuMode={'noninteractive'} actionComponent={dropdownMenu} /> -
diff --git a/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx b/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx index ed20e3d..6d8fec2 100644 --- a/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx +++ b/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx @@ -1,15 +1,15 @@ 'use client'; +import { ExternalLinkIcon, ImageIcon, Loader2, TrashIcon } from 'lucide-react'; import { CldUploadWidget } from 'next-cloudinary'; +import Image from 'next/image'; +import { useState } from 'react'; import { useFormContext } from 'react-hook-form'; -import { ExternalLinkIcon, ImageIcon, TrashIcon, Loader2 } from 'lucide-react'; +import { type z } from 'zod'; import { Button } from '~/components/ui/button'; import { FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage } from '~/components/ui/form'; -import { type z } from 'zod'; import { type menuItemFormSchema } from '~/domain/menu-items'; -import Image from 'next/image'; import { toast } from '~/hooks/use-toast'; -import { useState } from 'react'; import { getCloudinaryImageUrl } from '~/services/cloudinary/cloudinary-utils'; export function UploadMenuItemPicture() { @@ -57,7 +57,7 @@ export function UploadMenuItemPicture() { form.setValue('imageId', publicId, { shouldDirty: true, shouldTouch: true, - shouldValidate: true + shouldValidate: true, }); toast({ @@ -82,83 +82,86 @@ export function UploadMenuItemPicture() { control={form.control} name="imageId" render={({ field }) => { - return - Picture - - -
- {field.value ? ( -
-
- Menu item image -
-
- - + return ( + + Picture + +
+ {field.value ? ( +
+
+ Menu item image +
+
+ + +
-
- ) : ( - - {({ open }) => ( - - )} - - )} -
- - - Upload a picture of your menu item (use a square picture for best results). - - - + ) : ( + + {({ open }) => ( + + )} + + )} +
+ + + Upload a picture of your menu item (use a square picture for best results). + + + + ); }} /> ); -} \ No newline at end of file +} diff --git a/src/components/EllipsisText.tsx b/src/components/EllipsisText.tsx index 9647864..8882cef 100644 --- a/src/components/EllipsisText.tsx +++ b/src/components/EllipsisText.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React, { useState } from 'react'; type EllipsisTextProps = { text: string; @@ -12,9 +12,9 @@ const EllipsisText: React.FC = ({ text, className }) => {
setExpanded((prev) => !prev)} title={expanded ? undefined : text} @@ -24,11 +24,11 @@ const EllipsisText: React.FC = ({ text, className }) => { ) : ( {text} diff --git a/src/components/public/PublicMenuItem.tsx b/src/components/public/PublicMenuItem.tsx index 304118d..afd2432 100644 --- a/src/components/public/PublicMenuItem.tsx +++ b/src/components/public/PublicMenuItem.tsx @@ -12,8 +12,8 @@ import { getCloudinaryScaledImageUrl } from '~/services/cloudinary/cloudinary-ut export function PublicMenuItem(props: { item: MenuItem; currencyId: CurrencyId; - menuMode: MenuModeId, - actionComponent?: React.ReactNode + menuMode: MenuModeId; + actionComponent?: React.ReactNode; }) { const { name, description, price, isNew, type } = props.item; const currency = CURRENCIES[props.currencyId]; @@ -47,7 +47,7 @@ export function PublicMenuItem(props: {
-
+
{price} {currency.symbol}
diff --git a/src/domain/menu-items.ts b/src/domain/menu-items.ts index 55f07f7..819de30 100644 --- a/src/domain/menu-items.ts +++ b/src/domain/menu-items.ts @@ -1,4 +1,3 @@ - import { type InferInsertModel, type InferSelectModel } from 'drizzle-orm'; import { z } from 'zod'; import { withMeta } from '~/lib/form-validation'; diff --git a/src/services/cloudinary/cloudinary-utils.ts b/src/services/cloudinary/cloudinary-utils.ts index 56910ff..4b8d4a6 100644 --- a/src/services/cloudinary/cloudinary-utils.ts +++ b/src/services/cloudinary/cloudinary-utils.ts @@ -3,9 +3,9 @@ import { env } from '~/env'; export type CloudinaryImageId = string; export function getCloudinaryImageUrl(imageId: CloudinaryImageId) { - return `https://res.cloudinary.com/${env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME}/image/upload/${imageId}` + return `https://res.cloudinary.com/${env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME}/image/upload/${imageId}`; } export function getCloudinaryScaledImageUrl(imageId: CloudinaryImageId) { - return `https://res.cloudinary.com/${env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME}/image/upload/c_fill,w_120,h_120/${imageId}` -} \ No newline at end of file + return `https://res.cloudinary.com/${env.NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME}/image/upload/c_fill,w_120,h_120/${imageId}`; +} From ed2c8f158690273ce6e6803c628c5edc75381f28 Mon Sep 17 00:00:00 2001 From: dopoto Date: Thu, 12 Jun 2025 12:59:02 +0300 Subject: [PATCH 12/17] lnt --- TODO.md | 4 +++- .../[locationSlug]/_components/PublicMenu.tsx | 4 ++-- .../_components/UploadMenuItemPicture.tsx | 20 ++++++++++--------- src/components/public/PublicMenuItem.tsx | 2 +- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/TODO.md b/TODO.md index c54e899..d23849d 100644 --- a/TODO.md +++ b/TODO.md @@ -28,4 +28,6 @@ pricing - number of scans per month custom layouts feature matrix - mobile friendly SplitScreenContainer logo link - home page where it makes sense - e.g. if not signed in -currency in add menu items \ No newline at end of file +client side report error to Sentry +Open Orders - empty state +Completed orders \ No newline at end of file diff --git a/src/app/p/[locationSlug]/_components/PublicMenu.tsx b/src/app/p/[locationSlug]/_components/PublicMenu.tsx index cc47b84..f126093 100644 --- a/src/app/p/[locationSlug]/_components/PublicMenu.tsx +++ b/src/app/p/[locationSlug]/_components/PublicMenu.tsx @@ -5,9 +5,9 @@ import { PlusIcon } from 'lucide-react'; import { orderAtom } from '~/app/p/[locationSlug]/_state/order-atom'; import { PublicMenuItem } from '~/components/public/PublicMenuItem'; import { type CurrencyId } from '~/domain/currencies'; -import { MenuItemId, type MenuItemWithSortOrder } from '~/domain/menu-items'; +import { type MenuItemId, type MenuItemWithSortOrder } 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'; diff --git a/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx b/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx index 6d8fec2..1c8fb67 100644 --- a/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx +++ b/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx @@ -1,7 +1,7 @@ 'use client'; import { ExternalLinkIcon, ImageIcon, Loader2, TrashIcon } from 'lucide-react'; -import { CldUploadWidget } from 'next-cloudinary'; +import { CldUploadWidget, type CloudinaryUploadWidgetResults } from 'next-cloudinary'; import Image from 'next/image'; import { useState } from 'react'; import { useFormContext } from 'react-hook-form'; @@ -16,13 +16,11 @@ export function UploadMenuItemPicture() { const form = useFormContext>(); const [isUploading, setIsUploading] = useState(false); - const handleUpload = (result: any) => { - console.log('Upload result:', result); + const handleUpload = (result: CloudinaryUploadWidgetResults) => { setIsUploading(true); try { if (result.event !== 'success') { - console.log('Upload was not successful:', result.event); toast({ title: 'Upload failed', description: 'The image upload was not successful. Please try again.', @@ -32,7 +30,6 @@ export function UploadMenuItemPicture() { } if (!result.info) { - console.log('No info in upload result'); toast({ title: 'Upload failed', description: 'Could not get image information from upload.', @@ -42,7 +39,12 @@ export function UploadMenuItemPicture() { } // Handle both object and string responses - const publicId = typeof result.info === 'object' ? result.info.public_id : result.info; + let publicId: string | undefined; + if (typeof result.info === 'object' && result.info !== null) { + publicId = result.info.public_id; + } else if (typeof result.info === 'string') { + publicId = result.info; + } if (!publicId) { toast({ @@ -53,7 +55,6 @@ export function UploadMenuItemPicture() { return; } - console.log('Setting public_id:', publicId); form.setValue('imageId', publicId, { shouldDirty: true, shouldTouch: true, @@ -65,8 +66,8 @@ export function UploadMenuItemPicture() { description: 'The image was successfully uploaded.', variant: 'default', }); - } catch (error) { - console.error('Error handling upload:', error); + } catch { + // TODO report error to Sentry toast({ title: 'Upload error', description: 'An unexpected error occurred while uploading the image.', @@ -152,6 +153,7 @@ export function UploadMenuItemPicture() { )} + )}
diff --git a/src/components/public/PublicMenuItem.tsx b/src/components/public/PublicMenuItem.tsx index afd2432..0a0076e 100644 --- a/src/components/public/PublicMenuItem.tsx +++ b/src/components/public/PublicMenuItem.tsx @@ -24,7 +24,7 @@ export function PublicMenuItem(props: {
{name Date: Thu, 12 Jun 2025 13:13:29 +0300 Subject: [PATCH 13/17] css --- .../[locationSlug]/_components/StickyTabs.tsx | 13 +++--- src/app/p/[locationSlug]/layout.tsx | 42 +++++++------------ 2 files changed, 20 insertions(+), 35 deletions(-) diff --git a/src/app/p/[locationSlug]/_components/StickyTabs.tsx b/src/app/p/[locationSlug]/_components/StickyTabs.tsx index d234cea..e00c61d 100644 --- a/src/app/p/[locationSlug]/_components/StickyTabs.tsx +++ b/src/app/p/[locationSlug]/_components/StickyTabs.tsx @@ -148,16 +148,15 @@ export default function StickyTabs(props: { sections: Section[] }) {
{/* Sticky tabs */}
-
+
{sections.map((section) => ( @@ -166,7 +165,7 @@ export default function StickyTabs(props: { sections: Section[] }) {
{/* Content sections */} -
+
{sections.map((section) => (
{section.content} diff --git a/src/app/p/[locationSlug]/layout.tsx b/src/app/p/[locationSlug]/layout.tsx index c219105..fe4f6de 100644 --- a/src/app/p/[locationSlug]/layout.tsx +++ b/src/app/p/[locationSlug]/layout.tsx @@ -36,36 +36,22 @@ export default async function Layout({ params, children }: { params: Params; chi return ( -
-
-
-
- Hero banner -
-
-
- Logo -
-
-
-
-

{location.name}

-
+
+
+ + Logo + +

{location.name}

+
-
{children}
+
{children}
Date: Thu, 12 Jun 2025 13:17:36 +0300 Subject: [PATCH 14/17] css --- src/app/p/[locationSlug]/_components/StickyTabs.tsx | 4 ++-- src/app/p/[locationSlug]/layout.tsx | 2 +- src/styles/globals.css | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/app/p/[locationSlug]/_components/StickyTabs.tsx b/src/app/p/[locationSlug]/_components/StickyTabs.tsx index e00c61d..c9066cb 100644 --- a/src/app/p/[locationSlug]/_components/StickyTabs.tsx +++ b/src/app/p/[locationSlug]/_components/StickyTabs.tsx @@ -147,7 +147,7 @@ export default function StickyTabs(props: { sections: Section[] }) { return (
{/* Sticky tabs */} -
+ {sections.length > 1 &&
{sections.map((section) => (
-
+
} {/* Content sections */}
diff --git a/src/app/p/[locationSlug]/layout.tsx b/src/app/p/[locationSlug]/layout.tsx index fe4f6de..98a9e09 100644 --- a/src/app/p/[locationSlug]/layout.tsx +++ b/src/app/p/[locationSlug]/layout.tsx @@ -37,7 +37,7 @@ export default async function Layout({ params, children }: { params: Params; chi return (
-
+
Date: Thu, 12 Jun 2025 13:36:49 +0300 Subject: [PATCH 15/17] css --- .../[locationSlug]/_components/StickyTabs.tsx | 2 +- src/app/p/[locationSlug]/layout.tsx | 16 ++++++++------- src/server/db/schema.ts | 7 +++++++ src/server/queries/locations.ts | 20 +++++++++++++++++-- 4 files changed, 35 insertions(+), 10 deletions(-) diff --git a/src/app/p/[locationSlug]/_components/StickyTabs.tsx b/src/app/p/[locationSlug]/_components/StickyTabs.tsx index c9066cb..5c7afea 100644 --- a/src/app/p/[locationSlug]/_components/StickyTabs.tsx +++ b/src/app/p/[locationSlug]/_components/StickyTabs.tsx @@ -145,7 +145,7 @@ export default function StickyTabs(props: { sections: Section[] }) { }; return ( -
+
{/* Sticky tabs */} {sections.length > 1 &&
diff --git a/src/app/p/[locationSlug]/layout.tsx b/src/app/p/[locationSlug]/layout.tsx index 98a9e09..2768b3e 100644 --- a/src/app/p/[locationSlug]/layout.tsx +++ b/src/app/p/[locationSlug]/layout.tsx @@ -9,6 +9,7 @@ import { AppError } from '~/lib/error-utils.server'; import { getLocationPublicDataBySlug } from '~/server/queries/locations'; import { getMenuItemsByLocation } from '~/server/queries/menu-items'; import { capturePublicLocationVisit } from './_actions/captureAnalytics'; +import { clerkClient } from "@clerk/nextjs/server"; //TODO Use cache @@ -32,23 +33,24 @@ export default async function Layout({ params, children }: { params: Params; chi const cookieStore = cookies(); const machineId = (await cookieStore).get(CookieKey.MachineId)?.value; + const organization = (await clerkClient()).organizations.getOrganization({ organizationId: location.clerkOrgId }) + const logo = (await organization).imageUrl ?? "/images/placeholder.svg?height=100&width=100" + console.log("DBG", logo) + await capturePublicLocationVisit(machineId, location.orgId, parsedLocationSlug); return (
- Logo -

{location.name}

-
{children}
diff --git a/src/server/db/schema.ts b/src/server/db/schema.ts index 7626c79..b5adac8 100644 --- a/src/server/db/schema.ts +++ b/src/server/db/schema.ts @@ -176,6 +176,13 @@ export const orderItems = createTable( ], ); +export const locationsRelations = relations(locations, ({ one }) => ({ + organization: one(organizations, { + fields: [locations.orgId], + references: [organizations.id], + }), +})); + export const ordersRelations = relations(orders, ({ many }) => ({ orderItems: many(orderItems), })); diff --git a/src/server/queries/locations.ts b/src/server/queries/locations.ts index 2119276..0501360 100644 --- a/src/server/queries/locations.ts +++ b/src/server/queries/locations.ts @@ -94,9 +94,16 @@ export async function getLocationForCurrentUserOrThrow(locationId: string | numb }; } -export async function getLocationPublicDataBySlug(locationSlug: LocationSlug): Promise { +export async function getLocationPublicDataBySlug(locationSlug: LocationSlug): Promise { const location = await db.query.locations.findFirst({ where: (locations, { eq }) => eq(locations.slug, locationSlug), + with: { + organization: { + columns: { + clerkOrgId: true, + }, + }, + }, }); if (!location) { @@ -109,12 +116,20 @@ export async function getLocationPublicDataBySlug(locationSlug: LocationSlug): P ...location, menuMode: location.menuMode as Location['menuMode'], currencyId: location.currencyId as Location['currencyId'], + clerkOrgId: location.organization.clerkOrgId, }; } -export async function getLocationPublicDataById(locationId: LocationId): Promise { +export async function getLocationPublicDataById(locationId: LocationId): Promise { const location = await db.query.locations.findFirst({ where: (locations, { eq }) => eq(locations.id, locationId), + with: { + organization: { + columns: { + clerkOrgId: true, + }, + }, + }, }); if (!location) { @@ -127,6 +142,7 @@ export async function getLocationPublicDataById(locationId: LocationId): Promise ...location, menuMode: location.menuMode as Location['menuMode'], currencyId: location.currencyId as Location['currencyId'], + clerkOrgId: location.organization.clerkOrgId, }; } From f615efd42373b75fe3dd8fea8aeef720a96dfefc Mon Sep 17 00:00:00 2001 From: dopoto Date: Thu, 12 Jun 2025 13:50:26 +0300 Subject: [PATCH 16/17] tf --- TODO.md | 3 ++- .../[locationSlug]/_components/PublicFooterInteractiveMode.tsx | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/TODO.md b/TODO.md index d23849d..3f19486 100644 --- a/TODO.md +++ b/TODO.md @@ -30,4 +30,5 @@ feature matrix - mobile friendly SplitScreenContainer logo link - home page where it makes sense - e.g. if not signed in client side report error to Sentry Open Orders - empty state -Completed orders \ No newline at end of file +Completed orders +image upload max file size / per tier \ 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 9ec4a41..d5a61f6 100644 --- a/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx +++ b/src/app/p/[locationSlug]/_components/PublicFooterInteractiveMode.tsx @@ -137,7 +137,7 @@ export function PublicFooterInteractiveMode(props: { currencyId: CurrencyId; loc const cancelledItems = filteredItems('canceled'); const draftItemsSummary = ( - + {draftItems.length > 0 && (order.id ? ( - ))} + > + {section.title} + + ))} +
-
} + )} {/* Content sections */}
diff --git a/src/app/p/[locationSlug]/layout.tsx b/src/app/p/[locationSlug]/layout.tsx index 2768b3e..c9ebca3 100644 --- a/src/app/p/[locationSlug]/layout.tsx +++ b/src/app/p/[locationSlug]/layout.tsx @@ -1,3 +1,4 @@ +import { clerkClient } from '@clerk/nextjs/server'; import { cookies } from 'next/headers'; import Image from 'next/image'; import JotaiProviderWrapper from '~/app/p/[locationSlug]/_components/JotaiProviderWrapper'; @@ -9,7 +10,6 @@ import { AppError } from '~/lib/error-utils.server'; import { getLocationPublicDataBySlug } from '~/server/queries/locations'; import { getMenuItemsByLocation } from '~/server/queries/menu-items'; import { capturePublicLocationVisit } from './_actions/captureAnalytics'; -import { clerkClient } from "@clerk/nextjs/server"; //TODO Use cache @@ -33,9 +33,9 @@ export default async function Layout({ params, children }: { params: Params; chi const cookieStore = cookies(); const machineId = (await cookieStore).get(CookieKey.MachineId)?.value; - const organization = (await clerkClient()).organizations.getOrganization({ organizationId: location.clerkOrgId }) - const logo = (await organization).imageUrl ?? "/images/placeholder.svg?height=100&width=100" - console.log("DBG", logo) + const organization = (await clerkClient()).organizations.getOrganization({ organizationId: location.clerkOrgId }); + const logo = (await organization).imageUrl ?? '/images/placeholder.svg?height=100&width=100'; + console.log('DBG', logo); await capturePublicLocationVisit(machineId, location.orgId, parsedLocationSlug); @@ -43,13 +43,7 @@ export default async function Layout({ params, children }: { params: Params; chi
- Logo + Logo

{location.name}

diff --git a/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx b/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx index 1c8fb67..9a9443f 100644 --- a/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx +++ b/src/app/u/[locationId]/menu-items/_components/UploadMenuItemPicture.tsx @@ -153,7 +153,6 @@ export function UploadMenuItemPicture() { )} - )}
diff --git a/src/server/queries/locations.ts b/src/server/queries/locations.ts index 0501360..a51de9b 100644 --- a/src/server/queries/locations.ts +++ b/src/server/queries/locations.ts @@ -94,7 +94,9 @@ export async function getLocationForCurrentUserOrThrow(locationId: string | numb }; } -export async function getLocationPublicDataBySlug(locationSlug: LocationSlug): Promise { +export async function getLocationPublicDataBySlug( + locationSlug: LocationSlug, +): Promise { const location = await db.query.locations.findFirst({ where: (locations, { eq }) => eq(locations.slug, locationSlug), with: {