@dilipod/ui 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/utils.ts","../src/components/button.tsx","../src/components/sheet.tsx","../src/components/logo.tsx","../src/components/badge.tsx","../src/components/card.tsx","../src/components/progress.tsx","../src/components/icon-box.tsx","../src/components/tag.tsx","../src/components/stat.tsx","../src/components/input.tsx","../../../node_modules/@radix-ui/react-label/node_modules/@radix-ui/react-primitive/src/primitive.tsx","../../../node_modules/@radix-ui/react-label/src/label.tsx","../src/components/label.tsx","../src/components/textarea.tsx","../../../node_modules/@radix-ui/react-context/src/create-context.tsx","../../../node_modules/@radix-ui/react-compose-refs/src/compose-refs.tsx","../../../node_modules/@radix-ui/react-collection/src/collection-legacy.tsx","../../../node_modules/@radix-ui/primitive/src/primitive.tsx","../../../node_modules/@radix-ui/react-use-layout-effect/src/use-layout-effect.tsx","../../../node_modules/@radix-ui/react-use-controllable-state/src/use-controllable-state.tsx","../../../node_modules/@radix-ui/react-primitive/src/primitive.tsx","../../../node_modules/@radix-ui/react-presence/src/use-state-machine.tsx","../../../node_modules/@radix-ui/react-presence/src/presence.tsx","../../../node_modules/@radix-ui/react-id/src/id.tsx","../../../node_modules/@radix-ui/react-collapsible/src/collapsible.tsx","../../../node_modules/@radix-ui/react-direction/src/direction.tsx","../../../node_modules/@radix-ui/react-accordion/src/accordion.tsx","../src/components/accordion.tsx","../../../node_modules/@radix-ui/react-separator/node_modules/@radix-ui/react-primitive/src/primitive.tsx","../../../node_modules/@radix-ui/react-separator/src/separator.tsx","../src/components/separator.tsx","../../../node_modules/@radix-ui/react-use-callback-ref/src/use-callback-ref.tsx","../../../node_modules/@radix-ui/react-use-escape-keydown/src/use-escape-keydown.tsx","../../../node_modules/@radix-ui/react-dismissable-layer/src/dismissable-layer.tsx","../../../node_modules/@radix-ui/react-use-previous/src/use-previous.tsx","../../../node_modules/@radix-ui/react-visually-hidden/src/visually-hidden.tsx","../../../node_modules/@radix-ui/react-navigation-menu/src/navigation-menu.tsx","../src/components/navigation-menu.tsx"],"names":["React","React2","jsx","cva","jsxs","React3","React4","React5","React6","React7","React8","React9","Slot","Node","React10","React11","Root","Label","React12","React13","createContext","React14","useContext","createScope","nextScopes","React15","createCollectionScope","createSlot","useCollection","useLayoutEffect","React17","React18","value","NODES","Primitive","React19","React20","React24","node","React21","React25","Trigger","Content","React26","getState","open","TRIGGER_NAME","CONTENT_NAME","Accordion","Root2","AccordionItem","React28","AccordionTrigger","Trigger2","AccordionContent","Content2","React29","NAME","React30","Separator","React31","React32","React33","React34","handleAndDispatchPointerDownOutsideEvent","React35","React36","Collection","ITEM_NAME","event","ReactDOM","props","List","Item","Link","NavigationMenu","React38","NavigationMenuViewport","NavigationMenuList","NavigationMenuItem","NavigationMenuTrigger","NavigationMenuContent","NavigationMenuLink","NavigationMenuIndicator"],"mappings":"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","file":"index.mjs","sourcesContent":["import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","'use client'\n\nimport * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-full text-sm font-semibold ring-offset-background transition-all duration-200 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 cursor-pointer',\n {\n variants: {\n variant: {\n default:\n 'bg-[var(--black)] text-white border-2 border-[var(--black)] hover:bg-gray-800 hover:border-gray-800 active:scale-95',\n primary:\n 'bg-[var(--cyan)] text-[var(--black)] border-2 border-[var(--cyan)] hover:bg-[var(--cyan-dark)] hover:border-[var(--cyan-dark)] active:scale-95',\n destructive:\n 'bg-red-600 text-white border-2 border-red-600 hover:bg-red-700 hover:border-red-700 active:scale-95',\n outline:\n 'border-2 border-gray-300 bg-transparent hover:bg-gray-100 active:scale-95',\n secondary:\n 'bg-gray-100 text-[var(--black)] border-2 border-gray-100 hover:bg-gray-200 hover:border-gray-200 active:scale-95',\n ghost:\n 'hover:bg-gray-100 border-2 border-transparent',\n link:\n 'text-[var(--cyan)] underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-10 px-6 py-2',\n sm: 'h-9 px-4 text-xs',\n lg: 'h-12 px-8 text-base',\n icon: 'h-10 w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button'\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n )\n }\n)\nButton.displayName = 'Button'\n\nexport { Button, buttonVariants }\n","// @ts-nocheck\n'use client'\n\nimport * as React from 'react'\nimport * as SheetPrimitive from '@radix-ui/react-dialog'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { X } from '@phosphor-icons/react'\n\nimport { cn } from '../lib/utils'\n\nconst Sheet = SheetPrimitive.Root\n\nconst SheetTrigger = SheetPrimitive.Trigger\n\nconst SheetClose = SheetPrimitive.Close\n\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n // @ts-ignore - Radix Dialog Overlay accepts className at runtime\n <SheetPrimitive.Overlay\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n 'fixed z-50 gap-4 bg-white p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\n {\n variants: {\n side: {\n top: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\n bottom:\n 'inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\n left: 'inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\n right:\n 'inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n }\n)\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = 'right', className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n {children}\n {/* @ts-expect-error - Radix Dialog Close accepts className and children at runtime */}\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[var(--cyan)] focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-gray-100\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n))\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n 'flex flex-col space-y-2 text-center sm:text-left',\n className\n )}\n {...props}\n />\n)\nSheetHeader.displayName = 'SheetHeader'\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n 'flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2',\n className\n )}\n {...props}\n />\n)\nSheetFooter.displayName = 'SheetFooter'\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n // @ts-ignore - Radix Dialog Title accepts className at runtime\n <SheetPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold text-[var(--black)]', className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n // @ts-ignore - Radix Dialog Description accepts className at runtime\n <SheetPrimitive.Description\n ref={ref}\n className={cn('text-sm text-gray-500', className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface LogoProps {\n variant?: 'dark' | 'light' // dark = black text, light = white text\n size?: 'sm' | 'md' | 'lg'\n href?: string | null // defaults to '/', pass null to disable link\n className?: string\n}\n\nconst sizes = {\n sm: { width: 100, height: 30 },\n md: { width: 130, height: 40 },\n lg: { width: 160, height: 50 },\n}\n\n/**\n * Logo component that renders the Dilipod logo as inline SVG\n * \n * @param variant - 'dark' for light backgrounds (black text), 'light' for dark backgrounds (white text)\n * @param size - 'sm' | 'md' | 'lg'\n * @param href - Optional link href (wraps logo in anchor tag)\n * @param className - Additional CSS classes\n */\nexport function Logo({\n variant = 'dark',\n size = 'md',\n href = '/',\n className,\n}: LogoProps) {\n const s = sizes[size]\n const textColor = variant === 'light' ? 'white' : '#0A0A0A'\n const iconTextColor = variant === 'light' ? 'white' : '#0A0A0A'\n\n const svgContent = (\n <svg\n width={s.width}\n height={s.height}\n viewBox=\"0 0 130 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <defs>\n <linearGradient id={`gradient-${variant}`} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n <stop offset=\"0%\" stopColor=\"#007A70\" />\n <stop offset=\"50%\" stopColor=\"#00B8A9\" />\n <stop offset=\"100%\" stopColor=\"#00E5D4\" />\n </linearGradient>\n </defs>\n {/* Icon */}\n <rect width=\"40\" height=\"40\" rx=\"4\" fill={`url(#gradient-${variant})`} />\n <text\n x=\"20\"\n y=\"29\"\n textAnchor=\"middle\"\n fontFamily=\"system-ui, -apple-system, sans-serif\"\n fontSize=\"24\"\n fontWeight=\"700\"\n fill={iconTextColor}\n >\n D\n </text>\n {/* Text */}\n <text\n x=\"52\"\n y=\"28\"\n fontFamily=\"system-ui, -apple-system, sans-serif\"\n fontSize=\"20\"\n fontWeight=\"700\"\n letterSpacing=\"1\"\n fill={textColor}\n >\n Dilipod\n </text>\n </svg>\n )\n\n if (href !== null) {\n return (\n <a href={href} aria-label=\"Go to homepage\" className=\"inline-flex items-center group\">\n {svgContent}\n </a>\n )\n }\n\n return <div className=\"inline-flex items-center\">{svgContent}</div>\n}\n\nexport type { LogoProps }\n","'use client'\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils'\n\nconst badgeVariants = cva(\n 'inline-flex items-center gap-1.5 rounded-full font-semibold transition-colors',\n {\n variants: {\n variant: {\n default: 'bg-gray-100 text-gray-700',\n primary: 'bg-[var(--cyan)]/10 text-[var(--cyan)]',\n success: 'bg-green-100 text-green-700',\n warning: 'bg-amber-100 text-amber-700',\n error: 'bg-red-100 text-red-700',\n outline: 'border border-gray-200 text-gray-600 bg-white',\n },\n size: {\n sm: 'px-2 py-0.5 text-[10px]',\n default: 'px-2.5 py-1 text-xs',\n lg: 'px-3 py-1.5 text-sm',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {\n /** Show animated pulse dot */\n pulse?: boolean\n /** Custom pulse color (overrides variant-based color) */\n pulseColor?: 'default' | 'primary' | 'success' | 'warning' | 'error'\n}\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, size, pulse, pulseColor: pulseColorProp, children, ...props }, ref) => {\n const pulseColorMap = {\n default: 'bg-gray-500',\n primary: 'bg-[var(--cyan)]',\n success: 'bg-green-500',\n warning: 'bg-amber-500',\n error: 'bg-red-500',\n outline: 'bg-gray-400',\n }\n \n // Use custom pulseColor if provided, otherwise derive from variant\n const pulseColor = pulseColorProp \n ? pulseColorMap[pulseColorProp] \n : pulseColorMap[variant || 'default']\n\n return (\n <span\n ref={ref}\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n >\n {pulse && (\n <span className=\"relative flex h-1.5 w-1.5\">\n <span\n className={cn(\n 'absolute inline-flex h-full w-full animate-ping rounded-full opacity-75',\n pulseColor\n )}\n />\n <span\n className={cn(\n 'relative inline-flex h-1.5 w-1.5 rounded-full',\n pulseColor\n )}\n />\n </span>\n )}\n {children}\n </span>\n )\n }\n)\nBadge.displayName = 'Badge'\n\nexport { Badge, badgeVariants }\n","'use client'\n\nimport * as React from 'react'\nimport { cn } from '../lib/utils'\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'rounded-sm border border-gray-200 bg-white shadow-sm',\n className\n )}\n {...props}\n />\n))\nCard.displayName = 'Card'\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col space-y-1.5 p-6', className)}\n {...props}\n />\n))\nCardHeader.displayName = 'CardHeader'\n\nconst CardTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n 'text-lg font-bold leading-none tracking-tight text-[var(--black)]',\n className\n )}\n {...props}\n />\n))\nCardTitle.displayName = 'CardTitle'\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm text-gray-500', className)}\n {...props}\n />\n))\nCardDescription.displayName = 'CardDescription'\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n))\nCardContent.displayName = 'CardContent'\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center p-6 pt-0', className)}\n {...props}\n />\n))\nCardFooter.displayName = 'CardFooter'\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n","'use client'\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils'\n\nconst progressVariants = cva('h-full rounded-full transition-all duration-300', {\n variants: {\n variant: {\n default: 'bg-[var(--cyan)]',\n success: 'bg-green-500',\n warning: 'bg-amber-500',\n error: 'bg-red-500',\n gradient: 'bg-gradient-to-r from-[var(--cyan-dark)] to-[var(--cyan)]',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n})\n\nexport interface ProgressProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof progressVariants> {\n /** Progress value (0-100) */\n value: number\n /** Show percentage label */\n showLabel?: boolean\n /** Custom label text (defaults to \"Progress\") */\n label?: string\n /** Size of the progress bar */\n size?: 'sm' | 'default' | 'lg'\n}\n\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value, variant, showLabel, label = 'Progress', size = 'default', ...props }, ref) => {\n const clampedValue = Math.min(100, Math.max(0, value))\n \n const heightClass = {\n sm: 'h-1',\n default: 'h-1.5',\n lg: 'h-2.5',\n }[size]\n\n return (\n <div className={cn('w-full', className)} ref={ref} {...props}>\n {showLabel && (\n <div className=\"flex justify-between text-xs mb-1\">\n <span className=\"text-gray-500\">{label}</span>\n <span className=\"font-semibold text-[var(--black)]\">{clampedValue}%</span>\n </div>\n )}\n <div\n className={cn(\n 'w-full bg-gray-200 rounded-full overflow-hidden',\n heightClass\n )}\n >\n <div\n className={cn(progressVariants({ variant }))}\n style={{ width: `${clampedValue}%` }}\n />\n </div>\n </div>\n )\n }\n)\nProgress.displayName = 'Progress'\n\nexport { Progress, progressVariants }\n","'use client'\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils'\n\nconst iconBoxVariants = cva(\n 'inline-flex items-center justify-center shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-[var(--black)] text-white',\n primary: 'bg-[var(--cyan)] text-[var(--black)]',\n outline: 'border-2 border-gray-200 bg-white text-[var(--black)]',\n ghost: 'bg-gray-100 text-gray-600',\n gradient: 'bg-gradient-to-br from-[var(--black)] to-[var(--cyan-dark)] text-white',\n },\n size: {\n sm: 'w-8 h-8',\n default: 'w-10 h-10',\n lg: 'w-12 h-12',\n xl: 'w-14 h-14',\n },\n rounded: {\n sm: 'rounded-sm',\n default: 'rounded-md',\n full: 'rounded-full',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n rounded: 'sm',\n },\n }\n)\n\nexport interface IconBoxProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof iconBoxVariants> {}\n\nconst IconBox = React.forwardRef<HTMLDivElement, IconBoxProps>(\n ({ className, variant, size, rounded, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(iconBoxVariants({ variant, size, rounded }), className)}\n {...props}\n >\n {children}\n </div>\n )\n }\n)\nIconBox.displayName = 'IconBox'\n\nexport { IconBox, iconBoxVariants }\n","'use client'\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils'\n\nconst tagVariants = cva(\n 'inline-flex items-center gap-2 font-medium transition-colors cursor-pointer',\n {\n variants: {\n variant: {\n default: 'bg-gray-100 text-[var(--black)]',\n primary: 'bg-[var(--cyan)]/10 text-[var(--cyan)]',\n outline: 'border border-gray-200 bg-white text-gray-700 hover:border-[var(--black)] hover:text-[var(--black)]',\n dark: 'bg-[var(--black)] text-white',\n },\n size: {\n sm: 'px-2 py-1 text-[10px] rounded',\n default: 'px-3 py-1.5 text-xs rounded-full',\n lg: 'px-4 py-2 text-sm rounded-full',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n)\n\nexport interface TagProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof tagVariants> {\n /** Optional icon to display before text */\n icon?: React.ReactNode\n}\n\nconst Tag = React.forwardRef<HTMLSpanElement, TagProps>(\n ({ className, variant, size, icon, children, ...props }, ref) => {\n return (\n <span\n ref={ref}\n className={cn(tagVariants({ variant, size }), className)}\n {...props}\n >\n {icon && <span className=\"shrink-0\">{icon}</span>}\n {children}\n </span>\n )\n }\n)\nTag.displayName = 'Tag'\n\nexport { Tag, tagVariants }\n","'use client'\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils'\n\nconst statVariants = cva('', {\n variants: {\n variant: {\n default: '',\n card: 'p-3 rounded-sm bg-gray-50 text-center',\n },\n align: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n },\n },\n defaultVariants: {\n variant: 'default',\n align: 'left',\n },\n})\n\nconst valueVariants = cva('font-bold', {\n variants: {\n size: {\n sm: 'text-lg',\n default: 'text-2xl',\n lg: 'text-4xl md:text-5xl',\n xl: 'text-5xl md:text-6xl',\n },\n color: {\n default: 'text-[var(--black)]',\n primary: 'text-[var(--cyan)]',\n white: 'text-white',\n gradient: 'text-gradient',\n },\n },\n defaultVariants: {\n size: 'default',\n color: 'default',\n },\n})\n\nexport interface StatProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof statVariants> {\n /** The main value to display */\n value: string | number\n /** Label below the value */\n label?: string\n /** Optional suffix after value (e.g., \"faster\", \"cheaper\") */\n suffix?: string\n /** Size of the value text */\n valueSize?: 'sm' | 'default' | 'lg' | 'xl'\n /** Color of the value */\n valueColor?: 'default' | 'primary' | 'white' | 'gradient'\n}\n\nconst Stat = React.forwardRef<HTMLDivElement, StatProps>(\n (\n {\n className,\n variant,\n align,\n value,\n label,\n suffix,\n valueSize = 'default',\n valueColor = 'default',\n ...props\n },\n ref\n ) => {\n const justifyClass = {\n left: 'justify-start',\n center: 'justify-center',\n right: 'justify-end',\n }[align || 'left']\n\n return (\n <div\n ref={ref}\n className={cn(statVariants({ variant, align }), className)}\n {...props}\n >\n <div className={cn('flex flex-wrap lg:flex-nowrap items-baseline gap-x-2', justifyClass)}>\n <span className={cn(valueVariants({ size: valueSize, color: valueColor }))}>\n {value}\n </span>\n {suffix && (\n <span className={cn(\n \"font-medium text-[var(--cyan)] shrink-0\",\n valueSize === 'lg' || valueSize === 'xl' ? 'text-lg md:text-xl' : 'text-base md:text-lg'\n )}>\n {suffix}\n </span>\n )}\n </div>\n {label && (\n <div className={cn(\n \"font-medium mt-1\",\n valueColor === 'white' ? 'text-white/70 text-sm md:text-base' : 'text-gray-500 text-xs md:text-sm'\n )}>\n {label}\n </div>\n )}\n </div>\n )\n }\n)\nStat.displayName = 'Stat'\n\nexport { Stat, statVariants, valueVariants }\n","'use client'\n\nimport * as React from 'react'\nimport { cn } from '../lib/utils'\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n 'flex h-10 w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-base text-[var(--black)] ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-[var(--black)] placeholder:text-gray-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--cyan)] focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm transition-colors',\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = 'Input'\n\nexport { Input }\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createSlot } from '@radix-ui/react-slot';\n\nconst NODES = [\n 'a',\n 'button',\n 'div',\n 'form',\n 'h2',\n 'h3',\n 'img',\n 'input',\n 'label',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'select',\n 'span',\n 'svg',\n 'ul',\n] as const;\n\ntype Primitives = { [E in (typeof NODES)[number]]: PrimitiveForwardRefComponent<E> };\ntype PrimitivePropsWithRef<E extends React.ElementType> = React.ComponentPropsWithRef<E> & {\n asChild?: boolean;\n};\n\ninterface PrimitiveForwardRefComponent<E extends React.ElementType>\n extends React.ForwardRefExoticComponent<PrimitivePropsWithRef<E>> {}\n\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/\n\nconst Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props: PrimitivePropsWithRef<typeof node>, forwardedRef: any) => {\n const { asChild, ...primitiveProps } = props;\n const Comp: any = asChild ? Slot : node;\n\n if (typeof window !== 'undefined') {\n (window as any)[Symbol.for('radix-ui')] = true;\n }\n\n return <Comp {...primitiveProps} ref={forwardedRef} />;\n });\n\n Node.displayName = `Primitive.${node}`;\n\n return { ...primitive, [node]: Node };\n}, {} as Primitives);\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not necessary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click 👎\n * target.dispatchEvent(new Event(‘click’))\n *\n * dispatching a custom type within a non-discrete event 👎\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}\n *\n * dispatching a custom type within a `discrete` event 👍\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */\n\nfunction dispatchDiscreteCustomEvent<E extends CustomEvent>(target: E['target'], event: E) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Primitive;\n\nexport {\n Primitive,\n //\n Root,\n //\n dispatchDiscreteCustomEvent,\n};\nexport type { PrimitivePropsWithRef };\n","import * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * Label\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAME = 'Label';\n\ntype LabelElement = React.ComponentRef<typeof Primitive.label>;\ntype PrimitiveLabelProps = React.ComponentPropsWithoutRef<typeof Primitive.label>;\ninterface LabelProps extends PrimitiveLabelProps {}\n\nconst Label = React.forwardRef<LabelElement, LabelProps>((props, forwardedRef) => {\n return (\n <Primitive.label\n {...props}\n ref={forwardedRef}\n onMouseDown={(event) => {\n // only prevent text selection if clicking inside the label itself\n const target = event.target as HTMLElement;\n if (target.closest('button, input, select, textarea')) return;\n\n props.onMouseDown?.(event);\n // prevent text selection when double clicking label\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }}\n />\n );\n});\n\nLabel.displayName = NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Label;\n\nexport {\n Label,\n //\n Root,\n};\nexport type { LabelProps };\n","'use client'\n\nimport * as React from 'react'\nimport * as LabelPrimitive from '@radix-ui/react-label'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\n\nconst labelVariants = cva(\n 'text-sm font-medium leading-none text-[var(--black)] peer-disabled:cursor-not-allowed peer-disabled:opacity-70'\n)\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n))\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport type { LabelProps } from '@radix-ui/react-label'\nexport { Label }\n","'use client'\n\nimport * as React from 'react'\nimport { cn } from '../lib/utils'\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n 'flex min-h-[80px] w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-base text-[var(--black)] ring-offset-background placeholder:text-gray-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--cyan)] focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm transition-colors',\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nTextarea.displayName = 'Textarea'\n\nexport { Textarea }\n","import * as React from 'react';\n\nfunction createContext<ContextValueType extends object | null>(\n rootComponentName: string,\n defaultContext?: ContextValueType\n) {\n const Context = React.createContext<ContextValueType | undefined>(defaultContext);\n\n const Provider: React.FC<ContextValueType & { children: React.ReactNode }> = (props) => {\n const { children, ...context } = props;\n // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = React.useMemo(() => context, Object.values(context)) as ContextValueType;\n return <Context.Provider value={value}>{children}</Context.Provider>;\n };\n\n Provider.displayName = rootComponentName + 'Provider';\n\n function useContext(consumerName: string) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext;\n // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n\n return [Provider, useContext] as const;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * createContextScope\n * -----------------------------------------------------------------------------------------------*/\n\ntype Scope<C = any> = { [scopeName: string]: React.Context<C>[] } | undefined;\ntype ScopeHook = (scope: Scope) => { [__scopeProp: string]: Scope };\ninterface CreateScope {\n scopeName: string;\n (): ScopeHook;\n}\n\nfunction createContextScope(scopeName: string, createContextScopeDeps: CreateScope[] = []) {\n let defaultContexts: any[] = [];\n\n /* -----------------------------------------------------------------------------------------------\n * createContext\n * ---------------------------------------------------------------------------------------------*/\n\n function createContext<ContextValueType extends object | null>(\n rootComponentName: string,\n defaultContext?: ContextValueType\n ) {\n const BaseContext = React.createContext<ContextValueType | undefined>(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n\n const Provider: React.FC<\n ContextValueType & { scope: Scope<ContextValueType>; children: React.ReactNode }\n > = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = React.useMemo(() => context, Object.values(context)) as ContextValueType;\n return <Context.Provider value={value}>{children}</Context.Provider>;\n };\n\n Provider.displayName = rootComponentName + 'Provider';\n\n function useContext(consumerName: string, scope: Scope<ContextValueType | undefined>) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext;\n // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n\n return [Provider, useContext] as const;\n }\n\n /* -----------------------------------------------------------------------------------------------\n * createScope\n * ---------------------------------------------------------------------------------------------*/\n\n const createScope: CreateScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope: Scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n\n createScope.scopeName = scopeName;\n return [createContext, composeContextScopes(createScope, ...createContextScopeDeps)] as const;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * composeContextScopes\n * -----------------------------------------------------------------------------------------------*/\n\nfunction composeContextScopes(...scopes: CreateScope[]) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n\n const createScope: CreateScope = () => {\n const scopeHooks = scopes.map((createScope) => ({\n useScope: createScope(),\n scopeName: createScope.scopeName,\n }));\n\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes, { useScope, scopeName }) => {\n // We are calling a hook inside a callback which React warns against to avoid inconsistent\n // renders, however, scoping doesn't have render side effects so we ignore the rule.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes, ...currentScope };\n }, {});\n\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport { createContext, createContextScope };\nexport type { CreateScope, Scope };\n","import * as React from 'react';\n\ntype PossibleRef<T> = React.Ref<T> | undefined;\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */\nfunction setRef<T>(ref: PossibleRef<T>, value: T) {\n if (typeof ref === 'function') {\n return ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */\nfunction composeRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == 'function') {\n hasCleanup = true;\n }\n return cleanup;\n });\n\n // React <19 will log an error to the console if a callback ref returns a\n // value. We don't use ref cleanups internally so this will only happen if a\n // user's ref callback returns a value, which we only expect if they are\n // using the cleanup functionality added in React 19.\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == 'function') {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\n\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */\nfunction useComposedRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback(composeRefs(...refs), refs);\n}\n\nexport { composeRefs, useComposedRefs };\n","import React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createSlot, type Slot } from '@radix-ui/react-slot';\n\ntype SlotProps = React.ComponentPropsWithoutRef<typeof Slot>;\ntype CollectionElement = HTMLElement;\ninterface CollectionProps extends SlotProps {\n scope: any;\n}\n\n// We have resorted to returning slots directly rather than exposing primitives that can then\n// be slotted like `<CollectionItem as={Slot}>…</CollectionItem>`.\n// This is because we encountered issues with generic types that cannot be statically analysed\n// due to creating them dynamically via createCollection.\n\nfunction createCollection<ItemElement extends HTMLElement, ItemData = {}>(name: string) {\n /* -----------------------------------------------------------------------------------------------\n * CollectionProvider\n * ---------------------------------------------------------------------------------------------*/\n\n const PROVIDER_NAME = name + 'CollectionProvider';\n const [createCollectionContext, createCollectionScope] = createContextScope(PROVIDER_NAME);\n\n type ContextValue = {\n collectionRef: React.RefObject<CollectionElement | null>;\n itemMap: Map<\n React.RefObject<ItemElement | null>,\n { ref: React.RefObject<ItemElement | null> } & ItemData\n >;\n };\n\n const [CollectionProviderImpl, useCollectionContext] = createCollectionContext<ContextValue>(\n PROVIDER_NAME,\n { collectionRef: { current: null }, itemMap: new Map() }\n );\n\n const CollectionProvider: React.FC<{ children?: React.ReactNode; scope: any }> = (props) => {\n const { scope, children } = props;\n const ref = React.useRef<CollectionElement>(null);\n const itemMap = React.useRef<ContextValue['itemMap']>(new Map()).current;\n return (\n <CollectionProviderImpl scope={scope} itemMap={itemMap} collectionRef={ref}>\n {children}\n </CollectionProviderImpl>\n );\n };\n\n CollectionProvider.displayName = PROVIDER_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionSlot\n * ---------------------------------------------------------------------------------------------*/\n\n const COLLECTION_SLOT_NAME = name + 'CollectionSlot';\n\n const CollectionSlotImpl = createSlot(COLLECTION_SLOT_NAME);\n const CollectionSlot = React.forwardRef<CollectionElement, CollectionProps>(\n (props, forwardedRef) => {\n const { scope, children } = props;\n const context = useCollectionContext(COLLECTION_SLOT_NAME, scope);\n const composedRefs = useComposedRefs(forwardedRef, context.collectionRef);\n return <CollectionSlotImpl ref={composedRefs}>{children}</CollectionSlotImpl>;\n }\n );\n\n CollectionSlot.displayName = COLLECTION_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * CollectionItem\n * ---------------------------------------------------------------------------------------------*/\n\n const ITEM_SLOT_NAME = name + 'CollectionItemSlot';\n const ITEM_DATA_ATTR = 'data-radix-collection-item';\n\n type CollectionItemSlotProps = ItemData & {\n children: React.ReactNode;\n scope: any;\n };\n\n const CollectionItemSlotImpl = createSlot(ITEM_SLOT_NAME);\n const CollectionItemSlot = React.forwardRef<ItemElement, CollectionItemSlotProps>(\n (props, forwardedRef) => {\n const { scope, children, ...itemData } = props;\n const ref = React.useRef<ItemElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const context = useCollectionContext(ITEM_SLOT_NAME, scope);\n\n React.useEffect(() => {\n context.itemMap.set(ref, { ref, ...(itemData as unknown as ItemData) });\n return () => void context.itemMap.delete(ref);\n });\n\n return (\n <CollectionItemSlotImpl {...{ [ITEM_DATA_ATTR]: '' }} ref={composedRefs}>\n {children}\n </CollectionItemSlotImpl>\n );\n }\n );\n\n CollectionItemSlot.displayName = ITEM_SLOT_NAME;\n\n /* -----------------------------------------------------------------------------------------------\n * useCollection\n * ---------------------------------------------------------------------------------------------*/\n\n function useCollection(scope: any) {\n const context = useCollectionContext(name + 'CollectionConsumer', scope);\n\n const getItems = React.useCallback(() => {\n const collectionNode = context.collectionRef.current;\n if (!collectionNode) return [];\n const orderedNodes = Array.from(collectionNode.querySelectorAll(`[${ITEM_DATA_ATTR}]`));\n const items = Array.from(context.itemMap.values());\n const orderedItems = items.sort(\n (a, b) => orderedNodes.indexOf(a.ref.current!) - orderedNodes.indexOf(b.ref.current!)\n );\n return orderedItems;\n }, [context.collectionRef, context.itemMap]);\n\n return getItems;\n }\n\n return [\n { Provider: CollectionProvider, Slot: CollectionSlot, ItemSlot: CollectionItemSlot },\n useCollection,\n createCollectionScope,\n ] as const;\n}\n\nexport { createCollection };\nexport type { CollectionProps };\n","/* eslint-disable no-restricted-properties */\n\n/* eslint-disable no-restricted-globals */\nexport const canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n/* eslint-enable no-restricted-globals */\n\nexport function composeEventHandlers<E extends { defaultPrevented: boolean }>(\n originalEventHandler?: (event: E) => void,\n ourEventHandler?: (event: E) => void,\n { checkForDefaultPrevented = true } = {}\n) {\n return function handleEvent(event: E) {\n originalEventHandler?.(event);\n\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\n\nexport function getOwnerWindow(element: Node | null | undefined) {\n if (!canUseDOM) {\n throw new Error('Cannot access window outside of the DOM');\n }\n // eslint-disable-next-line no-restricted-globals\n return element?.ownerDocument?.defaultView ?? window;\n}\n\nexport function getOwnerDocument(element: Node | null | undefined) {\n if (!canUseDOM) {\n throw new Error('Cannot access document outside of the DOM');\n }\n // eslint-disable-next-line no-restricted-globals\n return element?.ownerDocument ?? document;\n}\n\n/**\n * Lifted from https://github.com/ariakit/ariakit/blob/main/packages/ariakit-core/src/utils/dom.ts#L37\n * MIT License, Copyright (c) AriaKit.\n */\nexport function getActiveElement(\n node: Node | null | undefined,\n activeDescendant = false\n): HTMLElement | null {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n // `activeElement` might be an empty object if we're interacting with elements\n // inside of an iframe.\n return null;\n }\n\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n\n if (activeDescendant) {\n const id = activeElement.getAttribute('aria-activedescendant');\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n\n return activeElement as HTMLElement | null;\n}\n\nexport function isFrame(element: Element): element is HTMLIFrameElement {\n return element.tagName === 'IFRAME';\n}\n","import * as React from 'react';\n\n/**\n * On the server, React emits a warning when calling `useLayoutEffect`.\n * This is because neither `useLayoutEffect` nor `useEffect` run on the server.\n * We use this safe version which suppresses the warning by replacing it with a noop on the server.\n *\n * See: https://reactjs.org/docs/hooks-reference.html#uselayouteffect\n */\nconst useLayoutEffect = globalThis?.document ? React.useLayoutEffect : () => {};\n\nexport { useLayoutEffect };\n","import * as React from 'react';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\n// Prevent bundlers from trying to optimize the import\nconst useInsertionEffect: typeof useLayoutEffect =\n (React as any)[' useInsertionEffect '.trim().toString()] || useLayoutEffect;\n\ntype ChangeHandler<T> = (state: T) => void;\ntype SetStateFn<T> = React.Dispatch<React.SetStateAction<T>>;\n\ninterface UseControllableStateParams<T> {\n prop?: T | undefined;\n defaultProp: T;\n onChange?: ChangeHandler<T>;\n caller?: string;\n}\n\nexport function useControllableState<T>({\n prop,\n defaultProp,\n onChange = () => {},\n caller,\n}: UseControllableStateParams<T>): [T, SetStateFn<T>] {\n const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n defaultProp,\n onChange,\n });\n const isControlled = prop !== undefined;\n const value = isControlled ? prop : uncontrolledProp;\n\n // OK to disable conditionally calling hooks here because they will always run\n // consistently in the same environment. Bundlers should be able to remove the\n // code block entirely in production.\n /* eslint-disable react-hooks/rules-of-hooks */\n if (process.env.NODE_ENV !== 'production') {\n const isControlledRef = React.useRef(prop !== undefined);\n React.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? 'controlled' : 'uncontrolled';\n const to = isControlled ? 'controlled' : 'uncontrolled';\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n /* eslint-enable react-hooks/rules-of-hooks */\n\n const setValue = React.useCallback<SetStateFn<T>>(\n (nextValue) => {\n if (isControlled) {\n const value = isFunction(nextValue) ? nextValue(prop) : nextValue;\n if (value !== prop) {\n onChangeRef.current?.(value);\n }\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, onChangeRef]\n );\n\n return [value, setValue];\n}\n\nfunction useUncontrolledState<T>({\n defaultProp,\n onChange,\n}: Omit<UseControllableStateParams<T>, 'prop'>): [\n Value: T,\n setValue: React.Dispatch<React.SetStateAction<T>>,\n OnChangeRef: React.RefObject<ChangeHandler<T> | undefined>,\n] {\n const [value, setValue] = React.useState(defaultProp);\n const prevValueRef = React.useRef(value);\n\n const onChangeRef = React.useRef(onChange);\n useInsertionEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n onChangeRef.current?.(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef]);\n\n return [value, setValue, onChangeRef];\n}\n\nfunction isFunction(value: unknown): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createSlot } from '@radix-ui/react-slot';\n\nconst NODES = [\n 'a',\n 'button',\n 'div',\n 'form',\n 'h2',\n 'h3',\n 'img',\n 'input',\n 'label',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'select',\n 'span',\n 'svg',\n 'ul',\n] as const;\n\ntype Primitives = { [E in (typeof NODES)[number]]: PrimitiveForwardRefComponent<E> };\ntype PrimitivePropsWithRef<E extends React.ElementType> = React.ComponentPropsWithRef<E> & {\n asChild?: boolean;\n};\n\ninterface PrimitiveForwardRefComponent<E extends React.ElementType>\n extends React.ForwardRefExoticComponent<PrimitivePropsWithRef<E>> {}\n\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/\n\nconst Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props: PrimitivePropsWithRef<typeof node>, forwardedRef: any) => {\n const { asChild, ...primitiveProps } = props;\n const Comp: any = asChild ? Slot : node;\n\n if (typeof window !== 'undefined') {\n (window as any)[Symbol.for('radix-ui')] = true;\n }\n\n return <Comp {...primitiveProps} ref={forwardedRef} />;\n });\n\n Node.displayName = `Primitive.${node}`;\n\n return { ...primitive, [node]: Node };\n}, {} as Primitives);\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not necessary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click 👎\n * target.dispatchEvent(new Event(‘click’))\n *\n * dispatching a custom type within a non-discrete event 👎\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}\n *\n * dispatching a custom type within a `discrete` event 👍\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */\n\nfunction dispatchDiscreteCustomEvent<E extends CustomEvent>(target: E['target'], event: E) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Primitive;\n\nexport {\n Primitive,\n //\n Root,\n //\n dispatchDiscreteCustomEvent,\n};\nexport type { PrimitivePropsWithRef };\n","import * as React from 'react';\n\ntype Machine<S> = { [k: string]: { [k: string]: S } };\ntype MachineState<T> = keyof T;\ntype MachineEvent<T> = keyof UnionToIntersection<T[keyof T]>;\n\n// 🤯 https://fettblog.eu/typescript-union-to-intersection/\ntype UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer R) => any\n ? R\n : never;\n\nexport function useStateMachine<M>(\n initialState: MachineState<M>,\n machine: M & Machine<MachineState<M>>\n) {\n return React.useReducer((state: MachineState<M>, event: MachineEvent<M>): MachineState<M> => {\n const nextState = (machine[state] as any)[event];\n return nextState ?? state;\n }, initialState);\n}\n","import * as React from 'react';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { useStateMachine } from './use-state-machine';\n\ninterface PresenceProps {\n children: React.ReactElement | ((props: { present: boolean }) => React.ReactElement);\n present: boolean;\n}\n\nconst Presence: React.FC<PresenceProps> = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n\n const child = (\n typeof children === 'function'\n ? children({ present: presence.isPresent })\n : React.Children.only(children)\n ) as React.ReactElement<{ ref?: React.Ref<HTMLElement> }>;\n\n const ref = useComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === 'function';\n return forceMount || presence.isPresent ? React.cloneElement(child, { ref }) : null;\n};\n\nPresence.displayName = 'Presence';\n\n/* -------------------------------------------------------------------------------------------------\n * usePresence\n * -----------------------------------------------------------------------------------------------*/\n\nfunction usePresence(present: boolean) {\n const [node, setNode] = React.useState<HTMLElement>();\n const stylesRef = React.useRef<CSSStyleDeclaration | null>(null);\n const prevPresentRef = React.useRef(present);\n const prevAnimationNameRef = React.useRef<string>('none');\n const initialState = present ? 'mounted' : 'unmounted';\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended',\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted',\n },\n unmounted: {\n MOUNT: 'mounted',\n },\n });\n\n React.useEffect(() => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n prevAnimationNameRef.current = state === 'mounted' ? currentAnimationName : 'none';\n }, [state]);\n\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n\n if (present) {\n send('MOUNT');\n } else if (currentAnimationName === 'none' || styles?.display === 'none') {\n // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly\n send('UNMOUNT');\n } else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */\n const isAnimating = prevAnimationName !== currentAnimationName;\n\n if (wasPresent && isAnimating) {\n send('ANIMATION_OUT');\n } else {\n send('UNMOUNT');\n }\n }\n\n prevPresentRef.current = present;\n }\n }, [present, send]);\n\n useLayoutEffect(() => {\n if (node) {\n let timeoutId: number;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */\n const handleAnimationEnd = (event: AnimationEvent) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n // The event.animationName is unescaped for CSS syntax,\n // so we need to escape it to compare with the animationName computed from the style.\n const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));\n if (event.target === node && isCurrentAnimation) {\n // With React 18 concurrency this update is applied a frame after the\n // animation ends, creating a flash of visible content. By setting the\n // animation fill mode to \"forwards\", we force the node to keep the\n // styles of the last keyframe, removing the flash.\n //\n // Previously we flushed the update via ReactDom.flushSync, but with\n // exit animations this resulted in the node being removed from the\n // DOM before the synthetic animationEnd event was dispatched, meaning\n // user-provided event handlers would not be called.\n // https://github.com/radix-ui/primitives/pull/1849\n send('ANIMATION_END');\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = 'forwards';\n // Reset the style after the node had time to unmount (for cases\n // where the component chooses not to unmount). Doing this any\n // sooner than `setTimeout` (e.g. with `requestAnimationFrame`)\n // still causes a flash.\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === 'forwards') {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event: AnimationEvent) => {\n if (event.target === node) {\n // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener('animationstart', handleAnimationStart);\n node.addEventListener('animationcancel', handleAnimationEnd);\n node.addEventListener('animationend', handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener('animationstart', handleAnimationStart);\n node.removeEventListener('animationcancel', handleAnimationEnd);\n node.removeEventListener('animationend', handleAnimationEnd);\n };\n } else {\n // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n send('ANIMATION_END');\n }\n }, [node, send]);\n\n return {\n isPresent: ['mounted', 'unmountSuspended'].includes(state),\n ref: React.useCallback((node: HTMLElement) => {\n stylesRef.current = node ? getComputedStyle(node) : null;\n setNode(node);\n }, []),\n };\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getAnimationName(styles: CSSStyleDeclaration | null) {\n return styles?.animationName || 'none';\n}\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement<{ ref?: React.Ref<unknown> }>) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get;\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element as any).ref;\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get;\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref;\n}\n\nconst Root = Presence;\n\nexport {\n Presence,\n //\n Root,\n};\nexport type { PresenceProps };\n","import * as React from 'react';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\n// We spaces with `.trim().toString()` to prevent bundlers from trying to `import { useId } from 'react';`\nconst useReactId = (React as any)[' useId '.trim().toString()] || (() => undefined);\nlet count = 0;\n\nfunction useId(deterministicId?: string): string {\n const [id, setId] = React.useState<string | undefined>(useReactId());\n // React versions older than 18 will have client-side ids only.\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : '');\n}\n\nexport { useId };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { Presence } from '@radix-ui/react-presence';\nimport { useId } from '@radix-ui/react-id';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Collapsible\n * -----------------------------------------------------------------------------------------------*/\n\nconst COLLAPSIBLE_NAME = 'Collapsible';\n\ntype ScopedProps<P> = P & { __scopeCollapsible?: Scope };\nconst [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);\n\ntype CollapsibleContextValue = {\n contentId: string;\n disabled?: boolean;\n open: boolean;\n onOpenToggle(): void;\n};\n\nconst [CollapsibleProvider, useCollapsibleContext] =\n createCollapsibleContext<CollapsibleContextValue>(COLLAPSIBLE_NAME);\n\ntype CollapsibleElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface CollapsibleProps extends PrimitiveDivProps {\n defaultOpen?: boolean;\n open?: boolean;\n disabled?: boolean;\n onOpenChange?(open: boolean): void;\n}\n\nconst Collapsible = React.forwardRef<CollapsibleElement, CollapsibleProps>(\n (props: ScopedProps<CollapsibleProps>, forwardedRef) => {\n const {\n __scopeCollapsible,\n open: openProp,\n defaultOpen,\n disabled,\n onOpenChange,\n ...collapsibleProps\n } = props;\n\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: COLLAPSIBLE_NAME,\n });\n\n return (\n <CollapsibleProvider\n scope={__scopeCollapsible}\n disabled={disabled}\n contentId={useId()}\n open={open}\n onOpenToggle={React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}\n >\n <Primitive.div\n data-state={getState(open)}\n data-disabled={disabled ? '' : undefined}\n {...collapsibleProps}\n ref={forwardedRef}\n />\n </CollapsibleProvider>\n );\n }\n);\n\nCollapsible.displayName = COLLAPSIBLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CollapsibleTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'CollapsibleTrigger';\n\ntype CollapsibleTriggerElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface CollapsibleTriggerProps extends PrimitiveButtonProps {}\n\nconst CollapsibleTrigger = React.forwardRef<CollapsibleTriggerElement, CollapsibleTriggerProps>(\n (props: ScopedProps<CollapsibleTriggerProps>, forwardedRef) => {\n const { __scopeCollapsible, ...triggerProps } = props;\n const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\n return (\n <Primitive.button\n type=\"button\"\n aria-controls={context.contentId}\n aria-expanded={context.open || false}\n data-state={getState(context.open)}\n data-disabled={context.disabled ? '' : undefined}\n disabled={context.disabled}\n {...triggerProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(props.onClick, context.onOpenToggle)}\n />\n );\n }\n);\n\nCollapsibleTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * CollapsibleContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'CollapsibleContent';\n\ntype CollapsibleContentElement = CollapsibleContentImplElement;\ninterface CollapsibleContentProps extends Omit<CollapsibleContentImplProps, 'present'> {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst CollapsibleContent = React.forwardRef<CollapsibleContentElement, CollapsibleContentProps>(\n (props: ScopedProps<CollapsibleContentProps>, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\n return (\n <Presence present={forceMount || context.open}>\n {({ present }) => (\n <CollapsibleContentImpl {...contentProps} ref={forwardedRef} present={present} />\n )}\n </Presence>\n );\n }\n);\n\nCollapsibleContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype CollapsibleContentImplElement = React.ComponentRef<typeof Primitive.div>;\ninterface CollapsibleContentImplProps extends PrimitiveDivProps {\n present: boolean;\n}\n\nconst CollapsibleContentImpl = React.forwardRef<\n CollapsibleContentImplElement,\n CollapsibleContentImplProps\n>((props: ScopedProps<CollapsibleContentImplProps>, forwardedRef) => {\n const { __scopeCollapsible, present, children, ...contentProps } = props;\n const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\n const [isPresent, setIsPresent] = React.useState(present);\n const ref = React.useRef<CollapsibleContentImplElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const heightRef = React.useRef<number | undefined>(0);\n const height = heightRef.current;\n const widthRef = React.useRef<number | undefined>(0);\n const width = widthRef.current;\n // when opening we want it to immediately open to retrieve dimensions\n // when closing we delay `present` to retrieve dimensions before closing\n const isOpen = context.open || isPresent;\n const isMountAnimationPreventedRef = React.useRef(isOpen);\n const originalStylesRef = React.useRef<Record<string, string>>(undefined);\n\n React.useEffect(() => {\n const rAF = requestAnimationFrame(() => (isMountAnimationPreventedRef.current = false));\n return () => cancelAnimationFrame(rAF);\n }, []);\n\n useLayoutEffect(() => {\n const node = ref.current;\n if (node) {\n originalStylesRef.current = originalStylesRef.current || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName,\n };\n // block any animations/transitions so the element renders at its full dimensions\n node.style.transitionDuration = '0s';\n node.style.animationName = 'none';\n\n // get width and height from full dimensions\n const rect = node.getBoundingClientRect();\n heightRef.current = rect.height;\n widthRef.current = rect.width;\n\n // kick off any animations/transitions that were originally set up if it isn't the initial mount\n if (!isMountAnimationPreventedRef.current) {\n node.style.transitionDuration = originalStylesRef.current.transitionDuration!;\n node.style.animationName = originalStylesRef.current.animationName!;\n }\n\n setIsPresent(present);\n }\n /**\n * depends on `context.open` because it will change to `false`\n * when a close is triggered but `present` will be `false` on\n * animation end (so when close finishes). This allows us to\n * retrieve the dimensions *before* closing.\n */\n }, [context.open, present]);\n\n return (\n <Primitive.div\n data-state={getState(context.open)}\n data-disabled={context.disabled ? '' : undefined}\n id={context.contentId}\n hidden={!isOpen}\n {...contentProps}\n ref={composedRefs}\n style={{\n [`--radix-collapsible-content-height` as any]: height ? `${height}px` : undefined,\n [`--radix-collapsible-content-width` as any]: width ? `${width}px` : undefined,\n ...props.style,\n }}\n >\n {isOpen && children}\n </Primitive.div>\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open?: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst Root = Collapsible;\nconst Trigger = CollapsibleTrigger;\nconst Content = CollapsibleContent;\n\nexport {\n createCollapsibleScope,\n //\n Collapsible,\n CollapsibleTrigger,\n CollapsibleContent,\n //\n Root,\n Trigger,\n Content,\n};\nexport type { CollapsibleProps, CollapsibleTriggerProps, CollapsibleContentProps };\n","import * as React from 'react';\n\ntype Direction = 'ltr' | 'rtl';\nconst DirectionContext = React.createContext<Direction | undefined>(undefined);\n\n/* -------------------------------------------------------------------------------------------------\n * Direction\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DirectionProviderProps {\n children?: React.ReactNode;\n dir: Direction;\n}\nconst DirectionProvider: React.FC<DirectionProviderProps> = (props) => {\n const { dir, children } = props;\n return <DirectionContext.Provider value={dir}>{children}</DirectionContext.Provider>;\n};\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction useDirection(localDir?: Direction) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || 'ltr';\n}\n\nconst Provider = DirectionProvider;\n\nexport {\n useDirection,\n //\n Provider,\n //\n DirectionProvider,\n};\n","import React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\nimport { createCollapsibleScope } from '@radix-ui/react-collapsible';\nimport { useId } from '@radix-ui/react-id';\n\nimport type { Scope } from '@radix-ui/react-context';\nimport { useDirection } from '@radix-ui/react-direction';\n\ntype Direction = 'ltr' | 'rtl';\n\n/* -------------------------------------------------------------------------------------------------\n * Accordion\n * -----------------------------------------------------------------------------------------------*/\n\nconst ACCORDION_NAME = 'Accordion';\nconst ACCORDION_KEYS = ['Home', 'End', 'ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight'];\n\nconst [Collection, useCollection, createCollectionScope] =\n createCollection<AccordionTriggerElement>(ACCORDION_NAME);\n\ntype ScopedProps<P> = P & { __scopeAccordion?: Scope };\nconst [createAccordionContext, createAccordionScope] = createContextScope(ACCORDION_NAME, [\n createCollectionScope,\n createCollapsibleScope,\n]);\nconst useCollapsibleScope = createCollapsibleScope();\n\ntype AccordionElement = AccordionImplMultipleElement | AccordionImplSingleElement;\ninterface AccordionSingleProps extends AccordionImplSingleProps {\n type: 'single';\n}\ninterface AccordionMultipleProps extends AccordionImplMultipleProps {\n type: 'multiple';\n}\n\nconst Accordion = React.forwardRef<AccordionElement, AccordionSingleProps | AccordionMultipleProps>(\n (props: ScopedProps<AccordionSingleProps | AccordionMultipleProps>, forwardedRef) => {\n const { type, ...accordionProps } = props;\n const singleProps = accordionProps as AccordionImplSingleProps;\n const multipleProps = accordionProps as AccordionImplMultipleProps;\n return (\n <Collection.Provider scope={props.__scopeAccordion}>\n {type === 'multiple' ? (\n <AccordionImplMultiple {...multipleProps} ref={forwardedRef} />\n ) : (\n <AccordionImplSingle {...singleProps} ref={forwardedRef} />\n )}\n </Collection.Provider>\n );\n }\n);\n\nAccordion.displayName = ACCORDION_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype AccordionValueContextValue = {\n value: string[];\n onItemOpen(value: string): void;\n onItemClose(value: string): void;\n};\n\nconst [AccordionValueProvider, useAccordionValueContext] =\n createAccordionContext<AccordionValueContextValue>(ACCORDION_NAME);\n\nconst [AccordionCollapsibleProvider, useAccordionCollapsibleContext] = createAccordionContext(\n ACCORDION_NAME,\n { collapsible: false }\n);\n\ntype AccordionImplSingleElement = AccordionImplElement;\ninterface AccordionImplSingleProps extends AccordionImplProps {\n /**\n * The controlled stateful value of the accordion item whose content is expanded.\n */\n value?: string;\n /**\n * The value of the item whose content is expanded when the accordion is initially rendered. Use\n * `defaultValue` if you do not need to control the state of an accordion.\n */\n defaultValue?: string;\n /**\n * The callback that fires when the state of the accordion changes.\n */\n onValueChange?(value: string): void;\n /**\n * Whether an accordion item can be collapsed after it has been opened.\n * @default false\n */\n collapsible?: boolean;\n}\n\nconst AccordionImplSingle = React.forwardRef<AccordionImplSingleElement, AccordionImplSingleProps>(\n (props: ScopedProps<AccordionImplSingleProps>, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {},\n collapsible = false,\n ...accordionSingleProps\n } = props;\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? '',\n onChange: onValueChange,\n caller: ACCORDION_NAME,\n });\n\n return (\n <AccordionValueProvider\n scope={props.__scopeAccordion}\n value={React.useMemo(() => (value ? [value] : []), [value])}\n onItemOpen={setValue}\n onItemClose={React.useCallback(() => collapsible && setValue(''), [collapsible, setValue])}\n >\n <AccordionCollapsibleProvider scope={props.__scopeAccordion} collapsible={collapsible}>\n <AccordionImpl {...accordionSingleProps} ref={forwardedRef} />\n </AccordionCollapsibleProvider>\n </AccordionValueProvider>\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype AccordionImplMultipleElement = AccordionImplElement;\ninterface AccordionImplMultipleProps extends AccordionImplProps {\n /**\n * The controlled stateful value of the accordion items whose contents are expanded.\n */\n value?: string[];\n /**\n * The value of the items whose contents are expanded when the accordion is initially rendered. Use\n * `defaultValue` if you do not need to control the state of an accordion.\n */\n defaultValue?: string[];\n /**\n * The callback that fires when the state of the accordion changes.\n */\n onValueChange?(value: string[]): void;\n}\n\nconst AccordionImplMultiple = React.forwardRef<\n AccordionImplMultipleElement,\n AccordionImplMultipleProps\n>((props: ScopedProps<AccordionImplMultipleProps>, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {},\n ...accordionMultipleProps\n } = props;\n\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue ?? [],\n onChange: onValueChange,\n caller: ACCORDION_NAME,\n });\n\n const handleItemOpen = React.useCallback(\n (itemValue: string) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n\n const handleItemClose = React.useCallback(\n (itemValue: string) =>\n setValue((prevValue = []) => prevValue.filter((value) => value !== itemValue)),\n [setValue]\n );\n\n return (\n <AccordionValueProvider\n scope={props.__scopeAccordion}\n value={value}\n onItemOpen={handleItemOpen}\n onItemClose={handleItemClose}\n >\n <AccordionCollapsibleProvider scope={props.__scopeAccordion} collapsible={true}>\n <AccordionImpl {...accordionMultipleProps} ref={forwardedRef} />\n </AccordionCollapsibleProvider>\n </AccordionValueProvider>\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype AccordionImplContextValue = {\n disabled?: boolean;\n direction: AccordionImplProps['dir'];\n orientation: AccordionImplProps['orientation'];\n};\n\nconst [AccordionImplProvider, useAccordionContext] =\n createAccordionContext<AccordionImplContextValue>(ACCORDION_NAME);\n\ntype AccordionImplElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface AccordionImplProps extends PrimitiveDivProps {\n /**\n * Whether or not an accordion is disabled from user interaction.\n *\n * @defaultValue false\n */\n disabled?: boolean;\n /**\n * The layout in which the Accordion operates.\n * @default vertical\n */\n orientation?: React.AriaAttributes['aria-orientation'];\n /**\n * The language read direction.\n */\n dir?: Direction;\n}\n\nconst AccordionImpl = React.forwardRef<AccordionImplElement, AccordionImplProps>(\n (props: ScopedProps<AccordionImplProps>, forwardedRef) => {\n const { __scopeAccordion, disabled, dir, orientation = 'vertical', ...accordionProps } = props;\n const accordionRef = React.useRef<AccordionImplElement>(null);\n const composedRefs = useComposedRefs(accordionRef, forwardedRef);\n const getItems = useCollection(__scopeAccordion);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === 'ltr';\n\n const handleKeyDown = composeEventHandlers(props.onKeyDown, (event) => {\n if (!ACCORDION_KEYS.includes(event.key)) return;\n const target = event.target as HTMLElement;\n const triggerCollection = getItems().filter((item) => !item.ref.current?.disabled);\n const triggerIndex = triggerCollection.findIndex((item) => item.ref.current === target);\n const triggerCount = triggerCollection.length;\n\n if (triggerIndex === -1) return;\n\n // Prevents page scroll while user is navigating\n event.preventDefault();\n\n let nextIndex = triggerIndex;\n const homeIndex = 0;\n const endIndex = triggerCount - 1;\n\n const moveNext = () => {\n nextIndex = triggerIndex + 1;\n if (nextIndex > endIndex) {\n nextIndex = homeIndex;\n }\n };\n\n const movePrev = () => {\n nextIndex = triggerIndex - 1;\n if (nextIndex < homeIndex) {\n nextIndex = endIndex;\n }\n };\n\n switch (event.key) {\n case 'Home':\n nextIndex = homeIndex;\n break;\n case 'End':\n nextIndex = endIndex;\n break;\n case 'ArrowRight':\n if (orientation === 'horizontal') {\n if (isDirectionLTR) {\n moveNext();\n } else {\n movePrev();\n }\n }\n break;\n case 'ArrowDown':\n if (orientation === 'vertical') {\n moveNext();\n }\n break;\n case 'ArrowLeft':\n if (orientation === 'horizontal') {\n if (isDirectionLTR) {\n movePrev();\n } else {\n moveNext();\n }\n }\n break;\n case 'ArrowUp':\n if (orientation === 'vertical') {\n movePrev();\n }\n break;\n }\n\n const clampedIndex = nextIndex % triggerCount;\n triggerCollection[clampedIndex]!.ref.current?.focus();\n });\n\n return (\n <AccordionImplProvider\n scope={__scopeAccordion}\n disabled={disabled}\n direction={dir}\n orientation={orientation}\n >\n <Collection.Slot scope={__scopeAccordion}>\n <Primitive.div\n {...accordionProps}\n data-orientation={orientation}\n ref={composedRefs}\n onKeyDown={disabled ? undefined : handleKeyDown}\n />\n </Collection.Slot>\n </AccordionImplProvider>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * AccordionItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'AccordionItem';\n\ntype AccordionItemContextValue = { open?: boolean; disabled?: boolean; triggerId: string };\nconst [AccordionItemProvider, useAccordionItemContext] =\n createAccordionContext<AccordionItemContextValue>(ITEM_NAME);\n\ntype AccordionItemElement = React.ComponentRef<typeof CollapsiblePrimitive.Root>;\ntype CollapsibleProps = React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Root>;\ninterface AccordionItemProps\n extends Omit<CollapsibleProps, 'open' | 'defaultOpen' | 'onOpenChange'> {\n /**\n * Whether or not an accordion item is disabled from user interaction.\n *\n * @defaultValue false\n */\n disabled?: boolean;\n /**\n * A string value for the accordion item. All items within an accordion should use a unique value.\n */\n value: string;\n}\n\n/**\n * `AccordionItem` contains all of the parts of a collapsible section inside of an `Accordion`.\n */\nconst AccordionItem = React.forwardRef<AccordionItemElement, AccordionItemProps>(\n (props: ScopedProps<AccordionItemProps>, forwardedRef) => {\n const { __scopeAccordion, value, ...accordionItemProps } = props;\n const accordionContext = useAccordionContext(ITEM_NAME, __scopeAccordion);\n const valueContext = useAccordionValueContext(ITEM_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n const triggerId = useId();\n const open = (value && valueContext.value.includes(value)) || false;\n const disabled = accordionContext.disabled || props.disabled;\n\n return (\n <AccordionItemProvider\n scope={__scopeAccordion}\n open={open}\n disabled={disabled}\n triggerId={triggerId}\n >\n <CollapsiblePrimitive.Root\n data-orientation={accordionContext.orientation}\n data-state={getState(open)}\n {...collapsibleScope}\n {...accordionItemProps}\n ref={forwardedRef}\n disabled={disabled}\n open={open}\n onOpenChange={(open) => {\n if (open) {\n valueContext.onItemOpen(value);\n } else {\n valueContext.onItemClose(value);\n }\n }}\n />\n </AccordionItemProvider>\n );\n }\n);\n\nAccordionItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AccordionHeader\n * -----------------------------------------------------------------------------------------------*/\n\nconst HEADER_NAME = 'AccordionHeader';\n\ntype AccordionHeaderElement = React.ComponentRef<typeof Primitive.h3>;\ntype PrimitiveHeading3Props = React.ComponentPropsWithoutRef<typeof Primitive.h3>;\ninterface AccordionHeaderProps extends PrimitiveHeading3Props {}\n\n/**\n * `AccordionHeader` contains the content for the parts of an `AccordionItem` that will be visible\n * whether or not its content is collapsed.\n */\nconst AccordionHeader = React.forwardRef<AccordionHeaderElement, AccordionHeaderProps>(\n (props: ScopedProps<AccordionHeaderProps>, forwardedRef) => {\n const { __scopeAccordion, ...headerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(HEADER_NAME, __scopeAccordion);\n return (\n <Primitive.h3\n data-orientation={accordionContext.orientation}\n data-state={getState(itemContext.open)}\n data-disabled={itemContext.disabled ? '' : undefined}\n {...headerProps}\n ref={forwardedRef}\n />\n );\n }\n);\n\nAccordionHeader.displayName = HEADER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AccordionTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'AccordionTrigger';\n\ntype AccordionTriggerElement = React.ComponentRef<typeof CollapsiblePrimitive.Trigger>;\ntype CollapsibleTriggerProps = React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Trigger>;\ninterface AccordionTriggerProps extends CollapsibleTriggerProps {}\n\n/**\n * `AccordionTrigger` is the trigger that toggles the collapsed state of an `AccordionItem`. It\n * should always be nested inside of an `AccordionHeader`.\n */\nconst AccordionTrigger = React.forwardRef<AccordionTriggerElement, AccordionTriggerProps>(\n (props: ScopedProps<AccordionTriggerProps>, forwardedRef) => {\n const { __scopeAccordion, ...triggerProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleContext = useAccordionCollapsibleContext(TRIGGER_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return (\n <Collection.ItemSlot scope={__scopeAccordion}>\n <CollapsiblePrimitive.Trigger\n aria-disabled={(itemContext.open && !collapsibleContext.collapsible) || undefined}\n data-orientation={accordionContext.orientation}\n id={itemContext.triggerId}\n {...collapsibleScope}\n {...triggerProps}\n ref={forwardedRef}\n />\n </Collection.ItemSlot>\n );\n }\n);\n\nAccordionTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AccordionContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'AccordionContent';\n\ntype AccordionContentElement = React.ComponentRef<typeof CollapsiblePrimitive.Content>;\ntype CollapsibleContentProps = React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Content>;\ninterface AccordionContentProps extends CollapsibleContentProps {}\n\n/**\n * `AccordionContent` contains the collapsible content for an `AccordionItem`.\n */\nconst AccordionContent = React.forwardRef<AccordionContentElement, AccordionContentProps>(\n (props: ScopedProps<AccordionContentProps>, forwardedRef) => {\n const { __scopeAccordion, ...contentProps } = props;\n const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n const itemContext = useAccordionItemContext(CONTENT_NAME, __scopeAccordion);\n const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n return (\n <CollapsiblePrimitive.Content\n role=\"region\"\n aria-labelledby={itemContext.triggerId}\n data-orientation={accordionContext.orientation}\n {...collapsibleScope}\n {...contentProps}\n ref={forwardedRef}\n style={{\n ['--radix-accordion-content-height' as any]: 'var(--radix-collapsible-content-height)',\n ['--radix-accordion-content-width' as any]: 'var(--radix-collapsible-content-width)',\n ...props.style,\n }}\n />\n );\n }\n);\n\nAccordionContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open?: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst Root = Accordion;\nconst Item = AccordionItem;\nconst Header = AccordionHeader;\nconst Trigger = AccordionTrigger;\nconst Content = AccordionContent;\n\nexport {\n createAccordionScope,\n //\n Accordion,\n AccordionItem,\n AccordionHeader,\n AccordionTrigger,\n AccordionContent,\n //\n Root,\n Item,\n Header,\n Trigger,\n Content,\n};\nexport type {\n AccordionSingleProps,\n AccordionMultipleProps,\n AccordionItemProps,\n AccordionHeaderProps,\n AccordionTriggerProps,\n AccordionContentProps,\n};\n","'use client'\n\nimport * as React from 'react'\nimport * as AccordionPrimitive from '@radix-ui/react-accordion'\nimport { CaretDown } from '../icons'\n\nimport { cn } from '../lib/utils'\n\nconst Accordion = AccordionPrimitive.Root\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn('border-b border-gray-200', className)}\n {...props}\n />\n))\nAccordionItem.displayName = 'AccordionItem'\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex flex-1 items-center justify-between py-4 font-medium text-[var(--black)] transition-all hover:underline [&[data-state=open]>svg]:rotate-180',\n className\n )}\n {...props}\n >\n {children}\n <CaretDown className=\"h-4 w-4 shrink-0 text-gray-500 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n))\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn('pb-4 pt-0', className)}>{children}</div>\n </AccordionPrimitive.Content>\n))\n\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createSlot } from '@radix-ui/react-slot';\n\nconst NODES = [\n 'a',\n 'button',\n 'div',\n 'form',\n 'h2',\n 'h3',\n 'img',\n 'input',\n 'label',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'select',\n 'span',\n 'svg',\n 'ul',\n] as const;\n\ntype Primitives = { [E in (typeof NODES)[number]]: PrimitiveForwardRefComponent<E> };\ntype PrimitivePropsWithRef<E extends React.ElementType> = React.ComponentPropsWithRef<E> & {\n asChild?: boolean;\n};\n\ninterface PrimitiveForwardRefComponent<E extends React.ElementType>\n extends React.ForwardRefExoticComponent<PrimitivePropsWithRef<E>> {}\n\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/\n\nconst Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props: PrimitivePropsWithRef<typeof node>, forwardedRef: any) => {\n const { asChild, ...primitiveProps } = props;\n const Comp: any = asChild ? Slot : node;\n\n if (typeof window !== 'undefined') {\n (window as any)[Symbol.for('radix-ui')] = true;\n }\n\n return <Comp {...primitiveProps} ref={forwardedRef} />;\n });\n\n Node.displayName = `Primitive.${node}`;\n\n return { ...primitive, [node]: Node };\n}, {} as Primitives);\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not necessary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click 👎\n * target.dispatchEvent(new Event(‘click’))\n *\n * dispatching a custom type within a non-discrete event 👎\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(‘customType’))}\n *\n * dispatching a custom type within a `discrete` event 👍\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(‘customType’))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */\n\nfunction dispatchDiscreteCustomEvent<E extends CustomEvent>(target: E['target'], event: E) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Primitive;\n\nexport {\n Primitive,\n //\n Root,\n //\n dispatchDiscreteCustomEvent,\n};\nexport type { PrimitivePropsWithRef };\n","import * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * Separator\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAME = 'Separator';\nconst DEFAULT_ORIENTATION = 'horizontal';\nconst ORIENTATIONS = ['horizontal', 'vertical'] as const;\n\ntype Orientation = (typeof ORIENTATIONS)[number];\ntype SeparatorElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface SeparatorProps extends PrimitiveDivProps {\n /**\n * Either `vertical` or `horizontal`. Defaults to `horizontal`.\n */\n orientation?: Orientation;\n /**\n * Whether or not the component is purely decorative. When true, accessibility-related attributes\n * are updated so that that the rendered element is removed from the accessibility tree.\n */\n decorative?: boolean;\n}\n\nconst Separator = React.forwardRef<SeparatorElement, SeparatorProps>((props, forwardedRef) => {\n const { decorative, orientation: orientationProp = DEFAULT_ORIENTATION, ...domProps } = props;\n const orientation = isValidOrientation(orientationProp) ? orientationProp : DEFAULT_ORIENTATION;\n // `aria-orientation` defaults to `horizontal` so we only need it if `orientation` is vertical\n const ariaOrientation = orientation === 'vertical' ? orientation : undefined;\n const semanticProps = decorative\n ? { role: 'none' }\n : { 'aria-orientation': ariaOrientation, role: 'separator' };\n\n return (\n <Primitive.div\n data-orientation={orientation}\n {...semanticProps}\n {...domProps}\n ref={forwardedRef}\n />\n );\n});\n\nSeparator.displayName = NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction isValidOrientation(orientation: any): orientation is Orientation {\n return ORIENTATIONS.includes(orientation);\n}\n\nconst Root = Separator;\n\nexport {\n Separator,\n //\n Root,\n};\nexport type { SeparatorProps };\n","'use client'\n\nimport * as React from 'react'\nimport * as SeparatorPrimitive from '@radix-ui/react-separator'\n\nimport { cn } from '../lib/utils'\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = 'horizontal', decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'shrink-0 bg-gray-200',\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\n className\n )}\n {...props}\n />\n )\n)\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport type { SeparatorProps } from '@radix-ui/react-separator'\nexport { Separator }\n","import * as React from 'react';\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */\nfunction useCallbackRef<T extends (...args: any[]) => any>(callback: T | undefined): T {\n const callbackRef = React.useRef(callback);\n\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n\n // https://github.com/facebook/react/issues/19240\n return React.useMemo(() => ((...args) => callbackRef.current?.(...args)) as T, []);\n}\n\nexport { useCallbackRef };\n","import * as React from 'react';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\n\n/**\n * Listens for when the escape key is down\n */\nfunction useEscapeKeydown(\n onEscapeKeyDownProp?: (event: KeyboardEvent) => void,\n ownerDocument: Document = globalThis?.document\n) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener('keydown', handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener('keydown', handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\n\nexport { useEscapeKeydown };\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { Primitive, dispatchDiscreteCustomEvent } from '@radix-ui/react-primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useEscapeKeydown } from '@radix-ui/react-use-escape-keydown';\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayer\n * -----------------------------------------------------------------------------------------------*/\n\nconst DISMISSABLE_LAYER_NAME = 'DismissableLayer';\nconst CONTEXT_UPDATE = 'dismissableLayer.update';\nconst POINTER_DOWN_OUTSIDE = 'dismissableLayer.pointerDownOutside';\nconst FOCUS_OUTSIDE = 'dismissableLayer.focusOutside';\n\nlet originalBodyPointerEvents: string;\n\nconst DismissableLayerContext = React.createContext({\n layers: new Set<DismissableLayerElement>(),\n layersWithOutsidePointerEventsDisabled: new Set<DismissableLayerElement>(),\n branches: new Set<DismissableLayerBranchElement>(),\n});\n\ntype DismissableLayerElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface DismissableLayerProps extends PrimitiveDivProps {\n /**\n * When `true`, hover/focus/click interactions will be disabled on elements outside\n * the `DismissableLayer`. Users will need to click twice on outside elements to\n * interact with them: once to close the `DismissableLayer`, and again to trigger the element.\n */\n disableOutsidePointerEvents?: boolean;\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void;\n /**\n * Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`.\n * Can be prevented.\n */\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void;\n /**\n * Event handler called when the focus moves outside of the `DismissableLayer`.\n * Can be prevented.\n */\n onFocusOutside?: (event: FocusOutsideEvent) => void;\n /**\n * Event handler called when an interaction happens outside the `DismissableLayer`.\n * Specifically, when a `pointerdown` event happens outside or focus moves outside of it.\n * Can be prevented.\n */\n onInteractOutside?: (event: PointerDownOutsideEvent | FocusOutsideEvent) => void;\n /**\n * Handler called when the `DismissableLayer` should be dismissed\n */\n onDismiss?: () => void;\n}\n\nconst DismissableLayer = React.forwardRef<DismissableLayerElement, DismissableLayerProps>(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState<DismissableLayerElement | null>(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node) => setNode(node));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1); // prettier-ignore\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled!); // prettier-ignore\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target as HTMLElement;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n\n const focusOutside = useFocusOutside((event) => {\n const target = event.target as HTMLElement;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = 'none';\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (\n disableOutsidePointerEvents &&\n context.layersWithOutsidePointerEventsDisabled.size === 1\n ) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n\n /**\n * We purposefully prevent combining this effect with the `disableOutsidePointerEvents` effect\n * because a change to `disableOutsidePointerEvents` would remove this layer from the stack\n * and add it to the end again so the layering order wouldn't be _creation order_.\n * We only want them to be removed from context stacks when unmounted.\n */\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n\n return (\n <Primitive.div\n {...layerProps}\n ref={composedRefs}\n style={{\n pointerEvents: isBodyPointerEventsDisabled\n ? isPointerEventsEnabled\n ? 'auto'\n : 'none'\n : undefined,\n ...props.style,\n }}\n onFocusCapture={composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture)}\n onBlurCapture={composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture)}\n onPointerDownCapture={composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )}\n />\n );\n }\n);\n\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DismissableLayerBranch\n * -----------------------------------------------------------------------------------------------*/\n\nconst BRANCH_NAME = 'DismissableLayerBranch';\n\ntype DismissableLayerBranchElement = React.ComponentRef<typeof Primitive.div>;\ninterface DismissableLayerBranchProps extends PrimitiveDivProps {}\n\nconst DismissableLayerBranch = React.forwardRef<\n DismissableLayerBranchElement,\n DismissableLayerBranchProps\n>((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef<DismissableLayerBranchElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n\n return <Primitive.div {...props} ref={composedRefs} />;\n});\n\nDismissableLayerBranch.displayName = BRANCH_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PointerDownOutsideEvent = CustomEvent<{ originalEvent: PointerEvent }>;\ntype FocusOutsideEvent = CustomEvent<{ originalEvent: FocusEvent }>;\n\n/**\n * Listens for `pointerdown` outside a react subtree. We use `pointerdown` rather than `pointerup`\n * to mimic layer dismissing behaviour present in OS.\n * Returns props to pass to the node we want to check for outside events.\n */\nfunction usePointerDownOutside(\n onPointerDownOutside?: (event: PointerDownOutsideEvent) => void,\n ownerDocument: Document = globalThis?.document\n) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside) as EventListener;\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {});\n\n React.useEffect(() => {\n const handlePointerDown = (event: PointerEvent) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n\n function handleAndDispatchPointerDownOutsideEvent() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n }\n\n /**\n * On touch devices, we need to wait for a click event because browsers implement\n * a ~350ms delay between the time the user stops touching the display and when the\n * browser executres events. We need to ensure we don't reactivate pointer-events within\n * this timeframe otherwise the browser may execute events that should have been prevented.\n *\n * Additionally, this also lets us deal automatically with cancellations when a click event\n * isn't raised because the page was considered scrolled/drag-scrolled, long-pressed, etc.\n *\n * This is why we also continuously remove the previous listener, because we cannot be\n * certain that it was raised, and therefore cleaned-up.\n */\n if (event.pointerType === 'touch') {\n ownerDocument.removeEventListener('click', handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent;\n ownerDocument.addEventListener('click', handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent();\n }\n } else {\n // We need to remove the event listener in case the outside click has been canceled.\n // See: https://github.com/radix-ui/primitives/issues/2171\n ownerDocument.removeEventListener('click', handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n /**\n * if this hook executes in a component that mounts via a `pointerdown` event, the event\n * would bubble up to the document and trigger a `pointerDownOutside` event. We avoid\n * this by delaying the event listener registration on the document.\n * This is not React specific, but rather how the DOM works, ie:\n * ```\n * button.addEventListener('pointerdown', () => {\n * console.log('I will log');\n * document.addEventListener('pointerdown', () => {\n * console.log('I will also log');\n * })\n * });\n */\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener('pointerdown', handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener('pointerdown', handlePointerDown);\n ownerDocument.removeEventListener('click', handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => (isPointerInsideReactTreeRef.current = true),\n };\n}\n\n/**\n * Listens for when focus happens outside a react subtree.\n * Returns props to pass to the root (node) of the subtree we want to check.\n */\nfunction useFocusOutside(\n onFocusOutside?: (event: FocusOutsideEvent) => void,\n ownerDocument: Document = globalThis?.document\n) {\n const handleFocusOutside = useCallbackRef(onFocusOutside) as EventListener;\n const isFocusInsideReactTreeRef = React.useRef(false);\n\n React.useEffect(() => {\n const handleFocus = (event: FocusEvent) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false,\n });\n }\n };\n ownerDocument.addEventListener('focusin', handleFocus);\n return () => ownerDocument.removeEventListener('focusin', handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n\n return {\n onFocusCapture: () => (isFocusInsideReactTreeRef.current = true),\n onBlurCapture: () => (isFocusInsideReactTreeRef.current = false),\n };\n}\n\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\n\nfunction handleAndDispatchCustomEvent<E extends CustomEvent, OriginalEvent extends Event>(\n name: string,\n handler: ((event: E) => void) | undefined,\n detail: { originalEvent: OriginalEvent } & (E extends CustomEvent<infer D> ? D : never),\n { discrete }: { discrete: boolean }\n) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler as EventListener, { once: true });\n\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\n\nconst Root = DismissableLayer;\nconst Branch = DismissableLayerBranch;\n\nexport {\n DismissableLayer,\n DismissableLayerBranch,\n //\n Root,\n Branch,\n};\nexport type { DismissableLayerProps };\n","import * as React from 'react';\n\nfunction usePrevious<T>(value: T) {\n const ref = React.useRef({ value, previous: value });\n\n // We compare values before making an update to ensure that\n // a change has been made. This ensures the previous value is\n // persisted correctly between renders.\n return React.useMemo(() => {\n if (ref.current.value !== value) {\n ref.current.previous = ref.current.value;\n ref.current.value = value;\n }\n return ref.current.previous;\n }, [value]);\n}\n\nexport { usePrevious };\n","import * as React from 'react';\nimport { Primitive } from '@radix-ui/react-primitive';\n\n/* -------------------------------------------------------------------------------------------------\n * VisuallyHidden\n * -----------------------------------------------------------------------------------------------*/\n\nconst VISUALLY_HIDDEN_STYLES = Object.freeze({\n // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n position: 'absolute',\n border: 0,\n width: 1,\n height: 1,\n padding: 0,\n margin: -1,\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n wordWrap: 'normal',\n}) satisfies React.CSSProperties;\n\nconst NAME = 'VisuallyHidden';\n\ntype VisuallyHiddenElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface VisuallyHiddenProps extends PrimitiveSpanProps {}\n\nconst VisuallyHidden = React.forwardRef<VisuallyHiddenElement, VisuallyHiddenProps>(\n (props, forwardedRef) => {\n return (\n <Primitive.span\n {...props}\n ref={forwardedRef}\n style={{ ...VISUALLY_HIDDEN_STYLES, ...props.style }}\n />\n );\n }\n);\n\nVisuallyHidden.displayName = NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = VisuallyHidden;\n\nexport {\n VisuallyHidden,\n //\n Root,\n //\n VISUALLY_HIDDEN_STYLES,\n};\nexport type { VisuallyHiddenProps };\n","import * as React from 'react';\nimport ReactDOM from 'react-dom';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { Primitive, dispatchDiscreteCustomEvent } from '@radix-ui/react-primitive';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { composeRefs, useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { useDirection } from '@radix-ui/react-direction';\nimport { Presence } from '@radix-ui/react-presence';\nimport { useId } from '@radix-ui/react-id';\nimport { createCollection } from '@radix-ui/react-collection';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { usePrevious } from '@radix-ui/react-use-previous';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport * as VisuallyHiddenPrimitive from '@radix-ui/react-visually-hidden';\n\nimport type { Scope } from '@radix-ui/react-context';\n\ntype Orientation = 'vertical' | 'horizontal';\ntype Direction = 'ltr' | 'rtl';\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenu\n * -----------------------------------------------------------------------------------------------*/\n\nconst NAVIGATION_MENU_NAME = 'NavigationMenu';\n\nconst [Collection, useCollection, createCollectionScope] = createCollection<\n NavigationMenuTriggerElement,\n { value: string }\n>(NAVIGATION_MENU_NAME);\n\nconst [FocusGroupCollection, useFocusGroupCollection, createFocusGroupCollectionScope] =\n createCollection<FocusGroupItemElement, {}>(NAVIGATION_MENU_NAME);\n\ntype ScopedProps<P> = P & { __scopeNavigationMenu?: Scope };\nconst [createNavigationMenuContext, createNavigationMenuScope] = createContextScope(\n NAVIGATION_MENU_NAME,\n [createCollectionScope, createFocusGroupCollectionScope]\n);\n\ntype ContentData = {\n ref?: React.Ref<ViewportContentMounterElement>;\n} & ViewportContentMounterProps;\n\ntype NavigationMenuContextValue = {\n isRootMenu: boolean;\n value: string;\n previousValue: string;\n baseId: string;\n dir: Direction;\n orientation: Orientation;\n rootNavigationMenu: NavigationMenuElement | null;\n indicatorTrack: HTMLDivElement | null;\n onIndicatorTrackChange(indicatorTrack: HTMLDivElement | null): void;\n viewport: NavigationMenuViewportElement | null;\n onViewportChange(viewport: NavigationMenuViewportElement | null): void;\n onViewportContentChange(contentValue: string, contentData: ContentData): void;\n onViewportContentRemove(contentValue: string): void;\n onTriggerEnter(itemValue: string): void;\n onTriggerLeave(): void;\n onContentEnter(): void;\n onContentLeave(): void;\n onItemSelect(itemValue: string): void;\n onItemDismiss(): void;\n};\n\nconst [NavigationMenuProviderImpl, useNavigationMenuContext] =\n createNavigationMenuContext<NavigationMenuContextValue>(NAVIGATION_MENU_NAME);\n\nconst [ViewportContentProvider, useViewportContentContext] = createNavigationMenuContext<{\n items: Map<string, ContentData>;\n}>(NAVIGATION_MENU_NAME);\n\ntype NavigationMenuElement = React.ComponentRef<typeof Primitive.nav>;\ntype PrimitiveNavProps = React.ComponentPropsWithoutRef<typeof Primitive.nav>;\ninterface NavigationMenuProps\n extends Omit<NavigationMenuProviderProps, keyof NavigationMenuProviderPrivateProps>,\n PrimitiveNavProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n dir?: Direction;\n orientation?: Orientation;\n /**\n * The duration from when the pointer enters the trigger until the tooltip gets opened.\n * @defaultValue 200\n */\n delayDuration?: number;\n /**\n * How much time a user has to enter another trigger without incurring a delay again.\n * @defaultValue 300\n */\n skipDelayDuration?: number;\n}\n\nconst NavigationMenu = React.forwardRef<NavigationMenuElement, NavigationMenuProps>(\n (props: ScopedProps<NavigationMenuProps>, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value: valueProp,\n onValueChange,\n defaultValue,\n delayDuration = 200,\n skipDelayDuration = 300,\n orientation = 'horizontal',\n dir,\n ...NavigationMenuProps\n } = props;\n const [navigationMenu, setNavigationMenu] = React.useState<NavigationMenuElement | null>(null);\n const composedRef = useComposedRefs(forwardedRef, (node) => setNavigationMenu(node));\n const direction = useDirection(dir);\n const openTimerRef = React.useRef(0);\n const closeTimerRef = React.useRef(0);\n const skipDelayTimerRef = React.useRef(0);\n const [isOpenDelayed, setIsOpenDelayed] = React.useState(true);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: (value) => {\n const isOpen = value !== '';\n const hasSkipDelayDuration = skipDelayDuration > 0;\n\n if (isOpen) {\n window.clearTimeout(skipDelayTimerRef.current);\n if (hasSkipDelayDuration) setIsOpenDelayed(false);\n } else {\n window.clearTimeout(skipDelayTimerRef.current);\n skipDelayTimerRef.current = window.setTimeout(\n () => setIsOpenDelayed(true),\n skipDelayDuration\n );\n }\n\n onValueChange?.(value);\n },\n defaultProp: defaultValue ?? '',\n caller: NAVIGATION_MENU_NAME,\n });\n\n const startCloseTimer = React.useCallback(() => {\n window.clearTimeout(closeTimerRef.current);\n closeTimerRef.current = window.setTimeout(() => setValue(''), 150);\n }, [setValue]);\n\n const handleOpen = React.useCallback(\n (itemValue: string) => {\n window.clearTimeout(closeTimerRef.current);\n setValue(itemValue);\n },\n [setValue]\n );\n\n const handleDelayedOpen = React.useCallback(\n (itemValue: string) => {\n const isOpenItem = value === itemValue;\n if (isOpenItem) {\n // If the item is already open (e.g. we're transitioning from the content to the trigger)\n // then we want to clear the close timer immediately.\n window.clearTimeout(closeTimerRef.current);\n } else {\n openTimerRef.current = window.setTimeout(() => {\n window.clearTimeout(closeTimerRef.current);\n setValue(itemValue);\n }, delayDuration);\n }\n },\n [value, setValue, delayDuration]\n );\n\n React.useEffect(() => {\n return () => {\n window.clearTimeout(openTimerRef.current);\n window.clearTimeout(closeTimerRef.current);\n window.clearTimeout(skipDelayTimerRef.current);\n };\n }, []);\n\n return (\n <NavigationMenuProvider\n scope={__scopeNavigationMenu}\n isRootMenu={true}\n value={value}\n dir={direction}\n orientation={orientation}\n rootNavigationMenu={navigationMenu}\n onTriggerEnter={(itemValue) => {\n window.clearTimeout(openTimerRef.current);\n if (isOpenDelayed) handleDelayedOpen(itemValue);\n else handleOpen(itemValue);\n }}\n onTriggerLeave={() => {\n window.clearTimeout(openTimerRef.current);\n startCloseTimer();\n }}\n onContentEnter={() => window.clearTimeout(closeTimerRef.current)}\n onContentLeave={startCloseTimer}\n onItemSelect={(itemValue) => {\n setValue((prevValue) => (prevValue === itemValue ? '' : itemValue));\n }}\n onItemDismiss={() => setValue('')}\n >\n <Primitive.nav\n aria-label=\"Main\"\n data-orientation={orientation}\n dir={direction}\n {...NavigationMenuProps}\n ref={composedRef}\n />\n </NavigationMenuProvider>\n );\n }\n);\n\nNavigationMenu.displayName = NAVIGATION_MENU_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuSub\n * -----------------------------------------------------------------------------------------------*/\n\nconst SUB_NAME = 'NavigationMenuSub';\n\ntype NavigationMenuSubElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface NavigationMenuSubProps\n extends Omit<NavigationMenuProviderProps, keyof NavigationMenuProviderPrivateProps>,\n PrimitiveDivProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n orientation?: Orientation;\n}\n\nconst NavigationMenuSub = React.forwardRef<NavigationMenuSubElement, NavigationMenuSubProps>(\n (props: ScopedProps<NavigationMenuSubProps>, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value: valueProp,\n onValueChange,\n defaultValue,\n orientation = 'horizontal',\n ...subProps\n } = props;\n const context = useNavigationMenuContext(SUB_NAME, __scopeNavigationMenu);\n const [value, setValue] = useControllableState({\n prop: valueProp,\n onChange: onValueChange,\n defaultProp: defaultValue ?? '',\n caller: SUB_NAME,\n });\n\n return (\n <NavigationMenuProvider\n scope={__scopeNavigationMenu}\n isRootMenu={false}\n value={value}\n dir={context.dir}\n orientation={orientation}\n rootNavigationMenu={context.rootNavigationMenu}\n onTriggerEnter={(itemValue) => setValue(itemValue)}\n onItemSelect={(itemValue) => setValue(itemValue)}\n onItemDismiss={() => setValue('')}\n >\n <Primitive.div data-orientation={orientation} {...subProps} ref={forwardedRef} />\n </NavigationMenuProvider>\n );\n }\n);\n\nNavigationMenuSub.displayName = SUB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ninterface NavigationMenuProviderPrivateProps {\n isRootMenu: boolean;\n scope: Scope;\n children: React.ReactNode;\n orientation: Orientation;\n dir: Direction;\n rootNavigationMenu: NavigationMenuElement | null;\n value: string;\n onTriggerEnter(itemValue: string): void;\n onTriggerLeave?(): void;\n onContentEnter?(): void;\n onContentLeave?(): void;\n onItemSelect(itemValue: string): void;\n onItemDismiss(): void;\n}\n\ninterface NavigationMenuProviderProps extends NavigationMenuProviderPrivateProps {}\n\nconst NavigationMenuProvider: React.FC<NavigationMenuProviderProps> = (\n props: ScopedProps<NavigationMenuProviderProps>\n) => {\n const {\n scope,\n isRootMenu,\n rootNavigationMenu,\n dir,\n orientation,\n children,\n value,\n onItemSelect,\n onItemDismiss,\n onTriggerEnter,\n onTriggerLeave,\n onContentEnter,\n onContentLeave,\n } = props;\n const [viewport, setViewport] = React.useState<NavigationMenuViewportElement | null>(null);\n const [viewportContent, setViewportContent] = React.useState<Map<string, ContentData>>(new Map());\n const [indicatorTrack, setIndicatorTrack] = React.useState<HTMLDivElement | null>(null);\n\n return (\n <NavigationMenuProviderImpl\n scope={scope}\n isRootMenu={isRootMenu}\n rootNavigationMenu={rootNavigationMenu}\n value={value}\n previousValue={usePrevious(value)}\n baseId={useId()}\n dir={dir}\n orientation={orientation}\n viewport={viewport}\n onViewportChange={setViewport}\n indicatorTrack={indicatorTrack}\n onIndicatorTrackChange={setIndicatorTrack}\n onTriggerEnter={useCallbackRef(onTriggerEnter)}\n onTriggerLeave={useCallbackRef(onTriggerLeave)}\n onContentEnter={useCallbackRef(onContentEnter)}\n onContentLeave={useCallbackRef(onContentLeave)}\n onItemSelect={useCallbackRef(onItemSelect)}\n onItemDismiss={useCallbackRef(onItemDismiss)}\n onViewportContentChange={React.useCallback((contentValue, contentData) => {\n setViewportContent((prevContent) => {\n prevContent.set(contentValue, contentData);\n return new Map(prevContent);\n });\n }, [])}\n onViewportContentRemove={React.useCallback((contentValue) => {\n setViewportContent((prevContent) => {\n if (!prevContent.has(contentValue)) return prevContent;\n prevContent.delete(contentValue);\n return new Map(prevContent);\n });\n }, [])}\n >\n <Collection.Provider scope={scope}>\n <ViewportContentProvider scope={scope} items={viewportContent}>\n {children}\n </ViewportContentProvider>\n </Collection.Provider>\n </NavigationMenuProviderImpl>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuList\n * -----------------------------------------------------------------------------------------------*/\n\nconst LIST_NAME = 'NavigationMenuList';\n\ntype NavigationMenuListElement = React.ComponentRef<typeof Primitive.ul>;\ntype PrimitiveUnorderedListProps = React.ComponentPropsWithoutRef<typeof Primitive.ul>;\ninterface NavigationMenuListProps extends PrimitiveUnorderedListProps {}\n\nconst NavigationMenuList = React.forwardRef<NavigationMenuListElement, NavigationMenuListProps>(\n (props: ScopedProps<NavigationMenuListProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...listProps } = props;\n const context = useNavigationMenuContext(LIST_NAME, __scopeNavigationMenu);\n\n const list = (\n <Primitive.ul data-orientation={context.orientation} {...listProps} ref={forwardedRef} />\n );\n\n return (\n <Primitive.div style={{ position: 'relative' }} ref={context.onIndicatorTrackChange}>\n <Collection.Slot scope={__scopeNavigationMenu}>\n {context.isRootMenu ? <FocusGroup asChild>{list}</FocusGroup> : list}\n </Collection.Slot>\n </Primitive.div>\n );\n }\n);\n\nNavigationMenuList.displayName = LIST_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuItem\n * -----------------------------------------------------------------------------------------------*/\n\nconst ITEM_NAME = 'NavigationMenuItem';\n\ntype FocusProxyElement = React.ComponentRef<typeof VisuallyHiddenPrimitive.Root>;\n\ntype NavigationMenuItemContextValue = {\n value: string;\n triggerRef: React.RefObject<NavigationMenuTriggerElement | null>;\n contentRef: React.RefObject<NavigationMenuContentElement | null>;\n focusProxyRef: React.RefObject<FocusProxyElement | null>;\n wasEscapeCloseRef: React.MutableRefObject<boolean>;\n onEntryKeyDown(): void;\n onFocusProxyEnter(side: 'start' | 'end'): void;\n onRootContentClose(): void;\n onContentFocusOutside(): void;\n};\n\nconst [NavigationMenuItemContextProvider, useNavigationMenuItemContext] =\n createNavigationMenuContext<NavigationMenuItemContextValue>(ITEM_NAME);\n\ntype NavigationMenuItemElement = React.ComponentRef<typeof Primitive.li>;\ntype PrimitiveListItemProps = React.ComponentPropsWithoutRef<typeof Primitive.li>;\ninterface NavigationMenuItemProps extends PrimitiveListItemProps {\n value?: string;\n}\n\nconst NavigationMenuItem = React.forwardRef<NavigationMenuItemElement, NavigationMenuItemProps>(\n (props: ScopedProps<NavigationMenuItemProps>, forwardedRef) => {\n const { __scopeNavigationMenu, value: valueProp, ...itemProps } = props;\n const autoValue = useId();\n // We need to provide an initial deterministic value as `useId` will return\n // empty string on the first render and we don't want to match our internal \"closed\" value.\n const value = valueProp || autoValue || 'LEGACY_REACT_AUTO_VALUE';\n const contentRef = React.useRef<NavigationMenuContentElement>(null);\n const triggerRef = React.useRef<NavigationMenuTriggerElement>(null);\n const focusProxyRef = React.useRef<FocusProxyElement>(null);\n const restoreContentTabOrderRef = React.useRef(() => {});\n const wasEscapeCloseRef = React.useRef(false);\n\n const handleContentEntry = React.useCallback((side = 'start') => {\n if (contentRef.current) {\n restoreContentTabOrderRef.current();\n const candidates = getTabbableCandidates(contentRef.current);\n if (candidates.length) focusFirst(side === 'start' ? candidates : candidates.reverse());\n }\n }, []);\n\n const handleContentExit = React.useCallback(() => {\n if (contentRef.current) {\n const candidates = getTabbableCandidates(contentRef.current);\n if (candidates.length) restoreContentTabOrderRef.current = removeFromTabOrder(candidates);\n }\n }, []);\n\n return (\n <NavigationMenuItemContextProvider\n scope={__scopeNavigationMenu}\n value={value}\n triggerRef={triggerRef}\n contentRef={contentRef}\n focusProxyRef={focusProxyRef}\n wasEscapeCloseRef={wasEscapeCloseRef}\n onEntryKeyDown={handleContentEntry}\n onFocusProxyEnter={handleContentEntry}\n onRootContentClose={handleContentExit}\n onContentFocusOutside={handleContentExit}\n >\n <Primitive.li {...itemProps} ref={forwardedRef} />\n </NavigationMenuItemContextProvider>\n );\n }\n);\n\nNavigationMenuItem.displayName = ITEM_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'NavigationMenuTrigger';\n\ntype NavigationMenuTriggerElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface NavigationMenuTriggerProps extends PrimitiveButtonProps {}\n\nconst NavigationMenuTrigger = React.forwardRef<\n NavigationMenuTriggerElement,\n NavigationMenuTriggerProps\n>((props: ScopedProps<NavigationMenuTriggerProps>, forwardedRef) => {\n const { __scopeNavigationMenu, disabled, ...triggerProps } = props;\n const context = useNavigationMenuContext(TRIGGER_NAME, props.__scopeNavigationMenu);\n const itemContext = useNavigationMenuItemContext(TRIGGER_NAME, props.__scopeNavigationMenu);\n const ref = React.useRef<NavigationMenuTriggerElement>(null);\n const composedRefs = useComposedRefs(ref, itemContext.triggerRef, forwardedRef);\n const triggerId = makeTriggerId(context.baseId, itemContext.value);\n const contentId = makeContentId(context.baseId, itemContext.value);\n const hasPointerMoveOpenedRef = React.useRef(false);\n const wasClickCloseRef = React.useRef(false);\n const open = itemContext.value === context.value;\n\n return (\n <>\n <Collection.ItemSlot scope={__scopeNavigationMenu} value={itemContext.value}>\n <FocusGroupItem asChild>\n <Primitive.button\n id={triggerId}\n disabled={disabled}\n data-disabled={disabled ? '' : undefined}\n data-state={getOpenState(open)}\n aria-expanded={open}\n aria-controls={contentId}\n {...triggerProps}\n ref={composedRefs}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () => {\n wasClickCloseRef.current = false;\n itemContext.wasEscapeCloseRef.current = false;\n })}\n onPointerMove={composeEventHandlers(\n props.onPointerMove,\n whenMouse(() => {\n if (\n disabled ||\n wasClickCloseRef.current ||\n itemContext.wasEscapeCloseRef.current ||\n hasPointerMoveOpenedRef.current\n )\n return;\n context.onTriggerEnter(itemContext.value);\n hasPointerMoveOpenedRef.current = true;\n })\n )}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n whenMouse(() => {\n if (disabled) return;\n context.onTriggerLeave();\n hasPointerMoveOpenedRef.current = false;\n })\n )}\n onClick={composeEventHandlers(props.onClick, () => {\n context.onItemSelect(itemContext.value);\n wasClickCloseRef.current = open;\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const verticalEntryKey = context.dir === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n const entryKey = { horizontal: 'ArrowDown', vertical: verticalEntryKey }[\n context.orientation\n ];\n if (open && event.key === entryKey) {\n itemContext.onEntryKeyDown();\n // Prevent FocusGroupItem from handling the event\n event.preventDefault();\n }\n })}\n />\n </FocusGroupItem>\n </Collection.ItemSlot>\n\n {/* Proxy tab order between trigger and content */}\n {open && (\n <>\n <VisuallyHiddenPrimitive.Root\n aria-hidden\n tabIndex={0}\n ref={itemContext.focusProxyRef}\n onFocus={(event) => {\n const content = itemContext.contentRef.current;\n const prevFocusedElement = event.relatedTarget as HTMLElement | null;\n const wasTriggerFocused = prevFocusedElement === ref.current;\n const wasFocusFromContent = content?.contains(prevFocusedElement);\n\n if (wasTriggerFocused || !wasFocusFromContent) {\n itemContext.onFocusProxyEnter(wasTriggerFocused ? 'start' : 'end');\n }\n }}\n />\n\n {/* Restructure a11y tree to make content accessible to screen reader when using the viewport */}\n {context.viewport && <span aria-owns={contentId} />}\n </>\n )}\n </>\n );\n});\n\nNavigationMenuTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuLink\n * -----------------------------------------------------------------------------------------------*/\n\nconst LINK_NAME = 'NavigationMenuLink';\nconst LINK_SELECT = 'navigationMenu.linkSelect';\n\ntype NavigationMenuLinkElement = React.ComponentRef<typeof Primitive.a>;\ntype PrimitiveLinkProps = React.ComponentPropsWithoutRef<typeof Primitive.a>;\ninterface NavigationMenuLinkProps extends Omit<PrimitiveLinkProps, 'onSelect'> {\n active?: boolean;\n onSelect?: (event: Event) => void;\n}\n\nconst NavigationMenuLink = React.forwardRef<NavigationMenuLinkElement, NavigationMenuLinkProps>(\n (props: ScopedProps<NavigationMenuLinkProps>, forwardedRef) => {\n const { __scopeNavigationMenu, active, onSelect, ...linkProps } = props;\n\n return (\n <FocusGroupItem asChild>\n <Primitive.a\n data-active={active ? '' : undefined}\n aria-current={active ? 'page' : undefined}\n {...linkProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(\n props.onClick,\n (event) => {\n const target = event.target as HTMLElement;\n const linkSelectEvent = new CustomEvent(LINK_SELECT, {\n bubbles: true,\n cancelable: true,\n });\n target.addEventListener(LINK_SELECT, (event) => onSelect?.(event), { once: true });\n dispatchDiscreteCustomEvent(target, linkSelectEvent);\n\n if (!linkSelectEvent.defaultPrevented && !event.metaKey) {\n const rootContentDismissEvent = new CustomEvent(ROOT_CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true,\n });\n dispatchDiscreteCustomEvent(target, rootContentDismissEvent);\n }\n },\n { checkForDefaultPrevented: false }\n )}\n />\n </FocusGroupItem>\n );\n }\n);\n\nNavigationMenuLink.displayName = LINK_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuIndicator\n * -----------------------------------------------------------------------------------------------*/\n\nconst INDICATOR_NAME = 'NavigationMenuIndicator';\n\ntype NavigationMenuIndicatorElement = NavigationMenuIndicatorImplElement;\ninterface NavigationMenuIndicatorProps extends NavigationMenuIndicatorImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuIndicator = React.forwardRef<\n NavigationMenuIndicatorElement,\n NavigationMenuIndicatorProps\n>((props: ScopedProps<NavigationMenuIndicatorProps>, forwardedRef) => {\n const { forceMount, ...indicatorProps } = props;\n const context = useNavigationMenuContext(INDICATOR_NAME, props.__scopeNavigationMenu);\n const isVisible = Boolean(context.value);\n\n return context.indicatorTrack\n ? ReactDOM.createPortal(\n <Presence present={forceMount || isVisible}>\n <NavigationMenuIndicatorImpl {...indicatorProps} ref={forwardedRef} />\n </Presence>,\n context.indicatorTrack\n )\n : null;\n});\n\nNavigationMenuIndicator.displayName = INDICATOR_NAME;\n\ntype NavigationMenuIndicatorImplElement = React.ComponentRef<typeof Primitive.div>;\ninterface NavigationMenuIndicatorImplProps extends PrimitiveDivProps {}\n\nconst NavigationMenuIndicatorImpl = React.forwardRef<\n NavigationMenuIndicatorImplElement,\n NavigationMenuIndicatorImplProps\n>((props: ScopedProps<NavigationMenuIndicatorImplProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...indicatorProps } = props;\n const context = useNavigationMenuContext(INDICATOR_NAME, __scopeNavigationMenu);\n const getItems = useCollection(__scopeNavigationMenu);\n const [activeTrigger, setActiveTrigger] = React.useState<NavigationMenuTriggerElement | null>(\n null\n );\n const [position, setPosition] = React.useState<{ size: number; offset: number } | null>(null);\n const isHorizontal = context.orientation === 'horizontal';\n const isVisible = Boolean(context.value);\n\n React.useEffect(() => {\n const items = getItems();\n const triggerNode = items.find((item) => item.value === context.value)?.ref.current;\n if (triggerNode) setActiveTrigger(triggerNode);\n }, [getItems, context.value]);\n\n /**\n * Update position when the indicator or parent track size changes\n */\n const handlePositionChange = () => {\n if (activeTrigger) {\n setPosition({\n size: isHorizontal ? activeTrigger.offsetWidth : activeTrigger.offsetHeight,\n offset: isHorizontal ? activeTrigger.offsetLeft : activeTrigger.offsetTop,\n });\n }\n };\n useResizeObserver(activeTrigger, handlePositionChange);\n useResizeObserver(context.indicatorTrack, handlePositionChange);\n\n // We need to wait for the indicator position to be available before rendering to\n // snap immediately into position rather than transitioning from initial\n return position ? (\n <Primitive.div\n aria-hidden\n data-state={isVisible ? 'visible' : 'hidden'}\n data-orientation={context.orientation}\n {...indicatorProps}\n ref={forwardedRef}\n style={{\n position: 'absolute',\n ...(isHorizontal\n ? {\n left: 0,\n width: position.size + 'px',\n transform: `translateX(${position.offset}px)`,\n }\n : {\n top: 0,\n height: position.size + 'px',\n transform: `translateY(${position.offset}px)`,\n }),\n ...indicatorProps.style,\n }}\n />\n ) : null;\n});\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'NavigationMenuContent';\n\ntype NavigationMenuContentElement = NavigationMenuContentImplElement;\ninterface NavigationMenuContentProps\n extends Omit<NavigationMenuContentImplProps, keyof NavigationMenuContentImplPrivateProps> {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuContent = React.forwardRef<\n NavigationMenuContentElement,\n NavigationMenuContentProps\n>((props: ScopedProps<NavigationMenuContentProps>, forwardedRef) => {\n const { forceMount, ...contentProps } = props;\n const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const itemContext = useNavigationMenuItemContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const composedRefs = useComposedRefs(itemContext.contentRef, forwardedRef);\n const open = itemContext.value === context.value;\n\n const commonProps = {\n value: itemContext.value,\n triggerRef: itemContext.triggerRef,\n focusProxyRef: itemContext.focusProxyRef,\n wasEscapeCloseRef: itemContext.wasEscapeCloseRef,\n onContentFocusOutside: itemContext.onContentFocusOutside,\n onRootContentClose: itemContext.onRootContentClose,\n ...contentProps,\n };\n\n return !context.viewport ? (\n <Presence present={forceMount || open}>\n <NavigationMenuContentImpl\n data-state={getOpenState(open)}\n {...commonProps}\n ref={composedRefs}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, context.onContentEnter)}\n onPointerLeave={composeEventHandlers(\n props.onPointerLeave,\n whenMouse(context.onContentLeave)\n )}\n style={{\n // Prevent interaction when animating out\n pointerEvents: !open && context.isRootMenu ? 'none' : undefined,\n ...commonProps.style,\n }}\n />\n </Presence>\n ) : (\n <ViewportContentMounter forceMount={forceMount} {...commonProps} ref={composedRefs} />\n );\n});\n\nNavigationMenuContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ViewportContentMounterElement = NavigationMenuContentImplElement;\ninterface ViewportContentMounterProps extends NavigationMenuContentImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst ViewportContentMounter = React.forwardRef<\n ViewportContentMounterElement,\n ViewportContentMounterProps\n>((props: ScopedProps<ViewportContentMounterProps>, forwardedRef) => {\n const context = useNavigationMenuContext(CONTENT_NAME, props.__scopeNavigationMenu);\n const { onViewportContentChange, onViewportContentRemove } = context;\n\n useLayoutEffect(() => {\n onViewportContentChange(props.value, {\n ref: forwardedRef,\n ...props,\n });\n }, [props, forwardedRef, onViewportContentChange]);\n\n useLayoutEffect(() => {\n return () => onViewportContentRemove(props.value);\n }, [props.value, onViewportContentRemove]);\n\n // Content is proxied into the viewport\n return null;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst ROOT_CONTENT_DISMISS = 'navigationMenu.rootContentDismiss';\n\ntype MotionAttribute = 'to-start' | 'to-end' | 'from-start' | 'from-end';\ntype NavigationMenuContentImplElement = React.ComponentRef<typeof DismissableLayer>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<typeof DismissableLayer>;\n\ninterface NavigationMenuContentImplPrivateProps {\n value: string;\n triggerRef: React.RefObject<NavigationMenuTriggerElement | null>;\n focusProxyRef: React.RefObject<FocusProxyElement | null>;\n wasEscapeCloseRef: React.MutableRefObject<boolean>;\n onContentFocusOutside(): void;\n onRootContentClose(): void;\n}\ninterface NavigationMenuContentImplProps\n extends Omit<DismissableLayerProps, 'onDismiss' | 'disableOutsidePointerEvents'>,\n NavigationMenuContentImplPrivateProps {}\n\nconst NavigationMenuContentImpl = React.forwardRef<\n NavigationMenuContentImplElement,\n NavigationMenuContentImplProps\n>((props: ScopedProps<NavigationMenuContentImplProps>, forwardedRef) => {\n const {\n __scopeNavigationMenu,\n value,\n triggerRef,\n focusProxyRef,\n wasEscapeCloseRef,\n onRootContentClose,\n onContentFocusOutside,\n ...contentProps\n } = props;\n const context = useNavigationMenuContext(CONTENT_NAME, __scopeNavigationMenu);\n const ref = React.useRef<NavigationMenuContentImplElement>(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const triggerId = makeTriggerId(context.baseId, value);\n const contentId = makeContentId(context.baseId, value);\n const getItems = useCollection(__scopeNavigationMenu);\n const prevMotionAttributeRef = React.useRef<MotionAttribute | null>(null);\n\n const { onItemDismiss } = context;\n\n React.useEffect(() => {\n const content = ref.current;\n\n // Bubble dismiss to the root content node and focus its trigger\n if (context.isRootMenu && content) {\n const handleClose = () => {\n onItemDismiss();\n onRootContentClose();\n if (content.contains(document.activeElement)) triggerRef.current?.focus();\n };\n content.addEventListener(ROOT_CONTENT_DISMISS, handleClose);\n return () => content.removeEventListener(ROOT_CONTENT_DISMISS, handleClose);\n }\n }, [context.isRootMenu, props.value, triggerRef, onItemDismiss, onRootContentClose]);\n\n const motionAttribute = React.useMemo(() => {\n const items = getItems();\n const values = items.map((item) => item.value);\n if (context.dir === 'rtl') values.reverse();\n const index = values.indexOf(context.value);\n const prevIndex = values.indexOf(context.previousValue);\n const isSelected = value === context.value;\n const wasSelected = prevIndex === values.indexOf(value);\n\n // We only want to update selected and the last selected content\n // this avoids animations being interrupted outside of that range\n if (!isSelected && !wasSelected) return prevMotionAttributeRef.current;\n\n const attribute = (() => {\n // Don't provide a direction on the initial open\n if (index !== prevIndex) {\n // If we're moving to this item from another\n if (isSelected && prevIndex !== -1) return index > prevIndex ? 'from-end' : 'from-start';\n // If we're leaving this item for another\n if (wasSelected && index !== -1) return index > prevIndex ? 'to-start' : 'to-end';\n }\n // Otherwise we're entering from closed or leaving the list\n // entirely and should not animate in any direction\n return null;\n })();\n\n prevMotionAttributeRef.current = attribute;\n return attribute;\n }, [context.previousValue, context.value, context.dir, getItems, value]);\n\n return (\n <FocusGroup asChild>\n <DismissableLayer\n id={contentId}\n aria-labelledby={triggerId}\n data-motion={motionAttribute}\n data-orientation={context.orientation}\n {...contentProps}\n ref={composedRefs}\n disableOutsidePointerEvents={false}\n onDismiss={() => {\n const rootContentDismissEvent = new Event(ROOT_CONTENT_DISMISS, {\n bubbles: true,\n cancelable: true,\n });\n ref.current?.dispatchEvent(rootContentDismissEvent);\n }}\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) => {\n onContentFocusOutside();\n const target = event.target as HTMLElement;\n // Only dismiss content when focus moves outside of the menu\n if (context.rootNavigationMenu?.contains(target)) event.preventDefault();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const target = event.target as HTMLElement;\n const isTrigger = getItems().some((item) => item.ref.current?.contains(target));\n const isRootViewport = context.isRootMenu && context.viewport?.contains(target);\n if (isTrigger || isRootViewport || !context.isRootMenu) event.preventDefault();\n })}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isMetaKey = event.altKey || event.ctrlKey || event.metaKey;\n const isTabKey = event.key === 'Tab' && !isMetaKey;\n if (isTabKey) {\n const candidates = getTabbableCandidates(event.currentTarget);\n const focusedElement = document.activeElement;\n const index = candidates.findIndex((candidate) => candidate === focusedElement);\n const isMovingBackwards = event.shiftKey;\n const nextCandidates = isMovingBackwards\n ? candidates.slice(0, index).reverse()\n : candidates.slice(index + 1, candidates.length);\n\n if (focusFirst(nextCandidates)) {\n // prevent browser tab keydown because we've handled focus\n event.preventDefault();\n } else {\n // If we can't focus that means we're at the edges\n // so focus the proxy and let browser handle\n // tab/shift+tab keypress on the proxy instead\n focusProxyRef.current?.focus();\n }\n }\n })}\n onEscapeKeyDown={composeEventHandlers(props.onEscapeKeyDown, (_event) => {\n // prevent the dropdown from reopening\n // after the escape key has been pressed\n wasEscapeCloseRef.current = true;\n })}\n />\n </FocusGroup>\n );\n});\n\n/* -------------------------------------------------------------------------------------------------\n * NavigationMenuViewport\n * -----------------------------------------------------------------------------------------------*/\n\nconst VIEWPORT_NAME = 'NavigationMenuViewport';\n\ntype NavigationMenuViewportElement = NavigationMenuViewportImplElement;\ninterface NavigationMenuViewportProps\n extends Omit<NavigationMenuViewportImplProps, 'activeContentValue'> {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst NavigationMenuViewport = React.forwardRef<\n NavigationMenuViewportElement,\n NavigationMenuViewportProps\n>((props: ScopedProps<NavigationMenuViewportProps>, forwardedRef) => {\n const { forceMount, ...viewportProps } = props;\n const context = useNavigationMenuContext(VIEWPORT_NAME, props.__scopeNavigationMenu);\n const open = Boolean(context.value);\n\n return (\n <Presence present={forceMount || open}>\n <NavigationMenuViewportImpl {...viewportProps} ref={forwardedRef} />\n </Presence>\n );\n});\n\nNavigationMenuViewport.displayName = VIEWPORT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype NavigationMenuViewportImplElement = React.ComponentRef<typeof Primitive.div>;\ninterface NavigationMenuViewportImplProps extends PrimitiveDivProps {}\n\nconst NavigationMenuViewportImpl = React.forwardRef<\n NavigationMenuViewportImplElement,\n NavigationMenuViewportImplProps\n>((props: ScopedProps<NavigationMenuViewportImplProps>, forwardedRef) => {\n const { __scopeNavigationMenu, children, ...viewportImplProps } = props;\n const context = useNavigationMenuContext(VIEWPORT_NAME, __scopeNavigationMenu);\n const composedRefs = useComposedRefs(forwardedRef, context.onViewportChange);\n const viewportContentContext = useViewportContentContext(\n CONTENT_NAME,\n props.__scopeNavigationMenu\n );\n const [size, setSize] = React.useState<{ width: number; height: number } | null>(null);\n const [content, setContent] = React.useState<NavigationMenuContentElement | null>(null);\n const viewportWidth = size ? size?.width + 'px' : undefined;\n const viewportHeight = size ? size?.height + 'px' : undefined;\n const open = Boolean(context.value);\n // We persist the last active content value as the viewport may be animating out\n // and we want the content to remain mounted for the lifecycle of the viewport.\n const activeContentValue = open ? context.value : context.previousValue;\n\n /**\n * Update viewport size to match the active content node.\n * We prefer offset dimensions over `getBoundingClientRect` as the latter respects CSS transform.\n * For example, if content animates in from `scale(0.5)` the dimensions would be anything\n * from `0.5` to `1` of the intended size.\n */\n const handleSizeChange = () => {\n if (content) setSize({ width: content.offsetWidth, height: content.offsetHeight });\n };\n useResizeObserver(content, handleSizeChange);\n\n return (\n <Primitive.div\n data-state={getOpenState(open)}\n data-orientation={context.orientation}\n {...viewportImplProps}\n ref={composedRefs}\n style={{\n // Prevent interaction when animating out\n pointerEvents: !open && context.isRootMenu ? 'none' : undefined,\n ['--radix-navigation-menu-viewport-width' as any]: viewportWidth,\n ['--radix-navigation-menu-viewport-height' as any]: viewportHeight,\n ...viewportImplProps.style,\n }}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, context.onContentEnter)}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, whenMouse(context.onContentLeave))}\n >\n {Array.from(viewportContentContext.items).map(([value, { ref, forceMount, ...props }]) => {\n const isActive = activeContentValue === value;\n return (\n <Presence key={value} present={forceMount || isActive}>\n <NavigationMenuContentImpl\n {...props}\n ref={composeRefs(ref, (node) => {\n // We only want to update the stored node when another is available\n // as we need to smoothly transition between them.\n if (isActive && node) setContent(node);\n })}\n />\n </Presence>\n );\n })}\n </Primitive.div>\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst FOCUS_GROUP_NAME = 'FocusGroup';\n\ntype FocusGroupElement = React.ComponentRef<typeof Primitive.div>;\ninterface FocusGroupProps extends PrimitiveDivProps {}\n\nconst FocusGroup = React.forwardRef<FocusGroupElement, FocusGroupProps>(\n (props: ScopedProps<FocusGroupProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...groupProps } = props;\n const context = useNavigationMenuContext(FOCUS_GROUP_NAME, __scopeNavigationMenu);\n\n return (\n <FocusGroupCollection.Provider scope={__scopeNavigationMenu}>\n <FocusGroupCollection.Slot scope={__scopeNavigationMenu}>\n <Primitive.div dir={context.dir} {...groupProps} ref={forwardedRef} />\n </FocusGroupCollection.Slot>\n </FocusGroupCollection.Provider>\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst ARROW_KEYS = ['ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown'];\nconst FOCUS_GROUP_ITEM_NAME = 'FocusGroupItem';\n\ntype FocusGroupItemElement = React.ComponentRef<typeof Primitive.button>;\ninterface FocusGroupItemProps extends PrimitiveButtonProps {}\n\nconst FocusGroupItem = React.forwardRef<FocusGroupItemElement, FocusGroupItemProps>(\n (props: ScopedProps<FocusGroupItemProps>, forwardedRef) => {\n const { __scopeNavigationMenu, ...groupProps } = props;\n const getItems = useFocusGroupCollection(__scopeNavigationMenu);\n const context = useNavigationMenuContext(FOCUS_GROUP_ITEM_NAME, __scopeNavigationMenu);\n\n return (\n <FocusGroupCollection.ItemSlot scope={__scopeNavigationMenu}>\n <Primitive.button\n {...groupProps}\n ref={forwardedRef}\n onKeyDown={composeEventHandlers(props.onKeyDown, (event) => {\n const isFocusNavigationKey = ['Home', 'End', ...ARROW_KEYS].includes(event.key);\n if (isFocusNavigationKey) {\n let candidateNodes = getItems().map((item) => item.ref.current!);\n const prevItemKey = context.dir === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n const prevKeys = [prevItemKey, 'ArrowUp', 'End'];\n if (prevKeys.includes(event.key)) candidateNodes.reverse();\n if (ARROW_KEYS.includes(event.key)) {\n const currentIndex = candidateNodes.indexOf(event.currentTarget);\n candidateNodes = candidateNodes.slice(currentIndex + 1);\n }\n /**\n * Imperative focus during keydown is risky so we prevent React's batching updates\n * to avoid potential bugs. See: https://github.com/facebook/react/issues/20332\n */\n setTimeout(() => focusFirst(candidateNodes));\n\n // Prevent page scroll while navigating\n event.preventDefault();\n }\n })}\n />\n </FocusGroupCollection.ItemSlot>\n );\n }\n);\n\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nfunction getTabbableCandidates(container: HTMLElement) {\n const nodes: HTMLElement[] = [];\n const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n acceptNode: (node: any) => {\n const isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden';\n if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP;\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n\nfunction focusFirst(candidates: HTMLElement[]) {\n const previouslyFocusedElement = document.activeElement;\n return candidates.some((candidate) => {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === previouslyFocusedElement) return true;\n candidate.focus();\n return document.activeElement !== previouslyFocusedElement;\n });\n}\n\nfunction removeFromTabOrder(candidates: HTMLElement[]) {\n candidates.forEach((candidate) => {\n candidate.dataset.tabindex = candidate.getAttribute('tabindex') || '';\n candidate.setAttribute('tabindex', '-1');\n });\n return () => {\n candidates.forEach((candidate) => {\n const prevTabIndex = candidate.dataset.tabindex as string;\n candidate.setAttribute('tabindex', prevTabIndex);\n });\n };\n}\n\nfunction useResizeObserver(element: HTMLElement | null, onResize: () => void) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n /**\n * Resize Observer will throw an often benign error that says `ResizeObserver loop\n * completed with undelivered notifications`. This means that ResizeObserver was not\n * able to deliver all observations within a single animation frame, so we use\n * `requestAnimationFrame` to ensure we don't deliver unnecessary observations.\n * Further reading: https://github.com/WICG/resize-observer/issues/38\n */\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\n\nfunction getOpenState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nfunction makeTriggerId(baseId: string, value: string) {\n return `${baseId}-trigger-${value}`;\n}\n\nfunction makeContentId(baseId: string, value: string) {\n return `${baseId}-content-${value}`;\n}\n\nfunction whenMouse<E>(handler: React.PointerEventHandler<E>): React.PointerEventHandler<E> {\n return (event) => (event.pointerType === 'mouse' ? handler(event) : undefined);\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = NavigationMenu;\nconst Sub = NavigationMenuSub;\nconst List = NavigationMenuList;\nconst Item = NavigationMenuItem;\nconst Trigger = NavigationMenuTrigger;\nconst Link = NavigationMenuLink;\nconst Indicator = NavigationMenuIndicator;\nconst Content = NavigationMenuContent;\nconst Viewport = NavigationMenuViewport;\n\nexport {\n createNavigationMenuScope,\n //\n NavigationMenu,\n NavigationMenuSub,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuContent,\n NavigationMenuViewport,\n //\n Root,\n Sub,\n List,\n Item,\n Trigger,\n Link,\n Indicator,\n Content,\n Viewport,\n};\nexport type {\n NavigationMenuProps,\n NavigationMenuSubProps,\n NavigationMenuListProps,\n NavigationMenuItemProps,\n NavigationMenuTriggerProps,\n NavigationMenuLinkProps,\n NavigationMenuIndicatorProps,\n NavigationMenuContentProps,\n NavigationMenuViewportProps,\n};\n","'use client'\n\nimport * as React from 'react'\nimport * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu'\nimport { cva } from 'class-variance-authority'\nimport { CaretDown } from '../icons'\n\nimport { cn } from '../lib/utils'\n\nconst NavigationMenu = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn(\n 'relative z-10 flex max-w-max flex-1 items-center justify-center',\n className\n )}\n {...props}\n >\n {children}\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Root>\n))\nNavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName\n\nconst NavigationMenuList = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn(\n 'group flex flex-1 list-none items-center justify-center space-x-1',\n className\n )}\n {...props}\n />\n))\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item\n\nconst navigationMenuTriggerStyle = cva(\n 'group inline-flex h-10 w-max items-center justify-center rounded-md bg-white px-4 py-2 text-sm font-medium text-[var(--black)] transition-colors hover:bg-gray-100 hover:text-[var(--black)] focus:bg-gray-100 focus:text-[var(--black)] focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-[var(--black)] data-[state=open]:bg-gray-100/50 data-[state=open]:hover:bg-gray-100 data-[state=open]:focus:bg-gray-100'\n)\n\nconst NavigationMenuTrigger = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), 'group', className)}\n {...props}\n >\n {children}{' '}\n <CaretDown\n className=\"relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n))\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName\n\nconst NavigationMenuContent = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n 'left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto',\n className\n )}\n {...props}\n />\n))\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName\n\nconst NavigationMenuLink = NavigationMenuPrimitive.Link\n\nconst NavigationMenuViewport = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <div className={cn('absolute left-0 top-full flex justify-center')}>\n <NavigationMenuPrimitive.Viewport\n className={cn(\n 'origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border border-gray-200 bg-white text-[var(--black)] shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]',\n className\n )}\n ref={ref}\n {...props}\n />\n </div>\n))\nNavigationMenuViewport.displayName =\n NavigationMenuPrimitive.Viewport.displayName\n\nconst NavigationMenuIndicator = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\n 'top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in',\n className\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-gray-200 shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n))\nNavigationMenuIndicator.displayName =\n NavigationMenuPrimitive.Indicator.displayName\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n}\n"]}
1
+ {"version":3,"sources":["../src/lib/utils.ts","../src/components/button.tsx","../src/components/sheet.tsx","../src/components/logo.tsx","../src/components/badge.tsx","../src/components/card.tsx","../src/components/progress.tsx","../src/components/icon-box.tsx","../src/components/tag.tsx","../src/components/stat.tsx","../src/components/input.tsx","../src/components/label.tsx","../src/components/textarea.tsx","../src/components/accordion.tsx","../src/components/separator.tsx","../src/components/navigation-menu.tsx"],"names":["React","React2","jsx","cva","jsxs","React3","React5","React6","React7","React8","React9","React10","React11","React12","React13","React14"],"mappings":"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","file":"index.mjs","sourcesContent":["import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","'use client'\n\nimport * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-full text-sm font-semibold ring-offset-background transition-all duration-200 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 cursor-pointer',\n {\n variants: {\n variant: {\n default:\n 'bg-[var(--black)] text-white border-2 border-[var(--black)] hover:bg-gray-800 hover:border-gray-800 active:scale-95',\n primary:\n 'bg-[var(--cyan)] text-[var(--black)] border-2 border-[var(--cyan)] hover:bg-[var(--cyan-dark)] hover:border-[var(--cyan-dark)] active:scale-95',\n destructive:\n 'bg-red-600 text-white border-2 border-red-600 hover:bg-red-700 hover:border-red-700 active:scale-95',\n outline:\n 'border-2 border-gray-300 bg-transparent hover:bg-gray-100 active:scale-95',\n secondary:\n 'bg-gray-100 text-[var(--black)] border-2 border-gray-100 hover:bg-gray-200 hover:border-gray-200 active:scale-95',\n ghost:\n 'hover:bg-gray-100 border-2 border-transparent',\n link:\n 'text-[var(--cyan)] underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-10 px-6 py-2',\n sm: 'h-9 px-4 text-xs',\n lg: 'h-12 px-8 text-base',\n icon: 'h-10 w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button'\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n )\n }\n)\nButton.displayName = 'Button'\n\nexport { Button, buttonVariants }\n","// @ts-nocheck\n'use client'\n\nimport * as React from 'react'\nimport * as SheetPrimitive from '@radix-ui/react-dialog'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { X } from '@phosphor-icons/react'\n\nimport { cn } from '../lib/utils'\n\nconst Sheet = SheetPrimitive.Root\n\nconst SheetTrigger = SheetPrimitive.Trigger\n\nconst SheetClose = SheetPrimitive.Close\n\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n // @ts-ignore - Radix Dialog Overlay accepts className at runtime\n <SheetPrimitive.Overlay\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n 'fixed z-50 gap-4 bg-white p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\n {\n variants: {\n side: {\n top: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\n bottom:\n 'inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\n left: 'inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\n right:\n 'inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n }\n)\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = 'right', className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n {children}\n {/* @ts-expect-error - Radix Dialog Close accepts className and children at runtime */}\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[var(--cyan)] focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-gray-100\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n))\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n 'flex flex-col space-y-2 text-center sm:text-left',\n className\n )}\n {...props}\n />\n)\nSheetHeader.displayName = 'SheetHeader'\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n 'flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2',\n className\n )}\n {...props}\n />\n)\nSheetFooter.displayName = 'SheetFooter'\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n // @ts-ignore - Radix Dialog Title accepts className at runtime\n <SheetPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold text-[var(--black)]', className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n // @ts-ignore - Radix Dialog Description accepts className at runtime\n <SheetPrimitive.Description\n ref={ref}\n className={cn('text-sm text-gray-500', className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface LogoProps {\n variant?: 'dark' | 'light' // dark = black text, light = white text\n size?: 'sm' | 'md' | 'lg'\n href?: string | null // defaults to '/', pass null to disable link\n className?: string\n}\n\nconst sizes = {\n sm: { width: 100, height: 30 },\n md: { width: 130, height: 40 },\n lg: { width: 160, height: 50 },\n}\n\n/**\n * Logo component that renders the Dilipod logo as inline SVG\n * \n * @param variant - 'dark' for light backgrounds (black text), 'light' for dark backgrounds (white text)\n * @param size - 'sm' | 'md' | 'lg'\n * @param href - Optional link href (wraps logo in anchor tag)\n * @param className - Additional CSS classes\n */\nexport function Logo({\n variant = 'dark',\n size = 'md',\n href = '/',\n className,\n}: LogoProps) {\n const s = sizes[size]\n const textColor = variant === 'light' ? 'white' : '#0A0A0A'\n const iconTextColor = variant === 'light' ? 'white' : '#0A0A0A'\n\n const svgContent = (\n <svg\n width={s.width}\n height={s.height}\n viewBox=\"0 0 130 40\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n >\n <defs>\n <linearGradient id={`gradient-${variant}`} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n <stop offset=\"0%\" stopColor=\"#007A70\" />\n <stop offset=\"50%\" stopColor=\"#00B8A9\" />\n <stop offset=\"100%\" stopColor=\"#00E5D4\" />\n </linearGradient>\n </defs>\n {/* Icon */}\n <rect width=\"40\" height=\"40\" rx=\"4\" fill={`url(#gradient-${variant})`} />\n <text\n x=\"20\"\n y=\"29\"\n textAnchor=\"middle\"\n fontFamily=\"system-ui, -apple-system, sans-serif\"\n fontSize=\"24\"\n fontWeight=\"700\"\n fill={iconTextColor}\n >\n D\n </text>\n {/* Text */}\n <text\n x=\"52\"\n y=\"28\"\n fontFamily=\"system-ui, -apple-system, sans-serif\"\n fontSize=\"20\"\n fontWeight=\"700\"\n letterSpacing=\"1\"\n fill={textColor}\n >\n Dilipod\n </text>\n </svg>\n )\n\n if (href !== null) {\n return (\n <a href={href} aria-label=\"Go to homepage\" className=\"inline-flex items-center group\">\n {svgContent}\n </a>\n )\n }\n\n return <div className=\"inline-flex items-center\">{svgContent}</div>\n}\n\nexport type { LogoProps }\n","'use client'\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils'\n\nconst badgeVariants = cva(\n 'inline-flex items-center gap-1.5 rounded-full font-semibold transition-colors',\n {\n variants: {\n variant: {\n default: 'bg-gray-100 text-gray-700',\n primary: 'bg-[var(--cyan)]/10 text-[var(--cyan)]',\n success: 'bg-green-100 text-green-700',\n warning: 'bg-amber-100 text-amber-700',\n error: 'bg-red-100 text-red-700',\n outline: 'border border-gray-200 text-gray-600 bg-white',\n },\n size: {\n sm: 'px-2 py-0.5 text-[10px]',\n default: 'px-2.5 py-1 text-xs',\n lg: 'px-3 py-1.5 text-sm',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {\n /** Show animated pulse dot */\n pulse?: boolean\n /** Custom pulse color (overrides variant-based color) */\n pulseColor?: 'default' | 'primary' | 'success' | 'warning' | 'error'\n}\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, size, pulse, pulseColor: pulseColorProp, children, ...props }, ref) => {\n // Get pulse color based on variant or explicit pulseColor prop\n // Using explicit conditionals so Tailwind can detect the classes\n const getPulseColorClass = () => {\n const color = pulseColorProp || variant || 'default'\n switch (color) {\n case 'success': return 'bg-green-500'\n case 'warning': return 'bg-amber-500'\n case 'error': return 'bg-red-500'\n case 'primary': return 'bg-[var(--cyan)]'\n case 'outline': return 'bg-gray-400'\n default: return 'bg-gray-500'\n }\n }\n \n const pulseColorClass = getPulseColorClass()\n\n return (\n <span\n ref={ref}\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n >\n {pulse && (\n <span className=\"relative flex h-1.5 w-1.5\">\n <span\n className={cn(\n 'absolute inline-flex h-full w-full animate-ping rounded-full opacity-75',\n pulseColorClass\n )}\n />\n <span\n className={cn(\n 'relative inline-flex h-1.5 w-1.5 rounded-full',\n pulseColorClass\n )}\n />\n </span>\n )}\n {children}\n </span>\n )\n }\n)\nBadge.displayName = 'Badge'\n\nexport { Badge, badgeVariants }\n","'use client'\n\nimport * as React from 'react'\nimport { cn } from '../lib/utils'\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'rounded-sm border border-gray-200 bg-white shadow-sm',\n className\n )}\n {...props}\n />\n))\nCard.displayName = 'Card'\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col space-y-1.5 p-6', className)}\n {...props}\n />\n))\nCardHeader.displayName = 'CardHeader'\n\nconst CardTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n 'text-lg font-bold leading-none tracking-tight text-[var(--black)]',\n className\n )}\n {...props}\n />\n))\nCardTitle.displayName = 'CardTitle'\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm text-gray-500', className)}\n {...props}\n />\n))\nCardDescription.displayName = 'CardDescription'\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n))\nCardContent.displayName = 'CardContent'\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center p-6 pt-0', className)}\n {...props}\n />\n))\nCardFooter.displayName = 'CardFooter'\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n","'use client'\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils'\n\nconst progressVariants = cva('h-full rounded-full transition-all duration-300', {\n variants: {\n variant: {\n default: 'bg-[var(--cyan)]',\n success: 'bg-green-500',\n warning: 'bg-amber-500',\n error: 'bg-red-500',\n gradient: 'bg-gradient-to-r from-[var(--cyan-dark)] to-[var(--cyan)]',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n})\n\nexport interface ProgressProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof progressVariants> {\n /** Progress value (0-100) */\n value: number\n /** Show percentage label */\n showLabel?: boolean\n /** Custom label text (defaults to \"Progress\") */\n label?: string\n /** Size of the progress bar */\n size?: 'sm' | 'default' | 'lg'\n}\n\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value, variant, showLabel, label = 'Progress', size = 'default', ...props }, ref) => {\n const clampedValue = Math.min(100, Math.max(0, value))\n \n const heightClass = {\n sm: 'h-1',\n default: 'h-1.5',\n lg: 'h-2.5',\n }[size]\n\n return (\n <div className={cn('w-full', className)} ref={ref} {...props}>\n {showLabel && (\n <div className=\"flex justify-between text-xs mb-1\">\n <span className=\"text-gray-500\">{label}</span>\n <span className=\"font-semibold text-[var(--black)]\">{clampedValue}%</span>\n </div>\n )}\n <div\n className={cn(\n 'w-full bg-gray-200 rounded-full overflow-hidden',\n heightClass\n )}\n >\n <div\n className={cn(progressVariants({ variant }))}\n style={{ width: `${clampedValue}%` }}\n />\n </div>\n </div>\n )\n }\n)\nProgress.displayName = 'Progress'\n\nexport { Progress, progressVariants }\n","'use client'\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils'\n\nconst iconBoxVariants = cva(\n 'inline-flex items-center justify-center shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-[var(--black)] text-white',\n primary: 'bg-[var(--cyan)] text-[var(--black)]',\n outline: 'border-2 border-gray-200 bg-white text-[var(--black)]',\n ghost: 'bg-gray-100 text-gray-600',\n gradient: 'bg-gradient-to-br from-[var(--black)] to-[var(--cyan-dark)] text-white',\n },\n size: {\n sm: 'w-8 h-8',\n default: 'w-10 h-10',\n lg: 'w-12 h-12',\n xl: 'w-14 h-14',\n },\n rounded: {\n sm: 'rounded-sm',\n default: 'rounded-md',\n full: 'rounded-full',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n rounded: 'sm',\n },\n }\n)\n\nexport interface IconBoxProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof iconBoxVariants> {}\n\nconst IconBox = React.forwardRef<HTMLDivElement, IconBoxProps>(\n ({ className, variant, size, rounded, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(iconBoxVariants({ variant, size, rounded }), className)}\n {...props}\n >\n {children}\n </div>\n )\n }\n)\nIconBox.displayName = 'IconBox'\n\nexport { IconBox, iconBoxVariants }\n","'use client'\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils'\n\nconst tagVariants = cva(\n 'inline-flex items-center gap-2 font-medium transition-colors cursor-pointer',\n {\n variants: {\n variant: {\n default: 'bg-gray-100 text-[var(--black)]',\n primary: 'bg-[var(--cyan)]/10 text-[var(--cyan)]',\n outline: 'border border-gray-200 bg-white text-gray-700 hover:border-[var(--black)] hover:text-[var(--black)]',\n dark: 'bg-[var(--black)] text-white',\n },\n size: {\n sm: 'px-2 py-1 text-[10px] rounded',\n default: 'px-3 py-1.5 text-xs rounded-full',\n lg: 'px-4 py-2 text-sm rounded-full',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n)\n\nexport interface TagProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof tagVariants> {\n /** Optional icon to display before text */\n icon?: React.ReactNode\n}\n\nconst Tag = React.forwardRef<HTMLSpanElement, TagProps>(\n ({ className, variant, size, icon, children, ...props }, ref) => {\n return (\n <span\n ref={ref}\n className={cn(tagVariants({ variant, size }), className)}\n {...props}\n >\n {icon && <span className=\"shrink-0\">{icon}</span>}\n {children}\n </span>\n )\n }\n)\nTag.displayName = 'Tag'\n\nexport { Tag, tagVariants }\n","'use client'\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../lib/utils'\n\nconst statVariants = cva('', {\n variants: {\n variant: {\n default: '',\n card: 'p-3 rounded-sm bg-gray-50 text-center',\n },\n align: {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n },\n },\n defaultVariants: {\n variant: 'default',\n align: 'left',\n },\n})\n\nconst valueVariants = cva('font-bold', {\n variants: {\n size: {\n sm: 'text-lg',\n default: 'text-2xl',\n lg: 'text-4xl md:text-5xl',\n xl: 'text-5xl md:text-6xl',\n },\n color: {\n default: 'text-[var(--black)]',\n primary: 'text-[var(--cyan)]',\n white: 'text-white',\n gradient: 'text-gradient',\n },\n },\n defaultVariants: {\n size: 'default',\n color: 'default',\n },\n})\n\nexport interface StatProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof statVariants> {\n /** The main value to display */\n value: string | number\n /** Label below the value */\n label?: string\n /** Optional suffix after value (e.g., \"faster\", \"cheaper\") */\n suffix?: string\n /** Size of the value text */\n valueSize?: 'sm' | 'default' | 'lg' | 'xl'\n /** Color of the value */\n valueColor?: 'default' | 'primary' | 'white' | 'gradient'\n}\n\nconst Stat = React.forwardRef<HTMLDivElement, StatProps>(\n (\n {\n className,\n variant,\n align,\n value,\n label,\n suffix,\n valueSize = 'default',\n valueColor = 'default',\n ...props\n },\n ref\n ) => {\n const justifyClass = {\n left: 'justify-start',\n center: 'justify-center',\n right: 'justify-end',\n }[align || 'left']\n\n return (\n <div\n ref={ref}\n className={cn(statVariants({ variant, align }), className)}\n {...props}\n >\n <div className={cn('flex flex-wrap lg:flex-nowrap items-baseline gap-x-2', justifyClass)}>\n <span className={cn(valueVariants({ size: valueSize, color: valueColor }))}>\n {value}\n </span>\n {suffix && (\n <span className={cn(\n \"font-medium text-[var(--cyan)] shrink-0\",\n valueSize === 'lg' || valueSize === 'xl' ? 'text-lg md:text-xl' : 'text-base md:text-lg'\n )}>\n {suffix}\n </span>\n )}\n </div>\n {label && (\n <div className={cn(\n \"font-medium mt-1\",\n valueColor === 'white' ? 'text-white/70 text-sm md:text-base' : 'text-gray-500 text-xs md:text-sm'\n )}>\n {label}\n </div>\n )}\n </div>\n )\n }\n)\nStat.displayName = 'Stat'\n\nexport { Stat, statVariants, valueVariants }\n","'use client'\n\nimport * as React from 'react'\nimport { cn } from '../lib/utils'\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n 'flex h-10 w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-base text-[var(--black)] ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-[var(--black)] placeholder:text-gray-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--cyan)] focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm transition-colors',\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = 'Input'\n\nexport { Input }\n","'use client'\n\nimport * as React from 'react'\nimport * as LabelPrimitive from '@radix-ui/react-label'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\n\nconst labelVariants = cva(\n 'text-sm font-medium leading-none text-[var(--black)] peer-disabled:cursor-not-allowed peer-disabled:opacity-70'\n)\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n))\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport type { LabelProps } from '@radix-ui/react-label'\nexport { Label }\n","'use client'\n\nimport * as React from 'react'\nimport { cn } from '../lib/utils'\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n 'flex min-h-[80px] w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-base text-[var(--black)] ring-offset-background placeholder:text-gray-500 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--cyan)] focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm transition-colors',\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nTextarea.displayName = 'Textarea'\n\nexport { Textarea }\n","'use client'\n\nimport * as React from 'react'\nimport * as AccordionPrimitive from '@radix-ui/react-accordion'\nimport { CaretDown } from '../icons'\n\nimport { cn } from '../lib/utils'\n\nconst Accordion = AccordionPrimitive.Root\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn('border-b border-gray-200', className)}\n {...props}\n />\n))\nAccordionItem.displayName = 'AccordionItem'\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex flex-1 items-center justify-between py-4 font-medium text-[var(--black)] transition-all hover:underline [&[data-state=open]>svg]:rotate-180',\n className\n )}\n {...props}\n >\n {children}\n <CaretDown className=\"h-4 w-4 shrink-0 text-gray-500 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n))\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn('pb-4 pt-0', className)}>{children}</div>\n </AccordionPrimitive.Content>\n))\n\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n","'use client'\n\nimport * as React from 'react'\nimport * as SeparatorPrimitive from '@radix-ui/react-separator'\n\nimport { cn } from '../lib/utils'\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = 'horizontal', decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'shrink-0 bg-gray-200',\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\n className\n )}\n {...props}\n />\n )\n)\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport type { SeparatorProps } from '@radix-ui/react-separator'\nexport { Separator }\n","'use client'\n\nimport * as React from 'react'\nimport * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu'\nimport { cva } from 'class-variance-authority'\nimport { CaretDown } from '../icons'\n\nimport { cn } from '../lib/utils'\n\nconst NavigationMenu = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn(\n 'relative z-10 flex max-w-max flex-1 items-center justify-center',\n className\n )}\n {...props}\n >\n {children}\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Root>\n))\nNavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName\n\nconst NavigationMenuList = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn(\n 'group flex flex-1 list-none items-center justify-center space-x-1',\n className\n )}\n {...props}\n />\n))\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item\n\nconst navigationMenuTriggerStyle = cva(\n 'group inline-flex h-10 w-max items-center justify-center rounded-md bg-white px-4 py-2 text-sm font-medium text-[var(--black)] transition-colors hover:bg-gray-100 hover:text-[var(--black)] focus:bg-gray-100 focus:text-[var(--black)] focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-[var(--black)] data-[state=open]:bg-gray-100/50 data-[state=open]:hover:bg-gray-100 data-[state=open]:focus:bg-gray-100'\n)\n\nconst NavigationMenuTrigger = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), 'group', className)}\n {...props}\n >\n {children}{' '}\n <CaretDown\n className=\"relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n))\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName\n\nconst NavigationMenuContent = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n 'left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto',\n className\n )}\n {...props}\n />\n))\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName\n\nconst NavigationMenuLink = NavigationMenuPrimitive.Link\n\nconst NavigationMenuViewport = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <div className={cn('absolute left-0 top-full flex justify-center')}>\n <NavigationMenuPrimitive.Viewport\n className={cn(\n 'origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border border-gray-200 bg-white text-[var(--black)] shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]',\n className\n )}\n ref={ref}\n {...props}\n />\n </div>\n))\nNavigationMenuViewport.displayName =\n NavigationMenuPrimitive.Viewport.displayName\n\nconst NavigationMenuIndicator = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\n 'top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in',\n className\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-gray-200 shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n))\nNavigationMenuIndicator.displayName =\n NavigationMenuPrimitive.Indicator.displayName\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n}\n"]}