@mikenotthepope/substrateui 0.1.3 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/ui/accordion.tsx","../src/components/ui/alert.tsx","../src/components/ui/button.tsx","../src/components/ui/alert-dialog.tsx","../src/components/ui/aspect-ratio.tsx","../src/components/ui/avatar.tsx","../src/components/ui/badge.tsx","../src/components/ui/breadcrumb.tsx","../src/components/ui/button-group.tsx","../src/components/ui/calendar.tsx","../src/components/ui/carousel.tsx","../src/components/ui/chart.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/cluster.tsx","../src/components/ui/collapsible.tsx","../src/components/ui/dialog.tsx","../src/components/ui/command.tsx","../src/components/ui/popover.tsx","../src/components/ui/combobox.tsx","../src/components/ui/context-menu.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/ui/table.tsx","../src/components/ui/data-table.tsx","../src/components/ui/date-picker.tsx","../src/components/ui/direction.tsx","../src/components/ui/divider.tsx","../src/components/ui/drawer.tsx","../src/components/ui/empty.tsx","../src/components/ui/label.tsx","../src/components/ui/field.tsx","../src/components/ui/fieldset.tsx","../src/components/ui/form.tsx","../src/components/ui/form-actions.tsx","../src/components/ui/grid.tsx","../src/components/ui/form-section.tsx","../src/components/ui/hover-card.tsx","../src/components/ui/input.tsx","../src/components/ui/input-group.tsx","../src/components/ui/input-otp.tsx","../src/components/ui/item.tsx","../src/components/ui/kbd.tsx","../src/components/ui/menubar.tsx","../src/components/ui/native-select.tsx","../src/components/ui/navigation-menu.tsx","../src/components/ui/pagination.tsx","../src/components/ui/progress.tsx","../src/components/ui/radio-group.tsx","../src/components/ui/resizable.tsx","../src/components/ui/scroll-area.tsx","../src/components/ui/search-field.tsx","../src/components/ui/select.tsx","../src/components/ui/separator.tsx","../src/components/ui/sheet.tsx","../src/hooks/use-mobile.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/tooltip.tsx","../src/components/ui/sidebar.tsx","../src/components/ui/slider.tsx","../src/components/ui/sonner.tsx","../src/components/ui/spacer.tsx","../src/components/ui/spinner.tsx","../src/components/ui/switch.tsx","../src/components/ui/textarea.tsx","../src/components/ui/toggle.tsx","../src/components/ui/toggle-group.tsx","../src/components/ui/typography.tsx"],"names":["jsx","cva","jsxs","Slot","React","_a","_b","className","props","React2","api","React4","config","CollapsibleTrigger","CollapsibleContent","CommandPrimitive","React5","X","Check","ChevronRight","Circle","React6","RadixDirectionProvider","useRadixDirection","DrawerPrimitive","Label","React7","React8","gapMap","React9","Item","React10","ChevronDown","MoreHorizontal","RadioGroup","Group","Separator","Search","SheetPrimitive","React11","Tooltip","React12","open","Sonner","React13"],"mappings":"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","file":"index.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\"\nimport { ChevronDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root accordion container that manages expand/collapse state for its items. */\nconst Accordion = AccordionPrimitive.Root\n\n/** A single collapsible section within an Accordion. */\nfunction AccordionItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n ref={ref}\n data-slot=\"accordion-item\"\n className={cn(\"border-b-2\", className)}\n {...props}\n />\n )\n}\n\n/** Clickable header that toggles the visibility of its associated AccordionContent. */\nfunction AccordionTrigger({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n data-slot=\"accordion-trigger\"\n className={cn(\n \"flex flex-1 items-center justify-between py-4 font-medium transition-all active:translate-y-[1.5px] transition-transform hover:underline [&[data-state=open]>svg]:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDown className=\"h-4 w-4 shrink-0 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\n/** Animated collapsible content panel revealed by its sibling AccordionTrigger. */\nfunction AccordionContent({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n ref={ref}\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Alert style variants (default, destructive, success, warning). Use with cn(alertVariants({...})) for non-div elements. */\nconst alertVariants = cva(\n \"relative w-full rounded-lg border-2 p-4 [&>svg~*]:ps-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:start-4 [&>svg]:top-4 [&>svg]:text-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-status-error bg-status-error-surface text-status-error-text [&>svg]:text-status-error-text\",\n success:\n \"border-status-success bg-status-success-surface text-status-success-text [&>svg]:text-status-success-text\",\n warning:\n \"border-status-warning bg-status-warning-surface text-status-warning-text [&>svg]:text-status-warning-text\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n/**\n * Displays a callout message to attract user attention.\n *\n * @example\n * <Alert variant=\"destructive\"><AlertTitle>Error</AlertTitle></Alert>\n *\n * @prop variant - Visual style: \"default\" | \"destructive\" | \"success\" | \"warning\"\n */\nfunction Alert({\n className,\n variant,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n ref={ref}\n role=\"alert\"\n data-slot=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\n/** Heading rendered inside an Alert. */\nfunction AlertTitle({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"h5\">) {\n return (\n <h5\n ref={ref}\n data-slot=\"alert-title\"\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n )\n}\n\n/** Body text rendered inside an Alert. */\nfunction AlertDescription({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"alert-description\"\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n )\n}\n\nexport { Alert, AlertTitle, AlertDescription }\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Button style variants (variant + size). Use with cn(buttonVariants({...})) for non-button elements. */\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors active:translate-y-[1.5px] motion-reduce:active:translate-y-0 transition-transform motion-reduce:transition-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground border-2 border-transparent hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground border-2 border-transparent hover:bg-destructive/90\",\n outline:\n \"border-2 border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground border-2 border-transparent hover:bg-secondary/80\",\n amber:\n \"bg-amber-500 text-warm-900 border-2 border-amber-600 hover:bg-amber-400 dark:bg-amber-400 dark:text-warm-950 dark:border-amber-500 dark:hover:bg-amber-300\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\n/** Props accepted by the Button component. */\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\n/**\n * Interactive button with multiple visual variants and sizes.\n *\n * @example\n * <Button variant=\"outline\" size=\"sm\">Click me</Button>\n *\n * @prop variant - Visual style: \"default\" | \"destructive\" | \"outline\" | \"secondary\" | \"amber\" | \"ghost\" | \"link\"\n * @prop size - Dimensions: \"default\" | \"sm\" | \"lg\" | \"icon\"\n * @prop asChild - Merge props onto child element instead of rendering a button\n */\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ref,\n ...props\n}: ButtonProps & React.ComponentPropsWithRef<\"button\">) {\n const Comp = asChild ? Slot : \"button\"\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\n\nimport { cn } from \"@/lib/utils\"\nimport { buttonVariants } from \"@/components/ui/button\"\n\n/** Root component that manages alert dialog open/close state. */\nconst AlertDialog = AlertDialogPrimitive.Root\n\n/** Button that opens the alert dialog. */\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\n\n/** Portal that renders alert dialog content outside the DOM hierarchy. */\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\n\n/** Semi-transparent backdrop rendered behind the alert dialog. */\nfunction AlertDialogOverlay({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n data-slot=\"alert-dialog-overlay\"\n />\n )\n}\n\n/** Centered modal panel containing the alert dialog body. */\nfunction AlertDialogContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Content>) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n data-slot=\"alert-dialog-content\"\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border-2 bg-card text-card-foreground p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n )\n}\n\n/** Layout wrapper for the title and description at the top of the dialog. */\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-start\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Layout wrapper for action/cancel buttons at the bottom of the dialog. */\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Accessible title rendered inside the alert dialog header. */\nfunction AlertDialogTitle({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n ref={ref}\n data-slot=\"alert-dialog-title\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Accessible description text rendered inside the alert dialog header. */\nfunction AlertDialogDescription({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n ref={ref}\n data-slot=\"alert-dialog-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Primary confirmation button that closes the dialog on click. */\nfunction AlertDialogAction({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Action>) {\n return (\n <AlertDialogPrimitive.Action\n ref={ref}\n data-slot=\"alert-dialog-action\"\n className={cn(buttonVariants(), className)}\n {...props}\n />\n )\n}\n\n/** Secondary cancel button that dismisses the dialog. */\nfunction AlertDialogCancel({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Cancel>) {\n return (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n data-slot=\"alert-dialog-cancel\"\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n}\n","\"use client\"\n\nimport * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\"\n\n/**\n * Constrains its child to a given width-to-height ratio.\n *\n * @example\n * <AspectRatio ratio={16 / 9}><img src=\"/hero.jpg\" /></AspectRatio>\n */\nconst AspectRatio = AspectRatioPrimitive.Root\n\nexport { AspectRatio }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Circular container for a user profile image with fallback support.\n *\n * @example\n * <Avatar><AvatarImage src=\"/me.jpg\" /><AvatarFallback>CN</AvatarFallback></Avatar>\n */\nfunction Avatar({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n ref={ref}\n data-slot=\"avatar\"\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Image displayed inside an Avatar; hidden automatically when loading fails. */\nfunction AvatarImage({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n ref={ref}\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n )\n}\n\n/** Placeholder content shown while the avatar image loads or when it fails. */\nfunction AvatarFallback({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n ref={ref}\n data-slot=\"avatar-fallback\"\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full border-2 bg-muted\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Avatar, AvatarImage, AvatarFallback }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Badge style variants (default, secondary, destructive, outline, success, warning, error). Use with cn(badgeVariants({...})) for non-div elements. */\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border-2 px-2.5 py-0.5 font-mono uppercase tracking-wider text-[11px] transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n outline: \"text-foreground\",\n success:\n \"border-transparent bg-status-success-surface text-status-success-text\",\n warning:\n \"border-transparent bg-status-warning-surface text-status-warning-text\",\n error:\n \"border-transparent bg-status-error-surface text-status-error-text\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n/** Props accepted by the Badge component. */\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\n/**\n * Small label used to highlight status, category, or metadata.\n *\n * @example\n * <Badge variant=\"success\">Active</Badge>\n *\n * @prop variant - Visual style: \"default\" | \"secondary\" | \"destructive\" | \"outline\" | \"success\" | \"warning\" | \"error\"\n */\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div data-slot=\"badge\" className={cn(badgeVariants({ variant }), className)} {...props} />\n )\n}\n\nexport { Badge, badgeVariants }\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Navigation component showing the user's location in a page hierarchy.\n *\n * @example\n * <Breadcrumb><BreadcrumbList><BreadcrumbItem><BreadcrumbLink href=\"/\">Home</BreadcrumbLink></BreadcrumbItem></BreadcrumbList></Breadcrumb>\n */\nfunction Breadcrumb({\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"nav\"> & {\n separator?: React.ReactNode\n}) {\n return <nav ref={ref} aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />\n}\n\n/** Ordered list container for breadcrumb items. */\nfunction BreadcrumbList({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"ol\">) {\n return (\n <ol\n ref={ref}\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Individual breadcrumb entry wrapping a link or page indicator. */\nfunction BreadcrumbItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"li\">) {\n return (\n <li\n ref={ref}\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n )\n}\n\n/** Clickable link within a breadcrumb item; supports asChild for custom link components. */\nfunction BreadcrumbLink({\n asChild,\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"a\"> & {\n asChild?: boolean\n}) {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"breadcrumb-link\"\n className={cn(\"text-muted-foreground transition-colors hover:text-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Non-interactive label representing the current page in the breadcrumb trail. */\nfunction BreadcrumbPage({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"span\">) {\n return (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n data-slot=\"breadcrumb-page\"\n className={cn(\"font-medium text-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Visual divider between breadcrumb items; defaults to a chevron icon. */\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n data-slot=\"breadcrumb-separator\"\n className={cn(\"[&>svg]:w-3.5 [&>svg]:h-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n )\n}\n\n/** Ellipsis indicator used when breadcrumb items are collapsed. */\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n data-slot=\"breadcrumb-ellipsis\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-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","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Groups multiple buttons into a single visual unit with shared borders.\n *\n * @example\n * <ButtonGroup><Button>Left</Button><Button>Right</Button></ButtonGroup>\n */\nfunction ButtonGroup({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const childArray = React.Children.toArray(children)\n\n return (\n <div\n data-slot=\"button-group\"\n className={cn(\"flex -space-x-[2px]\", className)}\n {...props}\n >\n {childArray.map((child, i) => {\n if (!React.isValidElement(child)) return child\n\n const isFirst = i === 0\n const isLast = i === childArray.length - 1\n\n return React.cloneElement(child as React.ReactElement<{ className?: string }>, {\n className: cn(\n (child as React.ReactElement<{ className?: string }>).props.className,\n !isFirst && \"rounded-s-none\",\n !isLast && \"rounded-e-none\"\n ),\n })\n })}\n </div>\n )\n}\n\nexport { ButtonGroup }\n","\"use client\"\n\nimport * as React from \"react\"\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\"\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button, buttonVariants } from \"@/components/ui/button\"\n\n/**\n * Date picker calendar built on react-day-picker with themed styling.\n *\n * @example\n * <Calendar mode=\"single\" selected={date} onSelect={setDate} />\n *\n * @prop buttonVariant - Button variant used for navigation arrows\n */\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"bg-background group/calendar p-3 [--cell-size:--spacing(7)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"relative flex flex-col gap-4 md:flex-row\",\n defaultClassNames.months\n ),\n month: cn(\"flex w-full flex-col gap-4\", defaultClassNames.month),\n nav: cn(\n \"absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) p-0 select-none aria-disabled:opacity-50\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) p-0 select-none aria-disabled:opacity-50\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"bg-popover absolute inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md ps-2 pe-1 text-sm [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"flex-1 rounded-md text-[0.8rem] font-normal text-muted-foreground select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"mt-2 flex w-full\", defaultClassNames.week),\n week_number_header: cn(\n \"w-(--cell-size) select-none\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-muted-foreground select-none text-[0.8rem]\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"group/day relative flex-1 aspect-square h-(--cell-size) min-w-(--cell-size) p-0 text-center select-none [&:first-child[data-selected=true]_button]:rounded-s-md [&:last-child[data-selected=true]_button]:rounded-e-md\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"bg-accent rounded-s-md\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"bg-accent rounded-e-md\", defaultClassNames.range_end),\n today: cn(\n \"border-2 border-primary rounded-md data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n )\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n )\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\n/** Individual day cell button used internally by Calendar. */\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef<HTMLButtonElement>(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-md data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:rounded-md data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n","\"use client\"\n\nimport * as React from \"react\"\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\"\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\n\n/** Handle returned by Embla Carousel for programmatic control. */\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: \"horizontal\" | \"vertical\"\n setApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\n api: ReturnType<typeof useEmblaCarousel>[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\n/** Hook to access carousel context (scroll methods, state). Must be used inside a Carousel. */\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\")\n }\n\n return context\n}\n\n/**\n * Scrollable content carousel powered by Embla Carousel.\n *\n * @example\n * <Carousel><CarouselContent><CarouselItem>Slide 1</CarouselItem></CarouselContent><CarouselPrevious /><CarouselNext /></Carousel>\n *\n * @prop orientation - Scroll direction: \"horizontal\" | \"vertical\"\n */\nfunction Carousel({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n )\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return\n }\n\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev()\n }, [api])\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext()\n }, [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault()\n scrollPrev()\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault()\n scrollNext()\n }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return\n }\n\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) {\n return\n }\n\n onSelect(api)\n api.on(\"reInit\", onSelect)\n api.on(\"select\", onSelect)\n\n return () => {\n api?.off(\"select\", onSelect)\n }\n }, [api, onSelect])\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n data-slot=\"carousel\"\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n}\n\n/** Scrollable track containing CarouselItem children. */\nfunction CarouselContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n const { carouselRef, orientation } = useCarousel()\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n ref={ref}\n data-slot=\"carousel-content\"\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ms-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n )\n}\n\n/** Individual slide within CarouselContent. */\nfunction CarouselItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n const { orientation } = useCarousel()\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"ps-4\" : \"pt-4\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Button that scrolls the carousel to the previous slide. */\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon\",\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n data-slot=\"carousel-previous\"\n className={cn(\n \"absolute h-8 w-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"-start-12 top-1/2 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n )\n}\n\n/** Button that scrolls the carousel to the next slide. */\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon\",\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n data-slot=\"carousel-next\"\n className={cn(\n \"absolute h-8 w-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"-end-12 top-1/2 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n )\n}\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as RechartsPrimitive from \"recharts\"\n\nimport { cn } from \"@/lib/utils\"\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const\n\n/** Configuration map defining labels, icons, and colors for each chart data series. */\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode\n icon?: React.ComponentType\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n )\n}\n\ntype ChartContextProps = {\n config: ChartConfig\n}\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null)\n\n/** Hook to access chart configuration context. Must be used inside a ChartContainer. */\nfunction useChart() {\n const context = React.useContext(ChartContext)\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\")\n }\n\n return context\n}\n\n/**\n * Wrapper that provides chart config context and a responsive container for Recharts charts.\n *\n * @example\n * <ChartContainer config={chartConfig}><BarChart data={data}>...</BarChart></ChartContainer>\n *\n * @prop config - ChartConfig mapping series keys to labels, icons, and colors\n */\nfunction ChartContainer({\n id,\n className,\n children,\n config,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & {\n config: ChartConfig\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"]\n}) {\n const uniqueId = React.useId()\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n data-slot=\"chart\"\n className={cn(\n \"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none\",\n className\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n )\n}\n\n/** Injects CSS custom properties for chart colors based on the active theme. */\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme || config.color\n )\n\n if (!colorConfig.length) {\n return null\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color\n return color ? ` --color-${key}: ${color};` : null\n })\n .join(\"\\n\")}\n}\n`\n )\n .join(\"\\n\"),\n }}\n />\n )\n}\n\n/** Recharts Tooltip component, re-exported for convenience. */\nconst ChartTooltip = RechartsPrimitive.Tooltip\n\n/** Themed tooltip content renderer for use with ChartTooltip. */\nfunction ChartTooltipContent({\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n ref,\n}: React.ComponentPropsWithRef<\"div\"> &\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> & {\n hideLabel?: boolean\n hideIndicator?: boolean\n indicator?: \"line\" | \"dot\" | \"dashed\"\n nameKey?: string\n labelKey?: string\n }) {\n const { config } = useChart()\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null\n }\n\n const [item] = payload\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-medium\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n )\n }\n\n if (!value) {\n return null\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ])\n\n if (!active || !payload?.length) {\n return null\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\"\n\n return (\n <div\n ref={ref}\n data-slot=\"chart-tooltip-content\"\n className={cn(\n \"grid min-w-[8rem] items-start gap-1.5 rounded-lg border-2 border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl\",\n className\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const indicatorColor = color || item.payload.fill || item.color\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground\",\n indicator === \"dot\" && \"items-center\"\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n }\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\"\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n}\n\n/** Recharts Legend component, re-exported for convenience. */\nconst ChartLegend = RechartsPrimitive.Legend\n\n/** Themed legend content renderer for use with ChartLegend. */\nfunction ChartLegendContent({\n className,\n hideIcon = false,\n payload,\n verticalAlign = \"bottom\",\n nameKey,\n ref,\n}: React.ComponentPropsWithRef<\"div\"> &\n Pick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & {\n hideIcon?: boolean\n nameKey?: string\n }) {\n const { config } = useChart()\n\n if (!payload?.length) {\n return null\n }\n\n return (\n <div\n ref={ref}\n data-slot=\"chart-legend-content\"\n className={cn(\n \"flex items-center justify-center gap-4\",\n verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\n className\n )}\n >\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n\n return (\n <div\n key={item.value}\n className={cn(\n \"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground\"\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n )\n })}\n </div>\n )\n}\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined\n\n let configLabelKey: string = key\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config]\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A toggleable checkbox input with checked/unchecked states.\n *\n * @example\n * <Checkbox checked={checked} onCheckedChange={setChecked} />\n */\nfunction Checkbox({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n ref={ref}\n data-slot=\"checkbox\"\n className={cn(\n \"grid place-content-center peer h-[18px] w-[18px] shrink-0 rounded border-2 border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=checked]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"grid place-content-center text-current\")}\n >\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst gapMap = {\n none: \"gap-0\",\n xs: \"gap-1\",\n sm: \"gap-2\",\n md: \"gap-4\",\n lg: \"gap-6\",\n xl: \"gap-8\",\n \"2xl\": \"gap-12\",\n} as const\n\nconst alignMap = {\n start: \"items-start\",\n center: \"items-center\",\n end: \"items-end\",\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} as const\n\ntype Gap = keyof typeof gapMap\ntype Align = keyof typeof alignMap\ntype Justify = keyof typeof justifyMap\n\n/** Props accepted by the Cluster component. */\ninterface ClusterProps extends React.ComponentPropsWithRef<\"div\"> {\n gap?: Gap\n align?: Align\n justify?: Justify\n wrap?: boolean\n asChild?: boolean\n}\n\n/**\n * Flexbox layout primitive for horizontal grouping with configurable gap, alignment, and wrapping.\n *\n * @example\n * <Cluster gap=\"md\" justify=\"between\"><Badge>A</Badge><Badge>B</Badge></Cluster>\n *\n * @prop gap - Spacing between items: \"none\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\"\n * @prop align - Cross-axis alignment: \"start\" | \"center\" | \"end\" | \"baseline\"\n * @prop justify - Main-axis justification: \"start\" | \"center\" | \"end\" | \"between\"\n * @prop wrap - Enable flex-wrap (default true)\n * @prop asChild - Merge props onto child element instead of rendering a div\n */\nfunction Cluster({\n gap = \"sm\",\n align = \"center\",\n justify = \"start\",\n wrap = true,\n asChild = false,\n className,\n ref,\n ...props\n}: ClusterProps) {\n const Comp = asChild ? Slot : \"div\"\n return (\n <Comp\n data-slot=\"cluster\"\n className={cn(\n \"flex\",\n gapMap[gap],\n alignMap[align],\n justifyMap[justify],\n wrap && \"flex-wrap\",\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Cluster, type ClusterProps }\n","\"use client\"\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\n/** Root component that manages collapsible open/close state. */\nconst Collapsible = CollapsiblePrimitive.Root\n\n/** Button that toggles the collapsible content visibility. */\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\n\n/** Content panel that expands or collapses based on the Collapsible state. */\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root dialog component that manages open/close state. */\nconst Dialog = DialogPrimitive.Root\n\n/** Button or element that opens the dialog when clicked. */\nconst DialogTrigger = DialogPrimitive.Trigger\n\n/** Portals dialog content into document body. */\nconst DialogPortal = DialogPrimitive.Portal\n\n/** Button or element that closes the dialog when clicked. */\nconst DialogClose = DialogPrimitive.Close\n\n/** Semi-transparent backdrop overlay behind the dialog. */\nfunction DialogOverlay({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n ref={ref}\n data-slot=\"dialog-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/**\n * Centered dialog panel with overlay, close button, and animated transitions.\n *\n * @example\n * <Dialog>\n * <DialogTrigger>Open</DialogTrigger>\n * <DialogContent><DialogHeader><DialogTitle>Title</DialogTitle></DialogHeader></DialogContent>\n * </Dialog>\n */\nfunction DialogContent({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DialogPrimitive.Content>) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n data-slot=\"dialog-content\"\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border-2 bg-card text-card-foreground p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n )\n}\n\n/** Container for dialog title and description at the top of the dialog. */\nfunction DialogHeader({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-start\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Container for action buttons at the bottom of the dialog. */\nfunction DialogFooter({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Accessible title heading for the dialog. */\nfunction DialogTitle({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n ref={ref}\n data-slot=\"dialog-title\"\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Accessible description text displayed below the dialog title. */\nfunction DialogDescription({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n ref={ref}\n data-slot=\"dialog-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { type DialogProps } from \"@radix-ui/react-dialog\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { Search } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Dialog, DialogContent } from \"@/components/ui/dialog\"\n\n/**\n * Command palette container with built-in search and keyboard navigation.\n *\n * @example\n * <Command><CommandInput /><CommandList><CommandItem>Action</CommandItem></CommandList></Command>\n */\nfunction Command({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n ref={ref}\n data-slot=\"command\"\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-lg border-2 bg-popover text-popover-foreground shadow-md\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Command palette rendered inside a modal dialog. */\nfunction CommandDialog({ children, ...props }: DialogProps) {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\n/** Search input field within a Command palette. */\nfunction CommandInput({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.Input>) {\n return (\n <div className=\"flex items-center border-b-2 px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"me-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n data-slot=\"command-input\"\n className={cn(\n \"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n )\n}\n\n/** Scrollable list container for command items and groups. */\nfunction CommandList({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n ref={ref}\n data-slot=\"command-list\"\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n )\n}\n\n/** Placeholder shown when no command items match the search query. */\nfunction CommandEmpty({\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n ref={ref}\n data-slot=\"command-empty\"\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n )\n}\n\n/** Labeled group of related command items. */\nfunction CommandGroup({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n ref={ref}\n data-slot=\"command-group\"\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Horizontal divider between command groups or items. */\nfunction CommandSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n ref={ref}\n data-slot=\"command-separator\"\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\n/** Selectable action item within a CommandList. */\nfunction CommandItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n ref={ref}\n data-slot=\"command-item\"\n className={cn(\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-surface-interactive data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Keyboard shortcut hint displayed alongside a CommandItem. */\nfunction CommandShortcut({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n \"ms-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root popover component that manages open/close state. */\nconst Popover = PopoverPrimitive.Root\n\n/** Element that toggles the popover open and closed. */\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\n/**\n * Animated floating content panel displayed when a popover is open.\n *\n * @example\n * <Popover>\n * <PopoverTrigger>Open</PopoverTrigger>\n * <PopoverContent>Content here</PopoverContent>\n * </Popover>\n */\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n data-slot=\"popover-content\"\n className={cn(\n \"z-50 w-72 rounded-lg border-2 bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-popover-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nexport { Popover, PopoverTrigger, PopoverContent }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Check, ChevronsUpDown, X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\n\n/** A single selectable option in the Combobox dropdown. */\nexport interface ComboboxOption {\n value: string\n label: string\n}\n\ninterface ComboboxBaseProps {\n options: ComboboxOption[]\n placeholder?: string\n searchPlaceholder?: string\n emptyMessage?: string\n className?: string\n disabled?: boolean\n}\n\ninterface ComboboxSingleProps extends ComboboxBaseProps {\n multiple?: false\n value?: string\n onValueChange?: (value: string) => void\n}\n\ninterface ComboboxMultipleProps extends ComboboxBaseProps {\n multiple: true\n value?: string[]\n onValueChange?: (value: string[]) => void\n}\n\ntype ComboboxProps = ComboboxSingleProps | ComboboxMultipleProps\n\n/**\n * Searchable select dropdown supporting single or multi-select modes.\n *\n * @example\n * <Combobox options={[{ value: \"a\", label: \"Alpha\" }]} value={val} onValueChange={setVal} />\n *\n * @prop options - Array of selectable options\n * @prop multiple - Enable multi-select mode when true\n * @prop placeholder - Text shown when no value is selected\n */\nfunction Combobox({\n options,\n placeholder = \"Select...\",\n searchPlaceholder = \"Search...\",\n emptyMessage = \"No results found.\",\n className,\n disabled,\n ...props\n}: ComboboxProps) {\n const [open, setOpen] = React.useState(false)\n\n const isMultiple = props.multiple === true\n\n const selectedValues = isMultiple\n ? (props.value ?? [])\n : props.value\n ? [props.value]\n : []\n\n const handleSelect = (optionValue: string) => {\n if (isMultiple) {\n const current = props.value ?? []\n const next = current.includes(optionValue)\n ? current.filter((v) => v !== optionValue)\n : [...current, optionValue]\n props.onValueChange?.(next)\n } else {\n const next = optionValue === props.value ? \"\" : optionValue\n props.onValueChange?.(next)\n setOpen(false)\n }\n }\n\n const handleRemove = (optionValue: string, e: React.MouseEvent) => {\n e.stopPropagation()\n if (isMultiple) {\n const current = props.value ?? []\n props.onValueChange?.(current.filter((v) => v !== optionValue))\n }\n }\n\n const displayLabel = () => {\n if (isMultiple && selectedValues.length > 0) {\n return (\n <div className=\"flex flex-wrap gap-1\">\n {selectedValues.map((v) => {\n const opt = options.find((o) => o.value === v)\n return (\n <Badge key={v} variant=\"secondary\" className=\"text-xs px-1.5 py-0\">\n {opt?.label ?? v}\n <button\n type=\"button\"\n className=\"ms-1 rounded-full hover:bg-muted\"\n onClick={(e) => handleRemove(v, e)}\n >\n <X className=\"size-3\" />\n </button>\n </Badge>\n )\n })}\n </div>\n )\n }\n\n if (!isMultiple && props.value) {\n const opt = options.find((o) => o.value === props.value)\n return <span>{opt?.label ?? props.value}</span>\n }\n\n return <span className=\"text-muted-foreground\">{placeholder}</span>\n }\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n data-slot=\"combobox\"\n className={cn(\n \"border-2 rounded-md h-auto min-h-10 px-3 w-full justify-between font-normal\",\n className\n )}\n >\n {displayLabel()}\n <ChevronsUpDown className=\"ms-2 size-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-[--radix-popover-trigger-width] p-0\">\n <Command>\n <CommandInput placeholder={searchPlaceholder} />\n <CommandList>\n <CommandEmpty>{emptyMessage}</CommandEmpty>\n <CommandGroup>\n {options.map((option) => (\n <CommandItem\n key={option.value}\n value={option.value}\n keywords={[option.label]}\n onSelect={() => handleSelect(option.value)}\n >\n <Check\n className={cn(\n \"me-2 size-4\",\n selectedValues.includes(option.value)\n ? \"opacity-100\"\n : \"opacity-0\"\n )}\n />\n {option.label}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport { Combobox }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root component that manages context menu open/close state. */\nconst ContextMenu = ContextMenuPrimitive.Root\n\n/** Area that opens the context menu on right-click. */\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger\n\n/** Groups related context menu items together. */\nconst ContextMenuGroup = ContextMenuPrimitive.Group\n\n/** Portal that renders context menu content outside the DOM hierarchy. */\nconst ContextMenuPortal = ContextMenuPrimitive.Portal\n\n/** Root for a nested sub-menu within the context menu. */\nconst ContextMenuSub = ContextMenuPrimitive.Sub\n\n/** Groups mutually exclusive radio items in the context menu. */\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup\n\n/** Item that opens a nested sub-menu on hover. */\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\n data-slot=\"context-menu-sub-trigger\"\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto h-4 w-4\" />\n </ContextMenuPrimitive.SubTrigger>\n )\n}\n\n/** Dropdown panel for a nested sub-menu. */\nfunction ContextMenuSubContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.SubContent>) {\n return (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n data-slot=\"context-menu-sub-content\"\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-context-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Positioned dropdown panel containing the context menu items. */\nfunction ContextMenuContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.Content>) {\n return (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n data-slot=\"context-menu-content\"\n className={cn(\n \"z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-context-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n )\n}\n\n/** Clickable action item within the context menu. */\nfunction ContextMenuItem({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.Item\n ref={ref}\n data-slot=\"context-menu-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-surface-interactive focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Context menu item with a toggleable checkbox indicator. */\nfunction ContextMenuCheckboxItem({\n className,\n children,\n checked,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.CheckboxItem>) {\n return (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n data-slot=\"context-menu-checkbox-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n )\n}\n\n/** Context menu item with a radio indicator for single-select groups. */\nfunction ContextMenuRadioItem({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.RadioItem>) {\n return (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n data-slot=\"context-menu-radio-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n )\n}\n\n/** Non-interactive label used to title a group of context menu items. */\nfunction ContextMenuLabel({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.Label\n ref={ref}\n data-slot=\"context-menu-label\"\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold text-foreground\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Horizontal divider between context menu sections. */\nfunction ContextMenuSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.Separator>) {\n return (\n <ContextMenuPrimitive.Separator\n ref={ref}\n data-slot=\"context-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\n/** Keyboard shortcut hint displayed alongside a context menu item. */\nfunction ContextMenuShortcut({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"context-menu-shortcut\"\n className={cn(\n \"ms-auto text-xs tracking-widest text-muted-foreground\",\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","\"use client\"\n\nimport * as React from \"react\"\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root dropdown menu component that manages open/close state. */\nconst DropdownMenu = DropdownMenuPrimitive.Root\n\n/** Button or element that toggles the dropdown menu. */\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\n\n/** Groups related dropdown menu items together. */\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group\n\n/** Portals dropdown menu content into document body. */\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\n\n/** Root component for a nested submenu within a dropdown. */\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub\n\n/** Groups radio items so only one can be selected at a time. */\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup\n\n/** Menu item that opens a nested submenu on hover or focus. */\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n data-slot=\"dropdown-menu-sub-trigger\"\n className={cn(\n \"flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n )\n}\n\n/** Animated content panel for a nested submenu. */\nfunction DropdownMenuSubContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-dropdown-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n )\n}\n\n/**\n * Animated popover panel containing the dropdown menu items.\n *\n * @example\n * <DropdownMenu>\n * <DropdownMenuTrigger>Open</DropdownMenuTrigger>\n * <DropdownMenuContent><DropdownMenuItem>Action</DropdownMenuItem></DropdownMenuContent>\n * </DropdownMenu>\n */\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n data-slot=\"dropdown-menu-content\"\n className={cn(\n \"z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-dropdown-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n )\n}\n\n/** Clickable item within a dropdown menu. */\nfunction DropdownMenuItem({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.Item\n ref={ref}\n data-slot=\"dropdown-menu-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-surface-interactive focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Menu item with a checkbox indicator for toggling boolean options. */\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n )\n}\n\n/** Menu item with a radio indicator for single-select groups. */\nfunction DropdownMenuRadioItem({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n )\n}\n\n/** Non-interactive label used to title a group of menu items. */\nfunction DropdownMenuLabel({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.Label\n ref={ref}\n data-slot=\"dropdown-menu-label\"\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Horizontal divider line between groups of menu items. */\nfunction DropdownMenuSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\n/** Right-aligned keyboard shortcut hint displayed within a menu item. */\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\"ms-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Scrollable data table wrapper that renders a full-width HTML table.\n *\n * @example\n * <Table><TableHeader>...</TableHeader><TableBody>...</TableBody></Table>\n */\nfunction Table({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"table\">) {\n return (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n )\n}\n\n/** Table head section that applies a bottom border to its rows. */\nfunction TableHeader({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"thead\">) {\n return (\n <thead ref={ref} data-slot=\"table-header\" className={cn(\"[&_tr]:border-b-2\", className)} {...props} />\n )\n}\n\n/** Table body section that removes the border from the last row. */\nfunction TableBody({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"tbody\">) {\n return (\n <tbody\n ref={ref}\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n )\n}\n\n/** Table footer with a muted background and top border. */\nfunction TableFooter({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"tfoot\">) {\n return (\n <tfoot\n ref={ref}\n data-slot=\"table-footer\"\n className={cn(\n \"border-t-2 bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Table row with hover highlight and selected state styling. */\nfunction TableRow({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"tr\">) {\n return (\n <tr\n ref={ref}\n data-slot=\"table-row\"\n className={cn(\n \"border-b-2 last:border-b-0 transition-colors hover:bg-surface-interactive data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Table header cell with uppercase monospace label styling. */\nfunction TableHead({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"th\">) {\n return (\n <th\n ref={ref}\n data-slot=\"table-head\"\n className={cn(\n \"h-12 px-4 text-start align-middle bg-surface-sunken font-mono text-xs uppercase tracking-wider text-muted-foreground [&:has([role=checkbox])]:pe-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Standard table data cell with consistent padding. */\nfunction TableCell({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"td\">) {\n return (\n <td\n ref={ref}\n data-slot=\"table-cell\"\n className={cn(\"p-4 align-middle [&:has([role=checkbox])]:pe-0\", className)}\n {...props}\n />\n )\n}\n\n/** Table caption rendered below the table in muted text. */\nfunction TableCaption({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"caption\">) {\n return (\n <caption\n ref={ref}\n data-slot=\"table-caption\"\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport {\n type ColumnDef,\n type ColumnFiltersState,\n type SortingState,\n type VisibilityState,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\"\nimport { ArrowDown, ArrowUp, ArrowUpDown, Settings2 } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Checkbox } from \"@/components/ui/checkbox\"\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/ui/table\"\n\n// ─── DataTableColumnHeader ───────────────────────────────────────────\n\ninterface DataTableColumnHeaderProps<TData, TValue>\n extends React.HTMLAttributes<HTMLDivElement> {\n column: import(\"@tanstack/react-table\").Column<TData, TValue>\n title: string\n}\n\n/**\n * Sortable column header button that toggles sort direction on click.\n *\n * @example\n * <DataTableColumnHeader column={column} title=\"Name\" />\n *\n * @prop column - TanStack Table column instance\n * @prop title - Display text for the header\n */\nfunction DataTableColumnHeader<TData, TValue>({\n column,\n title,\n className,\n}: DataTableColumnHeaderProps<TData, TValue>) {\n if (!column.getCanSort()) {\n return <div className={cn(className)}>{title}</div>\n }\n\n const sorted = column.getIsSorted()\n\n return (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={cn(\"-ms-3 h-8 font-mono text-xs\", className)}\n onClick={() => column.toggleSorting(sorted === \"asc\")}\n aria-label={\n sorted === \"asc\"\n ? `${title}, sorted ascending. Click to sort descending.`\n : sorted === \"desc\"\n ? `${title}, sorted descending. Click to remove sort.`\n : `${title}, not sorted. Click to sort ascending.`\n }\n >\n {title}\n {sorted === \"asc\" ? (\n <ArrowUp className=\"ms-2 size-3.5\" aria-hidden=\"true\" />\n ) : sorted === \"desc\" ? (\n <ArrowDown className=\"ms-2 size-3.5\" aria-hidden=\"true\" />\n ) : (\n <ArrowUpDown className=\"ms-2 size-3.5\" aria-hidden=\"true\" />\n )}\n </Button>\n )\n}\n\n// ─── DataTableViewOptions ────────────────────────────────────────────\n\ninterface DataTableViewOptionsProps<TData> {\n table: import(\"@tanstack/react-table\").Table<TData>\n}\n\n/**\n * Dropdown menu for toggling column visibility in a data table.\n *\n * @example\n * <DataTableViewOptions table={table} />\n *\n * @prop table - TanStack Table instance\n */\nfunction DataTableViewOptions<TData>({\n table,\n}: DataTableViewOptionsProps<TData>) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\" size=\"sm\" className=\"ms-auto h-8 border-2\">\n <Settings2 className=\"me-2 size-4\" />\n <span className=\"font-mono text-xs\">View</span>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-40\">\n <DropdownMenuLabel className=\"font-mono text-xs\">\n Toggle columns\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n {table\n .getAllColumns()\n .filter(\n (column) =>\n typeof column.accessorFn !== \"undefined\" && column.getCanHide()\n )\n .map((column) => (\n <DropdownMenuCheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(value) => column.toggleVisibility(!!value)}\n >\n {column.id}\n </DropdownMenuCheckboxItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\n// ─── DataTablePagination ─────────────────────────────────────────────\n\ninterface DataTablePaginationProps<TData> {\n table: import(\"@tanstack/react-table\").Table<TData>\n}\n\n/**\n * Pagination controls displaying row selection count and page navigation.\n *\n * @example\n * <DataTablePagination table={table} />\n *\n * @prop table - TanStack Table instance\n */\nfunction DataTablePagination<TData>({\n table,\n}: DataTablePaginationProps<TData>) {\n return (\n <div className=\"flex items-center justify-between px-2 py-4\">\n <div className=\"flex-1 font-mono text-xs text-muted-foreground\">\n {table.getFilteredSelectedRowModel().rows.length} of{\" \"}\n {table.getFilteredRowModel().rows.length} row(s) selected.\n </div>\n <div className=\"flex items-center gap-2\">\n <div className=\"font-mono text-xs text-muted-foreground\">\n Page {table.getState().pagination.pageIndex + 1} of{\" \"}\n {table.getPageCount()}\n </div>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 border-2\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n aria-label=\"Previous page\"\n >\n Previous\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 border-2\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n aria-label=\"Next page\"\n >\n Next\n </Button>\n </div>\n </div>\n )\n}\n\n// ─── DataTableToolbar ────────────────────────────────────────────────\n\ninterface DataTableToolbarProps {\n children?: React.ReactNode\n className?: string\n}\n\n/**\n * Horizontal toolbar container for data table filters and actions.\n *\n * @example\n * <DataTableToolbar><Input placeholder=\"Filter...\" /></DataTableToolbar>\n */\nfunction DataTableToolbar({ children, className }: DataTableToolbarProps) {\n return (\n <div\n data-slot=\"data-table-toolbar\"\n className={cn(\"flex items-center justify-between py-4\", className)}\n >\n {children}\n </div>\n )\n}\n\n// ─── Selection column helper ─────────────────────────────────────────\n\n/**\n * Creates a checkbox selection column definition for use with TanStack Table.\n *\n * @example\n * const columns = [createSelectColumn<MyData>(), ...otherColumns]\n */\nfunction createSelectColumn<TData>(): ColumnDef<TData> {\n return {\n id: \"select\",\n header: ({ table }) => (\n <Checkbox\n checked={\n table.getIsAllPageRowsSelected() ||\n (table.getIsSomePageRowsSelected() && \"indeterminate\")\n }\n onCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}\n aria-label=\"Select all\"\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={(value) => row.toggleSelected(!!value)}\n aria-label=\"Select row\"\n />\n ),\n enableSorting: false,\n enableHiding: false,\n }\n}\n\n// ─── DataTable ───────────────────────────────────────────────────────\n\ninterface DataTableProps<TData, TValue> {\n columns: ColumnDef<TData, TValue>[]\n data: TData[]\n className?: string\n toolbar?: React.ReactNode\n}\n\n/**\n * Full-featured data table with sorting, filtering, pagination, and row selection.\n *\n * @example\n * <DataTable columns={columns} data={data} toolbar={<DataTableToolbar>...</DataTableToolbar>} />\n *\n * @prop columns - TanStack Table column definitions\n * @prop data - Array of row data\n * @prop toolbar - Optional toolbar rendered above the table\n */\nfunction DataTable<TData, TValue>({\n columns,\n data,\n className,\n toolbar,\n}: DataTableProps<TData, TValue>) {\n const [sorting, setSorting] = React.useState<SortingState>([])\n const [columnFilters, setColumnFilters] =\n React.useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] =\n React.useState<VisibilityState>({})\n const [rowSelection, setRowSelection] = React.useState({})\n\n // eslint-disable-next-line react-hooks/incompatible-library\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection,\n },\n })\n\n return (\n <div data-slot=\"data-table\" className={className}>\n {toolbar}\n <div className=\"border-2 rounded-lg overflow-hidden\">\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id} className=\"bg-surface-sunken\">\n {headerGroup.headers.map((header) => (\n <TableHead key={header.id}>\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n className=\"data-[state=selected]:bg-accent\"\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={columns.length}\n className=\"h-24 text-center text-muted-foreground\"\n >\n No results.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <DataTablePagination table={table} />\n </div>\n )\n}\n\nexport {\n DataTable,\n DataTableColumnHeader,\n DataTablePagination,\n DataTableToolbar,\n DataTableViewOptions,\n createSelectColumn,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { CalendarIcon } from \"lucide-react\"\nimport type { DateRange } from \"react-day-picker\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Calendar } from \"@/components/ui/calendar\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\n\nfunction formatDate(date: Date): string {\n return new Intl.DateTimeFormat(\"en-US\", {\n month: \"long\",\n day: \"numeric\",\n year: \"numeric\",\n }).format(date)\n}\n\nfunction formatDateShort(date: Date): string {\n return new Intl.DateTimeFormat(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n year: \"numeric\",\n }).format(date)\n}\n\ninterface DatePickerProps {\n date?: Date\n onDateChange?: (date: Date | undefined) => void\n placeholder?: string\n className?: string\n disabled?: boolean\n}\n\n/**\n * Single-date picker with a popover calendar and formatted display.\n *\n * @example\n * <DatePicker date={date} onDateChange={setDate} placeholder=\"Select date\" />\n *\n * @prop date - Currently selected date\n * @prop onDateChange - Callback when a date is selected\n * @prop placeholder - Text shown when no date is selected\n */\nfunction DatePicker({\n date,\n onDateChange,\n placeholder = \"Pick a date\",\n className,\n disabled,\n}: DatePickerProps) {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n disabled={disabled}\n data-slot=\"date-picker\"\n className={cn(\n \"border-2 rounded-md h-10 px-3 w-full justify-start gap-2 font-normal\",\n className\n )}\n >\n <CalendarIcon className=\"size-4 text-muted-foreground\" aria-hidden=\"true\" />\n {date ? (\n <span>{formatDate(date)}</span>\n ) : (\n <span className=\"text-muted-foreground\">{placeholder}</span>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n selected={date}\n onSelect={onDateChange}\n />\n </PopoverContent>\n </Popover>\n )\n}\n\ninterface DateRangePickerProps {\n dateRange?: DateRange\n onDateRangeChange?: (range: DateRange | undefined) => void\n placeholder?: string\n className?: string\n disabled?: boolean\n}\n\n/**\n * Date range picker with a two-month popover calendar.\n *\n * @example\n * <DateRangePicker dateRange={range} onDateRangeChange={setRange} />\n *\n * @prop dateRange - Currently selected date range\n * @prop onDateRangeChange - Callback when the range changes\n * @prop placeholder - Text shown when no range is selected\n */\nfunction DateRangePicker({\n dateRange,\n onDateRangeChange,\n placeholder = \"Pick a date range\",\n className,\n disabled,\n}: DateRangePickerProps) {\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n disabled={disabled}\n data-slot=\"date-range-picker\"\n className={cn(\n \"border-2 rounded-md h-10 px-3 w-full justify-start gap-2 font-normal\",\n className\n )}\n >\n <CalendarIcon className=\"size-4 text-muted-foreground\" aria-hidden=\"true\" />\n {dateRange?.from ? (\n <span>\n {formatDateShort(dateRange.from)}\n {dateRange.to && ` – ${formatDateShort(dateRange.to)}`}\n </span>\n ) : (\n <span className=\"text-muted-foreground\">{placeholder}</span>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"range\"\n selected={dateRange}\n onSelect={onDateRangeChange}\n numberOfMonths={2}\n />\n </PopoverContent>\n </Popover>\n )\n}\n\nexport { DatePicker, DateRangePicker }\n","\"use client\"\n\nimport * as React from \"react\"\nimport {\n DirectionProvider as RadixDirectionProvider,\n useDirection as useRadixDirection,\n} from \"@radix-ui/react-direction\"\n\n/** Text direction, either left-to-right or right-to-left. */\ntype Direction = \"ltr\" | \"rtl\"\n\n/**\n * Context provider that sets the text direction for descendant components.\n * All Radix-based components in this library read from this provider automatically.\n *\n * @example\n * <DirectionProvider dir=\"rtl\">{children}</DirectionProvider>\n *\n * @prop dir - Text direction, defaults to \"ltr\"\n */\nfunction DirectionProvider({\n dir = \"ltr\",\n children,\n}: {\n dir?: Direction\n children: React.ReactNode\n}) {\n return (\n <RadixDirectionProvider dir={dir}>\n {children}\n </RadixDirectionProvider>\n )\n}\n\n/** Hook that returns the current text direction from DirectionProvider context. */\nfunction useDirection(): Direction {\n return useRadixDirection()\n}\n\nexport { DirectionProvider, useDirection }\nexport type { Direction }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface DividerProps extends React.ComponentPropsWithRef<\"div\"> {\n orientation?: \"horizontal\" | \"vertical\"\n label?: string\n}\n\n/**\n * Visual separator rendered as a horizontal rule, vertical line, or labeled divider.\n *\n * @example\n * <Divider />\n * <Divider label=\"OR\" />\n * <Divider orientation=\"vertical\" />\n *\n * @prop orientation - \"horizontal\" (default) or \"vertical\"\n * @prop label - Optional centered text within a horizontal divider\n */\nfunction Divider({\n orientation = \"horizontal\",\n label,\n className,\n ref,\n ...props\n}: DividerProps) {\n if (orientation === \"vertical\") {\n return (\n <div\n data-slot=\"divider\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n className={cn(\"border-s-2 border-border self-stretch\", className)}\n ref={ref}\n {...props}\n />\n )\n }\n\n if (label) {\n return (\n <div\n data-slot=\"divider\"\n role=\"separator\"\n aria-orientation=\"horizontal\"\n className={cn(\"flex items-center w-full\", className)}\n ref={ref}\n {...props}\n >\n <div className=\"flex-1 border-t-2 border-border\" />\n <span className=\"text-xs text-muted-foreground font-mono uppercase tracking-wider px-3\">\n {label}\n </span>\n <div className=\"flex-1 border-t-2 border-border\" />\n </div>\n )\n }\n\n return (\n <hr\n data-slot=\"divider\"\n className={cn(\"border-t-2 border-border w-full\", className)}\n ref={ref as React.Ref<HTMLHRElement>}\n {...(props as React.ComponentPropsWithRef<\"hr\">)}\n />\n )\n}\n\nexport { Divider, type DividerProps }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Drawer as DrawerPrimitive } from \"vaul\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Root drawer component powered by Vaul, slides up from the bottom of the viewport.\n *\n * @example\n * <Drawer>\n * <DrawerTrigger>Open</DrawerTrigger>\n * <DrawerContent><DrawerHeader><DrawerTitle>Title</DrawerTitle></DrawerHeader></DrawerContent>\n * </Drawer>\n */\nfunction Drawer({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return (\n <DrawerPrimitive.Root\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n )\n}\n\n/** Button or element that opens the drawer when clicked. */\nconst DrawerTrigger = DrawerPrimitive.Trigger\n\n/** Portals drawer content into document body. */\nconst DrawerPortal = DrawerPrimitive.Portal\n\n/** Button or element that closes the drawer when clicked. */\nconst DrawerClose = DrawerPrimitive.Close\n\n/** Semi-transparent backdrop overlay behind the drawer. */\nfunction DrawerOverlay({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DrawerPrimitive.Overlay>) {\n return (\n <DrawerPrimitive.Overlay\n ref={ref}\n data-slot=\"drawer-overlay\"\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n {...props}\n />\n )\n}\n\n/** Drawer panel that slides up from the bottom with a drag handle. */\nfunction DrawerContent({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DrawerPrimitive.Content>) {\n return (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n data-slot=\"drawer-content\"\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border-2 border-b-0 bg-background\",\n className\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n )\n}\n\n/** Container for drawer title and description. */\nfunction DrawerHeader({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-start\", className)}\n {...props}\n />\n )\n}\n\n/** Container for action buttons at the bottom of the drawer. */\nfunction DrawerFooter({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\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\n/** Accessible title heading for the drawer. */\nfunction DrawerTitle({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DrawerPrimitive.Title>) {\n return (\n <DrawerPrimitive.Title\n ref={ref}\n data-slot=\"drawer-title\"\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Accessible description text displayed below the drawer title. */\nfunction DrawerDescription({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DrawerPrimitive.Description>) {\n return (\n <DrawerPrimitive.Description\n ref={ref}\n data-slot=\"drawer-description\"\n className={cn(\"text-sm text-muted-foreground\", 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}\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Centered empty state container for when no content is available.\n *\n * @example\n * <Empty>\n * <EmptyIcon><InboxIcon /></EmptyIcon>\n * <EmptyTitle>No results</EmptyTitle>\n * <EmptyDescription>Try adjusting your filters.</EmptyDescription>\n * <EmptyAction><Button>Reset</Button></EmptyAction>\n * </Empty>\n */\nfunction Empty({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n \"flex w-full flex-col items-center justify-center py-12 px-6 text-center\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Icon container displayed above the empty state title. */\nfunction EmptyIcon({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"empty-icon\"\n className={cn(\"text-muted-foreground mb-4 [&_svg]:size-12\", className)}\n {...props}\n >\n {children}\n </div>\n )\n}\n\n/** Heading text for the empty state. */\nfunction EmptyTitle({\n className,\n ...props\n}: React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3\n data-slot=\"empty-title\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Muted description text below the empty state title. */\nfunction EmptyDescription({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n data-slot=\"empty-description\"\n className={cn(\n \"text-sm text-muted-foreground max-w-sm mx-auto mt-1\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Container for a call-to-action button in the empty state. */\nfunction EmptyAction({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"empty-action\"\n className={cn(\"mt-4\", className)}\n {...props}\n />\n )\n}\n\nexport { Empty, EmptyIcon, EmptyTitle, EmptyDescription, EmptyAction }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Label text variants. Use with cn(labelVariants()) for non-label elements. */\nconst labelVariants = cva(\n \"text-sm font-semibold leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\n/**\n * Accessible label component built on Radix UI Label primitive.\n *\n * @example\n * <Label htmlFor=\"email\">Email</Label>\n */\nfunction Label({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>) {\n return (\n <LabelPrimitive.Root\n ref={ref}\n data-slot=\"label\"\n className={cn(labelVariants(), className)}\n {...props}\n />\n )\n}\n\nexport { Label }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Label } from \"@/components/ui/label\"\n\ninterface FieldContextValue {\n id: string\n hintId: string\n errorId: string\n error: boolean\n}\n\nconst FieldContext = React.createContext<FieldContextValue | null>(null)\n\n/** Hook that returns the current Field context (id, error state, aria IDs). */\nfunction useFieldContext() {\n return React.useContext(FieldContext)\n}\n\ninterface FieldProps extends React.HTMLAttributes<HTMLDivElement> {\n error?: boolean\n id?: string\n}\n\n/**\n * Form field wrapper that provides shared context for label, hint, and error linking.\n *\n * @example\n * <Field error={!!errors.name}>\n * <FieldLabel>Name</FieldLabel>\n * <Input />\n * <FieldError>{errors.name}</FieldError>\n * </Field>\n *\n * @prop error - Whether the field is in an error state\n */\nfunction Field({ className, error = false, id: idProp, children, ...props }: FieldProps) {\n const generatedId = React.useId()\n const id = idProp ?? generatedId\n\n const ctx = React.useMemo<FieldContextValue>(\n () => ({\n id,\n hintId: `${id}-hint`,\n errorId: `${id}-error`,\n error,\n }),\n [id, error]\n )\n\n return (\n <FieldContext.Provider value={ctx}>\n <div\n data-slot=\"field\"\n className={cn(\n \"space-y-2\",\n error &&\n \"[&_input]:border-status-error [&_textarea]:border-status-error\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n </FieldContext.Provider>\n )\n}\n\n/** Label automatically linked to the parent Field's input via htmlFor. */\nfunction FieldLabel({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<typeof Label>) {\n const ctx = useFieldContext()\n\n return (\n <Label\n data-slot=\"field-label\"\n htmlFor={ctx?.id}\n className={cn(\n \"text-sm font-semibold\",\n ctx?.error && \"text-status-error-text\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Muted helper text displayed below a field input. */\nfunction FieldHint({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n const ctx = useFieldContext()\n\n return (\n <p\n data-slot=\"field-hint\"\n id={ctx?.hintId}\n className={cn(\"text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Error message that renders only when children are provided, with role=\"alert\". */\nfunction FieldError({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n const ctx = useFieldContext()\n\n if (!children) return null\n\n return (\n <p\n data-slot=\"field-error\"\n id={ctx?.errorId}\n role=\"alert\"\n className={cn(\n \"text-xs text-status-error-text font-medium\",\n className\n )}\n {...props}\n >\n {children}\n </p>\n )\n}\n\nexport { Field, FieldLabel, FieldHint, FieldError, useFieldContext }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface FieldsetProps extends React.ComponentPropsWithRef<\"fieldset\"> {\n legend: string\n}\n\n/**\n * Accessible fieldset wrapper with a visible legend label.\n *\n * @example\n * <Fieldset legend=\"Personal Info\"><Input /><Input /></Fieldset>\n *\n * @prop legend - Text displayed as the fieldset legend\n */\nfunction Fieldset({\n legend,\n className,\n children,\n ref,\n ...props\n}: FieldsetProps) {\n return (\n <fieldset\n data-slot=\"fieldset\"\n className={cn(\"border-0 p-0 m-0 space-y-2\", className)}\n ref={ref}\n {...props}\n >\n <legend className=\"text-sm font-semibold mb-2\">{legend}</legend>\n {children}\n </fieldset>\n )\n}\n\nexport { Fieldset }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Stack } from \"./stack\"\n\ntype Gap = \"none\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\"\n\ninterface FormProps extends React.ComponentPropsWithRef<\"form\"> {\n gap?: Gap\n}\n\n/**\n * Form element with vertical stack layout and configurable gap spacing.\n *\n * @example\n * <Form gap=\"lg\" onSubmit={handleSubmit}><Field>...</Field></Form>\n *\n * @prop gap - Vertical spacing between children (default \"xl\")\n */\nfunction Form({\n gap = \"xl\",\n className,\n children,\n ref,\n ...props\n}: FormProps) {\n return (\n <form\n data-slot=\"form\"\n className={cn(className)}\n ref={ref}\n {...props}\n >\n <Stack gap={gap}>{children}</Stack>\n </form>\n )\n}\n\nexport { Form }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Cluster } from \"./cluster\"\n\n/**\n * Horizontal action bar for form submit/cancel buttons, separated by a top border.\n *\n * @example\n * <FormActions>\n * <Button variant=\"outline\">Cancel</Button>\n * <Button>Save</Button>\n * </FormActions>\n */\nfunction FormActions({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const childArray = React.Children.toArray(children)\n const hasSubComponents = childArray.some(\n (child) =>\n React.isValidElement(child) &&\n typeof child.type === \"function\" &&\n ((child.type as { name?: string }).name === \"FormActionsPrimary\" ||\n (child.type as { name?: string }).name === \"FormActionsSecondary\")\n )\n\n if (!hasSubComponents) {\n return (\n <div\n data-slot=\"form-actions\"\n className={cn(\n \"flex items-center justify-between border-t-2 pt-6 mt-6\",\n className\n )}\n {...props}\n >\n <Cluster gap=\"sm\" justify=\"end\" className=\"ml-auto\">\n {children}\n </Cluster>\n </div>\n )\n }\n\n return (\n <div\n data-slot=\"form-actions\"\n className={cn(\n \"flex items-center justify-between border-t-2 pt-6 mt-6\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\n/** Left-aligned container for secondary form actions (e.g., delete or reset). */\nfunction FormActionsSecondary({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"form-actions-secondary\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n )\n}\n\n/** Right-aligned container for primary form actions (e.g., submit). */\nfunction FormActionsPrimary({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"form-actions-primary\"\n className={cn(\"flex items-center gap-2 ml-auto\", className)}\n {...props}\n />\n )\n}\n\nexport { FormActions, FormActionsSecondary, FormActionsPrimary }\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst gapMap = {\n none: \"gap-0\",\n xs: \"gap-1\",\n sm: \"gap-2\",\n md: \"gap-4\",\n lg: \"gap-6\",\n xl: \"gap-8\",\n \"2xl\": \"gap-12\",\n} as const\n\nconst colsMap = {\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} as const\n\ntype Gap = keyof typeof gapMap\ntype Columns = 1 | 2 | 3 | 4 | 5 | 6 | \"auto-fill\" | \"auto-fit\"\n\ninterface GridProps extends React.ComponentPropsWithRef<\"div\"> {\n columns?: Columns\n gap?: Gap\n minChildWidth?: string\n asChild?: boolean\n}\n\n/**\n * CSS Grid layout component with configurable columns, gap, and auto-fill/auto-fit modes.\n *\n * @example\n * <Grid columns={3} gap=\"lg\"><Card /><Card /><Card /></Grid>\n * <Grid columns=\"auto-fill\" minChildWidth=\"200px\" gap=\"md\">...</Grid>\n *\n * @prop columns - Number of columns (1-6) or \"auto-fill\"/\"auto-fit\"\n * @prop gap - Gap size between grid items\n * @prop minChildWidth - Minimum child width for auto-fill/auto-fit columns\n * @prop asChild - Merge props onto child element via Slot\n */\nfunction Grid({\n columns = 1,\n gap = \"md\",\n minChildWidth,\n asChild = false,\n className,\n style,\n ref,\n ...props\n}: GridProps) {\n const Comp = asChild ? Slot : \"div\"\n\n const isAuto = columns === \"auto-fill\" || columns === \"auto-fit\"\n const colClass = isAuto\n ? columns === \"auto-fill\"\n ? \"grid-auto-fill\"\n : \"grid-auto-fit\"\n : colsMap[columns]\n\n return (\n <Comp\n data-slot=\"grid\"\n className={cn(\"grid\", colClass, gapMap[gap], className)}\n style={\n isAuto && minChildWidth\n ? { \"--grid-min\": minChildWidth, ...style } as React.CSSProperties\n : style\n }\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Grid, type GridProps }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Stack } from \"./stack\"\nimport { Grid } from \"./grid\"\n\n/**\n * Fieldset-based section for grouping related form fields with a header.\n *\n * @example\n * <FormSection>\n * <FormSectionHeader><FormSectionTitle>Account</FormSectionTitle></FormSectionHeader>\n * <FormSectionContent><Field>...</Field></FormSectionContent>\n * </FormSection>\n */\nfunction FormSection({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"form-section\"\n className={cn(\"space-y-6 border-0 p-0 m-0\", className)}\n ref={ref}\n {...props}\n />\n )\n}\n\n/** Container for the section title and description. */\nfunction FormSectionHeader({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"form-section-header\"\n className={cn(\"space-y-1\", className)}\n {...props}\n />\n )\n}\n\n/** Legend element used as the section heading. */\nfunction FormSectionTitle({\n className,\n ...props\n}: React.HTMLAttributes<HTMLLegendElement>) {\n return (\n <legend\n data-slot=\"form-section-title\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Muted paragraph describing the purpose of the form section. */\nfunction FormSectionDescription({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n data-slot=\"form-section-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\ninterface FormSectionContentProps extends React.ComponentPropsWithRef<\"div\"> {\n layout?: \"stack\" | \"grid\"\n}\n\n/**\n * Content area for form fields, rendered as a stack or two-column grid.\n *\n * @prop layout - \"stack\" (default) or \"grid\" for two-column layout\n */\nfunction FormSectionContent({\n layout = \"stack\",\n className,\n ref,\n children,\n ...props\n}: FormSectionContentProps) {\n if (layout === \"grid\") {\n return (\n <Grid\n data-slot=\"form-section-content\"\n columns={1}\n gap=\"md\"\n className={cn(\"md:grid-cols-2\", className)}\n ref={ref}\n {...props}\n >\n {children}\n </Grid>\n )\n }\n\n return (\n <Stack\n data-slot=\"form-section-content\"\n gap=\"md\"\n className={className}\n ref={ref}\n {...props}\n >\n {children}\n </Stack>\n )\n}\n\nexport {\n FormSection,\n FormSectionHeader,\n FormSectionTitle,\n FormSectionDescription,\n FormSectionContent,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root hover card component that manages open/close state on hover. */\nconst HoverCard = HoverCardPrimitive.Root\n\n/** Element that triggers the hover card on mouse enter. */\nconst HoverCardTrigger = HoverCardPrimitive.Trigger\n\n/**\n * Animated popover panel that appears on hover over the trigger.\n *\n * @example\n * <HoverCard>\n * <HoverCardTrigger>Hover me</HoverCardTrigger>\n * <HoverCardContent>Details here</HoverCardContent>\n * </HoverCard>\n */\nfunction HoverCardContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n data-slot=\"hover-card-content\"\n className={cn(\n \"z-50 w-64 rounded-lg border-2 bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-hover-card-content-transform-origin]\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Styled text input with focus ring, border, and disabled state support.\n *\n * @example\n * <Input type=\"email\" placeholder=\"you@example.com\" />\n */\nfunction Input({\n className,\n type,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"flex h-10 w-full rounded-md border-2 border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:border-e file:border-input file:bg-transparent file:pe-3 file:me-3 file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-surface-sunken md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Input }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Container that visually groups an Input with prefix/suffix addons sharing a single border.\n *\n * @example\n * <InputGroup>\n * <InputGroupPrefix>$</InputGroupPrefix>\n * <Input placeholder=\"0.00\" />\n * <InputGroupSuffix>USD</InputGroupSuffix>\n * </InputGroup>\n */\nfunction InputGroup({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"input-group\"\n className={cn(\n \"flex items-center border-2 rounded-md bg-background focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2\",\n \"[&_input]:border-0 [&_input]:focus-visible:ring-0 [&_input]:focus-visible:ring-offset-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Left-side addon content (icon, text) within an InputGroup. */\nfunction InputGroupPrefix({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"input-group-prefix\"\n className={cn(\"flex items-center ps-3 text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Right-side addon content (icon, text) within an InputGroup. */\nfunction InputGroupSuffix({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"input-group-suffix\"\n className={cn(\"flex items-center pe-3 text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport { InputGroup, InputGroupPrefix, InputGroupSuffix }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { OTPInput, OTPInputContext } from \"input-otp\"\nimport { Dot } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * One-time password input supporting configurable length and pattern validation.\n *\n * @example\n * <InputOTP maxLength={6}>\n * <InputOTPGroup><InputOTPSlot index={0} /><InputOTPSlot index={1} /></InputOTPGroup>\n * <InputOTPSeparator />\n * <InputOTPGroup><InputOTPSlot index={2} /><InputOTPSlot index={3} /></InputOTPGroup>\n * </InputOTP>\n */\nfunction InputOTP({\n className,\n containerClassName,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof OTPInput>) {\n return (\n <OTPInput\n ref={ref}\n data-slot=\"input-otp\"\n containerClassName={cn(\n \"flex items-center gap-2 has-[:disabled]:opacity-50\",\n containerClassName\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n )\n}\n\n/** Groups adjacent OTP slots together visually. */\nfunction InputOTPGroup({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div ref={ref} data-slot=\"input-otp-group\" className={cn(\"flex items-center\", className)} {...props} />\n )\n}\n\n/**\n * Individual character slot within an OTP input displaying a single digit.\n *\n * @prop index - Zero-based position of this slot in the OTP sequence\n */\nfunction InputOTPSlot({\n index,\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & { index: number }) {\n const inputOTPContext = React.useContext(OTPInputContext)\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index]\n\n return (\n <div\n ref={ref}\n data-slot=\"input-otp-slot\"\n className={cn(\n \"relative flex h-10 w-10 items-center justify-center border-2 rounded-md border-input text-sm transition-all\",\n isActive && \"z-10 border-ring ring-2 ring-ring ring-offset-background\",\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-px animate-caret-blink bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n )\n}\n\n/** Dot separator rendered between OTP slot groups. */\nfunction InputOTPSeparator({\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div ref={ref} role=\"separator\" data-slot=\"input-otp-separator\" {...props}>\n <Dot />\n </div>\n )\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface ItemProps extends React.HTMLAttributes<HTMLDivElement> {\n active?: boolean\n disabled?: boolean\n}\n\n/**\n * Interactive list item with active and disabled states, commonly used in menus and lists.\n *\n * @example\n * <Item active onClick={handleClick}><ItemIcon><StarIcon /></ItemIcon><ItemLabel>Favorites</ItemLabel></Item>\n *\n * @prop active - Highlights the item as currently selected\n * @prop disabled - Dims the item and disables pointer events\n */\nfunction Item({ className, active, disabled, ...props }: ItemProps) {\n return (\n <div\n data-slot=\"item\"\n data-active={active ? \"true\" : undefined}\n data-disabled={disabled ? \"true\" : undefined}\n aria-disabled={disabled || undefined}\n className={cn(\n \"flex items-center gap-2 rounded-md px-3 py-2 text-sm cursor-pointer transition-colors\",\n \"hover:bg-surface-interactive\",\n \"data-[active=true]:bg-surface-interactive data-[active=true]:font-medium\",\n \"data-[disabled=true]:opacity-50 data-[disabled=true]:pointer-events-none\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Shrink-proof icon wrapper inside an Item. */\nfunction ItemIcon({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"item-icon\"\n className={cn(\"shrink-0 [&_svg]:size-4\", className)}\n {...props}\n />\n )\n}\n\n/** Truncating text label inside an Item. */\nfunction ItemLabel({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"item-label\"\n className={cn(\"truncate\", className)}\n {...props}\n />\n )\n}\n\nexport { Item, ItemIcon, ItemLabel }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface KbdProps extends React.HTMLAttributes<HTMLElement> {\n keys?: string | string[]\n}\n\n/**\n * Renders a keyboard key indicator, supporting single keys or key combinations.\n *\n * @example\n * <Kbd keys={[\"Ctrl\", \"S\"]} />\n * <Kbd>Enter</Kbd>\n *\n * @prop keys - A single key string or array of key strings to display as a combination.\n */\nfunction Kbd({ className, keys, children, ...props }: KbdProps) {\n const kbdClasses = cn(\n \"border-2 bg-surface-sunken font-mono text-[10px] rounded px-1.5 py-0.5 text-muted-foreground\",\n className\n )\n\n if (keys) {\n const keyArray = Array.isArray(keys) ? keys : [keys]\n\n return (\n <span data-slot=\"kbd-group\" className=\"inline-flex items-center gap-1\">\n {keyArray.map((key, i) => (\n <React.Fragment key={i}>\n {i > 0 && (\n <span className=\"text-[10px] text-muted-foreground\">+</span>\n )}\n <kbd className={kbdClasses} {...props}>\n {key}\n </kbd>\n </React.Fragment>\n ))}\n </span>\n )\n }\n\n return (\n <kbd data-slot=\"kbd\" className={kbdClasses} {...props}>\n {children}\n </kbd>\n )\n}\n\nexport { Kbd }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Wrapper for an individual menu within the menubar. */\nfunction MenubarMenu({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Menu>) {\n return <MenubarPrimitive.Menu data-slot=\"menubar-menu\" {...props} />\n}\n\n/** Groups related menubar items together. */\nfunction MenubarGroup({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Group>) {\n return <MenubarPrimitive.Group data-slot=\"menubar-group\" {...props} />\n}\n\n/** Portal for rendering menubar content outside the DOM hierarchy. */\nfunction MenubarPortal({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Portal>) {\n return <MenubarPrimitive.Portal {...props} />\n}\n\n/** Groups menubar radio items for single-selection behavior. */\nfunction MenubarRadioGroup({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {\n return <MenubarPrimitive.RadioGroup data-slot=\"menubar-radio-group\" {...props} />\n}\n\n/** Container for a nested submenu within the menubar. */\nfunction MenubarSub({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Sub>) {\n return <MenubarPrimitive.Sub data-slot=\"menubar-sub\" {...props} />\n}\n\n/**\n * Horizontal menubar root component built on Radix UI Menubar.\n *\n * @example\n * <Menubar>\n * <MenubarMenu>\n * <MenubarTrigger>File</MenubarTrigger>\n * <MenubarContent>\n * <MenubarItem>New</MenubarItem>\n * </MenubarContent>\n * </MenubarMenu>\n * </Menubar>\n */\nfunction Menubar({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Root>) {\n return (\n <MenubarPrimitive.Root\n ref={ref}\n data-slot=\"menubar\"\n className={cn(\n \"flex h-10 items-center space-x-1 rounded-md border-2 bg-background p-1\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Button that opens a menubar dropdown. */\nfunction MenubarTrigger({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Trigger>) {\n return (\n <MenubarPrimitive.Trigger\n ref={ref}\n data-slot=\"menubar-trigger\"\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Trigger that opens a nested submenu, displaying a chevron indicator. */\nfunction MenubarSubTrigger({\n className,\n inset,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.SubTrigger> & {\n inset?: boolean\n}) {\n return (\n <MenubarPrimitive.SubTrigger\n ref={ref}\n data-slot=\"menubar-sub-trigger\"\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto h-4 w-4\" />\n </MenubarPrimitive.SubTrigger>\n )\n}\n\n/** Animated dropdown content for a menubar submenu. */\nfunction MenubarSubContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.SubContent>) {\n return (\n <MenubarPrimitive.SubContent\n ref={ref}\n data-slot=\"menubar-sub-content\"\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-menubar-content-transform-origin]\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Animated dropdown content panel for a top-level menubar menu. */\nfunction MenubarContent({\n className,\n align = \"start\",\n alignOffset = -4,\n sideOffset = 8,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Content>) {\n return (\n <MenubarPrimitive.Portal>\n <MenubarPrimitive.Content\n ref={ref}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n data-slot=\"menubar-content\"\n className={cn(\n \"z-50 min-w-[12rem] overflow-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-menubar-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </MenubarPrimitive.Portal>\n )\n}\n\n/** An interactive item within a menubar dropdown. */\nfunction MenubarItem({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Item> & {\n inset?: boolean\n}) {\n return (\n <MenubarPrimitive.Item\n ref={ref}\n data-slot=\"menubar-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-surface-interactive focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A menubar item with a checkbox indicator for toggling options. */\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.CheckboxItem>) {\n return (\n <MenubarPrimitive.CheckboxItem\n ref={ref}\n data-slot=\"menubar-checkbox-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n )\n}\n\n/** A menubar item with a radio indicator for exclusive selection. */\nfunction MenubarRadioItem({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.RadioItem>) {\n return (\n <MenubarPrimitive.RadioItem\n ref={ref}\n data-slot=\"menubar-radio-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n )\n}\n\n/** Non-interactive label used to title a group of menubar items. */\nfunction MenubarLabel({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Label> & {\n inset?: boolean\n}) {\n return (\n <MenubarPrimitive.Label\n ref={ref}\n data-slot=\"menubar-label\"\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Visual divider between groups of menubar items. */\nfunction MenubarSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Separator>) {\n return (\n <MenubarPrimitive.Separator\n ref={ref}\n data-slot=\"menubar-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\n/** Displays a keyboard shortcut hint aligned to the right of a menubar item. */\nfunction MenubarShortcut({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"menubar-shortcut\"\n className={cn(\n \"ms-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Menubar,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarItem,\n MenubarSeparator,\n MenubarLabel,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarPortal,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarGroup,\n MenubarSub,\n MenubarShortcut,\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { ChevronDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Size variants for the native select element. Use with cn(nativeSelectVariants({...})) for non-select elements. */\nconst nativeSelectVariants = cva(\n \"w-full border-2 rounded-md bg-background px-3 text-sm appearance-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n size: {\n sm: \"h-9\",\n default: \"h-10\",\n lg: \"h-11\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\ninterface NativeSelectProps\n extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, \"size\">,\n VariantProps<typeof nativeSelectVariants> {}\n\n/**\n * Styled native HTML select element with a custom chevron indicator.\n *\n * @example\n * <NativeSelect size=\"default\">\n * <option value=\"a\">Option A</option>\n * </NativeSelect>\n *\n * @prop size - Controls the height of the select: \"sm\", \"default\", or \"lg\".\n */\nfunction NativeSelect({\n className,\n size,\n children,\n ...props\n}: NativeSelectProps) {\n return (\n <div data-slot=\"native-select\" className=\"relative\">\n <select\n className={cn(nativeSelectVariants({ size }), \"pe-8\", className)}\n {...props}\n >\n {children}\n </select>\n <ChevronDown className=\"pointer-events-none absolute end-2 top-1/2 size-4 -translate-y-1/2 text-muted-foreground\" />\n </div>\n )\n}\n\nexport { NativeSelect, nativeSelectVariants }\n","import * as React from \"react\"\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\"\nimport { cva } from \"class-variance-authority\"\nimport { ChevronDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Root navigation menu component built on Radix UI NavigationMenu.\n *\n * @example\n * <NavigationMenu>\n * <NavigationMenuList>\n * <NavigationMenuItem>\n * <NavigationMenuTrigger>Getting Started</NavigationMenuTrigger>\n * <NavigationMenuContent>...</NavigationMenuContent>\n * </NavigationMenuItem>\n * </NavigationMenuList>\n * </NavigationMenu>\n */\nfunction NavigationMenu({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Root>) {\n return (\n <NavigationMenuPrimitive.Root\n ref={ref}\n data-slot=\"navigation-menu\"\n className={cn(\n \"relative z-10 flex max-w-max flex-1 items-center justify-center\",\n className\n )}\n {...props}\n >\n {children}\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Root>\n )\n}\n\n/** Horizontal list container for navigation menu items. */\nfunction NavigationMenuList({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n ref={ref}\n data-slot=\"navigation-menu-list\"\n className={cn(\n \"group flex flex-1 list-none items-center justify-center space-x-1\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Individual item within a navigation menu list. */\nconst NavigationMenuItem = NavigationMenuPrimitive.Item\n\n/** Trigger button style variants. Use with cn(navigationMenuTriggerStyle()) for non-trigger elements. */\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-accent-foreground data-[state=open]:bg-accent/50 data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent\"\n)\n\n/** Button that toggles the visibility of a navigation menu content panel. */\nfunction NavigationMenuTrigger({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Trigger>) {\n return (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDown\n className=\"relative top-[1px] ms-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n )\n}\n\n/** Animated content panel revealed when a navigation menu trigger is activated. */\nfunction NavigationMenuContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Content>) {\n return (\n <NavigationMenuPrimitive.Content\n ref={ref}\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"start-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto \",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Accessible link element within a navigation menu. */\nconst NavigationMenuLink = NavigationMenuPrimitive.Link\n\n/** Viewport container that renders the active navigation menu content with animations. */\nfunction NavigationMenuViewport({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Viewport>) {\n return (\n <div className={cn(\"absolute start-0 top-full flex justify-center\")}>\n <NavigationMenuPrimitive.Viewport\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-lg border-2 bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className\n )}\n ref={ref}\n data-slot=\"navigation-menu-viewport\"\n {...props}\n />\n </div>\n )\n}\n\n/** Animated arrow indicator that tracks the active navigation menu item. */\nfunction NavigationMenuIndicator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Indicator>) {\n return (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in\",\n className\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-ss-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n )\n}\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n}\n","import * as React from \"react\"\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { ButtonProps, buttonVariants } from \"@/components/ui/button\"\n\n/**\n * Navigation container for paginated content.\n *\n * @example\n * <Pagination>\n * <PaginationContent>\n * <PaginationItem><PaginationPrevious href=\"#\" /></PaginationItem>\n * <PaginationItem><PaginationLink href=\"#\">1</PaginationLink></PaginationItem>\n * <PaginationItem><PaginationNext href=\"#\" /></PaginationItem>\n * </PaginationContent>\n * </Pagination>\n */\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n )\n}\n\n/** Flex row container for pagination items. */\nfunction PaginationContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"ul\">) {\n return (\n <ul\n ref={ref}\n data-slot=\"pagination-content\"\n className={cn(\"flex flex-row items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\n/** List item wrapper for a single pagination element. */\nfunction PaginationItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"li\">) {\n return (\n <li ref={ref} data-slot=\"pagination-item\" className={cn(\"\", className)} {...props} />\n )\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean\n} & Pick<ButtonProps, \"size\"> &\n React.ComponentProps<\"a\">\n\n/**\n * Styled anchor for an individual page number.\n *\n * @prop isActive - Highlights the link as the current page.\n * @prop size - Button size variant, defaults to \"icon\".\n */\nfunction PaginationLink({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) {\n return (\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n className={cn(\n buttonVariants({\n variant: isActive ? \"default\" : \"ghost\",\n size,\n }),\n className\n )}\n {...props}\n />\n )\n}\n\n/** \"Previous\" pagination link with a left chevron icon. */\nfunction PaginationPrevious({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n data-slot=\"pagination-previous\"\n className={cn(\"gap-1 ps-2.5\", className)}\n {...props}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n <span>Previous</span>\n </PaginationLink>\n )\n}\n\n/** \"Next\" pagination link with a right chevron icon. */\nfunction PaginationNext({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n data-slot=\"pagination-next\"\n className={cn(\"gap-1 pe-2.5\", className)}\n {...props}\n >\n <span>Next</span>\n <ChevronRight className=\"h-4 w-4\" />\n </PaginationLink>\n )\n}\n\n/** Ellipsis indicator representing omitted page numbers. */\nfunction PaginationEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n )\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Horizontal progress bar indicating completion percentage.\n *\n * @example\n * <Progress value={60} />\n *\n * @prop value - Current progress from 0 to 100.\n */\nfunction Progress({\n className,\n value,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ProgressPrimitive.Root>) {\n return (\n <ProgressPrimitive.Root\n ref={ref}\n data-slot=\"progress\"\n className={cn(\n \"relative h-3 w-full overflow-hidden rounded-full border-2 bg-surface-sunken\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className=\"h-full w-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n )\n}\n\nexport { Progress }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A group of radio inputs where only one can be selected at a time.\n *\n * @example\n * <RadioGroup defaultValue=\"a\">\n * <RadioGroupItem value=\"a\" />\n * <RadioGroupItem value=\"b\" />\n * </RadioGroup>\n */\nfunction RadioGroup({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n data-slot=\"radio-group\"\n />\n )\n}\n\n/** An individual radio option within a RadioGroup. */\nfunction RadioGroupItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n data-slot=\"radio-group-item\"\n className={cn(\n \"aspect-square h-[18px] w-[18px] rounded-full border-2 border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n","\"use client\"\n\nimport { GripVertical } from \"lucide-react\"\nimport { Group, Panel, Separator } from \"react-resizable-panels\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A container that arranges resizable panels in a horizontal or vertical layout.\n *\n * @example\n * <ResizablePanelGroup direction=\"horizontal\">\n * <ResizablePanel>Left</ResizablePanel>\n * <ResizableHandle />\n * <ResizablePanel>Right</ResizablePanel>\n * </ResizablePanelGroup>\n */\nconst ResizablePanelGroup = ({\n className,\n ...props\n}: React.ComponentProps<typeof Group>) => (\n <Group\n className={cn(\n \"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\",\n className\n )}\n {...props}\n />\n)\n\n/** A single resizable panel within a ResizablePanelGroup. */\nconst ResizablePanel = Panel\n\n/**\n * A draggable handle between resizable panels for adjusting their sizes.\n *\n * @example\n * <ResizableHandle withHandle />\n *\n * @prop withHandle - Whether to show a visible grip icon on the handle.\n */\nconst ResizableHandle = ({\n withHandle,\n className,\n ...props\n}: React.ComponentProps<typeof Separator> & {\n withHandle?: boolean\n}) => (\n <Separator\n className={cn(\n \"relative flex w-px items-center justify-center bg-border hover:bg-primary transition-colors after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:start-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90\",\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 bg-border\">\n <GripVertical className=\"h-2.5 w-2.5\" />\n </div>\n )}\n </Separator>\n)\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A scrollable area with custom styled scrollbars.\n *\n * @example\n * <ScrollArea className=\"h-72\">\n * <div>Scrollable content</div>\n * </ScrollArea>\n */\nfunction ScrollArea({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root\n ref={ref}\n data-slot=\"scroll-area\"\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\n/** A styled scrollbar track and thumb, used internally by ScrollArea. */\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n data-slot=\"scroll-bar\"\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-s border-s-transparent p-[1px]\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border hover:bg-muted-foreground\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n )\n}\n\nexport { ScrollArea, ScrollBar }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Search, X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Input } from \"./input\"\nimport { InputGroup, InputGroupPrefix, InputGroupSuffix } from \"./input-group\"\nimport { Kbd } from \"./kbd\"\n\n/** Props for the SearchField component. */\ninterface SearchFieldProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n placeholder?: string\n shortcut?: string\n value: string\n onChange: (value: string) => void\n onClear?: () => void\n}\n\n/**\n * A search input with a search icon, clearable value, and optional keyboard shortcut hint.\n *\n * @example\n * <SearchField value={query} onChange={setQuery} shortcut=\"/\" />\n *\n * @prop value - The current search string.\n * @prop onChange - Callback fired when the search value changes.\n * @prop shortcut - Optional keyboard shortcut label displayed when empty.\n * @prop onClear - Optional callback fired when the clear button is clicked.\n */\nfunction SearchField({\n placeholder = \"Search...\",\n shortcut,\n value,\n onChange,\n onClear,\n className,\n ...props\n}: SearchFieldProps) {\n return (\n <InputGroup\n data-slot=\"search-field\"\n role=\"search\"\n className={cn(className)}\n {...props}\n >\n <InputGroupPrefix>\n <Search className=\"size-4\" aria-hidden=\"true\" />\n </InputGroupPrefix>\n <Input\n type=\"search\"\n placeholder={placeholder}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n aria-label={placeholder}\n className=\"border-0 focus-visible:ring-0 focus-visible:ring-offset-0\"\n />\n {value ? (\n <InputGroupSuffix>\n <button\n type=\"button\"\n aria-label=\"Clear search\"\n onClick={() => {\n onChange(\"\")\n onClear?.()\n }}\n className=\"inline-flex items-center justify-center rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n >\n <X\n className=\"size-4 cursor-pointer hover:text-foreground transition-colors\"\n aria-hidden=\"true\"\n />\n </button>\n </InputGroupSuffix>\n ) : shortcut ? (\n <InputGroupSuffix>\n <Kbd>{shortcut}</Kbd>\n </InputGroupSuffix>\n ) : null}\n </InputGroup>\n )\n}\n\nexport { SearchField }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root component that manages select state and context. */\nconst Select = SelectPrimitive.Root\n\n/** Groups related select items with an optional label. */\nconst SelectGroup = SelectPrimitive.Group\n\n/** Renders the currently selected value or placeholder text. */\nconst SelectValue = SelectPrimitive.Value\n\n/**\n * The button that toggles the select dropdown.\n *\n * @example\n * <Select>\n * <SelectTrigger><SelectValue placeholder=\"Pick one\" /></SelectTrigger>\n * <SelectContent>\n * <SelectItem value=\"a\">Option A</SelectItem>\n * </SelectContent>\n * </Select>\n */\nfunction SelectTrigger({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.Trigger>) {\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n data-slot=\"select-trigger\"\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-md border-2 border-input bg-background px-3 py-2 text-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n}\n\n/** A button shown at the top of the dropdown to scroll content upward. */\nfunction SelectScrollUpButton({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n )\n}\n\n/** A button shown at the bottom of the dropdown to scroll content downward. */\nfunction SelectScrollDownButton({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n )\n}\n\n/** The dropdown popover that contains selectable items. */\nfunction SelectContent({\n className,\n children,\n position = \"popper\",\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n data-slot=\"select-content\"\n className={cn(\n \"relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border-2 bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-select-content-transform-origin]\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n}\n\n/** A non-interactive label for a group of select items. */\nfunction SelectLabel({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n ref={ref}\n data-slot=\"select-label\"\n className={cn(\"py-1.5 ps-8 pe-2 text-sm font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** A selectable option within the select dropdown. */\nfunction SelectItem({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n ref={ref}\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none hover:bg-surface-interactive focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n )\n}\n\n/** A visual divider between groups of select items. */\nfunction SelectSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n ref={ref}\n data-slot=\"select-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A visual divider that separates content horizontally or vertically.\n *\n * @example\n * <Separator orientation=\"horizontal\" />\n */\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n data-slot=\"separator\"\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root component that manages sheet open/closed state. */\nconst Sheet = SheetPrimitive.Root\n\n/** A button or element that opens the sheet when clicked. */\nconst SheetTrigger = SheetPrimitive.Trigger\n\n/** A button or element that closes the sheet when clicked. */\nconst SheetClose = SheetPrimitive.Close\n\n/** Portals sheet content into the document body. */\nconst SheetPortal = SheetPrimitive.Portal\n\n/** A semi-transparent backdrop displayed behind the sheet content. */\nfunction SheetOverlay({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n data-slot=\"sheet-overlay\"\n />\n )\n}\n\n/** Sheet position variants for top/bottom/left/right sides. Use with cn(sheetVariants({...})) for non-sheet elements. */\nconst sheetVariants = cva(\n \"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b-2 data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t-2 data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 start-0 h-full w-3/4 border-e-2 data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right:\n \"inset-y-0 end-0 h-full w-3/4 border-s-2 data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\ninterface SheetContentProps\n extends React.ComponentPropsWithRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\n/**\n * The sliding panel content of the sheet, rendered from a specified side.\n *\n * @example\n * <Sheet>\n * <SheetTrigger>Open</SheetTrigger>\n * <SheetContent side=\"right\">Content here</SheetContent>\n * </Sheet>\n *\n * @prop side - Which edge the sheet slides in from (top, bottom, left, right).\n */\nfunction SheetContent({\n side = \"right\",\n className,\n children,\n ref,\n ...props\n}: SheetContentProps) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n data-slot=\"sheet-content\"\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n}\n\n/** A layout container for the sheet's title and description at the top. */\nfunction SheetHeader({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-start\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A layout container for action buttons at the bottom of the sheet. */\nfunction SheetFooter({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** The accessible title heading for the sheet. */\nfunction SheetTitle({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n ref={ref}\n data-slot=\"sheet-title\"\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** An accessible description for the sheet content. */\nfunction SheetDescription({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n ref={ref}\n data-slot=\"sheet-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import * as React from \"react\"\n\nconst MOBILE_BREAKPOINT = 768\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n }\n mql.addEventListener(\"change\", onChange)\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [])\n\n return !!isMobile\n}\n","import { cn } from \"@/lib/utils\"\n\n/**\n * A pulsing placeholder element used to indicate loading content.\n *\n * @example\n * <Skeleton className=\"h-4 w-48\" />\n */\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Global tooltip configuration provider (delay, skip-delay, etc.). */\nconst TooltipProvider = TooltipPrimitive.Provider\n\n/** Root tooltip wrapper that manages open state. */\nconst Tooltip = TooltipPrimitive.Root\n\n/** Element that triggers the tooltip on hover/focus. */\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\n/** Animated popover content displayed when the tooltip is open.\n *\n * @example\n * <Tooltip><TooltipTrigger>Hover me</TooltipTrigger><TooltipContent>Tip text</TooltipContent></Tooltip>\n */\nfunction TooltipContent({\n className,\n sideOffset = 4,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n data-slot=\"tooltip-content\"\n className={cn(\n \"z-50 overflow-hidden rounded-md border-2 border-border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 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 origin-[--radix-tooltip-content-transform-origin]\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { PanelLeft } from \"lucide-react\"\n\nimport { useIsMobile } from \"@/hooks/use-mobile\"\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"@/components/ui/sheet\"\nimport { Skeleton } from \"@/components/ui/skeleton\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\"\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\"\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = \"16rem\"\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\"\nconst SIDEBAR_WIDTH_ICON = \"3rem\"\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\"\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\"\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null)\n\n/** Returns the sidebar context including open state, toggle, and mobile detection. */\nfunction useSidebar() {\n const context = React.useContext(SidebarContext)\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\")\n }\n\n return context\n}\n\n/**\n * Provides sidebar context and manages expand/collapse state, mobile sheet, and keyboard shortcut.\n *\n * @example\n * <SidebarProvider>\n * <Sidebar>...</Sidebar>\n * <SidebarInset>main content</SidebarInset>\n * </SidebarProvider>\n */\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n}) {\n const isMobile = useIsMobile()\n const [openMobile, setOpenMobile] = React.useState(false)\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open]\n )\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile\n ? setOpenMobile((open) => !open)\n : setOpen((open) => !open)\n }, [isMobile, setOpen, setOpenMobile])\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener(\"keydown\", handleKeyDown)\n return () => window.removeEventListener(\"keydown\", handleKeyDown)\n }, [toggleSidebar])\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\"\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-provider\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n}\n\n/**\n * The main sidebar container that renders as a fixed panel on desktop or a sheet on mobile.\n *\n * @prop side - Which edge the sidebar appears on (left or right).\n * @prop variant - Visual variant (sidebar, floating, inset).\n * @prop collapsible - Collapse behavior (offcanvas, icon, none).\n */\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === \"none\") {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n \"flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-slot=\"sidebar\"\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n ref={ref}\n data-slot=\"sidebar\"\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n \"relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\"\n )}\n />\n <div\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"start-0 group-data-[collapsible=offcanvas]:start-[calc(var(--sidebar-width)*-1)]\"\n : \"end-0 group-data-[collapsible=offcanvas]:end-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-e-2 group-data-[side=right]:border-s-2\",\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\n/** A button that toggles the sidebar open/closed state. */\nfunction SidebarTrigger({\n className,\n onClick,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof Button>) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <Button\n ref={ref}\n data-slot=\"sidebar-trigger\"\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"h-7 w-7\", className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n}\n\n/** A thin interactive rail at the sidebar edge for toggling via click or drag. */\nfunction SidebarRail({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"button\">) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n ref={ref}\n data-slot=\"sidebar-rail\"\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-end-4 group-data-[side=right]:start-0 sm:flex\",\n \"[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:start-full group-data-[collapsible=offcanvas]:hover:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-end-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-start-2\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** The main content area adjacent to the sidebar. */\nfunction SidebarInset({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"main\">) {\n return (\n <main\n ref={ref}\n data-slot=\"sidebar-inset\"\n className={cn(\n \"relative flex w-full flex-1 flex-col bg-background\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ms-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A styled text input for use within the sidebar. */\nfunction SidebarInput({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof Input>) {\n return (\n <Input\n ref={ref}\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\n \"h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A container for content at the top of the sidebar. */\nfunction SidebarHeader({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n}\n\n/** A container for content at the bottom of the sidebar. */\nfunction SidebarFooter({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n}\n\n/** A horizontal divider styled for the sidebar context. */\nfunction SidebarSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof Separator>) {\n return (\n <Separator\n ref={ref}\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\"mx-2 w-auto bg-sidebar-border\", className)}\n {...props}\n />\n )\n}\n\n/** The scrollable body area of the sidebar that holds groups and menus. */\nfunction SidebarContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A logical grouping of sidebar items, typically with a label. */\nfunction SidebarGroup({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n )\n}\n\n/** A small label heading for a SidebarGroup. */\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"div\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** An action button positioned at the top-right of a SidebarGroup. */\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"button\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute end-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A wrapper for the content within a SidebarGroup. */\nfunction SidebarGroupContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n )\n}\n\n/** A list container for sidebar menu items. */\nfunction SidebarMenu({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"ul\">) {\n return (\n <ul\n ref={ref}\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n )\n}\n\n/** A list item wrapper for a single sidebar menu entry. */\nfunction SidebarMenuItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"li\">) {\n return (\n <li\n ref={ref}\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n )\n}\n\n/** Sidebar menu button style variants. Use with cn(sidebarMenuButtonVariants({...})) for non-button elements. */\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-start text-sm outline-none ring-sidebar-ring transition-[width,height,padding] active:translate-y-[1.5px] transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pe-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\n/**\n * An interactive button within a sidebar menu item, with optional tooltip when collapsed.\n *\n * @prop isActive - Whether the item is currently active/selected.\n * @prop tooltip - Tooltip content shown when the sidebar is collapsed.\n */\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"button\"> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot : \"button\"\n const { isMobile, state } = useSidebar()\n\n const button = (\n <Comp\n ref={ref}\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n )\n\n if (!tooltip) {\n return button\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n )\n}\n\n/** A secondary action button (e.g. delete, edit) within a sidebar menu item. */\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"button\"> & {\n asChild?: boolean\n showOnHover?: boolean\n}) {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute end-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A badge displayed alongside a sidebar menu button, such as a count indicator. */\nfunction SidebarMenuBadge({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute end-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A loading placeholder skeleton for a sidebar menu item. */\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & {\n showIcon?: boolean\n}) {\n // Random width between 50 to 90%.\n const [width, setWidth] = React.useState(\"70%\")\n React.useEffect(() => {\n setWidth(`${Math.floor(Math.random() * 40) + 50}%`)\n }, [])\n\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n}\n\n/** A nested sub-menu list within a sidebar menu item. */\nfunction SidebarMenuSub({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"ul\">) {\n return (\n <ul\n ref={ref}\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-s-2 border-sidebar-border px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A list item wrapper for a single entry within a SidebarMenuSub. */\nfunction SidebarMenuSubItem({\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"li\">) {\n return <li ref={ref} data-slot=\"sidebar-menu-sub-item\" {...props} />\n}\n\n/** An interactive button within a sidebar sub-menu item. */\nfunction SidebarMenuSubButton({\n asChild = false,\n size = \"md\",\n isActive,\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"a\"> & {\n asChild?: boolean\n size?: \"sm\" | \"md\"\n isActive?: boolean\n}) {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A range input that allows selecting a numeric value by dragging a thumb along a track.\n *\n * @example\n * <Slider defaultValue={[50]} max={100} step={1} />\n */\nfunction Slider({\n className,\n defaultValue,\n value,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SliderPrimitive.Root>) {\n const thumbCount = (value ?? defaultValue ?? [0]).length\n return (\n <SliderPrimitive.Root\n ref={ref}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-full border-2 bg-surface-sunken\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n {Array.from({ length: thumbCount }, (_, i) => (\n <SliderPrimitive.Thumb\n key={i}\n className=\"block size-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n","\"use client\"\n\nimport {\n CircleCheck,\n Info,\n LoaderCircle,\n OctagonX,\n TriangleAlert,\n} from \"lucide-react\"\nimport { useTheme } from \"next-themes\"\nimport { Toaster as Sonner } from \"sonner\"\n\n/** Props for the Toaster component. */\ntype ToasterProps = React.ComponentProps<typeof Sonner>\n\n/**\n * A theme-aware toast notification container powered by Sonner.\n *\n * @example\n * <Toaster />\n */\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = \"system\" } = useTheme()\n\n return (\n <Sonner\n theme={theme as ToasterProps[\"theme\"]}\n className=\"toaster group\"\n icons={{\n success: <CircleCheck className=\"h-4 w-4\" />,\n info: <Info className=\"h-4 w-4\" />,\n warning: <TriangleAlert className=\"h-4 w-4\" />,\n error: <OctagonX className=\"h-4 w-4\" />,\n loading: <LoaderCircle className=\"h-4 w-4 animate-spin\" />,\n }}\n toastOptions={{\n classNames: {\n toast:\n \"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-2 group-[.toaster]:border-border group-[.toaster]:shadow-lg\",\n description: \"group-[.toast]:text-muted-foreground\",\n actionButton:\n \"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground\",\n cancelButton:\n \"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground\",\n success:\n \"group-[.toaster]:!border-status-success group-[.toaster]:!bg-status-success-surface group-[.toaster]:!text-status-success-text\",\n error:\n \"group-[.toaster]:!border-status-error group-[.toaster]:!bg-status-error-surface group-[.toaster]:!text-status-error-text\",\n warning:\n \"group-[.toaster]:!border-status-warning group-[.toaster]:!bg-status-warning-surface group-[.toaster]:!text-status-warning-text\",\n },\n }}\n {...props}\n />\n )\n}\n\nexport { Toaster }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Map of size tokens to pixel values for the Spacer component. */\nconst sizeMap = {\n none: \"0px\",\n xs: \"4px\",\n sm: \"8px\",\n md: \"16px\",\n lg: \"24px\",\n xl: \"32px\",\n \"2xl\": \"48px\",\n} as const\n\ntype Size = keyof typeof sizeMap\n\ninterface SpacerProps extends React.ComponentPropsWithRef<\"div\"> {\n size?: Size\n axis?: \"horizontal\" | \"vertical\"\n}\n\n/**\n * A flexible spacing element that either fills available space or adds a fixed gap.\n *\n * @example\n * <Spacer size=\"md\" axis=\"vertical\" />\n *\n * @prop size - The spacing size token; omit to fill available flex space.\n * @prop axis - Whether spacing is applied horizontally or vertically.\n */\nfunction Spacer({\n size,\n axis = \"vertical\",\n className,\n style,\n ...props\n}: SpacerProps) {\n if (size === undefined) {\n return (\n <div\n data-slot=\"spacer\"\n className={cn(\"flex-1\", className)}\n {...props}\n />\n )\n }\n\n const dimension = sizeMap[size]\n const sizeStyle =\n axis === \"horizontal\"\n ? { width: dimension, minWidth: dimension }\n : { height: dimension, minHeight: dimension }\n\n return (\n <div\n data-slot=\"spacer\"\n className={className}\n style={{ ...sizeStyle, ...style }}\n {...props}\n />\n )\n}\n\nexport { Spacer, type SpacerProps }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Spinner size variants. Use with cn(spinnerVariants({...})) for non-spinner elements. */\nconst spinnerVariants = cva(\n \"rounded-full border-2\",\n {\n variants: {\n size: {\n sm: \"size-4\",\n default: \"size-6\",\n lg: \"size-8\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * An animated loading spinner indicator.\n *\n * @example\n * <Spinner size=\"lg\" />\n *\n * @prop size - The spinner diameter (sm, default, lg).\n */\nfunction Spinner({\n className,\n size,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof spinnerVariants>) {\n return (\n <div\n data-slot=\"spinner\"\n role=\"status\"\n className={cn(spinnerVariants({ size }), className)}\n {...props}\n >\n <span className=\"sr-only\">Loading…</span>\n </div>\n )\n}\n\nexport { Spinner, spinnerVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A toggle switch for boolean on/off input.\n *\n * @example\n * <Switch checked={enabled} onCheckedChange={setEnabled} />\n */\nfunction Switch({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SwitchPrimitives.Root>) {\n return (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-[26px] w-[44px] shrink-0 cursor-pointer items-center rounded-full border-2 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n className\n )}\n {...props}\n ref={ref}\n data-slot=\"switch\"\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block size-[20px] rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-[18px] data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n )\n}\n\nexport { Switch }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Multi-line text input with consistent border, focus ring, and disabled styles.\n *\n * @example\n * <Textarea placeholder=\"Enter description...\" rows={4} />\n */\nfunction Textarea({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border-2 border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-surface-sunken md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Toggle button style variants (default, outline) and sizes. Use with cn(toggleVariants({...})) for non-Toggle elements. */\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors active:translate-y-[1.5px] transition-transform hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border-2 border-input bg-transparent hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-10 px-3 min-w-10\",\n sm: \"h-9 px-2.5 min-w-9\",\n lg: \"h-11 px-5 min-w-11\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\n/** A two-state toggle button built on Radix Toggle.\n *\n * @example\n * <Toggle variant=\"outline\" size=\"sm\"><BoldIcon /></Toggle>\n *\n * @prop variant - Visual style: \"default\" or \"outline\".\n * @prop size - Button size: \"sm\", \"default\", or \"lg\".\n */\nfunction Toggle({\n className,\n variant,\n size,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n ref={ref}\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\"\nimport { type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { toggleVariants } from \"@/components/ui/toggle\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants>\n>({\n size: \"default\",\n variant: \"default\",\n})\n\n/** A group of toggle buttons that share variant and size context.\n *\n * @example\n * <ToggleGroup type=\"single\" variant=\"outline\"><ToggleGroupItem value=\"a\">A</ToggleGroupItem></ToggleGroup>\n *\n * @prop variant - Visual style applied to all child items.\n * @prop size - Size applied to all child items.\n */\nfunction ToggleGroup({\n className,\n variant,\n size,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <ToggleGroupPrimitive.Root\n ref={ref}\n data-slot=\"toggle-group\"\n className={cn(\"flex items-center justify-center gap-1\", className)}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n )\n}\n\n/** Individual toggle item within a ToggleGroup. */\nfunction ToggleGroupItem({\n className,\n children,\n variant,\n size,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <ToggleGroupPrimitive.Item\n ref={ref}\n data-slot=\"toggle-group-item\"\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Semantic h1 heading with bold, tight tracking at 4xl size. */\nfunction H1({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h1\n data-slot=\"h1\"\n className={cn(\"text-4xl font-bold tracking-tight\", className)}\n {...props}\n />\n )\n}\n\n/** Semantic h2 heading with semibold weight at 3xl size. */\nfunction H2({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h2\n data-slot=\"h2\"\n className={cn(\"text-3xl font-semibold tracking-tight\", className)}\n {...props}\n />\n )\n}\n\n/** Semantic h3 heading with semibold weight at 2xl size. */\nfunction H3({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3\n data-slot=\"h3\"\n className={cn(\"text-2xl font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Semantic h4 heading with semibold weight at xl size. */\nfunction H4({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h4\n data-slot=\"h4\"\n className={cn(\"text-xl font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Standard paragraph element with base size and relaxed leading. */\nfunction P({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n data-slot=\"p\"\n className={cn(\"text-base leading-7\", className)}\n {...props}\n />\n )\n}\n\n/** Lead paragraph rendered in xl muted text for introductory copy. */\nfunction Lead({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n data-slot=\"lead\"\n className={cn(\"text-xl text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Large semibold text block rendered as a div. */\nfunction Large({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"large\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Small text element with medium weight and tight leading. */\nfunction Small({\n className,\n ...props\n}: React.HTMLAttributes<HTMLElement>) {\n return (\n <small\n data-slot=\"small\"\n className={cn(\"text-sm font-medium leading-none\", className)}\n {...props}\n />\n )\n}\n\n/** Muted paragraph in small size for secondary or helper text. */\nfunction Muted({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n data-slot=\"muted\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Inline code snippet with monospace font and sunken background. */\nfunction Code({\n className,\n ...props\n}: React.HTMLAttributes<HTMLElement>) {\n return (\n <code\n data-slot=\"code\"\n className={cn(\n \"font-mono text-sm bg-surface-sunken rounded px-[0.3rem] py-[0.2rem]\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Inline monospace span without background styling. */\nfunction Mono({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"mono\"\n className={cn(\"font-mono text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport { H1, H2, H3, H4, P, Lead, Large, Small, Muted, Code, Mono }\n"]}
1
+ {"version":3,"sources":["../src/components/ui/accordion.tsx","../src/components/ui/alert.tsx","../src/components/ui/button.tsx","../src/components/ui/alert-dialog.tsx","../src/components/ui/aspect-ratio.tsx","../src/components/ui/avatar.tsx","../src/components/ui/badge.tsx","../src/components/ui/breadcrumb.tsx","../src/components/ui/button-group.tsx","../src/components/ui/calendar.tsx","../src/components/ui/carousel.tsx","../src/components/ui/chart.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/cluster.tsx","../src/components/ui/collapsible.tsx","../src/components/ui/dialog.tsx","../src/components/ui/command.tsx","../src/components/ui/popover.tsx","../src/components/ui/combobox.tsx","../src/components/ui/context-menu.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/ui/table.tsx","../src/components/ui/data-table.tsx","../src/components/ui/date-picker.tsx","../src/components/ui/direction.tsx","../src/components/ui/divider.tsx","../src/components/ui/drawer.tsx","../src/components/ui/empty.tsx","../src/components/ui/label.tsx","../src/components/ui/field.tsx","../src/components/ui/fieldset.tsx","../src/components/ui/form.tsx","../src/components/ui/form-actions.tsx","../src/components/ui/grid.tsx","../src/components/ui/form-section.tsx","../src/components/ui/hover-card.tsx","../src/components/ui/input.tsx","../src/components/ui/input-group.tsx","../src/components/ui/input-otp.tsx","../src/components/ui/item.tsx","../src/components/ui/kbd.tsx","../src/components/ui/menubar.tsx","../src/components/ui/native-select.tsx","../src/components/ui/navigation-menu.tsx","../src/components/ui/pagination.tsx","../src/components/ui/progress.tsx","../src/components/ui/radio-group.tsx","../src/components/ui/resizable.tsx","../src/components/ui/scroll-area.tsx","../src/components/ui/search-field.tsx","../src/components/ui/select.tsx","../src/components/ui/separator.tsx","../src/components/ui/sheet.tsx","../src/hooks/use-mobile.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/tooltip.tsx","../src/components/ui/sidebar.tsx","../src/components/ui/slider.tsx","../src/components/ui/sonner.tsx","../src/components/ui/spacer.tsx","../src/components/ui/spinner.tsx","../src/components/ui/switch.tsx","../src/components/ui/textarea.tsx","../src/components/ui/toggle.tsx","../src/components/ui/toggle-group.tsx","../src/components/ui/typography.tsx"],"names":["jsx","cva","jsxs","Slot","React","_a","_b","className","props","React2","api","React4","config","CollapsibleTrigger","CollapsibleContent","CommandPrimitive","React5","X","Check","ChevronRight","Circle","React6","RadixDirectionProvider","useRadixDirection","DrawerPrimitive","Label","React7","React8","gapMap","React9","Item","React10","ChevronDown","MoreHorizontal","RadioGroup","Group","Separator","Search","SheetPrimitive","React11","Tooltip","React12","open","Sonner","React13"],"mappings":"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","file":"index.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\"\nimport { ChevronDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root accordion container that manages expand/collapse state for its items. */\nconst Accordion = AccordionPrimitive.Root\n\n/** A single collapsible section within an Accordion. */\nfunction AccordionItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n ref={ref}\n data-slot=\"accordion-item\"\n className={cn(\"border-b-2\", className)}\n {...props}\n />\n )\n}\n\n/** Clickable header that toggles the visibility of its associated AccordionContent. */\nfunction AccordionTrigger({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n data-slot=\"accordion-trigger\"\n className={cn(\n \"flex flex-1 items-center justify-between py-4 font-medium transition-all active:translate-y-[1.5px] transition-transform hover:underline [&[data-state=open]>svg]:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDown className=\"h-4 w-4 shrink-0 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\n/** Animated collapsible content panel revealed by its sibling AccordionTrigger. */\nfunction AccordionContent({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n ref={ref}\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Alert style variants (default, destructive, success, warning). Use with cn(alertVariants({...})) for non-div elements. */\nconst alertVariants = cva(\n \"relative w-full rounded-lg border-2 p-4 [&>svg~*]:ps-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:start-4 [&>svg]:top-4 [&>svg]:text-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-status-error bg-status-error-surface text-status-error-text [&>svg]:text-status-error-text\",\n success:\n \"border-status-success bg-status-success-surface text-status-success-text [&>svg]:text-status-success-text\",\n warning:\n \"border-status-warning bg-status-warning-surface text-status-warning-text [&>svg]:text-status-warning-text\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n/**\n * Displays a callout message to attract user attention.\n *\n * @example\n * <Alert variant=\"destructive\"><AlertTitle>Error</AlertTitle></Alert>\n *\n * @prop variant - Visual style: \"default\" | \"destructive\" | \"success\" | \"warning\"\n */\nfunction Alert({\n className,\n variant,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n ref={ref}\n role=\"alert\"\n data-slot=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\n/** Heading rendered inside an Alert. */\nfunction AlertTitle({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"h5\">) {\n return (\n <h5\n ref={ref}\n data-slot=\"alert-title\"\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n )\n}\n\n/** Body text rendered inside an Alert. */\nfunction AlertDescription({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"alert-description\"\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n )\n}\n\nexport { Alert, AlertTitle, AlertDescription }\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Button style variants (variant + size). Use with cn(buttonVariants({...})) for non-button elements. */\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors active:translate-y-[1.5px] motion-reduce:active:translate-y-0 transition-transform motion-reduce:transition-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground border-2 border-transparent hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground border-2 border-transparent hover:bg-destructive/90\",\n outline:\n \"border-2 border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground border-2 border-transparent hover:bg-secondary/80\",\n amber:\n \"bg-amber-500 text-warm-900 border-2 border-amber-600 hover:bg-amber-400 dark:bg-amber-400 dark:text-warm-950 dark:border-amber-500 dark:hover:bg-amber-300\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\n/** Props accepted by the Button component. */\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\n/**\n * Interactive button with multiple visual variants and sizes.\n *\n * @example\n * <Button variant=\"outline\" size=\"sm\">Click me</Button>\n *\n * @prop variant - Visual style: \"default\" | \"destructive\" | \"outline\" | \"secondary\" | \"amber\" | \"ghost\" | \"link\"\n * @prop size - Dimensions: \"default\" | \"sm\" | \"lg\" | \"icon\"\n * @prop asChild - Merge props onto child element instead of rendering a button\n */\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ref,\n ...props\n}: ButtonProps & React.ComponentPropsWithRef<\"button\">) {\n const Comp = asChild ? Slot : \"button\"\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\n\nimport { cn } from \"@/lib/utils\"\nimport { buttonVariants } from \"@/components/ui/button\"\n\n/** Root component that manages alert dialog open/close state. */\nconst AlertDialog = AlertDialogPrimitive.Root\n\n/** Button that opens the alert dialog. */\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\n\n/** Portal that renders alert dialog content outside the DOM hierarchy. */\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\n\n/** Semi-transparent backdrop rendered behind the alert dialog. */\nfunction AlertDialogOverlay({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n data-slot=\"alert-dialog-overlay\"\n />\n )\n}\n\n/** Centered modal panel containing the alert dialog body. */\nfunction AlertDialogContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Content>) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n data-slot=\"alert-dialog-content\"\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border-2 bg-card text-card-foreground p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n )\n}\n\n/** Layout wrapper for the title and description at the top of the dialog. */\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-start\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Layout wrapper for action/cancel buttons at the bottom of the dialog. */\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Accessible title rendered inside the alert dialog header. */\nfunction AlertDialogTitle({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n ref={ref}\n data-slot=\"alert-dialog-title\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Accessible description text rendered inside the alert dialog header. */\nfunction AlertDialogDescription({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n ref={ref}\n data-slot=\"alert-dialog-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Primary confirmation button that closes the dialog on click. */\nfunction AlertDialogAction({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Action>) {\n return (\n <AlertDialogPrimitive.Action\n ref={ref}\n data-slot=\"alert-dialog-action\"\n className={cn(buttonVariants(), className)}\n {...props}\n />\n )\n}\n\n/** Secondary cancel button that dismisses the dialog. */\nfunction AlertDialogCancel({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Cancel>) {\n return (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n data-slot=\"alert-dialog-cancel\"\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n}\n","\"use client\"\n\nimport * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\"\n\n/**\n * Constrains its child to a given width-to-height ratio.\n *\n * @example\n * <AspectRatio ratio={16 / 9}><img src=\"/hero.jpg\" /></AspectRatio>\n */\nconst AspectRatio = AspectRatioPrimitive.Root\n\nexport { AspectRatio }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Circular container for a user profile image with fallback support.\n *\n * @example\n * <Avatar><AvatarImage src=\"/me.jpg\" /><AvatarFallback>CN</AvatarFallback></Avatar>\n */\nfunction Avatar({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n ref={ref}\n data-slot=\"avatar\"\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Image displayed inside an Avatar; hidden automatically when loading fails. */\nfunction AvatarImage({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n ref={ref}\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n )\n}\n\n/** Placeholder content shown while the avatar image loads or when it fails. */\nfunction AvatarFallback({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n ref={ref}\n data-slot=\"avatar-fallback\"\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full border-2 bg-muted\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Avatar, AvatarImage, AvatarFallback }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Badge style variants (default, secondary, destructive, outline, success, warning, error). Use with cn(badgeVariants({...})) for non-div elements. */\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border-2 px-2.5 py-0.5 font-mono uppercase tracking-wider text-[11px] transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n outline: \"text-foreground\",\n success:\n \"border-transparent bg-status-success-surface text-status-success-text\",\n warning:\n \"border-transparent bg-status-warning-surface text-status-warning-text\",\n error:\n \"border-transparent bg-status-error-surface text-status-error-text\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n/** Props accepted by the Badge component. */\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\n/**\n * Small label used to highlight status, category, or metadata.\n *\n * @example\n * <Badge variant=\"success\">Active</Badge>\n *\n * @prop variant - Visual style: \"default\" | \"secondary\" | \"destructive\" | \"outline\" | \"success\" | \"warning\" | \"error\"\n */\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div data-slot=\"badge\" className={cn(badgeVariants({ variant }), className)} {...props} />\n )\n}\n\nexport { Badge, badgeVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by Breadcrumb. All keys have English defaults. */\ninterface BreadcrumbLabels {\n breadcrumb?: string\n more?: string\n}\n\nconst defaultBreadcrumbLabels: Required<BreadcrumbLabels> = {\n breadcrumb: \"breadcrumb\",\n more: \"More\",\n}\n\n/**\n * Navigation component showing the user's location in a page hierarchy.\n *\n * @example\n * <Breadcrumb><BreadcrumbList><BreadcrumbItem><BreadcrumbLink href=\"/\">Home</BreadcrumbLink></BreadcrumbItem></BreadcrumbList></Breadcrumb>\n */\nfunction Breadcrumb({\n ref,\n \"aria-label\": ariaLabel,\n labels: labelsProp,\n ...props\n}: React.ComponentPropsWithRef<\"nav\"> & {\n separator?: React.ReactNode\n labels?: BreadcrumbLabels\n}) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultBreadcrumbLabels, ctx.breadcrumb, labelsProp)\n\n return <nav ref={ref} aria-label={ariaLabel ?? labels.breadcrumb} data-slot=\"breadcrumb\" {...props} />\n}\n\n/** Ordered list container for breadcrumb items. */\nfunction BreadcrumbList({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"ol\">) {\n return (\n <ol\n ref={ref}\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Individual breadcrumb entry wrapping a link or page indicator. */\nfunction BreadcrumbItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"li\">) {\n return (\n <li\n ref={ref}\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n )\n}\n\n/** Clickable link within a breadcrumb item; supports asChild for custom link components. */\nfunction BreadcrumbLink({\n asChild,\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"a\"> & {\n asChild?: boolean\n}) {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"breadcrumb-link\"\n className={cn(\"text-muted-foreground transition-colors hover:text-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Non-interactive label representing the current page in the breadcrumb trail. */\nfunction BreadcrumbPage({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"span\">) {\n return (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n data-slot=\"breadcrumb-page\"\n className={cn(\"font-medium text-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Visual divider between breadcrumb items; defaults to a chevron icon. */\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n data-slot=\"breadcrumb-separator\"\n className={cn(\"[&>svg]:w-3.5 [&>svg]:h-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n )\n}\n\n/** Ellipsis indicator used when breadcrumb items are collapsed. */\nfunction BreadcrumbEllipsis({\n className,\n label,\n labels: labelsProp,\n ...props\n}: React.ComponentProps<\"span\"> & {\n /** Screen-reader text for the ellipsis. @default \"More\" */\n label?: string\n labels?: BreadcrumbLabels\n}) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultBreadcrumbLabels, ctx.breadcrumb, labelsProp)\n const resolvedLabel = label ?? labels.more\n return (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n data-slot=\"breadcrumb-ellipsis\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">{resolvedLabel}</span>\n </span>\n )\n}\n\nexport {\n type BreadcrumbLabels,\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Groups multiple buttons into a single visual unit with shared borders.\n *\n * @example\n * <ButtonGroup><Button>Left</Button><Button>Right</Button></ButtonGroup>\n */\nfunction ButtonGroup({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const childArray = React.Children.toArray(children)\n\n return (\n <div\n data-slot=\"button-group\"\n className={cn(\"flex -space-x-[2px]\", className)}\n {...props}\n >\n {childArray.map((child, i) => {\n if (!React.isValidElement(child)) return child\n\n const isFirst = i === 0\n const isLast = i === childArray.length - 1\n\n return React.cloneElement(child as React.ReactElement<{ className?: string }>, {\n className: cn(\n (child as React.ReactElement<{ className?: string }>).props.className,\n !isFirst && \"rounded-s-none\",\n !isLast && \"rounded-e-none\"\n ),\n })\n })}\n </div>\n )\n}\n\nexport { ButtonGroup }\n","\"use client\"\n\nimport * as React from \"react\"\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\"\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button, buttonVariants } from \"@/components/ui/button\"\n\n/**\n * Date picker calendar built on react-day-picker with themed styling.\n *\n * @example\n * <Calendar mode=\"single\" selected={date} onSelect={setDate} />\n *\n * @prop buttonVariant - Button variant used for navigation arrows\n */\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"bg-background group/calendar p-3 [--cell-size:--spacing(7)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"relative flex flex-col gap-4 md:flex-row\",\n defaultClassNames.months\n ),\n month: cn(\"flex w-full flex-col gap-4\", defaultClassNames.month),\n nav: cn(\n \"absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) p-0 select-none aria-disabled:opacity-50\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) p-0 select-none aria-disabled:opacity-50\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"bg-popover absolute inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md ps-2 pe-1 text-sm [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"flex-1 rounded-md text-[0.8rem] font-normal text-muted-foreground select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"mt-2 flex w-full\", defaultClassNames.week),\n week_number_header: cn(\n \"w-(--cell-size) select-none\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-muted-foreground select-none text-[0.8rem]\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"group/day relative flex-1 aspect-square h-(--cell-size) min-w-(--cell-size) p-0 text-center select-none [&:first-child[data-selected=true]_button]:rounded-s-md [&:last-child[data-selected=true]_button]:rounded-e-md\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"bg-accent rounded-s-md\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"bg-accent rounded-e-md\", defaultClassNames.range_end),\n today: cn(\n \"border-2 border-primary rounded-md data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n )\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n )\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\n/** Individual day cell button used internally by Calendar. */\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef<HTMLButtonElement>(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-md data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:rounded-md data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n","\"use client\"\n\nimport * as React from \"react\"\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\"\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\nimport { Button } from \"@/components/ui/button\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by Carousel navigation buttons. All keys have English defaults. */\ninterface CarouselLabels {\n previousSlide?: string\n nextSlide?: string\n}\n\nconst defaultCarouselLabels: Required<CarouselLabels> = {\n previousSlide: \"Previous slide\",\n nextSlide: \"Next slide\",\n}\n\n/** Handle returned by Embla Carousel for programmatic control. */\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: \"horizontal\" | \"vertical\"\n setApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\n api: ReturnType<typeof useEmblaCarousel>[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\n/** Hook to access carousel context (scroll methods, state). Must be used inside a Carousel. */\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\")\n }\n\n return context\n}\n\n/**\n * Scrollable content carousel powered by Embla Carousel.\n *\n * @example\n * <Carousel><CarouselContent><CarouselItem>Slide 1</CarouselItem></CarouselContent><CarouselPrevious /><CarouselNext /></Carousel>\n *\n * @prop orientation - Scroll direction: \"horizontal\" | \"vertical\"\n */\nfunction Carousel({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n )\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return\n }\n\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev()\n }, [api])\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext()\n }, [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault()\n scrollPrev()\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault()\n scrollNext()\n }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return\n }\n\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) {\n return\n }\n\n onSelect(api)\n api.on(\"reInit\", onSelect)\n api.on(\"select\", onSelect)\n\n return () => {\n api?.off(\"select\", onSelect)\n }\n }, [api, onSelect])\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n data-slot=\"carousel\"\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n}\n\n/** Scrollable track containing CarouselItem children. */\nfunction CarouselContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n const { carouselRef, orientation } = useCarousel()\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n ref={ref}\n data-slot=\"carousel-content\"\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ms-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n )\n}\n\n/** Individual slide within CarouselContent. */\nfunction CarouselItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n const { orientation } = useCarousel()\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"ps-4\" : \"pt-4\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Button that scrolls the carousel to the previous slide. */\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon\",\n labels: labelsProp,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof Button> & { labels?: CarouselLabels }) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n const ctx = useLabels()\n const labels = resolveLabels(defaultCarouselLabels, ctx.carousel, labelsProp)\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n data-slot=\"carousel-previous\"\n className={cn(\n \"absolute h-8 w-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"-start-12 top-1/2 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">{labels.previousSlide}</span>\n </Button>\n )\n}\n\n/** Button that scrolls the carousel to the next slide. */\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon\",\n labels: labelsProp,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof Button> & { labels?: CarouselLabels }) {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n const ctx = useLabels()\n const labels = resolveLabels(defaultCarouselLabels, ctx.carousel, labelsProp)\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n data-slot=\"carousel-next\"\n className={cn(\n \"absolute h-8 w-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"-end-12 top-1/2 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">{labels.nextSlide}</span>\n </Button>\n )\n}\n\nexport {\n type CarouselApi,\n type CarouselLabels,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as RechartsPrimitive from \"recharts\"\n\nimport { cn } from \"@/lib/utils\"\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const\n\n/** Configuration map defining labels, icons, and colors for each chart data series. */\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode\n icon?: React.ComponentType\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n )\n}\n\ntype ChartContextProps = {\n config: ChartConfig\n}\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null)\n\n/** Hook to access chart configuration context. Must be used inside a ChartContainer. */\nfunction useChart() {\n const context = React.useContext(ChartContext)\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\")\n }\n\n return context\n}\n\n/**\n * Wrapper that provides chart config context and a responsive container for Recharts charts.\n *\n * @example\n * <ChartContainer config={chartConfig}><BarChart data={data}>...</BarChart></ChartContainer>\n *\n * @prop config - ChartConfig mapping series keys to labels, icons, and colors\n */\nfunction ChartContainer({\n id,\n className,\n children,\n config,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & {\n config: ChartConfig\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"]\n}) {\n const uniqueId = React.useId()\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n data-slot=\"chart\"\n className={cn(\n \"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none\",\n className\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n )\n}\n\n/** Injects CSS custom properties for chart colors based on the active theme. */\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme || config.color\n )\n\n if (!colorConfig.length) {\n return null\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color\n return color ? ` --color-${key}: ${color};` : null\n })\n .join(\"\\n\")}\n}\n`\n )\n .join(\"\\n\"),\n }}\n />\n )\n}\n\n/** Recharts Tooltip component, re-exported for convenience. */\nconst ChartTooltip = RechartsPrimitive.Tooltip\n\n/** Themed tooltip content renderer for use with ChartTooltip. */\nfunction ChartTooltipContent({\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n ref,\n}: React.ComponentPropsWithRef<\"div\"> &\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> & {\n hideLabel?: boolean\n hideIndicator?: boolean\n indicator?: \"line\" | \"dot\" | \"dashed\"\n nameKey?: string\n labelKey?: string\n }) {\n const { config } = useChart()\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null\n }\n\n const [item] = payload\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-medium\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n )\n }\n\n if (!value) {\n return null\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ])\n\n if (!active || !payload?.length) {\n return null\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\"\n\n return (\n <div\n ref={ref}\n data-slot=\"chart-tooltip-content\"\n className={cn(\n \"grid min-w-[8rem] items-start gap-1.5 rounded-lg border-2 border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl\",\n className\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const indicatorColor = color || item.payload.fill || item.color\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground\",\n indicator === \"dot\" && \"items-center\"\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n }\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\"\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n}\n\n/** Recharts Legend component, re-exported for convenience. */\nconst ChartLegend = RechartsPrimitive.Legend\n\n/** Themed legend content renderer for use with ChartLegend. */\nfunction ChartLegendContent({\n className,\n hideIcon = false,\n payload,\n verticalAlign = \"bottom\",\n nameKey,\n ref,\n}: React.ComponentPropsWithRef<\"div\"> &\n Pick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & {\n hideIcon?: boolean\n nameKey?: string\n }) {\n const { config } = useChart()\n\n if (!payload?.length) {\n return null\n }\n\n return (\n <div\n ref={ref}\n data-slot=\"chart-legend-content\"\n className={cn(\n \"flex items-center justify-center gap-4\",\n verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\n className\n )}\n >\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n\n return (\n <div\n key={item.value}\n className={cn(\n \"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground\"\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n )\n })}\n </div>\n )\n}\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined\n\n let configLabelKey: string = key\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config]\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A toggleable checkbox input with checked/unchecked states.\n *\n * @example\n * <Checkbox checked={checked} onCheckedChange={setChecked} />\n */\nfunction Checkbox({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n ref={ref}\n data-slot=\"checkbox\"\n className={cn(\n \"grid place-content-center peer h-[18px] w-[18px] shrink-0 rounded border-2 border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=checked]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"grid place-content-center text-current\")}\n >\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst gapMap = {\n none: \"gap-0\",\n xs: \"gap-1\",\n sm: \"gap-2\",\n md: \"gap-4\",\n lg: \"gap-6\",\n xl: \"gap-8\",\n \"2xl\": \"gap-12\",\n} as const\n\nconst alignMap = {\n start: \"items-start\",\n center: \"items-center\",\n end: \"items-end\",\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} as const\n\ntype Gap = keyof typeof gapMap\ntype Align = keyof typeof alignMap\ntype Justify = keyof typeof justifyMap\n\n/** Props accepted by the Cluster component. */\ninterface ClusterProps extends React.ComponentPropsWithRef<\"div\"> {\n gap?: Gap\n align?: Align\n justify?: Justify\n wrap?: boolean\n asChild?: boolean\n}\n\n/**\n * Flexbox layout primitive for horizontal grouping with configurable gap, alignment, and wrapping.\n *\n * @example\n * <Cluster gap=\"md\" justify=\"between\"><Badge>A</Badge><Badge>B</Badge></Cluster>\n *\n * @prop gap - Spacing between items: \"none\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\"\n * @prop align - Cross-axis alignment: \"start\" | \"center\" | \"end\" | \"baseline\"\n * @prop justify - Main-axis justification: \"start\" | \"center\" | \"end\" | \"between\"\n * @prop wrap - Enable flex-wrap (default true)\n * @prop asChild - Merge props onto child element instead of rendering a div\n */\nfunction Cluster({\n gap = \"sm\",\n align = \"center\",\n justify = \"start\",\n wrap = true,\n asChild = false,\n className,\n ref,\n ...props\n}: ClusterProps) {\n const Comp = asChild ? Slot : \"div\"\n return (\n <Comp\n data-slot=\"cluster\"\n className={cn(\n \"flex\",\n gapMap[gap],\n alignMap[align],\n justifyMap[justify],\n wrap && \"flex-wrap\",\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Cluster, type ClusterProps }\n","\"use client\"\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\n/** Root component that manages collapsible open/close state. */\nconst Collapsible = CollapsiblePrimitive.Root\n\n/** Button that toggles the collapsible content visibility. */\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\n\n/** Content panel that expands or collapses based on the Collapsible state. */\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by Dialog. All keys have English defaults. */\ninterface DialogLabels {\n close?: string\n}\n\nconst defaultDialogLabels: Required<DialogLabels> = {\n close: \"Close\",\n}\n\n/** Root dialog component that manages open/close state. */\nconst Dialog = DialogPrimitive.Root\n\n/** Button or element that opens the dialog when clicked. */\nconst DialogTrigger = DialogPrimitive.Trigger\n\n/** Portals dialog content into document body. */\nconst DialogPortal = DialogPrimitive.Portal\n\n/** Button or element that closes the dialog when clicked. */\nconst DialogClose = DialogPrimitive.Close\n\n/** Semi-transparent backdrop overlay behind the dialog. */\nfunction DialogOverlay({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n ref={ref}\n data-slot=\"dialog-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/**\n * Centered dialog panel with overlay, close button, and animated transitions.\n *\n * @example\n * <Dialog>\n * <DialogTrigger>Open</DialogTrigger>\n * <DialogContent><DialogHeader><DialogTitle>Title</DialogTitle></DialogHeader></DialogContent>\n * </Dialog>\n */\nfunction DialogContent({\n className,\n children,\n labels: labelsProp,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DialogPrimitive.Content> & { labels?: DialogLabels }) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultDialogLabels, ctx.dialog, labelsProp)\n\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n data-slot=\"dialog-content\"\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border-2 bg-card text-card-foreground p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">{labels.close}</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n )\n}\n\n/** Container for dialog title and description at the top of the dialog. */\nfunction DialogHeader({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-start\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Container for action buttons at the bottom of the dialog. */\nfunction DialogFooter({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Accessible title heading for the dialog. */\nfunction DialogTitle({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n ref={ref}\n data-slot=\"dialog-title\"\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Accessible description text displayed below the dialog title. */\nfunction DialogDescription({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n ref={ref}\n data-slot=\"dialog-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n type DialogLabels,\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { type DialogProps } from \"@radix-ui/react-dialog\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { Search } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Dialog, DialogContent } from \"@/components/ui/dialog\"\n\n/**\n * Command palette container with built-in search and keyboard navigation.\n *\n * @example\n * <Command><CommandInput /><CommandList><CommandItem>Action</CommandItem></CommandList></Command>\n */\nfunction Command({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n ref={ref}\n data-slot=\"command\"\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-lg border-2 bg-popover text-popover-foreground shadow-md\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Command palette rendered inside a modal dialog. */\nfunction CommandDialog({ children, ...props }: DialogProps) {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\n/** Search input field within a Command palette. */\nfunction CommandInput({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.Input>) {\n return (\n <div className=\"flex items-center border-b-2 px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"me-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n data-slot=\"command-input\"\n className={cn(\n \"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n )\n}\n\n/** Scrollable list container for command items and groups. */\nfunction CommandList({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n ref={ref}\n data-slot=\"command-list\"\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n )\n}\n\n/** Placeholder shown when no command items match the search query. */\nfunction CommandEmpty({\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n ref={ref}\n data-slot=\"command-empty\"\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n )\n}\n\n/** Labeled group of related command items. */\nfunction CommandGroup({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n ref={ref}\n data-slot=\"command-group\"\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Horizontal divider between command groups or items. */\nfunction CommandSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n ref={ref}\n data-slot=\"command-separator\"\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\n/** Selectable action item within a CommandList. */\nfunction CommandItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n ref={ref}\n data-slot=\"command-item\"\n className={cn(\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-surface-interactive data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Keyboard shortcut hint displayed alongside a CommandItem. */\nfunction CommandShortcut({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n \"ms-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root popover component that manages open/close state. */\nconst Popover = PopoverPrimitive.Root\n\n/** Element that toggles the popover open and closed. */\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\n/**\n * Animated floating content panel displayed when a popover is open.\n *\n * @example\n * <Popover>\n * <PopoverTrigger>Open</PopoverTrigger>\n * <PopoverContent>Content here</PopoverContent>\n * </Popover>\n */\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n data-slot=\"popover-content\"\n className={cn(\n \"z-50 w-72 rounded-lg border-2 bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-popover-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nexport { Popover, PopoverTrigger, PopoverContent }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Check, ChevronsUpDown, X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\n\n/** A single selectable option in the Combobox dropdown. */\nexport interface ComboboxOption {\n value: string\n label: string\n}\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by Combobox. All keys have English defaults. */\ninterface ComboboxLabels {\n placeholder?: string\n searchPlaceholder?: string\n noResults?: string\n}\n\nconst defaultComboboxLabels: Required<ComboboxLabels> = {\n placeholder: \"Select...\",\n searchPlaceholder: \"Search...\",\n noResults: \"No results found.\",\n}\n\n\ninterface ComboboxBaseProps {\n options: ComboboxOption[]\n /** @deprecated Use `labels.placeholder` instead. */\n placeholder?: string\n /** @deprecated Use `labels.searchPlaceholder` instead. */\n searchPlaceholder?: string\n /** @deprecated Use `labels.noResults` instead. */\n emptyMessage?: string\n labels?: ComboboxLabels\n className?: string\n disabled?: boolean\n}\n\ninterface ComboboxSingleProps extends ComboboxBaseProps {\n multiple?: false\n value?: string\n onValueChange?: (value: string) => void\n}\n\ninterface ComboboxMultipleProps extends ComboboxBaseProps {\n multiple: true\n value?: string[]\n onValueChange?: (value: string[]) => void\n}\n\ntype ComboboxProps = ComboboxSingleProps | ComboboxMultipleProps\n\n/**\n * Searchable select dropdown supporting single or multi-select modes.\n *\n * @example\n * <Combobox options={[{ value: \"a\", label: \"Alpha\" }]} value={val} onValueChange={setVal} />\n *\n * @prop options - Array of selectable options\n * @prop multiple - Enable multi-select mode when true\n * @prop placeholder - Text shown when no value is selected\n */\nfunction Combobox({\n options,\n // These deprecated props are still accepted and forwarded into the labels\n // API below for backward compatibility (see ComboboxBaseProps).\n /* eslint-disable @typescript-eslint/no-deprecated */\n placeholder,\n searchPlaceholder,\n emptyMessage,\n /* eslint-enable @typescript-eslint/no-deprecated */\n labels: labelsProp,\n className,\n disabled,\n ...props\n}: ComboboxProps) {\n const ctx = useLabels()\n const mergedProp: ComboboxLabels = {\n ...labelsProp,\n ...(placeholder != null && { placeholder }),\n ...(searchPlaceholder != null && { searchPlaceholder }),\n ...(emptyMessage != null && { noResults: emptyMessage }),\n }\n const labels = resolveLabels(defaultComboboxLabels, ctx.combobox, mergedProp)\n const [open, setOpen] = React.useState(false)\n\n const isMultiple = props.multiple === true\n\n const selectedValues = isMultiple\n ? (props.value ?? [])\n : props.value\n ? [props.value]\n : []\n\n const handleSelect = (optionValue: string) => {\n if (isMultiple) {\n const current = props.value ?? []\n const next = current.includes(optionValue)\n ? current.filter((v) => v !== optionValue)\n : [...current, optionValue]\n props.onValueChange?.(next)\n } else {\n const next = optionValue === props.value ? \"\" : optionValue\n props.onValueChange?.(next)\n setOpen(false)\n }\n }\n\n const handleRemove = (optionValue: string, e: React.MouseEvent) => {\n e.stopPropagation()\n if (isMultiple) {\n const current = props.value ?? []\n props.onValueChange?.(current.filter((v) => v !== optionValue))\n }\n }\n\n const displayLabel = () => {\n if (isMultiple && selectedValues.length > 0) {\n return (\n <div className=\"flex flex-wrap gap-1\">\n {selectedValues.map((v) => {\n const opt = options.find((o) => o.value === v)\n return (\n <Badge key={v} variant=\"secondary\" className=\"text-xs px-1.5 py-0\">\n {opt?.label ?? v}\n <button\n type=\"button\"\n className=\"ms-1 rounded-full hover:bg-muted\"\n onClick={(e) => handleRemove(v, e)}\n >\n <X className=\"size-3\" />\n </button>\n </Badge>\n )\n })}\n </div>\n )\n }\n\n if (!isMultiple && props.value) {\n const opt = options.find((o) => o.value === props.value)\n return <span>{opt?.label ?? props.value}</span>\n }\n\n return <span className=\"text-muted-foreground\">{labels.placeholder}</span>\n }\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n data-slot=\"combobox\"\n className={cn(\n \"border-2 rounded-md h-auto min-h-10 px-3 w-full justify-between font-normal\",\n className\n )}\n >\n {displayLabel()}\n <ChevronsUpDown className=\"ms-2 size-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-[--radix-popover-trigger-width] p-0\">\n <Command>\n <CommandInput placeholder={labels.searchPlaceholder} />\n <CommandList>\n <CommandEmpty>{labels.noResults}</CommandEmpty>\n <CommandGroup>\n {options.map((option) => (\n <CommandItem\n key={option.value}\n value={option.value}\n keywords={[option.label]}\n onSelect={() => handleSelect(option.value)}\n >\n <Check\n className={cn(\n \"me-2 size-4\",\n selectedValues.includes(option.value)\n ? \"opacity-100\"\n : \"opacity-0\"\n )}\n />\n {option.label}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport { Combobox, type ComboboxLabels }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root component that manages context menu open/close state. */\nconst ContextMenu = ContextMenuPrimitive.Root\n\n/** Area that opens the context menu on right-click. */\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger\n\n/** Groups related context menu items together. */\nconst ContextMenuGroup = ContextMenuPrimitive.Group\n\n/** Portal that renders context menu content outside the DOM hierarchy. */\nconst ContextMenuPortal = ContextMenuPrimitive.Portal\n\n/** Root for a nested sub-menu within the context menu. */\nconst ContextMenuSub = ContextMenuPrimitive.Sub\n\n/** Groups mutually exclusive radio items in the context menu. */\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup\n\n/** Item that opens a nested sub-menu on hover. */\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\n data-slot=\"context-menu-sub-trigger\"\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto h-4 w-4\" />\n </ContextMenuPrimitive.SubTrigger>\n )\n}\n\n/** Dropdown panel for a nested sub-menu. */\nfunction ContextMenuSubContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.SubContent>) {\n return (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n data-slot=\"context-menu-sub-content\"\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-context-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Positioned dropdown panel containing the context menu items. */\nfunction ContextMenuContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.Content>) {\n return (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n data-slot=\"context-menu-content\"\n className={cn(\n \"z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-context-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n )\n}\n\n/** Clickable action item within the context menu. */\nfunction ContextMenuItem({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.Item\n ref={ref}\n data-slot=\"context-menu-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-surface-interactive focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Context menu item with a toggleable checkbox indicator. */\nfunction ContextMenuCheckboxItem({\n className,\n children,\n checked,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.CheckboxItem>) {\n return (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n data-slot=\"context-menu-checkbox-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n )\n}\n\n/** Context menu item with a radio indicator for single-select groups. */\nfunction ContextMenuRadioItem({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.RadioItem>) {\n return (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n data-slot=\"context-menu-radio-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n )\n}\n\n/** Non-interactive label used to title a group of context menu items. */\nfunction ContextMenuLabel({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.Label\n ref={ref}\n data-slot=\"context-menu-label\"\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold text-foreground\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Horizontal divider between context menu sections. */\nfunction ContextMenuSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.Separator>) {\n return (\n <ContextMenuPrimitive.Separator\n ref={ref}\n data-slot=\"context-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\n/** Keyboard shortcut hint displayed alongside a context menu item. */\nfunction ContextMenuShortcut({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"context-menu-shortcut\"\n className={cn(\n \"ms-auto text-xs tracking-widest text-muted-foreground\",\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","\"use client\"\n\nimport * as React from \"react\"\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root dropdown menu component that manages open/close state. */\nconst DropdownMenu = DropdownMenuPrimitive.Root\n\n/** Button or element that toggles the dropdown menu. */\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\n\n/** Groups related dropdown menu items together. */\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group\n\n/** Portals dropdown menu content into document body. */\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\n\n/** Root component for a nested submenu within a dropdown. */\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub\n\n/** Groups radio items so only one can be selected at a time. */\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup\n\n/** Menu item that opens a nested submenu on hover or focus. */\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n data-slot=\"dropdown-menu-sub-trigger\"\n className={cn(\n \"flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n )\n}\n\n/** Animated content panel for a nested submenu. */\nfunction DropdownMenuSubContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-dropdown-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n )\n}\n\n/**\n * Animated popover panel containing the dropdown menu items.\n *\n * @example\n * <DropdownMenu>\n * <DropdownMenuTrigger>Open</DropdownMenuTrigger>\n * <DropdownMenuContent><DropdownMenuItem>Action</DropdownMenuItem></DropdownMenuContent>\n * </DropdownMenu>\n */\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n data-slot=\"dropdown-menu-content\"\n className={cn(\n \"z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-dropdown-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n )\n}\n\n/** Clickable item within a dropdown menu. */\nfunction DropdownMenuItem({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.Item\n ref={ref}\n data-slot=\"dropdown-menu-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-surface-interactive focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Menu item with a checkbox indicator for toggling boolean options. */\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n )\n}\n\n/** Menu item with a radio indicator for single-select groups. */\nfunction DropdownMenuRadioItem({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n )\n}\n\n/** Non-interactive label used to title a group of menu items. */\nfunction DropdownMenuLabel({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.Label\n ref={ref}\n data-slot=\"dropdown-menu-label\"\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Horizontal divider line between groups of menu items. */\nfunction DropdownMenuSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\n/** Right-aligned keyboard shortcut hint displayed within a menu item. */\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\"ms-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Scrollable data table wrapper that renders a full-width HTML table.\n *\n * @example\n * <Table><TableHeader>...</TableHeader><TableBody>...</TableBody></Table>\n */\nfunction Table({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"table\">) {\n return (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n )\n}\n\n/** Table head section that applies a bottom border to its rows. */\nfunction TableHeader({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"thead\">) {\n return (\n <thead ref={ref} data-slot=\"table-header\" className={cn(\"[&_tr]:border-b-2\", className)} {...props} />\n )\n}\n\n/** Table body section that removes the border from the last row. */\nfunction TableBody({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"tbody\">) {\n return (\n <tbody\n ref={ref}\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n )\n}\n\n/** Table footer with a muted background and top border. */\nfunction TableFooter({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"tfoot\">) {\n return (\n <tfoot\n ref={ref}\n data-slot=\"table-footer\"\n className={cn(\n \"border-t-2 bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Table row with hover highlight and selected state styling. */\nfunction TableRow({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"tr\">) {\n return (\n <tr\n ref={ref}\n data-slot=\"table-row\"\n className={cn(\n \"border-b-2 last:border-b-0 transition-colors hover:bg-surface-interactive data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Table header cell with uppercase monospace label styling. */\nfunction TableHead({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"th\">) {\n return (\n <th\n ref={ref}\n data-slot=\"table-head\"\n className={cn(\n \"h-12 px-4 text-start align-middle bg-surface-sunken font-mono text-xs uppercase tracking-wider text-muted-foreground [&:has([role=checkbox])]:pe-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Standard table data cell with consistent padding. */\nfunction TableCell({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"td\">) {\n return (\n <td\n ref={ref}\n data-slot=\"table-cell\"\n className={cn(\"p-4 align-middle [&:has([role=checkbox])]:pe-0\", className)}\n {...props}\n />\n )\n}\n\n/** Table caption rendered below the table in muted text. */\nfunction TableCaption({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"caption\">) {\n return (\n <caption\n ref={ref}\n data-slot=\"table-caption\"\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport {\n type ColumnDef,\n type ColumnFiltersState,\n type SortingState,\n type VisibilityState,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\"\nimport { ArrowDown, ArrowUp, ArrowUpDown, Settings2 } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Checkbox } from \"@/components/ui/checkbox\"\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/ui/table\"\nimport { resolveLabels as resolveLabelsGeneric } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by DataTable sub-components. All keys have English defaults. */\ninterface DataTableLabels {\n previous?: string\n next?: string\n noResults?: string\n view?: string\n toggleColumns?: string\n selectAll?: string\n selectRow?: string\n rowsSelected?: (selected: number, total: number) => string\n pageOf?: (page: number, total: number) => string\n sortedAscending?: (title: string) => string\n sortedDescending?: (title: string) => string\n notSorted?: (title: string) => string\n}\n\nconst defaultLabels: Required<DataTableLabels> = {\n previous: \"Previous\",\n next: \"Next\",\n noResults: \"No results.\",\n view: \"View\",\n toggleColumns: \"Toggle columns\",\n selectAll: \"Select all\",\n selectRow: \"Select row\",\n rowsSelected: (selected, total) =>\n `${selected} of ${total} row(s) selected.`,\n pageOf: (page, total) => `Page ${page} of ${total}`,\n sortedAscending: (title) =>\n `${title}, sorted ascending. Click to sort descending.`,\n sortedDescending: (title) =>\n `${title}, sorted descending. Click to remove sort.`,\n notSorted: (title) =>\n `${title}, not sorted. Click to sort ascending.`,\n}\n\n\n// ─── DataTableColumnHeader ───────────────────────────────────────────\n\ninterface DataTableColumnHeaderProps<TData, TValue>\n extends React.HTMLAttributes<HTMLDivElement> {\n column: import(\"@tanstack/react-table\").Column<TData, TValue>\n title: string\n labels?: DataTableLabels\n}\n\n/**\n * Sortable column header button that toggles sort direction on click.\n *\n * @example\n * <DataTableColumnHeader column={column} title=\"Name\" />\n *\n * @prop column - TanStack Table column instance\n * @prop title - Display text for the header\n */\nfunction DataTableColumnHeader<TData, TValue>({\n column,\n title,\n className,\n labels: labelsProp,\n}: DataTableColumnHeaderProps<TData, TValue>) {\n const ctx = useLabels()\n const labels = resolveLabelsGeneric(defaultLabels, ctx.dataTable, labelsProp)\n\n if (!column.getCanSort()) {\n return <div className={cn(className)}>{title}</div>\n }\n\n const sorted = column.getIsSorted()\n\n return (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={cn(\"-ms-3 h-8 font-mono text-xs\", className)}\n onClick={() => column.toggleSorting(sorted === \"asc\")}\n aria-label={\n sorted === \"asc\"\n ? labels.sortedAscending(title)\n : sorted === \"desc\"\n ? labels.sortedDescending(title)\n : labels.notSorted(title)\n }\n >\n {title}\n {sorted === \"asc\" ? (\n <ArrowUp className=\"ms-2 size-3.5\" aria-hidden=\"true\" />\n ) : sorted === \"desc\" ? (\n <ArrowDown className=\"ms-2 size-3.5\" aria-hidden=\"true\" />\n ) : (\n <ArrowUpDown className=\"ms-2 size-3.5\" aria-hidden=\"true\" />\n )}\n </Button>\n )\n}\n\n// ─── DataTableViewOptions ────────────────────────────────────────────\n\ninterface DataTableViewOptionsProps<TData> {\n table: import(\"@tanstack/react-table\").Table<TData>\n labels?: DataTableLabels\n}\n\n/**\n * Dropdown menu for toggling column visibility in a data table.\n *\n * @example\n * <DataTableViewOptions table={table} />\n *\n * @prop table - TanStack Table instance\n */\nfunction DataTableViewOptions<TData>({\n table,\n labels: labelsProp,\n}: DataTableViewOptionsProps<TData>) {\n const ctx = useLabels()\n const labels = resolveLabelsGeneric(defaultLabels, ctx.dataTable, labelsProp)\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\" size=\"sm\" className=\"ms-auto h-8 border-2\">\n <Settings2 className=\"me-2 size-4\" />\n <span className=\"font-mono text-xs\">{labels.view}</span>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-40\">\n <DropdownMenuLabel className=\"font-mono text-xs\">\n {labels.toggleColumns}\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n {table\n .getAllColumns()\n .filter(\n (column) =>\n typeof column.accessorFn !== \"undefined\" && column.getCanHide()\n )\n .map((column) => (\n <DropdownMenuCheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(value) => column.toggleVisibility(!!value)}\n >\n {column.id}\n </DropdownMenuCheckboxItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\n// ─── DataTablePagination ─────────────────────────────────────────────\n\ninterface DataTablePaginationProps<TData> {\n table: import(\"@tanstack/react-table\").Table<TData>\n labels?: DataTableLabels\n}\n\n/**\n * Pagination controls displaying row selection count and page navigation.\n *\n * @example\n * <DataTablePagination table={table} />\n *\n * @prop table - TanStack Table instance\n */\nfunction DataTablePagination<TData>({\n table,\n labels: labelsProp,\n}: DataTablePaginationProps<TData>) {\n const ctx = useLabels()\n const labels = resolveLabelsGeneric(defaultLabels, ctx.dataTable, labelsProp)\n\n return (\n <div className=\"flex items-center justify-between px-2 py-4\">\n <div className=\"flex-1 font-mono text-xs text-muted-foreground\">\n {labels.rowsSelected(\n table.getFilteredSelectedRowModel().rows.length,\n table.getFilteredRowModel().rows.length\n )}\n </div>\n <div className=\"flex items-center gap-2\">\n <div className=\"font-mono text-xs text-muted-foreground\">\n {labels.pageOf(\n table.getState().pagination.pageIndex + 1,\n table.getPageCount()\n )}\n </div>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 border-2\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n aria-label={labels.previous}\n >\n {labels.previous}\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 border-2\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n aria-label={labels.next}\n >\n {labels.next}\n </Button>\n </div>\n </div>\n )\n}\n\n// ─── DataTableToolbar ────────────────────────────────────────────────\n\ninterface DataTableToolbarProps {\n children?: React.ReactNode\n className?: string\n}\n\n/**\n * Horizontal toolbar container for data table filters and actions.\n *\n * @example\n * <DataTableToolbar><Input placeholder=\"Filter...\" /></DataTableToolbar>\n */\nfunction DataTableToolbar({ children, className }: DataTableToolbarProps) {\n return (\n <div\n data-slot=\"data-table-toolbar\"\n className={cn(\"flex items-center justify-between py-4\", className)}\n >\n {children}\n </div>\n )\n}\n\n// ─── Selection column helper ─────────────────────────────────────────\n\n/**\n * Creates a checkbox selection column definition for use with TanStack Table.\n *\n * @example\n * const columns = [createSelectColumn<MyData>(), ...otherColumns]\n */\nfunction createSelectColumn<TData>(\n labels?: DataTableLabels\n): ColumnDef<TData> {\n const resolved = resolveLabelsGeneric(defaultLabels, undefined, labels)\n return {\n id: \"select\",\n header: ({ table }) => (\n <Checkbox\n checked={\n table.getIsAllPageRowsSelected() ||\n (table.getIsSomePageRowsSelected() && \"indeterminate\")\n }\n onCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}\n aria-label={resolved.selectAll}\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={(value) => row.toggleSelected(!!value)}\n aria-label={resolved.selectRow}\n />\n ),\n enableSorting: false,\n enableHiding: false,\n }\n}\n\n// ─── DataTable ───────────────────────────────────────────────────────\n\ninterface DataTableProps<TData, TValue> {\n columns: ColumnDef<TData, TValue>[]\n data: TData[]\n className?: string\n toolbar?: React.ReactNode\n /** Translatable strings for all DataTable sub-components. */\n labels?: DataTableLabels\n}\n\n/**\n * Full-featured data table with sorting, filtering, pagination, and row selection.\n *\n * @example\n * <DataTable columns={columns} data={data} toolbar={<DataTableToolbar>...</DataTableToolbar>} />\n *\n * @prop columns - TanStack Table column definitions\n * @prop data - Array of row data\n * @prop toolbar - Optional toolbar rendered above the table\n */\nfunction DataTable<TData, TValue>({\n columns,\n data,\n className,\n toolbar,\n labels: labelsProp,\n}: DataTableProps<TData, TValue>) {\n const ctx = useLabels()\n const labels = resolveLabelsGeneric(defaultLabels, ctx.dataTable, labelsProp)\n const [sorting, setSorting] = React.useState<SortingState>([])\n const [columnFilters, setColumnFilters] =\n React.useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] =\n React.useState<VisibilityState>({})\n const [rowSelection, setRowSelection] = React.useState({})\n\n // eslint-disable-next-line react-hooks/incompatible-library\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection,\n },\n })\n\n return (\n <div data-slot=\"data-table\" className={className}>\n {toolbar}\n <div className=\"border-2 rounded-lg overflow-hidden\">\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id} className=\"bg-surface-sunken\">\n {headerGroup.headers.map((header) => (\n <TableHead key={header.id}>\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n className=\"data-[state=selected]:bg-accent\"\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={columns.length}\n className=\"h-24 text-center text-muted-foreground\"\n >\n {labels.noResults}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <DataTablePagination table={table} labels={labelsProp} />\n </div>\n )\n}\n\nexport {\n DataTable,\n DataTableColumnHeader,\n DataTablePagination,\n DataTableToolbar,\n DataTableViewOptions,\n createSelectColumn,\n}\n\nexport type { DataTableLabels }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { CalendarIcon } from \"lucide-react\"\nimport type { DateRange } from \"react-day-picker\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Calendar } from \"@/components/ui/calendar\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by DatePicker / DateRangePicker. All keys have English defaults. */\ninterface DatePickerLabels {\n placeholder?: string\n rangePlaceholder?: string\n locale?: string\n formatDate?: (date: Date) => string\n formatDateShort?: (date: Date) => string\n}\n\nfunction defaultFormatDate(date: Date, locale: string): string {\n return new Intl.DateTimeFormat(locale, {\n month: \"long\",\n day: \"numeric\",\n year: \"numeric\",\n }).format(date)\n}\n\nfunction defaultFormatDateShort(date: Date, locale: string): string {\n return new Intl.DateTimeFormat(locale, {\n month: \"short\",\n day: \"numeric\",\n year: \"numeric\",\n }).format(date)\n}\n\nconst defaultDatePickerLabels: Required<DatePickerLabels> = {\n placeholder: \"Pick a date\",\n rangePlaceholder: \"Pick a date range\",\n locale: \"en-US\",\n formatDate: (date) => defaultFormatDate(date, \"en-US\"),\n formatDateShort: (date) => defaultFormatDateShort(date, \"en-US\"),\n}\n\nfunction resolveDatePickerLabels(\n context?: Partial<DatePickerLabels>,\n prop?: Partial<DatePickerLabels>,\n): Required<DatePickerLabels> {\n const merged = resolveLabels(defaultDatePickerLabels, context, prop)\n const locale = merged.locale\n return {\n ...merged,\n formatDate: prop?.formatDate ?? context?.formatDate ?? ((date: Date) => defaultFormatDate(date, locale)),\n formatDateShort: prop?.formatDateShort ?? context?.formatDateShort ?? ((date: Date) => defaultFormatDateShort(date, locale)),\n }\n}\n\ninterface DatePickerProps {\n date?: Date\n onDateChange?: (date: Date | undefined) => void\n /** @deprecated Use `labels.placeholder` instead. */\n placeholder?: string\n labels?: DatePickerLabels\n className?: string\n disabled?: boolean\n}\n\n/**\n * Single-date picker with a popover calendar and formatted display.\n *\n * @example\n * <DatePicker date={date} onDateChange={setDate} placeholder=\"Select date\" />\n *\n * @prop date - Currently selected date\n * @prop onDateChange - Callback when a date is selected\n * @prop placeholder - Text shown when no date is selected\n */\nfunction DatePicker({\n date,\n onDateChange,\n // Deprecated; forwarded into the labels API below for backward compatibility.\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n placeholder,\n labels: labelsProp,\n className,\n disabled,\n}: DatePickerProps) {\n const ctx = useLabels()\n const mergedProp: DatePickerLabels = {\n ...labelsProp,\n ...(placeholder != null && { placeholder }),\n }\n const labels = resolveDatePickerLabels(ctx.datePicker, mergedProp)\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n disabled={disabled}\n data-slot=\"date-picker\"\n className={cn(\n \"border-2 rounded-md h-10 px-3 w-full justify-start gap-2 font-normal\",\n className\n )}\n >\n <CalendarIcon className=\"size-4 text-muted-foreground\" aria-hidden=\"true\" />\n {date ? (\n <span>{labels.formatDate(date)}</span>\n ) : (\n <span className=\"text-muted-foreground\">{labels.placeholder}</span>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n selected={date}\n onSelect={onDateChange}\n />\n </PopoverContent>\n </Popover>\n )\n}\n\ninterface DateRangePickerProps {\n dateRange?: DateRange\n onDateRangeChange?: (range: DateRange | undefined) => void\n /** @deprecated Use `labels.rangePlaceholder` instead. */\n placeholder?: string\n labels?: DatePickerLabels\n className?: string\n disabled?: boolean\n}\n\n/**\n * Date range picker with a two-month popover calendar.\n *\n * @example\n * <DateRangePicker dateRange={range} onDateRangeChange={setRange} />\n *\n * @prop dateRange - Currently selected date range\n * @prop onDateRangeChange - Callback when the range changes\n * @prop placeholder - Text shown when no range is selected\n */\nfunction DateRangePicker({\n dateRange,\n onDateRangeChange,\n // Deprecated; forwarded into the labels API below for backward compatibility.\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n placeholder,\n labels: labelsProp,\n className,\n disabled,\n}: DateRangePickerProps) {\n const ctx = useLabels()\n const mergedProp: DatePickerLabels = {\n ...labelsProp,\n ...(placeholder != null && { rangePlaceholder: placeholder }),\n }\n const labels = resolveDatePickerLabels(ctx.datePicker, mergedProp)\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n disabled={disabled}\n data-slot=\"date-range-picker\"\n className={cn(\n \"border-2 rounded-md h-10 px-3 w-full justify-start gap-2 font-normal\",\n className\n )}\n >\n <CalendarIcon className=\"size-4 text-muted-foreground\" aria-hidden=\"true\" />\n {dateRange?.from ? (\n <span>\n {labels.formatDateShort(dateRange.from)}\n {dateRange.to && ` – ${labels.formatDateShort(dateRange.to)}`}\n </span>\n ) : (\n <span className=\"text-muted-foreground\">{labels.rangePlaceholder}</span>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"range\"\n selected={dateRange}\n onSelect={onDateRangeChange}\n numberOfMonths={2}\n />\n </PopoverContent>\n </Popover>\n )\n}\n\nexport { DatePicker, DateRangePicker, type DatePickerLabels }\n","\"use client\"\n\nimport * as React from \"react\"\nimport {\n DirectionProvider as RadixDirectionProvider,\n useDirection as useRadixDirection,\n} from \"@radix-ui/react-direction\"\n\n/** Text direction, either left-to-right or right-to-left. */\ntype Direction = \"ltr\" | \"rtl\"\n\n/**\n * Context provider that sets the text direction for descendant components.\n * All Radix-based components in this library read from this provider automatically.\n *\n * @example\n * <DirectionProvider dir=\"rtl\">{children}</DirectionProvider>\n *\n * @prop dir - Text direction, defaults to \"ltr\"\n */\nfunction DirectionProvider({\n dir = \"ltr\",\n children,\n}: {\n dir?: Direction\n children: React.ReactNode\n}) {\n return (\n <RadixDirectionProvider dir={dir}>\n {children}\n </RadixDirectionProvider>\n )\n}\n\n/** Hook that returns the current text direction from DirectionProvider context. */\nfunction useDirection(): Direction {\n return useRadixDirection()\n}\n\nexport { DirectionProvider, useDirection }\nexport type { Direction }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface DividerProps extends React.ComponentPropsWithRef<\"div\"> {\n orientation?: \"horizontal\" | \"vertical\"\n label?: string\n}\n\n/**\n * Visual separator rendered as a horizontal rule, vertical line, or labeled divider.\n *\n * @example\n * <Divider />\n * <Divider label=\"OR\" />\n * <Divider orientation=\"vertical\" />\n *\n * @prop orientation - \"horizontal\" (default) or \"vertical\"\n * @prop label - Optional centered text within a horizontal divider\n */\nfunction Divider({\n orientation = \"horizontal\",\n label,\n className,\n ref,\n ...props\n}: DividerProps) {\n if (orientation === \"vertical\") {\n return (\n <div\n data-slot=\"divider\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n className={cn(\"border-s-2 border-border self-stretch\", className)}\n ref={ref}\n {...props}\n />\n )\n }\n\n if (label) {\n return (\n <div\n data-slot=\"divider\"\n role=\"separator\"\n aria-orientation=\"horizontal\"\n className={cn(\"flex items-center w-full\", className)}\n ref={ref}\n {...props}\n >\n <div className=\"flex-1 border-t-2 border-border\" />\n <span className=\"text-xs text-muted-foreground font-mono uppercase tracking-wider px-3\">\n {label}\n </span>\n <div className=\"flex-1 border-t-2 border-border\" />\n </div>\n )\n }\n\n return (\n <hr\n data-slot=\"divider\"\n className={cn(\"border-t-2 border-border w-full\", className)}\n ref={ref as React.Ref<HTMLHRElement>}\n {...(props as React.ComponentPropsWithRef<\"hr\">)}\n />\n )\n}\n\nexport { Divider, type DividerProps }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Drawer as DrawerPrimitive } from \"vaul\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Root drawer component powered by Vaul, slides up from the bottom of the viewport.\n *\n * @example\n * <Drawer>\n * <DrawerTrigger>Open</DrawerTrigger>\n * <DrawerContent><DrawerHeader><DrawerTitle>Title</DrawerTitle></DrawerHeader></DrawerContent>\n * </Drawer>\n */\nfunction Drawer({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return (\n <DrawerPrimitive.Root\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n )\n}\n\n/** Button or element that opens the drawer when clicked. */\nconst DrawerTrigger = DrawerPrimitive.Trigger\n\n/** Portals drawer content into document body. */\nconst DrawerPortal = DrawerPrimitive.Portal\n\n/** Button or element that closes the drawer when clicked. */\nconst DrawerClose = DrawerPrimitive.Close\n\n/** Semi-transparent backdrop overlay behind the drawer. */\nfunction DrawerOverlay({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DrawerPrimitive.Overlay>) {\n return (\n <DrawerPrimitive.Overlay\n ref={ref}\n data-slot=\"drawer-overlay\"\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n {...props}\n />\n )\n}\n\n/** Drawer panel that slides up from the bottom with a drag handle. */\nfunction DrawerContent({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DrawerPrimitive.Content>) {\n return (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n data-slot=\"drawer-content\"\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border-2 border-b-0 bg-background\",\n className\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n )\n}\n\n/** Container for drawer title and description. */\nfunction DrawerHeader({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-start\", className)}\n {...props}\n />\n )\n}\n\n/** Container for action buttons at the bottom of the drawer. */\nfunction DrawerFooter({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\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\n/** Accessible title heading for the drawer. */\nfunction DrawerTitle({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DrawerPrimitive.Title>) {\n return (\n <DrawerPrimitive.Title\n ref={ref}\n data-slot=\"drawer-title\"\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Accessible description text displayed below the drawer title. */\nfunction DrawerDescription({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DrawerPrimitive.Description>) {\n return (\n <DrawerPrimitive.Description\n ref={ref}\n data-slot=\"drawer-description\"\n className={cn(\"text-sm text-muted-foreground\", 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}\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Centered empty state container for when no content is available.\n *\n * @example\n * <Empty>\n * <EmptyIcon><InboxIcon /></EmptyIcon>\n * <EmptyTitle>No results</EmptyTitle>\n * <EmptyDescription>Try adjusting your filters.</EmptyDescription>\n * <EmptyAction><Button>Reset</Button></EmptyAction>\n * </Empty>\n */\nfunction Empty({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n \"flex w-full flex-col items-center justify-center py-12 px-6 text-center\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Icon container displayed above the empty state title. */\nfunction EmptyIcon({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"empty-icon\"\n className={cn(\"text-muted-foreground mb-4 [&_svg]:size-12\", className)}\n {...props}\n >\n {children}\n </div>\n )\n}\n\n/** Heading text for the empty state. */\nfunction EmptyTitle({\n className,\n ...props\n}: React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3\n data-slot=\"empty-title\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Muted description text below the empty state title. */\nfunction EmptyDescription({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n data-slot=\"empty-description\"\n className={cn(\n \"text-sm text-muted-foreground max-w-sm mx-auto mt-1\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Container for a call-to-action button in the empty state. */\nfunction EmptyAction({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"empty-action\"\n className={cn(\"mt-4\", className)}\n {...props}\n />\n )\n}\n\nexport { Empty, EmptyIcon, EmptyTitle, EmptyDescription, EmptyAction }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Label text variants. Use with cn(labelVariants()) for non-label elements. */\nconst labelVariants = cva(\n \"text-sm font-semibold leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\n/**\n * Accessible label component built on Radix UI Label primitive.\n *\n * @example\n * <Label htmlFor=\"email\">Email</Label>\n */\nfunction Label({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>) {\n return (\n <LabelPrimitive.Root\n ref={ref}\n data-slot=\"label\"\n className={cn(labelVariants(), className)}\n {...props}\n />\n )\n}\n\nexport { Label }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Label } from \"@/components/ui/label\"\n\ninterface FieldContextValue {\n id: string\n hintId: string\n errorId: string\n error: boolean\n}\n\nconst FieldContext = React.createContext<FieldContextValue | null>(null)\n\n/** Hook that returns the current Field context (id, error state, aria IDs). */\nfunction useFieldContext() {\n return React.useContext(FieldContext)\n}\n\ninterface FieldProps extends React.HTMLAttributes<HTMLDivElement> {\n error?: boolean\n id?: string\n}\n\n/**\n * Form field wrapper that provides shared context for label, hint, and error linking.\n *\n * @example\n * <Field error={!!errors.name}>\n * <FieldLabel>Name</FieldLabel>\n * <Input />\n * <FieldError>{errors.name}</FieldError>\n * </Field>\n *\n * @prop error - Whether the field is in an error state\n */\nfunction Field({ className, error = false, id: idProp, children, ...props }: FieldProps) {\n const generatedId = React.useId()\n const id = idProp ?? generatedId\n\n const ctx = React.useMemo<FieldContextValue>(\n () => ({\n id,\n hintId: `${id}-hint`,\n errorId: `${id}-error`,\n error,\n }),\n [id, error]\n )\n\n return (\n <FieldContext.Provider value={ctx}>\n <div\n data-slot=\"field\"\n className={cn(\n \"space-y-2\",\n error &&\n \"[&_input]:border-status-error [&_textarea]:border-status-error\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n </FieldContext.Provider>\n )\n}\n\n/** Label automatically linked to the parent Field's input via htmlFor. */\nfunction FieldLabel({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<typeof Label>) {\n const ctx = useFieldContext()\n\n return (\n <Label\n data-slot=\"field-label\"\n htmlFor={ctx?.id}\n className={cn(\n \"text-sm font-semibold\",\n ctx?.error && \"text-status-error-text\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Muted helper text displayed below a field input. */\nfunction FieldHint({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n const ctx = useFieldContext()\n\n return (\n <p\n data-slot=\"field-hint\"\n id={ctx?.hintId}\n className={cn(\"text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Error message that renders only when children are provided, with role=\"alert\". */\nfunction FieldError({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n const ctx = useFieldContext()\n\n if (!children) return null\n\n return (\n <p\n data-slot=\"field-error\"\n id={ctx?.errorId}\n role=\"alert\"\n className={cn(\n \"text-xs text-status-error-text font-medium\",\n className\n )}\n {...props}\n >\n {children}\n </p>\n )\n}\n\nexport { Field, FieldLabel, FieldHint, FieldError, useFieldContext }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface FieldsetProps extends React.ComponentPropsWithRef<\"fieldset\"> {\n legend: string\n}\n\n/**\n * Accessible fieldset wrapper with a visible legend label.\n *\n * @example\n * <Fieldset legend=\"Personal Info\"><Input /><Input /></Fieldset>\n *\n * @prop legend - Text displayed as the fieldset legend\n */\nfunction Fieldset({\n legend,\n className,\n children,\n ref,\n ...props\n}: FieldsetProps) {\n return (\n <fieldset\n data-slot=\"fieldset\"\n className={cn(\"border-0 p-0 m-0 space-y-2\", className)}\n ref={ref}\n {...props}\n >\n <legend className=\"text-sm font-semibold mb-2\">{legend}</legend>\n {children}\n </fieldset>\n )\n}\n\nexport { Fieldset }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Stack } from \"./stack\"\n\ntype Gap = \"none\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\"\n\ninterface FormProps extends React.ComponentPropsWithRef<\"form\"> {\n gap?: Gap\n}\n\n/**\n * Form element with vertical stack layout and configurable gap spacing.\n *\n * @example\n * <Form gap=\"lg\" onSubmit={handleSubmit}><Field>...</Field></Form>\n *\n * @prop gap - Vertical spacing between children (default \"xl\")\n */\nfunction Form({\n gap = \"xl\",\n className,\n children,\n ref,\n ...props\n}: FormProps) {\n return (\n <form\n data-slot=\"form\"\n className={cn(className)}\n ref={ref}\n {...props}\n >\n <Stack gap={gap}>{children}</Stack>\n </form>\n )\n}\n\nexport { Form }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Cluster } from \"./cluster\"\n\n/**\n * Horizontal action bar for form submit/cancel buttons, separated by a top border.\n *\n * @example\n * <FormActions>\n * <Button variant=\"outline\">Cancel</Button>\n * <Button>Save</Button>\n * </FormActions>\n */\nfunction FormActions({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const childArray = React.Children.toArray(children)\n const hasSubComponents = childArray.some(\n (child) =>\n React.isValidElement(child) &&\n typeof child.type === \"function\" &&\n ((child.type as { name?: string }).name === \"FormActionsPrimary\" ||\n (child.type as { name?: string }).name === \"FormActionsSecondary\")\n )\n\n if (!hasSubComponents) {\n return (\n <div\n data-slot=\"form-actions\"\n className={cn(\n \"flex items-center justify-between border-t-2 pt-6 mt-6\",\n className\n )}\n {...props}\n >\n <Cluster gap=\"sm\" justify=\"end\" className=\"ml-auto\">\n {children}\n </Cluster>\n </div>\n )\n }\n\n return (\n <div\n data-slot=\"form-actions\"\n className={cn(\n \"flex items-center justify-between border-t-2 pt-6 mt-6\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\n/** Left-aligned container for secondary form actions (e.g., delete or reset). */\nfunction FormActionsSecondary({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"form-actions-secondary\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n )\n}\n\n/** Right-aligned container for primary form actions (e.g., submit). */\nfunction FormActionsPrimary({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"form-actions-primary\"\n className={cn(\"flex items-center gap-2 ml-auto\", className)}\n {...props}\n />\n )\n}\n\nexport { FormActions, FormActionsSecondary, FormActionsPrimary }\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst gapMap = {\n none: \"gap-0\",\n xs: \"gap-1\",\n sm: \"gap-2\",\n md: \"gap-4\",\n lg: \"gap-6\",\n xl: \"gap-8\",\n \"2xl\": \"gap-12\",\n} as const\n\nconst colsMap = {\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} as const\n\ntype Gap = keyof typeof gapMap\ntype Columns = 1 | 2 | 3 | 4 | 5 | 6 | \"auto-fill\" | \"auto-fit\"\n\ninterface GridProps extends React.ComponentPropsWithRef<\"div\"> {\n columns?: Columns\n gap?: Gap\n minChildWidth?: string\n asChild?: boolean\n}\n\n/**\n * CSS Grid layout component with configurable columns, gap, and auto-fill/auto-fit modes.\n *\n * @example\n * <Grid columns={3} gap=\"lg\"><Card /><Card /><Card /></Grid>\n * <Grid columns=\"auto-fill\" minChildWidth=\"200px\" gap=\"md\">...</Grid>\n *\n * @prop columns - Number of columns (1-6) or \"auto-fill\"/\"auto-fit\"\n * @prop gap - Gap size between grid items\n * @prop minChildWidth - Minimum child width for auto-fill/auto-fit columns\n * @prop asChild - Merge props onto child element via Slot\n */\nfunction Grid({\n columns = 1,\n gap = \"md\",\n minChildWidth,\n asChild = false,\n className,\n style,\n ref,\n ...props\n}: GridProps) {\n const Comp = asChild ? Slot : \"div\"\n\n const isAuto = columns === \"auto-fill\" || columns === \"auto-fit\"\n const colClass = isAuto\n ? columns === \"auto-fill\"\n ? \"grid-auto-fill\"\n : \"grid-auto-fit\"\n : colsMap[columns]\n\n return (\n <Comp\n data-slot=\"grid\"\n className={cn(\"grid\", colClass, gapMap[gap], className)}\n style={\n isAuto && minChildWidth\n ? { \"--grid-min\": minChildWidth, ...style } as React.CSSProperties\n : style\n }\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Grid, type GridProps }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Stack } from \"./stack\"\nimport { Grid } from \"./grid\"\n\n/**\n * Fieldset-based section for grouping related form fields with a header.\n *\n * @example\n * <FormSection>\n * <FormSectionHeader><FormSectionTitle>Account</FormSectionTitle></FormSectionHeader>\n * <FormSectionContent><Field>...</Field></FormSectionContent>\n * </FormSection>\n */\nfunction FormSection({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"form-section\"\n className={cn(\"space-y-6 border-0 p-0 m-0\", className)}\n ref={ref}\n {...props}\n />\n )\n}\n\n/** Container for the section title and description. */\nfunction FormSectionHeader({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"form-section-header\"\n className={cn(\"space-y-1\", className)}\n {...props}\n />\n )\n}\n\n/** Legend element used as the section heading. */\nfunction FormSectionTitle({\n className,\n ...props\n}: React.HTMLAttributes<HTMLLegendElement>) {\n return (\n <legend\n data-slot=\"form-section-title\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Muted paragraph describing the purpose of the form section. */\nfunction FormSectionDescription({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n data-slot=\"form-section-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\ninterface FormSectionContentProps extends React.ComponentPropsWithRef<\"div\"> {\n layout?: \"stack\" | \"grid\"\n}\n\n/**\n * Content area for form fields, rendered as a stack or two-column grid.\n *\n * @prop layout - \"stack\" (default) or \"grid\" for two-column layout\n */\nfunction FormSectionContent({\n layout = \"stack\",\n className,\n ref,\n children,\n ...props\n}: FormSectionContentProps) {\n if (layout === \"grid\") {\n return (\n <Grid\n data-slot=\"form-section-content\"\n columns={1}\n gap=\"md\"\n className={cn(\"md:grid-cols-2\", className)}\n ref={ref}\n {...props}\n >\n {children}\n </Grid>\n )\n }\n\n return (\n <Stack\n data-slot=\"form-section-content\"\n gap=\"md\"\n className={className}\n ref={ref}\n {...props}\n >\n {children}\n </Stack>\n )\n}\n\nexport {\n FormSection,\n FormSectionHeader,\n FormSectionTitle,\n FormSectionDescription,\n FormSectionContent,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root hover card component that manages open/close state on hover. */\nconst HoverCard = HoverCardPrimitive.Root\n\n/** Element that triggers the hover card on mouse enter. */\nconst HoverCardTrigger = HoverCardPrimitive.Trigger\n\n/**\n * Animated popover panel that appears on hover over the trigger.\n *\n * @example\n * <HoverCard>\n * <HoverCardTrigger>Hover me</HoverCardTrigger>\n * <HoverCardContent>Details here</HoverCardContent>\n * </HoverCard>\n */\nfunction HoverCardContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n data-slot=\"hover-card-content\"\n className={cn(\n \"z-50 w-64 rounded-lg border-2 bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-hover-card-content-transform-origin]\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Styled text input with focus ring, border, and disabled state support.\n *\n * @example\n * <Input type=\"email\" placeholder=\"you@example.com\" />\n */\nfunction Input({\n className,\n type,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"flex h-10 w-full rounded-md border-2 border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:border-e file:border-input file:bg-transparent file:pe-3 file:me-3 file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-surface-sunken md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Input }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Container that visually groups an Input with prefix/suffix addons sharing a single border.\n *\n * @example\n * <InputGroup>\n * <InputGroupPrefix>$</InputGroupPrefix>\n * <Input placeholder=\"0.00\" />\n * <InputGroupSuffix>USD</InputGroupSuffix>\n * </InputGroup>\n */\nfunction InputGroup({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"input-group\"\n className={cn(\n \"flex items-center border-2 rounded-md bg-background focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2\",\n \"[&_input]:border-0 [&_input]:focus-visible:ring-0 [&_input]:focus-visible:ring-offset-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Left-side addon content (icon, text) within an InputGroup. */\nfunction InputGroupPrefix({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"input-group-prefix\"\n className={cn(\"flex items-center ps-3 text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Right-side addon content (icon, text) within an InputGroup. */\nfunction InputGroupSuffix({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"input-group-suffix\"\n className={cn(\"flex items-center pe-3 text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport { InputGroup, InputGroupPrefix, InputGroupSuffix }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { OTPInput, OTPInputContext } from \"input-otp\"\nimport { Dot } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * One-time password input supporting configurable length and pattern validation.\n *\n * @example\n * <InputOTP maxLength={6}>\n * <InputOTPGroup><InputOTPSlot index={0} /><InputOTPSlot index={1} /></InputOTPGroup>\n * <InputOTPSeparator />\n * <InputOTPGroup><InputOTPSlot index={2} /><InputOTPSlot index={3} /></InputOTPGroup>\n * </InputOTP>\n */\nfunction InputOTP({\n className,\n containerClassName,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof OTPInput>) {\n return (\n <OTPInput\n ref={ref}\n data-slot=\"input-otp\"\n containerClassName={cn(\n \"flex items-center gap-2 has-[:disabled]:opacity-50\",\n containerClassName\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n )\n}\n\n/** Groups adjacent OTP slots together visually. */\nfunction InputOTPGroup({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div ref={ref} data-slot=\"input-otp-group\" className={cn(\"flex items-center\", className)} {...props} />\n )\n}\n\n/**\n * Individual character slot within an OTP input displaying a single digit.\n *\n * @prop index - Zero-based position of this slot in the OTP sequence\n */\nfunction InputOTPSlot({\n index,\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & { index: number }) {\n const inputOTPContext = React.useContext(OTPInputContext)\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index]\n\n return (\n <div\n ref={ref}\n data-slot=\"input-otp-slot\"\n className={cn(\n \"relative flex h-10 w-10 items-center justify-center border-2 rounded-md border-input text-sm transition-all\",\n isActive && \"z-10 border-ring ring-2 ring-ring ring-offset-background\",\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-px animate-caret-blink bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n )\n}\n\n/** Dot separator rendered between OTP slot groups. */\nfunction InputOTPSeparator({\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div ref={ref} role=\"separator\" data-slot=\"input-otp-separator\" {...props}>\n <Dot />\n </div>\n )\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface ItemProps extends React.HTMLAttributes<HTMLDivElement> {\n active?: boolean\n disabled?: boolean\n}\n\n/**\n * Interactive list item with active and disabled states, commonly used in menus and lists.\n *\n * @example\n * <Item active onClick={handleClick}><ItemIcon><StarIcon /></ItemIcon><ItemLabel>Favorites</ItemLabel></Item>\n *\n * @prop active - Highlights the item as currently selected\n * @prop disabled - Dims the item and disables pointer events\n */\nfunction Item({ className, active, disabled, ...props }: ItemProps) {\n return (\n <div\n data-slot=\"item\"\n data-active={active ? \"true\" : undefined}\n data-disabled={disabled ? \"true\" : undefined}\n aria-disabled={disabled || undefined}\n className={cn(\n \"flex items-center gap-2 rounded-md px-3 py-2 text-sm cursor-pointer transition-colors\",\n \"hover:bg-surface-interactive\",\n \"data-[active=true]:bg-surface-interactive data-[active=true]:font-medium\",\n \"data-[disabled=true]:opacity-50 data-[disabled=true]:pointer-events-none\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Shrink-proof icon wrapper inside an Item. */\nfunction ItemIcon({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"item-icon\"\n className={cn(\"shrink-0 [&_svg]:size-4\", className)}\n {...props}\n />\n )\n}\n\n/** Truncating text label inside an Item. */\nfunction ItemLabel({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"item-label\"\n className={cn(\"truncate\", className)}\n {...props}\n />\n )\n}\n\nexport { Item, ItemIcon, ItemLabel }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface KbdProps extends React.HTMLAttributes<HTMLElement> {\n keys?: string | string[]\n}\n\n/**\n * Renders a keyboard key indicator, supporting single keys or key combinations.\n *\n * @example\n * <Kbd keys={[\"Ctrl\", \"S\"]} />\n * <Kbd>Enter</Kbd>\n *\n * @prop keys - A single key string or array of key strings to display as a combination.\n */\nfunction Kbd({ className, keys, children, ...props }: KbdProps) {\n const kbdClasses = cn(\n \"border-2 bg-surface-sunken font-mono text-[10px] rounded px-1.5 py-0.5 text-muted-foreground\",\n className\n )\n\n if (keys) {\n const keyArray = Array.isArray(keys) ? keys : [keys]\n\n return (\n <span data-slot=\"kbd-group\" className=\"inline-flex items-center gap-1\">\n {keyArray.map((key, i) => (\n <React.Fragment key={i}>\n {i > 0 && (\n <span className=\"text-[10px] text-muted-foreground\">+</span>\n )}\n <kbd className={kbdClasses} {...props}>\n {key}\n </kbd>\n </React.Fragment>\n ))}\n </span>\n )\n }\n\n return (\n <kbd data-slot=\"kbd\" className={kbdClasses} {...props}>\n {children}\n </kbd>\n )\n}\n\nexport { Kbd }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Wrapper for an individual menu within the menubar. */\nfunction MenubarMenu({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Menu>) {\n return <MenubarPrimitive.Menu data-slot=\"menubar-menu\" {...props} />\n}\n\n/** Groups related menubar items together. */\nfunction MenubarGroup({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Group>) {\n return <MenubarPrimitive.Group data-slot=\"menubar-group\" {...props} />\n}\n\n/** Portal for rendering menubar content outside the DOM hierarchy. */\nfunction MenubarPortal({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Portal>) {\n return <MenubarPrimitive.Portal {...props} />\n}\n\n/** Groups menubar radio items for single-selection behavior. */\nfunction MenubarRadioGroup({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {\n return <MenubarPrimitive.RadioGroup data-slot=\"menubar-radio-group\" {...props} />\n}\n\n/** Container for a nested submenu within the menubar. */\nfunction MenubarSub({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Sub>) {\n return <MenubarPrimitive.Sub data-slot=\"menubar-sub\" {...props} />\n}\n\n/**\n * Horizontal menubar root component built on Radix UI Menubar.\n *\n * @example\n * <Menubar>\n * <MenubarMenu>\n * <MenubarTrigger>File</MenubarTrigger>\n * <MenubarContent>\n * <MenubarItem>New</MenubarItem>\n * </MenubarContent>\n * </MenubarMenu>\n * </Menubar>\n */\nfunction Menubar({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Root>) {\n return (\n <MenubarPrimitive.Root\n ref={ref}\n data-slot=\"menubar\"\n className={cn(\n \"flex h-10 items-center space-x-1 rounded-md border-2 bg-background p-1\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Button that opens a menubar dropdown. */\nfunction MenubarTrigger({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Trigger>) {\n return (\n <MenubarPrimitive.Trigger\n ref={ref}\n data-slot=\"menubar-trigger\"\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Trigger that opens a nested submenu, displaying a chevron indicator. */\nfunction MenubarSubTrigger({\n className,\n inset,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.SubTrigger> & {\n inset?: boolean\n}) {\n return (\n <MenubarPrimitive.SubTrigger\n ref={ref}\n data-slot=\"menubar-sub-trigger\"\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto h-4 w-4\" />\n </MenubarPrimitive.SubTrigger>\n )\n}\n\n/** Animated dropdown content for a menubar submenu. */\nfunction MenubarSubContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.SubContent>) {\n return (\n <MenubarPrimitive.SubContent\n ref={ref}\n data-slot=\"menubar-sub-content\"\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-menubar-content-transform-origin]\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Animated dropdown content panel for a top-level menubar menu. */\nfunction MenubarContent({\n className,\n align = \"start\",\n alignOffset = -4,\n sideOffset = 8,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Content>) {\n return (\n <MenubarPrimitive.Portal>\n <MenubarPrimitive.Content\n ref={ref}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n data-slot=\"menubar-content\"\n className={cn(\n \"z-50 min-w-[12rem] overflow-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-menubar-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </MenubarPrimitive.Portal>\n )\n}\n\n/** An interactive item within a menubar dropdown. */\nfunction MenubarItem({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Item> & {\n inset?: boolean\n}) {\n return (\n <MenubarPrimitive.Item\n ref={ref}\n data-slot=\"menubar-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-surface-interactive focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A menubar item with a checkbox indicator for toggling options. */\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.CheckboxItem>) {\n return (\n <MenubarPrimitive.CheckboxItem\n ref={ref}\n data-slot=\"menubar-checkbox-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n )\n}\n\n/** A menubar item with a radio indicator for exclusive selection. */\nfunction MenubarRadioItem({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.RadioItem>) {\n return (\n <MenubarPrimitive.RadioItem\n ref={ref}\n data-slot=\"menubar-radio-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n )\n}\n\n/** Non-interactive label used to title a group of menubar items. */\nfunction MenubarLabel({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Label> & {\n inset?: boolean\n}) {\n return (\n <MenubarPrimitive.Label\n ref={ref}\n data-slot=\"menubar-label\"\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Visual divider between groups of menubar items. */\nfunction MenubarSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Separator>) {\n return (\n <MenubarPrimitive.Separator\n ref={ref}\n data-slot=\"menubar-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\n/** Displays a keyboard shortcut hint aligned to the right of a menubar item. */\nfunction MenubarShortcut({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"menubar-shortcut\"\n className={cn(\n \"ms-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Menubar,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarItem,\n MenubarSeparator,\n MenubarLabel,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarPortal,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarGroup,\n MenubarSub,\n MenubarShortcut,\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { ChevronDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Size variants for the native select element. Use with cn(nativeSelectVariants({...})) for non-select elements. */\nconst nativeSelectVariants = cva(\n \"w-full border-2 rounded-md bg-background px-3 text-sm appearance-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n size: {\n sm: \"h-9\",\n default: \"h-10\",\n lg: \"h-11\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\ninterface NativeSelectProps\n extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, \"size\">,\n VariantProps<typeof nativeSelectVariants> {}\n\n/**\n * Styled native HTML select element with a custom chevron indicator.\n *\n * @example\n * <NativeSelect size=\"default\">\n * <option value=\"a\">Option A</option>\n * </NativeSelect>\n *\n * @prop size - Controls the height of the select: \"sm\", \"default\", or \"lg\".\n */\nfunction NativeSelect({\n className,\n size,\n children,\n ...props\n}: NativeSelectProps) {\n return (\n <div data-slot=\"native-select\" className=\"relative\">\n <select\n className={cn(nativeSelectVariants({ size }), \"pe-8\", className)}\n {...props}\n >\n {children}\n </select>\n <ChevronDown className=\"pointer-events-none absolute end-2 top-1/2 size-4 -translate-y-1/2 text-muted-foreground\" />\n </div>\n )\n}\n\nexport { NativeSelect, nativeSelectVariants }\n","import * as React from \"react\"\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\"\nimport { cva } from \"class-variance-authority\"\nimport { ChevronDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Root navigation menu component built on Radix UI NavigationMenu.\n *\n * @example\n * <NavigationMenu>\n * <NavigationMenuList>\n * <NavigationMenuItem>\n * <NavigationMenuTrigger>Getting Started</NavigationMenuTrigger>\n * <NavigationMenuContent>...</NavigationMenuContent>\n * </NavigationMenuItem>\n * </NavigationMenuList>\n * </NavigationMenu>\n */\nfunction NavigationMenu({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Root>) {\n return (\n <NavigationMenuPrimitive.Root\n ref={ref}\n data-slot=\"navigation-menu\"\n className={cn(\n \"relative z-10 flex max-w-max flex-1 items-center justify-center\",\n className\n )}\n {...props}\n >\n {children}\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Root>\n )\n}\n\n/** Horizontal list container for navigation menu items. */\nfunction NavigationMenuList({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n ref={ref}\n data-slot=\"navigation-menu-list\"\n className={cn(\n \"group flex flex-1 list-none items-center justify-center space-x-1\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Individual item within a navigation menu list. */\nconst NavigationMenuItem = NavigationMenuPrimitive.Item\n\n/** Trigger button style variants. Use with cn(navigationMenuTriggerStyle()) for non-trigger elements. */\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-accent-foreground data-[state=open]:bg-accent/50 data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent\"\n)\n\n/** Button that toggles the visibility of a navigation menu content panel. */\nfunction NavigationMenuTrigger({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Trigger>) {\n return (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDown\n className=\"relative top-[1px] ms-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n )\n}\n\n/** Animated content panel revealed when a navigation menu trigger is activated. */\nfunction NavigationMenuContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Content>) {\n return (\n <NavigationMenuPrimitive.Content\n ref={ref}\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"start-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto \",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Accessible link element within a navigation menu. */\nconst NavigationMenuLink = NavigationMenuPrimitive.Link\n\n/** Viewport container that renders the active navigation menu content with animations. */\nfunction NavigationMenuViewport({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Viewport>) {\n return (\n <div className={cn(\"absolute start-0 top-full flex justify-center\")}>\n <NavigationMenuPrimitive.Viewport\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-lg border-2 bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className\n )}\n ref={ref}\n data-slot=\"navigation-menu-viewport\"\n {...props}\n />\n </div>\n )\n}\n\n/** Animated arrow indicator that tracks the active navigation menu item. */\nfunction NavigationMenuIndicator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Indicator>) {\n return (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in\",\n className\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-ss-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n )\n}\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\nimport { ButtonProps, buttonVariants } from \"@/components/ui/button\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by Pagination. All keys have English defaults. */\ninterface PaginationLabels {\n pagination?: string\n previous?: string\n next?: string\n morePages?: string\n}\n\nconst defaultPaginationLabels: Required<PaginationLabels> = {\n pagination: \"pagination\",\n previous: \"Previous\",\n next: \"Next\",\n morePages: \"More pages\",\n}\n\n/**\n * Navigation container for paginated content.\n *\n * @example\n * <Pagination>\n * <PaginationContent>\n * <PaginationItem><PaginationPrevious href=\"#\" /></PaginationItem>\n * <PaginationItem><PaginationLink href=\"#\">1</PaginationLink></PaginationItem>\n * <PaginationItem><PaginationNext href=\"#\" /></PaginationItem>\n * </PaginationContent>\n * </Pagination>\n */\nfunction Pagination({\n className,\n \"aria-label\": ariaLabel,\n labels: labelsProp,\n ...props\n}: React.ComponentProps<\"nav\"> & { labels?: PaginationLabels }) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultPaginationLabels, ctx.pagination, labelsProp)\n\n return (\n <nav\n role=\"navigation\"\n aria-label={ariaLabel ?? labels.pagination}\n data-slot=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n )\n}\n\n/** Flex row container for pagination items. */\nfunction PaginationContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"ul\">) {\n return (\n <ul\n ref={ref}\n data-slot=\"pagination-content\"\n className={cn(\"flex flex-row items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\n/** List item wrapper for a single pagination element. */\nfunction PaginationItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"li\">) {\n return (\n <li ref={ref} data-slot=\"pagination-item\" className={cn(\"\", className)} {...props} />\n )\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean\n} & Pick<ButtonProps, \"size\"> &\n React.ComponentProps<\"a\">\n\n/**\n * Styled anchor for an individual page number.\n *\n * @prop isActive - Highlights the link as the current page.\n * @prop size - Button size variant, defaults to \"icon\".\n */\nfunction PaginationLink({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) {\n return (\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n className={cn(\n buttonVariants({\n variant: isActive ? \"default\" : \"ghost\",\n size,\n }),\n className\n )}\n {...props}\n />\n )\n}\n\n/** \"Previous\" pagination link with a left chevron icon. */\nfunction PaginationPrevious({\n className,\n label,\n labels: labelsProp,\n ...props\n}: React.ComponentProps<typeof PaginationLink> & {\n /** Visible text label. @default \"Previous\" */\n label?: string\n labels?: PaginationLabels\n}) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultPaginationLabels, ctx.pagination, labelsProp)\n const resolvedLabel = label ?? labels.previous\n\n return (\n <PaginationLink\n aria-label={props[\"aria-label\"] ?? resolvedLabel}\n size=\"default\"\n data-slot=\"pagination-previous\"\n className={cn(\"gap-1 ps-2.5\", className)}\n {...props}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n <span>{resolvedLabel}</span>\n </PaginationLink>\n )\n}\n\n/** \"Next\" pagination link with a right chevron icon. */\nfunction PaginationNext({\n className,\n label,\n labels: labelsProp,\n ...props\n}: React.ComponentProps<typeof PaginationLink> & {\n /** Visible text label. @default \"Next\" */\n label?: string\n labels?: PaginationLabels\n}) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultPaginationLabels, ctx.pagination, labelsProp)\n const resolvedLabel = label ?? labels.next\n\n return (\n <PaginationLink\n aria-label={props[\"aria-label\"] ?? resolvedLabel}\n size=\"default\"\n data-slot=\"pagination-next\"\n className={cn(\"gap-1 pe-2.5\", className)}\n {...props}\n >\n <span>{resolvedLabel}</span>\n <ChevronRight className=\"h-4 w-4\" />\n </PaginationLink>\n )\n}\n\n/** Ellipsis indicator representing omitted page numbers. */\nfunction PaginationEllipsis({\n className,\n label,\n labels: labelsProp,\n ...props\n}: React.ComponentProps<\"span\"> & {\n /** Screen-reader text for the ellipsis. @default \"More pages\" */\n label?: string\n labels?: PaginationLabels\n}) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultPaginationLabels, ctx.pagination, labelsProp)\n const resolvedLabel = label ?? labels.morePages\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">{resolvedLabel}</span>\n </span>\n )\n}\n\nexport {\n type PaginationLabels,\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Horizontal progress bar indicating completion percentage.\n *\n * @example\n * <Progress value={60} />\n *\n * @prop value - Current progress from 0 to 100.\n */\nfunction Progress({\n className,\n value,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ProgressPrimitive.Root>) {\n return (\n <ProgressPrimitive.Root\n ref={ref}\n data-slot=\"progress\"\n className={cn(\n \"relative h-3 w-full overflow-hidden rounded-full border-2 bg-surface-sunken\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className=\"h-full w-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n )\n}\n\nexport { Progress }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A group of radio inputs where only one can be selected at a time.\n *\n * @example\n * <RadioGroup defaultValue=\"a\">\n * <RadioGroupItem value=\"a\" />\n * <RadioGroupItem value=\"b\" />\n * </RadioGroup>\n */\nfunction RadioGroup({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n data-slot=\"radio-group\"\n />\n )\n}\n\n/** An individual radio option within a RadioGroup. */\nfunction RadioGroupItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n data-slot=\"radio-group-item\"\n className={cn(\n \"aspect-square h-[18px] w-[18px] rounded-full border-2 border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n","\"use client\"\n\nimport { GripVertical } from \"lucide-react\"\nimport { Group, Panel, Separator } from \"react-resizable-panels\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A container that arranges resizable panels in a horizontal or vertical layout.\n *\n * @example\n * <ResizablePanelGroup direction=\"horizontal\">\n * <ResizablePanel>Left</ResizablePanel>\n * <ResizableHandle />\n * <ResizablePanel>Right</ResizablePanel>\n * </ResizablePanelGroup>\n */\nconst ResizablePanelGroup = ({\n className,\n ...props\n}: React.ComponentProps<typeof Group>) => (\n <Group\n className={cn(\n \"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\",\n className\n )}\n {...props}\n />\n)\n\n/** A single resizable panel within a ResizablePanelGroup. */\nconst ResizablePanel = Panel\n\n/**\n * A draggable handle between resizable panels for adjusting their sizes.\n *\n * @example\n * <ResizableHandle withHandle />\n *\n * @prop withHandle - Whether to show a visible grip icon on the handle.\n */\nconst ResizableHandle = ({\n withHandle,\n className,\n ...props\n}: React.ComponentProps<typeof Separator> & {\n withHandle?: boolean\n}) => (\n <Separator\n className={cn(\n \"relative flex w-px items-center justify-center bg-border hover:bg-primary transition-colors after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:start-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90\",\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 bg-border\">\n <GripVertical className=\"h-2.5 w-2.5\" />\n </div>\n )}\n </Separator>\n)\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A scrollable area with custom styled scrollbars.\n *\n * @example\n * <ScrollArea className=\"h-72\">\n * <div>Scrollable content</div>\n * </ScrollArea>\n */\nfunction ScrollArea({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root\n ref={ref}\n data-slot=\"scroll-area\"\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\n/** A styled scrollbar track and thumb, used internally by ScrollArea. */\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n data-slot=\"scroll-bar\"\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-s border-s-transparent p-[1px]\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border hover:bg-muted-foreground\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n )\n}\n\nexport { ScrollArea, ScrollBar }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Search, X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\nimport { Input } from \"./input\"\nimport { InputGroup, InputGroupPrefix, InputGroupSuffix } from \"./input-group\"\nimport { Kbd } from \"./kbd\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by SearchField. All keys have English defaults. */\ninterface SearchFieldLabels {\n placeholder?: string\n clearSearch?: string\n}\n\nconst defaultSearchFieldLabels: Required<SearchFieldLabels> = {\n placeholder: \"Search...\",\n clearSearch: \"Clear search\",\n}\n\n/** Props for the SearchField component. */\ninterface SearchFieldProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n placeholder?: string\n shortcut?: string\n value: string\n onChange: (value: string) => void\n onClear?: () => void\n /** Accessible label for the clear button. @default \"Clear search\" */\n clearLabel?: string\n labels?: SearchFieldLabels\n}\n\n/**\n * A search input with a search icon, clearable value, and optional keyboard shortcut hint.\n *\n * @example\n * <SearchField value={query} onChange={setQuery} shortcut=\"/\" />\n *\n * @prop value - The current search string.\n * @prop onChange - Callback fired when the search value changes.\n * @prop shortcut - Optional keyboard shortcut label displayed when empty.\n * @prop onClear - Optional callback fired when the clear button is clicked.\n */\nfunction SearchField({\n placeholder,\n shortcut,\n value,\n onChange,\n onClear,\n clearLabel,\n labels: labelsProp,\n className,\n ...props\n}: SearchFieldProps) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultSearchFieldLabels, ctx.searchField, labelsProp)\n const resolvedPlaceholder = placeholder ?? labels.placeholder\n const resolvedClearLabel = clearLabel ?? labels.clearSearch\n\n return (\n <InputGroup\n data-slot=\"search-field\"\n role=\"search\"\n className={cn(className)}\n {...props}\n >\n <InputGroupPrefix>\n <Search className=\"size-4\" aria-hidden=\"true\" />\n </InputGroupPrefix>\n <Input\n type=\"search\"\n placeholder={resolvedPlaceholder}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n aria-label={resolvedPlaceholder}\n className=\"border-0 focus-visible:ring-0 focus-visible:ring-offset-0\"\n />\n {value ? (\n <InputGroupSuffix>\n <button\n type=\"button\"\n aria-label={resolvedClearLabel}\n onClick={() => {\n onChange(\"\")\n onClear?.()\n }}\n className=\"inline-flex items-center justify-center rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n >\n <X\n className=\"size-4 cursor-pointer hover:text-foreground transition-colors\"\n aria-hidden=\"true\"\n />\n </button>\n </InputGroupSuffix>\n ) : shortcut ? (\n <InputGroupSuffix>\n <Kbd>{shortcut}</Kbd>\n </InputGroupSuffix>\n ) : null}\n </InputGroup>\n )\n}\n\nexport { SearchField, type SearchFieldLabels }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root component that manages select state and context. */\nconst Select = SelectPrimitive.Root\n\n/** Groups related select items with an optional label. */\nconst SelectGroup = SelectPrimitive.Group\n\n/** Renders the currently selected value or placeholder text. */\nconst SelectValue = SelectPrimitive.Value\n\n/**\n * The button that toggles the select dropdown.\n *\n * @example\n * <Select>\n * <SelectTrigger><SelectValue placeholder=\"Pick one\" /></SelectTrigger>\n * <SelectContent>\n * <SelectItem value=\"a\">Option A</SelectItem>\n * </SelectContent>\n * </Select>\n */\nfunction SelectTrigger({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.Trigger>) {\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n data-slot=\"select-trigger\"\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-md border-2 border-input bg-background px-3 py-2 text-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n}\n\n/** A button shown at the top of the dropdown to scroll content upward. */\nfunction SelectScrollUpButton({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n )\n}\n\n/** A button shown at the bottom of the dropdown to scroll content downward. */\nfunction SelectScrollDownButton({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n )\n}\n\n/** The dropdown popover that contains selectable items. */\nfunction SelectContent({\n className,\n children,\n position = \"popper\",\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n data-slot=\"select-content\"\n className={cn(\n \"relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border-2 bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 origin-[--radix-select-content-transform-origin]\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n}\n\n/** A non-interactive label for a group of select items. */\nfunction SelectLabel({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n ref={ref}\n data-slot=\"select-label\"\n className={cn(\"py-1.5 ps-8 pe-2 text-sm font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** A selectable option within the select dropdown. */\nfunction SelectItem({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n ref={ref}\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none hover:bg-surface-interactive focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n )\n}\n\n/** A visual divider between groups of select items. */\nfunction SelectSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n ref={ref}\n data-slot=\"select-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A visual divider that separates content horizontally or vertically.\n *\n * @example\n * <Separator orientation=\"horizontal\" />\n */\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n data-slot=\"separator\"\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by Sheet. All keys have English defaults. */\ninterface SheetLabels {\n close?: string\n}\n\nconst defaultSheetLabels: Required<SheetLabels> = {\n close: \"Close\",\n}\n\n/** Root component that manages sheet open/closed state. */\nconst Sheet = SheetPrimitive.Root\n\n/** A button or element that opens the sheet when clicked. */\nconst SheetTrigger = SheetPrimitive.Trigger\n\n/** A button or element that closes the sheet when clicked. */\nconst SheetClose = SheetPrimitive.Close\n\n/** Portals sheet content into the document body. */\nconst SheetPortal = SheetPrimitive.Portal\n\n/** A semi-transparent backdrop displayed behind the sheet content. */\nfunction SheetOverlay({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n data-slot=\"sheet-overlay\"\n />\n )\n}\n\n/** Sheet position variants for top/bottom/left/right sides. Use with cn(sheetVariants({...})) for non-sheet elements. */\nconst sheetVariants = cva(\n \"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b-2 data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t-2 data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 start-0 h-full w-3/4 border-e-2 data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right:\n \"inset-y-0 end-0 h-full w-3/4 border-s-2 data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\ninterface SheetContentProps\n extends React.ComponentPropsWithRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\n/**\n * The sliding panel content of the sheet, rendered from a specified side.\n *\n * @example\n * <Sheet>\n * <SheetTrigger>Open</SheetTrigger>\n * <SheetContent side=\"right\">Content here</SheetContent>\n * </Sheet>\n *\n * @prop side - Which edge the sheet slides in from (top, bottom, left, right).\n */\nfunction SheetContent({\n side = \"right\",\n className,\n children,\n labels: labelsProp,\n ref,\n ...props\n}: SheetContentProps & { labels?: SheetLabels }) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultSheetLabels, ctx.sheet, labelsProp)\n\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n data-slot=\"sheet-content\"\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">{labels.close}</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n}\n\n/** A layout container for the sheet's title and description at the top. */\nfunction SheetHeader({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-start\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A layout container for action buttons at the bottom of the sheet. */\nfunction SheetFooter({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** The accessible title heading for the sheet. */\nfunction SheetTitle({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n ref={ref}\n data-slot=\"sheet-title\"\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** An accessible description for the sheet content. */\nfunction SheetDescription({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n ref={ref}\n data-slot=\"sheet-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n type SheetLabels,\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import * as React from \"react\"\n\nconst MOBILE_BREAKPOINT = 768\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n }\n mql.addEventListener(\"change\", onChange)\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [])\n\n return !!isMobile\n}\n","import { cn } from \"@/lib/utils\"\n\n/**\n * A pulsing placeholder element used to indicate loading content.\n *\n * @example\n * <Skeleton className=\"h-4 w-48\" />\n */\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Global tooltip configuration provider (delay, skip-delay, etc.). */\nconst TooltipProvider = TooltipPrimitive.Provider\n\n/** Root tooltip wrapper that manages open state. */\nconst Tooltip = TooltipPrimitive.Root\n\n/** Element that triggers the tooltip on hover/focus. */\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\n/** Animated popover content displayed when the tooltip is open.\n *\n * @example\n * <Tooltip><TooltipTrigger>Hover me</TooltipTrigger><TooltipContent>Tip text</TooltipContent></Tooltip>\n */\nfunction TooltipContent({\n className,\n sideOffset = 4,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n data-slot=\"tooltip-content\"\n className={cn(\n \"z-50 overflow-hidden rounded-md border-2 border-border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 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 origin-[--radix-tooltip-content-transform-origin]\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { PanelLeft } from \"lucide-react\"\n\nimport { useIsMobile } from \"@/hooks/use-mobile\"\nimport { cn } from \"@/lib/utils\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"@/components/ui/sheet\"\nimport { Skeleton } from \"@/components/ui/skeleton\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by Sidebar. All keys have English defaults. */\ninterface SidebarLabels {\n toggleSidebar?: string\n mobileTitle?: string\n mobileDescription?: string\n}\n\nconst defaultSidebarLabels: Required<SidebarLabels> = {\n toggleSidebar: \"Toggle Sidebar\",\n mobileTitle: \"Sidebar\",\n mobileDescription: \"Displays the mobile sidebar.\",\n}\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\"\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = \"16rem\"\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\"\nconst SIDEBAR_WIDTH_ICON = \"3rem\"\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\"\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\"\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null)\n\n/** Returns the sidebar context including open state, toggle, and mobile detection. */\nfunction useSidebar() {\n const context = React.useContext(SidebarContext)\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\")\n }\n\n return context\n}\n\n/**\n * Provides sidebar context and manages expand/collapse state, mobile sheet, and keyboard shortcut.\n *\n * @example\n * <SidebarProvider>\n * <Sidebar>...</Sidebar>\n * <SidebarInset>main content</SidebarInset>\n * </SidebarProvider>\n */\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n}) {\n const isMobile = useIsMobile()\n const [openMobile, setOpenMobile] = React.useState(false)\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open]\n )\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile\n ? setOpenMobile((open) => !open)\n : setOpen((open) => !open)\n }, [isMobile, setOpen, setOpenMobile])\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener(\"keydown\", handleKeyDown)\n return () => window.removeEventListener(\"keydown\", handleKeyDown)\n }, [toggleSidebar])\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\"\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-provider\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n}\n\n/**\n * The main sidebar container that renders as a fixed panel on desktop or a sheet on mobile.\n *\n * @prop side - Which edge the sidebar appears on (left or right).\n * @prop variant - Visual variant (sidebar, floating, inset).\n * @prop collapsible - Collapse behavior (offcanvas, icon, none).\n */\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n mobileTitle,\n mobileDescription,\n labels: labelsProp,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\n /** Screen-reader title for the mobile sheet. @default \"Sidebar\" */\n mobileTitle?: string\n /** Screen-reader description for the mobile sheet. @default \"Displays the mobile sidebar.\" */\n mobileDescription?: string\n labels?: SidebarLabels\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n const ctx = useLabels()\n const labels = resolveLabels(defaultSidebarLabels, ctx.sidebar, labelsProp)\n const resolvedMobileTitle = mobileTitle ?? labels.mobileTitle\n const resolvedMobileDescription = mobileDescription ?? labels.mobileDescription\n\n if (collapsible === \"none\") {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n \"flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-slot=\"sidebar\"\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>{resolvedMobileTitle}</SheetTitle>\n <SheetDescription>{resolvedMobileDescription}</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n ref={ref}\n data-slot=\"sidebar\"\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n \"relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\"\n )}\n />\n <div\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"start-0 group-data-[collapsible=offcanvas]:start-[calc(var(--sidebar-width)*-1)]\"\n : \"end-0 group-data-[collapsible=offcanvas]:end-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-e-2 group-data-[side=right]:border-s-2\",\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\n/** A button that toggles the sidebar open/closed state. */\nfunction SidebarTrigger({\n className,\n onClick,\n label,\n labels: labelsProp,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof Button> & {\n /** Screen-reader label for the trigger button. @default \"Toggle Sidebar\" */\n label?: string\n labels?: SidebarLabels\n}) {\n const { toggleSidebar } = useSidebar()\n const ctx = useLabels()\n const labels = resolveLabels(defaultSidebarLabels, ctx.sidebar, labelsProp)\n const resolvedLabel = label ?? labels.toggleSidebar\n\n return (\n <Button\n ref={ref}\n data-slot=\"sidebar-trigger\"\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"h-7 w-7\", className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">{resolvedLabel}</span>\n </Button>\n )\n}\n\n/** A thin interactive rail at the sidebar edge for toggling via click or drag. */\nfunction SidebarRail({\n className,\n label,\n labels: labelsProp,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"button\"> & {\n /** Accessible label for the rail. @default \"Toggle Sidebar\" */\n label?: string\n labels?: SidebarLabels\n}) {\n const { toggleSidebar } = useSidebar()\n const ctx = useLabels()\n const labels = resolveLabels(defaultSidebarLabels, ctx.sidebar, labelsProp)\n const resolvedLabel = label ?? labels.toggleSidebar\n\n return (\n <button\n ref={ref}\n data-slot=\"sidebar-rail\"\n data-sidebar=\"rail\"\n aria-label={resolvedLabel}\n tabIndex={-1}\n onClick={toggleSidebar}\n title={resolvedLabel}\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-end-4 group-data-[side=right]:start-0 sm:flex\",\n \"[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:start-full group-data-[collapsible=offcanvas]:hover:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-end-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-start-2\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** The main content area adjacent to the sidebar. */\nfunction SidebarInset({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"main\">) {\n return (\n <main\n ref={ref}\n data-slot=\"sidebar-inset\"\n className={cn(\n \"relative flex w-full flex-1 flex-col bg-background\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ms-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A styled text input for use within the sidebar. */\nfunction SidebarInput({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof Input>) {\n return (\n <Input\n ref={ref}\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\n \"h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A container for content at the top of the sidebar. */\nfunction SidebarHeader({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n}\n\n/** A container for content at the bottom of the sidebar. */\nfunction SidebarFooter({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n}\n\n/** A horizontal divider styled for the sidebar context. */\nfunction SidebarSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof Separator>) {\n return (\n <Separator\n ref={ref}\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\"mx-2 w-auto bg-sidebar-border\", className)}\n {...props}\n />\n )\n}\n\n/** The scrollable body area of the sidebar that holds groups and menus. */\nfunction SidebarContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A logical grouping of sidebar items, typically with a label. */\nfunction SidebarGroup({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n )\n}\n\n/** A small label heading for a SidebarGroup. */\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"div\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** An action button positioned at the top-right of a SidebarGroup. */\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"button\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute end-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A wrapper for the content within a SidebarGroup. */\nfunction SidebarGroupContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n )\n}\n\n/** A list container for sidebar menu items. */\nfunction SidebarMenu({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"ul\">) {\n return (\n <ul\n ref={ref}\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n )\n}\n\n/** A list item wrapper for a single sidebar menu entry. */\nfunction SidebarMenuItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"li\">) {\n return (\n <li\n ref={ref}\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n )\n}\n\n/** Sidebar menu button style variants. Use with cn(sidebarMenuButtonVariants({...})) for non-button elements. */\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-start text-sm outline-none ring-sidebar-ring transition-[width,height,padding] active:translate-y-[1.5px] transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pe-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\n/**\n * An interactive button within a sidebar menu item, with optional tooltip when collapsed.\n *\n * @prop isActive - Whether the item is currently active/selected.\n * @prop tooltip - Tooltip content shown when the sidebar is collapsed.\n */\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"button\"> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot : \"button\"\n const { isMobile, state } = useSidebar()\n\n const button = (\n <Comp\n ref={ref}\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n )\n\n if (!tooltip) {\n return button\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n )\n}\n\n/** A secondary action button (e.g. delete, edit) within a sidebar menu item. */\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"button\"> & {\n asChild?: boolean\n showOnHover?: boolean\n}) {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute end-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A badge displayed alongside a sidebar menu button, such as a count indicator. */\nfunction SidebarMenuBadge({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute end-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A loading placeholder skeleton for a sidebar menu item. */\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & {\n showIcon?: boolean\n}) {\n // Random width between 50 to 90%.\n const [width, setWidth] = React.useState(\"70%\")\n React.useEffect(() => {\n setWidth(`${Math.floor(Math.random() * 40) + 50}%`)\n }, [])\n\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n}\n\n/** A nested sub-menu list within a sidebar menu item. */\nfunction SidebarMenuSub({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"ul\">) {\n return (\n <ul\n ref={ref}\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-s-2 border-sidebar-border px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A list item wrapper for a single entry within a SidebarMenuSub. */\nfunction SidebarMenuSubItem({\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"li\">) {\n return <li ref={ref} data-slot=\"sidebar-menu-sub-item\" {...props} />\n}\n\n/** An interactive button within a sidebar sub-menu item. */\nfunction SidebarMenuSubButton({\n asChild = false,\n size = \"md\",\n isActive,\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"a\"> & {\n asChild?: boolean\n size?: \"sm\" | \"md\"\n isActive?: boolean\n}) {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n type SidebarLabels,\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n sidebarMenuButtonVariants,\n useSidebar,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A range input that allows selecting a numeric value by dragging a thumb along a track.\n *\n * @example\n * <Slider defaultValue={[50]} max={100} step={1} />\n */\nfunction Slider({\n className,\n defaultValue,\n value,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SliderPrimitive.Root>) {\n const thumbCount = (value ?? defaultValue ?? [0]).length\n return (\n <SliderPrimitive.Root\n ref={ref}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-full border-2 bg-surface-sunken\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n {Array.from({ length: thumbCount }, (_, i) => (\n <SliderPrimitive.Thumb\n key={i}\n className=\"block size-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n","\"use client\"\n\nimport {\n CircleCheck,\n Info,\n LoaderCircle,\n OctagonX,\n TriangleAlert,\n} from \"lucide-react\"\nimport { useTheme } from \"next-themes\"\nimport { Toaster as Sonner } from \"sonner\"\n\n/** Props for the Toaster component. */\ntype ToasterProps = React.ComponentProps<typeof Sonner>\n\n/**\n * A theme-aware toast notification container powered by Sonner.\n *\n * @example\n * <Toaster />\n */\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = \"system\" } = useTheme()\n\n return (\n <Sonner\n theme={theme as ToasterProps[\"theme\"]}\n className=\"toaster group\"\n icons={{\n success: <CircleCheck className=\"h-4 w-4\" />,\n info: <Info className=\"h-4 w-4\" />,\n warning: <TriangleAlert className=\"h-4 w-4\" />,\n error: <OctagonX className=\"h-4 w-4\" />,\n loading: <LoaderCircle className=\"h-4 w-4 animate-spin\" />,\n }}\n toastOptions={{\n classNames: {\n toast:\n \"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-2 group-[.toaster]:border-border group-[.toaster]:shadow-lg\",\n description: \"group-[.toast]:text-muted-foreground\",\n actionButton:\n \"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground\",\n cancelButton:\n \"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground\",\n success:\n \"group-[.toaster]:!border-status-success group-[.toaster]:!bg-status-success-surface group-[.toaster]:!text-status-success-text\",\n error:\n \"group-[.toaster]:!border-status-error group-[.toaster]:!bg-status-error-surface group-[.toaster]:!text-status-error-text\",\n warning:\n \"group-[.toaster]:!border-status-warning group-[.toaster]:!bg-status-warning-surface group-[.toaster]:!text-status-warning-text\",\n },\n }}\n {...props}\n />\n )\n}\n\nexport { Toaster }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Map of size tokens to pixel values for the Spacer component. */\nconst sizeMap = {\n none: \"0px\",\n xs: \"4px\",\n sm: \"8px\",\n md: \"16px\",\n lg: \"24px\",\n xl: \"32px\",\n \"2xl\": \"48px\",\n} as const\n\ntype Size = keyof typeof sizeMap\n\ninterface SpacerProps extends React.ComponentPropsWithRef<\"div\"> {\n size?: Size\n axis?: \"horizontal\" | \"vertical\"\n}\n\n/**\n * A flexible spacing element that either fills available space or adds a fixed gap.\n *\n * @example\n * <Spacer size=\"md\" axis=\"vertical\" />\n *\n * @prop size - The spacing size token; omit to fill available flex space.\n * @prop axis - Whether spacing is applied horizontally or vertically.\n */\nfunction Spacer({\n size,\n axis = \"vertical\",\n className,\n style,\n ...props\n}: SpacerProps) {\n if (size === undefined) {\n return (\n <div\n data-slot=\"spacer\"\n className={cn(\"flex-1\", className)}\n {...props}\n />\n )\n }\n\n const dimension = sizeMap[size]\n const sizeStyle =\n axis === \"horizontal\"\n ? { width: dimension, minWidth: dimension }\n : { height: dimension, minHeight: dimension }\n\n return (\n <div\n data-slot=\"spacer\"\n className={className}\n style={{ ...sizeStyle, ...style }}\n {...props}\n />\n )\n}\n\nexport { Spacer, type SpacerProps }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by Spinner. All keys have English defaults. */\ninterface SpinnerLabels {\n loading?: string\n}\n\nconst defaultSpinnerLabels: Required<SpinnerLabels> = {\n loading: \"Loading…\",\n}\n\n/** Spinner size variants. Use with cn(spinnerVariants({...})) for non-spinner elements. */\nconst spinnerVariants = cva(\n \"rounded-full border-2\",\n {\n variants: {\n size: {\n sm: \"size-4\",\n default: \"size-6\",\n lg: \"size-8\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * An animated loading spinner indicator.\n *\n * @example\n * <Spinner size=\"lg\" />\n *\n * @prop size - The spinner diameter (sm, default, lg).\n */\nfunction Spinner({\n className,\n size,\n labels: labelsProp,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof spinnerVariants> & { labels?: SpinnerLabels }) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultSpinnerLabels, ctx.spinner, labelsProp)\n\n return (\n <div\n data-slot=\"spinner\"\n role=\"status\"\n className={cn(spinnerVariants({ size }), className)}\n {...props}\n >\n <span className=\"sr-only\">{labels.loading}</span>\n </div>\n )\n}\n\nexport { Spinner, spinnerVariants, type SpinnerLabels }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A toggle switch for boolean on/off input.\n *\n * @example\n * <Switch checked={enabled} onCheckedChange={setEnabled} />\n */\nfunction Switch({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SwitchPrimitives.Root>) {\n return (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-[26px] w-[44px] shrink-0 cursor-pointer items-center rounded-full border-2 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n className\n )}\n {...props}\n ref={ref}\n data-slot=\"switch\"\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block size-[20px] rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-[18px] data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n )\n}\n\nexport { Switch }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Multi-line text input with consistent border, focus ring, and disabled styles.\n *\n * @example\n * <Textarea placeholder=\"Enter description...\" rows={4} />\n */\nfunction Textarea({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border-2 border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-surface-sunken md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Toggle button style variants (default, outline) and sizes. Use with cn(toggleVariants({...})) for non-Toggle elements. */\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors active:translate-y-[1.5px] transition-transform hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border-2 border-input bg-transparent hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-10 px-3 min-w-10\",\n sm: \"h-9 px-2.5 min-w-9\",\n lg: \"h-11 px-5 min-w-11\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\n/** A two-state toggle button built on Radix Toggle.\n *\n * @example\n * <Toggle variant=\"outline\" size=\"sm\"><BoldIcon /></Toggle>\n *\n * @prop variant - Visual style: \"default\" or \"outline\".\n * @prop size - Button size: \"sm\", \"default\", or \"lg\".\n */\nfunction Toggle({\n className,\n variant,\n size,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n ref={ref}\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\"\nimport { type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { toggleVariants } from \"@/components/ui/toggle\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants>\n>({\n size: \"default\",\n variant: \"default\",\n})\n\n/** A group of toggle buttons that share variant and size context.\n *\n * @example\n * <ToggleGroup type=\"single\" variant=\"outline\"><ToggleGroupItem value=\"a\">A</ToggleGroupItem></ToggleGroup>\n *\n * @prop variant - Visual style applied to all child items.\n * @prop size - Size applied to all child items.\n */\nfunction ToggleGroup({\n className,\n variant,\n size,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <ToggleGroupPrimitive.Root\n ref={ref}\n data-slot=\"toggle-group\"\n className={cn(\"flex items-center justify-center gap-1\", className)}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n )\n}\n\n/** Individual toggle item within a ToggleGroup. */\nfunction ToggleGroupItem({\n className,\n children,\n variant,\n size,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <ToggleGroupPrimitive.Item\n ref={ref}\n data-slot=\"toggle-group-item\"\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Semantic h1 heading with bold, tight tracking at 4xl size. */\nfunction H1({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h1\n data-slot=\"h1\"\n className={cn(\"text-4xl font-bold tracking-tight\", className)}\n {...props}\n />\n )\n}\n\n/** Semantic h2 heading with semibold weight at 3xl size. */\nfunction H2({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h2\n data-slot=\"h2\"\n className={cn(\"text-3xl font-semibold tracking-tight\", className)}\n {...props}\n />\n )\n}\n\n/** Semantic h3 heading with semibold weight at 2xl size. */\nfunction H3({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3\n data-slot=\"h3\"\n className={cn(\"text-2xl font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Semantic h4 heading with semibold weight at xl size. */\nfunction H4({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h4\n data-slot=\"h4\"\n className={cn(\"text-xl font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Standard paragraph element with base size and relaxed leading. */\nfunction P({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n data-slot=\"p\"\n className={cn(\"text-base leading-7\", className)}\n {...props}\n />\n )\n}\n\n/** Lead paragraph rendered in xl muted text for introductory copy. */\nfunction Lead({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n data-slot=\"lead\"\n className={cn(\"text-xl text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Large semibold text block rendered as a div. */\nfunction Large({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"large\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Small text element with medium weight and tight leading. */\nfunction Small({\n className,\n ...props\n}: React.HTMLAttributes<HTMLElement>) {\n return (\n <small\n data-slot=\"small\"\n className={cn(\"text-sm font-medium leading-none\", className)}\n {...props}\n />\n )\n}\n\n/** Muted paragraph in small size for secondary or helper text. */\nfunction Muted({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n data-slot=\"muted\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Inline code snippet with monospace font and sunken background. */\nfunction Code({\n className,\n ...props\n}: React.HTMLAttributes<HTMLElement>) {\n return (\n <code\n data-slot=\"code\"\n className={cn(\n \"font-mono text-sm bg-surface-sunken rounded px-[0.3rem] py-[0.2rem]\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Inline monospace span without background styling. */\nfunction Mono({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"mono\"\n className={cn(\"font-mono text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport { H1, H2, H3, H4, P, Lead, Large, Small, Muted, Code, Mono }\n"]}