├── app ├── favicon.ico ├── [team] │ ├── [[...section]] │ │ ├── layout.tsx │ │ ├── page.tsx │ │ └── @nav │ │ │ └── page.tsx │ └── layout.tsx ├── layout.tsx └── globals.css ├── postcss.config.js ├── lib └── utils.ts ├── public ├── acme.svg ├── vercel.svg └── next.svg ├── components.json ├── next.config.ts ├── .gitignore ├── README.md ├── tsconfig.json ├── package.json ├── components ├── ui │ ├── badge.tsx │ ├── scroll-area.tsx │ ├── button.tsx │ ├── table.tsx │ ├── select.tsx │ └── dropdown-menu.tsx └── deployments.tsx ├── tailwind.config.ts └── pnpm-lock.yaml /app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vercel-labs/vercel-nav-demo/HEAD/app/favicon.ico -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /lib/utils.ts: -------------------------------------------------------------------------------- 1 | import { type ClassValue, clsx } from "clsx" 2 | import { twMerge } from "tailwind-merge" 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)) 6 | } 7 | -------------------------------------------------------------------------------- /public/acme.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/[team]/[[...section]]/layout.tsx: -------------------------------------------------------------------------------- 1 | export default function SectionLayout({ 2 | children, 3 | nav, 4 | }: { 5 | children: React.ReactNode; 6 | nav: React.ReactNode; 7 | }) { 8 | return ( 9 | <> 10 | 13 | {children} 14 | 15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /components.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://ui.shadcn.com/schema.json", 3 | "style": "default", 4 | "rsc": true, 5 | "tsx": true, 6 | "tailwind": { 7 | "config": "tailwind.config.ts", 8 | "css": "app/globals.css", 9 | "baseColor": "slate", 10 | "cssVariables": true, 11 | "prefix": "" 12 | }, 13 | "aliases": { 14 | "components": "@/components", 15 | "utils": "@/lib/utils" 16 | } 17 | } -------------------------------------------------------------------------------- /next.config.ts: -------------------------------------------------------------------------------- 1 | const nextConfig = { 2 | images: { 3 | remotePatterns: [ 4 | { 5 | protocol: 'https', 6 | hostname: 'avatars.githubusercontent.com', 7 | port: '', 8 | pathname: '/u/**', 9 | }, 10 | ], 11 | }, 12 | redirects: () => { 13 | return [ 14 | { 15 | source: '/', 16 | destination: '/leerob', 17 | permanent: false, 18 | }, 19 | ]; 20 | }, 21 | }; 22 | 23 | export default nextConfig; 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /public/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Vercel Navigation Demo 2 | 3 | This is a light clone of the Vercel dashboard navigation. The first version was built with [v0](https://v0.dev/t/5tpUeamjMf6), and then hand-crafted by humans from there. 4 | 5 | ## How It Works 6 | 7 | 1. Navigating to `/` redirects to a default team `/leerob` 8 | 2. The navigation and page content are two separate [Parallel Routes](https://nextjs.org/docs/app/building-your-application/routing/parallel-routes) 9 | 3. The navigation page fetches and streams the team data server-side 10 | 11 | This enables reading the dynamic URL path on the server (e.g. `[team]` which gives me `leerob` for `/leerob`), and then fetching the user data based on that. 12 | -------------------------------------------------------------------------------- /app/[team]/[[...section]]/page.tsx: -------------------------------------------------------------------------------- 1 | import DeploymentsTable from '@/components/deployments'; 2 | 3 | export default async function Page({ 4 | params, 5 | }: { 6 | params: Promise<{ 7 | team: string; 8 | section?: string[]; 9 | }>; 10 | }) { 11 | const { section: sectionParam } = await params; 12 | let section = sectionParam?.[0] || 'home'; 13 | if (section === 'home') { 14 | return ( 15 |
16 | 17 |
18 | ); 19 | } 20 | 21 | return ( 22 |
23 |

This is the {section} dashboard page content.

24 |
25 | ); 26 | } 27 | -------------------------------------------------------------------------------- /app/layout.tsx: -------------------------------------------------------------------------------- 1 | import './globals.css'; 2 | import type { Metadata } from 'next'; 3 | import { Geist, Geist_Mono } from 'next/font/google'; 4 | import { cn } from '@/lib/utils'; 5 | 6 | const geist = Geist({ 7 | subsets: ['latin'], 8 | variable: '--font-sans', 9 | }); 10 | 11 | const geistMono = Geist_Mono({ 12 | subsets: ['latin'], 13 | variable: '--font-mono', 14 | }); 15 | 16 | export const metadata: Metadata = { 17 | title: 'Next.js Parallel Routes Example', 18 | description: 'Generated by create next app', 19 | }; 20 | 21 | export default function RootLayout({ 22 | children, 23 | }: { 24 | children: React.ReactNode; 25 | }) { 26 | return ( 27 | 28 | {children} 29 | 30 | ); 31 | } 32 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": [ 4 | "dom", 5 | "dom.iterable", 6 | "esnext" 7 | ], 8 | "allowJs": true, 9 | "skipLibCheck": true, 10 | "strict": true, 11 | "noEmit": true, 12 | "esModuleInterop": true, 13 | "module": "esnext", 14 | "moduleResolution": "bundler", 15 | "resolveJsonModule": true, 16 | "isolatedModules": true, 17 | "jsx": "preserve", 18 | "incremental": true, 19 | "plugins": [ 20 | { 21 | "name": "next" 22 | } 23 | ], 24 | "paths": { 25 | "@/*": [ 26 | "./*" 27 | ] 28 | }, 29 | "target": "ES2017" 30 | }, 31 | "include": [ 32 | "next-env.d.ts", 33 | "**/*.ts", 34 | "**/*.tsx", 35 | ".next/types/**/*.ts" 36 | ], 37 | "exclude": [ 38 | "node_modules" 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "dev": "next dev --turbopack", 5 | "build": "next build", 6 | "start": "next start" 7 | }, 8 | "dependencies": { 9 | "@radix-ui/react-avatar": "^1.1.2", 10 | "@radix-ui/react-dropdown-menu": "^2.1.4", 11 | "@radix-ui/react-scroll-area": "^1.2.2", 12 | "@radix-ui/react-select": "^2.1.4", 13 | "@radix-ui/react-slot": "^1.1.1", 14 | "class-variance-authority": "^0.7.1", 15 | "clsx": "^2.1.1", 16 | "lucide-react": "^0.469.0", 17 | "next": "15.1.11", 18 | "react": "^19.0.0", 19 | "react-dom": "^19.0.0", 20 | "tailwind-merge": "^2.5.5", 21 | "tailwindcss-animate": "^1.0.7" 22 | }, 23 | "devDependencies": { 24 | "@types/node": "^22.10.2", 25 | "@types/react": "^19.0.2", 26 | "@types/react-dom": "^19.0.2", 27 | "autoprefixer": "^10.4.20", 28 | "postcss": "^8.4.49", 29 | "tailwindcss": "^3.4.17", 30 | "typescript": "^5.7.2" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /components/ui/badge.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { cva, type VariantProps } from "class-variance-authority" 3 | 4 | import { cn } from "@/lib/utils" 5 | 6 | const badgeVariants = cva( 7 | "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", 8 | { 9 | variants: { 10 | variant: { 11 | default: 12 | "border-transparent bg-primary text-primary-foreground hover:bg-primary/80", 13 | secondary: 14 | "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", 15 | destructive: 16 | "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80", 17 | outline: "text-foreground", 18 | }, 19 | }, 20 | defaultVariants: { 21 | variant: "default", 22 | }, 23 | } 24 | ) 25 | 26 | export interface BadgeProps 27 | extends React.HTMLAttributes, 28 | VariantProps {} 29 | 30 | function Badge({ className, variant, ...props }: BadgeProps) { 31 | return ( 32 |
33 | ) 34 | } 35 | 36 | export { Badge, badgeVariants } 37 | -------------------------------------------------------------------------------- /public/next.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /components/ui/scroll-area.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import * as React from "react" 4 | import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area" 5 | 6 | import { cn } from "@/lib/utils" 7 | 8 | const ScrollArea = React.forwardRef< 9 | React.ElementRef, 10 | React.ComponentPropsWithoutRef 11 | >(({ className, children, ...props }, ref) => ( 12 | 17 | 18 | {children} 19 | 20 | 21 | 22 | 23 | )) 24 | ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName 25 | 26 | const ScrollBar = React.forwardRef< 27 | React.ElementRef, 28 | React.ComponentPropsWithoutRef 29 | >(({ className, orientation = "vertical", ...props }, ref) => ( 30 | 43 | 44 | 45 | )) 46 | ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName 47 | 48 | export { ScrollArea, ScrollBar } 49 | -------------------------------------------------------------------------------- /components/ui/button.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | import { Slot } from "@radix-ui/react-slot" 3 | import { cva, type VariantProps } from "class-variance-authority" 4 | 5 | import { cn } from "@/lib/utils" 6 | 7 | const buttonVariants = cva( 8 | "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", 9 | { 10 | variants: { 11 | variant: { 12 | default: "bg-primary text-primary-foreground hover:bg-primary/90", 13 | destructive: 14 | "bg-destructive text-destructive-foreground hover:bg-destructive/90", 15 | outline: 16 | "border border-input bg-background hover:bg-accent hover:text-accent-foreground", 17 | secondary: 18 | "bg-secondary text-secondary-foreground hover:bg-secondary/80", 19 | ghost: "hover:bg-accent hover:text-accent-foreground", 20 | link: "text-primary underline-offset-4 hover:underline", 21 | }, 22 | size: { 23 | default: "h-10 px-4 py-2", 24 | sm: "h-9 rounded-md px-3", 25 | lg: "h-11 rounded-md px-8", 26 | icon: "h-10 w-10", 27 | }, 28 | }, 29 | defaultVariants: { 30 | variant: "default", 31 | size: "default", 32 | }, 33 | } 34 | ) 35 | 36 | export interface ButtonProps 37 | extends React.ButtonHTMLAttributes, 38 | VariantProps { 39 | asChild?: boolean 40 | } 41 | 42 | const Button = React.forwardRef( 43 | ({ className, variant, size, asChild = false, ...props }, ref) => { 44 | const Comp = asChild ? Slot : "button" 45 | return ( 46 | 51 | ) 52 | } 53 | ) 54 | Button.displayName = "Button" 55 | 56 | export { Button, buttonVariants } 57 | -------------------------------------------------------------------------------- /app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | @layer base { 6 | :root { 7 | --background: 0 0% 100%; 8 | --foreground: 0 0% 9%; 9 | --card: 0 0% 100%; 10 | --card-foreground: 240 10% 3.9%; 11 | --popover: 0 0% 100%; 12 | --popover-foreground: 240 10% 3.9%; 13 | --primary: 240 5.9% 10%; 14 | --primary-foreground: 0 0% 98%; 15 | --secondary: 240 4.8% 95.9%; 16 | --secondary-foreground: 240 5.9% 10%; 17 | --muted: 0 0% 98%; 18 | --muted-foreground: 240 3.8% 46.1%; 19 | --accent: 0 0% 93%; 20 | --accent-foreground: 0 0% 40%; 21 | --destructive: 0 84.2% 60.2%; 22 | --destructive-foreground: 0 0% 98%; 23 | --border: 240 5.9% 90%; 24 | --input: 0 0% 0%; 25 | --ring: 240 10% 3.9%; 26 | --chart-1: 12 76% 61%; 27 | --chart-2: 173 58% 39%; 28 | --chart-3: 197 37% 24%; 29 | --chart-4: 43 74% 66%; 30 | --chart-5: 27 87% 67%; 31 | --radius: 0.5rem; 32 | --sidebar-background: 0 0% 98%; 33 | --sidebar-foreground: 240 5.3% 26.1%; 34 | --sidebar-primary: 240 5.9% 10%; 35 | --sidebar-primary-foreground: 0 0% 98%; 36 | --sidebar-accent: 240 4.8% 95.9%; 37 | --sidebar-accent-foreground: 240 5.9% 10%; 38 | --sidebar-border: 220 13% 91%; 39 | --sidebar-ring: 217.2 91.2% 59.8%; 40 | --selection: 217 100% 46%; 41 | --blue: 211 100% 44%; 42 | } 43 | .dark { 44 | --background: 240 10% 3.9%; 45 | --foreground: 0 0% 98%; 46 | --card: 240 10% 3.9%; 47 | --card-foreground: 0 0% 98%; 48 | --popover: 240 10% 3.9%; 49 | --popover-foreground: 0 0% 98%; 50 | --primary: 0 0% 98%; 51 | --primary-foreground: 240 5.9% 10%; 52 | --secondary: 240 3.7% 15.9%; 53 | --secondary-foreground: 0 0% 98%; 54 | --muted: 240 3.7% 15.9%; 55 | --muted-foreground: 240 5% 64.9%; 56 | --accent: 0 0% 93%; 57 | --accent-foreground: 0 0% 40%; 58 | --destructive: 0 62.8% 30.6%; 59 | --destructive-foreground: 0 0% 98%; 60 | --border: 240 3.7% 15.9%; 61 | --input: 240 3.7% 15.9%; 62 | --ring: 240 4.9% 83.9%; 63 | --chart-1: 220 70% 50%; 64 | --chart-2: 160 60% 45%; 65 | --chart-3: 30 80% 55%; 66 | --chart-4: 280 65% 60%; 67 | --chart-5: 340 75% 55%; 68 | --sidebar-background: 240 5.9% 10%; 69 | --sidebar-foreground: 240 4.8% 95.9%; 70 | --sidebar-primary: 224.3 76.3% 48%; 71 | --sidebar-primary-foreground: 0 0% 100%; 72 | --sidebar-accent: 240 3.7% 15.9%; 73 | --sidebar-accent-foreground: 240 4.8% 95.9%; 74 | --sidebar-border: 240 3.7% 15.9%; 75 | --sidebar-ring: 217.2 91.2% 59.8%; 76 | --blue: 211 100% 44%; 77 | } 78 | } 79 | 80 | @layer base { 81 | * { 82 | @apply border-border selection:bg-selection selection:text-white; 83 | } 84 | body { 85 | @apply bg-background text-foreground; 86 | text-rendering: optimizeLegibility; 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /components/ui/table.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react" 2 | 3 | import { cn } from "@/lib/utils" 4 | 5 | const Table = React.forwardRef< 6 | HTMLTableElement, 7 | React.HTMLAttributes 8 | >(({ className, ...props }, ref) => ( 9 |
10 | 15 | 16 | )) 17 | Table.displayName = "Table" 18 | 19 | const TableHeader = React.forwardRef< 20 | HTMLTableSectionElement, 21 | React.HTMLAttributes 22 | >(({ className, ...props }, ref) => ( 23 | 24 | )) 25 | TableHeader.displayName = "TableHeader" 26 | 27 | const TableBody = React.forwardRef< 28 | HTMLTableSectionElement, 29 | React.HTMLAttributes 30 | >(({ className, ...props }, ref) => ( 31 | 36 | )) 37 | TableBody.displayName = "TableBody" 38 | 39 | const TableFooter = React.forwardRef< 40 | HTMLTableSectionElement, 41 | React.HTMLAttributes 42 | >(({ className, ...props }, ref) => ( 43 | tr]:last:border-b-0", 47 | className 48 | )} 49 | {...props} 50 | /> 51 | )) 52 | TableFooter.displayName = "TableFooter" 53 | 54 | const TableRow = React.forwardRef< 55 | HTMLTableRowElement, 56 | React.HTMLAttributes 57 | >(({ className, ...props }, ref) => ( 58 | 66 | )) 67 | TableRow.displayName = "TableRow" 68 | 69 | const TableHead = React.forwardRef< 70 | HTMLTableCellElement, 71 | React.ThHTMLAttributes 72 | >(({ className, ...props }, ref) => ( 73 |
81 | )) 82 | TableHead.displayName = "TableHead" 83 | 84 | const TableCell = React.forwardRef< 85 | HTMLTableCellElement, 86 | React.TdHTMLAttributes 87 | >(({ className, ...props }, ref) => ( 88 | 93 | )) 94 | TableCell.displayName = "TableCell" 95 | 96 | const TableCaption = React.forwardRef< 97 | HTMLTableCaptionElement, 98 | React.HTMLAttributes 99 | >(({ className, ...props }, ref) => ( 100 |
105 | )) 106 | TableCaption.displayName = "TableCaption" 107 | 108 | export { 109 | Table, 110 | TableHeader, 111 | TableBody, 112 | TableFooter, 113 | TableHead, 114 | TableRow, 115 | TableCell, 116 | TableCaption, 117 | } 118 | -------------------------------------------------------------------------------- /tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from 'tailwindcss'; 2 | import { fontFamily } from 'tailwindcss/defaultTheme'; 3 | 4 | const config: Config = { 5 | darkMode: ['class'], 6 | content: [ 7 | './pages/**/*.{js,ts,jsx,tsx,mdx}', 8 | './components/**/*.{js,ts,jsx,tsx,mdx}', 9 | './app/**/*.{js,ts,jsx,tsx,mdx}', 10 | ], 11 | theme: { 12 | extend: { 13 | fontFamily: { 14 | sans: ['var(--font-sans)', ...fontFamily.sans], 15 | mono: ['var(--font-mono)', ...fontFamily.mono], 16 | }, 17 | colors: { 18 | background: 'hsl(var(--background))', 19 | foreground: 'hsl(var(--foreground))', 20 | selection: 'hsl(var(--selection))', 21 | card: { 22 | DEFAULT: 'hsl(var(--card))', 23 | foreground: 'hsl(var(--card-foreground))', 24 | }, 25 | popover: { 26 | DEFAULT: 'hsl(var(--popover))', 27 | foreground: 'hsl(var(--popover-foreground))', 28 | }, 29 | primary: { 30 | DEFAULT: 'hsl(var(--primary))', 31 | foreground: 'hsl(var(--primary-foreground))', 32 | }, 33 | secondary: { 34 | DEFAULT: 'hsl(var(--secondary))', 35 | foreground: 'hsl(var(--secondary-foreground))', 36 | }, 37 | muted: { 38 | DEFAULT: 'hsl(var(--muted))', 39 | foreground: 'hsl(var(--muted-foreground))', 40 | }, 41 | accent: { 42 | DEFAULT: 'hsl(var(--accent))', 43 | foreground: 'hsl(var(--accent-foreground))', 44 | }, 45 | destructive: { 46 | DEFAULT: 'hsl(var(--destructive))', 47 | foreground: 'hsl(var(--destructive-foreground))', 48 | }, 49 | border: 'hsl(var(--border))', 50 | input: 'hsl(var(--input))', 51 | ring: 'hsl(var(--ring))', 52 | chart: { 53 | '1': 'hsl(var(--chart-1))', 54 | '2': 'hsl(var(--chart-2))', 55 | '3': 'hsl(var(--chart-3))', 56 | '4': 'hsl(var(--chart-4))', 57 | '5': 'hsl(var(--chart-5))', 58 | }, 59 | sidebar: { 60 | DEFAULT: 'hsl(var(--sidebar-background))', 61 | foreground: 'hsl(var(--sidebar-foreground))', 62 | primary: 'hsl(var(--sidebar-primary))', 63 | 'primary-foreground': 'hsl(var(--sidebar-primary-foreground))', 64 | accent: 'hsl(var(--sidebar-accent))', 65 | 'accent-foreground': 'hsl(var(--sidebar-accent-foreground))', 66 | border: 'hsl(var(--sidebar-border))', 67 | ring: 'hsl(var(--sidebar-ring))', 68 | }, 69 | blue: 'hsl(var(--blue))', 70 | }, 71 | borderRadius: { 72 | lg: 'var(--radius)', 73 | md: 'calc(var(--radius) - 2px)', 74 | sm: 'calc(var(--radius) - 4px)', 75 | }, 76 | keyframes: { 77 | 'accordion-down': { 78 | from: { 79 | height: '0', 80 | }, 81 | to: { 82 | height: 'var(--radix-accordion-content-height)', 83 | }, 84 | }, 85 | 'accordion-up': { 86 | from: { 87 | height: 'var(--radix-accordion-content-height)', 88 | }, 89 | to: { 90 | height: '0', 91 | }, 92 | }, 93 | }, 94 | animation: { 95 | 'accordion-down': 'accordion-down 0.2s ease-out', 96 | 'accordion-up': 'accordion-up 0.2s ease-out', 97 | }, 98 | }, 99 | }, 100 | plugins: [require('tailwindcss-animate')], 101 | }; 102 | export default config; 103 | -------------------------------------------------------------------------------- /app/[team]/layout.tsx: -------------------------------------------------------------------------------- 1 | import { Badge } from '@/components/ui/badge'; 2 | import { 3 | DropdownMenuTrigger, 4 | DropdownMenuLabel, 5 | DropdownMenuSeparator, 6 | DropdownMenuItem, 7 | DropdownMenuGroup, 8 | DropdownMenuContent, 9 | DropdownMenu, 10 | } from '@/components/ui/dropdown-menu'; 11 | import { Button } from '@/components/ui/button'; 12 | import Link from 'next/link'; 13 | import Image from 'next/image'; 14 | import { cn } from '@/lib/utils'; 15 | import { Suspense } from 'react'; 16 | import { BellIcon, ChevronDownIcon } from 'lucide-react'; 17 | 18 | async function getTeam(team: string) { 19 | let res = await fetch(`https://api.github.com/users/${team}`); 20 | let { login, avatar_url } = await res.json(); 21 | 22 | await new Promise((resolve) => setTimeout(resolve, 1000)); 23 | 24 | return { login, avatar_url }; 25 | } 26 | 27 | async function Team({ id }: { id: string }) { 28 | const { login: name } = await getTeam(id); 29 | 30 | return ( 31 |
32 |
33 | ACME Logo 40 |
41 | {name} 42 | 43 | Pro 44 | 45 | 46 |
47 | ); 48 | } 49 | 50 | async function Avatar({ id }: { id: string }) { 51 | const { avatar_url } = await getTeam(id); 52 | 53 | return ( 54 | Avatar 61 | ); 62 | } 63 | 64 | export default async function SectionLayout({ 65 | children, 66 | params, 67 | }: { 68 | children: React.ReactNode; 69 | params: Promise<{ 70 | team: string; 71 | }>; 72 | }) { 73 | const { team } = await params; 74 | 75 | return ( 76 | <> 77 | 151 | {children} 152 | 153 | ); 154 | } 155 | -------------------------------------------------------------------------------- /app/[team]/[[...section]]/@nav/page.tsx: -------------------------------------------------------------------------------- 1 | import Link from 'next/link'; 2 | import { cn } from '@/lib/utils'; 3 | import { ScrollArea, ScrollBar } from '@/components/ui/scroll-area'; 4 | 5 | export default async function Page({ 6 | params, 7 | }: { 8 | params: Promise<{ 9 | team: string; 10 | section?: string[]; 11 | }>; 12 | }) { 13 | const { team, section } = await params; 14 | 15 | return ( 16 |
17 | 18 |
19 | 30 | Overview 31 | 32 | 43 | Integrations 44 | 45 | 56 | Activity 57 | 58 | 69 | Domains 70 | 71 | 82 | Usage 83 | 84 | 95 | Observability 96 | 97 | 108 | Storage 109 | 110 | 121 | Support 122 | 123 | 134 | Settings 135 | 136 | 137 |
138 |
139 |
140 | ); 141 | } 142 | -------------------------------------------------------------------------------- /components/ui/select.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import * as React from "react" 4 | import * as SelectPrimitive from "@radix-ui/react-select" 5 | import { Check, ChevronDown, ChevronUp } from "lucide-react" 6 | 7 | import { cn } from "@/lib/utils" 8 | 9 | const Select = SelectPrimitive.Root 10 | 11 | const SelectGroup = SelectPrimitive.Group 12 | 13 | const SelectValue = SelectPrimitive.Value 14 | 15 | const SelectTrigger = React.forwardRef< 16 | React.ElementRef, 17 | React.ComponentPropsWithoutRef 18 | >(({ className, children, ...props }, ref) => ( 19 | span]:line-clamp-1", 23 | className 24 | )} 25 | {...props} 26 | > 27 | {children} 28 | 29 | 30 | 31 | 32 | )) 33 | SelectTrigger.displayName = SelectPrimitive.Trigger.displayName 34 | 35 | const SelectScrollUpButton = React.forwardRef< 36 | React.ElementRef, 37 | React.ComponentPropsWithoutRef 38 | >(({ className, ...props }, ref) => ( 39 | 47 | 48 | 49 | )) 50 | SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName 51 | 52 | const SelectScrollDownButton = React.forwardRef< 53 | React.ElementRef, 54 | React.ComponentPropsWithoutRef 55 | >(({ className, ...props }, ref) => ( 56 | 64 | 65 | 66 | )) 67 | SelectScrollDownButton.displayName = 68 | SelectPrimitive.ScrollDownButton.displayName 69 | 70 | const SelectContent = React.forwardRef< 71 | React.ElementRef, 72 | React.ComponentPropsWithoutRef 73 | >(({ className, children, position = "popper", ...props }, ref) => ( 74 | 75 | 86 | 87 | 94 | {children} 95 | 96 | 97 | 98 | 99 | )) 100 | SelectContent.displayName = SelectPrimitive.Content.displayName 101 | 102 | const SelectLabel = React.forwardRef< 103 | React.ElementRef, 104 | React.ComponentPropsWithoutRef 105 | >(({ className, ...props }, ref) => ( 106 | 111 | )) 112 | SelectLabel.displayName = SelectPrimitive.Label.displayName 113 | 114 | const SelectItem = React.forwardRef< 115 | React.ElementRef, 116 | React.ComponentPropsWithoutRef 117 | >(({ className, children, ...props }, ref) => ( 118 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | {children} 133 | 134 | )) 135 | SelectItem.displayName = SelectPrimitive.Item.displayName 136 | 137 | const SelectSeparator = React.forwardRef< 138 | React.ElementRef, 139 | React.ComponentPropsWithoutRef 140 | >(({ className, ...props }, ref) => ( 141 | 146 | )) 147 | SelectSeparator.displayName = SelectPrimitive.Separator.displayName 148 | 149 | export { 150 | Select, 151 | SelectGroup, 152 | SelectValue, 153 | SelectTrigger, 154 | SelectContent, 155 | SelectLabel, 156 | SelectItem, 157 | SelectSeparator, 158 | SelectScrollUpButton, 159 | SelectScrollDownButton, 160 | } 161 | -------------------------------------------------------------------------------- /components/deployments.tsx: -------------------------------------------------------------------------------- 1 | import { Search, MoreVertical } from 'lucide-react'; 2 | import { Button } from '@/components/ui/button'; 3 | import { 4 | Select, 5 | SelectContent, 6 | SelectItem, 7 | SelectTrigger, 8 | SelectValue, 9 | } from '@/components/ui/select'; 10 | import { Table, TableBody, TableCell, TableRow } from '@/components/ui/table'; 11 | 12 | interface Deployment { 13 | id: string; 14 | message: string; 15 | timestamp: string; 16 | branch: string; 17 | status: 'loading' | 'ready' | 'error'; 18 | } 19 | 20 | const deployments: Deployment[] = [ 21 | { 22 | id: 'any1bkys8', 23 | message: 'Track error events on vercel site to Web Analytics (#22048)', 24 | timestamp: '14m ago', 25 | branch: 'main', 26 | status: 'loading', 27 | }, 28 | { 29 | id: 'sa6tcgt2', 30 | message: 'check in additional load only on slow response', 31 | timestamp: '14m ago', 32 | branch: 'DOC-2693-cmdk-item-rendering-crash', 33 | status: 'ready', 34 | }, 35 | { 36 | id: '6gopakoj3', 37 | message: 'Changes Edge Config store', 38 | timestamp: '14m ago', 39 | branch: 'fix-startup-credit-form-errors-and-address-feedback', 40 | status: 'ready', 41 | }, 42 | { 43 | id: 'dq8vgz488', 44 | message: 'Unused eslint directive', 45 | timestamp: '14m ago', 46 | branch: 'surf-3177_proj-env-vars-page-performance_a_virtuoso', 47 | status: 'ready', 48 | }, 49 | { 50 | id: 'k4km2wqv6', 51 | message: 'fix sha resource use', 52 | timestamp: '14m ago', 53 | branch: 'kevvy/CORE-1483', 54 | status: 'ready', 55 | }, 56 | { 57 | id: 'ccufnu119', 58 | message: 'remove reduce motion bc plays before in view', 59 | timestamp: '14m ago', 60 | branch: 'kevvy/site-262-observability-page-hero-animation', 61 | status: 'ready', 62 | }, 63 | ]; 64 | 65 | export default function DeploymentsTable() { 66 | return ( 67 |
68 |

Your Deployments

69 | 70 |
71 |
72 | 73 | 78 |
79 | 80 | 91 |
92 | 93 |
94 | 95 | 96 | {deployments.map((deployment) => ( 97 | 101 | 102 |
103 |
104 |
105 |
114 |
123 |
124 | 125 | {deployment.id} 126 | 127 |
128 | 129 | {deployment.message} 130 | 131 |
132 | 133 | 134 |
135 | 136 | {deployment.timestamp} 137 | 138 | 139 | on 140 | 141 | 142 | {deployment.branch} 143 | 144 |
145 |
146 | 147 | 154 | 155 | 156 | ))} 157 | 158 |
159 | 165 |
166 |
167 | ); 168 | } 169 | -------------------------------------------------------------------------------- /components/ui/dropdown-menu.tsx: -------------------------------------------------------------------------------- 1 | "use client" 2 | 3 | import * as React from "react" 4 | import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu" 5 | import { Check, ChevronRight, Circle } from "lucide-react" 6 | 7 | import { cn } from "@/lib/utils" 8 | 9 | const DropdownMenu = DropdownMenuPrimitive.Root 10 | 11 | const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger 12 | 13 | const DropdownMenuGroup = DropdownMenuPrimitive.Group 14 | 15 | const DropdownMenuPortal = DropdownMenuPrimitive.Portal 16 | 17 | const DropdownMenuSub = DropdownMenuPrimitive.Sub 18 | 19 | const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup 20 | 21 | const DropdownMenuSubTrigger = React.forwardRef< 22 | React.ElementRef, 23 | React.ComponentPropsWithoutRef & { 24 | inset?: boolean 25 | } 26 | >(({ className, inset, children, ...props }, ref) => ( 27 | 36 | {children} 37 | 38 | 39 | )) 40 | DropdownMenuSubTrigger.displayName = 41 | DropdownMenuPrimitive.SubTrigger.displayName 42 | 43 | const DropdownMenuSubContent = React.forwardRef< 44 | React.ElementRef, 45 | React.ComponentPropsWithoutRef 46 | >(({ className, ...props }, ref) => ( 47 | 55 | )) 56 | DropdownMenuSubContent.displayName = 57 | DropdownMenuPrimitive.SubContent.displayName 58 | 59 | const DropdownMenuContent = React.forwardRef< 60 | React.ElementRef, 61 | React.ComponentPropsWithoutRef 62 | >(({ className, sideOffset = 4, ...props }, ref) => ( 63 | 64 | 73 | 74 | )) 75 | DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName 76 | 77 | const DropdownMenuItem = React.forwardRef< 78 | React.ElementRef, 79 | React.ComponentPropsWithoutRef & { 80 | inset?: boolean 81 | } 82 | >(({ className, inset, ...props }, ref) => ( 83 | 92 | )) 93 | DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName 94 | 95 | const DropdownMenuCheckboxItem = React.forwardRef< 96 | React.ElementRef, 97 | React.ComponentPropsWithoutRef 98 | >(({ className, children, checked, ...props }, ref) => ( 99 | 108 | 109 | 110 | 111 | 112 | 113 | {children} 114 | 115 | )) 116 | DropdownMenuCheckboxItem.displayName = 117 | DropdownMenuPrimitive.CheckboxItem.displayName 118 | 119 | const DropdownMenuRadioItem = React.forwardRef< 120 | React.ElementRef, 121 | React.ComponentPropsWithoutRef 122 | >(({ className, children, ...props }, ref) => ( 123 | 131 | 132 | 133 | 134 | 135 | 136 | {children} 137 | 138 | )) 139 | DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName 140 | 141 | const DropdownMenuLabel = React.forwardRef< 142 | React.ElementRef, 143 | React.ComponentPropsWithoutRef & { 144 | inset?: boolean 145 | } 146 | >(({ className, inset, ...props }, ref) => ( 147 | 156 | )) 157 | DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName 158 | 159 | const DropdownMenuSeparator = React.forwardRef< 160 | React.ElementRef, 161 | React.ComponentPropsWithoutRef 162 | >(({ className, ...props }, ref) => ( 163 | 168 | )) 169 | DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName 170 | 171 | const DropdownMenuShortcut = ({ 172 | className, 173 | ...props 174 | }: React.HTMLAttributes) => { 175 | return ( 176 | 180 | ) 181 | } 182 | DropdownMenuShortcut.displayName = "DropdownMenuShortcut" 183 | 184 | export { 185 | DropdownMenu, 186 | DropdownMenuTrigger, 187 | DropdownMenuContent, 188 | DropdownMenuItem, 189 | DropdownMenuCheckboxItem, 190 | DropdownMenuRadioItem, 191 | DropdownMenuLabel, 192 | DropdownMenuSeparator, 193 | DropdownMenuShortcut, 194 | DropdownMenuGroup, 195 | DropdownMenuPortal, 196 | DropdownMenuSub, 197 | DropdownMenuSubContent, 198 | DropdownMenuSubTrigger, 199 | DropdownMenuRadioGroup, 200 | } 201 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@radix-ui/react-avatar': 12 | specifier: ^1.1.2 13 | version: 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 14 | '@radix-ui/react-dropdown-menu': 15 | specifier: ^2.1.4 16 | version: 2.1.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 17 | '@radix-ui/react-scroll-area': 18 | specifier: ^1.2.2 19 | version: 1.2.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 20 | '@radix-ui/react-select': 21 | specifier: ^2.1.4 22 | version: 2.1.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 23 | '@radix-ui/react-slot': 24 | specifier: ^1.1.1 25 | version: 1.1.1(@types/react@19.0.2)(react@19.0.0) 26 | class-variance-authority: 27 | specifier: ^0.7.1 28 | version: 0.7.1 29 | clsx: 30 | specifier: ^2.1.1 31 | version: 2.1.1 32 | lucide-react: 33 | specifier: ^0.469.0 34 | version: 0.469.0(react@19.0.0) 35 | next: 36 | specifier: 15.1.11 37 | version: 15.1.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 38 | react: 39 | specifier: ^19.0.0 40 | version: 19.0.0 41 | react-dom: 42 | specifier: ^19.0.0 43 | version: 19.0.0(react@19.0.0) 44 | tailwind-merge: 45 | specifier: ^2.5.5 46 | version: 2.5.5 47 | tailwindcss-animate: 48 | specifier: ^1.0.7 49 | version: 1.0.7(tailwindcss@3.4.17) 50 | devDependencies: 51 | '@types/node': 52 | specifier: ^22.10.2 53 | version: 22.10.2 54 | '@types/react': 55 | specifier: ^19.0.2 56 | version: 19.0.2 57 | '@types/react-dom': 58 | specifier: ^19.0.2 59 | version: 19.0.2(@types/react@19.0.2) 60 | autoprefixer: 61 | specifier: ^10.4.20 62 | version: 10.4.20(postcss@8.4.49) 63 | postcss: 64 | specifier: ^8.4.49 65 | version: 8.4.49 66 | tailwindcss: 67 | specifier: ^3.4.17 68 | version: 3.4.17 69 | typescript: 70 | specifier: ^5.7.2 71 | version: 5.7.2 72 | 73 | packages: 74 | 75 | '@alloc/quick-lru@5.2.0': 76 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 77 | engines: {node: '>=10'} 78 | 79 | '@emnapi/runtime@1.7.1': 80 | resolution: {integrity: sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==} 81 | 82 | '@floating-ui/core@1.6.8': 83 | resolution: {integrity: sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==} 84 | 85 | '@floating-ui/dom@1.6.12': 86 | resolution: {integrity: sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w==} 87 | 88 | '@floating-ui/react-dom@2.1.2': 89 | resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} 90 | peerDependencies: 91 | react: '>=16.8.0' 92 | react-dom: '>=16.8.0' 93 | 94 | '@floating-ui/utils@0.2.8': 95 | resolution: {integrity: sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==} 96 | 97 | '@img/sharp-darwin-arm64@0.33.5': 98 | resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} 99 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 100 | cpu: [arm64] 101 | os: [darwin] 102 | 103 | '@img/sharp-darwin-x64@0.33.5': 104 | resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} 105 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 106 | cpu: [x64] 107 | os: [darwin] 108 | 109 | '@img/sharp-libvips-darwin-arm64@1.0.4': 110 | resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} 111 | cpu: [arm64] 112 | os: [darwin] 113 | 114 | '@img/sharp-libvips-darwin-x64@1.0.4': 115 | resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} 116 | cpu: [x64] 117 | os: [darwin] 118 | 119 | '@img/sharp-libvips-linux-arm64@1.0.4': 120 | resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} 121 | cpu: [arm64] 122 | os: [linux] 123 | 124 | '@img/sharp-libvips-linux-arm@1.0.5': 125 | resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} 126 | cpu: [arm] 127 | os: [linux] 128 | 129 | '@img/sharp-libvips-linux-s390x@1.0.4': 130 | resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} 131 | cpu: [s390x] 132 | os: [linux] 133 | 134 | '@img/sharp-libvips-linux-x64@1.0.4': 135 | resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} 136 | cpu: [x64] 137 | os: [linux] 138 | 139 | '@img/sharp-libvips-linuxmusl-arm64@1.0.4': 140 | resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} 141 | cpu: [arm64] 142 | os: [linux] 143 | 144 | '@img/sharp-libvips-linuxmusl-x64@1.0.4': 145 | resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} 146 | cpu: [x64] 147 | os: [linux] 148 | 149 | '@img/sharp-linux-arm64@0.33.5': 150 | resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} 151 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 152 | cpu: [arm64] 153 | os: [linux] 154 | 155 | '@img/sharp-linux-arm@0.33.5': 156 | resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} 157 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 158 | cpu: [arm] 159 | os: [linux] 160 | 161 | '@img/sharp-linux-s390x@0.33.5': 162 | resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} 163 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 164 | cpu: [s390x] 165 | os: [linux] 166 | 167 | '@img/sharp-linux-x64@0.33.5': 168 | resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} 169 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 170 | cpu: [x64] 171 | os: [linux] 172 | 173 | '@img/sharp-linuxmusl-arm64@0.33.5': 174 | resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} 175 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 176 | cpu: [arm64] 177 | os: [linux] 178 | 179 | '@img/sharp-linuxmusl-x64@0.33.5': 180 | resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} 181 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 182 | cpu: [x64] 183 | os: [linux] 184 | 185 | '@img/sharp-wasm32@0.33.5': 186 | resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} 187 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 188 | cpu: [wasm32] 189 | 190 | '@img/sharp-win32-ia32@0.33.5': 191 | resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} 192 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 193 | cpu: [ia32] 194 | os: [win32] 195 | 196 | '@img/sharp-win32-x64@0.33.5': 197 | resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} 198 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 199 | cpu: [x64] 200 | os: [win32] 201 | 202 | '@isaacs/cliui@8.0.2': 203 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 204 | engines: {node: '>=12'} 205 | 206 | '@jridgewell/gen-mapping@0.3.8': 207 | resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 208 | engines: {node: '>=6.0.0'} 209 | 210 | '@jridgewell/resolve-uri@3.1.2': 211 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 212 | engines: {node: '>=6.0.0'} 213 | 214 | '@jridgewell/set-array@1.2.1': 215 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 216 | engines: {node: '>=6.0.0'} 217 | 218 | '@jridgewell/sourcemap-codec@1.5.0': 219 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 220 | 221 | '@jridgewell/trace-mapping@0.3.25': 222 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 223 | 224 | '@next/env@15.1.11': 225 | resolution: {integrity: sha512-yp++FVldfLglEG5LoS2rXhGypPyoSOyY0kxZQJ2vnlYJeP8o318t5DrDu5Tqzr03qAhDWllAID/kOCsXNLcwKw==} 226 | 227 | '@next/swc-darwin-arm64@15.1.9': 228 | resolution: {integrity: sha512-sQF6MfW4nk0PwMYYq8xNgqyxZJGIJV16QqNDgaZ5ze9YoVzm4/YNx17X0exZudayjL9PF0/5RGffDtzXapch0Q==} 229 | engines: {node: '>= 10'} 230 | cpu: [arm64] 231 | os: [darwin] 232 | 233 | '@next/swc-darwin-x64@15.1.9': 234 | resolution: {integrity: sha512-fp0c1rB6jZvdSDhprOur36xzQvqelAkNRXM/An92sKjjtaJxjlqJR8jiQLQImPsClIu8amQn+ZzFwl1lsEf62w==} 235 | engines: {node: '>= 10'} 236 | cpu: [x64] 237 | os: [darwin] 238 | 239 | '@next/swc-linux-arm64-gnu@15.1.9': 240 | resolution: {integrity: sha512-77rYykF6UtaXvxh9YyRIKoaYPI6/YX6cy8j1DL5/1XkjbfOwFDfTEhH7YGPqG/ePl+emBcbDYC2elgEqY2e+ag==} 241 | engines: {node: '>= 10'} 242 | cpu: [arm64] 243 | os: [linux] 244 | 245 | '@next/swc-linux-arm64-musl@15.1.9': 246 | resolution: {integrity: sha512-uZ1HazKcyWC7RA6j+S/8aYgvxmDqwnG+gE5S9MhY7BTMj7ahXKunpKuX8/BA2M7OvINLv7LTzoobQbw928p3WA==} 247 | engines: {node: '>= 10'} 248 | cpu: [arm64] 249 | os: [linux] 250 | 251 | '@next/swc-linux-x64-gnu@15.1.9': 252 | resolution: {integrity: sha512-gQIX1d3ct2RBlgbbWOrp+SHExmtmFm/HSW1Do5sSGMDyzbkYhS2sdq5LRDJWWsQu+/MqpgJHqJT6ORolKp/U1g==} 253 | engines: {node: '>= 10'} 254 | cpu: [x64] 255 | os: [linux] 256 | 257 | '@next/swc-linux-x64-musl@15.1.9': 258 | resolution: {integrity: sha512-fJOwxAbCeq6Vo7pXZGDP6iA4+yIBGshp7ie2Evvge7S7lywyg7b/SGqcvWq/jYcmd0EbXdb7hBfdqSQwTtGTPg==} 259 | engines: {node: '>= 10'} 260 | cpu: [x64] 261 | os: [linux] 262 | 263 | '@next/swc-win32-arm64-msvc@15.1.9': 264 | resolution: {integrity: sha512-crfbUkAd9PVg9nGfyjSzQbz82dPvc4pb1TeP0ZaAdGzTH6OfTU9kxidpFIogw0DYIEadI7hRSvuihy2NezkaNQ==} 265 | engines: {node: '>= 10'} 266 | cpu: [arm64] 267 | os: [win32] 268 | 269 | '@next/swc-win32-x64-msvc@15.1.9': 270 | resolution: {integrity: sha512-SBB0oA4E2a0axUrUwLqXlLkSn+bRx9OWU6LheqmRrO53QEAJP7JquKh3kF0jRzmlYOWFZtQwyIWJMEJMtvvDcQ==} 271 | engines: {node: '>= 10'} 272 | cpu: [x64] 273 | os: [win32] 274 | 275 | '@nodelib/fs.scandir@2.1.5': 276 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 277 | engines: {node: '>= 8'} 278 | 279 | '@nodelib/fs.stat@2.0.5': 280 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 281 | engines: {node: '>= 8'} 282 | 283 | '@nodelib/fs.walk@1.2.8': 284 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 285 | engines: {node: '>= 8'} 286 | 287 | '@pkgjs/parseargs@0.11.0': 288 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 289 | engines: {node: '>=14'} 290 | 291 | '@radix-ui/number@1.1.0': 292 | resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==} 293 | 294 | '@radix-ui/primitive@1.1.1': 295 | resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==} 296 | 297 | '@radix-ui/react-arrow@1.1.1': 298 | resolution: {integrity: sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==} 299 | peerDependencies: 300 | '@types/react': '*' 301 | '@types/react-dom': '*' 302 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 303 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 304 | peerDependenciesMeta: 305 | '@types/react': 306 | optional: true 307 | '@types/react-dom': 308 | optional: true 309 | 310 | '@radix-ui/react-avatar@1.1.2': 311 | resolution: {integrity: sha512-GaC7bXQZ5VgZvVvsJ5mu/AEbjYLnhhkoidOboC50Z6FFlLA03wG2ianUoH+zgDQ31/9gCF59bE4+2bBgTyMiig==} 312 | peerDependencies: 313 | '@types/react': '*' 314 | '@types/react-dom': '*' 315 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 316 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 317 | peerDependenciesMeta: 318 | '@types/react': 319 | optional: true 320 | '@types/react-dom': 321 | optional: true 322 | 323 | '@radix-ui/react-collection@1.1.1': 324 | resolution: {integrity: sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==} 325 | peerDependencies: 326 | '@types/react': '*' 327 | '@types/react-dom': '*' 328 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 329 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 330 | peerDependenciesMeta: 331 | '@types/react': 332 | optional: true 333 | '@types/react-dom': 334 | optional: true 335 | 336 | '@radix-ui/react-compose-refs@1.1.1': 337 | resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} 338 | peerDependencies: 339 | '@types/react': '*' 340 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 341 | peerDependenciesMeta: 342 | '@types/react': 343 | optional: true 344 | 345 | '@radix-ui/react-context@1.1.1': 346 | resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} 347 | peerDependencies: 348 | '@types/react': '*' 349 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 350 | peerDependenciesMeta: 351 | '@types/react': 352 | optional: true 353 | 354 | '@radix-ui/react-direction@1.1.0': 355 | resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} 356 | peerDependencies: 357 | '@types/react': '*' 358 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 359 | peerDependenciesMeta: 360 | '@types/react': 361 | optional: true 362 | 363 | '@radix-ui/react-dismissable-layer@1.1.3': 364 | resolution: {integrity: sha512-onrWn/72lQoEucDmJnr8uczSNTujT0vJnA/X5+3AkChVPowr8n1yvIKIabhWyMQeMvvmdpsvcyDqx3X1LEXCPg==} 365 | peerDependencies: 366 | '@types/react': '*' 367 | '@types/react-dom': '*' 368 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 369 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 370 | peerDependenciesMeta: 371 | '@types/react': 372 | optional: true 373 | '@types/react-dom': 374 | optional: true 375 | 376 | '@radix-ui/react-dropdown-menu@2.1.4': 377 | resolution: {integrity: sha512-iXU1Ab5ecM+yEepGAWK8ZhMyKX4ubFdCNtol4sT9D0OVErG9PNElfx3TQhjw7n7BC5nFVz68/5//clWy+8TXzA==} 378 | peerDependencies: 379 | '@types/react': '*' 380 | '@types/react-dom': '*' 381 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 382 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 383 | peerDependenciesMeta: 384 | '@types/react': 385 | optional: true 386 | '@types/react-dom': 387 | optional: true 388 | 389 | '@radix-ui/react-focus-guards@1.1.1': 390 | resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} 391 | peerDependencies: 392 | '@types/react': '*' 393 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 394 | peerDependenciesMeta: 395 | '@types/react': 396 | optional: true 397 | 398 | '@radix-ui/react-focus-scope@1.1.1': 399 | resolution: {integrity: sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==} 400 | peerDependencies: 401 | '@types/react': '*' 402 | '@types/react-dom': '*' 403 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 404 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 405 | peerDependenciesMeta: 406 | '@types/react': 407 | optional: true 408 | '@types/react-dom': 409 | optional: true 410 | 411 | '@radix-ui/react-id@1.1.0': 412 | resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} 413 | peerDependencies: 414 | '@types/react': '*' 415 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 416 | peerDependenciesMeta: 417 | '@types/react': 418 | optional: true 419 | 420 | '@radix-ui/react-menu@2.1.4': 421 | resolution: {integrity: sha512-BnOgVoL6YYdHAG6DtXONaR29Eq4nvbi8rutrV/xlr3RQCMMb3yqP85Qiw/3NReozrSW+4dfLkK+rc1hb4wPU/A==} 422 | peerDependencies: 423 | '@types/react': '*' 424 | '@types/react-dom': '*' 425 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 426 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 427 | peerDependenciesMeta: 428 | '@types/react': 429 | optional: true 430 | '@types/react-dom': 431 | optional: true 432 | 433 | '@radix-ui/react-popper@1.2.1': 434 | resolution: {integrity: sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==} 435 | peerDependencies: 436 | '@types/react': '*' 437 | '@types/react-dom': '*' 438 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 439 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 440 | peerDependenciesMeta: 441 | '@types/react': 442 | optional: true 443 | '@types/react-dom': 444 | optional: true 445 | 446 | '@radix-ui/react-portal@1.1.3': 447 | resolution: {integrity: sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==} 448 | peerDependencies: 449 | '@types/react': '*' 450 | '@types/react-dom': '*' 451 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 452 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 453 | peerDependenciesMeta: 454 | '@types/react': 455 | optional: true 456 | '@types/react-dom': 457 | optional: true 458 | 459 | '@radix-ui/react-presence@1.1.2': 460 | resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==} 461 | peerDependencies: 462 | '@types/react': '*' 463 | '@types/react-dom': '*' 464 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 465 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 466 | peerDependenciesMeta: 467 | '@types/react': 468 | optional: true 469 | '@types/react-dom': 470 | optional: true 471 | 472 | '@radix-ui/react-primitive@2.0.1': 473 | resolution: {integrity: sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==} 474 | peerDependencies: 475 | '@types/react': '*' 476 | '@types/react-dom': '*' 477 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 478 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 479 | peerDependenciesMeta: 480 | '@types/react': 481 | optional: true 482 | '@types/react-dom': 483 | optional: true 484 | 485 | '@radix-ui/react-roving-focus@1.1.1': 486 | resolution: {integrity: sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==} 487 | peerDependencies: 488 | '@types/react': '*' 489 | '@types/react-dom': '*' 490 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 491 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 492 | peerDependenciesMeta: 493 | '@types/react': 494 | optional: true 495 | '@types/react-dom': 496 | optional: true 497 | 498 | '@radix-ui/react-scroll-area@1.2.2': 499 | resolution: {integrity: sha512-EFI1N/S3YxZEW/lJ/H1jY3njlvTd8tBmgKEn4GHi51+aMm94i6NmAJstsm5cu3yJwYqYc93gpCPm21FeAbFk6g==} 500 | peerDependencies: 501 | '@types/react': '*' 502 | '@types/react-dom': '*' 503 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 504 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 505 | peerDependenciesMeta: 506 | '@types/react': 507 | optional: true 508 | '@types/react-dom': 509 | optional: true 510 | 511 | '@radix-ui/react-select@2.1.4': 512 | resolution: {integrity: sha512-pOkb2u8KgO47j/h7AylCj7dJsm69BXcjkrvTqMptFqsE2i0p8lHkfgneXKjAgPzBMivnoMyt8o4KiV4wYzDdyQ==} 513 | peerDependencies: 514 | '@types/react': '*' 515 | '@types/react-dom': '*' 516 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 517 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 518 | peerDependenciesMeta: 519 | '@types/react': 520 | optional: true 521 | '@types/react-dom': 522 | optional: true 523 | 524 | '@radix-ui/react-slot@1.1.1': 525 | resolution: {integrity: sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==} 526 | peerDependencies: 527 | '@types/react': '*' 528 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 529 | peerDependenciesMeta: 530 | '@types/react': 531 | optional: true 532 | 533 | '@radix-ui/react-use-callback-ref@1.1.0': 534 | resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} 535 | peerDependencies: 536 | '@types/react': '*' 537 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 538 | peerDependenciesMeta: 539 | '@types/react': 540 | optional: true 541 | 542 | '@radix-ui/react-use-controllable-state@1.1.0': 543 | resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} 544 | peerDependencies: 545 | '@types/react': '*' 546 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 547 | peerDependenciesMeta: 548 | '@types/react': 549 | optional: true 550 | 551 | '@radix-ui/react-use-escape-keydown@1.1.0': 552 | resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} 553 | peerDependencies: 554 | '@types/react': '*' 555 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 556 | peerDependenciesMeta: 557 | '@types/react': 558 | optional: true 559 | 560 | '@radix-ui/react-use-layout-effect@1.1.0': 561 | resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} 562 | peerDependencies: 563 | '@types/react': '*' 564 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 565 | peerDependenciesMeta: 566 | '@types/react': 567 | optional: true 568 | 569 | '@radix-ui/react-use-previous@1.1.0': 570 | resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==} 571 | peerDependencies: 572 | '@types/react': '*' 573 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 574 | peerDependenciesMeta: 575 | '@types/react': 576 | optional: true 577 | 578 | '@radix-ui/react-use-rect@1.1.0': 579 | resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} 580 | peerDependencies: 581 | '@types/react': '*' 582 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 583 | peerDependenciesMeta: 584 | '@types/react': 585 | optional: true 586 | 587 | '@radix-ui/react-use-size@1.1.0': 588 | resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} 589 | peerDependencies: 590 | '@types/react': '*' 591 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 592 | peerDependenciesMeta: 593 | '@types/react': 594 | optional: true 595 | 596 | '@radix-ui/react-visually-hidden@1.1.1': 597 | resolution: {integrity: sha512-vVfA2IZ9q/J+gEamvj761Oq1FpWgCDaNOOIfbPVp2MVPLEomUr5+Vf7kJGwQ24YxZSlQVar7Bes8kyTo5Dshpg==} 598 | peerDependencies: 599 | '@types/react': '*' 600 | '@types/react-dom': '*' 601 | react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 602 | react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc 603 | peerDependenciesMeta: 604 | '@types/react': 605 | optional: true 606 | '@types/react-dom': 607 | optional: true 608 | 609 | '@radix-ui/rect@1.1.0': 610 | resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} 611 | 612 | '@swc/counter@0.1.3': 613 | resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} 614 | 615 | '@swc/helpers@0.5.15': 616 | resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} 617 | 618 | '@types/node@22.10.2': 619 | resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} 620 | 621 | '@types/react-dom@19.0.2': 622 | resolution: {integrity: sha512-c1s+7TKFaDRRxr1TxccIX2u7sfCnc3RxkVyBIUA2lCpyqCF+QoAwQ/CBg7bsMdVwP120HEH143VQezKtef5nCg==} 623 | peerDependencies: 624 | '@types/react': ^19.0.0 625 | 626 | '@types/react@19.0.2': 627 | resolution: {integrity: sha512-USU8ZI/xyKJwFTpjSVIrSeHBVAGagkHQKPNbxeWwql/vDmnTIBgx+TJnhFnj1NXgz8XfprU0egV2dROLGpsBEg==} 628 | 629 | ansi-regex@5.0.1: 630 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 631 | engines: {node: '>=8'} 632 | 633 | ansi-regex@6.1.0: 634 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 635 | engines: {node: '>=12'} 636 | 637 | ansi-styles@4.3.0: 638 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 639 | engines: {node: '>=8'} 640 | 641 | ansi-styles@6.2.1: 642 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 643 | engines: {node: '>=12'} 644 | 645 | any-promise@1.3.0: 646 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 647 | 648 | anymatch@3.1.3: 649 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 650 | engines: {node: '>= 8'} 651 | 652 | arg@5.0.2: 653 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 654 | 655 | aria-hidden@1.2.4: 656 | resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} 657 | engines: {node: '>=10'} 658 | 659 | autoprefixer@10.4.20: 660 | resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} 661 | engines: {node: ^10 || ^12 || >=14} 662 | hasBin: true 663 | peerDependencies: 664 | postcss: ^8.1.0 665 | 666 | balanced-match@1.0.2: 667 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 668 | 669 | binary-extensions@2.3.0: 670 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 671 | engines: {node: '>=8'} 672 | 673 | brace-expansion@2.0.1: 674 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 675 | 676 | braces@3.0.3: 677 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 678 | engines: {node: '>=8'} 679 | 680 | browserslist@4.24.3: 681 | resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==} 682 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 683 | hasBin: true 684 | 685 | busboy@1.6.0: 686 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 687 | engines: {node: '>=10.16.0'} 688 | 689 | camelcase-css@2.0.1: 690 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 691 | engines: {node: '>= 6'} 692 | 693 | caniuse-lite@1.0.30001690: 694 | resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} 695 | 696 | chokidar@3.6.0: 697 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 698 | engines: {node: '>= 8.10.0'} 699 | 700 | class-variance-authority@0.7.1: 701 | resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} 702 | 703 | client-only@0.0.1: 704 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 705 | 706 | clsx@2.1.1: 707 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 708 | engines: {node: '>=6'} 709 | 710 | color-convert@2.0.1: 711 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 712 | engines: {node: '>=7.0.0'} 713 | 714 | color-name@1.1.4: 715 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 716 | 717 | color-string@1.9.1: 718 | resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} 719 | 720 | color@4.2.3: 721 | resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} 722 | engines: {node: '>=12.5.0'} 723 | 724 | commander@4.1.1: 725 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 726 | engines: {node: '>= 6'} 727 | 728 | cross-spawn@7.0.6: 729 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 730 | engines: {node: '>= 8'} 731 | 732 | cssesc@3.0.0: 733 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 734 | engines: {node: '>=4'} 735 | hasBin: true 736 | 737 | csstype@3.1.3: 738 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 739 | 740 | detect-libc@2.1.2: 741 | resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} 742 | engines: {node: '>=8'} 743 | 744 | detect-node-es@1.1.0: 745 | resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} 746 | 747 | didyoumean@1.2.2: 748 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 749 | 750 | dlv@1.1.3: 751 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 752 | 753 | eastasianwidth@0.2.0: 754 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 755 | 756 | electron-to-chromium@1.5.75: 757 | resolution: {integrity: sha512-Lf3++DumRE/QmweGjU+ZcKqQ+3bKkU/qjaKYhIJKEOhgIO9Xs6IiAQFkfFoj+RhgDk4LUeNsLo6plExHqSyu6Q==} 758 | 759 | emoji-regex@8.0.0: 760 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 761 | 762 | emoji-regex@9.2.2: 763 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 764 | 765 | escalade@3.2.0: 766 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 767 | engines: {node: '>=6'} 768 | 769 | fast-glob@3.3.2: 770 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 771 | engines: {node: '>=8.6.0'} 772 | 773 | fastq@1.17.1: 774 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 775 | 776 | fill-range@7.1.1: 777 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 778 | engines: {node: '>=8'} 779 | 780 | foreground-child@3.3.0: 781 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 782 | engines: {node: '>=14'} 783 | 784 | fraction.js@4.3.7: 785 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} 786 | 787 | fsevents@2.3.3: 788 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 789 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 790 | os: [darwin] 791 | 792 | function-bind@1.1.2: 793 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 794 | 795 | get-nonce@1.0.1: 796 | resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} 797 | engines: {node: '>=6'} 798 | 799 | glob-parent@5.1.2: 800 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 801 | engines: {node: '>= 6'} 802 | 803 | glob-parent@6.0.2: 804 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 805 | engines: {node: '>=10.13.0'} 806 | 807 | glob@10.4.5: 808 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 809 | hasBin: true 810 | 811 | hasown@2.0.2: 812 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 813 | engines: {node: '>= 0.4'} 814 | 815 | is-arrayish@0.3.4: 816 | resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} 817 | 818 | is-binary-path@2.1.0: 819 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 820 | engines: {node: '>=8'} 821 | 822 | is-core-module@2.16.1: 823 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 824 | engines: {node: '>= 0.4'} 825 | 826 | is-extglob@2.1.1: 827 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 828 | engines: {node: '>=0.10.0'} 829 | 830 | is-fullwidth-code-point@3.0.0: 831 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 832 | engines: {node: '>=8'} 833 | 834 | is-glob@4.0.3: 835 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 836 | engines: {node: '>=0.10.0'} 837 | 838 | is-number@7.0.0: 839 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 840 | engines: {node: '>=0.12.0'} 841 | 842 | isexe@2.0.0: 843 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 844 | 845 | jackspeak@3.4.3: 846 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 847 | 848 | jiti@1.21.7: 849 | resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} 850 | hasBin: true 851 | 852 | lilconfig@3.1.3: 853 | resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} 854 | engines: {node: '>=14'} 855 | 856 | lines-and-columns@1.2.4: 857 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 858 | 859 | lru-cache@10.4.3: 860 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 861 | 862 | lucide-react@0.469.0: 863 | resolution: {integrity: sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw==} 864 | peerDependencies: 865 | react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 866 | 867 | merge2@1.4.1: 868 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 869 | engines: {node: '>= 8'} 870 | 871 | micromatch@4.0.8: 872 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 873 | engines: {node: '>=8.6'} 874 | 875 | minimatch@9.0.5: 876 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 877 | engines: {node: '>=16 || 14 >=14.17'} 878 | 879 | minipass@7.1.2: 880 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 881 | engines: {node: '>=16 || 14 >=14.17'} 882 | 883 | mz@2.7.0: 884 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 885 | 886 | nanoid@3.3.8: 887 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 888 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 889 | hasBin: true 890 | 891 | next@15.1.11: 892 | resolution: {integrity: sha512-UiVJaOGhKST58AadwbFUZThlNBmYhKqaCs8bVtm4plTxsgKq0mJ0zTsp7t7j/rzsbAEj9WcAMdZCztjByi4EoQ==} 893 | engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} 894 | hasBin: true 895 | peerDependencies: 896 | '@opentelemetry/api': ^1.1.0 897 | '@playwright/test': ^1.41.2 898 | babel-plugin-react-compiler: '*' 899 | react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 900 | react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 901 | sass: ^1.3.0 902 | peerDependenciesMeta: 903 | '@opentelemetry/api': 904 | optional: true 905 | '@playwright/test': 906 | optional: true 907 | babel-plugin-react-compiler: 908 | optional: true 909 | sass: 910 | optional: true 911 | 912 | node-releases@2.0.19: 913 | resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} 914 | 915 | normalize-path@3.0.0: 916 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 917 | engines: {node: '>=0.10.0'} 918 | 919 | normalize-range@0.1.2: 920 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 921 | engines: {node: '>=0.10.0'} 922 | 923 | object-assign@4.1.1: 924 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 925 | engines: {node: '>=0.10.0'} 926 | 927 | object-hash@3.0.0: 928 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 929 | engines: {node: '>= 6'} 930 | 931 | package-json-from-dist@1.0.1: 932 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 933 | 934 | path-key@3.1.1: 935 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 936 | engines: {node: '>=8'} 937 | 938 | path-parse@1.0.7: 939 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 940 | 941 | path-scurry@1.11.1: 942 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 943 | engines: {node: '>=16 || 14 >=14.18'} 944 | 945 | picocolors@1.1.1: 946 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 947 | 948 | picomatch@2.3.1: 949 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 950 | engines: {node: '>=8.6'} 951 | 952 | pify@2.3.0: 953 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 954 | engines: {node: '>=0.10.0'} 955 | 956 | pirates@4.0.6: 957 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 958 | engines: {node: '>= 6'} 959 | 960 | postcss-import@15.1.0: 961 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 962 | engines: {node: '>=14.0.0'} 963 | peerDependencies: 964 | postcss: ^8.0.0 965 | 966 | postcss-js@4.0.1: 967 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 968 | engines: {node: ^12 || ^14 || >= 16} 969 | peerDependencies: 970 | postcss: ^8.4.21 971 | 972 | postcss-load-config@4.0.2: 973 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 974 | engines: {node: '>= 14'} 975 | peerDependencies: 976 | postcss: '>=8.0.9' 977 | ts-node: '>=9.0.0' 978 | peerDependenciesMeta: 979 | postcss: 980 | optional: true 981 | ts-node: 982 | optional: true 983 | 984 | postcss-nested@6.2.0: 985 | resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} 986 | engines: {node: '>=12.0'} 987 | peerDependencies: 988 | postcss: ^8.2.14 989 | 990 | postcss-selector-parser@6.1.2: 991 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} 992 | engines: {node: '>=4'} 993 | 994 | postcss-value-parser@4.2.0: 995 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 996 | 997 | postcss@8.4.31: 998 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 999 | engines: {node: ^10 || ^12 || >=14} 1000 | 1001 | postcss@8.4.49: 1002 | resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} 1003 | engines: {node: ^10 || ^12 || >=14} 1004 | 1005 | queue-microtask@1.2.3: 1006 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1007 | 1008 | react-dom@19.0.0: 1009 | resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} 1010 | peerDependencies: 1011 | react: ^19.0.0 1012 | 1013 | react-remove-scroll-bar@2.3.8: 1014 | resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} 1015 | engines: {node: '>=10'} 1016 | peerDependencies: 1017 | '@types/react': '*' 1018 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 1019 | peerDependenciesMeta: 1020 | '@types/react': 1021 | optional: true 1022 | 1023 | react-remove-scroll@2.6.2: 1024 | resolution: {integrity: sha512-KmONPx5fnlXYJQqC62Q+lwIeAk64ws/cUw6omIumRzMRPqgnYqhSSti99nbj0Ry13bv7dF+BKn7NB+OqkdZGTw==} 1025 | engines: {node: '>=10'} 1026 | peerDependencies: 1027 | '@types/react': '*' 1028 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc 1029 | peerDependenciesMeta: 1030 | '@types/react': 1031 | optional: true 1032 | 1033 | react-style-singleton@2.2.3: 1034 | resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} 1035 | engines: {node: '>=10'} 1036 | peerDependencies: 1037 | '@types/react': '*' 1038 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc 1039 | peerDependenciesMeta: 1040 | '@types/react': 1041 | optional: true 1042 | 1043 | react@19.0.0: 1044 | resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} 1045 | engines: {node: '>=0.10.0'} 1046 | 1047 | read-cache@1.0.0: 1048 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 1049 | 1050 | readdirp@3.6.0: 1051 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1052 | engines: {node: '>=8.10.0'} 1053 | 1054 | resolve@1.22.10: 1055 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 1056 | engines: {node: '>= 0.4'} 1057 | hasBin: true 1058 | 1059 | reusify@1.0.4: 1060 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1061 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1062 | 1063 | run-parallel@1.2.0: 1064 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1065 | 1066 | scheduler@0.25.0: 1067 | resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} 1068 | 1069 | semver@7.7.3: 1070 | resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} 1071 | engines: {node: '>=10'} 1072 | hasBin: true 1073 | 1074 | sharp@0.33.5: 1075 | resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} 1076 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 1077 | 1078 | shebang-command@2.0.0: 1079 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1080 | engines: {node: '>=8'} 1081 | 1082 | shebang-regex@3.0.0: 1083 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1084 | engines: {node: '>=8'} 1085 | 1086 | signal-exit@4.1.0: 1087 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1088 | engines: {node: '>=14'} 1089 | 1090 | simple-swizzle@0.2.4: 1091 | resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} 1092 | 1093 | source-map-js@1.2.1: 1094 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1095 | engines: {node: '>=0.10.0'} 1096 | 1097 | streamsearch@1.1.0: 1098 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 1099 | engines: {node: '>=10.0.0'} 1100 | 1101 | string-width@4.2.3: 1102 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1103 | engines: {node: '>=8'} 1104 | 1105 | string-width@5.1.2: 1106 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1107 | engines: {node: '>=12'} 1108 | 1109 | strip-ansi@6.0.1: 1110 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1111 | engines: {node: '>=8'} 1112 | 1113 | strip-ansi@7.1.0: 1114 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1115 | engines: {node: '>=12'} 1116 | 1117 | styled-jsx@5.1.6: 1118 | resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} 1119 | engines: {node: '>= 12.0.0'} 1120 | peerDependencies: 1121 | '@babel/core': '*' 1122 | babel-plugin-macros: '*' 1123 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' 1124 | peerDependenciesMeta: 1125 | '@babel/core': 1126 | optional: true 1127 | babel-plugin-macros: 1128 | optional: true 1129 | 1130 | sucrase@3.35.0: 1131 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 1132 | engines: {node: '>=16 || 14 >=14.17'} 1133 | hasBin: true 1134 | 1135 | supports-preserve-symlinks-flag@1.0.0: 1136 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1137 | engines: {node: '>= 0.4'} 1138 | 1139 | tailwind-merge@2.5.5: 1140 | resolution: {integrity: sha512-0LXunzzAZzo0tEPxV3I297ffKZPlKDrjj7NXphC8V5ak9yHC5zRmxnOe2m/Rd/7ivsOMJe3JZ2JVocoDdQTRBA==} 1141 | 1142 | tailwindcss-animate@1.0.7: 1143 | resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} 1144 | peerDependencies: 1145 | tailwindcss: '>=3.0.0 || insiders' 1146 | 1147 | tailwindcss@3.4.17: 1148 | resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} 1149 | engines: {node: '>=14.0.0'} 1150 | hasBin: true 1151 | 1152 | thenify-all@1.6.0: 1153 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 1154 | engines: {node: '>=0.8'} 1155 | 1156 | thenify@3.3.1: 1157 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 1158 | 1159 | to-regex-range@5.0.1: 1160 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1161 | engines: {node: '>=8.0'} 1162 | 1163 | ts-interface-checker@0.1.13: 1164 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 1165 | 1166 | tslib@2.8.1: 1167 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1168 | 1169 | typescript@5.7.2: 1170 | resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} 1171 | engines: {node: '>=14.17'} 1172 | hasBin: true 1173 | 1174 | undici-types@6.20.0: 1175 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 1176 | 1177 | update-browserslist-db@1.1.1: 1178 | resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} 1179 | hasBin: true 1180 | peerDependencies: 1181 | browserslist: '>= 4.21.0' 1182 | 1183 | use-callback-ref@1.3.3: 1184 | resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} 1185 | engines: {node: '>=10'} 1186 | peerDependencies: 1187 | '@types/react': '*' 1188 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc 1189 | peerDependenciesMeta: 1190 | '@types/react': 1191 | optional: true 1192 | 1193 | use-sidecar@1.1.3: 1194 | resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} 1195 | engines: {node: '>=10'} 1196 | peerDependencies: 1197 | '@types/react': '*' 1198 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc 1199 | peerDependenciesMeta: 1200 | '@types/react': 1201 | optional: true 1202 | 1203 | util-deprecate@1.0.2: 1204 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1205 | 1206 | which@2.0.2: 1207 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1208 | engines: {node: '>= 8'} 1209 | hasBin: true 1210 | 1211 | wrap-ansi@7.0.0: 1212 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1213 | engines: {node: '>=10'} 1214 | 1215 | wrap-ansi@8.1.0: 1216 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1217 | engines: {node: '>=12'} 1218 | 1219 | yaml@2.6.1: 1220 | resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} 1221 | engines: {node: '>= 14'} 1222 | hasBin: true 1223 | 1224 | snapshots: 1225 | 1226 | '@alloc/quick-lru@5.2.0': {} 1227 | 1228 | '@emnapi/runtime@1.7.1': 1229 | dependencies: 1230 | tslib: 2.8.1 1231 | optional: true 1232 | 1233 | '@floating-ui/core@1.6.8': 1234 | dependencies: 1235 | '@floating-ui/utils': 0.2.8 1236 | 1237 | '@floating-ui/dom@1.6.12': 1238 | dependencies: 1239 | '@floating-ui/core': 1.6.8 1240 | '@floating-ui/utils': 0.2.8 1241 | 1242 | '@floating-ui/react-dom@2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 1243 | dependencies: 1244 | '@floating-ui/dom': 1.6.12 1245 | react: 19.0.0 1246 | react-dom: 19.0.0(react@19.0.0) 1247 | 1248 | '@floating-ui/utils@0.2.8': {} 1249 | 1250 | '@img/sharp-darwin-arm64@0.33.5': 1251 | optionalDependencies: 1252 | '@img/sharp-libvips-darwin-arm64': 1.0.4 1253 | optional: true 1254 | 1255 | '@img/sharp-darwin-x64@0.33.5': 1256 | optionalDependencies: 1257 | '@img/sharp-libvips-darwin-x64': 1.0.4 1258 | optional: true 1259 | 1260 | '@img/sharp-libvips-darwin-arm64@1.0.4': 1261 | optional: true 1262 | 1263 | '@img/sharp-libvips-darwin-x64@1.0.4': 1264 | optional: true 1265 | 1266 | '@img/sharp-libvips-linux-arm64@1.0.4': 1267 | optional: true 1268 | 1269 | '@img/sharp-libvips-linux-arm@1.0.5': 1270 | optional: true 1271 | 1272 | '@img/sharp-libvips-linux-s390x@1.0.4': 1273 | optional: true 1274 | 1275 | '@img/sharp-libvips-linux-x64@1.0.4': 1276 | optional: true 1277 | 1278 | '@img/sharp-libvips-linuxmusl-arm64@1.0.4': 1279 | optional: true 1280 | 1281 | '@img/sharp-libvips-linuxmusl-x64@1.0.4': 1282 | optional: true 1283 | 1284 | '@img/sharp-linux-arm64@0.33.5': 1285 | optionalDependencies: 1286 | '@img/sharp-libvips-linux-arm64': 1.0.4 1287 | optional: true 1288 | 1289 | '@img/sharp-linux-arm@0.33.5': 1290 | optionalDependencies: 1291 | '@img/sharp-libvips-linux-arm': 1.0.5 1292 | optional: true 1293 | 1294 | '@img/sharp-linux-s390x@0.33.5': 1295 | optionalDependencies: 1296 | '@img/sharp-libvips-linux-s390x': 1.0.4 1297 | optional: true 1298 | 1299 | '@img/sharp-linux-x64@0.33.5': 1300 | optionalDependencies: 1301 | '@img/sharp-libvips-linux-x64': 1.0.4 1302 | optional: true 1303 | 1304 | '@img/sharp-linuxmusl-arm64@0.33.5': 1305 | optionalDependencies: 1306 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 1307 | optional: true 1308 | 1309 | '@img/sharp-linuxmusl-x64@0.33.5': 1310 | optionalDependencies: 1311 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4 1312 | optional: true 1313 | 1314 | '@img/sharp-wasm32@0.33.5': 1315 | dependencies: 1316 | '@emnapi/runtime': 1.7.1 1317 | optional: true 1318 | 1319 | '@img/sharp-win32-ia32@0.33.5': 1320 | optional: true 1321 | 1322 | '@img/sharp-win32-x64@0.33.5': 1323 | optional: true 1324 | 1325 | '@isaacs/cliui@8.0.2': 1326 | dependencies: 1327 | string-width: 5.1.2 1328 | string-width-cjs: string-width@4.2.3 1329 | strip-ansi: 7.1.0 1330 | strip-ansi-cjs: strip-ansi@6.0.1 1331 | wrap-ansi: 8.1.0 1332 | wrap-ansi-cjs: wrap-ansi@7.0.0 1333 | 1334 | '@jridgewell/gen-mapping@0.3.8': 1335 | dependencies: 1336 | '@jridgewell/set-array': 1.2.1 1337 | '@jridgewell/sourcemap-codec': 1.5.0 1338 | '@jridgewell/trace-mapping': 0.3.25 1339 | 1340 | '@jridgewell/resolve-uri@3.1.2': {} 1341 | 1342 | '@jridgewell/set-array@1.2.1': {} 1343 | 1344 | '@jridgewell/sourcemap-codec@1.5.0': {} 1345 | 1346 | '@jridgewell/trace-mapping@0.3.25': 1347 | dependencies: 1348 | '@jridgewell/resolve-uri': 3.1.2 1349 | '@jridgewell/sourcemap-codec': 1.5.0 1350 | 1351 | '@next/env@15.1.11': {} 1352 | 1353 | '@next/swc-darwin-arm64@15.1.9': 1354 | optional: true 1355 | 1356 | '@next/swc-darwin-x64@15.1.9': 1357 | optional: true 1358 | 1359 | '@next/swc-linux-arm64-gnu@15.1.9': 1360 | optional: true 1361 | 1362 | '@next/swc-linux-arm64-musl@15.1.9': 1363 | optional: true 1364 | 1365 | '@next/swc-linux-x64-gnu@15.1.9': 1366 | optional: true 1367 | 1368 | '@next/swc-linux-x64-musl@15.1.9': 1369 | optional: true 1370 | 1371 | '@next/swc-win32-arm64-msvc@15.1.9': 1372 | optional: true 1373 | 1374 | '@next/swc-win32-x64-msvc@15.1.9': 1375 | optional: true 1376 | 1377 | '@nodelib/fs.scandir@2.1.5': 1378 | dependencies: 1379 | '@nodelib/fs.stat': 2.0.5 1380 | run-parallel: 1.2.0 1381 | 1382 | '@nodelib/fs.stat@2.0.5': {} 1383 | 1384 | '@nodelib/fs.walk@1.2.8': 1385 | dependencies: 1386 | '@nodelib/fs.scandir': 2.1.5 1387 | fastq: 1.17.1 1388 | 1389 | '@pkgjs/parseargs@0.11.0': 1390 | optional: true 1391 | 1392 | '@radix-ui/number@1.1.0': {} 1393 | 1394 | '@radix-ui/primitive@1.1.1': {} 1395 | 1396 | '@radix-ui/react-arrow@1.1.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 1397 | dependencies: 1398 | '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1399 | react: 19.0.0 1400 | react-dom: 19.0.0(react@19.0.0) 1401 | optionalDependencies: 1402 | '@types/react': 19.0.2 1403 | '@types/react-dom': 19.0.2(@types/react@19.0.2) 1404 | 1405 | '@radix-ui/react-avatar@1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 1406 | dependencies: 1407 | '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1408 | '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1409 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1410 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1411 | react: 19.0.0 1412 | react-dom: 19.0.0(react@19.0.0) 1413 | optionalDependencies: 1414 | '@types/react': 19.0.2 1415 | '@types/react-dom': 19.0.2(@types/react@19.0.2) 1416 | 1417 | '@radix-ui/react-collection@1.1.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 1418 | dependencies: 1419 | '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1420 | '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1421 | '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1422 | '@radix-ui/react-slot': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1423 | react: 19.0.0 1424 | react-dom: 19.0.0(react@19.0.0) 1425 | optionalDependencies: 1426 | '@types/react': 19.0.2 1427 | '@types/react-dom': 19.0.2(@types/react@19.0.2) 1428 | 1429 | '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.2)(react@19.0.0)': 1430 | dependencies: 1431 | react: 19.0.0 1432 | optionalDependencies: 1433 | '@types/react': 19.0.2 1434 | 1435 | '@radix-ui/react-context@1.1.1(@types/react@19.0.2)(react@19.0.0)': 1436 | dependencies: 1437 | react: 19.0.0 1438 | optionalDependencies: 1439 | '@types/react': 19.0.2 1440 | 1441 | '@radix-ui/react-direction@1.1.0(@types/react@19.0.2)(react@19.0.0)': 1442 | dependencies: 1443 | react: 19.0.0 1444 | optionalDependencies: 1445 | '@types/react': 19.0.2 1446 | 1447 | '@radix-ui/react-dismissable-layer@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 1448 | dependencies: 1449 | '@radix-ui/primitive': 1.1.1 1450 | '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1451 | '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1452 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1453 | '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1454 | react: 19.0.0 1455 | react-dom: 19.0.0(react@19.0.0) 1456 | optionalDependencies: 1457 | '@types/react': 19.0.2 1458 | '@types/react-dom': 19.0.2(@types/react@19.0.2) 1459 | 1460 | '@radix-ui/react-dropdown-menu@2.1.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 1461 | dependencies: 1462 | '@radix-ui/primitive': 1.1.1 1463 | '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1464 | '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1465 | '@radix-ui/react-id': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1466 | '@radix-ui/react-menu': 2.1.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1467 | '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1468 | '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1469 | react: 19.0.0 1470 | react-dom: 19.0.0(react@19.0.0) 1471 | optionalDependencies: 1472 | '@types/react': 19.0.2 1473 | '@types/react-dom': 19.0.2(@types/react@19.0.2) 1474 | 1475 | '@radix-ui/react-focus-guards@1.1.1(@types/react@19.0.2)(react@19.0.0)': 1476 | dependencies: 1477 | react: 19.0.0 1478 | optionalDependencies: 1479 | '@types/react': 19.0.2 1480 | 1481 | '@radix-ui/react-focus-scope@1.1.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 1482 | dependencies: 1483 | '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1484 | '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1485 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1486 | react: 19.0.0 1487 | react-dom: 19.0.0(react@19.0.0) 1488 | optionalDependencies: 1489 | '@types/react': 19.0.2 1490 | '@types/react-dom': 19.0.2(@types/react@19.0.2) 1491 | 1492 | '@radix-ui/react-id@1.1.0(@types/react@19.0.2)(react@19.0.0)': 1493 | dependencies: 1494 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1495 | react: 19.0.0 1496 | optionalDependencies: 1497 | '@types/react': 19.0.2 1498 | 1499 | '@radix-ui/react-menu@2.1.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 1500 | dependencies: 1501 | '@radix-ui/primitive': 1.1.1 1502 | '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1503 | '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1504 | '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1505 | '@radix-ui/react-direction': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1506 | '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1507 | '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1508 | '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1509 | '@radix-ui/react-id': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1510 | '@radix-ui/react-popper': 1.2.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1511 | '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1512 | '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1513 | '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1514 | '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1515 | '@radix-ui/react-slot': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1516 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1517 | aria-hidden: 1.2.4 1518 | react: 19.0.0 1519 | react-dom: 19.0.0(react@19.0.0) 1520 | react-remove-scroll: 2.6.2(@types/react@19.0.2)(react@19.0.0) 1521 | optionalDependencies: 1522 | '@types/react': 19.0.2 1523 | '@types/react-dom': 19.0.2(@types/react@19.0.2) 1524 | 1525 | '@radix-ui/react-popper@1.2.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 1526 | dependencies: 1527 | '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1528 | '@radix-ui/react-arrow': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1529 | '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1530 | '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1531 | '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1532 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1533 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1534 | '@radix-ui/react-use-rect': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1535 | '@radix-ui/react-use-size': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1536 | '@radix-ui/rect': 1.1.0 1537 | react: 19.0.0 1538 | react-dom: 19.0.0(react@19.0.0) 1539 | optionalDependencies: 1540 | '@types/react': 19.0.2 1541 | '@types/react-dom': 19.0.2(@types/react@19.0.2) 1542 | 1543 | '@radix-ui/react-portal@1.1.3(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 1544 | dependencies: 1545 | '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1546 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1547 | react: 19.0.0 1548 | react-dom: 19.0.0(react@19.0.0) 1549 | optionalDependencies: 1550 | '@types/react': 19.0.2 1551 | '@types/react-dom': 19.0.2(@types/react@19.0.2) 1552 | 1553 | '@radix-ui/react-presence@1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 1554 | dependencies: 1555 | '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1556 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1557 | react: 19.0.0 1558 | react-dom: 19.0.0(react@19.0.0) 1559 | optionalDependencies: 1560 | '@types/react': 19.0.2 1561 | '@types/react-dom': 19.0.2(@types/react@19.0.2) 1562 | 1563 | '@radix-ui/react-primitive@2.0.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 1564 | dependencies: 1565 | '@radix-ui/react-slot': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1566 | react: 19.0.0 1567 | react-dom: 19.0.0(react@19.0.0) 1568 | optionalDependencies: 1569 | '@types/react': 19.0.2 1570 | '@types/react-dom': 19.0.2(@types/react@19.0.2) 1571 | 1572 | '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 1573 | dependencies: 1574 | '@radix-ui/primitive': 1.1.1 1575 | '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1576 | '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1577 | '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1578 | '@radix-ui/react-direction': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1579 | '@radix-ui/react-id': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1580 | '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1581 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1582 | '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1583 | react: 19.0.0 1584 | react-dom: 19.0.0(react@19.0.0) 1585 | optionalDependencies: 1586 | '@types/react': 19.0.2 1587 | '@types/react-dom': 19.0.2(@types/react@19.0.2) 1588 | 1589 | '@radix-ui/react-scroll-area@1.2.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 1590 | dependencies: 1591 | '@radix-ui/number': 1.1.0 1592 | '@radix-ui/primitive': 1.1.1 1593 | '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1594 | '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1595 | '@radix-ui/react-direction': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1596 | '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1597 | '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1598 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1599 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1600 | react: 19.0.0 1601 | react-dom: 19.0.0(react@19.0.0) 1602 | optionalDependencies: 1603 | '@types/react': 19.0.2 1604 | '@types/react-dom': 19.0.2(@types/react@19.0.2) 1605 | 1606 | '@radix-ui/react-select@2.1.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 1607 | dependencies: 1608 | '@radix-ui/number': 1.1.0 1609 | '@radix-ui/primitive': 1.1.1 1610 | '@radix-ui/react-collection': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1611 | '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1612 | '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1613 | '@radix-ui/react-direction': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1614 | '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1615 | '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1616 | '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1617 | '@radix-ui/react-id': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1618 | '@radix-ui/react-popper': 1.2.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1619 | '@radix-ui/react-portal': 1.1.3(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1620 | '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1621 | '@radix-ui/react-slot': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1622 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1623 | '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1624 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1625 | '@radix-ui/react-use-previous': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1626 | '@radix-ui/react-visually-hidden': 1.1.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1627 | aria-hidden: 1.2.4 1628 | react: 19.0.0 1629 | react-dom: 19.0.0(react@19.0.0) 1630 | react-remove-scroll: 2.6.2(@types/react@19.0.2)(react@19.0.0) 1631 | optionalDependencies: 1632 | '@types/react': 19.0.2 1633 | '@types/react-dom': 19.0.2(@types/react@19.0.2) 1634 | 1635 | '@radix-ui/react-slot@1.1.1(@types/react@19.0.2)(react@19.0.0)': 1636 | dependencies: 1637 | '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) 1638 | react: 19.0.0 1639 | optionalDependencies: 1640 | '@types/react': 19.0.2 1641 | 1642 | '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.2)(react@19.0.0)': 1643 | dependencies: 1644 | react: 19.0.0 1645 | optionalDependencies: 1646 | '@types/react': 19.0.2 1647 | 1648 | '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.2)(react@19.0.0)': 1649 | dependencies: 1650 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1651 | react: 19.0.0 1652 | optionalDependencies: 1653 | '@types/react': 19.0.2 1654 | 1655 | '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.0.2)(react@19.0.0)': 1656 | dependencies: 1657 | '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1658 | react: 19.0.0 1659 | optionalDependencies: 1660 | '@types/react': 19.0.2 1661 | 1662 | '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.2)(react@19.0.0)': 1663 | dependencies: 1664 | react: 19.0.0 1665 | optionalDependencies: 1666 | '@types/react': 19.0.2 1667 | 1668 | '@radix-ui/react-use-previous@1.1.0(@types/react@19.0.2)(react@19.0.0)': 1669 | dependencies: 1670 | react: 19.0.0 1671 | optionalDependencies: 1672 | '@types/react': 19.0.2 1673 | 1674 | '@radix-ui/react-use-rect@1.1.0(@types/react@19.0.2)(react@19.0.0)': 1675 | dependencies: 1676 | '@radix-ui/rect': 1.1.0 1677 | react: 19.0.0 1678 | optionalDependencies: 1679 | '@types/react': 19.0.2 1680 | 1681 | '@radix-ui/react-use-size@1.1.0(@types/react@19.0.2)(react@19.0.0)': 1682 | dependencies: 1683 | '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.2)(react@19.0.0) 1684 | react: 19.0.0 1685 | optionalDependencies: 1686 | '@types/react': 19.0.2 1687 | 1688 | '@radix-ui/react-visually-hidden@1.1.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': 1689 | dependencies: 1690 | '@radix-ui/react-primitive': 2.0.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 1691 | react: 19.0.0 1692 | react-dom: 19.0.0(react@19.0.0) 1693 | optionalDependencies: 1694 | '@types/react': 19.0.2 1695 | '@types/react-dom': 19.0.2(@types/react@19.0.2) 1696 | 1697 | '@radix-ui/rect@1.1.0': {} 1698 | 1699 | '@swc/counter@0.1.3': {} 1700 | 1701 | '@swc/helpers@0.5.15': 1702 | dependencies: 1703 | tslib: 2.8.1 1704 | 1705 | '@types/node@22.10.2': 1706 | dependencies: 1707 | undici-types: 6.20.0 1708 | 1709 | '@types/react-dom@19.0.2(@types/react@19.0.2)': 1710 | dependencies: 1711 | '@types/react': 19.0.2 1712 | 1713 | '@types/react@19.0.2': 1714 | dependencies: 1715 | csstype: 3.1.3 1716 | 1717 | ansi-regex@5.0.1: {} 1718 | 1719 | ansi-regex@6.1.0: {} 1720 | 1721 | ansi-styles@4.3.0: 1722 | dependencies: 1723 | color-convert: 2.0.1 1724 | 1725 | ansi-styles@6.2.1: {} 1726 | 1727 | any-promise@1.3.0: {} 1728 | 1729 | anymatch@3.1.3: 1730 | dependencies: 1731 | normalize-path: 3.0.0 1732 | picomatch: 2.3.1 1733 | 1734 | arg@5.0.2: {} 1735 | 1736 | aria-hidden@1.2.4: 1737 | dependencies: 1738 | tslib: 2.8.1 1739 | 1740 | autoprefixer@10.4.20(postcss@8.4.49): 1741 | dependencies: 1742 | browserslist: 4.24.3 1743 | caniuse-lite: 1.0.30001690 1744 | fraction.js: 4.3.7 1745 | normalize-range: 0.1.2 1746 | picocolors: 1.1.1 1747 | postcss: 8.4.49 1748 | postcss-value-parser: 4.2.0 1749 | 1750 | balanced-match@1.0.2: {} 1751 | 1752 | binary-extensions@2.3.0: {} 1753 | 1754 | brace-expansion@2.0.1: 1755 | dependencies: 1756 | balanced-match: 1.0.2 1757 | 1758 | braces@3.0.3: 1759 | dependencies: 1760 | fill-range: 7.1.1 1761 | 1762 | browserslist@4.24.3: 1763 | dependencies: 1764 | caniuse-lite: 1.0.30001690 1765 | electron-to-chromium: 1.5.75 1766 | node-releases: 2.0.19 1767 | update-browserslist-db: 1.1.1(browserslist@4.24.3) 1768 | 1769 | busboy@1.6.0: 1770 | dependencies: 1771 | streamsearch: 1.1.0 1772 | 1773 | camelcase-css@2.0.1: {} 1774 | 1775 | caniuse-lite@1.0.30001690: {} 1776 | 1777 | chokidar@3.6.0: 1778 | dependencies: 1779 | anymatch: 3.1.3 1780 | braces: 3.0.3 1781 | glob-parent: 5.1.2 1782 | is-binary-path: 2.1.0 1783 | is-glob: 4.0.3 1784 | normalize-path: 3.0.0 1785 | readdirp: 3.6.0 1786 | optionalDependencies: 1787 | fsevents: 2.3.3 1788 | 1789 | class-variance-authority@0.7.1: 1790 | dependencies: 1791 | clsx: 2.1.1 1792 | 1793 | client-only@0.0.1: {} 1794 | 1795 | clsx@2.1.1: {} 1796 | 1797 | color-convert@2.0.1: 1798 | dependencies: 1799 | color-name: 1.1.4 1800 | 1801 | color-name@1.1.4: {} 1802 | 1803 | color-string@1.9.1: 1804 | dependencies: 1805 | color-name: 1.1.4 1806 | simple-swizzle: 0.2.4 1807 | optional: true 1808 | 1809 | color@4.2.3: 1810 | dependencies: 1811 | color-convert: 2.0.1 1812 | color-string: 1.9.1 1813 | optional: true 1814 | 1815 | commander@4.1.1: {} 1816 | 1817 | cross-spawn@7.0.6: 1818 | dependencies: 1819 | path-key: 3.1.1 1820 | shebang-command: 2.0.0 1821 | which: 2.0.2 1822 | 1823 | cssesc@3.0.0: {} 1824 | 1825 | csstype@3.1.3: {} 1826 | 1827 | detect-libc@2.1.2: 1828 | optional: true 1829 | 1830 | detect-node-es@1.1.0: {} 1831 | 1832 | didyoumean@1.2.2: {} 1833 | 1834 | dlv@1.1.3: {} 1835 | 1836 | eastasianwidth@0.2.0: {} 1837 | 1838 | electron-to-chromium@1.5.75: {} 1839 | 1840 | emoji-regex@8.0.0: {} 1841 | 1842 | emoji-regex@9.2.2: {} 1843 | 1844 | escalade@3.2.0: {} 1845 | 1846 | fast-glob@3.3.2: 1847 | dependencies: 1848 | '@nodelib/fs.stat': 2.0.5 1849 | '@nodelib/fs.walk': 1.2.8 1850 | glob-parent: 5.1.2 1851 | merge2: 1.4.1 1852 | micromatch: 4.0.8 1853 | 1854 | fastq@1.17.1: 1855 | dependencies: 1856 | reusify: 1.0.4 1857 | 1858 | fill-range@7.1.1: 1859 | dependencies: 1860 | to-regex-range: 5.0.1 1861 | 1862 | foreground-child@3.3.0: 1863 | dependencies: 1864 | cross-spawn: 7.0.6 1865 | signal-exit: 4.1.0 1866 | 1867 | fraction.js@4.3.7: {} 1868 | 1869 | fsevents@2.3.3: 1870 | optional: true 1871 | 1872 | function-bind@1.1.2: {} 1873 | 1874 | get-nonce@1.0.1: {} 1875 | 1876 | glob-parent@5.1.2: 1877 | dependencies: 1878 | is-glob: 4.0.3 1879 | 1880 | glob-parent@6.0.2: 1881 | dependencies: 1882 | is-glob: 4.0.3 1883 | 1884 | glob@10.4.5: 1885 | dependencies: 1886 | foreground-child: 3.3.0 1887 | jackspeak: 3.4.3 1888 | minimatch: 9.0.5 1889 | minipass: 7.1.2 1890 | package-json-from-dist: 1.0.1 1891 | path-scurry: 1.11.1 1892 | 1893 | hasown@2.0.2: 1894 | dependencies: 1895 | function-bind: 1.1.2 1896 | 1897 | is-arrayish@0.3.4: 1898 | optional: true 1899 | 1900 | is-binary-path@2.1.0: 1901 | dependencies: 1902 | binary-extensions: 2.3.0 1903 | 1904 | is-core-module@2.16.1: 1905 | dependencies: 1906 | hasown: 2.0.2 1907 | 1908 | is-extglob@2.1.1: {} 1909 | 1910 | is-fullwidth-code-point@3.0.0: {} 1911 | 1912 | is-glob@4.0.3: 1913 | dependencies: 1914 | is-extglob: 2.1.1 1915 | 1916 | is-number@7.0.0: {} 1917 | 1918 | isexe@2.0.0: {} 1919 | 1920 | jackspeak@3.4.3: 1921 | dependencies: 1922 | '@isaacs/cliui': 8.0.2 1923 | optionalDependencies: 1924 | '@pkgjs/parseargs': 0.11.0 1925 | 1926 | jiti@1.21.7: {} 1927 | 1928 | lilconfig@3.1.3: {} 1929 | 1930 | lines-and-columns@1.2.4: {} 1931 | 1932 | lru-cache@10.4.3: {} 1933 | 1934 | lucide-react@0.469.0(react@19.0.0): 1935 | dependencies: 1936 | react: 19.0.0 1937 | 1938 | merge2@1.4.1: {} 1939 | 1940 | micromatch@4.0.8: 1941 | dependencies: 1942 | braces: 3.0.3 1943 | picomatch: 2.3.1 1944 | 1945 | minimatch@9.0.5: 1946 | dependencies: 1947 | brace-expansion: 2.0.1 1948 | 1949 | minipass@7.1.2: {} 1950 | 1951 | mz@2.7.0: 1952 | dependencies: 1953 | any-promise: 1.3.0 1954 | object-assign: 4.1.1 1955 | thenify-all: 1.6.0 1956 | 1957 | nanoid@3.3.8: {} 1958 | 1959 | next@15.1.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0): 1960 | dependencies: 1961 | '@next/env': 15.1.11 1962 | '@swc/counter': 0.1.3 1963 | '@swc/helpers': 0.5.15 1964 | busboy: 1.6.0 1965 | caniuse-lite: 1.0.30001690 1966 | postcss: 8.4.31 1967 | react: 19.0.0 1968 | react-dom: 19.0.0(react@19.0.0) 1969 | styled-jsx: 5.1.6(react@19.0.0) 1970 | optionalDependencies: 1971 | '@next/swc-darwin-arm64': 15.1.9 1972 | '@next/swc-darwin-x64': 15.1.9 1973 | '@next/swc-linux-arm64-gnu': 15.1.9 1974 | '@next/swc-linux-arm64-musl': 15.1.9 1975 | '@next/swc-linux-x64-gnu': 15.1.9 1976 | '@next/swc-linux-x64-musl': 15.1.9 1977 | '@next/swc-win32-arm64-msvc': 15.1.9 1978 | '@next/swc-win32-x64-msvc': 15.1.9 1979 | sharp: 0.33.5 1980 | transitivePeerDependencies: 1981 | - '@babel/core' 1982 | - babel-plugin-macros 1983 | 1984 | node-releases@2.0.19: {} 1985 | 1986 | normalize-path@3.0.0: {} 1987 | 1988 | normalize-range@0.1.2: {} 1989 | 1990 | object-assign@4.1.1: {} 1991 | 1992 | object-hash@3.0.0: {} 1993 | 1994 | package-json-from-dist@1.0.1: {} 1995 | 1996 | path-key@3.1.1: {} 1997 | 1998 | path-parse@1.0.7: {} 1999 | 2000 | path-scurry@1.11.1: 2001 | dependencies: 2002 | lru-cache: 10.4.3 2003 | minipass: 7.1.2 2004 | 2005 | picocolors@1.1.1: {} 2006 | 2007 | picomatch@2.3.1: {} 2008 | 2009 | pify@2.3.0: {} 2010 | 2011 | pirates@4.0.6: {} 2012 | 2013 | postcss-import@15.1.0(postcss@8.4.49): 2014 | dependencies: 2015 | postcss: 8.4.49 2016 | postcss-value-parser: 4.2.0 2017 | read-cache: 1.0.0 2018 | resolve: 1.22.10 2019 | 2020 | postcss-js@4.0.1(postcss@8.4.49): 2021 | dependencies: 2022 | camelcase-css: 2.0.1 2023 | postcss: 8.4.49 2024 | 2025 | postcss-load-config@4.0.2(postcss@8.4.49): 2026 | dependencies: 2027 | lilconfig: 3.1.3 2028 | yaml: 2.6.1 2029 | optionalDependencies: 2030 | postcss: 8.4.49 2031 | 2032 | postcss-nested@6.2.0(postcss@8.4.49): 2033 | dependencies: 2034 | postcss: 8.4.49 2035 | postcss-selector-parser: 6.1.2 2036 | 2037 | postcss-selector-parser@6.1.2: 2038 | dependencies: 2039 | cssesc: 3.0.0 2040 | util-deprecate: 1.0.2 2041 | 2042 | postcss-value-parser@4.2.0: {} 2043 | 2044 | postcss@8.4.31: 2045 | dependencies: 2046 | nanoid: 3.3.8 2047 | picocolors: 1.1.1 2048 | source-map-js: 1.2.1 2049 | 2050 | postcss@8.4.49: 2051 | dependencies: 2052 | nanoid: 3.3.8 2053 | picocolors: 1.1.1 2054 | source-map-js: 1.2.1 2055 | 2056 | queue-microtask@1.2.3: {} 2057 | 2058 | react-dom@19.0.0(react@19.0.0): 2059 | dependencies: 2060 | react: 19.0.0 2061 | scheduler: 0.25.0 2062 | 2063 | react-remove-scroll-bar@2.3.8(@types/react@19.0.2)(react@19.0.0): 2064 | dependencies: 2065 | react: 19.0.0 2066 | react-style-singleton: 2.2.3(@types/react@19.0.2)(react@19.0.0) 2067 | tslib: 2.8.1 2068 | optionalDependencies: 2069 | '@types/react': 19.0.2 2070 | 2071 | react-remove-scroll@2.6.2(@types/react@19.0.2)(react@19.0.0): 2072 | dependencies: 2073 | react: 19.0.0 2074 | react-remove-scroll-bar: 2.3.8(@types/react@19.0.2)(react@19.0.0) 2075 | react-style-singleton: 2.2.3(@types/react@19.0.2)(react@19.0.0) 2076 | tslib: 2.8.1 2077 | use-callback-ref: 1.3.3(@types/react@19.0.2)(react@19.0.0) 2078 | use-sidecar: 1.1.3(@types/react@19.0.2)(react@19.0.0) 2079 | optionalDependencies: 2080 | '@types/react': 19.0.2 2081 | 2082 | react-style-singleton@2.2.3(@types/react@19.0.2)(react@19.0.0): 2083 | dependencies: 2084 | get-nonce: 1.0.1 2085 | react: 19.0.0 2086 | tslib: 2.8.1 2087 | optionalDependencies: 2088 | '@types/react': 19.0.2 2089 | 2090 | react@19.0.0: {} 2091 | 2092 | read-cache@1.0.0: 2093 | dependencies: 2094 | pify: 2.3.0 2095 | 2096 | readdirp@3.6.0: 2097 | dependencies: 2098 | picomatch: 2.3.1 2099 | 2100 | resolve@1.22.10: 2101 | dependencies: 2102 | is-core-module: 2.16.1 2103 | path-parse: 1.0.7 2104 | supports-preserve-symlinks-flag: 1.0.0 2105 | 2106 | reusify@1.0.4: {} 2107 | 2108 | run-parallel@1.2.0: 2109 | dependencies: 2110 | queue-microtask: 1.2.3 2111 | 2112 | scheduler@0.25.0: {} 2113 | 2114 | semver@7.7.3: 2115 | optional: true 2116 | 2117 | sharp@0.33.5: 2118 | dependencies: 2119 | color: 4.2.3 2120 | detect-libc: 2.1.2 2121 | semver: 7.7.3 2122 | optionalDependencies: 2123 | '@img/sharp-darwin-arm64': 0.33.5 2124 | '@img/sharp-darwin-x64': 0.33.5 2125 | '@img/sharp-libvips-darwin-arm64': 1.0.4 2126 | '@img/sharp-libvips-darwin-x64': 1.0.4 2127 | '@img/sharp-libvips-linux-arm': 1.0.5 2128 | '@img/sharp-libvips-linux-arm64': 1.0.4 2129 | '@img/sharp-libvips-linux-s390x': 1.0.4 2130 | '@img/sharp-libvips-linux-x64': 1.0.4 2131 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 2132 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4 2133 | '@img/sharp-linux-arm': 0.33.5 2134 | '@img/sharp-linux-arm64': 0.33.5 2135 | '@img/sharp-linux-s390x': 0.33.5 2136 | '@img/sharp-linux-x64': 0.33.5 2137 | '@img/sharp-linuxmusl-arm64': 0.33.5 2138 | '@img/sharp-linuxmusl-x64': 0.33.5 2139 | '@img/sharp-wasm32': 0.33.5 2140 | '@img/sharp-win32-ia32': 0.33.5 2141 | '@img/sharp-win32-x64': 0.33.5 2142 | optional: true 2143 | 2144 | shebang-command@2.0.0: 2145 | dependencies: 2146 | shebang-regex: 3.0.0 2147 | 2148 | shebang-regex@3.0.0: {} 2149 | 2150 | signal-exit@4.1.0: {} 2151 | 2152 | simple-swizzle@0.2.4: 2153 | dependencies: 2154 | is-arrayish: 0.3.4 2155 | optional: true 2156 | 2157 | source-map-js@1.2.1: {} 2158 | 2159 | streamsearch@1.1.0: {} 2160 | 2161 | string-width@4.2.3: 2162 | dependencies: 2163 | emoji-regex: 8.0.0 2164 | is-fullwidth-code-point: 3.0.0 2165 | strip-ansi: 6.0.1 2166 | 2167 | string-width@5.1.2: 2168 | dependencies: 2169 | eastasianwidth: 0.2.0 2170 | emoji-regex: 9.2.2 2171 | strip-ansi: 7.1.0 2172 | 2173 | strip-ansi@6.0.1: 2174 | dependencies: 2175 | ansi-regex: 5.0.1 2176 | 2177 | strip-ansi@7.1.0: 2178 | dependencies: 2179 | ansi-regex: 6.1.0 2180 | 2181 | styled-jsx@5.1.6(react@19.0.0): 2182 | dependencies: 2183 | client-only: 0.0.1 2184 | react: 19.0.0 2185 | 2186 | sucrase@3.35.0: 2187 | dependencies: 2188 | '@jridgewell/gen-mapping': 0.3.8 2189 | commander: 4.1.1 2190 | glob: 10.4.5 2191 | lines-and-columns: 1.2.4 2192 | mz: 2.7.0 2193 | pirates: 4.0.6 2194 | ts-interface-checker: 0.1.13 2195 | 2196 | supports-preserve-symlinks-flag@1.0.0: {} 2197 | 2198 | tailwind-merge@2.5.5: {} 2199 | 2200 | tailwindcss-animate@1.0.7(tailwindcss@3.4.17): 2201 | dependencies: 2202 | tailwindcss: 3.4.17 2203 | 2204 | tailwindcss@3.4.17: 2205 | dependencies: 2206 | '@alloc/quick-lru': 5.2.0 2207 | arg: 5.0.2 2208 | chokidar: 3.6.0 2209 | didyoumean: 1.2.2 2210 | dlv: 1.1.3 2211 | fast-glob: 3.3.2 2212 | glob-parent: 6.0.2 2213 | is-glob: 4.0.3 2214 | jiti: 1.21.7 2215 | lilconfig: 3.1.3 2216 | micromatch: 4.0.8 2217 | normalize-path: 3.0.0 2218 | object-hash: 3.0.0 2219 | picocolors: 1.1.1 2220 | postcss: 8.4.49 2221 | postcss-import: 15.1.0(postcss@8.4.49) 2222 | postcss-js: 4.0.1(postcss@8.4.49) 2223 | postcss-load-config: 4.0.2(postcss@8.4.49) 2224 | postcss-nested: 6.2.0(postcss@8.4.49) 2225 | postcss-selector-parser: 6.1.2 2226 | resolve: 1.22.10 2227 | sucrase: 3.35.0 2228 | transitivePeerDependencies: 2229 | - ts-node 2230 | 2231 | thenify-all@1.6.0: 2232 | dependencies: 2233 | thenify: 3.3.1 2234 | 2235 | thenify@3.3.1: 2236 | dependencies: 2237 | any-promise: 1.3.0 2238 | 2239 | to-regex-range@5.0.1: 2240 | dependencies: 2241 | is-number: 7.0.0 2242 | 2243 | ts-interface-checker@0.1.13: {} 2244 | 2245 | tslib@2.8.1: {} 2246 | 2247 | typescript@5.7.2: {} 2248 | 2249 | undici-types@6.20.0: {} 2250 | 2251 | update-browserslist-db@1.1.1(browserslist@4.24.3): 2252 | dependencies: 2253 | browserslist: 4.24.3 2254 | escalade: 3.2.0 2255 | picocolors: 1.1.1 2256 | 2257 | use-callback-ref@1.3.3(@types/react@19.0.2)(react@19.0.0): 2258 | dependencies: 2259 | react: 19.0.0 2260 | tslib: 2.8.1 2261 | optionalDependencies: 2262 | '@types/react': 19.0.2 2263 | 2264 | use-sidecar@1.1.3(@types/react@19.0.2)(react@19.0.0): 2265 | dependencies: 2266 | detect-node-es: 1.1.0 2267 | react: 19.0.0 2268 | tslib: 2.8.1 2269 | optionalDependencies: 2270 | '@types/react': 19.0.2 2271 | 2272 | util-deprecate@1.0.2: {} 2273 | 2274 | which@2.0.2: 2275 | dependencies: 2276 | isexe: 2.0.0 2277 | 2278 | wrap-ansi@7.0.0: 2279 | dependencies: 2280 | ansi-styles: 4.3.0 2281 | string-width: 4.2.3 2282 | strip-ansi: 6.0.1 2283 | 2284 | wrap-ansi@8.1.0: 2285 | dependencies: 2286 | ansi-styles: 6.2.1 2287 | string-width: 5.1.2 2288 | strip-ansi: 7.1.0 2289 | 2290 | yaml@2.6.1: {} 2291 | --------------------------------------------------------------------------------