@prototyperco/ui 0.5.0-alpha.0
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.
- package/LICENSE +21 -0
- package/README.md +44 -0
- package/dist/index.cjs +7865 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +903 -0
- package/dist/index.d.ts +903 -0
- package/dist/index.js +7519 -0
- package/dist/index.js.map +1 -0
- package/package.json +71 -0
- package/src/prototyper-tokens.css +535 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/accordion.tsx","../src/lib/utils.ts","../src/components/alert.tsx","../src/components/alert-dialog.tsx","../src/components/button.tsx","../src/components/autocomplete.tsx","../src/components/input-group.tsx","../src/components/input.tsx","../src/components/textarea.tsx","../src/components/avatar.tsx","../src/components/badge.tsx","../src/components/breadcrumb.tsx","../src/components/card.tsx","../src/components/columns.tsx","../src/components/container.tsx","../src/components/checkbox.tsx","../src/components/checkbox-group.tsx","../src/components/collapsible.tsx","../src/components/command-palette.tsx","../src/components/color-picker.tsx","../src/lib/color-utils.ts","../src/components/combobox.tsx","../src/components/context-menu.tsx","../src/components/dialog.tsx","../src/components/drawer.tsx","../src/components/field.tsx","../src/components/label.tsx","../src/components/separator.tsx","../src/components/fieldset.tsx","../src/components/form.tsx","../src/components/menu.tsx","../src/components/menubar.tsx","../src/components/meter.tsx","../src/components/navigation-menu.tsx","../src/components/number-field.tsx","../src/components/popover.tsx","../src/components/preview-card.tsx","../src/components/progress.tsx","../src/components/radio-group.tsx","../src/components/resizable-panel.tsx","../src/components/row.tsx","../src/components/scroll-area.tsx","../src/components/segmented-control.tsx","../src/components/select.tsx","../src/components/section.tsx","../src/components/skeleton.tsx","../src/components/spinner.tsx","../src/components/slider.tsx","../src/components/switch.tsx","../src/components/tabs.tsx","../src/components/text-field.tsx","../src/components/toast.tsx","../src/components/toggle.tsx","../src/components/toggle-group.tsx","../src/components/toolbar.tsx","../src/components/tooltip.tsx","../src/components/tree-view.tsx"],"sourcesContent":["\"use client\";\n\nimport { Accordion as AccordionPrimitive } from \"@base-ui/react/accordion\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Accordion({ className, ...props }: AccordionPrimitive.Root.Props) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(\"flex w-full flex-col\", className)}\n {...props}\n />\n );\n}\n\nfunction AccordionItem({ className, ...props }: AccordionPrimitive.Item.Props) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\n \"not-last:border-b not-last:border-border-light\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: AccordionPrimitive.Trigger.Props) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n // Base\n \"no-highlight group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between\",\n \"rounded-md py-4 text-left text-sm font-medium outline-none\",\n // Transitions\n \"transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth\",\n \"motion-reduce:transition-none\",\n // Hover & focus\n \"hover-only:hover:underline\",\n \"focus-visible:focus-ring\",\n // Press feedback\n \"motion-safe:active:scale-[0.98]\",\n // Icon positioning\n \"**:data-[slot=accordion-trigger-icon]:ml-auto\",\n \"**:data-[slot=accordion-trigger-icon]:size-4\",\n \"**:data-[slot=accordion-trigger-icon]:text-muted-foreground\",\n // Disabled\n \"aria-disabled:status-disabled\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon\n data-slot=\"accordion-trigger-icon\"\n className={cn(\n \"pointer-events-none shrink-0\",\n \"transition-transform duration-200 ease-smooth\",\n \"motion-reduce:transition-none\",\n \"group-data-[panel-open]/accordion-trigger:rotate-180\",\n )}\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: AccordionPrimitive.Panel.Props) {\n return (\n <AccordionPrimitive.Panel\n data-slot=\"accordion-content\"\n className={cn(\n // Height animation (Base UI provides --accordion-panel-height)\n \"h-(--accordion-panel-height) overflow-hidden text-sm\",\n \"transition-[height] duration-200 ease-smooth\",\n \"motion-reduce:transition-none\",\n // Starting/ending at 0 height\n \"data-starting-style:h-0\",\n \"data-ending-style:h-0\",\n )}\n {...props}\n >\n <div\n className={cn(\n \"pt-0 pb-4\",\n \"[&_a]:underline [&_a]:underline-offset-3 [&_a]:hover-only:hover:text-foreground\",\n \"[&_p:not(:last-child)]:mb-4\",\n className,\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Panel>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n\nexport type AccordionProps = React.ComponentProps<typeof Accordion>;\nexport type AccordionItemProps = React.ComponentProps<typeof AccordionItem>;\nexport type AccordionTriggerProps = React.ComponentProps<\n typeof AccordionTrigger\n>;\nexport type AccordionContentProps = React.ComponentProps<\n typeof AccordionContent\n>;\n","import { clsx, type ClassValue } 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 { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst alertVariants = cva(\n [\n \"relative flex w-full gap-3 rounded-lg border p-4 text-sm\",\n \"[&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:translate-y-0.5\",\n ],\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground border-border\",\n destructive:\n \"bg-destructive/5 text-destructive border-destructive/20 [&>svg]:text-destructive\",\n success:\n \"bg-success/5 text-success border-success/20 [&>svg]:text-success\",\n warning:\n \"bg-warning/5 text-warning border-warning/20 [&>svg]:text-warning\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"h5\">) {\n return (\n <h5\n data-slot=\"alert-title\"\n className={cn(\"font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertTitle, AlertDescription, alertVariants };\n\nexport type AlertProps = React.ComponentProps<typeof Alert>;\nexport type AlertTitleProps = React.ComponentProps<typeof AlertTitle>;\nexport type AlertDescriptionProps = React.ComponentProps<\n typeof AlertDescription\n>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { AlertDialog as AlertDialogPrimitive } from \"@base-ui/react/alert-dialog\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\n\nfunction AlertDialog({ ...props }: AlertDialogPrimitive.Root.Props) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\nfunction AlertDialogTrigger({ ...props }: AlertDialogPrimitive.Trigger.Props) {\n return (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n );\n}\n\nfunction AlertDialogPortal({ ...props }: AlertDialogPrimitive.Portal.Props) {\n return (\n <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n );\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: AlertDialogPrimitive.Backdrop.Props) {\n return (\n <AlertDialogPrimitive.Backdrop\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-overlay-backdrop duration-200 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 isolate z-50 transition motion-reduce:animate-none motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogContent({\n className,\n size = \"default\",\n ...props\n}: AlertDialogPrimitive.Popup.Props & {\n size?: \"default\" | \"sm\";\n}) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Popup\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(\n \"bg-overlay text-overlay-foreground shadow-overlay data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-[0.98] data-open:zoom-in-[1.02] ring-border-light gap-6 rounded-xl p-6 ring-1 duration-200 ease-out-fluid data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 outline-none transition data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform] motion-reduce:animate-none motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n </AlertDialogPortal>\n );\n}\n\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n \"grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogMedia({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"bg-surface-secondary mb-2 inline-flex size-16 items-center justify-center rounded-md sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\n \"text-lg font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\n \"text-muted-foreground *:[a]:hover-only:hover:text-foreground text-sm text-balance md:text-pretty *:[a]:underline *:[a]:underline-offset-3\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogAction({\n className,\n ...props\n}: React.ComponentProps<typeof Button>) {\n return (\n <Button\n data-slot=\"alert-dialog-action\"\n className={cn(className)}\n {...props}\n />\n );\n}\n\nfunction AlertDialogCancel({\n className,\n variant = \"outline\",\n size = \"default\",\n ...props\n}: AlertDialogPrimitive.Close.Props &\n Pick<React.ComponentProps<typeof Button>, \"variant\" | \"size\">) {\n return (\n <AlertDialogPrimitive.Close\n data-slot=\"alert-dialog-cancel\"\n className={cn(className)}\n render={<Button variant={variant} size={size} />}\n {...props}\n />\n );\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n};\n\nexport type AlertDialogProps = React.ComponentProps<typeof AlertDialog>;\nexport type AlertDialogContentProps = React.ComponentProps<\n typeof AlertDialogContent\n>;\nexport type AlertDialogTriggerProps = React.ComponentProps<\n typeof AlertDialogTrigger\n>;\nexport type AlertDialogActionProps = React.ComponentProps<\n typeof AlertDialogAction\n>;\nexport type AlertDialogCancelProps = React.ComponentProps<\n typeof AlertDialogCancel\n>;\n","\"use client\";\n\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst buttonVariants = cva(\n [\n \"inline-flex items-center justify-center whitespace-nowrap rounded-lg text-sm font-medium\",\n \"transform-gpu transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-150 ease-smooth\",\n \"motion-reduce:transition-none\",\n \"disabled:status-disabled\",\n \"focus-visible:focus-ring\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n \"shrink-0 group/button select-none no-highlight\",\n ],\n {\n variants: {\n variant: {\n default: [\n // Base styles\n \"relative rounded-lg overflow-visible shadow-surface border border-primary dark:border-primary-dark\",\n \"isolate text-primary-foreground [text-shadow:_0_1px_2px_oklch(0%_0_0_/_30%)]\",\n \"[&>*]:relative [&>*]:z-[2]\",\n // Combined gradient layer with primary colors\n \"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]\",\n \"before:bg-gradient-to-br before:from-primary-light before:via-primary-middle before:to-primary-dark\",\n \"before:dark:from-primary-light before:dark:via-primary-middle before:dark:to-primary-dark\",\n \"before:z-[-1]\",\n // Additional outer border\n \"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]\",\n \"after:bg-gradient-to-br after:from-primary after:to-primary-dark\",\n \"after:z-[-1] after:transition-opacity after:duration-200 after:opacity-40 after:motion-reduce:transition-none\",\n // Hover state\n \"hover-only:after:opacity-100 hover-only:transition-opacity hover-only:duration-200\",\n ].join(\" \"),\n destructive:\n \"bg-destructive text-destructive-foreground hover-only:hover:bg-destructive-hover\",\n outline: [\n // Base styles\n \"relative rounded-lg overflow-visible shadow-field border\",\n \"isolate text-foreground\",\n \"[&>*]:relative [&>*]:z-[2]\",\n // Background layer\n \"before:pointer-events-none before:absolute before:inset-[-0.5px] before:rounded-[inherit]\",\n \"before:bg-gradient-to-br before:from-border-light before:via-border before:to-border-dark/50\",\n \"before:dark:from-border-light before:dark:to-border-dark\",\n \"before:z-[-1]\",\n // Inner background layer\n \"after:pointer-events-none after:absolute after:inset-[0.5px] after:rounded-[inherit]\",\n \"after:bg-background\",\n \"after:z-[-1]\",\n \"after:transition-colors after:duration-200 after:ease-out after:motion-reduce:transition-none\",\n // Hover state\n \"hover-only:after:bg-muted\",\n ].join(\" \"),\n secondary:\n \"bg-secondary text-secondary-foreground hover-only:hover:bg-accent\",\n ghost:\n \"hover-only:bg-accent hover-only:text-accent-foreground motion-safe:active:scale-100\",\n \"primary-soft\":\n \"bg-primary-soft text-primary hover-only:hover:bg-primary-soft-hover\",\n \"destructive-soft\":\n \"bg-destructive-soft text-destructive hover-only:hover:bg-destructive-soft-hover\",\n success:\n \"bg-success text-success-foreground hover-only:hover:bg-success-hover\",\n warning:\n \"bg-warning text-warning-foreground hover-only:hover:bg-warning-hover\",\n link: \"dark:text-primary-light text-primary-dark underline-offset-4 hover-only:underline motion-safe:active:scale-100\",\n },\n size: {\n default:\n \"h-9 gap-2 px-4 py-1 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 motion-safe:active:scale-[0.97]\",\n xs: \"h-6 gap-1 rounded-lg px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3 motion-safe:active:scale-[0.985]\",\n sm: \"h-8 gap-1.5 rounded-lg px-3 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 motion-safe:active:scale-[0.98]\",\n lg: \"h-10 gap-2 rounded-lg px-8 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3 motion-safe:active:scale-[0.96]\",\n icon: \"size-9 motion-safe:active:scale-[0.97]\",\n \"icon-xs\":\n \"size-6 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.985]\",\n \"icon-sm\":\n \"size-8 rounded-lg in-data-[slot=button-group]:rounded-md motion-safe:active:scale-[0.98]\",\n \"icon-lg\": \"size-10 motion-safe:active:scale-[0.96]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n isPending,\n nativeButton,\n render,\n ...props\n}: ButtonPrimitive.Props &\n VariantProps<typeof buttonVariants> & { isPending?: boolean }) {\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n data-pending={isPending || undefined}\n aria-disabled={isPending || undefined}\n nativeButton={nativeButton ?? (render ? false : undefined)}\n render={render}\n className={cn(\n buttonVariants({ variant, size }),\n isPending && \"status-pending\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n\nexport type ButtonProps = React.ComponentProps<typeof Button>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Autocomplete as AutocompletePrimitive } from \"@base-ui/react/autocomplete\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport { InputGroup, InputGroupAddon, InputGroupButton } from \"./input-group\";\n\nfunction Autocomplete({ ...props }: AutocompletePrimitive.Root.Props<any>) {\n return <AutocompletePrimitive.Root {...props} />;\n}\n\nfunction AutocompleteInput({\n className,\n showTrigger = false,\n children,\n ...props\n}: AutocompletePrimitive.Input.Props & {\n showTrigger?: boolean;\n}) {\n return (\n <InputGroup className=\"no-highlight transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none hover-only:border-field-border-hover data-[invalid]:border-field-border-invalid\">\n <AutocompletePrimitive.Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent px-3 py-2 text-sm shadow-none outline-none\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:ring-0\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n />\n {showTrigger && (\n <InputGroupAddon align=\"inline-end\">\n <AutocompleteTrigger />\n </InputGroupAddon>\n )}\n {children}\n </InputGroup>\n );\n}\n\nfunction AutocompleteTrigger({\n className,\n children,\n ...props\n}: AutocompletePrimitive.Trigger.Props) {\n return (\n <AutocompletePrimitive.Trigger\n data-slot=\"autocomplete-trigger\"\n aria-label=\"Toggle options\"\n {...props}\n render={\n <InputGroupButton\n variant=\"ghost\"\n size=\"icon-xs\"\n className={cn(\"group\", className)}\n />\n }\n >\n {children ?? (\n <ChevronDownIcon className=\"size-3.5 transition-transform duration-150 ease-smooth group-data-[open]:rotate-180 motion-reduce:transition-none\" />\n )}\n </AutocompletePrimitive.Trigger>\n );\n}\n\nfunction AutocompleteValue({ ...props }: AutocompletePrimitive.Value.Props) {\n return (\n <AutocompletePrimitive.Value data-slot=\"autocomplete-value\" {...props} />\n );\n}\n\nfunction AutocompleteContent({\n className,\n side = \"bottom\",\n sideOffset = 4,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: AutocompletePrimitive.Popup.Props &\n Pick<\n AutocompletePrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n >) {\n return (\n <AutocompletePrimitive.Portal>\n <AutocompletePrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n className=\"isolate z-50\"\n >\n <AutocompletePrimitive.Popup\n data-slot=\"autocomplete-content\"\n className={cn(\n \"group/autocomplete-content\",\n \"min-w-[8rem] overflow-hidden rounded-xl border border-border-light bg-overlay text-overlay-foreground shadow-overlay outline-none\",\n \"data-open:animate-in data-open:duration-200 data-open:[animation-timing-function:var(--ease-out-fluid)] data-closed:animate-out data-closed:duration-100 data-closed:[animation-timing-function:var(--ease-in-quart)] data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95\",\n \"data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]\",\n \"data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1\",\n \"max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-y-auto overscroll-contain\",\n \"motion-reduce:animate-none motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n </AutocompletePrimitive.Positioner>\n </AutocompletePrimitive.Portal>\n );\n}\n\nfunction AutocompleteList({\n className,\n ...props\n}: AutocompletePrimitive.List.Props) {\n return (\n <AutocompletePrimitive.List\n data-slot=\"autocomplete-list\"\n className={cn(\n \"scroll-py-1 overflow-y-auto overscroll-contain p-1\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AutocompleteItem({\n className,\n children,\n ...props\n}: AutocompletePrimitive.Item.Props) {\n return (\n <AutocompletePrimitive.Item\n data-slot=\"autocomplete-item\"\n className={cn(\n \"no-highlight relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 px-2 text-sm outline-none transition-colors duration-150 ease-smooth motion-reduce:transition-none\",\n \"data-highlighted:bg-primary-soft data-highlighted:text-foreground\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n >\n {children}\n </AutocompletePrimitive.Item>\n );\n}\n\nfunction AutocompleteEmpty({\n className,\n ...props\n}: AutocompletePrimitive.Empty.Props) {\n return (\n <AutocompletePrimitive.Empty\n data-slot=\"autocomplete-empty\"\n className={cn(\n \"empty:hidden py-6 text-center text-sm text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AutocompleteGroup({\n className,\n ...props\n}: AutocompletePrimitive.Group.Props) {\n return (\n <AutocompletePrimitive.Group\n data-slot=\"autocomplete-group\"\n className={cn(\"p-1\", className)}\n {...props}\n />\n );\n}\n\nfunction AutocompleteGroupLabel({\n className,\n ...props\n}: AutocompletePrimitive.GroupLabel.Props) {\n return (\n <AutocompletePrimitive.GroupLabel\n data-slot=\"autocomplete-group-label\"\n className={cn(\n \"px-2 py-1.5 text-xs font-medium text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AutocompleteSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof AutocompletePrimitive.Separator>) {\n return (\n <AutocompletePrimitive.Separator\n data-slot=\"autocomplete-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border-light\", className)}\n {...props}\n />\n );\n}\n\nfunction AutocompleteIcon({\n className,\n ...props\n}: AutocompletePrimitive.Icon.Props) {\n return (\n <AutocompletePrimitive.Icon\n data-slot=\"autocomplete-icon\"\n className={cn(\"\", className)}\n {...props}\n />\n );\n}\n\nfunction AutocompleteStatus({\n className,\n ...props\n}: AutocompletePrimitive.Status.Props) {\n return (\n <AutocompletePrimitive.Status\n data-slot=\"autocomplete-status\"\n className={cn(\"sr-only\", className)}\n {...props}\n />\n );\n}\n\nfunction AutocompleteArrow({\n className,\n ...props\n}: AutocompletePrimitive.Arrow.Props) {\n return (\n <AutocompletePrimitive.Arrow\n data-slot=\"autocomplete-arrow\"\n className={cn(\"fill-overlay stroke-border\", className)}\n {...props}\n />\n );\n}\n\nfunction AutocompleteBackdrop({\n className,\n ...props\n}: AutocompletePrimitive.Backdrop.Props) {\n return (\n <AutocompletePrimitive.Backdrop\n data-slot=\"autocomplete-backdrop\"\n className={cn(\"fixed inset-0 z-50\", className)}\n {...props}\n />\n );\n}\n\nconst AutocompleteCollection = AutocompletePrimitive.Collection;\n\nconst useAutocompleteFilter = AutocompletePrimitive.useFilter;\n\nexport {\n Autocomplete,\n AutocompleteCollection,\n AutocompleteInput,\n AutocompleteContent,\n AutocompleteList,\n AutocompleteItem,\n AutocompleteEmpty,\n AutocompleteGroup,\n AutocompleteGroupLabel,\n AutocompleteSeparator,\n AutocompleteTrigger,\n AutocompleteValue,\n AutocompleteIcon,\n AutocompleteStatus,\n AutocompleteArrow,\n AutocompleteBackdrop,\n useAutocompleteFilter,\n};\n\nexport type AutocompleteProps = React.ComponentProps<typeof Autocomplete>;\nexport type AutocompleteInputProps = React.ComponentProps<\n typeof AutocompleteInput\n>;\nexport type AutocompleteContentProps = React.ComponentProps<\n typeof AutocompleteContent\n>;\nexport type AutocompleteItemProps = React.ComponentProps<\n typeof AutocompleteItem\n>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { Input } from \"./input\";\nimport { Textarea } from \"./textarea\";\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"border-field-border bg-field-background hover-only:hover:border-field-border-hover has-[[data-slot=input-group-control]:focus-visible]:focus-field-ring has-[[data-slot][aria-invalid=true]]:border-field-border-invalid has-[[data-slot][aria-invalid=true]]:has-[[data-slot=input-group-control]:focus-visible]:invalid-field-ring h-9 rounded-md border shadow-field transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5 group/input-group relative flex w-full min-w-0 items-center outline-none has-[>textarea]:h-auto\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem] order-first\",\n \"inline-end\":\n \"pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem] order-last\",\n \"block-start\":\n \"px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start\",\n \"block-end\":\n \"px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n);\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return;\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\n \"gap-2 text-sm shadow-none flex items-center\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n },\n);\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\" | \"type\"> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: \"button\" | \"submit\" | \"reset\";\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"text-muted-foreground gap-2 text-sm [&_svg:not([class*='size-'])]:size-4 flex items-center [&_svg]:pointer-events-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 flex-1\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 flex-1 resize-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n inputGroupAddonVariants,\n inputGroupButtonVariants,\n};\n\nexport type InputGroupProps = React.ComponentProps<typeof InputGroup>;\nexport type InputGroupAddonProps = React.ComponentProps<typeof InputGroupAddon>;\nexport type InputGroupButtonProps = React.ComponentProps<\n typeof InputGroupButton\n>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Input as InputPrimitive } from \"@base-ui/react/input\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n \"border-field-border bg-field-background h-9 rounded-md border px-3 py-1 text-base shadow-field md:text-sm placeholder:text-muted-foreground w-full min-w-0 outline-none\",\n \"file:h-7 file:text-sm file:font-medium file:text-foreground file:inline-flex file:border-0 file:bg-transparent\",\n \"hover-only:hover:border-field-border-hover\",\n \"focus-visible:border-field-border-focus focus-visible:focus-field-ring\",\n \"aria-invalid:border-field-border-invalid aria-invalid:ring-1 aria-invalid:ring-destructive/30 aria-invalid:focus-visible:invalid-field-ring aria-invalid:focus-visible:ring-0\",\n \"disabled:status-disabled\",\n \"transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth\",\n \"motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n\nexport type InputProps = React.ComponentProps<typeof Input>;\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"border-field-border bg-field-background rounded-md border px-3 py-2 text-base shadow-field md:text-sm placeholder:text-muted-foreground flex field-sizing-content min-h-16 w-full outline-none\",\n \"hover-only:hover:border-field-border-hover\",\n \"focus-visible:border-field-border-focus focus-visible:focus-field-ring\",\n \"aria-invalid:border-field-border-invalid aria-invalid:ring-1 aria-invalid:ring-destructive/30 aria-invalid:focus-visible:invalid-field-ring aria-invalid:focus-visible:ring-0\",\n \"disabled:status-disabled\",\n \"transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth\",\n \"motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n\nexport type TextareaProps = React.ComponentProps<typeof Textarea>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Avatar as AvatarPrimitive } from \"@base-ui/react/avatar\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Avatar({\n className,\n size = \"default\",\n ...props\n}: AvatarPrimitive.Root.Props & {\n size?: \"default\" | \"sm\" | \"lg\";\n}) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n \"size-8 rounded-full after:rounded-full data-[size=lg]:size-10 data-[size=sm]:size-6 after:border-border group/avatar relative flex shrink-0 select-none after:absolute after:inset-0 after:border after:mix-blend-darken dark:after:mix-blend-lighten\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({ className, ...props }: AvatarPrimitive.Image.Props) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\n \"rounded-full aspect-square size-full object-cover\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: AvatarPrimitive.Fallback.Props) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"bg-surface-secondary text-muted-foreground rounded-full flex size-full items-center justify-center text-sm group-data-[size=sm]/avatar:text-xs\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarBadge({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n \"bg-primary text-primary-foreground ring-background absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-blend-color ring-2 select-none\",\n \"group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden\",\n \"group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2\",\n \"group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group\"\n className={cn(\n \"*:data-[slot=avatar]:ring-background group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarGroupCount({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\n \"bg-surface-secondary text-muted-foreground size-8 rounded-full text-sm group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3 ring-background relative flex shrink-0 items-center justify-center ring-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Avatar,\n AvatarImage,\n AvatarFallback,\n AvatarGroup,\n AvatarGroupCount,\n AvatarBadge,\n};\n\nexport type AvatarProps = React.ComponentProps<typeof Avatar>;\nexport type AvatarImageProps = React.ComponentProps<typeof AvatarImage>;\nexport type AvatarFallbackProps = React.ComponentProps<typeof AvatarFallback>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst badgeVariants = cva(\n [\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold\",\n \"transition-colors duration-150 ease-out motion-reduce:transition-none\",\n \"focus-visible:focus-ring\",\n \"select-none shrink-0\",\n ],\n {\n variants: {\n variant: {\n default: \"border-transparent bg-primary text-primary-foreground\",\n secondary: \"border-transparent bg-secondary text-secondary-foreground\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground\",\n outline: \"border-border text-foreground\",\n success: \"border-transparent bg-success text-success-foreground\",\n warning: \"border-transparent bg-warning text-warning-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction Badge({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"span\"> & VariantProps<typeof badgeVariants>) {\n return (\n <span\n data-slot=\"badge\"\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n\nexport type BadgeProps = React.ComponentProps<typeof Badge>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Breadcrumb({ ...props }: React.ComponentProps<\"nav\">) {\n return <nav data-slot=\"breadcrumb\" aria-label=\"breadcrumb\" {...props} />;\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<\"ol\">) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"flex flex-wrap items-center gap-1.5 text-sm text-muted-foreground sm:gap-2.5\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbLink({ className, ...props }: React.ComponentProps<\"a\">) {\n return (\n <a\n data-slot=\"breadcrumb-link\"\n className={cn(\n \"rounded-sm transition-colors duration-150 hover-only:hover:text-foreground focus-visible:focus-ring\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n );\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n\nexport type BreadcrumbProps = React.ComponentProps<typeof Breadcrumb>;\nexport type BreadcrumbListProps = React.ComponentProps<typeof BreadcrumbList>;\nexport type BreadcrumbItemProps = React.ComponentProps<typeof BreadcrumbItem>;\nexport type BreadcrumbLinkProps = React.ComponentProps<typeof BreadcrumbLink>;\nexport type BreadcrumbPageProps = React.ComponentProps<typeof BreadcrumbPage>;\nexport type BreadcrumbSeparatorProps = React.ComponentProps<\n typeof BreadcrumbSeparator\n>;\nexport type BreadcrumbEllipsisProps = React.ComponentProps<\n typeof BreadcrumbEllipsis\n>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst cardVariants = cva(\n [\n \"relative flex flex-col gap-3 overflow-hidden rounded-xl p-4\",\n \"text-foreground\",\n \"transition-[transform,box-shadow,border-color] duration-200 ease-out-fluid motion-reduce:transition-none\",\n ],\n {\n variants: {\n variant: {\n default: \"bg-surface shadow-surface\",\n secondary: \"bg-surface-secondary shadow-surface\",\n tertiary: \"bg-surface-tertiary shadow-surface\",\n elevated: \"bg-surface shadow-overlay\",\n transparent: \"bg-transparent shadow-none\",\n },\n interactive: {\n true: \"cursor-pointer hover-only:hover:-translate-y-0.5 hover-only:hover:shadow-overlay motion-safe:active:scale-[0.99]\",\n },\n },\n defaultVariants: { variant: \"default\" },\n },\n);\n\nfunction Card({\n className,\n variant,\n interactive,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof cardVariants>) {\n return (\n <div\n data-slot=\"card\"\n className={cn(cardVariants({ variant, interactive }), className)}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\"flex flex-col\", className)}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"h3\">) {\n return (\n <h3\n data-slot=\"card-title\"\n className={cn(\"text-sm font-medium\", className)}\n {...props}\n />\n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"card-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"flex flex-1 flex-col gap-1\", className)}\n {...props}\n />\n );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n cardVariants,\n};\n\nexport type CardProps = React.ComponentProps<typeof Card>;\nexport type CardHeaderProps = React.ComponentProps<typeof CardHeader>;\nexport type CardTitleProps = React.ComponentProps<typeof CardTitle>;\nexport type CardContentProps = React.ComponentProps<typeof CardContent>;\nexport type CardFooterProps = React.ComponentProps<typeof CardFooter>;\n","\"use client\";\n\nimport { cn } from \"../lib/utils\";\n\nconst gapMap: Record<number, string> = {\n 0: \"gap-0\",\n 1: \"gap-1\",\n 2: \"gap-2\",\n 3: \"gap-3\",\n 4: \"gap-4\",\n 5: \"gap-5\",\n 6: \"gap-6\",\n 8: \"gap-8\",\n 10: \"gap-10\",\n 12: \"gap-12\",\n};\n\n// Responsive: 1 col by default, N cols at breakpoint\nconst colClasses: Record<string, Record<number, string>> = {\n sm: {\n 1: \"sm:grid-cols-1\",\n 2: \"sm:grid-cols-2\",\n 3: \"sm:grid-cols-3\",\n 4: \"sm:grid-cols-4\",\n 5: \"sm:grid-cols-5\",\n 6: \"sm:grid-cols-6\",\n },\n md: {\n 1: \"md:grid-cols-1\",\n 2: \"md:grid-cols-2\",\n 3: \"md:grid-cols-3\",\n 4: \"md:grid-cols-4\",\n 5: \"md:grid-cols-5\",\n 6: \"md:grid-cols-6\",\n },\n lg: {\n 1: \"lg:grid-cols-1\",\n 2: \"lg:grid-cols-2\",\n 3: \"lg:grid-cols-3\",\n 4: \"lg:grid-cols-4\",\n 5: \"lg:grid-cols-5\",\n 6: \"lg:grid-cols-6\",\n },\n never: {\n 1: \"grid-cols-1\",\n 2: \"grid-cols-2\",\n 3: \"grid-cols-3\",\n 4: \"grid-cols-4\",\n 5: \"grid-cols-5\",\n 6: \"grid-cols-6\",\n },\n};\n\nconst spanClasses: Record<string, Record<number, string>> = {\n sm: {\n 1: \"sm:col-span-1\",\n 2: \"sm:col-span-2\",\n 3: \"sm:col-span-3\",\n 4: \"sm:col-span-4\",\n 5: \"sm:col-span-5\",\n 6: \"sm:col-span-6\",\n },\n md: {\n 1: \"md:col-span-1\",\n 2: \"md:col-span-2\",\n 3: \"md:col-span-3\",\n 4: \"md:col-span-4\",\n 5: \"md:col-span-5\",\n 6: \"md:col-span-6\",\n },\n lg: {\n 1: \"lg:col-span-1\",\n 2: \"lg:col-span-2\",\n 3: \"lg:col-span-3\",\n 4: \"lg:col-span-4\",\n 5: \"lg:col-span-5\",\n 6: \"lg:col-span-6\",\n },\n never: {\n 1: \"col-span-1\",\n 2: \"col-span-2\",\n 3: \"col-span-3\",\n 4: \"col-span-4\",\n 5: \"col-span-5\",\n 6: \"col-span-6\",\n },\n};\n\nfunction Columns({\n className,\n count = 3,\n gap = 4,\n collapse = \"md\",\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n count?: 1 | 2 | 3 | 4 | 5 | 6;\n gap?: number;\n collapse?: \"sm\" | \"md\" | \"lg\" | \"never\";\n}) {\n return (\n <div\n data-slot=\"columns\"\n className={cn(\n \"grid grid-cols-1\",\n colClasses[collapse]?.[count],\n gapMap[gap],\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nfunction Column({\n className,\n span = 1,\n collapse = \"md\",\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n span?: 1 | 2 | 3 | 4 | 5 | 6;\n collapse?: \"sm\" | \"md\" | \"lg\" | \"never\";\n}) {\n return (\n <div\n data-slot=\"column\"\n className={cn(span > 1 && spanClasses[collapse]?.[span], className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport { Columns, Column };\n\nexport type ColumnsProps = React.ComponentProps<typeof Columns>;\nexport type ColumnProps = React.ComponentProps<typeof Column>;\n","\"use client\";\n\nimport { cn } from \"../lib/utils\";\n\nconst maxWidthMap = {\n sm: \"max-w-sm\",\n md: \"max-w-md\",\n lg: \"max-w-lg\",\n xl: \"max-w-xl\",\n \"2xl\": \"max-w-2xl\",\n \"4xl\": \"max-w-4xl\",\n \"5xl\": \"max-w-5xl\",\n full: \"max-w-full\",\n} as const;\n\nconst paddingMap = {\n none: \"\",\n sm: \"px-3\",\n md: \"px-6\",\n lg: \"px-8\",\n} as const;\n\nfunction Container({\n className,\n maxWidth = \"5xl\",\n padding = \"md\",\n centered = true,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n maxWidth?: keyof typeof maxWidthMap;\n padding?: keyof typeof paddingMap;\n centered?: boolean;\n}) {\n return (\n <div\n data-slot=\"container\"\n className={cn(\n maxWidthMap[maxWidth],\n paddingMap[padding],\n centered && \"mx-auto\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport { Container };\n\nexport type ContainerProps = React.ComponentProps<typeof Container>;\n","\"use client\";\n\nimport { Checkbox as CheckboxPrimitive } from \"@base-ui/react/checkbox\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Checkbox({\n className,\n children,\n ...props\n}: CheckboxPrimitive.Root.Props) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"group flex gap-3 items-center text-sm font-medium leading-none peer select-none no-highlight outline-none\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n >\n {children}\n </CheckboxPrimitive.Root>\n );\n}\n\nfunction CheckboxControl({\n className,\n children,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"checkbox-control\"\n className={cn(\n \"size-4 shrink-0 rounded-md flex items-center justify-center overflow-hidden relative\",\n /* Border & Background */\n \"border border-field-border bg-field-background shadow-field\",\n /* Transition */\n \"transition-[color,background-color,border-color,box-shadow,transform] duration-200 ease-smooth\",\n \"motion-reduce:transition-none\",\n /* Focus */\n \"group-focus-visible:focus-ring\",\n /* Hover (unchecked) */\n \"hover-only:group-hover:border-field-border-hover\",\n /* Press */\n \"motion-safe:group-active:scale-[0.95]\",\n /* Checked */\n \"group-data-checked:bg-primary group-data-checked:border-transparent group-data-checked:text-primary-foreground\",\n \"hover-only:group-hover:group-data-checked:bg-primary-hover\",\n /* Indeterminate */\n \"group-data-indeterminate:bg-primary group-data-indeterminate:border-transparent group-data-indeterminate:text-primary-foreground\",\n /* Invalid (unchecked) */\n \"group-data-[invalid]:border-field-border-invalid\",\n /* Invalid (checked) */\n \"group-data-[invalid]:group-data-checked:bg-destructive group-data-[invalid]:group-data-checked:text-destructive-foreground\",\n /* Disabled — handled by root Checkbox's status-disabled */\n className,\n )}\n {...props}\n >\n {children}\n </span>\n );\n}\n\nfunction CheckboxIndicator({\n className,\n children,\n ...props\n}: Omit<CheckboxPrimitive.Indicator.Props, \"children\"> & {\n children?: React.ReactNode;\n}) {\n return (\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className={cn(\n \"flex items-center justify-center group-data-checked:[--check-offset:44]\",\n className,\n )}\n keepMounted\n aria-hidden=\"true\"\n {...props}\n >\n {children ?? (\n <>\n <svg\n className=\"size-3 group-data-indeterminate:hidden motion-safe:[transition:stroke-dashoffset_200ms_linear_50ms]\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeDasharray={22}\n strokeDashoffset=\"var(--check-offset, 66)\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={3}\n viewBox=\"0 0 17 18\"\n >\n <polyline points=\"1 9 7 14 15 4\" />\n </svg>\n <svg\n className=\"size-3 hidden group-data-indeterminate:block motion-safe:[transition:opacity_200ms_linear_50ms]\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeWidth={3}\n viewBox=\"0 0 24 24\"\n >\n <line x1=\"21\" x2=\"3\" y1=\"12\" y2=\"12\" />\n </svg>\n </>\n )}\n </CheckboxPrimitive.Indicator>\n );\n}\n\nexport { Checkbox, CheckboxControl, CheckboxIndicator };\n\nexport type CheckboxProps = React.ComponentProps<typeof Checkbox>;\n","\"use client\";\n\nimport { CheckboxGroup as CheckboxGroupPrimitive } from \"@base-ui/react/checkbox-group\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction CheckboxGroup({ className, ...props }: CheckboxGroupPrimitive.Props) {\n return (\n <CheckboxGroupPrimitive\n data-slot=\"checkbox-group\"\n className={cn(\n \"flex flex-col gap-2\",\n \"data-[orientation=horizontal]:flex-row data-[orientation=horizontal]:gap-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { CheckboxGroup };\n\nexport type CheckboxGroupProps = React.ComponentProps<typeof CheckboxGroup>;\n","\"use client\";\n\nimport { Collapsible as CollapsiblePrimitive } from \"@base-ui/react/collapsible\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Collapsible({ className, ...props }: CollapsiblePrimitive.Root.Props) {\n return (\n <CollapsiblePrimitive.Root\n data-slot=\"collapsible\"\n className={cn(className)}\n {...props}\n />\n );\n}\n\nfunction CollapsibleTrigger({\n className,\n ...props\n}: CollapsiblePrimitive.Trigger.Props) {\n return (\n <CollapsiblePrimitive.Trigger\n data-slot=\"collapsible-trigger\"\n className={cn(\"focus-visible:focus-ring no-highlight\", className)}\n {...props}\n />\n );\n}\n\nfunction CollapsibleContent({\n className,\n ...props\n}: CollapsiblePrimitive.Panel.Props) {\n return (\n <CollapsiblePrimitive.Panel\n data-slot=\"collapsible-content\"\n className={cn(\n \"overflow-hidden\",\n \"h-(--collapsible-panel-height) data-ending-style:h-0 data-starting-style:h-0\",\n \"transition-[height,opacity] duration-200 ease-smooth\",\n \"data-ending-style:opacity-0 data-starting-style:opacity-0\",\n \"motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n\nexport type CollapsibleProps = React.ComponentProps<typeof Collapsible>;\nexport type CollapsibleTriggerProps = React.ComponentProps<\n typeof CollapsibleTrigger\n>;\nexport type CollapsibleContentProps = React.ComponentProps<\n typeof CollapsibleContent\n>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Dialog as DialogPrimitive } from \"@base-ui/react/dialog\";\nimport { SearchIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\n/* -------------------------------------------------------------------------------------------------\n * Context\n * -------------------------------------------------------------------------------------------------*/\n\ninterface CommandContextValue {\n search: string;\n setSearch: (value: string) => void;\n highlightedIndex: number;\n setHighlightedIndex: React.Dispatch<React.SetStateAction<number>>;\n registerItem: (\n id: string,\n value: string,\n onSelect?: () => void,\n disabled?: boolean,\n ) => void;\n unregisterItem: (id: string) => void;\n getVisibleItems: () => Array<{\n id: string;\n value: string;\n onSelect?: () => void;\n disabled?: boolean;\n }>;\n filter: (value: string, search: string) => boolean;\n}\n\nconst CommandContext = React.createContext<CommandContextValue | null>(null);\n\nfunction useCommand() {\n const ctx = React.useContext(CommandContext);\n if (!ctx)\n throw new Error(\"Command components must be used within <CommandPalette>\");\n return ctx;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Default filter\n * -------------------------------------------------------------------------------------------------*/\n\nfunction defaultFilter(value: string, search: string): boolean {\n return value.toLowerCase().includes(search.toLowerCase());\n}\n\n/* -------------------------------------------------------------------------------------------------\n * CommandPalette\n * -------------------------------------------------------------------------------------------------*/\n\ninterface CommandPaletteProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n children: React.ReactNode;\n /** Filter function — defaults to case-insensitive includes match */\n filter?: (value: string, search: string) => boolean;\n}\n\nfunction CommandPalette({\n open,\n onOpenChange,\n children,\n filter,\n}: CommandPaletteProps) {\n const [search, setSearch] = React.useState(\"\");\n const itemsRef = React.useRef<\n Map<string, { value: string; onSelect?: () => void; disabled?: boolean }>\n >(new Map());\n const [highlightedIndex, setHighlightedIndex] = React.useState(0);\n\n const filterFn = filter ?? defaultFilter;\n\n const registerItem = React.useCallback(\n (id: string, value: string, onSelect?: () => void, disabled?: boolean) => {\n itemsRef.current.set(id, { value, onSelect, disabled });\n },\n [],\n );\n\n const unregisterItem = React.useCallback((id: string) => {\n itemsRef.current.delete(id);\n }, []);\n\n const getVisibleItems = React.useCallback(() => {\n const items: Array<{\n id: string;\n value: string;\n onSelect?: () => void;\n disabled?: boolean;\n }> = [];\n itemsRef.current.forEach((item, id) => {\n if (!search || filterFn(item.value, search)) {\n items.push({ id, ...item });\n }\n });\n return items;\n }, [search, filterFn]);\n\n // Reset search and highlight when dialog opens/closes\n React.useEffect(() => {\n if (open) {\n setSearch(\"\");\n setHighlightedIndex(0);\n }\n }, [open]);\n\n // Reset highlight when search changes\n React.useEffect(() => {\n setHighlightedIndex(0);\n }, [search]);\n\n const contextValue = React.useMemo<CommandContextValue>(\n () => ({\n search,\n setSearch,\n highlightedIndex,\n setHighlightedIndex,\n registerItem,\n unregisterItem,\n getVisibleItems,\n filter: filterFn,\n }),\n [\n search,\n highlightedIndex,\n registerItem,\n unregisterItem,\n getVisibleItems,\n filterFn,\n ],\n );\n\n return (\n <CommandContext.Provider value={contextValue}>\n <DialogPrimitive.Root\n data-slot=\"command-palette\"\n open={open}\n onOpenChange={onOpenChange}\n >\n {children}\n </DialogPrimitive.Root>\n </CommandContext.Provider>\n );\n}\n\n/* -------------------------------------------------------------------------------------------------\n * CommandInput\n * -------------------------------------------------------------------------------------------------*/\n\ninterface CommandInputProps extends React.ComponentProps<\"input\"> {\n /** Placeholder text */\n placeholder?: string;\n}\n\nfunction CommandInput({\n className,\n placeholder = \"Type a command or search...\",\n ...props\n}: CommandInputProps) {\n const {\n search,\n setSearch,\n highlightedIndex,\n setHighlightedIndex,\n getVisibleItems,\n } = useCommand();\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n const items = getVisibleItems();\n const enabledItems = items.filter((item) => !item.disabled);\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setHighlightedIndex((prev) => {\n const next = prev + 1;\n return next >= enabledItems.length ? 0 : next;\n });\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setHighlightedIndex((prev) => {\n const next = prev - 1;\n return next < 0 ? enabledItems.length - 1 : next;\n });\n } else if (e.key === \"Enter\") {\n e.preventDefault();\n if (enabledItems[highlightedIndex]?.onSelect) {\n enabledItems[highlightedIndex].onSelect();\n }\n }\n },\n [getVisibleItems, highlightedIndex, setHighlightedIndex],\n );\n\n return (\n <div\n data-slot=\"command-input-wrapper\"\n className={cn(\"flex items-center border-b border-border px-3\", className)}\n >\n <SearchIcon className=\"mr-2 size-4 shrink-0 text-muted-foreground\" />\n <input\n data-slot=\"command-input\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n className=\"flex h-11 w-full bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:status-disabled\"\n autoFocus\n {...props}\n />\n </div>\n );\n}\n\n/* -------------------------------------------------------------------------------------------------\n * CommandGroup\n * -------------------------------------------------------------------------------------------------*/\n\ninterface CommandGroupProps extends React.ComponentProps<\"div\"> {\n /** Group heading */\n heading?: string;\n}\n\nfunction CommandGroup({\n className,\n heading,\n children,\n ...props\n}: CommandGroupProps) {\n return (\n <div\n data-slot=\"command-group\"\n className={cn(\"overflow-hidden p-1\", className)}\n {...props}\n >\n {heading && (\n <div\n data-slot=\"command-group-heading\"\n className=\"px-3 py-1.5 text-xs font-medium text-muted-foreground uppercase tracking-wider\"\n >\n {heading}\n </div>\n )}\n {children}\n </div>\n );\n}\n\n/* -------------------------------------------------------------------------------------------------\n * CommandItem\n * -------------------------------------------------------------------------------------------------*/\n\ninterface CommandItemProps extends React.ComponentProps<\"div\"> {\n /** Value used for filtering */\n value: string;\n /** Callback when item is selected */\n onSelect?: () => void;\n /** Whether item is disabled */\n disabled?: boolean;\n /** Keyboard shortcut to display */\n shortcut?: string;\n}\n\nfunction CommandItem({\n className,\n value,\n onSelect,\n disabled = false,\n shortcut,\n children,\n ...props\n}: CommandItemProps) {\n const {\n search,\n filter,\n registerItem,\n unregisterItem,\n highlightedIndex,\n getVisibleItems,\n } = useCommand();\n const idRef = React.useRef(React.useId());\n\n React.useEffect(() => {\n registerItem(idRef.current, value, onSelect, disabled);\n return () => unregisterItem(idRef.current);\n }, [value, onSelect, disabled, registerItem, unregisterItem]);\n\n // Determine visibility\n const isVisible = !search || filter(value, search);\n if (!isVisible) return null;\n\n // Determine if this item is highlighted\n const visibleItems = getVisibleItems();\n const enabledItems = visibleItems.filter((item) => !item.disabled);\n const isHighlighted =\n !disabled && enabledItems[highlightedIndex]?.id === idRef.current;\n\n return (\n <div\n data-slot=\"command-item\"\n data-highlighted={isHighlighted ? \"\" : undefined}\n data-disabled={disabled ? \"\" : undefined}\n role=\"option\"\n aria-selected={isHighlighted}\n aria-disabled={disabled}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md px-3 py-2.5 text-sm outline-none\",\n \"transition-colors duration-100 ease-smooth\",\n isHighlighted && \"bg-surface-secondary\",\n \"hover-only:hover:bg-surface-secondary\",\n disabled && \"status-disabled pointer-events-none\",\n className,\n )}\n onClick={() => {\n if (!disabled && onSelect) onSelect();\n }}\n {...props}\n >\n {children}\n {shortcut && (\n <span\n data-slot=\"command-shortcut\"\n className=\"ml-auto text-xs text-muted-foreground bg-surface-secondary rounded px-1.5 py-0.5 font-mono\"\n >\n {shortcut}\n </span>\n )}\n </div>\n );\n}\n\n/* -------------------------------------------------------------------------------------------------\n * CommandEmpty\n * -------------------------------------------------------------------------------------------------*/\n\ninterface CommandEmptyProps extends React.ComponentProps<\"div\"> {}\n\nfunction CommandEmpty({ className, children, ...props }: CommandEmptyProps) {\n const { search, getVisibleItems } = useCommand();\n\n // Only show when there's a search query and no results\n if (!search || getVisibleItems().length > 0) return null;\n\n return (\n <div\n data-slot=\"command-empty\"\n className={cn(\n \"py-6 text-center text-sm text-muted-foreground\",\n className,\n )}\n {...props}\n >\n {children ?? \"No results found.\"}\n </div>\n );\n}\n\n/* -------------------------------------------------------------------------------------------------\n * CommandSeparator\n * -------------------------------------------------------------------------------------------------*/\n\ninterface CommandSeparatorProps extends React.ComponentProps<\"div\"> {}\n\nfunction CommandSeparator({ className, ...props }: CommandSeparatorProps) {\n return (\n <div\n data-slot=\"command-separator\"\n className={cn(\"h-px bg-border mx-2\", className)}\n {...props}\n />\n );\n}\n\n/* -------------------------------------------------------------------------------------------------\n * CommandPalette Content (internal — composes Dialog primitives)\n * -------------------------------------------------------------------------------------------------*/\n\nfunction CommandPaletteContent({\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <DialogPrimitive.Portal data-slot=\"command-palette-portal\">\n <DialogPrimitive.Backdrop\n data-slot=\"command-palette-overlay\"\n className=\"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-overlay-backdrop duration-200 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 isolate z-50 transition motion-reduce:animate-none motion-reduce:transition-none\"\n />\n <DialogPrimitive.Popup\n data-slot=\"command-palette-content\"\n className={cn(\n \"bg-overlay text-overlay-foreground shadow-overlay\",\n \"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-[0.98] data-open:zoom-in-[1.02]\",\n \"fixed top-[20%] left-1/2 z-50 w-full max-w-lg -translate-x-1/2 rounded-xl overflow-hidden outline-none\",\n \"duration-200 ease-out-fluid transition\",\n \"data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]\",\n \"motion-reduce:animate-none motion-reduce:transition-none\",\n className,\n )}\n {...(props as DialogPrimitive.Popup.Props)}\n >\n {children}\n </DialogPrimitive.Popup>\n </DialogPrimitive.Portal>\n );\n}\n\n/* -------------------------------------------------------------------------------------------------\n * CommandList (scrollable area for items)\n * -------------------------------------------------------------------------------------------------*/\n\nfunction CommandList({\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"command-list\"\n className={cn(\n \"max-h-[300px] overflow-y-auto overscroll-contain\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------------------------------*/\n\nexport {\n CommandPalette,\n CommandPaletteContent,\n CommandInput,\n CommandGroup,\n CommandItem,\n CommandEmpty,\n CommandSeparator,\n CommandList,\n};\n\nexport type {\n CommandPaletteProps,\n CommandInputProps,\n CommandGroupProps,\n CommandItemProps,\n CommandEmptyProps,\n CommandSeparatorProps,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Popover as PopoverPrimitive } from \"@base-ui/react/popover\";\nimport { Pipette } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport {\n type OklchColor,\n type ColorFormat,\n parseColor,\n formatColor,\n oklchToRgb,\n clamp,\n renderAreaGradient,\n maxChromaForLH,\n gamutMapChroma,\n} from \"../lib/color-utils\";\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\ninterface ColorPickerContextValue {\n color: OklchColor;\n setChannel: (channel: \"l\" | \"c\" | \"h\" | \"a\", value: number) => void;\n setColor: (color: OklchColor) => void;\n setColorFromString: (css: string) => void;\n cssValue: string;\n outputFormat: ColorFormat;\n disabled: boolean;\n enableAlpha: boolean;\n isDragging: boolean;\n setIsDragging: (v: boolean) => void;\n onInteractionEnd: () => void;\n}\n\nconst ColorPickerCtx = React.createContext<ColorPickerContextValue | null>(\n null,\n);\n\nfunction useColorPicker() {\n const ctx = React.useContext(ColorPickerCtx);\n if (!ctx)\n throw new Error(\n \"ColorPicker sub-components must be used within <ColorPicker>\",\n );\n return ctx;\n}\n\n// ---------------------------------------------------------------------------\n// Root — <ColorPicker>\n// ---------------------------------------------------------------------------\n\ninterface ColorPickerProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n onValueCommit?: (value: string) => void;\n outputFormat?: ColorFormat;\n name?: string;\n disabled?: boolean;\n enableAlpha?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: React.ReactNode;\n className?: string;\n}\n\nfunction ColorPicker({\n value: controlledValue,\n defaultValue = \"#6366f1\",\n onValueChange,\n onValueCommit,\n outputFormat = \"hex\",\n name,\n disabled = false,\n enableAlpha = false,\n open,\n onOpenChange,\n children,\n className,\n}: ColorPickerProps) {\n const [internal, setInternal] = React.useState<OklchColor>(\n () =>\n parseColor(controlledValue ?? defaultValue) ?? {\n l: 0.55,\n c: 0.25,\n h: 264,\n a: 1,\n },\n );\n const [isDragging, setIsDragging] = React.useState(false);\n\n // Update internal when controlled value changes\n const prevControlled = React.useRef(controlledValue);\n React.useEffect(() => {\n if (\n controlledValue !== undefined &&\n controlledValue !== prevControlled.current\n ) {\n prevControlled.current = controlledValue;\n const parsed = parseColor(controlledValue);\n if (parsed) setInternal(parsed);\n }\n }, [controlledValue]);\n\n const color = React.useMemo(() => {\n if (controlledValue !== undefined) {\n return parseColor(controlledValue) ?? internal;\n }\n return internal;\n }, [controlledValue, internal]);\n\n const cssValue = React.useMemo(\n () => formatColor(color, outputFormat),\n [color, outputFormat],\n );\n\n const updateColor = React.useCallback(\n (next: OklchColor) => {\n setInternal(next);\n const formatted = formatColor(next, outputFormat);\n onValueChange?.(formatted);\n },\n [outputFormat, onValueChange],\n );\n\n const setChannel = React.useCallback(\n (channel: \"l\" | \"c\" | \"h\" | \"a\", value: number) => {\n updateColor({ ...color, [channel]: value });\n },\n [color, updateColor],\n );\n\n const setColor = React.useCallback(\n (next: OklchColor) => {\n updateColor(next);\n },\n [updateColor],\n );\n\n const setColorFromString = React.useCallback(\n (css: string) => {\n const parsed = parseColor(css);\n if (parsed) updateColor(parsed);\n },\n [updateColor],\n );\n\n const onInteractionEnd = React.useCallback(() => {\n const formatted = formatColor(color, outputFormat);\n onValueCommit?.(formatted);\n }, [color, outputFormat, onValueCommit]);\n\n const ctx = React.useMemo<ColorPickerContextValue>(\n () => ({\n color,\n setChannel,\n setColor,\n setColorFromString,\n cssValue,\n outputFormat,\n disabled,\n enableAlpha,\n isDragging,\n setIsDragging,\n onInteractionEnd,\n }),\n [\n color,\n setChannel,\n setColor,\n setColorFromString,\n cssValue,\n outputFormat,\n disabled,\n enableAlpha,\n isDragging,\n setIsDragging,\n onInteractionEnd,\n ],\n );\n\n return (\n <ColorPickerCtx value={ctx}>\n <PopoverPrimitive.Root open={open} onOpenChange={onOpenChange}>\n <div data-slot=\"color-picker\" className={cn(\"inline-flex\", className)}>\n {children}\n {name && <input type=\"hidden\" name={name} value={cssValue} />}\n </div>\n </PopoverPrimitive.Root>\n </ColorPickerCtx>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Trigger — <ColorPickerTrigger>\n// ---------------------------------------------------------------------------\n\nfunction ColorPickerTrigger({\n className,\n children,\n ...props\n}: PopoverPrimitive.Trigger.Props) {\n const { cssValue, disabled } = useColorPicker();\n\n return (\n <PopoverPrimitive.Trigger\n data-slot=\"color-picker-trigger\"\n disabled={disabled}\n className={cn(\n \"inline-flex items-center gap-2 rounded-md border border-border bg-surface px-3 py-2 text-sm\",\n \"focus-visible:focus-ring\",\n \"disabled:status-disabled\",\n \"transition-colors duration-150 motion-reduce:transition-none\",\n className,\n )}\n {...props}\n >\n <span\n className=\"size-5 shrink-0 rounded-sm border border-border/50 shadow-sm\"\n style={{ backgroundColor: cssValue }}\n />\n {children ?? (\n <span className=\"font-mono text-xs uppercase\">{cssValue}</span>\n )}\n </PopoverPrimitive.Trigger>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Content — <ColorPickerContent>\n// ---------------------------------------------------------------------------\n\nfunction ColorPickerContent({\n className,\n sideOffset = 8,\n align = \"start\",\n ...props\n}: PopoverPrimitive.Popup.Props &\n Pick<PopoverPrimitive.Positioner.Props, \"sideOffset\" | \"align\">) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner\n sideOffset={sideOffset}\n align={align}\n className=\"isolate z-50\"\n >\n <PopoverPrimitive.Popup\n data-slot=\"color-picker-content\"\n className={cn(\n \"flex w-64 flex-col gap-3 rounded-lg bg-overlay p-3 shadow-overlay outline-none\",\n \"origin-(--transform-origin)\",\n \"data-open:animate-in data-open:duration-150 data-open:[animation-timing-function:var(--ease-out-fluid)]\",\n \"data-closed:animate-out data-closed:duration-100 data-closed:[animation-timing-function:var(--ease-in-quart)]\",\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n \"data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]\",\n \"motion-reduce:animate-none motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Area — <ColorPickerArea> + <ColorPickerAreaThumb>\n// ---------------------------------------------------------------------------\n\nfunction ColorPickerArea({\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\">) {\n const { color, setColor, disabled, setIsDragging, onInteractionEnd } =\n useColorPicker();\n const canvasRef = React.useRef<HTMLCanvasElement>(null);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const prevHue = React.useRef<number>(color.h);\n\n // Re-render canvas when hue changes\n React.useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n const ctx = canvas.getContext(\"2d\", { willReadFrequently: true });\n if (!ctx) return;\n\n const w = 128;\n const h = 128;\n canvas.width = w;\n canvas.height = h;\n\n const imageData = renderAreaGradient(w, h, color.h);\n ctx.putImageData(imageData, 0, 0);\n prevHue.current = color.h;\n }, [color.h]);\n\n const computeFromPointer = React.useCallback(\n (clientX: number, clientY: number) => {\n const el = containerRef.current;\n if (!el) return;\n const rect = el.getBoundingClientRect();\n const x = clamp((clientX - rect.left) / rect.width, 0, 1);\n const y = clamp((clientY - rect.top) / rect.height, 0, 1);\n const c = x * 0.4;\n const l = 1 - y;\n const clamped = gamutMapChroma(l, c, color.h);\n setColor({ ...color, l, c: Math.min(c, clamped) });\n },\n [color, setColor],\n );\n\n const handlePointerDown = React.useCallback(\n (e: React.PointerEvent) => {\n if (disabled) return;\n e.preventDefault();\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n setIsDragging(true);\n computeFromPointer(e.clientX, e.clientY);\n },\n [disabled, setIsDragging, computeFromPointer],\n );\n\n const handlePointerMove = React.useCallback(\n (e: React.PointerEvent) => {\n if (!(e.currentTarget as HTMLElement).hasPointerCapture(e.pointerId))\n return;\n computeFromPointer(e.clientX, e.clientY);\n },\n [computeFromPointer],\n );\n\n const handlePointerUp = React.useCallback(() => {\n setIsDragging(false);\n onInteractionEnd();\n }, [setIsDragging, onInteractionEnd]);\n\n // Keyboard nav for area\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled) return;\n const step = e.shiftKey ? 0.005 : 0.02;\n let { l, c } = color;\n let handled = true;\n\n switch (e.key) {\n case \"ArrowRight\":\n c = Math.min(c + step, 0.4);\n break;\n case \"ArrowLeft\":\n c = Math.max(c - step, 0);\n break;\n case \"ArrowUp\":\n l = Math.min(l + step, 1);\n break;\n case \"ArrowDown\":\n l = Math.max(l - step, 0);\n break;\n case \"Home\":\n c = 0;\n break;\n case \"End\":\n c = 0.4;\n break;\n case \"PageUp\":\n l = 1;\n break;\n case \"PageDown\":\n l = 0;\n break;\n default:\n handled = false;\n }\n\n if (handled) {\n e.preventDefault();\n const clamped = gamutMapChroma(l, c, color.h);\n setColor({ ...color, l, c: Math.min(c, clamped) });\n onInteractionEnd();\n }\n },\n [color, setColor, disabled, onInteractionEnd],\n );\n\n // Thumb position\n const thumbX = clamp(color.c / 0.4, 0, 1) * 100;\n const thumbY = (1 - color.l) * 100;\n\n return (\n <div\n ref={containerRef}\n data-slot=\"color-picker-area\"\n role=\"slider\"\n aria-label=\"Color area\"\n aria-valuetext={`Lightness ${Math.round(color.l * 100)}%, Chroma ${Math.round((color.c / 0.4) * 100)}%`}\n tabIndex={disabled ? -1 : 0}\n className={cn(\n \"relative aspect-square w-full cursor-crosshair overflow-hidden rounded-md touch-none select-none\",\n \"focus-visible:focus-ring\",\n disabled && \"pointer-events-none opacity-50\",\n className,\n )}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onKeyDown={handleKeyDown}\n {...props}\n >\n <canvas\n ref={canvasRef}\n className=\"pointer-events-none absolute inset-0 size-full\"\n style={{ imageRendering: \"auto\" }}\n />\n {children ?? (\n <ColorPickerAreaThumb\n style={{ left: `${thumbX}%`, top: `${thumbY}%` }}\n />\n )}\n </div>\n );\n}\n\nfunction ColorPickerAreaThumb({\n className,\n style,\n ...props\n}: React.ComponentProps<\"div\">) {\n const { color, isDragging } = useColorPicker();\n const [r, g, b] = oklchToRgb(color.l, color.c, color.h);\n\n return (\n <div\n data-slot=\"color-picker-area-thumb\"\n className={cn(\n \"pointer-events-none absolute size-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white shadow-md\",\n \"transition-transform duration-150 ease-smooth motion-reduce:transition-none\",\n isDragging && \"scale-110 shadow-lg\",\n className,\n )}\n style={{\n backgroundColor: `rgb(${r}, ${g}, ${b})`,\n ...style,\n }}\n {...props}\n />\n );\n}\n\n// ---------------------------------------------------------------------------\n// Slider — <ColorPickerSlider> + <ColorPickerSliderThumb>\n// ---------------------------------------------------------------------------\n\ninterface ColorPickerSliderProps extends Omit<\n React.ComponentProps<\"div\">,\n \"onChange\"\n> {\n channel: \"hue\" | \"alpha\";\n}\n\nfunction ColorPickerSlider({\n channel,\n className,\n children,\n ...props\n}: ColorPickerSliderProps) {\n const {\n color,\n setChannel,\n disabled,\n setIsDragging,\n onInteractionEnd,\n enableAlpha,\n } = useColorPicker();\n const trackRef = React.useRef<HTMLDivElement>(null);\n\n if (channel === \"alpha\" && !enableAlpha) return null;\n\n const isHue = channel === \"hue\";\n const value = isHue ? color.h : color.a;\n const min = 0;\n const max = isHue ? 360 : 1;\n\n const pct = ((value - min) / (max - min)) * 100;\n\n const computeValue = React.useCallback(\n (clientX: number) => {\n const el = trackRef.current;\n if (!el) return value;\n const rect = el.getBoundingClientRect();\n const ratio = clamp((clientX - rect.left) / rect.width, 0, 1);\n return min + ratio * (max - min);\n },\n [min, max, value],\n );\n\n const handlePointerDown = React.useCallback(\n (e: React.PointerEvent) => {\n if (disabled) return;\n e.preventDefault();\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n setIsDragging(true);\n const v = computeValue(e.clientX);\n setChannel(isHue ? \"h\" : \"a\", v);\n },\n [disabled, setIsDragging, computeValue, setChannel, isHue],\n );\n\n const handlePointerMove = React.useCallback(\n (e: React.PointerEvent) => {\n if (!(e.currentTarget as HTMLElement).hasPointerCapture(e.pointerId))\n return;\n const v = computeValue(e.clientX);\n setChannel(isHue ? \"h\" : \"a\", v);\n },\n [computeValue, setChannel, isHue],\n );\n\n const handlePointerUp = React.useCallback(() => {\n setIsDragging(false);\n onInteractionEnd();\n }, [setIsDragging, onInteractionEnd]);\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (disabled) return;\n const coarseStep = isHue ? 10 : 0.05;\n const fineStep = isHue ? 1 : 0.01;\n const step = e.shiftKey ? fineStep : coarseStep;\n let v = value;\n let handled = true;\n\n switch (e.key) {\n case \"ArrowRight\":\n case \"ArrowUp\":\n v = Math.min(v + step, max);\n break;\n case \"ArrowLeft\":\n case \"ArrowDown\":\n v = Math.max(v - step, min);\n break;\n case \"Home\":\n v = min;\n break;\n case \"End\":\n v = max;\n break;\n default:\n handled = false;\n }\n\n if (handled) {\n e.preventDefault();\n setChannel(isHue ? \"h\" : \"a\", v);\n onInteractionEnd();\n }\n },\n [disabled, isHue, value, min, max, setChannel, onInteractionEnd],\n );\n\n // Build gradient\n const gradient = isHue\n ? `linear-gradient(to right, ${Array.from({ length: 13 }, (_, i) => {\n const h = (i / 12) * 360;\n const [r, g, b] = oklchToRgb(0.7, 0.15, h);\n return `rgb(${r},${g},${b})`;\n }).join(\",\")})`\n : (() => {\n const [r, g, b] = oklchToRgb(color.l, color.c, color.h);\n return `linear-gradient(to right, transparent, rgb(${r},${g},${b}))`;\n })();\n\n return (\n <div\n ref={trackRef}\n data-slot=\"color-picker-slider\"\n data-channel={channel}\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n aria-label={isHue ? \"Hue\" : \"Alpha\"}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={Math.round(isHue ? value : value * 100)}\n className={cn(\n \"group relative h-3 w-full cursor-pointer rounded-full touch-none select-none\",\n \"focus-visible:focus-ring\",\n disabled && \"pointer-events-none opacity-50\",\n !isHue && \"checkerboard\",\n className,\n )}\n style={isHue ? { background: gradient } : undefined}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {/* Alpha: gradient overlay on top of checkerboard */}\n {!isHue && (\n <div\n className=\"absolute inset-0 rounded-full\"\n style={{ background: gradient }}\n />\n )}\n {children ?? <ColorPickerSliderThumb style={{ left: `${pct}%` }} />}\n </div>\n );\n}\n\nfunction ColorPickerSliderThumb({\n className,\n style,\n ...props\n}: React.ComponentProps<\"div\">) {\n const { isDragging } = useColorPicker();\n\n return (\n <div\n data-slot=\"color-picker-slider-thumb\"\n className={cn(\n \"pointer-events-none absolute top-1/2 size-4 -translate-x-1/2 -translate-y-1/2 rounded-full border-2 border-white bg-white shadow-md\",\n \"transition-transform duration-150 ease-smooth motion-reduce:transition-none\",\n isDragging && \"scale-110 shadow-lg\",\n className,\n )}\n style={style}\n {...props}\n />\n );\n}\n\n// ---------------------------------------------------------------------------\n// Input — <ColorPickerInput>\n// ---------------------------------------------------------------------------\n\nfunction ColorPickerInput({\n className,\n ...props\n}: Omit<React.ComponentProps<\"input\">, \"value\" | \"onChange\">) {\n const { cssValue, setColorFromString, disabled, onInteractionEnd } =\n useColorPicker();\n const [local, setLocal] = React.useState(cssValue);\n const [focused, setFocused] = React.useState(false);\n\n // Sync local with ctx when not focused\n React.useEffect(() => {\n if (!focused) setLocal(cssValue);\n }, [cssValue, focused]);\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const v = e.target.value;\n setLocal(v);\n setColorFromString(v);\n },\n [setColorFromString],\n );\n\n const handleBlur = React.useCallback(() => {\n setFocused(false);\n setLocal(cssValue);\n onInteractionEnd();\n }, [cssValue, onInteractionEnd]);\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n setColorFromString(local);\n onInteractionEnd();\n (e.target as HTMLInputElement).blur();\n }\n },\n [local, setColorFromString, onInteractionEnd],\n );\n\n return (\n <input\n data-slot=\"color-picker-input\"\n type=\"text\"\n value={local}\n disabled={disabled}\n className={cn(\n \"h-8 w-full min-w-0 flex-1 rounded-md border border-field-border bg-field-background shadow-field px-2 font-mono text-xs\",\n \"hover-only:hover:border-field-border-hover\",\n \"focus-visible:focus-field-ring\",\n \"disabled:status-disabled\",\n className,\n )}\n onChange={handleChange}\n onFocus={() => setFocused(true)}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n {...props}\n />\n );\n}\n\n// ---------------------------------------------------------------------------\n// EyeDropper — <ColorPickerEyeDropper>\n// ---------------------------------------------------------------------------\n\nfunction ColorPickerEyeDropper({\n className,\n ...props\n}: React.ComponentProps<\"button\">) {\n const { setColorFromString, disabled, onInteractionEnd } = useColorPicker();\n const [supported, setSupported] = React.useState(false);\n\n React.useEffect(() => {\n setSupported(\"EyeDropper\" in window);\n }, []);\n\n const handleClick = React.useCallback(async () => {\n try {\n const dropper = new (window as any).EyeDropper();\n const result = await dropper.open();\n if (result?.sRGBHex) {\n setColorFromString(result.sRGBHex);\n onInteractionEnd();\n }\n } catch {\n // User cancelled\n }\n }, [setColorFromString, onInteractionEnd]);\n\n if (!supported) return null;\n\n return (\n <button\n type=\"button\"\n data-slot=\"color-picker-eye-dropper\"\n aria-label=\"Pick color from screen\"\n disabled={disabled}\n className={cn(\n \"inline-flex size-8 shrink-0 items-center justify-center rounded-md border border-border bg-surface text-muted-foreground\",\n \"hover-only:hover:bg-surface-secondary hover-only:hover:text-foreground\",\n \"focus-visible:focus-ring\",\n \"disabled:status-disabled\",\n \"transition-colors duration-150 motion-reduce:transition-none\",\n className,\n )}\n onClick={handleClick}\n {...props}\n >\n <Pipette className=\"size-3.5\" />\n </button>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Swatches — <ColorPickerSwatches> + <ColorPickerSwatch>\n// ---------------------------------------------------------------------------\n\nfunction ColorPickerSwatches({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"color-picker-swatches\"\n className={cn(\"flex flex-wrap gap-1\", className)}\n {...props}\n />\n );\n}\n\ninterface ColorPickerSwatchProps extends React.ComponentProps<\"button\"> {\n value: string;\n}\n\nfunction ColorPickerSwatch({\n value,\n className,\n ...props\n}: ColorPickerSwatchProps) {\n const { setColorFromString, disabled, onInteractionEnd, cssValue } =\n useColorPicker();\n\n // Parse the swatch value to compare\n const parsed = React.useMemo(() => parseColor(value), [value]);\n const swatchCss = React.useMemo(\n () => (parsed ? formatColor(parsed, \"hex\") : value),\n [parsed, value],\n );\n\n const handleClick = React.useCallback(() => {\n setColorFromString(value);\n onInteractionEnd();\n }, [value, setColorFromString, onInteractionEnd]);\n\n // Simple active check\n const isActive = cssValue.toLowerCase() === swatchCss.toLowerCase();\n\n return (\n <button\n type=\"button\"\n data-slot=\"color-picker-swatch\"\n data-active={isActive || undefined}\n disabled={disabled}\n className={cn(\n \"size-6 rounded-sm border border-border/50 shadow-sm\",\n \"motion-safe:hover-only:hover:scale-110 focus-visible:focus-ring\",\n \"disabled:status-disabled\",\n \"transition-transform duration-150 ease-smooth motion-reduce:transition-none\",\n \"data-active:ring-2 data-active:ring-ring data-active:ring-offset-1 data-active:ring-offset-overlay\",\n className,\n )}\n style={{ backgroundColor: value }}\n onClick={handleClick}\n title={value}\n {...props}\n />\n );\n}\n\n// ---------------------------------------------------------------------------\n// Inline wrapper — use <ColorPicker> + <ColorPickerContent> without popover\n// ---------------------------------------------------------------------------\n// Users can just not use Trigger/Content and render sub-components directly.\n// The Popover primitives are only activated when Trigger + Content are used.\n\n// ---------------------------------------------------------------------------\n// Exports\n// ---------------------------------------------------------------------------\n\nexport {\n ColorPicker,\n ColorPickerTrigger,\n ColorPickerContent,\n ColorPickerArea,\n ColorPickerAreaThumb,\n ColorPickerSlider,\n ColorPickerSliderThumb,\n ColorPickerInput,\n ColorPickerEyeDropper,\n ColorPickerSwatches,\n ColorPickerSwatch,\n};\n\nexport type { ColorPickerProps };\nexport type ColorPickerTriggerProps = React.ComponentProps<\n typeof ColorPickerTrigger\n>;\nexport type ColorPickerContentProps = React.ComponentProps<\n typeof ColorPickerContent\n>;\n","/* ============================================================\n * color-utils — OKLCH-native color conversion & gamut mapping\n * ============================================================\n * Pure math, no React.\n * All internal state uses OKLCH { l, c, h, a }.\n * Provides parsing from CSS strings and formatting to hex/oklch/rgb/hsl.\n * ============================================================ */\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport interface OklchColor {\n l: number; // 0 – 1 (lightness)\n c: number; // 0 – 0.4 (chroma)\n h: number; // 0 – 360 (hue, degrees)\n a: number; // 0 – 1 (alpha)\n}\n\nexport type ColorFormat = \"hex\" | \"oklch\" | \"rgb\" | \"hsl\";\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\nconst DEG = Math.PI / 180;\nconst MAX_CHROMA = 0.4;\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nexport function clamp(v: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, v));\n}\n\nfunction round(v: number, d: number): number {\n const f = 10 ** d;\n return Math.round(v * f) / f;\n}\n\n// ---------------------------------------------------------------------------\n// OKLCH ↔ OKLab\n// ---------------------------------------------------------------------------\n\nfunction oklchToOklab(l: number, c: number, h: number) {\n const hRad = h * DEG;\n return { L: l, a: c * Math.cos(hRad), b: c * Math.sin(hRad) };\n}\n\nfunction oklabToOklch(L: number, a: number, b: number) {\n const c = Math.sqrt(a * a + b * b);\n let h = Math.atan2(b, a) / DEG;\n if (h < 0) h += 360;\n return { l: L, c, h };\n}\n\n// ---------------------------------------------------------------------------\n// OKLab ↔ Linear sRGB\n// ---------------------------------------------------------------------------\n\nfunction oklabToLinearRgb(L: number, a: number, b: number) {\n const l_ = L + 0.3963377774 * a + 0.2158037573 * b;\n const m_ = L - 0.1055613458 * a - 0.0638541728 * b;\n const s_ = L - 0.0894841775 * a - 1.291485548 * b;\n\n const l = l_ * l_ * l_;\n const m = m_ * m_ * m_;\n const s = s_ * s_ * s_;\n\n return {\n r: +4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s,\n g: -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s,\n b: -0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s,\n };\n}\n\nfunction linearRgbToOklab(r: number, g: number, b: number) {\n const l = Math.cbrt(0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b);\n const m = Math.cbrt(0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b);\n const s = Math.cbrt(0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b);\n\n return {\n L: 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s,\n a: 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s,\n b: 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Linear sRGB ↔ sRGB (gamma)\n// ---------------------------------------------------------------------------\n\nfunction linearToSrgb(c: number): number {\n return c <= 0.0031308 ? 12.92 * c : 1.055 * Math.pow(c, 1 / 2.4) - 0.055;\n}\n\nfunction srgbToLinear(c: number): number {\n return c <= 0.04045 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);\n}\n\n// ---------------------------------------------------------------------------\n// OKLCH → sRGB (clamped 0-255)\n// ---------------------------------------------------------------------------\n\nexport function oklchToRgb(\n l: number,\n c: number,\n h: number,\n): [number, number, number] {\n const lab = oklchToOklab(l, c, h);\n const lin = oklabToLinearRgb(lab.L, lab.a, lab.b);\n return [\n clamp(Math.round(linearToSrgb(lin.r) * 255), 0, 255),\n clamp(Math.round(linearToSrgb(lin.g) * 255), 0, 255),\n clamp(Math.round(linearToSrgb(lin.b) * 255), 0, 255),\n ];\n}\n\n// ---------------------------------------------------------------------------\n// sRGB → OKLCH\n// ---------------------------------------------------------------------------\n\nexport function rgbToOklch(\n r: number,\n g: number,\n b: number,\n): { l: number; c: number; h: number } {\n const lr = srgbToLinear(r / 255);\n const lg = srgbToLinear(g / 255);\n const lb = srgbToLinear(b / 255);\n const lab = linearRgbToOklab(lr, lg, lb);\n return oklabToOklch(lab.L, lab.a, lab.b);\n}\n\n// ---------------------------------------------------------------------------\n// Gamut check — is (l, c, h) within sRGB?\n// ---------------------------------------------------------------------------\n\nexport function isInGamut(l: number, c: number, h: number): boolean {\n const lab = oklchToOklab(l, c, h);\n const lin = oklabToLinearRgb(lab.L, lab.a, lab.b);\n const eps = 0.001;\n return (\n lin.r >= -eps &&\n lin.r <= 1 + eps &&\n lin.g >= -eps &&\n lin.g <= 1 + eps &&\n lin.b >= -eps &&\n lin.b <= 1 + eps\n );\n}\n\n// ---------------------------------------------------------------------------\n// Gamut mapping — reduce chroma until in gamut (binary search)\n// ---------------------------------------------------------------------------\n\nexport function gamutMapChroma(l: number, c: number, h: number): number {\n if (isInGamut(l, c, h)) return c;\n let lo = 0;\n let hi = c;\n while (hi - lo > 0.001) {\n const mid = (lo + hi) / 2;\n if (isInGamut(l, mid, h)) lo = mid;\n else hi = mid;\n }\n return lo;\n}\n\n// ---------------------------------------------------------------------------\n// Max chroma for a given (l, h) — for area rendering\n// ---------------------------------------------------------------------------\n\nexport function maxChromaForLH(l: number, h: number): number {\n let lo = 0;\n let hi = MAX_CHROMA;\n while (hi - lo > 0.001) {\n const mid = (lo + hi) / 2;\n if (isInGamut(l, mid, h)) lo = mid;\n else hi = mid;\n }\n return lo;\n}\n\n// ---------------------------------------------------------------------------\n// Hex parsing & formatting\n// ---------------------------------------------------------------------------\n\nexport function hexToRgb(hex: string): [number, number, number, number] {\n hex = hex.replace(/^#/, \"\");\n if (hex.length === 3 || hex.length === 4) {\n hex = hex\n .split(\"\")\n .map((c) => c + c)\n .join(\"\");\n }\n const r = parseInt(hex.slice(0, 2), 16);\n const g = parseInt(hex.slice(2, 4), 16);\n const b = parseInt(hex.slice(4, 6), 16);\n const a = hex.length === 8 ? parseInt(hex.slice(6, 8), 16) / 255 : 1;\n return [r, g, b, a];\n}\n\nexport function rgbToHex(r: number, g: number, b: number, a?: number): string {\n const hex = [r, g, b]\n .map((v) => clamp(Math.round(v), 0, 255).toString(16).padStart(2, \"0\"))\n .join(\"\");\n if (a !== undefined && a < 1) {\n return `#${hex}${clamp(Math.round(a * 255), 0, 255)\n .toString(16)\n .padStart(2, \"0\")}`;\n }\n return `#${hex}`;\n}\n\n// ---------------------------------------------------------------------------\n// Parse any CSS color string → OklchColor\n// ---------------------------------------------------------------------------\n\nexport function parseColor(input: string): OklchColor | null {\n const s = input.trim().toLowerCase();\n\n // hex: #rgb, #rgba, #rrggbb, #rrggbbaa\n if (s.startsWith(\"#\")) {\n const [r, g, b, a] = hexToRgb(s);\n if (isNaN(r) || isNaN(g) || isNaN(b)) return null;\n const oklch = rgbToOklch(r, g, b);\n return { l: oklch.l, c: oklch.c, h: oklch.h, a };\n }\n\n // oklch(l% c h) or oklch(l% c h / a)\n const oklchMatch = s.match(\n /oklch\\(\\s*([\\d.]+)%?\\s+([\\d.]+)\\s+([\\d.]+)(?:\\s*\\/\\s*([\\d.]+%?))?\\s*\\)/,\n );\n if (oklchMatch) {\n let l = parseFloat(oklchMatch[1]);\n if (l > 1) l /= 100; // handle percentage\n const c = parseFloat(oklchMatch[2]);\n const h = parseFloat(oklchMatch[3]);\n let a = 1;\n if (oklchMatch[4]) {\n a = oklchMatch[4].endsWith(\"%\")\n ? parseFloat(oklchMatch[4]) / 100\n : parseFloat(oklchMatch[4]);\n }\n return { l, c, h, a };\n }\n\n // rgb(r, g, b) or rgb(r g b) or rgba(r, g, b, a)\n const rgbMatch = s.match(\n /rgba?\\(\\s*([\\d.]+)[,\\s]+([\\d.]+)[,\\s]+([\\d.]+)(?:[,\\s/]+([\\d.]+%?))?\\s*\\)/,\n );\n if (rgbMatch) {\n const r = parseFloat(rgbMatch[1]);\n const g = parseFloat(rgbMatch[2]);\n const b = parseFloat(rgbMatch[3]);\n let a = 1;\n if (rgbMatch[4]) {\n a = rgbMatch[4].endsWith(\"%\")\n ? parseFloat(rgbMatch[4]) / 100\n : parseFloat(rgbMatch[4]);\n }\n const oklch = rgbToOklch(r, g, b);\n return { l: oklch.l, c: oklch.c, h: oklch.h, a };\n }\n\n // hsl(h, s%, l%) or hsla(h, s%, l%, a)\n const hslMatch = s.match(\n /hsla?\\(\\s*([\\d.]+)[,\\s]+([\\d.]+)%[,\\s]+([\\d.]+)%(?:[,\\s/]+([\\d.]+%?))?\\s*\\)/,\n );\n if (hslMatch) {\n const [r, g, b] = hslToRgb(\n parseFloat(hslMatch[1]),\n parseFloat(hslMatch[2]),\n parseFloat(hslMatch[3]),\n );\n let a = 1;\n if (hslMatch[4]) {\n a = hslMatch[4].endsWith(\"%\")\n ? parseFloat(hslMatch[4]) / 100\n : parseFloat(hslMatch[4]);\n }\n const oklch = rgbToOklch(r, g, b);\n return { l: oklch.l, c: oklch.c, h: oklch.h, a };\n }\n\n // Named colors — small subset for common use\n const named: Record<string, string> = {\n white: \"#ffffff\",\n black: \"#000000\",\n red: \"#ff0000\",\n green: \"#008000\",\n blue: \"#0000ff\",\n yellow: \"#ffff00\",\n cyan: \"#00ffff\",\n magenta: \"#ff00ff\",\n orange: \"#ffa500\",\n transparent: \"#00000000\",\n };\n if (named[s]) return parseColor(named[s]);\n\n return null;\n}\n\n// ---------------------------------------------------------------------------\n// HSL ↔ RGB helpers\n// ---------------------------------------------------------------------------\n\nfunction hslToRgb(h: number, s: number, l: number): [number, number, number] {\n s /= 100;\n l /= 100;\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = l - c / 2;\n let r = 0,\n g = 0,\n b = 0;\n if (h < 60) {\n r = c;\n g = x;\n } else if (h < 120) {\n r = x;\n g = c;\n } else if (h < 180) {\n g = c;\n b = x;\n } else if (h < 240) {\n g = x;\n b = c;\n } else if (h < 300) {\n r = x;\n b = c;\n } else {\n r = c;\n b = x;\n }\n return [\n Math.round((r + m) * 255),\n Math.round((g + m) * 255),\n Math.round((b + m) * 255),\n ];\n}\n\nfunction rgbToHsl(r: number, g: number, b: number): [number, number, number] {\n r /= 255;\n g /= 255;\n b /= 255;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n if (max === min) return [0, 0, l * 100];\n const d = max - min;\n const s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n let h = 0;\n if (max === r) h = ((g - b) / d + (g < b ? 6 : 0)) / 6;\n else if (max === g) h = ((b - r) / d + 2) / 6;\n else h = ((r - g) / d + 4) / 6;\n return [h * 360, s * 100, l * 100];\n}\n\n// ---------------------------------------------------------------------------\n// Format OklchColor → CSS string\n// ---------------------------------------------------------------------------\n\nexport function formatColor(color: OklchColor, format: ColorFormat): string {\n const hasAlpha = color.a < 1;\n\n switch (format) {\n case \"hex\": {\n const [r, g, b] = oklchToRgb(color.l, color.c, color.h);\n return rgbToHex(r, g, b, hasAlpha ? color.a : undefined);\n }\n case \"oklch\": {\n const l = round(color.l * 100, 1);\n const c = round(color.c, 3);\n const h = round(color.h, 1);\n return hasAlpha\n ? `oklch(${l}% ${c} ${h} / ${round(color.a, 2)})`\n : `oklch(${l}% ${c} ${h})`;\n }\n case \"rgb\": {\n const [r, g, b] = oklchToRgb(color.l, color.c, color.h);\n return hasAlpha\n ? `rgba(${r}, ${g}, ${b}, ${round(color.a, 2)})`\n : `rgb(${r}, ${g}, ${b})`;\n }\n case \"hsl\": {\n const [r, g, b] = oklchToRgb(color.l, color.c, color.h);\n const [h, s, l] = rgbToHsl(r, g, b);\n return hasAlpha\n ? `hsla(${round(h, 0)}, ${round(s, 1)}%, ${round(l, 1)}%, ${round(color.a, 2)})`\n : `hsl(${round(h, 0)}, ${round(s, 1)}%, ${round(l, 1)}%)`;\n }\n }\n}\n\n// ---------------------------------------------------------------------------\n// Render a 2D area gradient (lightness × chroma) for a given hue\n// Returns ImageData to draw onto a canvas\n// ---------------------------------------------------------------------------\n\nexport function renderAreaGradient(\n width: number,\n height: number,\n hue: number,\n): ImageData {\n const data = new ImageData(width, height);\n const buf = data.data;\n\n for (let y = 0; y < height; y++) {\n const l = 1 - y / (height - 1); // top = 1 (light), bottom = 0 (dark)\n for (let x = 0; x < width; x++) {\n const c = (x / (width - 1)) * MAX_CHROMA;\n const [r, g, b] = oklchToRgb(l, c, hue);\n const idx = (y * width + x) * 4;\n buf[idx] = r;\n buf[idx + 1] = g;\n buf[idx + 2] = b;\n buf[idx + 3] = 255;\n }\n }\n\n return data;\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react/combobox\";\nimport { CheckIcon, ChevronDownIcon, XIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport { InputGroup, InputGroupAddon, InputGroupButton } from \"./input-group\";\n\nfunction Combobox({ ...props }: ComboboxPrimitive.Root.Props<any, any>) {\n return <ComboboxPrimitive.Root {...props} />;\n}\n\nfunction ComboboxInput({\n className,\n showTrigger = true,\n showClear = false,\n children,\n ...props\n}: ComboboxPrimitive.Input.Props & {\n showTrigger?: boolean;\n showClear?: boolean;\n}) {\n return (\n <InputGroup className=\"no-highlight transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none hover-only:border-field-border-hover data-[invalid]:border-field-border-invalid\">\n <ComboboxPrimitive.Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent px-3 py-2 text-sm shadow-none outline-none dark:bg-transparent\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:ring-0\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n />\n {(showTrigger || showClear) && (\n <InputGroupAddon align=\"inline-end\">\n {showClear && <ComboboxClear />}\n {showTrigger && <ComboboxTrigger />}\n </InputGroupAddon>\n )}\n {children}\n </InputGroup>\n );\n}\n\nfunction ComboboxTrigger({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Trigger.Props) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n aria-label=\"Toggle options\"\n {...props}\n render={\n <InputGroupButton\n variant=\"ghost\"\n size=\"icon-xs\"\n className={cn(\"group\", className)}\n />\n }\n >\n {children ?? (\n <ChevronDownIcon className=\"size-3.5 transition-transform duration-150 ease-smooth group-data-[open]:rotate-180 motion-reduce:transition-none\" />\n )}\n </ComboboxPrimitive.Trigger>\n );\n}\n\nfunction ComboboxClear({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Clear.Props) {\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n aria-label=\"Clear selection\"\n {...props}\n render={\n <InputGroupButton\n variant=\"ghost\"\n size=\"icon-xs\"\n className={cn(className)}\n />\n }\n >\n {children ?? <XIcon className=\"size-3.5\" />}\n </ComboboxPrimitive.Clear>\n );\n}\n\nfunction ComboboxChipsInput({\n className,\n ...props\n}: ComboboxPrimitive.Input.Props) {\n return (\n <ComboboxPrimitive.Input\n data-slot=\"combobox-chips-input\"\n className={cn(\n \"min-w-16 flex-1 bg-transparent text-sm outline-none\",\n \"placeholder:text-muted-foreground\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null);\n}\n\nfunction ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />;\n}\n\nfunction ComboboxContent({\n className,\n side = \"bottom\",\n sideOffset = 4,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n >) {\n return (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n className=\"isolate z-50\"\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-content\"\n className={cn(\n \"group/combobox-content\",\n \"min-w-[8rem] overflow-hidden rounded-xl border border-border-light bg-overlay text-overlay-foreground shadow-overlay outline-none\",\n \"data-open:animate-in data-open:duration-200 data-open:[animation-timing-function:var(--ease-out-fluid)] data-closed:animate-out data-closed:duration-100 data-closed:[animation-timing-function:var(--ease-in-quart)] data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95\",\n \"data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]\",\n \"data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1\",\n \"max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-y-auto overscroll-contain\",\n \"motion-reduce:animate-none motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n );\n}\n\nfunction ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n \"scroll-py-1 overflow-y-auto overscroll-contain p-1\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ComboboxItem({\n className,\n children,\n ...props\n}: ComboboxPrimitive.Item.Props) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(\n \"no-highlight relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none transition-colors duration-100 ease-smooth motion-reduce:transition-none\",\n \"data-highlighted:bg-primary-soft data-highlighted:text-foreground\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n >\n {children}\n <ComboboxPrimitive.ItemIndicator\n render={\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"size-4\" />\n </ComboboxPrimitive.ItemIndicator>\n </ComboboxPrimitive.Item>\n );\n}\n\nfunction ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\n \"empty:hidden py-6 text-center text-sm text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) {\n return (\n <ComboboxPrimitive.Group\n data-slot=\"combobox-group\"\n className={cn(\"p-1\", className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxGroupLabel({\n className,\n ...props\n}: ComboboxPrimitive.GroupLabel.Props) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-group-label\"\n className={cn(\n \"px-2 py-1.5 text-xs font-medium text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ComboboxSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof ComboboxPrimitive.Separator>) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border-light\", className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxIcon({ className, ...props }: ComboboxPrimitive.Icon.Props) {\n return (\n <ComboboxPrimitive.Icon\n data-slot=\"combobox-icon\"\n className={cn(\"\", className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxChips({ className, ...props }: ComboboxPrimitive.Chips.Props) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={cn(\n \"no-highlight flex flex-wrap items-center gap-1 rounded-md border border-field-border bg-field-background px-2 py-1.5 text-sm shadow-field\",\n \"transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none\",\n \"hover-only:border-field-border-hover\",\n \"data-[invalid]:border-field-border-invalid\",\n \"has-[:focus]:focus-field-ring\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ComboboxChip({ className, ...props }: ComboboxPrimitive.Chip.Props) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={cn(\n \"inline-flex items-center gap-1 rounded-full bg-primary-soft px-2 py-0.5 font-medium text-xs text-foreground\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ComboboxChipRemove({\n className,\n children,\n ...props\n}: ComboboxPrimitive.ChipRemove.Props) {\n return (\n <ComboboxPrimitive.ChipRemove\n data-slot=\"combobox-chip-remove\"\n className={cn(\n \"rounded-sm text-muted-foreground transition-colors duration-200 ease-smooth motion-reduce:transition-none\",\n \"hover-only:text-foreground\",\n \"focus-visible:focus-ring\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n >\n {children ?? <XIcon className=\"size-3\" />}\n </ComboboxPrimitive.ChipRemove>\n );\n}\n\nfunction ComboboxStatus({\n className,\n ...props\n}: ComboboxPrimitive.Status.Props) {\n return (\n <ComboboxPrimitive.Status\n data-slot=\"combobox-status\"\n className={cn(\"sr-only\", className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxArrow({ className, ...props }: ComboboxPrimitive.Arrow.Props) {\n return (\n <ComboboxPrimitive.Arrow\n data-slot=\"combobox-arrow\"\n className={cn(\"fill-overlay stroke-border\", className)}\n {...props}\n />\n );\n}\n\nfunction ComboboxBackdrop({\n className,\n ...props\n}: ComboboxPrimitive.Backdrop.Props) {\n return (\n <ComboboxPrimitive.Backdrop\n data-slot=\"combobox-backdrop\"\n className={cn(\"fixed inset-0 z-50\", className)}\n {...props}\n />\n );\n}\n\nconst ComboboxCollection = ComboboxPrimitive.Collection;\n\nconst useComboboxFilter = ComboboxPrimitive.useFilter;\n\n/** @deprecated Use `ComboboxGroupLabel` instead. */\nconst ComboboxLabel = ComboboxGroupLabel;\n\nexport {\n Combobox,\n ComboboxCollection,\n ComboboxInput,\n ComboboxChipsInput,\n ComboboxContent,\n ComboboxList,\n ComboboxItem,\n ComboboxEmpty,\n ComboboxGroup,\n ComboboxGroupLabel,\n ComboboxLabel,\n ComboboxSeparator,\n ComboboxTrigger,\n ComboboxClear,\n ComboboxValue,\n ComboboxIcon,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipRemove,\n ComboboxStatus,\n ComboboxArrow,\n ComboboxBackdrop,\n useComboboxAnchor,\n useComboboxFilter,\n};\n\nexport type ComboboxProps = React.ComponentProps<typeof Combobox>;\nexport type ComboboxInputProps = React.ComponentProps<typeof ComboboxInput>;\nexport type ComboboxContentProps = React.ComponentProps<typeof ComboboxContent>;\nexport type ComboboxItemProps = React.ComponentProps<typeof ComboboxItem>;\nexport type ComboboxTriggerProps = React.ComponentProps<typeof ComboboxTrigger>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ContextMenu as ContextMenuPrimitive } from \"@base-ui/react/context-menu\";\nimport { CheckIcon, ChevronRightIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction ContextMenu({ ...props }: ContextMenuPrimitive.Root.Props) {\n return <ContextMenuPrimitive.Root data-slot=\"context-menu\" {...props} />;\n}\n\nfunction ContextMenuPortal({ ...props }: ContextMenuPrimitive.Portal.Props) {\n return (\n <ContextMenuPrimitive.Portal data-slot=\"context-menu-portal\" {...props} />\n );\n}\n\nfunction ContextMenuTrigger({\n className,\n ...props\n}: ContextMenuPrimitive.Trigger.Props) {\n return (\n <ContextMenuPrimitive.Trigger\n data-slot=\"context-menu-trigger\"\n className={cn(\"select-none\", className)}\n {...props}\n />\n );\n}\n\nfunction ContextMenuContent({\n className,\n align = \"start\",\n alignOffset = 4,\n side = \"right\",\n sideOffset = 0,\n ...props\n}: ContextMenuPrimitive.Popup.Props &\n Pick<\n ContextMenuPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <ContextMenuPrimitive.Popup\n data-slot=\"context-menu-content\"\n className={cn(\n \"min-w-36 overflow-hidden rounded-md bg-overlay p-1 text-overlay-foreground shadow-overlay outline-none\",\n \"data-open:animate-in data-open:duration-150 data-open:[animation-timing-function:var(--ease-out-fluid)] data-closed:animate-out data-closed:duration-150 data-closed:[animation-timing-function:var(--ease-in-quart)] data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n \"data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]\",\n \"motion-reduce:animate-none\",\n \"max-h-(--available-height) origin-(--transform-origin) overflow-y-auto\",\n className,\n )}\n {...props}\n />\n </ContextMenuPrimitive.Positioner>\n </ContextMenuPrimitive.Portal>\n );\n}\n\nfunction ContextMenuGroup({ ...props }: ContextMenuPrimitive.Group.Props) {\n return (\n <ContextMenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />\n );\n}\n\nfunction ContextMenuLabel({\n className,\n inset,\n ...props\n}: ContextMenuPrimitive.GroupLabel.Props & {\n inset?: boolean;\n}) {\n return (\n <ContextMenuPrimitive.GroupLabel\n data-slot=\"context-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold text-muted-foreground\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ContextMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: ContextMenuPrimitive.Item.Props & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <ContextMenuPrimitive.Item\n data-slot=\"context-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"no-highlight relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none motion-safe:active:scale-[0.98]\",\n \"data-highlighted:bg-accent data-highlighted:text-accent-foreground\",\n \"data-disabled:status-disabled\",\n \"data-[variant=destructive]:text-destructive data-[variant=destructive]:data-highlighted:bg-destructive-soft data-[variant=destructive]:data-highlighted:text-destructive\",\n \"group/context-menu-item\",\n inset && \"pl-8\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ContextMenuSub({ ...props }: ContextMenuPrimitive.SubmenuRoot.Props) {\n return (\n <ContextMenuPrimitive.SubmenuRoot data-slot=\"context-menu-sub\" {...props} />\n );\n}\n\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: ContextMenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean;\n}) {\n return (\n <ContextMenuPrimitive.SubmenuTrigger\n data-slot=\"context-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"no-highlight relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none motion-safe:active:scale-[0.98]\",\n \"data-highlighted:bg-accent data-highlighted:text-accent-foreground\",\n \"data-disabled:status-disabled\",\n inset && \"pl-8\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"rtl:scale-x-[-1] ml-auto\" />\n </ContextMenuPrimitive.SubmenuTrigger>\n );\n}\n\nfunction ContextMenuSubContent({\n ...props\n}: React.ComponentProps<typeof ContextMenuContent>) {\n return (\n <ContextMenuContent\n data-slot=\"context-menu-sub-content\"\n side=\"right\"\n {...props}\n />\n );\n}\n\nfunction ContextMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: ContextMenuPrimitive.CheckboxItem.Props & {\n inset?: boolean;\n}) {\n return (\n <ContextMenuPrimitive.CheckboxItem\n data-slot=\"context-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"no-highlight relative flex cursor-default select-none items-center gap-2 rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none motion-safe:active:scale-[0.98]\",\n \"data-highlighted:bg-accent data-highlighted:text-accent-foreground\",\n \"data-disabled:status-disabled\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex size-4 items-center justify-center\">\n <ContextMenuPrimitive.CheckboxItemIndicator>\n <CheckIcon className=\"size-4\" />\n </ContextMenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction ContextMenuRadioGroup({\n ...props\n}: ContextMenuPrimitive.RadioGroup.Props) {\n return (\n <ContextMenuPrimitive.RadioGroup\n data-slot=\"context-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction ContextMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: ContextMenuPrimitive.RadioItem.Props & {\n inset?: boolean;\n}) {\n return (\n <ContextMenuPrimitive.RadioItem\n data-slot=\"context-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"no-highlight relative flex cursor-default select-none items-center gap-2 rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none motion-safe:active:scale-[0.98]\",\n \"data-highlighted:bg-accent data-highlighted:text-accent-foreground\",\n \"data-disabled:status-disabled\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-4 items-center justify-center\">\n <ContextMenuPrimitive.RadioItemIndicator>\n <span className=\"size-2 rounded-full bg-current\" />\n </ContextMenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n );\n}\n\nfunction ContextMenuSeparator({\n className,\n ...props\n}: ContextMenuPrimitive.Separator.Props) {\n return (\n <ContextMenuPrimitive.Separator\n data-slot=\"context-menu-separator\"\n className={cn(\"bg-border-light -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction ContextMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"context-menu-shortcut\"\n className={cn(\n \"text-muted-foreground group-data-highlighted/context-menu-item:text-accent-foreground ml-auto text-xs tracking-widest\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n};\n\nexport type ContextMenuProps = React.ComponentProps<typeof ContextMenu>;\nexport type ContextMenuContentProps = React.ComponentProps<\n typeof ContextMenuContent\n>;\nexport type ContextMenuItemProps = React.ComponentProps<typeof ContextMenuItem>;\nexport type ContextMenuTriggerProps = React.ComponentProps<\n typeof ContextMenuTrigger\n>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Dialog as DialogPrimitive } from \"@base-ui/react/dialog\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { XIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\n\nfunction Dialog({ ...props }: DialogPrimitive.Root.Props) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({ ...props }: DialogPrimitive.Trigger.Props) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({ ...props }: DialogPrimitive.Portal.Props) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({ ...props }: DialogPrimitive.Close.Props) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: DialogPrimitive.Backdrop.Props) {\n return (\n <DialogPrimitive.Backdrop\n data-slot=\"dialog-overlay\"\n className={cn(\n \"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-overlay-backdrop duration-200 supports-backdrop-filter:backdrop-blur-xs fixed inset-0 isolate z-50 transition motion-reduce:animate-none motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst sheetVariants = cva(\n [\n \"fixed z-50 gap-4 bg-overlay text-overlay-foreground shadow-overlay transition ease-out-fluid\",\n \"data-open:animate-in data-open:duration-250\",\n \"data-closed:animate-out data-closed:duration-200\",\n \"data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]\",\n \"motion-reduce:animate-none motion-reduce:transition-none\",\n ],\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b border-border-light data-open:slide-in-from-top data-closed:slide-out-to-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t border-border-light data-open:slide-in-from-bottom data-closed:slide-out-to-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r border-border-light data-open:slide-in-from-left data-closed:slide-out-to-left sm:max-w-sm\",\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l border-border-light data-open:slide-in-from-right data-closed:slide-out-to-right sm:max-w-sm\",\n },\n },\n },\n);\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n side,\n ...props\n}: DialogPrimitive.Popup.Props & {\n showCloseButton?: boolean;\n} & VariantProps<typeof sheetVariants>) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Popup\n data-slot=\"dialog-content\"\n className={cn(\n side\n ? sheetVariants({ side, className: \"h-full overflow-y-auto p-6\" })\n : [\n \"bg-overlay text-overlay-foreground shadow-overlay data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-[0.98] data-open:zoom-in-[1.02] grid max-w-[calc(100%-2rem)] gap-6 rounded-2xl p-6 text-sm duration-200 ease-out-fluid sm:max-w-md fixed top-1/2 left-1/2 z-50 w-full -translate-x-1/2 -translate-y-1/2 outline-none overflow-hidden transition data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform] motion-reduce:animate-none motion-reduce:transition-none\",\n ],\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n render={\n <Button\n variant=\"ghost\"\n className=\"absolute top-4 right-4\"\n size=\"icon-sm\"\n />\n }\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Popup>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"gap-2 flex flex-col\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean;\n}) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close render={<Button variant=\"outline\" />}>\n Close\n </DialogPrimitive.Close>\n )}\n </div>\n );\n}\n\nfunction DialogTitle({ className, ...props }: DialogPrimitive.Title.Props) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"leading-none font-medium\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: DialogPrimitive.Description.Props) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\n \"text-muted-foreground [&_a]:hover-only:hover:text-foreground text-sm [&_a]:underline [&_a]:underline-offset-3\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n sheetVariants,\n};\n\nexport type DialogProps = React.ComponentProps<typeof Dialog>;\nexport type DialogContentProps = React.ComponentProps<typeof DialogContent>;\nexport type DialogTriggerProps = React.ComponentProps<typeof DialogTrigger>;\nexport type DialogHeaderProps = React.ComponentProps<typeof DialogHeader>;\nexport type DialogFooterProps = React.ComponentProps<typeof DialogFooter>;\nexport type DialogTitleProps = React.ComponentProps<typeof DialogTitle>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { DrawerPreview as DrawerPrimitive } from \"@base-ui/react/drawer\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Drawer({ ...props }: DrawerPrimitive.Root.Props) {\n return <DrawerPrimitive.Root data-slot=\"drawer\" {...props} />;\n}\n\nfunction DrawerTrigger({ ...props }: DrawerPrimitive.Trigger.Props) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />;\n}\n\nfunction DrawerPortal({ ...props }: DrawerPrimitive.Portal.Props) {\n return <DrawerPrimitive.Portal data-slot=\"drawer-portal\" {...props} />;\n}\n\nfunction DrawerClose({ ...props }: DrawerPrimitive.Close.Props) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />;\n}\n\nfunction DrawerOverlay({\n className,\n ...props\n}: DrawerPrimitive.Backdrop.Props) {\n return (\n <DrawerPrimitive.Backdrop\n data-slot=\"drawer-overlay\"\n className={cn(\n \"bg-overlay-backdrop supports-backdrop-filter:backdrop-blur-xs fixed inset-0 z-50 transition-opacity duration-200 data-ending-style:opacity-0 data-starting-style:opacity-0 motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst drawerVariants = cva(\n [\n \"bg-overlay text-overlay-foreground shadow-overlay flex h-auto flex-col text-sm fixed z-50 outline-none\",\n \"transition-transform duration-250 ease-out-fluid\",\n \"motion-reduce:transition-none\",\n ],\n {\n variants: {\n direction: {\n bottom: \"inset-x-0 bottom-0 mt-24 max-h-[80vh] rounded-t-xl border-t\",\n top: \"inset-x-0 top-0 mb-24 max-h-[80vh] rounded-b-xl border-b\",\n left: \"inset-y-0 left-0 w-3/4 rounded-r-xl border-r sm:max-w-sm\",\n right: \"inset-y-0 right-0 w-3/4 rounded-l-xl border-l sm:max-w-sm\",\n },\n },\n defaultVariants: {\n direction: \"bottom\",\n },\n },\n);\n\nfunction DrawerContent({\n className,\n children,\n direction = \"bottom\",\n ...props\n}: DrawerPrimitive.Popup.Props &\n VariantProps<typeof drawerVariants> & {\n direction?: \"top\" | \"bottom\" | \"left\" | \"right\";\n }) {\n return (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Popup\n data-slot=\"drawer-content\"\n data-drawer-direction={direction}\n className={cn(drawerVariants({ direction }), className)}\n {...props}\n >\n {direction === \"bottom\" && (\n <div className=\"bg-surface-tertiary mx-auto mt-4 h-1.5 w-[100px] shrink-0 rounded-full\" />\n )}\n <DrawerPrimitive.Content>{children}</DrawerPrimitive.Content>\n </DrawerPrimitive.Popup>\n </DrawerPortal>\n );\n}\n\nfunction DrawerHeader({\n className,\n direction,\n ...props\n}: React.ComponentProps<\"div\"> & { direction?: string }) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n \"flex flex-col gap-0.5 p-4 md:gap-1.5\",\n (direction === \"bottom\" || direction === \"top\") &&\n \"text-center md:text-left\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n );\n}\n\nfunction DrawerTitle({ className, ...props }: DrawerPrimitive.Title.Props) {\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn(\"text-foreground font-medium\", className)}\n {...props}\n />\n );\n}\n\nfunction DrawerDescription({\n className,\n ...props\n}: DrawerPrimitive.Description.Props) {\n return (\n <DrawerPrimitive.Description\n data-slot=\"drawer-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n drawerVariants,\n};\n\nexport type DrawerProps = React.ComponentProps<typeof Drawer>;\nexport type DrawerContentProps = React.ComponentProps<typeof DrawerContent>;\nexport type DrawerTriggerProps = React.ComponentProps<typeof DrawerTrigger>;\nexport type DrawerHeaderProps = React.ComponentProps<typeof DrawerHeader>;\nexport type DrawerFooterProps = React.ComponentProps<typeof DrawerFooter>;\nexport type DrawerTitleProps = React.ComponentProps<typeof DrawerTitle>;\n","\"use client\";\n\nimport { useMemo } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\nimport { Label } from \"./label\";\nimport { Separator } from \"./separator\";\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n \"gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3 flex flex-col\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldLegend({\n className,\n variant = \"legend\",\n ...props\n}: React.ComponentProps<\"legend\"> & { variant?: \"legend\" | \"label\" }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst fieldGroupVariants = cva(\"\", {\n variants: {\n variant: {\n default: [\n \"relative flex h-9 w-full items-center overflow-hidden rounded-md border border-field-border bg-field-background px-3 py-1 text-sm shadow-field\",\n /* Hover */\n \"hover-only:hover:border-field-border-hover\",\n /* Focus Within */\n \"focus-within:focus-field-ring\",\n /* Invalid */\n \"data-invalid:border-field-border-invalid\",\n \"data-invalid:focus-within:invalid-field-ring\",\n /* Disabled */\n \"data-[disabled]:status-disabled\",\n /* Transition */\n \"transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth\",\n \"motion-reduce:transition-none\",\n ],\n ghost: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\nfunction FieldGroup({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof fieldGroupVariants>) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(fieldGroupVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nconst fieldVariants = cva(\n \"data-[invalid=true]:text-destructive gap-3 group/field flex w-full\",\n {\n variants: {\n orientation: {\n vertical: \"flex-col *:w-full [&>.sr-only]:w-auto\",\n horizontal:\n \"flex-row items-center *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n responsive:\n \"flex-col *:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:*:data-[slot=field-label]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n },\n);\n\nfunction Field({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\n \"gap-1 group/field-content flex flex-1 flex-col leading-snug\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldLabel({\n className,\n required,\n ...props\n}: React.ComponentProps<typeof Label> & { required?: boolean }) {\n return (\n <Label\n data-slot=\"field-label\"\n data-required={required || undefined}\n className={cn(\n \"text-foreground has-data-checked:bg-primary/5 has-data-checked:border-primary/30 gap-2 group-data-[disabled=true]/field:status-disabled group-data-[invalid=true]/field:text-destructive has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border *:data-[slot=field]:p-3 group/field-label peer/field-label flex w-fit leading-snug\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col\",\n \"data-[required=true]:after:content-['*'] data-[required=true]:after:ml-0.5 data-[required=true]:after:text-destructive\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n \"text-foreground gap-2 text-sm font-medium group-data-[disabled=true]/field:status-disabled flex w-fit items-center leading-snug\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n \"text-muted-foreground text-left text-xs [[data-variant=legend]+&]:-mt-1.5 leading-normal font-normal group-has-data-horizontal/field:text-balance group-data-[disabled=true]/field:opacity-50 group-data-[invalid=true]/field:hidden\",\n \"last:mt-0 nth-last-2:-mt-1\",\n \"[&_a]:underline [&_a]:underline-offset-4 hover-only:hover:[&_a]:text-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n children?: React.ReactNode;\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n \"-my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2 relative\",\n className,\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"text-muted-foreground px-2 bg-background relative mx-auto block w-fit\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n );\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<\"div\"> & {\n errors?: Array<{ message?: string } | undefined>;\n}) {\n const content = useMemo(() => {\n if (children) {\n return children;\n }\n\n if (!errors?.length) {\n return null;\n }\n\n const uniqueErrors = [\n ...new Map(errors.map((error) => [error?.message, error])).values(),\n ];\n\n if (uniqueErrors?.length === 1) {\n return uniqueErrors[0]?.message;\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {uniqueErrors.map(\n (error, index) =>\n error?.message && <li key={index}>{error.message}</li>,\n )}\n </ul>\n );\n }, [children, errors]);\n\n return (\n <div\n role=\"alert\"\n aria-live=\"polite\"\n data-slot=\"field-error\"\n data-visible={!!content || undefined}\n className={cn(\n \"text-destructive text-sm font-normal px-0.5 break-words\",\n \"grid grid-rows-[0fr] opacity-0 data-[visible]:grid-rows-[1fr] data-[visible]:opacity-100 transition-[grid-template-rows,opacity] duration-200 ease-smooth motion-reduce:transition-none overflow-hidden\",\n className,\n )}\n {...props}\n >\n <div className=\"min-h-0\">{content}</div>\n </div>\n );\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n fieldGroupVariants,\n fieldVariants,\n};\n\nexport type FieldProps = React.ComponentProps<typeof Field>;\nexport type FieldLabelProps = React.ComponentProps<typeof FieldLabel>;\nexport type FieldErrorProps = React.ComponentProps<typeof FieldError>;\nexport type FieldGroupProps = React.ComponentProps<typeof FieldGroup>;\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Label({ className, ...props }: React.ComponentProps<\"label\">) {\n return (\n <label\n data-slot=\"label\"\n className={cn(\n \"gap-2 text-sm leading-none font-medium group-data-[disabled=true]:status-disabled peer-disabled:status-disabled group-data-[invalid]:text-destructive flex items-center select-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n\nexport type LabelProps = React.ComponentProps<typeof Label>;\n","\"use client\";\n\nimport { Separator as SeparatorPrimitive } from \"@base-ui/react/separator\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n ...props\n}: SeparatorPrimitive.Props) {\n return (\n <SeparatorPrimitive\n data-slot=\"separator\"\n orientation={orientation}\n className={cn(\n \"bg-border rounded-full shrink-0 data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n\nexport type SeparatorProps = React.ComponentProps<typeof Separator>;\n","\"use client\";\n\nimport { Fieldset as FieldsetPrimitive } from \"@base-ui/react/fieldset\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Fieldset({ className, ...props }: FieldsetPrimitive.Root.Props) {\n return (\n <FieldsetPrimitive.Root\n data-slot=\"fieldset\"\n className={cn(\n \"flex flex-col gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction FieldsetLegend({\n className,\n variant = \"legend\",\n ...props\n}: FieldsetPrimitive.Legend.Props & { variant?: \"legend\" | \"label\" }) {\n return (\n <FieldsetPrimitive.Legend\n data-slot=\"fieldset-legend\"\n data-variant={variant}\n className={cn(\n \"mb-3 font-medium text-foreground data-[variant=label]:text-sm data-[variant=legend]:text-base\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Fieldset, FieldsetLegend };\n\nexport type FieldsetProps = React.ComponentProps<typeof Fieldset>;\nexport type FieldsetLegendProps = React.ComponentProps<typeof FieldsetLegend>;\n","\"use client\";\n\nimport { Form as FormPrimitive } from \"@base-ui/react/form\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Form({ className, ...props }: FormPrimitive.Props) {\n return (\n <FormPrimitive\n data-slot=\"form\"\n className={cn(\"flex flex-col gap-6\", className)}\n {...props}\n />\n );\n}\n\nexport { Form };\n\nexport type FormProps = React.ComponentProps<typeof Form>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\";\nimport { CheckIcon, ChevronRightIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {\n return <MenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {\n return <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />;\n}\n\nfunction DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {\n return <MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />;\n}\n\nfunction DropdownMenuContent({\n align = \"start\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n className,\n ...props\n}: MenuPrimitive.Popup.Props &\n Pick<\n MenuPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner\n className=\"z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <MenuPrimitive.Popup\n data-slot=\"dropdown-menu-content\"\n className={cn(\n \"min-w-[8rem] overflow-hidden rounded-xl bg-overlay p-1 text-overlay-foreground shadow-overlay outline-none\",\n \"data-open:animate-in data-open:duration-150 data-open:[animation-timing-function:var(--ease-out-fluid)] data-closed:animate-out data-closed:duration-150 data-closed:[animation-timing-function:var(--ease-in-quart)] data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n \"data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]\",\n \"motion-reduce:animate-none\",\n \"max-h-(--available-height) origin-(--transform-origin) overflow-y-auto\",\n className,\n )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n return <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />;\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: MenuPrimitive.GroupLabel.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.GroupLabel\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold text-muted-foreground\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: MenuPrimitive.Item.Props & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <MenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"no-highlight relative flex cursor-default select-none items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none motion-safe:active:scale-[0.98]\",\n \"data-highlighted:bg-accent data-highlighted:text-accent-foreground\",\n \"data-disabled:status-disabled\",\n \"data-[variant=destructive]:text-destructive data-[variant=destructive]:data-highlighted:bg-destructive-soft data-[variant=destructive]:data-highlighted:text-destructive\",\n inset && \"pl-8\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.SubmenuTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"no-highlight relative flex cursor-default select-none items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none motion-safe:active:scale-[0.98]\",\n \"data-highlighted:bg-accent data-highlighted:text-accent-foreground\",\n \"data-disabled:status-disabled\",\n inset && \"pl-8\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-3 text-muted-foreground\" />\n </MenuPrimitive.SubmenuTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n align = \"start\",\n alignOffset = -3,\n side = \"right\",\n sideOffset = 0,\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n return (\n <DropdownMenuContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\"min-w-[8rem] w-auto\", className)}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuPrimitive.CheckboxItem.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"no-highlight relative flex cursor-default select-none items-center gap-2 rounded-md py-1.5 pl-8 pr-2 text-sm outline-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none motion-safe:active:scale-[0.98]\",\n \"data-highlighted:bg-accent data-highlighted:text-accent-foreground\",\n \"data-disabled:status-disabled\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex size-4 items-center justify-center\">\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon className=\"size-4\" />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n return (\n <MenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuPrimitive.RadioItem.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"no-highlight relative flex cursor-default select-none items-center gap-2 rounded-md py-1.5 pl-8 pr-2 text-sm outline-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none motion-safe:active:scale-[0.98]\",\n \"data-highlighted:bg-accent data-highlighted:text-accent-foreground\",\n \"data-disabled:status-disabled\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-4 items-center justify-center\">\n <MenuPrimitive.RadioItemIndicator>\n <span className=\"size-2 rounded-full bg-current\" />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: MenuPrimitive.Separator.Props) {\n return (\n <MenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border-light\", className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n\nexport type DropdownMenuProps = React.ComponentProps<typeof DropdownMenu>;\nexport type DropdownMenuContentProps = React.ComponentProps<\n typeof DropdownMenuContent\n>;\nexport type DropdownMenuItemProps = React.ComponentProps<\n typeof DropdownMenuItem\n>;\nexport type DropdownMenuTriggerProps = React.ComponentProps<\n typeof DropdownMenuTrigger\n>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\";\nimport { Menubar as MenubarPrimitive } from \"@base-ui/react/menubar\";\nimport { CheckIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"./menu\";\n\nfunction Menubar({ className, ...props }: MenubarPrimitive.Props) {\n return (\n <MenubarPrimitive\n data-slot=\"menubar\"\n className={cn(\n \"bg-surface h-9 gap-1 rounded-md border p-1 shadow-field flex items-center\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarMenu({ ...props }: React.ComponentProps<typeof DropdownMenu>) {\n return <DropdownMenu data-slot=\"menubar-menu\" {...props} />;\n}\n\nfunction MenubarGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuGroup>) {\n return <DropdownMenuGroup data-slot=\"menubar-group\" {...props} />;\n}\n\nfunction MenubarPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPortal>) {\n return <DropdownMenuPortal data-slot=\"menubar-portal\" {...props} />;\n}\n\nfunction MenubarTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuTrigger>) {\n return (\n <DropdownMenuTrigger\n data-slot=\"menubar-trigger\"\n className={cn(\n \"no-highlight hover-only:hover:bg-accent aria-expanded:bg-accent rounded-sm px-2 py-1 text-sm font-medium flex items-center outline-hidden select-none focus-visible:focus-ring transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none motion-safe:active:scale-[0.98]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarContent({\n className,\n align = \"start\",\n alignOffset = -4,\n sideOffset = 8,\n ...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n return (\n <DropdownMenuContent\n data-slot=\"menubar-content\"\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"min-w-36 overflow-hidden rounded-md bg-overlay p-1 text-overlay-foreground shadow-overlay outline-none\",\n \"data-open:animate-in data-open:duration-100 data-open:[animation-timing-function:var(--ease-out-fluid)] data-closed:animate-out data-closed:duration-100 data-closed:[animation-timing-function:var(--ease-in-quart)] data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n \"data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]\",\n \"motion-reduce:animate-none\",\n \"max-h-(--available-height) origin-(--transform-origin) overflow-y-auto\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuItem>) {\n return (\n <DropdownMenuItem\n data-slot=\"menubar-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"no-highlight relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none motion-safe:active:scale-[0.98]\",\n \"data-highlighted:bg-accent data-highlighted:text-accent-foreground\",\n \"data-disabled:status-disabled\",\n \"data-[variant=destructive]:text-destructive data-[variant=destructive]:data-highlighted:bg-destructive-soft data-[variant=destructive]:data-highlighted:text-destructive\",\n \"group/menubar-item\",\n inset && \"pl-8\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuPrimitive.CheckboxItem.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"menubar-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"no-highlight relative flex cursor-default select-none items-center gap-2 rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none motion-safe:active:scale-[0.98]\",\n \"data-highlighted:bg-accent data-highlighted:text-accent-foreground\",\n \"data-disabled:status-disabled\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex size-4 items-center justify-center\">\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon className=\"size-4\" />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n );\n}\n\nfunction MenubarRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuRadioGroup>) {\n return <DropdownMenuRadioGroup data-slot=\"menubar-radio-group\" {...props} />;\n}\n\nfunction MenubarRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuPrimitive.RadioItem.Props & {\n inset?: boolean;\n}) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"menubar-radio-item\"\n data-inset={inset}\n className={cn(\n \"no-highlight relative flex cursor-default select-none items-center gap-2 rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none motion-safe:active:scale-[0.98]\",\n \"data-highlighted:bg-accent data-highlighted:text-accent-foreground\",\n \"data-disabled:status-disabled\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-4 items-center justify-center\">\n <MenuPrimitive.RadioItemIndicator>\n <span className=\"size-2 rounded-full bg-current\" />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n );\n}\n\nfunction MenubarLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuLabel> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuLabel\n data-slot=\"menubar-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold data-inset:pl-8\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSeparator>) {\n return (\n <DropdownMenuSeparator\n data-slot=\"menubar-separator\"\n className={cn(\"bg-border-light -mx-1 my-1 h-px\", className)}\n {...props}\n />\n );\n}\n\nfunction MenubarShortcut({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuShortcut>) {\n return (\n <DropdownMenuShortcut\n data-slot=\"menubar-shortcut\"\n className={cn(\n \"text-muted-foreground group-data-highlighted/menubar-item:text-accent-foreground text-xs tracking-widest ml-auto\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuSub>) {\n return <DropdownMenuSub data-slot=\"menubar-sub\" {...props} />;\n}\n\nfunction MenubarSubTrigger({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuSubTrigger\n data-slot=\"menubar-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"no-highlight relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none motion-safe:active:scale-[0.98]\",\n \"data-highlighted:bg-accent data-highlighted:text-accent-foreground\",\n \"data-disabled:status-disabled\",\n inset && \"pl-8\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSubContent>) {\n return (\n <DropdownMenuSubContent\n data-slot=\"menubar-sub-content\"\n className={cn(\n \"min-w-32 data-open:duration-100 data-closed:duration-100\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Menubar,\n MenubarPortal,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarGroup,\n MenubarSeparator,\n MenubarLabel,\n MenubarItem,\n MenubarShortcut,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n};\n\nexport type MenubarProps = React.ComponentProps<typeof Menubar>;\nexport type MenubarContentProps = React.ComponentProps<typeof MenubarContent>;\nexport type MenubarItemProps = React.ComponentProps<typeof MenubarItem>;\nexport type MenubarTriggerProps = React.ComponentProps<typeof MenubarTrigger>;\n","\"use client\";\n\nimport { Meter as MeterPrimitive } from \"@base-ui/react/meter\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst meterTrackVariants = cva(\"relative w-full overflow-hidden rounded-full\", {\n variants: {\n color: {\n default: \"bg-primary/20\",\n success: \"bg-success/20\",\n warning: \"bg-warning/20\",\n destructive: \"bg-destructive/20\",\n info: \"bg-info/20\",\n },\n size: {\n sm: \"h-1\",\n md: \"h-2\",\n lg: \"h-3\",\n xl: \"h-4\",\n },\n },\n defaultVariants: {\n color: \"default\",\n size: \"md\",\n },\n});\n\nconst meterIndicatorVariants = cva(\n \"h-full rounded-full transition-[width,background-color] duration-250 ease-smooth motion-reduce:transition-none\",\n {\n variants: {\n color: {\n default: \"bg-primary\",\n success: \"bg-success\",\n warning: \"bg-warning\",\n destructive: \"bg-destructive\",\n info: \"bg-info\",\n },\n },\n defaultVariants: {\n color: \"default\",\n },\n },\n);\n\nfunction Meter({ className, ...props }: MeterPrimitive.Root.Props) {\n return (\n <MeterPrimitive.Root\n data-slot=\"meter\"\n className={cn(\"relative w-full\", className)}\n {...props}\n />\n );\n}\n\nfunction MeterTrack({\n className,\n color,\n size,\n ...props\n}: MeterPrimitive.Track.Props & VariantProps<typeof meterTrackVariants>) {\n return (\n <MeterPrimitive.Track\n data-slot=\"meter-track\"\n className={cn(meterTrackVariants({ color, size }), className)}\n {...props}\n />\n );\n}\n\nfunction MeterIndicator({\n className,\n color,\n ...props\n}: MeterPrimitive.Indicator.Props &\n VariantProps<typeof meterIndicatorVariants>) {\n return (\n <MeterPrimitive.Indicator\n data-slot=\"meter-indicator\"\n className={cn(meterIndicatorVariants({ color }), className)}\n {...props}\n />\n );\n}\n\nfunction MeterLabel({ className, ...props }: MeterPrimitive.Label.Props) {\n return (\n <MeterPrimitive.Label\n data-slot=\"meter-label\"\n className={cn(\"text-sm font-medium leading-none\", className)}\n {...props}\n />\n );\n}\n\nfunction MeterValue({ className, ...props }: MeterPrimitive.Value.Props) {\n return (\n <MeterPrimitive.Value\n data-slot=\"meter-value\"\n className={cn(\"text-sm tabular-nums text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Meter,\n MeterTrack,\n MeterIndicator,\n MeterLabel,\n MeterValue,\n meterIndicatorVariants,\n meterTrackVariants,\n};\n\nexport type MeterProps = React.ComponentProps<typeof Meter>;\nexport type MeterTrackProps = React.ComponentProps<typeof MeterTrack>;\nexport type MeterIndicatorProps = React.ComponentProps<typeof MeterIndicator>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { NavigationMenu as NavigationMenuPrimitive } from \"@base-ui/react/navigation-menu\";\nimport { cva } from \"class-variance-authority\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction NavigationMenu({\n align = \"start\",\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Root.Props &\n Pick<NavigationMenuPrimitive.Positioner.Props, \"align\">) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n className={cn(\n \"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center\",\n className,\n )}\n {...props}\n >\n {children}\n <NavigationMenuPositioner align={align} />\n </NavigationMenuPrimitive.Root>\n );\n}\n\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(\n \"gap-0 group flex flex-1 list-none items-center justify-center\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn(\"relative\", className)}\n {...props}\n />\n );\n}\n\nconst navigationMenuTriggerStyle = cva(\n cn(\n // Base\n \"no-highlight inline-flex h-9 w-max cursor-pointer items-center justify-center\",\n \"rounded-md px-4 py-2 text-sm font-medium outline-none\",\n \"group/navigation-menu-trigger\",\n // Transitions\n \"transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth\",\n \"motion-reduce:transition-none motion-safe:active:scale-[0.98]\",\n // Idle\n \"bg-background\",\n \"hover-only:hover:bg-surface-secondary\",\n \"focus:bg-surface-secondary\",\n \"focus-visible:focus-ring\",\n // Popup open\n \"data-popup-open:bg-surface-secondary/50\",\n \"data-popup-open:hover-only:hover:bg-surface-secondary\",\n \"data-popup-open:focus:bg-surface-secondary\",\n // Disabled\n \"disabled:status-disabled\",\n ),\n);\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Trigger.Props) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDownIcon\n className={cn(\n \"relative top-px ml-1 size-3\",\n \"transition-transform duration-250 motion-reduce:transition-none\",\n \"group-data-popup-open/navigation-menu-trigger:rotate-180\",\n )}\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\nfunction NavigationMenuContent({\n className,\n ...props\n}: NavigationMenuPrimitive.Content.Props) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n // Layout\n \"h-full w-auto p-2 pr-2.5\",\n // Directional slide (Base UI activation direction)\n \"data-ending-style:data-activation-direction=left:translate-x-[50%]\",\n \"data-ending-style:data-activation-direction=right:translate-x-[-50%]\",\n \"data-starting-style:data-activation-direction=left:translate-x-[-50%]\",\n \"data-starting-style:data-activation-direction=right:translate-x-[50%]\",\n // Fade in/out\n \"data-ending-style:opacity-0\",\n \"data-starting-style:opacity-0\",\n // Transition\n \"transition-[opacity,transform,translate] duration-[0.35s] ease-out-fluid\",\n \"motion-reduce:transition-none motion-reduce:animate-none\",\n // Nested link focus reset\n \"**:data-[slot=navigation-menu-link]:focus:ring-0\",\n \"**:data-[slot=navigation-menu-link]:focus:outline-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuPositioner({\n className,\n side = \"bottom\",\n sideOffset = 8,\n align = \"start\",\n alignOffset = 0,\n collisionPadding = { top: 5, bottom: 5, left: 20, right: 20 },\n collisionAvoidance = { side: \"none\" },\n ...props\n}: NavigationMenuPrimitive.Positioner.Props) {\n return (\n <NavigationMenuPrimitive.Portal>\n <NavigationMenuPrimitive.Positioner\n data-slot=\"navigation-menu-positioner\"\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n collisionPadding={collisionPadding}\n collisionAvoidance={collisionAvoidance}\n className={cn(\n // Base\n \"isolate z-50\",\n \"h-(--positioner-height) w-(--positioner-width) max-w-(--available-width)\",\n // Transition (positioner slides when switching items)\n \"transition-[top,left,right,bottom] duration-[0.35s] ease-out-fluid\",\n \"motion-reduce:transition-none data-instant:transition-none\",\n // Hover bridge — invisible pseudo-element connecting trigger to popup\n \"before:absolute before:content-['']\",\n \"data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0 data-[side=bottom]:before:h-2.5\",\n \"data-[side=top]:before:bottom-[-10px] data-[side=top]:before:right-0 data-[side=top]:before:left-0 data-[side=top]:before:h-2.5\",\n \"data-[side=left]:before:right-[-10px] data-[side=left]:before:top-0 data-[side=left]:before:bottom-0 data-[side=left]:before:w-2.5\",\n \"data-[side=right]:before:left-[-10px] data-[side=right]:before:top-0 data-[side=right]:before:bottom-0 data-[side=right]:before:w-2.5\",\n className,\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Popup\n data-slot=\"navigation-menu-popup\"\n className={cn(\n // Layout\n \"relative w-(--popup-width) h-(--popup-height)\",\n \"origin-(--transform-origin)\",\n // Surface\n \"bg-overlay text-overlay-foreground rounded-lg shadow-overlay outline-none\",\n // Enter\n \"data-starting-style:scale-90 data-starting-style:opacity-0\",\n // Exit (standard ease per Base UI, not ease-out-fluid)\n \"data-ending-style:scale-90 data-ending-style:opacity-0\",\n \"data-ending-style:duration-150 data-ending-style:easing-[ease]\",\n // Transition\n \"transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-out-fluid\",\n \"motion-reduce:transition-none\",\n )}\n >\n <NavigationMenuPrimitive.Viewport\n data-slot=\"navigation-menu-viewport\"\n className=\"relative size-full overflow-hidden\"\n />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </NavigationMenuPrimitive.Portal>\n );\n}\n\nfunction NavigationMenuLink({\n className,\n ...props\n}: NavigationMenuPrimitive.Link.Props) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n // Base\n \"no-highlight flex cursor-pointer items-center gap-1.5 rounded-md p-2 text-sm outline-none\",\n // Transitions\n \"transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth\",\n \"motion-reduce:transition-none\",\n // Hover & focus\n \"hover-only:hover:bg-accent hover-only:hover:text-accent-foreground\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"focus-visible:focus-ring\",\n // Active state (current page — Base UI sets boolean data-active)\n \"data-active:bg-accent\",\n \"data-active:hover-only:hover:bg-accent-hover\",\n \"data-active:focus:bg-accent-hover\",\n // Press feedback\n \"motion-safe:active:scale-[0.98]\",\n // Icons\n \"[&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Icon>) {\n return (\n <NavigationMenuPrimitive.Icon\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"data-open:animate-in data-closed:animate-out data-closed:fade-out data-open:fade-in motion-reduce:animate-none top-full z-1 flex h-1.5 items-end justify-center overflow-hidden\",\n className,\n )}\n {...props}\n >\n <div\n data-slot=\"navigation-menu-indicator-arrow\"\n className=\"bg-border rounded-tl-sm shadow-overlay relative top-[60%] h-2 w-2 rotate-45\"\n />\n </NavigationMenuPrimitive.Icon>\n );\n}\n\nexport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuIndicator,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n navigationMenuTriggerStyle,\n NavigationMenuPositioner,\n};\n\nexport type NavigationMenuProps = React.ComponentProps<typeof NavigationMenu>;\nexport type NavigationMenuContentProps = React.ComponentProps<\n typeof NavigationMenuContent\n>;\nexport type NavigationMenuItemProps = React.ComponentProps<\n typeof NavigationMenuItem\n>;\nexport type NavigationMenuTriggerProps = React.ComponentProps<\n typeof NavigationMenuTrigger\n>;\nexport type NavigationMenuLinkProps = React.ComponentProps<\n typeof NavigationMenuLink\n>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { NumberField as NumberFieldPrimitive } from \"@base-ui/react/number-field\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction NumberField({ className, ...props }: NumberFieldPrimitive.Root.Props) {\n return (\n <NumberFieldPrimitive.Root\n data-slot=\"number-field\"\n className={cn(\"group flex flex-col gap-2\", className)}\n {...props}\n />\n );\n}\n\nconst numberFieldGroupVariants = cva(\n [\n \"border-field-border bg-field-background rounded-md border shadow-field focus-within:focus-field-ring relative flex w-full items-center overflow-hidden\",\n \"hover-only:hover:border-field-border-hover focus-within:border-field-border-hover\",\n \"data-invalid:border-field-border-invalid data-invalid:focus-within:invalid-field-ring\",\n \"transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth\",\n \"motion-reduce:transition-none\",\n \"data-disabled:status-disabled\",\n ],\n {\n variants: {\n size: {\n sm: \"h-8\",\n default: \"h-9\",\n lg: \"h-10\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n },\n);\n\nfunction NumberFieldGroup({\n className,\n size,\n ...props\n}: NumberFieldPrimitive.Group.Props &\n VariantProps<typeof numberFieldGroupVariants>) {\n return (\n <NumberFieldPrimitive.Group\n data-slot=\"number-field-group\"\n className={cn(numberFieldGroupVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction NumberFieldInput({\n className,\n ...props\n}: NumberFieldPrimitive.Input.Props) {\n return (\n <NumberFieldPrimitive.Input\n data-slot=\"number-field-input\"\n className={cn(\n \"tabular-nums w-fit min-w-0 flex-1 bg-transparent pr-10 pl-2.5 py-1 text-base outline-none md:text-sm placeholder:text-muted-foreground [&::-webkit-search-cancel-button]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction NumberFieldIncrement({\n className,\n children,\n ...props\n}: NumberFieldPrimitive.Increment.Props) {\n return (\n <NumberFieldPrimitive.Increment\n data-slot=\"number-field-increment\"\n className={cn(\n \"no-highlight flex h-1/2 min-w-8 items-center justify-center rounded-none text-muted-foreground\",\n \"transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth\",\n \"hover-only:hover:bg-surface-secondary hover-only:hover:text-accent-foreground\",\n \"focus-visible:focus-field-ring\",\n \"data-disabled:status-disabled\",\n \"motion-reduce:transition-none\",\n \"motion-safe:active:scale-[0.95] active:bg-foreground/10\",\n className,\n )}\n {...props}\n >\n {children ?? <ChevronUpIcon aria-hidden className=\"size-4\" />}\n </NumberFieldPrimitive.Increment>\n );\n}\n\nfunction NumberFieldDecrement({\n className,\n children,\n ...props\n}: NumberFieldPrimitive.Decrement.Props) {\n return (\n <NumberFieldPrimitive.Decrement\n data-slot=\"number-field-decrement\"\n className={cn(\n \"no-highlight flex h-1/2 min-w-8 items-center justify-center rounded-none text-muted-foreground\",\n \"transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth\",\n \"hover-only:hover:bg-surface-secondary hover-only:hover:text-accent-foreground\",\n \"focus-visible:focus-field-ring\",\n \"data-disabled:status-disabled\",\n \"motion-reduce:transition-none\",\n \"motion-safe:active:scale-[0.95] active:bg-foreground/10\",\n className,\n )}\n {...props}\n >\n {children ?? <ChevronDownIcon aria-hidden className=\"size-4\" />}\n </NumberFieldPrimitive.Decrement>\n );\n}\n\nfunction NumberFieldSteppers({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"number-field-steppers\"\n className={cn(\n \"absolute right-0 flex h-full flex-col border-l border-field-border\",\n className,\n )}\n {...props}\n >\n <NumberFieldIncrement />\n <div className=\"border-b border-field-border/50\" />\n <NumberFieldDecrement />\n </div>\n );\n}\n\nfunction NumberFieldScrubArea({\n className,\n ...props\n}: NumberFieldPrimitive.ScrubArea.Props) {\n return (\n <NumberFieldPrimitive.ScrubArea\n data-slot=\"number-field-scrub-area\"\n className={cn(\"cursor-ew-resize touch-none\", className)}\n {...props}\n />\n );\n}\n\nfunction NumberFieldScrubAreaCursor({\n className,\n ...props\n}: NumberFieldPrimitive.ScrubAreaCursor.Props) {\n return (\n <NumberFieldPrimitive.ScrubAreaCursor\n data-slot=\"number-field-scrub-area-cursor\"\n className={cn(\"pointer-events-none\", className)}\n {...props}\n />\n );\n}\n\nexport {\n NumberField,\n NumberFieldGroup,\n numberFieldGroupVariants,\n NumberFieldInput,\n NumberFieldIncrement,\n NumberFieldDecrement,\n NumberFieldSteppers,\n NumberFieldScrubArea,\n NumberFieldScrubAreaCursor,\n};\n\nexport type NumberFieldProps = React.ComponentProps<typeof NumberField>;\nexport type NumberFieldGroupProps = React.ComponentProps<\n typeof NumberFieldGroup\n>;\nexport type NumberFieldInputProps = React.ComponentProps<\n typeof NumberFieldInput\n>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Popover as PopoverPrimitive } from \"@base-ui/react/popover\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Popover({ ...props }: PopoverPrimitive.Root.Props) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({ ...props }: PopoverPrimitive.Trigger.Props) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n ...props\n}: PopoverPrimitive.Popup.Props &\n Pick<\n PopoverPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <PopoverPrimitive.Popup\n data-slot=\"popover-content\"\n className={cn(\n \"min-w-[8rem] origin-(--transform-origin) rounded-xl bg-overlay text-sm text-overlay-foreground shadow-overlay outline-none\",\n \"data-open:animate-in data-open:duration-150 data-open:[animation-timing-function:var(--ease-out-fluid)] data-closed:animate-out data-closed:duration-100 data-closed:[animation-timing-function:var(--ease-in-quart)] data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1\",\n \"data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]\",\n \"motion-reduce:animate-none motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"popover-header\"\n className={cn(\"flex flex-col gap-1 text-sm\", className)}\n {...props}\n />\n );\n}\n\nfunction PopoverTitle({ className, ...props }: PopoverPrimitive.Title.Props) {\n return (\n <PopoverPrimitive.Title\n data-slot=\"popover-title\"\n className={cn(\"font-semibold\", className)}\n {...props}\n />\n );\n}\n\nfunction PopoverDescription({\n className,\n ...props\n}: PopoverPrimitive.Description.Props) {\n return (\n <PopoverPrimitive.Description\n data-slot=\"popover-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Popover,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger,\n};\n\nexport type PopoverProps = React.ComponentProps<typeof Popover>;\nexport type PopoverContentProps = React.ComponentProps<typeof PopoverContent>;\nexport type PopoverTriggerProps = React.ComponentProps<typeof PopoverTrigger>;\n","\"use client\";\n\nimport { PreviewCard as PreviewCardPrimitive } from \"@base-ui/react/preview-card\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction HoverCard({ ...props }: PreviewCardPrimitive.Root.Props) {\n return <PreviewCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({ ...props }: PreviewCardPrimitive.Trigger.Props) {\n return (\n <PreviewCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n );\n}\n\nfunction HoverCardContent({\n className,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 4,\n ...props\n}: PreviewCardPrimitive.Popup.Props &\n Pick<\n PreviewCardPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <PreviewCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <PreviewCardPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <PreviewCardPrimitive.Popup\n data-slot=\"hover-card-content\"\n className={cn(\n \"w-64 origin-(--transform-origin) rounded-lg bg-overlay p-4 text-sm text-overlay-foreground shadow-overlay outline-hidden\",\n \"data-open:animate-in data-open:duration-100 data-open:[animation-timing-function:var(--ease-out-fluid)] data-closed:animate-out data-closed:duration-100 data-closed:[animation-timing-function:var(--ease-in-quart)] data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2\",\n \"data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]\",\n \"motion-reduce:animate-none motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n </PreviewCardPrimitive.Positioner>\n </PreviewCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n\nexport type HoverCardProps = React.ComponentProps<typeof HoverCard>;\nexport type HoverCardContentProps = React.ComponentProps<\n typeof HoverCardContent\n>;\nexport type HoverCardTriggerProps = React.ComponentProps<\n typeof HoverCardTrigger\n>;\n","\"use client\";\n\nimport { Progress as ProgressPrimitive } from \"@base-ui/react/progress\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst progressTrackVariants = cva(\n \"relative w-full overflow-hidden rounded-full\",\n {\n variants: {\n color: {\n default: \"bg-primary/20\",\n success: \"bg-success/20\",\n warning: \"bg-warning/20\",\n destructive: \"bg-destructive/20\",\n info: \"bg-info/20\",\n },\n size: {\n sm: \"h-1\",\n md: \"h-2\",\n lg: \"h-3\",\n xl: \"h-4\",\n },\n },\n defaultVariants: {\n color: \"default\",\n size: \"md\",\n },\n },\n);\n\nconst progressIndicatorVariants = cva(\n \"h-full rounded-full transition-[width,background-color] duration-250 ease-smooth motion-reduce:transition-none data-[indeterminate]:w-full data-[indeterminate]:[transform-origin:left] data-[indeterminate]:animate-progress-indeterminate motion-reduce:animate-none\",\n {\n variants: {\n color: {\n default: \"bg-primary data-[complete]:bg-success\",\n success: \"bg-success data-[complete]:bg-success\",\n warning: \"bg-warning data-[complete]:bg-success\",\n destructive: \"bg-destructive data-[complete]:bg-success\",\n info: \"bg-info data-[complete]:bg-success\",\n },\n },\n defaultVariants: {\n color: \"default\",\n },\n },\n);\n\nfunction Progress({\n className,\n children,\n value,\n color,\n size,\n ...props\n}: ProgressPrimitive.Root.Props &\n VariantProps<typeof progressIndicatorVariants> &\n VariantProps<typeof progressTrackVariants>) {\n return (\n <ProgressPrimitive.Root\n value={value}\n data-slot=\"progress\"\n className={cn(\"relative w-full\", className)}\n {...props}\n >\n {children}\n <ProgressTrack color={color} size={size}>\n <ProgressIndicator color={color} />\n </ProgressTrack>\n </ProgressPrimitive.Root>\n );\n}\n\nfunction ProgressTrack({\n className,\n color,\n size,\n ...props\n}: ProgressPrimitive.Track.Props & VariantProps<typeof progressTrackVariants>) {\n return (\n <ProgressPrimitive.Track\n className={cn(progressTrackVariants({ color, size }), className)}\n data-slot=\"progress-track\"\n {...props}\n />\n );\n}\n\nfunction ProgressIndicator({\n className,\n color,\n ...props\n}: ProgressPrimitive.Indicator.Props &\n VariantProps<typeof progressIndicatorVariants>) {\n return (\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className={cn(progressIndicatorVariants({ color }), className)}\n {...props}\n />\n );\n}\n\nfunction ProgressLabel({ className, ...props }: ProgressPrimitive.Label.Props) {\n return (\n <ProgressPrimitive.Label\n className={cn(\"text-sm font-medium leading-none\", className)}\n data-slot=\"progress-label\"\n {...props}\n />\n );\n}\n\nfunction ProgressValue({ className, ...props }: ProgressPrimitive.Value.Props) {\n return (\n <ProgressPrimitive.Value\n className={cn(\"text-sm tabular-nums text-muted-foreground\", className)}\n data-slot=\"progress-value\"\n {...props}\n />\n );\n}\n\nexport {\n Progress,\n ProgressTrack,\n ProgressIndicator,\n ProgressLabel,\n ProgressValue,\n progressIndicatorVariants,\n progressTrackVariants,\n};\n\nexport type ProgressProps = React.ComponentProps<typeof Progress>;\nexport type ProgressTrackProps = React.ComponentProps<typeof ProgressTrack>;\nexport type ProgressIndicatorProps = React.ComponentProps<\n typeof ProgressIndicator\n>;\n","\"use client\";\n\nimport { Radio as RadioPrimitive } from \"@base-ui/react/radio\";\nimport { RadioGroup as RadioGroupPrimitive } from \"@base-ui/react/radio-group\";\nimport { cn } from \"../lib/utils\";\n\nfunction RadioGroup({ className, ...props }: RadioGroupPrimitive.Props) {\n return (\n <RadioGroupPrimitive\n data-slot=\"radio-group\"\n className={cn(\n \"flex flex-col gap-2\",\n \"data-[orientation=horizontal]:flex-row data-[orientation=horizontal]:gap-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction RadioGroupItem({ className, ...props }: RadioPrimitive.Root.Props) {\n return (\n <RadioPrimitive.Root\n data-slot=\"radio-group-item\"\n className={cn(\n \"group relative flex aspect-square size-4 shrink-0 cursor-pointer items-center justify-center rounded-full border border-field-border bg-field-background text-primary shadow-field select-none no-highlight\",\n \"data-checked:bg-primary data-checked:text-primary-foreground data-checked:border-transparent\",\n /* Hover */\n \"hover-only:hover:border-field-border-hover\",\n /* Focus Visible */\n \"focus-visible:focus-ring\",\n /* Disabled */\n \"data-disabled:status-disabled\",\n /* Invalid */\n \"data-[invalid]:border-field-border-invalid\",\n \"data-[invalid]:data-checked:bg-destructive data-[invalid]:data-checked:border-transparent\",\n /* Press */\n \"motion-safe:active:scale-[0.95]\",\n /* Transition */\n \"transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-150 ease-smooth\",\n /* Motion Reduce */\n \"motion-reduce:transition-none\",\n className,\n )}\n {...props}\n >\n <RadioPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n aria-hidden=\"true\"\n className=\"absolute inset-0 flex items-center justify-center\"\n keepMounted\n >\n <span className=\"size-2 scale-0 rounded-full bg-primary-foreground transition-transform duration-150 ease-out-fluid group-data-checked:scale-100 motion-reduce:transition-none\" />\n </RadioPrimitive.Indicator>\n </RadioPrimitive.Root>\n );\n}\n\nexport { RadioGroup, RadioGroupItem };\n\nexport type RadioGroupProps = React.ComponentProps<typeof RadioGroup>;\nexport type RadioGroupItemProps = React.ComponentProps<typeof RadioGroupItem>;\n","\"use client\";\n\nimport { GripVertical } from \"lucide-react\";\nimport {\n Group,\n Panel,\n Separator,\n type GroupProps,\n type PanelProps,\n type SeparatorProps,\n} from \"react-resizable-panels\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction ResizablePanelGroup({\n className,\n orientation = \"horizontal\",\n ...props\n}: GroupProps) {\n return (\n <Group\n data-slot=\"resizable-panel-group\"\n className={cn(\n \"flex size-full\",\n orientation === \"vertical\" && \"flex-col\",\n className,\n )}\n orientation={orientation}\n {...props}\n />\n );\n}\n\nfunction ResizablePanel({ className, ...props }: PanelProps) {\n return (\n <Panel data-slot=\"resizable-panel\" className={cn(className)} {...props} />\n );\n}\n\nfunction ResizableHandle({\n withHandle,\n className,\n ...props\n}: SeparatorProps & {\n withHandle?: boolean;\n}) {\n return (\n <Separator\n data-slot=\"resizable-handle\"\n className={cn(\n \"bg-border relative flex w-px items-center justify-center\",\n \"after:absolute after:inset-y-0 after:-left-1 after:-right-1\",\n \"hover-only:hover:bg-primary/20\",\n \"focus-visible:focus-ring focus-visible:outline-1\",\n \"transition-colors duration-150 ease-smooth motion-reduce:transition-none\",\n className,\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"z-10 flex h-4 w-3 items-center justify-center rounded-sm border border-border bg-surface-secondary\">\n <GripVertical className=\"size-2.5 text-muted-foreground\" />\n </div>\n )}\n </Separator>\n );\n}\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\n\nexport type ResizablePanelGroupProps = React.ComponentProps<\n typeof ResizablePanelGroup\n>;\nexport type ResizablePanelProps = React.ComponentProps<typeof ResizablePanel>;\nexport type ResizableHandleProps = React.ComponentProps<typeof ResizableHandle>;\n","\"use client\";\n\nimport { cn } from \"../lib/utils\";\n\nconst gapMap: Record<number, string> = {\n 0: \"gap-0\",\n 1: \"gap-1\",\n 2: \"gap-2\",\n 3: \"gap-3\",\n 4: \"gap-4\",\n 5: \"gap-5\",\n 6: \"gap-6\",\n 8: \"gap-8\",\n 10: \"gap-10\",\n 12: \"gap-12\",\n};\n\nconst alignMap = {\n start: \"items-start\",\n center: \"items-center\",\n end: \"items-end\",\n stretch: \"items-stretch\",\n baseline: \"items-baseline\",\n} as const;\n\nconst justifyMap = {\n start: \"justify-start\",\n center: \"justify-center\",\n end: \"justify-end\",\n between: \"justify-between\",\n around: \"justify-around\",\n evenly: \"justify-evenly\",\n} as const;\n\nfunction Row({\n className,\n gap = 3,\n align = \"center\",\n justify = \"start\",\n wrap = false,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n gap?: number;\n align?: keyof typeof alignMap;\n justify?: keyof typeof justifyMap;\n wrap?: boolean;\n}) {\n return (\n <div\n data-slot=\"row\"\n className={cn(\n \"flex flex-row\",\n gapMap[gap] ?? `gap-${gap}`,\n alignMap[align],\n justifyMap[justify],\n wrap && \"flex-wrap\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport { Row };\n\nexport type RowProps = React.ComponentProps<typeof Row>;\n","\"use client\";\n\nimport { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: ScrollAreaPrimitive.Root.Props) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"size-full rounded-[inherit] outline-none focus-visible:focus-ring\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n );\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: ScrollAreaPrimitive.Scrollbar.Props) {\n return (\n <ScrollAreaPrimitive.Scrollbar\n data-slot=\"scroll-area-scrollbar\"\n data-orientation={orientation}\n orientation={orientation}\n className={cn(\n \"data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent flex touch-none p-px transition-colors motion-reduce:transition-none select-none\",\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.Thumb\n data-slot=\"scroll-area-thumb\"\n className=\"rounded-full bg-border-dark relative flex-1\"\n />\n </ScrollAreaPrimitive.Scrollbar>\n );\n}\n\nexport { ScrollArea, ScrollBar };\n\nexport type ScrollAreaProps = React.ComponentProps<typeof ScrollArea>;\nexport type ScrollBarProps = React.ComponentProps<typeof ScrollBar>;\n","\"use client\";\n\nimport { Radio as RadioPrimitive } from \"@base-ui/react/radio\";\nimport { RadioGroup as RadioGroupPrimitive } from \"@base-ui/react/radio-group\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\nconst segmentedControlVariants = cva(\n \"inline-flex items-center rounded-full bg-surface-secondary p-1\",\n {\n variants: {\n size: {\n sm: \"h-8 text-xs\",\n md: \"h-9 text-sm\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nfunction SegmentedControl({\n className,\n size,\n ...props\n}: RadioGroupPrimitive.Props & VariantProps<typeof segmentedControlVariants>) {\n return (\n <RadioGroupPrimitive\n data-slot=\"segmented-control\"\n className={cn(segmentedControlVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction SegmentedControlItem({\n className,\n children,\n ...props\n}: RadioPrimitive.Root.Props) {\n return (\n <RadioPrimitive.Root\n data-slot=\"segmented-control-item\"\n className={cn(\n \"group relative inline-flex cursor-pointer items-center justify-center gap-1.5 rounded-full px-3 py-1 font-medium select-none no-highlight\",\n \"text-muted-foreground\",\n \"data-checked:bg-surface data-checked:text-foreground data-checked:shadow-surface\",\n /* Hover */\n \"hover-only:hover:text-foreground\",\n /* Focus Visible */\n \"focus-visible:focus-ring\",\n /* Press */\n \"motion-safe:active:scale-[0.97]\",\n /* Transition */\n \"transition-[color,background-color,box-shadow,opacity,transform] duration-150 ease-smooth\",\n /* Motion Reduce */\n \"motion-reduce:transition-none\",\n className,\n )}\n {...props}\n >\n <RadioPrimitive.Indicator\n data-slot=\"segmented-control-indicator\"\n className=\"flex items-center justify-center\"\n keepMounted\n >\n <span className=\"size-1.5 scale-0 rounded-full bg-current transition-transform duration-150 ease-out-fluid group-data-checked:scale-100 motion-reduce:transition-none\" />\n </RadioPrimitive.Indicator>\n {children}\n </RadioPrimitive.Root>\n );\n}\n\nexport { SegmentedControl, SegmentedControlItem, segmentedControlVariants };\n\nexport type SegmentedControlProps = React.ComponentProps<\n typeof SegmentedControl\n>;\nexport type SegmentedControlItemProps = React.ComponentProps<\n typeof SegmentedControlItem\n>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Select as SelectPrimitive } from \"@base-ui/react/select\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\nconst selectTriggerVariants = cva(\n [\n \"group flex w-full cursor-pointer items-center justify-between whitespace-nowrap rounded-md border border-field-border bg-field-background px-3 py-2 text-sm shadow-field\",\n \"transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth\",\n \"placeholder:text-muted-foreground\",\n \"hover-only:border-field-border-hover\",\n \"focus:focus-field-ring\",\n \"data-[invalid]:border-field-border-invalid\",\n \"disabled:status-disabled\",\n \"motion-reduce:transition-none\",\n \"no-highlight\",\n \"motion-safe:active:scale-[0.97]\",\n \"[&>span]:line-clamp-1\",\n ],\n {\n variants: {\n size: {\n default: \"h-9\",\n sm: \"h-8 px-2 text-xs\",\n lg: \"h-10 px-4\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n },\n);\n\nfunction Select({ ...props }: SelectPrimitive.Root.Props<any>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup({ className, ...props }: SelectPrimitive.Group.Props) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(\"p-1\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectValue({ className, ...props }: SelectPrimitive.Value.Props) {\n return (\n <SelectPrimitive.Value\n data-slot=\"select-value\"\n className={cn(\"truncate\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: SelectPrimitive.Trigger.Props & VariantProps<typeof selectTriggerVariants>) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n className={cn(selectTriggerVariants({ size }), className)}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon\n render={\n <ChevronDownIcon className=\"size-4 opacity-50 transition-transform duration-150 ease-smooth motion-reduce:transition-none group-data-popup-open:rotate-180\" />\n }\n />\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n alignItemWithTrigger = true,\n ...props\n}: SelectPrimitive.Popup.Props &\n Pick<\n SelectPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\" | \"alignItemWithTrigger\"\n >) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n alignItemWithTrigger={alignItemWithTrigger}\n className=\"z-50\"\n >\n <SelectPrimitive.Popup\n data-slot=\"select-content\"\n className={cn(\n \"max-h-96 min-w-[8rem] overflow-hidden rounded-xl border border-border-light bg-overlay text-overlay-foreground shadow-overlay outline-none\",\n \"data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]\",\n \"data-open:animate-in data-open:duration-150 data-open:[animation-timing-function:var(--ease-out-fluid)] data-closed:animate-out data-closed:duration-100 data-closed:[animation-timing-function:var(--ease-in-quart)] data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1\",\n \"motion-reduce:animate-none motion-reduce:transition-none\",\n \"max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-y-auto overscroll-contain scroll-py-1\",\n className,\n )}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.List className=\"p-1\">\n {children}\n </SelectPrimitive.List>\n <SelectScrollDownButton />\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: SelectPrimitive.GroupLabel.Props) {\n return (\n <SelectPrimitive.GroupLabel\n data-slot=\"select-label\"\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: SelectPrimitive.Item.Props) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none no-highlight\",\n \"data-highlighted:bg-primary-soft data-highlighted:text-foreground\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n >\n <SelectPrimitive.ItemIndicator\n render={\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: SelectPrimitive.Separator.Props) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border-light\", className)}\n {...props}\n />\n );\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>) {\n return (\n <SelectPrimitive.ScrollUpArrow\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"flex h-6 w-full cursor-default items-center justify-center\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpArrow>\n );\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>) {\n return (\n <SelectPrimitive.ScrollDownArrow\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"flex h-6 w-full cursor-default items-center justify-center\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownArrow>\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n selectTriggerVariants,\n SelectValue,\n};\n\nexport type SelectProps = React.ComponentProps<typeof Select>;\nexport type SelectContentProps = React.ComponentProps<typeof SelectContent>;\nexport type SelectItemProps = React.ComponentProps<typeof SelectItem>;\nexport type SelectTriggerProps = React.ComponentProps<typeof SelectTrigger>;\n","\"use client\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst sectionVariants = cva(\"w-full\", {\n variants: {\n background: {\n none: \"\",\n default: \"bg-background\",\n surface: \"bg-surface\",\n \"surface-secondary\": \"bg-surface-secondary\",\n \"surface-tertiary\": \"bg-surface-tertiary\",\n muted: \"bg-muted\",\n primary: \"bg-primary text-primary-foreground\",\n },\n padding: {\n none: \"\",\n sm: \"py-6\",\n md: \"py-10\",\n lg: \"py-16\",\n xl: \"py-24\",\n },\n },\n defaultVariants: {\n background: \"none\",\n padding: \"lg\",\n },\n});\n\nconst contentMaxWidth = {\n sm: \"max-w-sm\",\n md: \"max-w-md\",\n lg: \"max-w-lg\",\n xl: \"max-w-xl\",\n \"2xl\": \"max-w-2xl\",\n \"4xl\": \"max-w-4xl\",\n \"5xl\": \"max-w-5xl\",\n full: \"max-w-full\",\n} as const;\n\nfunction Section({\n className,\n background,\n padding,\n maxWidth = \"5xl\",\n centered = true,\n children,\n ...props\n}: React.ComponentProps<\"section\"> &\n VariantProps<typeof sectionVariants> & {\n maxWidth?: keyof typeof contentMaxWidth;\n centered?: boolean;\n }) {\n return (\n <section\n data-slot=\"section\"\n className={cn(sectionVariants({ background, padding }), className)}\n {...props}\n >\n <div\n data-slot=\"section-content\"\n className={cn(\n contentMaxWidth[maxWidth],\n centered && \"mx-auto\",\n \"px-6\",\n )}\n >\n {children}\n </div>\n </section>\n );\n}\n\nexport { Section, sectionVariants };\n\nexport type SectionProps = React.ComponentProps<typeof Section>;\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\n \"animate-pulse motion-reduce:animate-none rounded-md bg-muted\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n\nexport type SkeletonProps = React.ComponentProps<typeof Skeleton>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst spinnerVariants = cva(\n \"animate-spin motion-reduce:animate-none text-muted-foreground\",\n {\n variants: {\n size: {\n sm: \"size-4\",\n md: \"size-6\",\n lg: \"size-8\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nfunction Spinner({\n className,\n size,\n ...props\n}: React.ComponentProps<\"svg\"> & VariantProps<typeof spinnerVariants>) {\n return (\n <svg\n data-slot=\"spinner\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n className={cn(spinnerVariants({ size }), className)}\n {...props}\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n );\n}\n\nexport { Spinner, spinnerVariants };\n\nexport type SpinnerProps = React.ComponentProps<typeof Spinner>;\n","\"use client\";\n\nimport React from \"react\";\nimport { Slider as SliderPrimitive } from \"@base-ui/react/slider\";\n\nimport { cn } from \"../lib/utils\";\n\n/* ---------------------------------------------------------------------------\n * Internal context — passes slider values to SliderTrack for fill-edge coloring\n * (mirrors HeroUI's data-fill-start / data-fill-end approach)\n * -------------------------------------------------------------------------*/\n\ntype SliderContextValue = { values: number[]; min: number; max: number };\n\nconst SliderCtx = React.createContext<SliderContextValue>({\n values: [],\n min: 0,\n max: 100,\n});\n\n/* ---------------------------------------------------------------------------\n * Slider (Root)\n * -------------------------------------------------------------------------*/\n\nfunction Slider({\n className,\n defaultValue,\n value: controlledValue,\n min = 0,\n max = 100,\n onValueChange,\n ...props\n}: SliderPrimitive.Root.Props) {\n const toArr = (\n v: number | readonly number[] | undefined,\n ): number[] | undefined =>\n v === undefined ? undefined : Array.isArray(v) ? [...v] : [v as number];\n\n const [internal, setInternal] = React.useState<number[]>(\n () => toArr(controlledValue) ?? toArr(defaultValue) ?? [min],\n );\n\n const values = toArr(controlledValue) ?? internal;\n\n const handleValueChange = React.useCallback(\n (val: any, details: any) => {\n setInternal(Array.isArray(val) ? [...val] : [val]);\n onValueChange?.(val, details);\n },\n [onValueChange],\n );\n\n return (\n <SliderCtx value={{ values, min, max }}>\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={controlledValue}\n min={min}\n max={max}\n onValueChange={handleValueChange}\n className={cn(\n \"grid w-full gap-2\",\n \"data-[orientation=horizontal]:grid-cols-[1fr_auto] data-[orientation=horizontal]:[grid-template-areas:'label_output'_'track_track']\",\n \"data-[orientation=vertical]:[grid-template-areas:'output'_'track'_'label'] data-[orientation=vertical]:grid-rows-[auto_1fr_auto]\",\n className,\n )}\n {...props}\n />\n </SliderCtx>\n );\n}\n\n/* ---------------------------------------------------------------------------\n * SliderControl\n * -------------------------------------------------------------------------*/\n\nfunction SliderControl({ className, ...props }: SliderPrimitive.Control.Props) {\n return (\n <SliderPrimitive.Control\n data-slot=\"slider-control\"\n className={cn(\n \"relative flex touch-none select-none items-center [grid-area:track]\",\n \"data-[orientation=horizontal]:w-full\",\n \"data-[orientation=vertical]:h-full data-[orientation=vertical]:flex-col\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ---------------------------------------------------------------------------\n * SliderTrack\n *\n * Uses the HeroUI transparent-border technique:\n * - Transparent borders = half the thumb width, creating visual padding\n * - data-fill-start / data-fill-end color the borders to extend the fill\n * to the visual edge of the track when the value reaches min/max\n * -------------------------------------------------------------------------*/\n\nfunction SliderTrack({ className, ...props }: SliderPrimitive.Track.Props) {\n const { values, min, max } = React.useContext(SliderCtx);\n\n const singleThumb = values.length <= 1;\n const startPct = singleThumb ? 0 : (values[0] - min) / (max - min);\n const endPct =\n values.length > 0 ? (values[values.length - 1] - min) / (max - min) : 0;\n const hasFill = endPct - startPct > 0;\n\n const fillStart = singleThumb ? hasFill : startPct <= 0;\n const fillEnd = endPct >= 1;\n\n return (\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n data-fill-start={fillStart || undefined}\n data-fill-end={fillEnd || undefined}\n className={cn(\n \"relative grow rounded-full bg-primary/20 shadow-inset-track\",\n /* Horizontal — border = half thumb width (0.75rem = 12px) */\n \"data-[orientation=horizontal]:h-5 data-[orientation=horizontal]:w-full\",\n \"data-[orientation=horizontal]:border-x-[0.75rem] data-[orientation=horizontal]:border-x-transparent\",\n \"data-[orientation=horizontal]:data-[fill-start]:border-s-primary\",\n \"data-[orientation=horizontal]:data-[fill-end]:border-e-primary\",\n /* Vertical — border = half thumb height */\n \"data-[orientation=vertical]:h-full data-[orientation=vertical]:w-5\",\n \"data-[orientation=vertical]:border-y-[0.75rem] data-[orientation=vertical]:border-y-transparent\",\n \"data-[orientation=vertical]:data-[fill-start]:border-b-primary\",\n \"data-[orientation=vertical]:data-[fill-end]:border-t-primary\",\n /* Disabled */\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ---------------------------------------------------------------------------\n * SliderIndicator (fill)\n * -------------------------------------------------------------------------*/\n\nfunction SliderIndicator({\n className,\n ...props\n}: SliderPrimitive.Indicator.Props) {\n return (\n <SliderPrimitive.Indicator\n data-slot=\"slider-indicator\"\n className={cn(\n \"bg-primary\",\n \"data-[orientation=horizontal]:h-full\",\n \"data-[orientation=vertical]:w-full data-[orientation=vertical]:absolute data-[orientation=vertical]:bottom-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ---------------------------------------------------------------------------\n * SliderThumb\n *\n * Outer container is bg-primary (blends with indicator).\n * Inner ::after pill is the white knob.\n * -------------------------------------------------------------------------*/\n\nfunction SliderThumb({ className, ...props }: SliderPrimitive.Thumb.Props) {\n return (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n className={cn(\n \"flex items-center justify-center rounded-full bg-primary\",\n \"cursor-grab data-dragging:cursor-grabbing data-disabled:cursor-default data-disabled:status-disabled\",\n /* Dimensions — match track height exactly, explicit width */\n \"h-5 w-6\",\n \"data-[orientation=vertical]:h-6 data-[orientation=vertical]:w-5\",\n /* Inner white knob via ::after */\n \"after:relative after:z-10 after:block after:rounded-full after:bg-background after:shadow-field\",\n \"data-[orientation=horizontal]:after:h-3 data-[orientation=horizontal]:after:w-4\",\n \"data-[orientation=vertical]:after:h-4 data-[orientation=vertical]:after:w-3\",\n /* Drag animation */\n \"data-dragging:[&::after]:scale-[0.9] motion-reduce:[&::after]:scale-100\",\n /* Hover halo */\n \"hover-only:hover:shadow-[0_0_0_5px_var(--color-primary-soft)]\",\n /* Focus */\n \"focus-visible:focus-ring focus-visible:z-10\",\n /* Transitions */\n \"transition-[background-color,transform,box-shadow] duration-250 ease-smooth\",\n \"[&::after]:transition-transform [&::after]:duration-250 [&::after]:ease-out-fluid\",\n \"motion-reduce:transition-none [&::after]:motion-reduce:transition-none\",\n /* Touch */\n \"no-highlight\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ---------------------------------------------------------------------------\n * SliderOutput (value display)\n * -------------------------------------------------------------------------*/\n\nfunction SliderOutput({ className, ...props }: SliderPrimitive.Value.Props) {\n return (\n <SliderPrimitive.Value\n data-slot=\"slider-output\"\n className={cn(\n \"text-sm font-medium tabular-nums [grid-area:output]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Slider,\n SliderControl,\n SliderTrack,\n SliderIndicator,\n SliderThumb,\n SliderOutput,\n};\n\nexport type SliderProps = React.ComponentProps<typeof Slider>;\nexport type SliderTrackProps = React.ComponentProps<typeof SliderTrack>;\nexport type SliderThumbProps = React.ComponentProps<typeof SliderThumb>;\n","\"use client\";\n\nimport React from \"react\";\nimport { Switch as SwitchPrimitive } from \"@base-ui/react/switch\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\n/* ---------------------------------------------------------------------------\n * Internal context — passes size from Switch root to sub-components\n * -------------------------------------------------------------------------*/\n\ntype SwitchSize = \"sm\" | \"md\" | \"lg\";\n\ntype SwitchContextValue = { size: SwitchSize };\n\nconst SwitchCtx = React.createContext<SwitchContextValue>({ size: \"md\" });\n\n/* ---------------------------------------------------------------------------\n * CVA — track sizing variants\n * -------------------------------------------------------------------------*/\n\nconst switchVariants = cva(\n [\n \"peer inline-flex shrink-0 cursor-pointer items-center overflow-hidden rounded-full\",\n \"bg-surface-tertiary\",\n \"group-data-checked:bg-primary\",\n \"hover-only:group-hover:group-data-unchecked:bg-accent-hover\",\n \"hover-only:group-hover:group-data-checked:bg-primary-hover\",\n \"group-focus-visible:focus-ring\",\n \"group-data-readonly:cursor-default\",\n \"motion-safe:active:scale-[0.97]\",\n \"transition-[color,background-color,box-shadow,opacity] duration-250 ease-smooth\",\n \"motion-reduce:transition-none\",\n \"shadow-field\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[18px] w-8\",\n md: \"h-[22px] w-10\",\n lg: \"h-[26px] w-12\",\n },\n },\n defaultVariants: { size: \"md\" },\n },\n);\n\n/* ---------------------------------------------------------------------------\n * Switch (Root)\n * -------------------------------------------------------------------------*/\n\nfunction Switch({\n className,\n children,\n size = \"md\",\n ...props\n}: SwitchPrimitive.Root.Props & { size?: SwitchSize }) {\n return (\n <SwitchCtx value={{ size }}>\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n \"group inline-flex items-center gap-2 select-none no-highlight\",\n \"text-sm font-medium leading-none\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n >\n {children}\n </SwitchPrimitive.Root>\n </SwitchCtx>\n );\n}\n\n/* ---------------------------------------------------------------------------\n * SwitchTrack\n * -------------------------------------------------------------------------*/\n\nfunction SwitchTrack({\n className,\n size: sizeProp,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof switchVariants>) {\n const { size: ctxSize } = React.useContext(SwitchCtx);\n const size = sizeProp ?? ctxSize;\n\n return (\n <div\n data-slot=\"switch-track\"\n className={cn(switchVariants({ size }), className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n\n/* ---------------------------------------------------------------------------\n * SwitchThumb\n *\n * Rounded rectangle (pill) thumb, wider than tall for a premium feel.\n * Positioned via margin-inline-start for RTL support.\n *\n * Size dimensions:\n * sm: 14×20px (h-3.5 w-5) — checked ms-[10px]\n * md: 18×24px (h-[18px] w-6) — checked ms-[14px]\n * lg: 22×28px (h-[22px] w-7) — checked ms-[18px]\n * -------------------------------------------------------------------------*/\n\nconst thumbSizeClasses: Record<SwitchSize, string> = {\n sm: \"h-3.5 w-5 ms-0.5 group-data-checked:ms-[10px]\",\n md: \"h-[18px] w-6 ms-0.5 group-data-checked:ms-[14px]\",\n lg: \"h-[22px] w-7 ms-0.5 group-data-checked:ms-[18px]\",\n};\n\nfunction SwitchThumb({\n className,\n children,\n ...props\n}: SwitchPrimitive.Thumb.Props) {\n const { size } = React.useContext(SwitchCtx);\n\n return (\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"pointer-events-none block rounded-full bg-background shadow-field\",\n thumbSizeClasses[size],\n /* Transition */\n \"transition-[margin-inline-start,background-color] duration-250 ease-out-fluid\",\n /* Motion Reduce */\n \"motion-reduce:transition-none\",\n className,\n )}\n {...props}\n >\n {children}\n </SwitchPrimitive.Thumb>\n );\n}\n\n/* ---------------------------------------------------------------------------\n * SwitchIcon — presentational wrapper for icons inside the thumb\n * -------------------------------------------------------------------------*/\n\nconst iconSizeClasses: Record<SwitchSize, string> = {\n sm: \"[&_svg]:size-2.5\",\n md: \"[&_svg]:size-3\",\n lg: \"[&_svg]:size-3.5\",\n};\n\nfunction SwitchIcon({ className, ...props }: React.ComponentProps<\"span\">) {\n const { size } = React.useContext(SwitchCtx);\n\n return (\n <span\n data-slot=\"switch-icon\"\n aria-hidden=\"true\"\n className={cn(\n \"flex items-center justify-center size-full\",\n iconSizeClasses[size],\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Switch, SwitchTrack, SwitchThumb, SwitchIcon, switchVariants };\n\nexport type SwitchProps = React.ComponentProps<typeof Switch>;\nexport type SwitchTrackProps = React.ComponentProps<typeof SwitchTrack>;\nexport type SwitchThumbProps = React.ComponentProps<typeof SwitchThumb>;\n","\"use client\";\n\nimport { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Tabs({\n className,\n orientation = \"horizontal\",\n ...props\n}: TabsPrimitive.Root.Props) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-orientation={orientation}\n className={cn(\n \"gap-2 group/tabs flex data-horizontal:flex-col\",\n className,\n )}\n {...props}\n />\n );\n}\n\nconst tabsListVariants = cva(\n \"rounded-lg p-[3px] group-data-horizontal/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col\",\n {\n variants: {\n variant: {\n default: \"bg-surface-secondary\",\n line: \"gap-1 bg-transparent group-data-horizontal/tabs:border-b group-data-vertical/tabs:border-r border-border p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction TabsList({\n className,\n variant = \"default\",\n ...props\n}: TabsPrimitive.List.Props & VariantProps<typeof tabsListVariants>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nfunction TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props) {\n return (\n <TabsPrimitive.Tab\n data-slot=\"tabs-trigger\"\n className={cn(\n \"no-highlight gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium group-data-[variant=default]/tabs-list:data-active:shadow-surface group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg:not([class*='size-'])]:size-4 focus-visible:focus-ring text-foreground/60 hover-only:hover:text-foreground dark:text-muted-foreground dark:hover-only:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center whitespace-nowrap transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth motion-reduce:transition-none motion-safe:active:scale-[0.98] group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start disabled:status-disabled aria-disabled:status-disabled [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n \"group-data-[variant=line]/tabs-list:rounded-none group-data-[variant=line]/tabs-list:h-full group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent group-data-[variant=line]/tabs-list:text-muted-foreground group-data-[variant=line]/tabs-list:data-active:text-foreground group-data-[variant=line]/tabs-list:border-transparent group-data-horizontal/tabs:group-data-[variant=line]/tabs-list:border-b-2 group-data-horizontal/tabs:group-data-[variant=line]/tabs-list:data-active:border-b-primary group-data-vertical/tabs:group-data-[variant=line]/tabs-list:border-r-2 group-data-vertical/tabs:group-data-[variant=line]/tabs-list:data-active:border-r-primary group-data-horizontal/tabs:group-data-[variant=line]/tabs-list:-mb-px group-data-vertical/tabs:group-data-[variant=line]/tabs-list:-mr-px\",\n \"data-active:bg-surface data-active:text-foreground data-active:border-field-border\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsContent({ className, ...props }: TabsPrimitive.Panel.Props) {\n return (\n <TabsPrimitive.Panel\n data-slot=\"tabs-content\"\n className={cn(\"text-sm flex-1 outline-none\", className)}\n {...props}\n />\n );\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };\n\nexport type TabsProps = React.ComponentProps<typeof Tabs>;\nexport type TabsListProps = React.ComponentProps<typeof TabsList>;\nexport type TabsTriggerProps = React.ComponentProps<typeof TabsTrigger>;\nexport type TabsContentProps = React.ComponentProps<typeof TabsContent>;\n","\"use client\";\n\nimport { Field as FieldPrimitive } from \"@base-ui/react/field\";\nimport { Input as InputPrimitive } from \"@base-ui/react/input\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nimport { FieldError, FieldDescription, FieldLabel } from \"./field\";\n\nfunction TextField({ className, ...props }: FieldPrimitive.Root.Props) {\n return (\n <FieldPrimitive.Root\n data-slot=\"text-field\"\n className={cn(\"group flex flex-col gap-2\", className)}\n {...props}\n />\n );\n}\n\nconst inputVariants = cva(\n [\n \"flex w-full rounded-md border border-field-border bg-field-background shadow-field\",\n \"file:border-0 file:bg-transparent file:text-sm file:font-medium\",\n \"placeholder:text-muted-foreground\",\n /* Focus */\n \"outline-none focus-visible:border-field-border-focus focus-visible:focus-field-ring\",\n /* Disabled */\n \"data-[disabled]:status-disabled\",\n /* Hover */\n \"hover-only:hover:border-field-border-hover\",\n /* Invalid */\n \"data-invalid:border-field-border-invalid data-invalid:ring-1 data-invalid:ring-destructive/30 data-invalid:focus-visible:invalid-field-ring data-invalid:focus-visible:ring-0\",\n /* Transition */\n \"transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth\",\n /* Motion reduce */\n \"motion-reduce:transition-none\",\n ],\n {\n variants: {\n size: {\n sm: \"h-8 px-2 text-xs\",\n default: \"h-9 px-3 py-1 text-base md:text-sm\",\n lg: \"h-10 px-4 text-base md:text-sm\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n },\n);\n\nfunction Input({\n className,\n size,\n ...props\n}: Omit<InputPrimitive.Props, \"size\"> & VariantProps<typeof inputVariants>) {\n return (\n <InputPrimitive\n data-slot=\"input\"\n className={cn(inputVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction TextArea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border border-field-border bg-field-background px-3 py-2 text-base shadow-field md:text-sm\",\n \"placeholder:text-muted-foreground\",\n /* Focus */\n \"outline-none focus-visible:focus-field-ring\",\n /* Disabled */\n \"disabled:status-disabled\",\n /* Hover */\n \"hover-only:hover:border-field-border-hover\",\n /* Invalid */\n \"data-invalid:border-field-border-invalid data-invalid:ring-1 data-invalid:ring-destructive/30 data-invalid:focus-visible:invalid-field-ring data-invalid:focus-visible:ring-0\",\n /* Transition */\n \"transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth\",\n /* Motion reduce */\n \"motion-reduce:transition-none\",\n className,\n )}\n {...props}\n />\n );\n}\n\ninterface ProtoTextFieldProps extends FieldPrimitive.Root.Props {\n label?: string;\n description?: string;\n errorMessage?: string;\n textArea?: boolean;\n inputProps?: Omit<InputPrimitive.Props, \"size\"> &\n VariantProps<typeof inputVariants>;\n textAreaProps?: React.ComponentProps<\"textarea\">;\n}\n\nfunction ProtoTextField({\n label,\n description,\n errorMessage,\n textArea,\n inputProps,\n textAreaProps,\n className,\n children,\n ...props\n}: ProtoTextFieldProps) {\n return (\n <TextField className={cn(className)} {...props}>\n {label && <FieldLabel>{label}</FieldLabel>}\n {children}\n {!children &&\n (textArea ? (\n <TextArea {...textAreaProps} />\n ) : (\n <Input {...inputProps} />\n ))}\n {description && <FieldDescription>{description}</FieldDescription>}\n {errorMessage && <FieldError>{errorMessage}</FieldError>}\n </TextField>\n );\n}\n\nexport { Input, inputVariants, TextField, ProtoTextField, TextArea };\n\nexport type TextFieldProps = React.ComponentProps<typeof TextField>;\nexport type { ProtoTextFieldProps };\nexport type TextFieldInputProps = React.ComponentProps<typeof Input>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Toast as ToastPrimitive } from \"@base-ui/react/toast\";\nimport type {\n ToastObject,\n ToastManagerAddOptions,\n ToastManagerPromiseOptions,\n} from \"@base-ui/react/toast\";\nimport {\n CircleCheckIcon,\n InfoIcon,\n TriangleAlertIcon,\n OctagonXIcon,\n Loader2Icon,\n} from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\n// ── Global manager (imperative API from outside React) ──────────────────────\n\nconst toastManager = ToastPrimitive.createToastManager();\n\n// ── Icons per type ──────────────────────────────────────────────────────────\n\nconst toastIcons: Record<string, React.ReactNode> = {\n success: (\n <CircleCheckIcon\n data-slot=\"toast-icon\"\n className=\"size-4 shrink-0 text-success\"\n />\n ),\n info: (\n <InfoIcon data-slot=\"toast-icon\" className=\"size-4 shrink-0 text-info\" />\n ),\n warning: (\n <TriangleAlertIcon\n data-slot=\"toast-icon\"\n className=\"size-4 shrink-0 text-warning\"\n />\n ),\n error: (\n <OctagonXIcon\n data-slot=\"toast-icon\"\n className=\"size-4 shrink-0 text-destructive\"\n />\n ),\n loading: (\n <Loader2Icon\n data-slot=\"toast-icon\"\n className=\"size-4 shrink-0 text-muted-foreground animate-spin motion-reduce:animate-none\"\n />\n ),\n};\n\n// ── ToastItem (renders a single toast) ──────────────────────────────────────\n\nfunction ToastItem({ toast }: { toast: ToastObject<object> }) {\n const icon = toast.type ? toastIcons[toast.type] : undefined;\n\n return (\n <ToastPrimitive.Root\n data-slot=\"toast\"\n toast={toast}\n className={cn(\n \"bg-overlay text-overlay-foreground shadow-overlay flex items-center gap-3 rounded-lg border p-4 text-sm\",\n \"transition-[opacity,transform] duration-250 ease-out-fluid\",\n \"data-ending-style:opacity-0 data-ending-style:translate-y-2\",\n \"data-starting-style:opacity-0 data-starting-style:translate-y-2\",\n \"data-[swipe-direction]:translate-x-[var(--toast-swipe-movement-x)] data-[swipe-direction]:translate-y-[var(--toast-swipe-movement-y)]\",\n \"motion-reduce:animate-none motion-reduce:transition-none\",\n )}\n >\n {icon}\n <div data-slot=\"toast-content\" className=\"flex-1 min-w-0\">\n {toast.title && (\n <ToastPrimitive.Title data-slot=\"toast-title\" className=\"font-medium\">\n {toast.title}\n </ToastPrimitive.Title>\n )}\n {toast.description && (\n <ToastPrimitive.Description\n data-slot=\"toast-description\"\n className=\"text-muted-foreground text-sm\"\n >\n {toast.description}\n </ToastPrimitive.Description>\n )}\n </div>\n <ToastPrimitive.Action\n data-slot=\"toast-action\"\n className=\"shrink-0 rounded-md border bg-surface px-2.5 py-1 text-xs font-medium transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth hover-only:hover:bg-surface-secondary motion-reduce:transition-none\"\n />\n <ToastPrimitive.Close\n data-slot=\"toast-close\"\n className=\"shrink-0 rounded-md p-0.5 text-muted-foreground transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth hover-only:hover:text-foreground motion-reduce:transition-none\"\n aria-label=\"Dismiss\"\n >\n ×\n </ToastPrimitive.Close>\n </ToastPrimitive.Root>\n );\n}\n\n// ── Toaster (viewport + renders toast list) ─────────────────────────────────\n\nfunction Toaster() {\n const { toasts } = ToastPrimitive.useToastManager();\n\n return (\n <ToastPrimitive.Viewport\n data-slot=\"toaster\"\n className=\"fixed bottom-4 right-4 z-[100] flex w-[356px] max-w-[calc(100vw-2rem)] flex-col gap-2\"\n >\n {toasts.map((t) => (\n <ToastItem key={t.id} toast={t} />\n ))}\n </ToastPrimitive.Viewport>\n );\n}\n\n// ── ToastProvider (wraps app) ───────────────────────────────────────────────\n\nfunction ToastProvider({ children }: { children: React.ReactNode }) {\n return (\n <ToastPrimitive.Provider toastManager={toastManager}>\n {children}\n <Toaster />\n </ToastPrimitive.Provider>\n );\n}\n\n// ── Imperative API ──────────────────────────────────────────────────────────\n\ninterface ToastOptions {\n description?: React.ReactNode;\n action?: { label: string; onClick: () => void };\n duration?: number;\n}\n\nfunction addToast(title: string, type?: string, opts?: ToastOptions) {\n const options: ToastManagerAddOptions<object> = {\n title,\n ...(type && { type }),\n ...(opts?.description && { description: opts.description }),\n ...(opts?.duration !== undefined && { timeout: opts.duration }),\n ...(opts?.action && {\n actionProps: {\n children: opts.action.label,\n onClick: opts.action.onClick,\n },\n }),\n };\n return toastManager.add(options);\n}\n\nfunction toast(title: string, opts?: ToastOptions) {\n return addToast(title, undefined, opts);\n}\n\ntoast.success = (title: string, opts?: ToastOptions) =>\n addToast(title, \"success\", opts);\n\ntoast.error = (title: string, opts?: ToastOptions) =>\n addToast(title, \"error\", opts);\n\ntoast.warning = (title: string, opts?: ToastOptions) =>\n addToast(title, \"warning\", opts);\n\ntoast.info = (title: string, opts?: ToastOptions) =>\n addToast(title, \"info\", opts);\n\ntoast.promise = <T,>(\n promise: Promise<T>,\n opts: ToastManagerPromiseOptions<T, object>,\n) => toastManager.promise(promise, opts);\n\n// ── Exports ─────────────────────────────────────────────────────────────────\n\nexport { ToastProvider, Toaster, toast };\n\nexport type ToastProviderProps = React.ComponentProps<typeof ToastProvider>;\nexport type { ToastOptions };\n","\"use client\";\n\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\n\nconst toggleVariants = cva(\n [\n \"inline-flex items-center justify-center rounded-md text-sm font-medium transform-gpu transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-150 ease-smooth\",\n \"motion-safe:active:scale-[0.97]\",\n \"motion-reduce:transition-none\",\n \"no-highlight\",\n \"focus-visible:focus-ring\",\n \"disabled:status-disabled\",\n \"hover-only:bg-muted hover-only:text-muted-foreground\",\n \"aria-pressed:bg-primary-soft aria-pressed:text-primary\",\n \"hover-only:aria-pressed:bg-primary-soft-hover hover-only:aria-pressed:text-primary\",\n \"[&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n \"group/toggle\",\n ],\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-field-border bg-transparent shadow-field hover-only:bg-accent hover-only:text-accent-foreground aria-pressed:shadow-none aria-pressed:border-transparent\",\n },\n size: {\n default: \"h-9 px-3\",\n sm: \"h-8 px-2\",\n lg: \"h-10 px-3\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction Toggle({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Toggle, toggleVariants };\n\nexport type ToggleProps = React.ComponentProps<typeof Toggle>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\";\nimport { ToggleGroup as ToggleGroupPrimitive } from \"@base-ui/react/toggle-group\";\nimport { type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../lib/utils\";\nimport { toggleVariants } from \"./toggle\";\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number;\n orientation?: \"horizontal\" | \"vertical\";\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n orientation: \"horizontal\",\n});\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n orientation = \"horizontal\",\n children,\n ...props\n}: ToggleGroupPrimitive.Props &\n VariantProps<typeof toggleVariants> & {\n spacing?: number;\n orientation?: \"horizontal\" | \"vertical\";\n }) {\n return (\n <ToggleGroupPrimitive\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n /* Base */\n \"group/toggle-group flex w-fit flex-row items-center rounded-md data-vertical:flex-col data-vertical:items-stretch\",\n /* Spaced: gap from CSS var */\n \"gap-[--spacing(var(--gap))]\",\n /* Flush (spacing=0): container treatment à la Base UI */\n \"data-[spacing=0]:gap-px data-[spacing=0]:p-0.5 data-[spacing=0]:bg-surface-secondary\",\n /* Flush + outline: add border & shadow to container */\n \"data-[spacing=0]:data-[variant=outline]:border data-[spacing=0]:data-[variant=outline]:border-field-border data-[spacing=0]:data-[variant=outline]:shadow-field\",\n className,\n )}\n {...props}\n >\n <ToggleGroupContext.Provider\n value={{ variant, size, spacing, orientation }}\n >\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive>\n );\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant = \"default\",\n size = \"default\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext);\n\n return (\n <TogglePrimitive\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n /* Flush (spacing=0): strip item chrome, small inner radius */\n \"group-data-[spacing=0]/toggle-group:rounded-sm group-data-[spacing=0]/toggle-group:border-0 group-data-[spacing=0]/toggle-group:shadow-none group-data-[spacing=0]/toggle-group:px-2\",\n /* Flush: disable press scale (items are tightly packed) */\n \"group-data-[spacing=0]/toggle-group:motion-safe:active:!scale-100\",\n \"shrink-0 focus:z-10 focus-visible:z-10\",\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className,\n )}\n {...props}\n >\n {children}\n </TogglePrimitive>\n );\n}\n\nexport { ToggleGroup, ToggleGroupItem };\n\nexport type ToggleGroupProps = React.ComponentProps<typeof ToggleGroup>;\nexport type ToggleGroupItemProps = React.ComponentProps<typeof ToggleGroupItem>;\n","\"use client\";\n\nimport { Toolbar as ToolbarPrimitive } from \"@base-ui/react/toolbar\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Toolbar({ className, ...props }: ToolbarPrimitive.Root.Props) {\n return (\n <ToolbarPrimitive.Root\n data-slot=\"toolbar\"\n className={cn(\n \"flex gap-2\",\n \"data-[orientation=vertical]:flex-col\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ToolbarButton({ className, ...props }: ToolbarPrimitive.Button.Props) {\n return (\n <ToolbarPrimitive.Button\n data-slot=\"toolbar-button\"\n className={cn(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium transform-gpu transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-150 ease-smooth\",\n \"motion-safe:active:scale-[0.97] motion-safe:active:bg-muted\",\n \"motion-reduce:transition-none\",\n \"no-highlight\",\n \"focus-visible:focus-ring focus-visible:z-10\",\n \"disabled:status-disabled\",\n \"hover-only:hover:bg-accent hover-only:hover:text-accent-foreground\",\n \"h-9 px-3\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ToolbarLink({ className, ...props }: ToolbarPrimitive.Link.Props) {\n return (\n <ToolbarPrimitive.Link\n data-slot=\"toolbar-link\"\n className={cn(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium transform-gpu transition-[color,background-color,border-color,box-shadow,opacity,transform] duration-150 ease-smooth\",\n \"motion-safe:active:scale-[0.97] motion-safe:active:bg-muted\",\n \"motion-reduce:transition-none\",\n \"no-highlight\",\n \"focus-visible:focus-ring focus-visible:z-10\",\n \"hover-only:hover:bg-accent hover-only:hover:text-accent-foreground\",\n \"h-9 px-3\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ToolbarGroup({ className, ...props }: ToolbarPrimitive.Group.Props) {\n return (\n <ToolbarPrimitive.Group\n data-slot=\"toolbar-group\"\n className={cn(\n \"flex items-center\",\n \"[&>*]:rounded-none [&>*:first-child]:rounded-s-md [&>*:last-child]:rounded-e-md\",\n \"[&>*]:focus-within:z-10\",\n \"data-disabled:status-disabled\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ToolbarSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: ToolbarPrimitive.Separator.Props) {\n return (\n <ToolbarPrimitive.Separator\n data-slot=\"toolbar-separator\"\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border-light\",\n orientation === \"horizontal\"\n ? \"h-[1px] w-full\"\n : \"h-5 self-center w-[1px]\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction ToolbarInput({ className, ...props }: ToolbarPrimitive.Input.Props) {\n return (\n <ToolbarPrimitive.Input\n data-slot=\"toolbar-input\"\n className={cn(\n \"flex h-9 w-full rounded-md border border-field-border bg-field-background px-3 py-1 text-sm shadow-field transition-[color,background-color,border-color,box-shadow,opacity] duration-150 ease-smooth\",\n \"motion-reduce:transition-none\",\n \"file:border-0 file:bg-transparent file:text-sm file:font-medium\",\n \"placeholder:text-muted-foreground\",\n \"hover-only:border-field-border-hover\",\n \"focus-visible:focus-field-ring\",\n \"disabled:status-disabled\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Toolbar,\n ToolbarButton,\n ToolbarLink,\n ToolbarGroup,\n ToolbarSeparator,\n ToolbarInput,\n};\n\nexport type ToolbarProps = React.ComponentProps<typeof Toolbar>;\nexport type ToolbarButtonProps = React.ComponentProps<typeof ToolbarButton>;\n","\"use client\";\n\nimport { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction TooltipProvider({\n delay = 0,\n ...props\n}: TooltipPrimitive.Provider.Props) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delay={delay}\n {...props}\n />\n );\n}\n\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />;\n}\n\nfunction TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n side = \"top\",\n sideOffset = 8,\n align = \"center\",\n alignOffset = 0,\n children,\n ...props\n}: TooltipPrimitive.Popup.Props &\n Pick<\n TooltipPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n \"w-fit max-w-xs break-words rounded-lg bg-foreground px-2.5 py-1 text-xs text-background shadow-tooltip origin-(--transform-origin)\",\n \"data-open:animate-in data-open:duration-150 data-open:[animation-timing-function:var(--ease-out-fluid)] data-open:fade-in-0 data-open:zoom-in-90\",\n \"data-closed:animate-out data-closed:duration-100 data-closed:[animation-timing-function:var(--ease-in-quart)] data-closed:fade-out-0 data-closed:zoom-out-90\",\n \"data-[side=bottom]:slide-in-from-top-1\",\n \"data-[side=left]:slide-in-from-right-1\",\n \"data-[side=right]:slide-in-from-left-1\",\n \"data-[side=top]:slide-in-from-bottom-1\",\n \"data-entering:will-change-[opacity,transform] data-exiting:will-change-[opacity,transform]\",\n \"motion-reduce:animate-none motion-reduce:transition-none\",\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow\n data-slot=\"tooltip-arrow\"\n className=\"size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground z-50 data-[side=bottom]:top-1 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5\"\n />\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n\nexport type TooltipProps = React.ComponentProps<typeof Tooltip>;\nexport type TooltipContentProps = React.ComponentProps<typeof TooltipContent>;\nexport type TooltipTriggerProps = React.ComponentProps<typeof TooltipTrigger>;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Collapsible as CollapsiblePrimitive } from \"@base-ui/react/collapsible\";\nimport { ChevronRightIcon } from \"lucide-react\";\n\nimport { cn } from \"../lib/utils\";\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\ninterface TreeViewContextValue {\n expandedKeys: Set<string>;\n toggle: (key: string) => void;\n expand: (key: string) => void;\n collapse: (key: string) => void;\n registerItem: (\n id: string,\n element: HTMLElement,\n parentId: string | null,\n ) => void;\n unregisterItem: (id: string) => void;\n focusItem: (id: string) => void;\n getParentId: (id: string) => string | null;\n getFirstChildId: (id: string) => string | null;\n getVisibleItems: () => string[];\n}\n\nconst TreeViewContext = React.createContext<TreeViewContextValue | null>(null);\n\nfunction useTreeView() {\n const ctx = React.useContext(TreeViewContext);\n if (!ctx)\n throw new Error(\"TreeView components must be used within a <TreeView>\");\n return ctx;\n}\n\nconst DepthContext = React.createContext(0);\n\n// ---------------------------------------------------------------------------\n// useControllableState\n// ---------------------------------------------------------------------------\n\nfunction useControllableSet(\n controlledValue: Set<string> | undefined,\n onChange: ((keys: Set<string>) => void) | undefined,\n defaultValue: Set<string>,\n): [Set<string>, (updater: (prev: Set<string>) => Set<string>) => void] {\n const [internal, setInternal] = React.useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : internal;\n\n const setValue = React.useCallback(\n (updater: (prev: Set<string>) => Set<string>) => {\n if (isControlled) {\n onChange?.(updater(value));\n } else {\n setInternal((prev) => {\n const next = updater(prev);\n onChange?.(next);\n return next;\n });\n }\n },\n [isControlled, onChange, value],\n );\n\n return [value, setValue];\n}\n\n// ---------------------------------------------------------------------------\n// TreeView\n// ---------------------------------------------------------------------------\n\ninterface TreeViewProps extends React.ComponentProps<\"div\"> {\n /** Controlled expanded keys */\n expandedKeys?: Set<string>;\n /** Callback when expanded keys change */\n onExpandedKeysChange?: (keys: Set<string>) => void;\n /** Default expanded keys */\n defaultExpandedKeys?: Set<string>;\n /** Expand all by default */\n defaultExpandAll?: boolean;\n}\n\nfunction TreeView({\n className,\n expandedKeys: controlledExpandedKeys,\n onExpandedKeysChange,\n defaultExpandedKeys,\n defaultExpandAll = false,\n children,\n ...props\n}: TreeViewProps) {\n // Item registry: id -> { element, parentId }\n const itemsRef = React.useRef<\n Map<string, { element: HTMLElement; parentId: string | null }>\n >(new Map());\n\n // Collect all keys on first render when defaultExpandAll is true\n const [allKeysCollected, setAllKeysCollected] = React.useState(false);\n const pendingKeysRef = React.useRef<Set<string>>(new Set());\n\n const resolvedDefault = React.useMemo(\n () => defaultExpandedKeys ?? new Set<string>(),\n [],\n );\n\n const [expandedKeys, setExpandedKeys] = useControllableSet(\n controlledExpandedKeys,\n onExpandedKeysChange,\n resolvedDefault,\n );\n\n // After first render with defaultExpandAll, expand everything that registered\n React.useEffect(() => {\n if (defaultExpandAll && !allKeysCollected) {\n setAllKeysCollected(true);\n if (pendingKeysRef.current.size > 0) {\n setExpandedKeys((prev) => {\n const next = new Set(prev);\n pendingKeysRef.current.forEach((k) => next.add(k));\n return next;\n });\n }\n }\n }, [defaultExpandAll, allKeysCollected, setExpandedKeys]);\n\n const toggle = React.useCallback(\n (key: string) => {\n setExpandedKeys((prev) => {\n const next = new Set(prev);\n if (next.has(key)) {\n next.delete(key);\n } else {\n next.add(key);\n }\n return next;\n });\n },\n [setExpandedKeys],\n );\n\n const expand = React.useCallback(\n (key: string) => {\n setExpandedKeys((prev) => {\n if (prev.has(key)) return prev;\n const next = new Set(prev);\n next.add(key);\n return next;\n });\n },\n [setExpandedKeys],\n );\n\n const collapse = React.useCallback(\n (key: string) => {\n setExpandedKeys((prev) => {\n if (!prev.has(key)) return prev;\n const next = new Set(prev);\n next.delete(key);\n return next;\n });\n },\n [setExpandedKeys],\n );\n\n const registerItem = React.useCallback(\n (id: string, element: HTMLElement, parentId: string | null) => {\n itemsRef.current.set(id, { element, parentId });\n if (defaultExpandAll && !allKeysCollected) {\n pendingKeysRef.current.add(id);\n }\n },\n [defaultExpandAll, allKeysCollected],\n );\n\n const unregisterItem = React.useCallback((id: string) => {\n itemsRef.current.delete(id);\n }, []);\n\n const focusItem = React.useCallback((id: string) => {\n const entry = itemsRef.current.get(id);\n if (entry) {\n entry.element.focus();\n }\n }, []);\n\n const getParentId = React.useCallback((id: string) => {\n const entry = itemsRef.current.get(id);\n return entry?.parentId ?? null;\n }, []);\n\n const getFirstChildId = React.useCallback(\n (id: string) => {\n // Find the first registered item whose parentId matches this id\n // and which is visible (its parent is expanded)\n if (!expandedKeys.has(id)) return null;\n for (const [childId, entry] of itemsRef.current) {\n if (entry.parentId === id) return childId;\n }\n return null;\n },\n [expandedKeys],\n );\n\n const getVisibleItems = React.useCallback(() => {\n // Walk the DOM tree to get items in visual order\n const rootEl = rootRef.current;\n if (!rootEl) return [];\n const allEls = rootEl.querySelectorAll<HTMLElement>(\n \"[data-slot='tree-view-item'], [data-slot='tree-view-leaf']\",\n );\n const visible: string[] = [];\n allEls.forEach((el) => {\n const id = el.dataset.treeId;\n if (id && el.offsetParent !== null) {\n visible.push(id);\n }\n });\n return visible;\n }, []);\n\n const rootRef = React.useRef<HTMLDivElement>(null);\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n const target = e.target as HTMLElement;\n const treeId = target.dataset.treeId;\n if (!treeId) return;\n\n const visible = getVisibleItems();\n const currentIndex = visible.indexOf(treeId);\n if (currentIndex === -1) return;\n\n switch (e.key) {\n case \"ArrowDown\": {\n e.preventDefault();\n const nextId = visible[currentIndex + 1];\n if (nextId) focusItem(nextId);\n break;\n }\n case \"ArrowUp\": {\n e.preventDefault();\n const prevId = visible[currentIndex - 1];\n if (prevId) focusItem(prevId);\n break;\n }\n case \"ArrowRight\": {\n e.preventDefault();\n const slot = target.dataset.slot;\n if (slot === \"tree-view-item\") {\n if (!expandedKeys.has(treeId)) {\n expand(treeId);\n } else {\n const firstChild = getFirstChildId(treeId);\n if (firstChild) focusItem(firstChild);\n }\n }\n break;\n }\n case \"ArrowLeft\": {\n e.preventDefault();\n const slot = target.dataset.slot;\n if (slot === \"tree-view-item\" && expandedKeys.has(treeId)) {\n collapse(treeId);\n } else {\n const parentId = getParentId(treeId);\n if (parentId) focusItem(parentId);\n }\n break;\n }\n case \"Home\": {\n e.preventDefault();\n const firstId = visible[0];\n if (firstId) focusItem(firstId);\n break;\n }\n case \"End\": {\n e.preventDefault();\n const lastId = visible[visible.length - 1];\n if (lastId) focusItem(lastId);\n break;\n }\n case \"Enter\":\n case \" \": {\n e.preventDefault();\n const slot = target.dataset.slot;\n if (slot === \"tree-view-item\") {\n toggle(treeId);\n }\n break;\n }\n }\n },\n [\n expandedKeys,\n expand,\n collapse,\n toggle,\n focusItem,\n getFirstChildId,\n getParentId,\n getVisibleItems,\n ],\n );\n\n const ctxValue = React.useMemo<TreeViewContextValue>(\n () => ({\n expandedKeys,\n toggle,\n expand,\n collapse,\n registerItem,\n unregisterItem,\n focusItem,\n getParentId,\n getFirstChildId,\n getVisibleItems,\n }),\n [\n expandedKeys,\n toggle,\n expand,\n collapse,\n registerItem,\n unregisterItem,\n focusItem,\n getParentId,\n getFirstChildId,\n getVisibleItems,\n ],\n );\n\n return (\n <TreeViewContext.Provider value={ctxValue}>\n <div\n ref={rootRef}\n data-slot=\"tree-view\"\n role=\"tree\"\n onKeyDown={handleKeyDown}\n className={cn(\"flex flex-col\", className)}\n {...props}\n >\n <DepthContext.Provider value={0}>{children}</DepthContext.Provider>\n </div>\n </TreeViewContext.Provider>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Item parent context (for registering children with correct parentId)\n// ---------------------------------------------------------------------------\n\nconst ItemParentContext = React.createContext<string | null>(null);\n\n// ---------------------------------------------------------------------------\n// Depth-based padding\n// ---------------------------------------------------------------------------\n\nconst depthPadding: Record<number, string> = {\n 0: \"pl-0\",\n 1: \"pl-4\",\n 2: \"pl-8\",\n 3: \"pl-12\",\n 4: \"pl-16\",\n 5: \"pl-20\",\n 6: \"pl-24\",\n};\n\nfunction getDepthClass(depth: number) {\n return depthPadding[depth] ?? `pl-[${depth * 16}px]`;\n}\n\n// ---------------------------------------------------------------------------\n// TreeViewItem\n// ---------------------------------------------------------------------------\n\ninterface TreeViewItemProps extends React.ComponentProps<\"div\"> {\n /** Unique key for this item */\n itemKey: string;\n /** Label content for the item */\n label: React.ReactNode;\n /** Depth level (auto-managed but can override) */\n depth?: number;\n}\n\nfunction TreeViewItem({\n className,\n itemKey,\n label,\n depth: depthProp,\n children,\n ...props\n}: TreeViewItemProps) {\n const { expandedKeys, toggle, registerItem, unregisterItem } = useTreeView();\n const autoDepth = React.useContext(DepthContext);\n const parentId = React.useContext(ItemParentContext);\n const depth = depthProp ?? autoDepth;\n const isExpanded = expandedKeys.has(itemKey);\n const rowRef = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n const el = rowRef.current;\n if (el) {\n registerItem(itemKey, el, parentId);\n }\n return () => unregisterItem(itemKey);\n }, [itemKey, parentId, registerItem, unregisterItem]);\n\n return (\n <CollapsiblePrimitive.Root\n open={isExpanded}\n onOpenChange={() => toggle(itemKey)}\n >\n <div\n ref={rowRef}\n data-slot=\"tree-view-item\"\n data-tree-id={itemKey}\n role=\"treeitem\"\n aria-expanded={isExpanded}\n tabIndex={-1}\n onClick={() => toggle(itemKey)}\n className={cn(\n // Layout\n \"flex cursor-pointer select-none items-center gap-1 rounded-md py-1 text-sm outline-none\",\n getDepthClass(depth),\n // Transitions\n \"transition-[color,background-color,box-shadow] duration-150 ease-smooth\",\n \"motion-reduce:transition-none\",\n // Hover & focus\n \"hover-only:hover:bg-surface-secondary\",\n \"focus-visible:focus-ring\",\n className,\n )}\n {...props}\n >\n <ChevronRightIcon\n data-slot=\"tree-view-item-icon\"\n className={cn(\n \"pointer-events-none size-4 shrink-0 text-muted-foreground\",\n \"transition-transform duration-150 ease-smooth\",\n \"motion-reduce:transition-none\",\n isExpanded && \"rotate-90\",\n )}\n />\n <span data-slot=\"tree-view-item-label\" className=\"truncate\">\n {label}\n </span>\n </div>\n <ItemParentContext.Provider value={itemKey}>\n <DepthContext.Provider value={depth + 1}>\n {children}\n </DepthContext.Provider>\n </ItemParentContext.Provider>\n </CollapsiblePrimitive.Root>\n );\n}\n\n// ---------------------------------------------------------------------------\n// TreeViewLeaf\n// ---------------------------------------------------------------------------\n\ninterface TreeViewLeafProps extends React.ComponentProps<\"div\"> {\n /** Depth level */\n depth?: number;\n}\n\nfunction TreeViewLeaf({\n className,\n depth: depthProp,\n children,\n ...props\n}: TreeViewLeafProps) {\n const { registerItem, unregisterItem } = useTreeView();\n const autoDepth = React.useContext(DepthContext);\n const parentId = React.useContext(ItemParentContext);\n const depth = depthProp ?? autoDepth;\n const leafRef = React.useRef<HTMLDivElement>(null);\n const idRef = React.useRef(React.useId());\n\n React.useEffect(() => {\n const el = leafRef.current;\n const id = idRef.current;\n if (el) {\n registerItem(id, el, parentId);\n }\n return () => unregisterItem(id);\n }, [parentId, registerItem, unregisterItem]);\n\n return (\n <div\n ref={leafRef}\n data-slot=\"tree-view-leaf\"\n data-tree-id={idRef.current}\n role=\"treeitem\"\n tabIndex={-1}\n className={cn(\n // Layout — extra pl-5 accounts for the missing chevron\n \"flex select-none items-center gap-1 rounded-md py-1 pl-5 text-sm outline-none\",\n getDepthClass(depth),\n // Transitions\n \"transition-[color,background-color,box-shadow] duration-150 ease-smooth\",\n \"motion-reduce:transition-none\",\n // Hover & focus\n \"hover-only:hover:bg-surface-secondary\",\n \"focus-visible:focus-ring\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// TreeViewGroup\n// ---------------------------------------------------------------------------\n\ninterface TreeViewGroupProps extends React.ComponentProps<\"div\"> {}\n\nfunction TreeViewGroup({ className, children, ...props }: TreeViewGroupProps) {\n return (\n <CollapsiblePrimitive.Panel\n data-slot=\"tree-view-group\"\n role=\"group\"\n className={cn(\n \"overflow-hidden\",\n \"h-(--collapsible-panel-height) data-ending-style:h-0 data-starting-style:h-0\",\n \"transition-[height,opacity] duration-150 ease-smooth\",\n \"data-ending-style:opacity-0 data-starting-style:opacity-0\",\n \"motion-reduce:transition-none\",\n className,\n )}\n {...props}\n >\n {children}\n </CollapsiblePrimitive.Panel>\n );\n}\n\nexport { TreeView, TreeViewItem, TreeViewGroup, TreeViewLeaf };\nexport type {\n TreeViewProps,\n TreeViewItemProps,\n TreeViewGroupProps,\n TreeViewLeafProps,\n};\n"],"mappings":"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","names":["jsx","cva","jsx","cva","jsx","jsxs","ChevronDownIcon","cva","jsx","jsx","jsx","cva","jsx","jsxs","ChevronDownIcon","jsx","cva","jsx","cva","jsx","jsxs","cva","jsx","cva","jsx","jsx","jsx","jsxs","jsx","jsx","jsx","jsxs","React","jsx","jsxs","React","ChevronDownIcon","jsx","jsxs","ChevronDownIcon","CheckIcon","jsx","jsxs","CheckIcon","DialogPrimitive","cva","XIcon","jsx","jsxs","DialogPrimitive","cva","XIcon","cva","jsx","jsxs","cva","useMemo","cva","jsx","jsx","jsx","jsxs","cva","useMemo","jsx","jsx","CheckIcon","ChevronRightIcon","jsx","jsxs","ChevronRightIcon","CheckIcon","MenuPrimitive","CheckIcon","jsx","jsxs","MenuPrimitive","CheckIcon","cva","jsx","cva","cva","ChevronDownIcon","jsx","jsxs","cva","ChevronDownIcon","cva","ChevronDownIcon","jsx","jsxs","cva","ChevronDownIcon","PopoverPrimitive","jsx","PopoverPrimitive","jsx","cva","jsx","jsxs","cva","jsx","Separator","jsx","Separator","jsx","gapMap","jsx","jsxs","RadioPrimitive","RadioGroupPrimitive","cva","jsx","jsxs","cva","RadioGroupPrimitive","RadioPrimitive","cva","CheckIcon","ChevronDownIcon","ChevronUpIcon","jsx","jsxs","cva","ChevronDownIcon","CheckIcon","ChevronUpIcon","cva","jsx","cva","jsx","cva","jsx","jsxs","cva","React","jsx","React","React","cva","jsx","React","cva","cva","jsx","cva","InputPrimitive","cva","jsx","jsxs","cva","Input","InputPrimitive","jsx","jsxs","toast","cva","jsx","cva","React","TogglePrimitive","jsx","TogglePrimitive","jsx","jsx","jsxs","React","CollapsiblePrimitive","ChevronRightIcon","jsx","jsxs","CollapsiblePrimitive","ChevronRightIcon"]}
|