@cogentic-co/ds 0.5.0 → 0.5.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/blocks/article-card.tsx","../src/blocks/page-cta.tsx","../src/components/aspect-ratio.tsx","../src/blocks/team-card.tsx","../src/components/accordion.tsx","../src/components/alert.tsx","../src/components/alert-dialog.tsx","../src/components/animated-counter.tsx","../src/components/dialog.tsx","../src/components/textarea.tsx","../src/components/approval-actions.tsx","../src/components/ascii-shader.tsx","../src/components/audit-log.tsx","../src/components/avatar.tsx","../src/components/badge.tsx","../src/components/bg-shader.tsx","../src/components/blocky-shader.tsx","../src/components/breadcrumb.tsx","../src/components/separator.tsx","../src/components/button-group.tsx","../src/components/calendar.tsx","../src/components/callout.tsx","../src/components/carousel.tsx","../src/components/hover-card.tsx","../src/components/item.tsx","../src/components/case-card.tsx","../src/components/checkbox.tsx","../src/components/code-block.tsx","../src/components/collapsible.tsx","../src/components/input-group.tsx","../src/components/combobox.tsx","../src/components/command.tsx","../src/components/comment-thread.tsx","../src/components/compliance-score.tsx","../src/components/context-menu.tsx","../src/components/copy-button.tsx","../src/components/dropdown-menu.tsx","../src/components/popover.tsx","../src/components/select.tsx","../src/components/table.tsx","../src/components/data-table.tsx","../src/components/date-picker.tsx","../src/components/deadline-countdown.tsx","../src/components/description-list.tsx","../src/components/drawer.tsx","../src/components/empty.tsx","../src/components/entity-header.tsx","../src/components/field.tsx","../src/components/file-upload.tsx","../src/components/filter-bar.tsx","../src/components/grid.tsx","../src/components/inline-edit.tsx","../src/components/input-otp.tsx","../src/components/kbd.tsx","../src/components/spinner.tsx","../src/components/loading-overlay.tsx","../src/components/logo-vasp.tsx","../src/components/marquee.tsx","../src/components/menubar.tsx","../src/components/native-select.tsx","../src/components/navigation-menu.tsx","../src/components/number-input.tsx","../src/components/pagination.tsx","../src/components/policy-banner.tsx","../src/components/progress.tsx","../src/components/radio-group.tsx","../src/components/resizable.tsx","../src/components/risk-gauge.tsx","../src/components/scroll-area.tsx","../src/components/search-input.tsx","../src/components/segmented-control.tsx","../src/components/sheet.tsx","../src/hooks/use-mobile.ts","../src/components/skeleton.tsx","../src/components/tooltip.tsx","../src/components/sidebar.tsx","../src/components/slider.tsx","../src/components/sonner.tsx","../src/components/split-pane.tsx","../src/components/stat.tsx","../src/components/status-indicator.tsx","../src/components/step-progress.tsx","../src/components/streaming-cards.tsx","../src/components/waffle-chart.tsx","../src/components/striped-bar.tsx","../src/components/subtle-shader.tsx","../src/components/tabs.tsx","../src/components/tag.tsx","../src/components/theme-script.tsx","../src/components/timeline.tsx","../src/components/toggle.tsx","../src/components/toggle-group.tsx","../src/components/typewriter.tsx","../src/components/typography.tsx","../src/components/visually-hidden.tsx","../src/hooks/use-carousel.ts","../src/hooks/use-clipboard.ts","../src/hooks/use-debounce.ts","../src/hooks/use-disclosure.ts","../src/hooks/use-intersection-observer.ts","../src/hooks/use-local-storage.ts","../src/hooks/use-media-query.ts","../src/shells/app-shell.tsx"],"names":["jsxs","jsx","AccordionPrimitive","AlertDialogPrimitive","DialogPrimitive","XIcon","useState","useEffect","cva","AvatarPrimitive","useRef","CHARS","CELL","FONT_SIZE","isDark","useRender","mergeProps","SeparatorPrimitive","Calendar","_a","_b","className","props","ChevronRightIcon","ChevronDownIcon","React","React2","api","ChevronLeftIcon","PreviewCardPrimitive","CheckboxPrimitive","CheckIcon","useCallback","CollapsiblePrimitive","ComboboxPrimitive","React3","CommandPrimitive","ContextMenuPrimitive","ClipboardIcon","MenuPrimitive","PopoverPrimitive","SelectPrimitive","ChevronUpIcon","Fragment","days","hours","DrawerPrimitive","useMemo","React5","MenubarPrimitive","NavigationMenuPrimitive","MinusIcon","MoreHorizontalIcon","React6","ProgressPrimitive","RadioGroupPrimitive","RadioPrimitive","ScrollAreaPrimitive","SheetPrimitive","React8","TooltipPrimitive","React9","open","React10","SliderPrimitive","Sonner","InfoIcon","TriangleAlertIcon","Loader2Icon","EASE_OUT","React11","TabsPrimitive","TogglePrimitive","React12","ToggleGroupPrimitive","Link","ChevronRight","ChevronsUpDown","React13"],"mappings":"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","file":"index.js","sourcesContent":["\"use client\"\n\nimport { ArrowUpRight, Calendar } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\ninterface ArticleCardProps {\n title: string\n excerpt?: string\n href?: string\n imageUrl?: string\n date?: string\n category?: string\n author?: string\n className?: string\n}\n\nfunction ArticleCard({\n title,\n excerpt,\n href = \"#\",\n imageUrl,\n date,\n category,\n author = \"Cogentic Team\",\n className,\n}: ArticleCardProps) {\n return (\n <a\n data-slot=\"article-card\"\n href={href}\n className={cn(\n \"group flex flex-col rounded-xl border border-border border-dashed p-4 transition-colors hover:border-muted-foreground/40\",\n className,\n )}\n >\n {/* Image */}\n {imageUrl && (\n <div className=\"relative aspect-[16/10] w-full overflow-hidden rounded-lg bg-muted\">\n <img\n src={imageUrl}\n alt={title}\n className=\"h-full w-full object-cover transition-transform duration-300 group-hover:scale-[1.02]\"\n />\n </div>\n )}\n\n {/* Date + category row */}\n <div className=\"mt-4 flex items-center justify-between gap-3\">\n {date && (\n <div className=\"flex items-center gap-1.5 text-muted-foreground text-sm\">\n <Calendar className=\"size-3.5\" />\n <span>{date}</span>\n </div>\n )}\n {category && (\n <span className=\"rounded-full border border-border px-2.5 py-0.5 font-medium text-muted-foreground text-xs\">\n {category}\n </span>\n )}\n </div>\n\n {/* Title */}\n <h3 className=\"mt-3 font-semibold text-foreground text-lg leading-snug tracking-tight\">\n {title}\n </h3>\n\n {/* Excerpt */}\n {excerpt && <p className=\"mt-2 line-clamp-2 text-muted-foreground text-sm\">{excerpt}</p>}\n\n {/* Author + arrow */}\n <div className=\"mt-auto flex items-center justify-between pt-4\">\n <span className=\"font-medium text-foreground text-sm\">{author}</span>\n <span className=\"flex size-8 items-center justify-center rounded-full border border-border transition-colors group-hover:border-muted-foreground/40\">\n <ArrowUpRight className=\"size-4 text-muted-foreground transition-colors group-hover:text-foreground\" />\n </span>\n </div>\n </a>\n )\n}\n\nexport { ArticleCard }\nexport type { ArticleCardProps }\n","\"use client\"\n\nimport Link from \"next/link\"\nimport { Button } from \"../components/button\"\nimport { cn } from \"../lib/utils\"\n\ntype CtaLink = {\n label: string\n href: string\n}\n\ninterface PageCtaProps {\n headline?: string\n subheadline?: string\n primaryCta?: CtaLink\n secondaryCta?: CtaLink\n children?: React.ReactNode\n className?: string\n}\n\nfunction PageCta({\n headline,\n subheadline,\n primaryCta,\n secondaryCta,\n children,\n className,\n}: PageCtaProps) {\n return (\n <section\n data-slot=\"page-cta\"\n className={cn(\"relative overflow-hidden bg-cogentic-green px-6\", className)}\n >\n {/* Dotted pattern */}\n <div className=\"pointer-events-none absolute inset-0 bg-[radial-gradient(currentColor_1px,transparent_1px)] bg-[size:16px_16px] text-primary-foreground opacity-30\" />\n\n {/* Centered gradient behind text */}\n <div className=\"pointer-events-none absolute top-0 left-1/2 h-full w-[500px] -translate-x-1/2 bg-radial from-cogentic-green to-cogentic-green/10\" />\n\n <div className=\"container relative px-0 py-16 text-center sm:py-20 md:px-6 md:py-28\">\n {headline && (\n <h2 className=\"mx-auto max-w-5xl text-balance font-medium text-4xl text-primary-foreground leading-tight sm:text-5xl md:text-6xl\">\n {headline}\n </h2>\n )}\n\n {subheadline && (\n <p className=\"mx-auto mt-4 max-w-2xl font-normal text-base text-primary-foreground/80 sm:text-lg\">\n {subheadline}\n </p>\n )}\n\n {children}\n\n {(primaryCta || secondaryCta) && (\n <div className=\"mt-8 flex flex-col flex-wrap items-center justify-center gap-4 sm:flex-row\">\n {primaryCta && (\n <Button\n className=\"bg-background text-foreground hover:bg-foreground hover:text-background\"\n render={<Link href={primaryCta.href} />}\n >\n {primaryCta.label}\n </Button>\n )}\n\n {secondaryCta && (\n <Button\n variant=\"ghost\"\n className=\"border-primary-foreground/30 text-primary-foreground hover:bg-primary-foreground\"\n render={<Link href={secondaryCta.href} />}\n >\n {secondaryCta.label}\n </Button>\n )}\n </div>\n )}\n </div>\n </section>\n )\n}\n\nexport { PageCta }\nexport type { PageCtaProps, CtaLink }\n","import { cn } from \"../lib/utils\"\n\nfunction AspectRatio({\n ratio,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & { ratio: number }) {\n return (\n <div\n data-slot=\"aspect-ratio\"\n style={\n {\n \"--ratio\": ratio,\n } as React.CSSProperties\n }\n className={cn(\"relative aspect-(--ratio)\", className)}\n {...props}\n />\n )\n}\n\nexport { AspectRatio }\n","\"use client\"\n\nimport { Linkedin } from \"lucide-react\"\nimport Image from \"next/image\"\nimport { AspectRatio } from \"../components/aspect-ratio\"\nimport { Card, CardContent, CardFooter } from \"../components/card\"\nimport { cn } from \"../lib/utils\"\n\ninterface TeamCardProps {\n name: string\n role: string\n imageUrl?: string\n linkedinUrl?: string\n className?: string\n}\n\nfunction TeamCard({ name, role, imageUrl, linkedinUrl, className }: TeamCardProps) {\n const initials = name\n .split(\" \")\n .map((n) => n[0])\n .join(\"\")\n\n return (\n <Card\n data-slot=\"team-card\"\n className={cn(\"group relative gap-0 overflow-hidden p-0\", className)}\n >\n {linkedinUrl && (\n <a\n href={linkedinUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"absolute inset-0 z-10 block\"\n />\n )}\n <CardContent className=\"p-0\">\n <AspectRatio ratio={1} className=\"overflow-hidden\">\n {imageUrl ? (\n <Image\n src={imageUrl}\n alt={name}\n fill\n sizes=\"(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 20vw\"\n className=\"block size-full origin-center object-cover object-center transition-transform duration-500 group-hover:scale-110\"\n />\n ) : (\n <div className=\"flex size-full items-center justify-center bg-gradient-to-br from-primary/10 to-primary/20\">\n <span className=\"font-medium text-4xl text-muted-foreground/40\">{initials}</span>\n </div>\n )}\n </AspectRatio>\n </CardContent>\n <CardFooter className=\"gap-2 px-4 py-2.5\">\n <div className=\"flex-1\">\n <div className=\"font-medium text-sm leading-normal\">{name}</div>\n <div className=\"text-muted-foreground text-xs\">{role}</div>\n </div>\n {linkedinUrl && (\n <div className=\"shrink-0\">\n <Linkedin className=\"size-4 text-muted-foreground\" />\n </div>\n )}\n </CardFooter>\n </Card>\n )\n}\n\nexport { TeamCard }\nexport type { TeamCardProps }\n","\"use client\"\n\nimport { Accordion as AccordionPrimitive } from \"@base-ui/react/accordion\"\n\nimport { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Accordion({ className, ...props }: AccordionPrimitive.Root.Props) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(\"flex w-full flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({ className, ...props }: AccordionPrimitive.Item.Props) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"not-last:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({ className, children, ...props }: AccordionPrimitive.Trigger.Props) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"group/accordion-trigger relative flex flex-1 items-start justify-between rounded-md border border-transparent py-4 text-left font-medium text-sm outline-none transition-all hover:underline focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon\n data-slot=\"accordion-trigger-icon\"\n className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\"\n />\n <ChevronUpIcon\n data-slot=\"accordion-trigger-icon\"\n className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\"\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({ className, children, ...props }: AccordionPrimitive.Panel.Props) {\n return (\n <AccordionPrimitive.Panel\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm data-closed:animate-accordion-up data-open:animate-accordion-down\"\n {...props}\n >\n <div\n className={cn(\n \"h-(--accordion-panel-height) pt-0 pb-4 data-ending-style:h-0 data-starting-style:h-0 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className,\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Panel>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nconst alertVariants = cva(\n \"grid gap-0.5 rounded-lg border px-4 py-3 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2.5 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4 w-full relative group/alert\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n warning:\n \"text-amber-800 bg-amber-50 border-amber-200 dark:text-amber-200 dark:bg-amber-950 dark:border-amber-800 *:data-[slot=alert-description]:text-amber-700 dark:*:data-[slot=alert-description]:text-amber-300 *:[svg]:text-amber-600 dark:*:[svg]:text-amber-400\",\n destructive:\n \"text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n)\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n \"font-medium group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"text-balance text-muted-foreground text-sm md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-action\"\n className={cn(\"absolute top-2.5 right-3\", className)}\n {...props}\n />\n )\n}\n\nexport { Alert, AlertTitle, AlertDescription, AlertAction }\n","\"use client\"\n\nimport { AlertDialog as AlertDialogPrimitive } from \"@base-ui/react/alert-dialog\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\n\nfunction AlertDialog({ ...props }: AlertDialogPrimitive.Root.Props) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />\n}\n\nfunction AlertDialogTrigger({ ...props }: AlertDialogPrimitive.Trigger.Props) {\n return <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n}\n\nfunction AlertDialogPortal({ ...props }: AlertDialogPrimitive.Portal.Props) {\n return <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n}\n\nfunction AlertDialogOverlay({ className, ...props }: AlertDialogPrimitive.Backdrop.Props) {\n return (\n <AlertDialogPrimitive.Backdrop\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 isolate z-50 bg-black/10 duration-100 data-closed:animate-out data-open:animate-in supports-backdrop-filter:backdrop-blur-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogContent({\n className,\n size = \"default\",\n ...props\n}: AlertDialogPrimitive.Popup.Props & {\n size?: \"default\" | \"sm\"\n}) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Popup\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-6 rounded-xl border border-border-light bg-background p-6 shadow-lg outline-none duration-100 data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-closed:animate-out data-open:animate-in data-[size=default]:sm:max-w-lg\",\n className,\n )}\n {...props}\n />\n </AlertDialogPortal>\n )\n}\n\nfunction AlertDialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n \"grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogMedia({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"mb-2 inline-flex size-16 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\n \"font-medium text-lg sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\n \"text-balance text-muted-foreground text-sm md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogAction({ className, ...props }: React.ComponentProps<typeof Button>) {\n return <Button data-slot=\"alert-dialog-action\" className={cn(className)} {...props} />\n}\n\nfunction AlertDialogCancel({\n className,\n variant = \"outline\",\n size = \"default\",\n ...props\n}: AlertDialogPrimitive.Close.Props &\n Pick<React.ComponentProps<typeof Button>, \"variant\" | \"size\">) {\n return (\n <AlertDialogPrimitive.Close\n data-slot=\"alert-dialog-cancel\"\n className={cn(className)}\n render={<Button variant={variant} size={size} />}\n {...props}\n />\n )\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n}\n","\"use client\"\n\nimport { useEffect, useState } from \"react\"\n\ninterface AnimatedCounterProps {\n /** Target value to animate to */\n value: number\n /** Animation duration in milliseconds. Default: 1000 */\n duration?: number\n /** Optional prefix (e.g. \"$\") */\n prefix?: string\n /** Optional suffix (e.g. \"%\") */\n suffix?: string\n /** Number of decimal places. Default: 0 */\n decimals?: number\n className?: string\n}\n\nfunction AnimatedCounter({\n value,\n duration = 1000,\n prefix = \"\",\n suffix = \"\",\n decimals = 0,\n className,\n}: AnimatedCounterProps) {\n const [display, setDisplay] = useState(0)\n\n useEffect(() => {\n let start: number | null = null\n let raf: number\n\n function tick(ts: number) {\n if (start === null) start = ts\n const progress = Math.min((ts - start) / duration, 1)\n // Cubic ease-out\n const eased = 1 - (1 - progress) ** 3\n setDisplay(value * eased)\n if (progress < 1) raf = requestAnimationFrame(tick)\n }\n\n raf = requestAnimationFrame(tick)\n return () => cancelAnimationFrame(raf)\n }, [value, duration])\n\n return (\n <span data-slot=\"animated-counter\" className={className}>\n {prefix}\n {decimals > 0 ? display.toFixed(decimals) : Math.round(display)}\n {suffix}\n </span>\n )\n}\n\nexport { AnimatedCounter }\nexport type { AnimatedCounterProps }\n","\"use client\"\n\nimport { Dialog as DialogPrimitive } from \"@base-ui/react/dialog\"\nimport { XIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\n\nfunction Dialog({ ...props }: DialogPrimitive.Root.Props) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({ ...props }: DialogPrimitive.Trigger.Props) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({ ...props }: DialogPrimitive.Portal.Props) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({ ...props }: DialogPrimitive.Close.Props) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({ className, ...props }: DialogPrimitive.Backdrop.Props) {\n return (\n <DialogPrimitive.Backdrop\n data-slot=\"dialog-overlay\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 isolate z-50 bg-black/10 duration-100 data-closed:animate-out data-open:animate-in supports-backdrop-filter:backdrop-blur-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: DialogPrimitive.Popup.Props & {\n showCloseButton?: boolean\n}) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Popup\n data-slot=\"dialog-content\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-6 rounded-xl border border-border-light bg-background p-6 text-sm shadow-lg outline-none duration-100 data-closed:animate-out data-open:animate-in sm:max-w-md\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n render={<Button variant=\"ghost\" className=\"absolute top-4 right-4\" size=\"icon-sm\" />}\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Popup>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"dialog-header\" className={cn(\"flex flex-col gap-2\", className)} {...props} />\n )\n}\n\nfunction DialogFooter({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean\n}) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\", className)}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close render={<Button variant=\"outline\" />}>Close</DialogPrimitive.Close>\n )}\n </div>\n )\n}\n\nfunction DialogTitle({ className, ...props }: DialogPrimitive.Title.Props) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"font-medium leading-none\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({ className, ...props }: DialogPrimitive.Description.Props) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\n \"text-muted-foreground text-sm *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n","import type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"field-sizing-content flex min-h-16 w-full rounded-md border border-input bg-transparent px-2.5 py-2 text-base shadow-xs outline-none transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n","\"use client\"\n\nimport { ArrowUpIcon, CheckIcon, XIcon } from \"lucide-react\"\nimport { useState } from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"./dialog\"\nimport { Textarea } from \"./textarea\"\n\ntype ApprovalAction = \"approve\" | \"reject\" | \"escalate\"\n\ntype ApprovalActionsProps = {\n onApprove?: (reason?: string) => void\n onReject?: (reason?: string) => void\n onEscalate?: (reason?: string) => void\n requireReason?: boolean\n disabled?: boolean\n className?: string\n}\n\nconst actionConfig: Record<\n ApprovalAction,\n {\n label: string\n icon: typeof CheckIcon\n dialogTitle: string\n dialogDescription: string\n confirmLabel: string\n triggerClassName: string\n confirmClassName: string\n dialogClassName: string\n }\n> = {\n approve: {\n label: \"Approve\",\n icon: CheckIcon,\n dialogTitle: \"Confirm Approval\",\n dialogDescription: \"Are you sure you want to approve this item?\",\n confirmLabel: \"Approve\",\n triggerClassName:\n \"bg-emerald-600 text-white hover:bg-emerald-700 dark:bg-emerald-600 dark:hover:bg-emerald-500\",\n confirmClassName:\n \"bg-emerald-600 text-white hover:bg-emerald-700 dark:bg-emerald-600 dark:hover:bg-emerald-500\",\n dialogClassName: \"border-emerald-500\",\n },\n reject: {\n label: \"Reject\",\n icon: XIcon,\n dialogTitle: \"Confirm Rejection\",\n dialogDescription:\n \"Are you sure you want to reject this item? This action may require a reason.\",\n confirmLabel: \"Reject\",\n triggerClassName:\n \"border border-destructive text-destructive bg-transparent hover:bg-destructive/10 dark:hover:bg-destructive/20\",\n confirmClassName: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n dialogClassName: \"border-destructive\",\n },\n escalate: {\n label: \"Escalate\",\n icon: ArrowUpIcon,\n dialogTitle: \"Confirm Escalation\",\n dialogDescription: \"This will escalate the item to a senior reviewer.\",\n confirmLabel: \"Escalate\",\n triggerClassName:\n \"border border-amber-500 text-amber-600 bg-transparent hover:bg-amber-500/10 dark:text-amber-400 dark:hover:bg-amber-500/20\",\n confirmClassName:\n \"bg-amber-500 text-white hover:bg-amber-600 dark:bg-amber-600 dark:hover:bg-amber-500\",\n dialogClassName: \"border-amber-500\",\n },\n}\n\nfunction ApprovalDialog({\n action,\n requireReason,\n onConfirm,\n disabled,\n}: {\n action: ApprovalAction\n requireReason: boolean\n onConfirm: (reason?: string) => void\n disabled?: boolean\n}) {\n const [reason, setReason] = useState(\"\")\n const [open, setOpen] = useState(false)\n const config = actionConfig[action]\n const Icon = config.icon\n\n function handleConfirm() {\n onConfirm(reason || undefined)\n setReason(\"\")\n setOpen(false)\n }\n\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogTrigger disabled={disabled} render={<Button className={config.triggerClassName} />}>\n <Icon className=\"size-4\" />\n {config.label}\n </DialogTrigger>\n <DialogContent className={config.dialogClassName}>\n <DialogHeader>\n <DialogTitle>{config.dialogTitle}</DialogTitle>\n <DialogDescription>{config.dialogDescription}</DialogDescription>\n </DialogHeader>\n <div className=\"space-y-2\">\n <Textarea\n placeholder={requireReason ? \"Reason (required)\" : \"Reason (optional)\"}\n value={reason}\n onChange={(e) => setReason(e.target.value)}\n />\n </div>\n <DialogFooter>\n <DialogClose render={<Button variant=\"outline\" />}>Cancel</DialogClose>\n <Button\n className={config.confirmClassName}\n onClick={handleConfirm}\n disabled={requireReason && !reason.trim()}\n >\n {config.confirmLabel}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction ApprovalButton({\n action,\n requireReason = false,\n onAction,\n disabled,\n}: {\n action: ApprovalAction\n requireReason?: boolean\n onAction?: (reason?: string) => void\n disabled?: boolean\n}) {\n const config = actionConfig[action]\n const Icon = config.icon\n\n if (!onAction) {\n return (\n <Button className={config.triggerClassName} disabled>\n <Icon className=\"size-4\" />\n {config.label}\n </Button>\n )\n }\n\n // No dialog needed when reason isn't required — fire directly\n if (!requireReason) {\n return (\n <Button className={config.triggerClassName} disabled={disabled} onClick={() => onAction()}>\n <Icon className=\"size-4\" />\n {config.label}\n </Button>\n )\n }\n\n return (\n <ApprovalDialog\n action={action}\n requireReason={requireReason}\n onConfirm={onAction}\n disabled={disabled}\n />\n )\n}\n\nfunction ApprovalActions({\n onApprove,\n onReject,\n onEscalate,\n requireReason = false,\n disabled,\n className,\n}: ApprovalActionsProps) {\n return (\n <div data-slot=\"approval-actions\" className={cn(\"flex items-center gap-2\", className)}>\n <ApprovalButton\n action=\"approve\"\n requireReason={requireReason}\n onAction={onApprove}\n disabled={disabled}\n />\n <ApprovalButton\n action=\"reject\"\n requireReason={requireReason}\n onAction={onReject}\n disabled={disabled}\n />\n <ApprovalButton\n action=\"escalate\"\n requireReason={requireReason}\n onAction={onEscalate}\n disabled={disabled}\n />\n </div>\n )\n}\n\nexport { ApprovalActions, ApprovalButton, ApprovalDialog }\nexport type { ApprovalAction, ApprovalActionsProps }\n","\"use client\"\n\nimport { useEffect, useRef } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nconst CHARS = \" .:-=+*#%@\"\nconst IS_MOBILE = typeof window !== \"undefined\" && window.innerWidth < 768\nconst CELL = IS_MOBILE ? 20 : 14\nconst FONT_SIZE = IS_MOBILE ? 16 : 12\n\ntype AsciiShaderProps = React.ComponentProps<\"canvas\"> & {\n paused?: boolean\n}\n\nfunction isDark() {\n return document.documentElement.classList.contains(\"dark\")\n}\n\nfunction AsciiShader({ paused = false, className, ...props }: AsciiShaderProps) {\n const canvasRef = useRef<HTMLCanvasElement>(null)\n const rafRef = useRef(0)\n const pausedRef = useRef(paused)\n const frameCount = useRef(0)\n\n useEffect(() => {\n pausedRef.current = paused\n }, [paused])\n\n useEffect(() => {\n const canvas = canvasRef.current\n if (!canvas) return\n\n const ctx = canvas.getContext(\"2d\")\n if (!ctx) return\n\n const mq = window.matchMedia(\"(prefers-reduced-motion: reduce)\")\n if (mq.matches) return\n\n let baseOpacity = isDark() ? 0.15 : 0.08\n let fgBase = isDark() ? \"255,255,255\" : \"0,0,0\"\n\n const updateColors = () => {\n baseOpacity = isDark() ? 0.15 : 0.08\n fgBase = isDark() ? \"255,255,255\" : \"0,0,0\"\n }\n\n const darkMq = window.matchMedia(\"(prefers-color-scheme: dark)\")\n darkMq.addEventListener(\"change\", updateColors)\n const mutObs = new MutationObserver(updateColors)\n mutObs.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [\"class\"],\n })\n\n const startTime = performance.now()\n let cols = 0\n let rows = 0\n\n const resize = () => {\n const dpr = Math.min(window.devicePixelRatio, 2)\n canvas.width = canvas.clientWidth * dpr\n canvas.height = canvas.clientHeight * dpr\n ctx.scale(dpr, dpr)\n cols = Math.ceil(canvas.clientWidth / CELL)\n rows = Math.ceil(canvas.clientHeight / CELL)\n }\n\n resize()\n window.addEventListener(\"resize\", resize)\n\n const render = (now: number) => {\n if (pausedRef.current) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n frameCount.current++\n if (frameCount.current % 3 !== 0) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n const w = canvas.clientWidth\n const h = canvas.clientHeight\n if (w === 0 || h === 0) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n ctx.clearRect(0, 0, w, h)\n ctx.font = `${FONT_SIZE}px var(--font-mono), monospace`\n ctx.textAlign = \"center\"\n ctx.textBaseline = \"middle\"\n\n const t = ((now - startTime) / 1000) * 0.8\n const t3 = t / 3\n const aspect = w / h\n\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < cols; col++) {\n const u = (col / cols) * aspect * 4 + t3 * 0.2\n const v = (row / rows) * 4 + t3 * 0.15\n\n const k = Math.cos(v * 1.3 + Math.sin(t3 * 0.8 + u * 0.7)) * 2\n const w2 = Math.sin(u * 1.1 + Math.cos(t3 * 0.6 - v * 0.9)) * 2\n const d = Math.sqrt(u * u + v * v) * 0.3\n const field = Math.cos(d + k) * Math.sin(d + w2) * Math.cos(k * w2 * 0.3 + t3)\n\n const val = field * 0.5 + 0.5\n const charIdx = Math.floor(val * (CHARS.length - 1))\n const char = CHARS[Math.min(charIdx, CHARS.length - 1)]\n\n if (char !== \" \") {\n const opacity = baseOpacity * (0.3 + 0.7 * (charIdx / (CHARS.length - 1)))\n ctx.fillStyle = `rgba(${fgBase},${opacity})`\n const x = col * CELL + CELL / 2\n const y = row * CELL + CELL / 2\n ctx.fillText(char, x, y)\n }\n }\n }\n\n rafRef.current = requestAnimationFrame(render)\n }\n\n rafRef.current = requestAnimationFrame(render)\n\n return () => {\n cancelAnimationFrame(rafRef.current)\n window.removeEventListener(\"resize\", resize)\n darkMq.removeEventListener(\"change\", updateColors)\n mutObs.disconnect()\n }\n }, [])\n\n return (\n <canvas\n ref={canvasRef}\n data-slot=\"ascii-shader\"\n className={cn(\"absolute inset-0 h-full w-full\", className)}\n {...props}\n />\n )\n}\n\nexport { AsciiShader }\nexport type { AsciiShaderProps }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction AuditLog({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"audit-log\"\n role=\"log\"\n className={cn(\"space-y-0 divide-y divide-border\", className)}\n {...props}\n />\n )\n}\n\nconst auditLogEntryVariants = cva(\n \"flex items-start gap-3 px-4 py-3 text-sm transition-colors hover:bg-muted/50\",\n {\n variants: {\n action: {\n create: \"\",\n update: \"\",\n delete: \"\",\n approve: \"\",\n reject: \"\",\n login: \"\",\n export: \"\",\n default: \"\",\n },\n },\n defaultVariants: {\n action: \"default\",\n },\n },\n)\n\ntype AuditLogEntryProps = React.ComponentProps<\"div\"> & VariantProps<typeof auditLogEntryVariants>\n\nfunction AuditLogEntry({ action, className, ...props }: AuditLogEntryProps) {\n return (\n <div\n data-slot=\"audit-log-entry\"\n data-action={action ?? \"default\"}\n className={cn(auditLogEntryVariants({ action }), className)}\n {...props}\n />\n )\n}\n\nfunction AuditLogIcon({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"audit-log-icon\"\n className={cn(\n \"mt-0.5 flex size-6 shrink-0 items-center justify-center rounded-full bg-muted\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AuditLogContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"audit-log-content\" className={cn(\"min-w-0 flex-1\", className)} {...props} />\n )\n}\n\nfunction AuditLogMessage({ className, ...props }: React.ComponentProps<\"p\">) {\n return <p data-slot=\"audit-log-message\" className={cn(\"text-sm\", className)} {...props} />\n}\n\nfunction AuditLogMeta({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"audit-log-meta\"\n className={cn(\"flex items-center gap-2 text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction AuditLogTime({ className, ...props }: React.ComponentProps<\"time\">) {\n return (\n <time\n data-slot=\"audit-log-time\"\n className={cn(\"shrink-0 text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction AuditLogDetail({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"audit-log-detail\"\n className={cn(\n \"mt-1.5 rounded-md border bg-muted/30 px-3 py-2 text-muted-foreground text-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n AuditLog,\n AuditLogEntry,\n AuditLogIcon,\n AuditLogContent,\n AuditLogMessage,\n AuditLogMeta,\n AuditLogTime,\n AuditLogDetail,\n auditLogEntryVariants,\n}\nexport type { AuditLogEntryProps }\n","\"use client\"\n\nimport { Avatar as AvatarPrimitive } from \"@base-ui/react/avatar\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Avatar({\n className,\n size = \"default\",\n ...props\n}: AvatarPrimitive.Root.Props & {\n size?: \"default\" | \"sm\" | \"lg\"\n}) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n \"group/avatar relative flex size-8 shrink-0 select-none rounded-full after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarImage({ className, ...props }: AvatarPrimitive.Image.Props) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square size-full rounded-full object-cover\", className)}\n {...props}\n />\n )\n}\n\nfunction AvatarFallback({ className, ...props }: AvatarPrimitive.Fallback.Props) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"flex size-full items-center justify-center rounded-full bg-muted text-muted-foreground text-sm group-data-[size=sm]/avatar:text-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarBadge({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n \"absolute right-0 bottom-0 z-10 inline-flex select-none items-center justify-center rounded-full bg-primary text-primary-foreground bg-blend-color ring-2 ring-background\",\n \"group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden\",\n \"group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2\",\n \"group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group\"\n className={cn(\n \"group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroupCount({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\n \"relative flex size-8 shrink-0 items-center justify-center rounded-full bg-muted text-muted-foreground text-sm ring-2 ring-background group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Avatar, AvatarImage, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarBadge }\n","import { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../lib/utils\"\n\nconst badgeVariants = cva(\n \"h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! inline-flex items-center justify-center w-fit whitespace-nowrap shrink-0 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive overflow-hidden group/badge\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground [a]:hover:bg-primary/80\",\n secondary: \"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80\",\n destructive:\n \"bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20\",\n outline: \"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground\",\n ghost: \"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n tagline:\n \"h-auto rounded-full border-border text-foreground [a]:hover:bg-accent [a]:hover:text-accent-foreground font-semibold text-base px-3 mx-auto flex mb-2\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n)\n\nfunction Badge({\n className,\n variant = \"default\",\n square = false,\n render,\n ...props\n}: useRender.ComponentProps<\"span\"> & VariantProps<typeof badgeVariants> & { square?: boolean }) {\n return useRender({\n defaultTagName: \"span\",\n props: mergeProps<\"span\">(\n {\n className: cn(badgeVariants({ variant }), square && \"rounded-none\", className),\n },\n props,\n ),\n render,\n state: {\n slot: \"badge\",\n variant,\n },\n })\n}\n\nexport { Badge, badgeVariants }\n","\"use client\"\n\nimport { useEffect, useRef } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\n// 4×4 Bayer dithering matrix (normalised to 0–1)\nconst BAYER = [\n 0 / 16,\n 8 / 16,\n 2 / 16,\n 10 / 16,\n 12 / 16,\n 4 / 16,\n 14 / 16,\n 6 / 16,\n 3 / 16,\n 11 / 16,\n 1 / 16,\n 9 / 16,\n 15 / 16,\n 7 / 16,\n 13 / 16,\n 5 / 16,\n]\n\nconst BAYER_SCALE = 4\nconst DOWNSAMPLE = 4\n\nfunction parseCssColor(value: string): [number, number, number] | null {\n // Handles \"rgb(r, g, b)\" and \"rgba(r, g, b, a)\" returned by getComputedStyle\n const match = value.match(/[\\d.]+/g)\n if (match && match.length >= 3) {\n return [\n Math.round(Number(match[0])),\n Math.round(Number(match[1])),\n Math.round(Number(match[2])),\n ]\n }\n return null\n}\n\nfunction resolveColors(): { fg: [number, number, number]; bg: [number, number, number] } {\n // Use a probe element to force the browser to resolve CSS custom properties\n // into computed rgb() values that the canvas pixel renderer can consume.\n const probe = document.createElement(\"div\")\n probe.style.display = \"none\"\n probe.style.color = \"var(--foreground)\"\n probe.style.backgroundColor = \"var(--background)\"\n document.body.appendChild(probe)\n const probeStyle = getComputedStyle(probe)\n const fgRgb = parseCssColor(probeStyle.color)\n const bgRgb = parseCssColor(probeStyle.backgroundColor)\n document.body.removeChild(probe)\n\n // Fallback values (light mode defaults)\n const fg: [number, number, number] = fgRgb ?? [0xdc, 0xdf, 0xe3]\n const bg: [number, number, number] = bgRgb ?? [0xfa, 0xfa, 0xfa]\n return { fg, bg }\n}\n\ninterface BgShaderProps {\n className?: string\n}\n\nfunction BgShader({ className }: BgShaderProps) {\n const canvasRef = useRef<HTMLCanvasElement>(null)\n const rafRef = useRef<number>(0)\n const visibleRef = useRef(false)\n const frameCount = useRef(0)\n useEffect(() => {\n const canvas = canvasRef.current\n if (!canvas) return\n\n const mq = window.matchMedia(\"(prefers-reduced-motion: reduce)\")\n const reducedMotion = mq.matches\n\n const ctx = canvas.getContext(\"2d\")\n if (!ctx) return\n\n let { fg, bg } = resolveColors()\n\n const updateColors = () => {\n const resolved = resolveColors()\n fg = resolved.fg\n bg = resolved.bg\n }\n\n const darkMq = window.matchMedia(\"(prefers-color-scheme: dark)\")\n darkMq.addEventListener(\"change\", updateColors)\n\n const mutObs = new MutationObserver(updateColors)\n mutObs.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [\"class\"],\n })\n\n const ioObs = new IntersectionObserver(\n ([entry]) => {\n visibleRef.current = entry.isIntersecting\n if (entry.isIntersecting) {\n rafRef.current = requestAnimationFrame(render)\n }\n },\n { rootMargin: \"100px\" },\n )\n ioObs.observe(canvas)\n\n const startTime = performance.now()\n\n const render = (now: number) => {\n if (!visibleRef.current || reducedMotion) return\n\n frameCount.current++\n if (frameCount.current % 2 !== 0) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n const w = canvas.clientWidth\n const h = canvas.clientHeight\n if (w === 0 || h === 0) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n const cw = Math.ceil(w / DOWNSAMPLE)\n const ch = Math.ceil(h / DOWNSAMPLE)\n\n if (canvas.width !== cw || canvas.height !== ch) {\n canvas.width = cw\n canvas.height = ch\n }\n\n const imageData = ctx.createImageData(cw, ch)\n const data = imageData.data\n\n const time = ((now - startTime) / 1000) * 0.5\n const t3 = time / 3\n const aspect = w / h\n\n for (let py = 0; py < ch; py++) {\n for (let px = 0; px < cw; px++) {\n const u = (px / cw) * aspect * 3.5 + t3 * 0.3\n const v = (py / ch) * 3.5 + t3 * 0.3\n\n const k = 0.1 + Math.cos(v + Math.sin(0.148 - t3)) + 2.4 * t3\n const w2 = 0.9 + Math.sin(u + Math.cos(0.628 + t3)) - 0.7 * t3\n const d = Math.sqrt(u * u + v * v)\n const s = 7.0 * Math.cos(d + w2) * Math.sin(k + w2)\n\n const r = 0.5 + 0.5 * Math.cos(s + 0.2)\n const g = 0.5 + 0.5 * Math.cos(s + 0.5)\n const b = 0.5 + 0.5 * Math.cos(s + 0.9)\n\n const gray = 0.299 * r + 0.587 * g + 0.114 * b\n\n const ox = px * DOWNSAMPLE\n const oy = py * DOWNSAMPLE\n const bx = Math.floor(ox / BAYER_SCALE) & 3\n const by = Math.floor(oy / BAYER_SCALE) & 3\n const threshold = BAYER[bx + by * 4]\n\n const idx = (py * cw + px) * 4\n if (gray > threshold) {\n data[idx] = fg[0]\n data[idx + 1] = fg[1]\n data[idx + 2] = fg[2]\n } else {\n data[idx] = bg[0]\n data[idx + 1] = bg[1]\n data[idx + 2] = bg[2]\n }\n data[idx + 3] = 255\n }\n }\n\n ctx.putImageData(imageData, 0, 0)\n rafRef.current = requestAnimationFrame(render)\n }\n\n if (reducedMotion) {\n requestAnimationFrame(() => {\n visibleRef.current = true\n frameCount.current = 1\n const w = canvas.clientWidth\n const h = canvas.clientHeight\n if (w === 0 || h === 0) return\n const cw = Math.ceil(w / DOWNSAMPLE)\n const ch = Math.ceil(h / DOWNSAMPLE)\n canvas.width = cw\n canvas.height = ch\n const imageData = ctx.createImageData(cw, ch)\n const data = imageData.data\n const aspect = w / h\n for (let py = 0; py < ch; py++) {\n for (let px = 0; px < cw; px++) {\n const u = (px / cw) * aspect * 3.5\n const v = (py / ch) * 3.5\n const k = 0.1 + Math.cos(v + Math.sin(0.148))\n const w2 = 0.9 + Math.sin(u + Math.cos(0.628))\n const d = Math.sqrt(u * u + v * v)\n const s = 7.0 * Math.cos(d + w2) * Math.sin(k + w2)\n const gray =\n 0.299 * (0.5 + 0.5 * Math.cos(s + 0.2)) +\n 0.587 * (0.5 + 0.5 * Math.cos(s + 0.5)) +\n 0.114 * (0.5 + 0.5 * Math.cos(s + 0.9))\n const ox = px * DOWNSAMPLE\n const oy = py * DOWNSAMPLE\n const bx = Math.floor(ox / BAYER_SCALE) & 3\n const by = Math.floor(oy / BAYER_SCALE) & 3\n const threshold = BAYER[bx + by * 4]\n const idx = (py * cw + px) * 4\n const c = gray > threshold ? fg : bg\n data[idx] = c[0]\n data[idx + 1] = c[1]\n data[idx + 2] = c[2]\n data[idx + 3] = 255\n }\n }\n ctx.putImageData(imageData, 0, 0)\n })\n }\n\n return () => {\n cancelAnimationFrame(rafRef.current)\n ioObs.disconnect()\n mutObs.disconnect()\n darkMq.removeEventListener(\"change\", updateColors)\n }\n }, [])\n\n return (\n <section className={cn(\"absolute inset-0 opacity-50\", className)} data-slot=\"bg-shader\">\n <canvas\n ref={canvasRef}\n className=\"block h-full w-full\"\n style={{ imageRendering: \"pixelated\" }}\n />\n </section>\n )\n}\n\nexport { BgShader }\n","\"use client\"\n\nimport { useEffect, useRef } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nconst CHARS = \" .:-=+*#%@\"\nconst CELL = 14\nconst FONT_SIZE = 12\n\ntype BlockyShaderProps = React.ComponentProps<\"canvas\"> & {\n paused?: boolean\n}\n\nfunction isDark() {\n return document.documentElement.classList.contains(\"dark\")\n}\n\nfunction BlockyShader({ paused = false, className, ...props }: BlockyShaderProps) {\n const canvasRef = useRef<HTMLCanvasElement>(null)\n const rafRef = useRef(0)\n const pausedRef = useRef(paused)\n const frameCount = useRef(0)\n\n useEffect(() => {\n pausedRef.current = paused\n }, [paused])\n\n useEffect(() => {\n const canvas = canvasRef.current\n if (!canvas) return\n\n const ctx = canvas.getContext(\"2d\")\n if (!ctx) return\n\n const mq = window.matchMedia(\"(prefers-reduced-motion: reduce)\")\n if (mq.matches) return\n\n let fg = isDark() ? \"rgba(255,255,255,0.12)\" : \"rgba(0,0,0,0.07)\"\n\n const updateColors = () => {\n fg = isDark() ? \"rgba(255,255,255,0.12)\" : \"rgba(0,0,0,0.07)\"\n }\n\n const darkMq = window.matchMedia(\"(prefers-color-scheme: dark)\")\n darkMq.addEventListener(\"change\", updateColors)\n const mutObs = new MutationObserver(updateColors)\n mutObs.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [\"class\"],\n })\n\n const startTime = performance.now()\n let cols = 0\n let rows = 0\n\n const resize = () => {\n const dpr = Math.min(window.devicePixelRatio, 2)\n canvas.width = canvas.clientWidth * dpr\n canvas.height = canvas.clientHeight * dpr\n ctx.scale(dpr, dpr)\n cols = Math.ceil(canvas.clientWidth / CELL)\n rows = Math.ceil(canvas.clientHeight / CELL)\n }\n\n resize()\n window.addEventListener(\"resize\", resize)\n\n const render = (now: number) => {\n if (pausedRef.current) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n frameCount.current++\n if (frameCount.current % 3 !== 0) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n const w = canvas.clientWidth\n const h = canvas.clientHeight\n if (w === 0 || h === 0) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n ctx.clearRect(0, 0, w, h)\n ctx.font = `${FONT_SIZE}px monospace`\n ctx.fillStyle = fg\n ctx.textAlign = \"center\"\n ctx.textBaseline = \"middle\"\n\n const t = ((now - startTime) / 1000) * 0.3\n const t3 = t / 3\n const aspect = w / h\n\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < cols; col++) {\n const u = (col / cols) * aspect * 4 + t3 * 0.2\n const v = (row / rows) * 4 + t3 * 0.15\n\n const k = Math.cos(v * 1.3 + Math.sin(t3 * 0.8 + u * 0.7)) * 2\n const w2 = Math.sin(u * 1.1 + Math.cos(t3 * 0.6 - v * 0.9)) * 2\n const d = Math.sqrt(u * u + v * v) * 0.3\n const field = Math.cos(d + k) * Math.sin(d + w2) * Math.cos(k * w2 * 0.3 + t3)\n\n const val = field * 0.5 + 0.5\n const charIdx = Math.floor(val * (CHARS.length - 1))\n const char = CHARS[Math.min(charIdx, CHARS.length - 1)]\n\n if (char !== \" \") {\n const x = col * CELL + CELL / 2\n const y = row * CELL + CELL / 2\n ctx.fillText(char, x, y)\n }\n }\n }\n\n rafRef.current = requestAnimationFrame(render)\n }\n\n rafRef.current = requestAnimationFrame(render)\n\n return () => {\n cancelAnimationFrame(rafRef.current)\n window.removeEventListener(\"resize\", resize)\n darkMq.removeEventListener(\"change\", updateColors)\n mutObs.disconnect()\n }\n }, [])\n\n return (\n <canvas\n ref={canvasRef}\n data-slot=\"blocky-shader\"\n className={cn(\"absolute inset-0 h-full w-full\", className)}\n {...props}\n />\n )\n}\n\nexport { BlockyShader }\nexport type { BlockyShaderProps }\n","import { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { ChevronRightIcon, MoreHorizontalIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Breadcrumb({ className, ...props }: React.ComponentProps<\"nav\">) {\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" className={cn(className)} {...props} />\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<\"ol\">) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"wrap-break-word flex flex-wrap items-center gap-1.5 text-muted-foreground text-sm sm:gap-2.5\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbLink({ className, render, ...props }: useRender.ComponentProps<\"a\">) {\n return useRender({\n defaultTagName: \"a\",\n props: mergeProps<\"a\">(\n {\n className: cn(\"hover:text-foreground transition-colors\", className),\n },\n props,\n ),\n render,\n state: {\n slot: \"breadcrumb-link\",\n },\n })\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRightIcon className=\"cn-rtl-flip\" />}\n </li>\n )\n}\n\nfunction BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex size-5 items-center justify-center [&>svg]:size-4\", className)}\n {...props}\n >\n <MoreHorizontalIcon />\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","\"use client\"\n\nimport { Separator as SeparatorPrimitive } from \"@base-ui/react/separator\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Separator({ className, orientation = \"horizontal\", ...props }: SeparatorPrimitive.Props) {\n return (\n <SeparatorPrimitive\n data-slot=\"separator\"\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n","import { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../lib/utils\"\nimport { Separator } from \"./separator\"\n\nconst buttonGroupVariants = cva(\n \"has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md flex w-fit items-stretch *:focus-visible:z-10 *:focus-visible:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal:\n \"[&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-md! [&>[data-slot]~[data-slot]]:rounded-l-none [&>[data-slot]~[data-slot]]:border-l-0 *:data-slot:rounded-r-none\",\n vertical:\n \"[&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-md! flex-col [&>[data-slot]~[data-slot]]:rounded-t-none [&>[data-slot]~[data-slot]]:border-t-0 *:data-slot:rounded-b-none\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n },\n)\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(buttonGroupVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupText({ className, render, ...props }: useRender.ComponentProps<\"div\">) {\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\n \"bg-muted gap-2 rounded-md border px-2.5 text-sm font-medium shadow-xs [&_svg:not([class*='size-'])]:size-4 flex items-center [&_svg]:pointer-events-none\",\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: \"button-group-text\",\n },\n })\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\n \"relative self-stretch bg-input data-horizontal:mx-px data-vertical:my-px data-vertical:h-auto data-horizontal:w-auto\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants }\n","\"use client\"\n\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\"\nimport * as React from \"react\"\nimport { type DayButton, DayPicker, getDefaultClassNames, type Locale } from \"react-day-picker\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button, buttonVariants } from \"./button\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n locale,\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 \"group/calendar bg-background in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(8)]\",\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 locale={locale}\n formatters={{\n formatMonthDropdown: (date) => date.toLocaleString(locale?.code, { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\"flex gap-4 flex-col md:flex-row relative\", defaultClassNames.months),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav,\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root,\n ),\n dropdown: cn(\"absolute bg-popover inset-0 opacity-0\", defaultClassNames.dropdown),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>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 \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday,\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\"select-none w-(--cell-size)\", defaultClassNames.week_number_header),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number,\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day,\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 z-0 isolate\",\n defaultClassNames.range_start,\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:left-0 z-0 isolate\",\n defaultClassNames.range_end,\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) 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(\"text-muted-foreground opacity-50\", defaultClassNames.disabled),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return <ChevronLeftIcon className={cn(\"cn-rtl-flip size-4\", className)} {...props} />\n }\n\n if (orientation === \"right\") {\n return <ChevronRightIcon className={cn(\"cn-rtl-flip size-4\", className)} {...props} />\n }\n\n return <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n },\n DayButton: ({ ...props }) => <CalendarDayButton locale={locale} {...props} />,\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\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n locale,\n ...props\n}: React.ComponentProps<typeof DayButton> & { locale?: Partial<Locale> }) {\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 variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString(locale?.code)}\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 \"relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 font-normal leading-none data-[range-end=true]:rounded-(--cell-radius) data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-r-(--cell-radius) data-[range-start=true]:rounded-l-(--cell-radius) data-[range-end=true]:bg-primary data-[range-middle=true]:bg-muted data-[range-start=true]:bg-primary data-[selected-single=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:text-foreground data-[range-start=true]:text-primary-foreground data-[selected-single=true]:text-primary-foreground 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 dark:hover:text-foreground [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport { AlertCircleIcon, InfoIcon, LightbulbIcon, TriangleAlertIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nconst calloutVariants = cva(\"flex gap-3 rounded-lg border p-4\", {\n variants: {\n variant: {\n info: \"border-blue-500/20 bg-blue-500/5 text-blue-900 dark:text-blue-200 [&>svg]:text-blue-500\",\n warning:\n \"border-amber-500/20 bg-amber-500/5 text-amber-900 dark:text-amber-200 [&>svg]:text-amber-500\",\n danger: \"border-red-500/20 bg-red-500/5 text-red-900 dark:text-red-200 [&>svg]:text-red-500\",\n tip: \"border-emerald-500/20 bg-emerald-500/5 text-emerald-900 dark:text-emerald-200 [&>svg]:text-emerald-500\",\n },\n },\n defaultVariants: { variant: \"info\" },\n})\n\nconst iconMap = {\n info: InfoIcon,\n warning: TriangleAlertIcon,\n danger: AlertCircleIcon,\n tip: LightbulbIcon,\n}\n\ntype CalloutProps = React.ComponentProps<\"div\"> & VariantProps<typeof calloutVariants>\n\nfunction Callout({ variant = \"info\", className, children, ...props }: CalloutProps) {\n const Icon = iconMap[variant!]\n return (\n <div data-slot=\"callout\" className={cn(calloutVariants({ variant }), className)} {...props}>\n <Icon className=\"mt-0.5 size-4 shrink-0\" />\n <div className=\"text-sm [&>p]:leading-relaxed\">{children}</div>\n </div>\n )\n}\n\nexport { Callout, calloutVariants }\nexport type { CalloutProps }\n","\"use client\"\n\nimport useEmblaCarousel, { type UseEmblaCarouselType } from \"embla-carousel-react\"\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\n\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\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\nfunction Carousel({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.ComponentProps<\"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) return\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) return\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) return\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: orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n const { carouselRef, orientation } = useCarousel()\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\" data-slot=\"carousel-content\">\n <div\n className={cn(\"flex\", orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\", className)}\n {...props}\n />\n </div>\n )\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const { orientation } = useCarousel()\n\n return (\n <div\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\" ? \"pl-4\" : \"pt-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -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 <ChevronLeftIcon className=\"cn-rtl-flip\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n )\n}\n\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -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 <ChevronRightIcon className=\"cn-rtl-flip\" />\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 useCarousel,\n}\n","\"use client\"\n\nimport { PreviewCard as PreviewCardPrimitive } from \"@base-ui/react/preview-card\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction HoverCard({ ...props }: PreviewCardPrimitive.Root.Props) {\n return <PreviewCardPrimitive.Root data-slot=\"hover-card\" {...props} />\n}\n\nfunction HoverCardTrigger({ ...props }: PreviewCardPrimitive.Trigger.Props) {\n return <PreviewCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n}\n\nfunction HoverCardContent({\n className,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 4,\n ...props\n}: PreviewCardPrimitive.Popup.Props &\n Pick<PreviewCardPrimitive.Positioner.Props, \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\">) {\n return (\n <PreviewCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <PreviewCardPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <PreviewCardPrimitive.Popup\n data-slot=\"hover-card-content\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 z-50 w-64 origin-(--transform-origin) rounded-lg border border-border-light bg-popover p-4 text-popover-foreground text-sm shadow-lg outline-hidden duration-100 data-closed:animate-out data-open:animate-in\",\n className,\n )}\n {...props}\n />\n </PreviewCardPrimitive.Positioner>\n </PreviewCardPrimitive.Portal>\n )\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n","import { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Separator } from \"./separator\"\n\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"list\"\n data-slot=\"item-group\"\n className={cn(\n \"group/item-group flex w-full flex-col gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ItemSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"item-separator\"\n orientation=\"horizontal\"\n className={cn(\"my-2\", className)}\n {...props}\n />\n )\n}\n\nconst itemVariants = cva(\n \"[a]:hover:bg-muted rounded-md border text-sm w-full group/item focus-visible:border-ring focus-visible:ring-ring/50 flex items-center flex-wrap outline-none transition-colors duration-100 focus-visible:ring-[3px] [a]:transition-colors\",\n {\n variants: {\n variant: {\n default: \"border-transparent\",\n outline: \"border-border\",\n muted: \"bg-muted/50 border-transparent\",\n },\n size: {\n default: \"gap-3.5 px-4 py-3.5\",\n sm: \"gap-2.5 px-3 py-2.5\",\n xs: \"gap-2 px-2.5 py-2 in-data-[slot=dropdown-menu-content]:p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n)\n\nfunction Item({\n className,\n variant = \"default\",\n size = \"default\",\n render,\n ...props\n}: useRender.ComponentProps<\"div\"> & VariantProps<typeof itemVariants>) {\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(itemVariants({ variant, size, className })),\n },\n props,\n ),\n render,\n state: {\n slot: \"item\",\n variant,\n size,\n },\n })\n}\n\nconst itemMediaVariants = cva(\n \"gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start flex shrink-0 items-center justify-center [&_svg]:pointer-events-none\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"[&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 overflow-hidden rounded-sm group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n)\n\nfunction ItemMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof itemMediaVariants>) {\n return (\n <div\n data-slot=\"item-media\"\n data-variant={variant}\n className={cn(itemMediaVariants({ variant, className }))}\n {...props}\n />\n )\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-content\"\n className={cn(\n \"flex flex-1 flex-col gap-1 group-data-[size=xs]/item:gap-0 [&+[data-slot=item-content]]:flex-none\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-title\"\n className={cn(\n \"line-clamp-1 flex w-fit items-center gap-2 font-medium text-sm leading-snug underline-offset-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"item-description\"\n className={cn(\n \"line-clamp-2 text-left font-normal text-muted-foreground text-sm leading-normal group-data-[size=xs]/item:text-xs [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"item-actions\" className={cn(\"flex items-center gap-2\", className)} {...props} />\n )\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-header\"\n className={cn(\"flex basis-full items-center justify-between gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-footer\"\n className={cn(\"flex basis-full items-center justify-between gap-2\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Item,\n ItemMedia,\n ItemContent,\n ItemActions,\n ItemGroup,\n ItemSeparator,\n ItemTitle,\n ItemDescription,\n ItemHeader,\n ItemFooter,\n}\n","\"use client\"\n\nimport { AlertTriangle, ArrowLeftRight, Calendar } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn, timeAgo } from \"../lib/utils\"\nimport { Badge } from \"./badge\"\nimport { Card } from \"./card\"\nimport { HoverCard, HoverCardContent, HoverCardTrigger } from \"./hover-card\"\nimport { Item, ItemContent, ItemDescription, ItemMedia, ItemTitle } from \"./item\"\n\n/* ------------------------------------------------------------------ */\n/* Style maps */\n/* ------------------------------------------------------------------ */\n\nconst SLA_BADGE: Record<string, string> = {\n on_track:\n \"text-emerald-700 bg-emerald-50 border-emerald-200 dark:text-emerald-400 dark:bg-emerald-950 dark:border-emerald-800\",\n at_risk:\n \"text-amber-700 bg-amber-50 border-amber-200 dark:text-amber-400 dark:bg-amber-950 dark:border-amber-800\",\n overdue:\n \"text-red-700 bg-red-50 border-red-200 dark:text-red-400 dark:bg-red-950 dark:border-red-800\",\n}\n\nconst PRIORITY_BADGE: Record<string, string> = {\n p1: \"text-red-700 bg-red-50 border-red-200 dark:text-red-400 dark:bg-red-950 dark:border-red-800\",\n p2: \"text-orange-700 bg-orange-50 border-orange-200 dark:text-orange-400 dark:bg-orange-950 dark:border-orange-800\",\n p3: \"text-slate-700 bg-slate-100 border-slate-200 dark:text-slate-400 dark:bg-slate-900 dark:border-slate-700\",\n}\n\nconst SEVERITY_DOT: Record<string, string> = {\n low: \"bg-slate-400\",\n medium: \"bg-amber-500\",\n high: \"bg-orange-500\",\n critical: \"bg-red-500\",\n}\n\n/* ------------------------------------------------------------------ */\n/* Types */\n/* ------------------------------------------------------------------ */\n\nexport type CaseCardAlert = {\n id: string\n severity: string\n trigger: string\n type: string\n href?: string\n}\n\nexport type CaseCardTransaction = {\n id: string\n amount: string\n asset: string\n direction: string\n href?: string\n}\n\nexport type CaseCardAssignee = {\n name: string\n role?: string\n}\n\nexport type CaseCardProps = {\n id: string\n title: string\n entities: string[]\n sla: string\n priority: string\n updatedAt: string\n assignee?: CaseCardAssignee\n linkedAlerts?: CaseCardAlert[]\n linkedTransactions?: CaseCardTransaction[]\n onClick?: () => void\n className?: string\n}\n\n/* ------------------------------------------------------------------ */\n/* Component */\n/* ------------------------------------------------------------------ */\n\nfunction CaseCard({\n id,\n title,\n entities,\n sla,\n priority,\n updatedAt,\n assignee,\n linkedAlerts = [],\n linkedTransactions = [],\n onClick,\n className,\n}: CaseCardProps) {\n const initials = assignee\n ? assignee.name\n .split(\" \")\n .map((n) => n[0])\n .join(\"\")\n .slice(0, 2)\n : null\n\n return (\n <Card\n padding=\"none\"\n className={cn(\n \"cursor-pointer p-4 transition-all duration-200 hover:-translate-y-0.5 hover:border-emerald-800 hover:bg-emerald-50/20 hover:shadow-md\",\n className,\n )}\n onClick={onClick}\n >\n {/* Header: ID + SLA */}\n <div className=\"flex flex-col gap-y-2 pb-2\">\n <div className=\"flex items-center justify-between\">\n <span className=\"flex items-center gap-2 font-mono text-[10px] text-muted-foreground\">\n {id.replace(\"case-\", \"CASE-\")}\n </span>\n <Badge\n square\n variant=\"outline\"\n className={cn(\n \"items-center px-1 py-0.5 text-[9px] uppercase leading-none\",\n SLA_BADGE[sla],\n )}\n >\n {sla === \"overdue\" && (\n <span className=\"relative flex size-1.5\">\n <span className=\"absolute inline-flex h-full w-full animate-ping rounded-full bg-red-400 opacity-75\" />\n <span className=\"relative inline-flex size-1.5 rounded-full bg-red-500\" />\n </span>\n )}\n {sla.replace(\"_\", \" \")}\n </Badge>\n </div>\n\n {/* Body: title + entities */}\n <div className=\"flex flex-col gap-y-1\">\n <p className=\"line-clamp-2 font-semibold text-sm leading-snug\">{title}</p>\n <p className=\"truncate text-muted-foreground text-xs\">{entities.join(\", \")}</p>\n </div>\n\n {/* Meta: priority + assignee */}\n <div className=\"flex items-center justify-between py-1\">\n <div className=\"flex items-center gap-1.5\">\n <Badge\n square\n variant=\"outline\"\n className={cn(\"px-1.5 py-0.5 text-[10px] leading-none\", PRIORITY_BADGE[priority])}\n >\n {priority.toUpperCase()}\n </Badge>\n </div>\n {assignee && initials && (\n <HoverCard>\n <HoverCardTrigger onClick={(e: React.MouseEvent) => e.stopPropagation()}>\n <div className=\"flex size-6 shrink-0 items-center justify-center rounded-full bg-primary/10 font-semibold text-[10px] text-primary transition-all hover:ring-2 hover:ring-primary/20\">\n {initials}\n </div>\n </HoverCardTrigger>\n <HoverCardContent side=\"top\" className=\"w-48 text-xs\">\n <div className=\"flex items-center gap-2\">\n <div className=\"flex size-8 shrink-0 items-center justify-center rounded-full bg-primary/10 font-semibold text-primary text-xs\">\n {initials}\n </div>\n <div>\n <p className=\"font-medium\">{assignee.name}</p>\n <p className=\"text-muted-foreground\">{assignee.role ?? \"Compliance Analyst\"}</p>\n </div>\n </div>\n </HoverCardContent>\n </HoverCard>\n )}\n </div>\n </div>\n\n {/* Footer: linked items + timestamp */}\n <div className=\"-mx-4 -mb-3 flex items-center gap-4 border-t border-dashed px-4 py-3 font-mono text-muted-foreground text-xs\">\n {linkedAlerts.length > 0 && (\n <HoverCard>\n <HoverCardTrigger\n className=\"flex items-center gap-1 transition-colors hover:text-foreground\"\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n >\n <AlertTriangle className=\"size-3.5\" />\n {linkedAlerts.length}\n </HoverCardTrigger>\n <HoverCardContent side=\"top\" className=\"w-72 p-2\">\n <p className=\"px-2 py-1 font-medium text-muted-foreground text-xs\">Linked Alerts</p>\n {linkedAlerts.map((a) => (\n <Item\n key={a.id}\n size=\"xs\"\n {...(a.href\n ? {\n render: (\n <a href={a.href} onClick={(e: React.MouseEvent) => e.stopPropagation()} />\n ),\n }\n : {})}\n >\n <ItemMedia>\n <div className={cn(\"size-2 rounded-full\", SEVERITY_DOT[a.severity])} />\n </ItemMedia>\n <ItemContent>\n <ItemTitle className=\"text-xs\">{a.trigger}</ItemTitle>\n <ItemDescription className=\"text-[10px]\">\n {a.id} · {a.type}\n </ItemDescription>\n </ItemContent>\n </Item>\n ))}\n </HoverCardContent>\n </HoverCard>\n )}\n {linkedTransactions.length > 0 && (\n <HoverCard>\n <HoverCardTrigger\n className=\"flex items-center gap-1 transition-colors hover:text-foreground\"\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n >\n <ArrowLeftRight className=\"size-3.5\" />\n {linkedTransactions.length}\n </HoverCardTrigger>\n <HoverCardContent side=\"top\" className=\"w-72 p-2\">\n <p className=\"px-2 py-1 font-medium text-muted-foreground text-xs\">\n Linked Transactions\n </p>\n {linkedTransactions.map((t) => (\n <Item\n key={t.id}\n size=\"xs\"\n {...(t.href\n ? {\n render: (\n <a href={t.href} onClick={(e: React.MouseEvent) => e.stopPropagation()} />\n ),\n }\n : {})}\n >\n <ItemMedia>\n <ArrowLeftRight className=\"size-3 text-muted-foreground\" />\n </ItemMedia>\n <ItemContent>\n <ItemTitle className=\"text-xs\">\n {t.amount} {t.asset}\n </ItemTitle>\n <ItemDescription className=\"text-[10px]\">\n {t.id} · {t.direction}\n </ItemDescription>\n </ItemContent>\n </Item>\n ))}\n </HoverCardContent>\n </HoverCard>\n )}\n <span className=\"ml-auto flex items-center gap-1\">\n <Calendar className=\"size-3.5\" />\n {timeAgo(updatedAt)}\n </span>\n </div>\n </Card>\n )\n}\n\nexport { CaseCard }\n","\"use client\"\n\nimport { Checkbox as CheckboxPrimitive } from \"@base-ui/react/checkbox\"\n\nimport { CheckIcon } from \"lucide-react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input shadow-xs outline-none transition-shadow after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 group-has-disabled/field:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:bg-input/30 dark:data-checked:bg-primary dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none [&>svg]:size-3.5\"\n >\n <CheckIcon />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n","\"use client\"\n\nimport { CheckIcon, ClipboardIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { useCallback, useEffect, useState } from \"react\"\nimport type { BundledLanguage, BundledTheme, HighlighterGeneric } from \"shiki\"\nimport { cn } from \"../lib/utils\"\n\ntype CodeBlockProps = React.ComponentProps<\"div\"> & {\n /** The code content */\n code: string\n /** Language for syntax highlighting (e.g. \"tsx\", \"typescript\", \"css\") */\n language?: string\n /** Show line numbers */\n showLineNumbers?: boolean\n /** Show copy button */\n showCopy?: boolean\n}\n\nlet highlighterPromise: Promise<HighlighterGeneric<BundledLanguage, BundledTheme>> | null = null\n\nfunction getHighlighter() {\n if (!highlighterPromise) {\n highlighterPromise = import(\"shiki\").then((mod) =>\n mod.createHighlighter({\n themes: [\"github-dark-default\", \"github-light-default\"],\n langs: [\n \"tsx\",\n \"typescript\",\n \"javascript\",\n \"css\",\n \"html\",\n \"json\",\n \"bash\",\n \"shell\",\n \"markdown\",\n \"python\",\n \"go\",\n \"rust\",\n \"sql\",\n \"yaml\",\n ],\n }),\n )\n }\n return highlighterPromise\n}\n\nfunction CodeBlock({\n code,\n language,\n showLineNumbers = false,\n showCopy = true,\n className,\n ...props\n}: CodeBlockProps) {\n const [copied, setCopied] = useState(false)\n const [highlightedHtml, setHighlightedHtml] = useState<string | null>(null)\n\n const handleCopy = useCallback(() => {\n navigator.clipboard.writeText(code)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n }, [code])\n\n useEffect(() => {\n if (!language) return\n let cancelled = false\n getHighlighter()\n .then((highlighter) => {\n if (cancelled) return\n const supportedLangs = highlighter.getLoadedLanguages()\n if (!supportedLangs.includes(language as BundledLanguage)) return\n const html = highlighter.codeToHtml(code, {\n lang: language,\n themes: {\n light: \"github-light-default\",\n dark: \"github-dark-default\",\n },\n })\n setHighlightedHtml(html)\n })\n .catch(() => {\n // Fallback to plain text on error\n })\n return () => {\n cancelled = true\n }\n }, [code, language])\n\n const lines = code.split(\"\\n\")\n\n return (\n <div\n data-slot=\"code-block\"\n className={cn(\"relative rounded-lg border bg-muted\", className)}\n {...props}\n >\n {(language || showCopy) && (\n <div className=\"flex items-center justify-between border-b px-4 py-2\">\n {language && (\n <span className=\"font-medium text-muted-foreground text-xs\">{language}</span>\n )}\n {showCopy && (\n <button\n type=\"button\"\n onClick={handleCopy}\n className=\"inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-muted-foreground text-xs transition-colors hover:text-foreground\"\n >\n {copied ? <CheckIcon className=\"size-3.5\" /> : <ClipboardIcon className=\"size-3.5\" />}\n {copied ? \"Copied!\" : \"Copy\"}\n </button>\n )}\n </div>\n )}\n {highlightedHtml ? (\n <div\n className={cn(\n \"[&_.shiki]:bg-transparent! [&_pre]:overflow-x-auto [&_pre]:p-4 [&_pre]:font-mono [&_pre]:text-sm [&_pre]:leading-relaxed\",\n showLineNumbers &&\n \"[&_.shiki_.line]:table-row [&_.shiki_.line]:[counter-increment:line] [&_.shiki_.line]:before:table-cell [&_.shiki_.line]:before:select-none [&_.shiki_.line]:before:pr-4 [&_.shiki_.line]:before:text-right [&_.shiki_.line]:before:text-muted-foreground/50 [&_.shiki_.line]:before:content-[counter(line)] [&_.shiki_code]:table [&_.shiki_code]:w-full [&_.shiki_code]:[counter-reset:line]\",\n )}\n // biome-ignore lint: html from shiki is safe\n dangerouslySetInnerHTML={{ __html: highlightedHtml }}\n />\n ) : (\n <pre className=\"overflow-x-auto p-4 font-mono text-sm leading-relaxed\">\n <code className={cn(showLineNumbers && \"table w-full\")}>\n {showLineNumbers\n ? lines.map((line, i) => (\n <span key={i} className=\"table-row\">\n <span className=\"table-cell select-none pr-4 text-right align-top text-muted-foreground/50\">\n {i + 1}\n </span>\n <span className=\"table-cell whitespace-pre\">{line}</span>\n </span>\n ))\n : code}\n </code>\n </pre>\n )}\n </div>\n )\n}\n\nexport { CodeBlock }\nexport type { CodeBlockProps }\n","\"use client\"\n\nimport { Collapsible as CollapsiblePrimitive } from \"@base-ui/react/collapsible\"\n\nfunction Collapsible({ ...props }: CollapsiblePrimitive.Root.Props) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({ ...props }: CollapsiblePrimitive.Trigger.Props) {\n return <CollapsiblePrimitive.Trigger data-slot=\"collapsible-trigger\" {...props} />\n}\n\nfunction CollapsibleContent({ ...props }: CollapsiblePrimitive.Panel.Props) {\n return <CollapsiblePrimitive.Panel data-slot=\"collapsible-content\" {...props} />\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\nimport { Input } from \"./input\"\nimport { Textarea } from \"./textarea\"\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group relative flex h-9 w-full min-w-0 items-center rounded-md border border-input shadow-xs outline-none transition-[color,box-shadow] in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-start]]:h-auto has-[>textarea]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:flex-col has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:bg-input/30 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-start]]:[&>input]:pl-1.5\",\n className,\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none\",\n {\n variants: {\n align: {\n \"inline-start\": \"pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem] order-first\",\n \"inline-end\": \"pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem] order-last\",\n \"block-start\":\n \"px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start\",\n \"block-end\":\n \"px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n)\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus()\n }}\n {...props}\n />\n )\n}\n\nconst inputGroupButtonVariants = cva(\"gap-2 text-sm shadow-none flex items-center\", {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n \"icon-xs\": \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n})\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\" | \"type\"> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: \"button\" | \"submit\" | \"reset\"\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-muted-foreground text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n}\n","\"use client\"\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\"\nimport { CheckIcon, ChevronDownIcon, XIcon } from \"lucide-react\"\nimport * as React from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\nimport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from \"./input-group\"\n\nconst Combobox = ComboboxPrimitive.Root\n\nfunction ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />\n}\n\nfunction ComboboxTrigger({ className, children, ...props }: ComboboxPrimitive.Trigger.Props) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={cn(\"[&_svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n </ComboboxPrimitive.Trigger>\n )\n}\n\nfunction ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n render={<InputGroupButton variant=\"ghost\" size=\"icon-xs\" />}\n className={cn(className)}\n {...props}\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.Clear>\n )\n}\n\nfunction ComboboxInput({\n className,\n children,\n disabled = false,\n showTrigger = true,\n showClear = false,\n ...props\n}: ComboboxPrimitive.Input.Props & {\n showTrigger?: boolean\n showClear?: boolean\n}) {\n return (\n <InputGroup className={cn(\"w-auto\", className)}>\n <ComboboxPrimitive.Input render={<InputGroupInput disabled={disabled} />} {...props} />\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupButton\n size=\"icon-xs\"\n variant=\"ghost\"\n render={<ComboboxTrigger />}\n data-slot=\"input-group-button\"\n className=\"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent\"\n disabled={disabled}\n />\n )}\n {showClear && <ComboboxClear disabled={disabled} />}\n </InputGroupAddon>\n {children}\n </InputGroup>\n )\n}\n\nfunction ComboboxContent({\n className,\n side = \"bottom\",\n sideOffset = 6,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n >) {\n return (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n className=\"isolate z-50\"\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-content\"\n data-chips={!!anchor}\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 cn-menu-target group/combobox-content relative max-h-(--available-height) w-(--anchor-width) min-w-[calc(var(--anchor-width)+--spacing(7))] max-w-(--available-width) origin-(--transform-origin) overflow-hidden rounded-lg border border-border-light bg-popover text-popover-foreground shadow-lg duration-100 data-[chips=true]:min-w-(--anchor-width) data-closed:animate-out data-open:animate-in *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none\",\n className,\n )}\n {...props}\n />\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n )\n}\n\nfunction ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n \"no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxItem({ className, children, ...props }: ComboboxPrimitive.Item.Props) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden data-disabled:pointer-events-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-disabled:opacity-50 not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <ComboboxPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ItemIndicator>\n </ComboboxPrimitive.Item>\n )\n}\n\nfunction ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) {\n return <ComboboxPrimitive.Group data-slot=\"combobox-group\" className={cn(className)} {...props} />\n}\n\nfunction ComboboxLabel({ className, ...props }: ComboboxPrimitive.GroupLabel.Props) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-label\"\n className={cn(\"px-2 py-1.5 text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props) {\n return <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n}\n\nfunction ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\n \"hidden w-full justify-center py-2 text-center text-muted-foreground text-sm group-data-empty/combobox-content:flex\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxSeparator({ className, ...props }: ComboboxPrimitive.Separator.Props) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxChips({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> & ComboboxPrimitive.Chips.Props) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={cn(\n \"flex min-h-9 flex-wrap items-center gap-1.5 rounded-md border border-input bg-transparent bg-clip-padding px-2.5 py-1.5 text-sm shadow-xs transition-[color,box-shadow] focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-data-[slot=combobox-chip]:px-1.5 has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxChip({\n className,\n children,\n showRemove = true,\n ...props\n}: ComboboxPrimitive.Chip.Props & {\n showRemove?: boolean\n}) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={cn(\n \"flex h-[calc(--spacing(5.5))] w-fit items-center justify-center gap-1 whitespace-nowrap rounded-sm bg-muted px-1.5 font-medium text-foreground text-xs has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-data-[slot=combobox-chip-remove]:pr-0 has-disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n {children}\n {showRemove && (\n <ComboboxPrimitive.ChipRemove\n render={<Button variant=\"ghost\" size=\"icon-xs\" />}\n className=\"-ml-1 opacity-50 hover:opacity-100\"\n data-slot=\"combobox-chip-remove\"\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ChipRemove>\n )}\n </ComboboxPrimitive.Chip>\n )\n}\n\nfunction ComboboxChipsInput({ className, ...props }: ComboboxPrimitive.Input.Props) {\n return (\n <ComboboxPrimitive.Input\n data-slot=\"combobox-chip-input\"\n className={cn(\"min-w-16 flex-1 outline-none\", className)}\n {...props}\n />\n )\n}\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null)\n}\n\nexport {\n Combobox,\n ComboboxInput,\n ComboboxContent,\n ComboboxList,\n ComboboxItem,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxEmpty,\n ComboboxSeparator,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n ComboboxTrigger,\n ComboboxValue,\n useComboboxAnchor,\n}\n","\"use client\"\n\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { CheckIcon, SearchIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from \"./dialog\"\nimport { InputGroup, InputGroupAddon } from \"./input-group\"\n\nfunction Command({ className, ...props }: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n \"flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CommandDialog({\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n children,\n className,\n showCloseButton = false,\n ...props\n}: Omit<React.ComponentProps<typeof Dialog>, \"children\"> & {\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n children: React.ReactNode\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn(\"top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0\", className)}\n showCloseButton={showCloseButton}\n >\n {children}\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction CommandInput({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div data-slot=\"command-input-wrapper\" className=\"p-1 pb-0\">\n <InputGroup className=\"h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:pl-2!\">\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn(\n \"w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n <InputGroupAddon>\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n </InputGroupAddon>\n </InputGroup>\n </div>\n )\n}\n\nfunction CommandList({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn(\n \"no-scrollbar max-h-72 scroll-py-1 overflow-y-auto overflow-x-hidden outline-none\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CommandEmpty({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className={cn(\"py-6 text-center text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\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]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground **:[[cmdk-group-heading]]:text-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn(\"-mx-1 h-px w-auto bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n \"group/command-item relative flex cursor-default select-none items-center gap-2 in-data-[slot=dialog-content]:rounded-lg! rounded-sm px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-selected:bg-muted data-selected:text-foreground data-[disabled=true]:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0 data-selected:**:[svg]:text-foreground\",\n className,\n )}\n {...props}\n >\n {children}\n <CheckIcon className=\"ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100\" />\n </CommandPrimitive.Item>\n )\n}\n\nfunction CommandShortcut({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n \"ml-auto text-muted-foreground text-xs tracking-widest group-data-selected/command-item:text-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","import type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction CommentThread({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"comment-thread\" className={cn(\"space-y-4\", className)} {...props} />\n}\n\ntype CommentProps = React.ComponentProps<\"div\"> & {\n /** Whether this is a reply (indented) */\n reply?: boolean\n}\n\nfunction Comment({ reply, className, ...props }: CommentProps) {\n return (\n <div data-slot=\"comment\" className={cn(\"flex gap-3\", reply && \"ml-10\", className)} {...props} />\n )\n}\n\nfunction CommentAvatar({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"comment-avatar\"\n className={cn(\n \"flex size-8 shrink-0 items-center justify-center rounded-full bg-muted font-medium text-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CommentBody({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"comment-body\"\n className={cn(\"min-w-0 flex-1 space-y-1\", className)}\n {...props}\n />\n )\n}\n\nfunction CommentHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"comment-header\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction CommentAuthor({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span data-slot=\"comment-author\" className={cn(\"font-medium text-sm\", className)} {...props} />\n )\n}\n\nfunction CommentTime({ className, ...props }: React.ComponentProps<\"time\">) {\n return (\n <time\n data-slot=\"comment-time\"\n className={cn(\"text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction CommentContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"comment-content\"\n className={cn(\"text-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CommentActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"comment-actions\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n )\n}\n\nexport {\n CommentThread,\n Comment,\n CommentAvatar,\n CommentBody,\n CommentHeader,\n CommentAuthor,\n CommentTime,\n CommentContent,\n CommentActions,\n}\nexport type { CommentProps }\n","\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { useEffect, useRef, useState } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nconst complianceScoreVariants = cva(\"relative inline-flex items-center justify-center\", {\n variants: {\n size: {\n sm: \"size-20\",\n default: \"size-28\",\n lg: \"size-36\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\n/** Map size to SVG stroke width and font sizing */\nconst sizeConfig = {\n sm: { strokeWidth: 5, viewBox: 80, radius: 34, fontSize: \"text-lg\", labelSize: \"text-[8px]\" },\n default: {\n strokeWidth: 6,\n viewBox: 80,\n radius: 34,\n fontSize: \"text-2xl\",\n labelSize: \"text-[9px]\",\n },\n lg: {\n strokeWidth: 7,\n viewBox: 80,\n radius: 34,\n fontSize: \"text-3xl\",\n labelSize: \"text-[10px]\",\n },\n} as const\n\nfunction getScoreColor(score: number): string {\n if (score <= 40) return \"text-destructive\"\n if (score <= 70) return \"text-warning\"\n return \"text-emerald-500\"\n}\n\nfunction getTrackColor(score: number): string {\n if (score <= 40) return \"text-destructive/15\"\n if (score <= 70) return \"text-warning/15\"\n return \"text-emerald-500/15\"\n}\n\ntype ComplianceScoreProps = React.ComponentProps<\"div\"> &\n VariantProps<typeof complianceScoreVariants> & {\n /** Compliance score from 0–100 */\n score: number\n /** Optional label rendered below the score */\n label?: string\n /** Show the numeric value in the center. Default: true */\n showValue?: boolean\n /** Override the automatic color (accepts a Tailwind text-color class) */\n color?: string\n }\n\nfunction ComplianceScore({\n score,\n label,\n size = \"default\",\n showValue = true,\n color,\n className,\n ...props\n}: ComplianceScoreProps) {\n const clampedScore = Math.max(0, Math.min(100, score))\n const cfg = sizeConfig[size ?? \"default\"]\n const circumference = 2 * Math.PI * cfg.radius\n const [animatedScore, setAnimatedScore] = useState(0)\n const hasAnimated = useRef(false)\n const ref = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const el = ref.current\n if (!el) return\n\n if (hasAnimated.current) {\n setAnimatedScore(clampedScore)\n return\n }\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (!entry.isIntersecting || hasAnimated.current) return\n hasAnimated.current = true\n\n const start = performance.now()\n const duration = 800\n\n function tick(now: number) {\n const progress = Math.min((now - start) / duration, 1)\n // Cubic ease-out\n const eased = 1 - (1 - progress) ** 3\n setAnimatedScore(Math.round(clampedScore * eased))\n if (progress < 1) requestAnimationFrame(tick)\n }\n\n requestAnimationFrame(tick)\n },\n { threshold: 0.5 },\n )\n\n observer.observe(el)\n return () => observer.disconnect()\n }, [clampedScore])\n\n const dashOffset = circumference - (animatedScore / 100) * circumference\n const scoreColor = color ?? getScoreColor(clampedScore)\n const trackColor = color ? `${color}/15` : getTrackColor(clampedScore)\n\n return (\n <div\n ref={ref}\n data-slot=\"compliance-score\"\n className={cn(complianceScoreVariants({ size }), className)}\n {...props}\n >\n <svg\n viewBox={`0 0 ${cfg.viewBox} ${cfg.viewBox}`}\n className=\"absolute inset-0 size-full -rotate-90\"\n aria-hidden=\"true\"\n >\n {/* Track */}\n <circle\n cx={cfg.viewBox / 2}\n cy={cfg.viewBox / 2}\n r={cfg.radius}\n fill=\"none\"\n strokeWidth={cfg.strokeWidth}\n className={cn(\"stroke-current\", trackColor)}\n strokeLinecap=\"round\"\n />\n {/* Fill */}\n <circle\n cx={cfg.viewBox / 2}\n cy={cfg.viewBox / 2}\n r={cfg.radius}\n fill=\"none\"\n strokeWidth={cfg.strokeWidth}\n className={cn(\"stroke-current transition-[stroke-dashoffset] duration-300\", scoreColor)}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={dashOffset}\n />\n </svg>\n\n {/* Center content */}\n {showValue && (\n <div className=\"relative z-10 flex flex-col items-center\">\n <span\n className={cn(\"font-mono font-semibold tabular-nums\", cfg.fontSize, scoreColor)}\n aria-label={`${animatedScore}%`}\n >\n {animatedScore}\n </span>\n {label && (\n <span\n className={cn(\n \"mt-0.5 font-medium text-muted-foreground uppercase tracking-wide\",\n cfg.labelSize,\n )}\n >\n {label}\n </span>\n )}\n </div>\n )}\n </div>\n )\n}\n\nexport { ComplianceScore, complianceScoreVariants }\nexport type { ComplianceScoreProps }\n","\"use client\"\n\nimport { ContextMenu as ContextMenuPrimitive } from \"@base-ui/react/context-menu\"\nimport { CheckIcon, ChevronRightIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction ContextMenu({ ...props }: ContextMenuPrimitive.Root.Props) {\n return <ContextMenuPrimitive.Root data-slot=\"context-menu\" {...props} />\n}\n\nfunction ContextMenuPortal({ ...props }: ContextMenuPrimitive.Portal.Props) {\n return <ContextMenuPrimitive.Portal data-slot=\"context-menu-portal\" {...props} />\n}\n\nfunction ContextMenuTrigger({ className, ...props }: ContextMenuPrimitive.Trigger.Props) {\n return (\n <ContextMenuPrimitive.Trigger\n data-slot=\"context-menu-trigger\"\n className={cn(\"select-none\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextMenuContent({\n className,\n align = \"start\",\n alignOffset = 4,\n side = \"right\",\n sideOffset = 0,\n ...props\n}: ContextMenuPrimitive.Popup.Props &\n Pick<ContextMenuPrimitive.Positioner.Props, \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\">) {\n return (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <ContextMenuPrimitive.Popup\n data-slot=\"context-menu-content\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 cn-menu-target z-50 max-h-(--available-height) min-w-36 origin-(--transform-origin) overflow-y-auto overflow-x-hidden rounded-lg border border-border-light bg-popover p-1 text-popover-foreground shadow-lg outline-none duration-100 data-closed:animate-out data-open:animate-in\",\n className,\n )}\n {...props}\n />\n </ContextMenuPrimitive.Positioner>\n </ContextMenuPrimitive.Portal>\n )\n}\n\nfunction ContextMenuGroup({ ...props }: ContextMenuPrimitive.Group.Props) {\n return <ContextMenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />\n}\n\nfunction ContextMenuLabel({\n className,\n inset,\n ...props\n}: ContextMenuPrimitive.GroupLabel.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.GroupLabel\n data-slot=\"context-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 font-medium text-muted-foreground text-xs data-inset:pl-8\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: ContextMenuPrimitive.Item.Props & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <ContextMenuPrimitive.Item\n data-slot=\"context-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/context-menu-item relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-[variant=destructive]:text-destructive data-disabled:opacity-50 data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuSub({ ...props }: ContextMenuPrimitive.SubmenuRoot.Props) {\n return <ContextMenuPrimitive.SubmenuRoot data-slot=\"context-menu-sub\" {...props} />\n}\n\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: ContextMenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.SubmenuTrigger\n data-slot=\"context-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-inset:pl-8 data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"cn-rtl-flip ml-auto\" />\n </ContextMenuPrimitive.SubmenuTrigger>\n )\n}\n\nfunction ContextMenuSubContent({ ...props }: React.ComponentProps<typeof ContextMenuContent>) {\n return (\n <ContextMenuContent\n data-slot=\"context-menu-sub-content\"\n className=\"shadow-lg\"\n side=\"right\"\n {...props}\n />\n )\n}\n\nfunction ContextMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: ContextMenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.CheckboxItem\n data-slot=\"context-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2\">\n <ContextMenuPrimitive.CheckboxItemIndicator>\n <CheckIcon />\n </ContextMenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n )\n}\n\nfunction ContextMenuRadioGroup({ ...props }: ContextMenuPrimitive.RadioGroup.Props) {\n return <ContextMenuPrimitive.RadioGroup data-slot=\"context-menu-radio-group\" {...props} />\n}\n\nfunction ContextMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: ContextMenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.RadioItem\n data-slot=\"context-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2\">\n <ContextMenuPrimitive.RadioItemIndicator>\n <CheckIcon />\n </ContextMenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n )\n}\n\nfunction ContextMenuSeparator({ className, ...props }: ContextMenuPrimitive.Separator.Props) {\n return (\n <ContextMenuPrimitive.Separator\n data-slot=\"context-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextMenuShortcut({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"context-menu-shortcut\"\n className={cn(\n \"ml-auto text-muted-foreground text-xs tracking-widest group-focus/context-menu-item:text-accent-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 { CheckIcon, ClipboardIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { useCallback, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\n\ntype CopyButtonProps = Omit<React.ComponentProps<typeof Button>, \"onClick\"> & {\n /** Text to copy to clipboard */\n value: string\n /** How long \"Copied!\" stays visible (ms). Default 2000 */\n timeout?: number\n}\n\nfunction CopyButton({ value, timeout = 2000, className, children, ...props }: CopyButtonProps) {\n const [copied, setCopied] = useState(false)\n\n const handleCopy = useCallback(() => {\n navigator.clipboard.writeText(value)\n setCopied(true)\n setTimeout(() => setCopied(false), timeout)\n }, [value, timeout])\n\n return (\n <Button\n data-slot=\"copy-button\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"size-8\", className)}\n onClick={handleCopy}\n {...props}\n >\n {copied ? <CheckIcon className=\"size-3.5\" /> : <ClipboardIcon className=\"size-3.5\" />}\n {children}\n </Button>\n )\n}\n\nexport { CopyButton }\nexport type { CopyButtonProps }\n","\"use client\"\n\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\"\nimport { CheckIcon, ChevronRightIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {\n return <MenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />\n}\n\nfunction DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {\n return <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n}\n\nfunction DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {\n return <MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />\n}\n\nfunction DropdownMenuContent({\n align = \"start\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n className,\n ...props\n}: MenuPrimitive.Popup.Props &\n Pick<MenuPrimitive.Positioner.Props, \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\">) {\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <MenuPrimitive.Popup\n data-slot=\"dropdown-menu-content\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 cn-menu-target z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-y-auto overflow-x-hidden rounded-lg border border-border-light bg-popover p-1 text-popover-foreground shadow-lg outline-none duration-100 data-closed:animate-out data-open:animate-in data-closed:overflow-hidden\",\n className,\n )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n )\n}\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n return <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<\"div\"> & {\n inset?: boolean\n}) {\n return (\n <div\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 font-medium text-muted-foreground text-xs data-[inset]:pl-8\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: MenuPrimitive.Item.Props & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <MenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/dropdown-menu-item relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-[variant=destructive]:text-destructive data-disabled:opacity-50 data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0 data-[variant=destructive]:*:[svg]:text-destructive\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.SubmenuTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-open:bg-accent data-popup-open:bg-accent data-inset:pl-8 data-open:text-accent-foreground data-popup-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"cn-rtl-flip ml-auto\" />\n </MenuPrimitive.SubmenuTrigger>\n )\n}\n\nfunction DropdownMenuSubContent({\n align = \"start\",\n alignOffset = -3,\n side = \"right\",\n sideOffset = 0,\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n return (\n <DropdownMenuContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-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 w-auto min-w-[96px] rounded-lg border border-border-light bg-popover p-1 text-popover-foreground shadow-lg duration-100 data-closed:animate-out data-open:animate-in\",\n className,\n )}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n )\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n return <MenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <MenuPrimitive.RadioItemIndicator>\n <CheckIcon />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n )\n}\n\nfunction DropdownMenuSeparator({ className, ...props }: MenuPrimitive.Separator.Props) {\n return (\n <MenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"ml-auto text-muted-foreground text-xs tracking-widest group-focus/dropdown-menu-item:text-accent-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n","\"use client\"\n\nimport { Popover as PopoverPrimitive } from \"@base-ui/react/popover\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Popover({ ...props }: PopoverPrimitive.Root.Props) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({ ...props }: PopoverPrimitive.Trigger.Props) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n ...props\n}: PopoverPrimitive.Popup.Props &\n Pick<PopoverPrimitive.Positioner.Props, \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\">) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <PopoverPrimitive.Popup\n data-slot=\"popover-content\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 z-50 flex w-72 origin-(--transform-origin) flex-col gap-4 rounded-lg border border-border-light bg-popover p-4 text-popover-foreground text-sm shadow-lg outline-hidden duration-100 data-closed:animate-out data-open:animate-in\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"popover-header\"\n className={cn(\"flex flex-col gap-1 text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverTitle({ className, ...props }: PopoverPrimitive.Title.Props) {\n return (\n <PopoverPrimitive.Title\n data-slot=\"popover-title\"\n className={cn(\"font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverDescription({ className, ...props }: PopoverPrimitive.Description.Props) {\n return (\n <PopoverPrimitive.Description\n data-slot=\"popover-description\"\n className={cn(\"text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport { Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger }\n","\"use client\"\n\nimport { Select as SelectPrimitive } from \"@base-ui/react/select\"\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nconst Select = SelectPrimitive.Root\n\nfunction SelectGroup({ className, ...props }: SelectPrimitive.Group.Props) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(\"scroll-my-1 p-1\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectValue({ className, ...props }: SelectPrimitive.Value.Props) {\n return (\n <SelectPrimitive.Value\n data-slot=\"select-value\"\n className={cn(\"flex flex-1 text-left\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: SelectPrimitive.Trigger.Props & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"flex w-fit items-center justify-between gap-1.5 whitespace-nowrap rounded-md border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm shadow-xs outline-none transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-9 data-[size=sm]:h-8 data-placeholder:text-muted-foreground *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 dark:hover:bg-input/50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon\n render={<ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />}\n />\n </SelectPrimitive.Trigger>\n )\n}\n\nfunction SelectContent({\n className,\n children,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n alignItemWithTrigger = true,\n ...props\n}: SelectPrimitive.Popup.Props &\n Pick<\n SelectPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\" | \"alignItemWithTrigger\"\n >) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n alignItemWithTrigger={alignItemWithTrigger}\n className=\"isolate z-50\"\n >\n <SelectPrimitive.Popup\n data-slot=\"select-content\"\n data-align-trigger={alignItemWithTrigger}\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 cn-menu-target relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-y-auto overflow-x-hidden rounded-lg border border-border-light bg-popover text-popover-foreground shadow-lg duration-100 data-[align-trigger=true]:animate-none data-closed:animate-out data-open:animate-in\",\n className,\n )}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.List>{children}</SelectPrimitive.List>\n <SelectScrollDownButton />\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n )\n}\n\nfunction SelectLabel({ className, ...props }: SelectPrimitive.GroupLabel.Props) {\n return (\n <SelectPrimitive.GroupLabel\n data-slot=\"select-label\"\n className={cn(\"px-2 py-1.5 text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectItem({ className, children, ...props }: SelectPrimitive.Item.Props) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className,\n )}\n {...props}\n >\n <SelectPrimitive.ItemText className=\"flex flex-1 shrink-0 gap-2 whitespace-nowrap\">\n {children}\n </SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n )\n}\n\nfunction SelectSeparator({ className, ...props }: SelectPrimitive.Separator.Props) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"pointer-events-none -mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>) {\n return (\n <SelectPrimitive.ScrollUpArrow\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon />\n </SelectPrimitive.ScrollUpArrow>\n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>) {\n return (\n <SelectPrimitive.ScrollDownArrow\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon />\n </SelectPrimitive.ScrollDownArrow>\n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n","\"use client\"\n\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div data-slot=\"table-container\" className=\"relative w-full overflow-x-auto\">\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return <thead data-slot=\"table-header\" className={cn(\"[&_tr]:border-b\", className)} {...props} />\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"h-10 whitespace-nowrap px-2 text-left align-middle font-medium text-foreground [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\"whitespace-nowrap p-2 align-middle [&:has([role=checkbox])]:pr-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableCaption({ className, ...props }: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"mt-4 text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption }\n","\"use client\"\n\nimport {\n type Column,\n type ColumnDef,\n type ColumnFiltersState,\n flexRender,\n getCoreRowModel,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type Row,\n type RowSelectionState,\n type SortingState,\n type Table as TableInstance,\n useReactTable,\n type VisibilityState,\n} from \"@tanstack/react-table\"\nimport { useVirtualizer } from \"@tanstack/react-virtual\"\nimport {\n ArrowDown,\n ArrowUp,\n ChevronLeft,\n ChevronRight,\n ChevronsLeft,\n ChevronsRight,\n ChevronsUpDown,\n PlusCircle,\n Settings2,\n} from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Badge } from \"./badge\"\nimport { Button } from \"./button\"\nimport { Checkbox } from \"./checkbox\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n} from \"./command\"\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"./dropdown-menu\"\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover\"\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"./select\"\nimport { Separator } from \"./separator\"\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from \"./table\"\n\n/* ────────────────────────────────────────────────────────────────────────────\n * useDataTable hook\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype UseDataTableOptions<TData> = {\n data: TData[]\n columns: ColumnDef<TData, unknown>[]\n getRowId?: (row: TData) => string\n initialSorting?: SortingState\n initialGlobalFilter?: string\n initialFilters?: ColumnFiltersState\n initialVisibility?: VisibilityState\n initialSelection?: RowSelectionState\n enableRowSelection?: boolean\n enablePagination?: boolean\n}\n\nfunction useDataTable<TData>(options: UseDataTableOptions<TData>) {\n const {\n data,\n columns,\n getRowId,\n initialSorting = [],\n initialFilters = [],\n initialGlobalFilter = \"\",\n initialVisibility = {},\n initialSelection = {},\n enableRowSelection = true,\n enablePagination = true,\n } = options\n\n const [sorting, setSorting] = React.useState<SortingState>(initialSorting)\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(initialFilters)\n const [globalFilter, setGlobalFilter] = React.useState<string>(initialGlobalFilter)\n const [columnVisibility, setColumnVisibility] = React.useState<VisibilityState>(initialVisibility)\n const [rowSelection, setRowSelection] = React.useState<RowSelectionState>(initialSelection)\n\n // Memoize row-model factories so they are stable across renders\n const paginationRowModel = React.useMemo(\n () => (enablePagination ? getPaginationRowModel<TData>() : undefined),\n [enablePagination],\n )\n\n // Guard against pre-mount state updates from tanstack's pagination init.\n // We buffer setState calls until after mount so React doesn't warn about\n // \"state update on a component that hasn't mounted yet\".\n const mountedRef = React.useRef(false)\n React.useEffect(() => {\n mountedRef.current = true\n }, [])\n\n const safeSorting = React.useCallback(\n (updater: SortingState | ((prev: SortingState) => SortingState)) => {\n if (mountedRef.current) setSorting(updater)\n },\n [],\n )\n const safeColumnFilters = React.useCallback(\n (updater: ColumnFiltersState | ((prev: ColumnFiltersState) => ColumnFiltersState)) => {\n if (mountedRef.current) setColumnFilters(updater)\n },\n [],\n )\n const safeRowSelection = React.useCallback(\n (updater: RowSelectionState | ((prev: RowSelectionState) => RowSelectionState)) => {\n if (mountedRef.current) setRowSelection(updater)\n },\n [],\n )\n const safeGlobalFilter = React.useCallback((updater: string | ((prev: string) => string)) => {\n if (mountedRef.current) setGlobalFilter(updater)\n }, [])\n const safeColumnVisibility = React.useCallback(\n (updater: VisibilityState | ((prev: VisibilityState) => VisibilityState)) => {\n if (mountedRef.current) setColumnVisibility(updater)\n },\n [],\n )\n\n const table = useReactTable({\n data,\n columns,\n getRowId,\n state: {\n sorting,\n columnFilters,\n globalFilter,\n columnVisibility,\n rowSelection,\n },\n onSortingChange: safeSorting,\n onColumnFiltersChange: safeColumnFilters,\n onRowSelectionChange: safeRowSelection,\n onGlobalFilterChange: safeGlobalFilter,\n onColumnVisibilityChange: safeColumnVisibility,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n ...(paginationRowModel && { getPaginationRowModel: paginationRowModel }),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n enableRowSelection,\n autoResetPageIndex: false,\n })\n\n return {\n table,\n columnFilters,\n setColumnFilters,\n sorting,\n setSorting,\n globalFilter,\n setGlobalFilter,\n columnVisibility,\n setColumnVisibility,\n rowSelection,\n setRowSelection,\n }\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DataTable — main renderer\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DataTableProps<TData> = {\n table: TableInstance<TData>\n columns: ColumnDef<TData, unknown>[]\n className?: string\n /** Enable virtual scrolling for large datasets */\n virtual?: boolean\n /** Fixed height for the virtual scroll container (default: 400) */\n virtualHeight?: number\n /** Estimated row height for virtualizer (default: 48) */\n estimateSize?: number\n /** Render function for empty state */\n emptyState?: React.ReactNode\n /** Callback when a row is clicked */\n onRowClick?: (row: TData) => void\n}\n\nfunction DataTable<TData>({\n table,\n columns,\n className,\n virtual = false,\n virtualHeight = 400,\n estimateSize = 48,\n emptyState,\n onRowClick,\n}: DataTableProps<TData>) {\n const { rows } = table.getRowModel()\n\n if (virtual) {\n return (\n <DataTableVirtual\n table={table}\n columns={columns}\n className={className}\n virtualHeight={virtualHeight}\n estimateSize={estimateSize}\n emptyState={emptyState}\n />\n )\n }\n\n return (\n <div data-slot=\"data-table\" className={cn(\"overflow-x-auto rounded-md border\", className)}>\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead key={header.id}>\n {header.isPlaceholder\n ? null\n : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {rows.length ? (\n rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n className={onRowClick ? \"cursor-pointer\" : undefined}\n onClick={onRowClick ? () => onRowClick(row.original) : undefined}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className=\"h-24 text-center\">\n {emptyState ?? \"No results.\"}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DataTableVirtual — virtualized renderer\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DataTableVirtualProps<TData> = {\n table: TableInstance<TData>\n columns: ColumnDef<TData, unknown>[]\n className?: string\n virtualHeight: number\n estimateSize: number\n emptyState?: React.ReactNode\n}\n\nfunction DataTableVirtual<TData>({\n table,\n columns,\n className,\n virtualHeight,\n estimateSize,\n emptyState,\n}: DataTableVirtualProps<TData>) {\n const { rows } = table.getRowModel()\n const parentRef = React.useRef<HTMLDivElement>(null)\n\n const virtualizer = useVirtualizer({\n count: rows.length,\n getScrollElement: () => parentRef.current,\n estimateSize: () => estimateSize,\n overscan: 10,\n })\n\n return (\n <div data-slot=\"data-table\" className={cn(\"overflow-x-auto rounded-md border\", className)}>\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead key={header.id}>\n {header.isPlaceholder\n ? null\n : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n </Table>\n <div ref={parentRef} className=\"overflow-auto\" style={{ height: virtualHeight }}>\n <Table>\n <TableBody>\n {rows.length ? (\n <>\n <tr style={{ height: virtualizer.getVirtualItems()[0]?.start ?? 0 }} />\n {virtualizer.getVirtualItems().map((virtualRow) => {\n const row = rows[virtualRow.index] as Row<TData>\n return (\n <TableRow\n key={row.id}\n data-index={virtualRow.index}\n ref={(node) => virtualizer.measureElement(node)}\n data-state={row.getIsSelected() && \"selected\"}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n )\n })}\n <tr\n style={{\n height:\n virtualizer.getTotalSize() - (virtualizer.getVirtualItems().at(-1)?.end ?? 0),\n }}\n />\n </>\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className=\"h-24 text-center\">\n {emptyState ?? \"No results.\"}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n </div>\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DataTableColumnHeader — sortable header\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DataTableColumnHeaderProps<TData, TValue> = {\n column: Column<TData, TValue>\n title: string\n className?: string\n}\n\nfunction DataTableColumnHeader<TData, TValue>({\n column,\n title,\n className,\n}: DataTableColumnHeaderProps<TData, TValue>) {\n const canSort = column.getCanSort()\n const sorted = column.getIsSorted()\n\n if (!canSort) {\n return (\n <span className={cn(\"flex h-8 items-center font-medium text-foreground text-sm\", className)}>\n {title}\n </span>\n )\n }\n\n return (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={cn(\n \"flex h-8 items-center gap-2 px-0 font-medium text-foreground text-sm\",\n className,\n )}\n onClick={() => column.toggleSorting(sorted === \"asc\")}\n >\n <span>{title}</span>\n {sorted === \"desc\" ? (\n <ArrowDown className=\"size-4\" />\n ) : sorted === \"asc\" ? (\n <ArrowUp className=\"size-4\" />\n ) : (\n <ChevronsUpDown className=\"size-4 opacity-50\" />\n )}\n </Button>\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DataTablePagination\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DataTablePaginationProps<TData> = {\n table: TableInstance<TData>\n pageSizeOptions?: number[]\n className?: string\n}\n\nfunction DataTablePagination<TData>({\n table,\n pageSizeOptions = [10, 20, 30, 40, 50],\n className,\n}: DataTablePaginationProps<TData>) {\n const currentPage = table.getState().pagination.pageIndex\n const pageSize = table.getState().pagination.pageSize\n const totalRows = table.getFilteredRowModel().rows.length\n const pageCount = table.getPageCount()\n\n const startRow = currentPage * pageSize + 1\n const endRow = Math.min((currentPage + 1) * pageSize, totalRows)\n\n const relevantPageSizes = pageSizeOptions.filter((size) => size <= totalRows || size === pageSize)\n\n return (\n <div\n data-slot=\"data-table-pagination\"\n className={cn(\"flex items-center justify-between gap-2 px-2 py-4\", className)}\n >\n <div className=\"text-muted-foreground text-sm\">\n <span className=\"font-medium\">\n {totalRows === 0 ? (\n \"No results\"\n ) : (\n <>\n <span className=\"lg:hidden\">\n {startRow}–{endRow} of {totalRows}\n </span>\n <span className=\"hidden lg:inline\">\n Showing {startRow} to {endRow} of {totalRows} {totalRows === 1 ? \"row\" : \"rows\"}\n </span>\n </>\n )}\n </span>\n </div>\n\n <div className=\"flex items-center gap-2 lg:gap-6\">\n <div className=\"hidden items-center gap-2 lg:flex\">\n <p className=\"whitespace-nowrap font-medium text-sm\">Rows per page</p>\n <Select\n value={`${pageSize}`}\n onValueChange={(value) => {\n if (value) table.setPageSize(Number(value))\n }}\n disabled={totalRows === 0}\n >\n <SelectTrigger className=\"h-8 w-[70px]\" aria-label=\"Rows per page\">\n <SelectValue placeholder={`${pageSize}`} />\n </SelectTrigger>\n <SelectContent side=\"top\">\n {relevantPageSizes.map((size) => (\n <SelectItem key={size} value={`${size}`}>\n {size}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n\n <div className=\"flex items-center gap-2\">\n <div className=\"hidden whitespace-nowrap font-medium text-sm lg:block\">\n Page {currentPage + 1} of {pageCount}\n </div>\n\n <div className=\"flex items-center gap-1\">\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"hidden size-8 xl:flex\"\n onClick={() => table.setPageIndex(0)}\n disabled={currentPage === 0 || totalRows === 0}\n aria-label=\"Go to first page\"\n >\n <ChevronsLeft className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"size-8\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n aria-label=\"Go to previous page\"\n >\n <ChevronLeft className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"size-8\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n aria-label=\"Go to next page\"\n >\n <ChevronRight className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"hidden size-8 xl:flex\"\n onClick={() => table.setPageIndex(pageCount - 1)}\n disabled={currentPage === pageCount - 1 || totalRows === 0}\n aria-label=\"Go to last page\"\n >\n <ChevronsRight className=\"size-4\" />\n </Button>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DataTableViewOptions — column visibility toggle\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DataTableViewOptionsProps<TData> = {\n table: TableInstance<TData>\n className?: string\n}\n\nfunction DataTableViewOptions<TData>({ table, className }: DataTableViewOptionsProps<TData>) {\n const columns = table.getAllColumns().filter((column) => column.getCanHide())\n const hiddenCount = columns.filter((col) => !col.getIsVisible()).length\n const hasHiddenColumns = hiddenCount > 0\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger\n render={<Button variant=\"outline\" size=\"sm\" className={cn(\"h-8 gap-2\", className)} />}\n >\n <Settings2 className=\"size-4\" />\n <span className=\"hidden sm:inline\">View</span>\n {hasHiddenColumns && (\n <Badge variant=\"secondary\" className=\"ml-1 size-5 rounded-full p-0 text-xs\">\n {hiddenCount}\n </Badge>\n )}\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-[200px]\">\n <DropdownMenuLabel className=\"flex items-center justify-between\">\n <span>Toggle columns</span>\n {hasHiddenColumns && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => table.resetColumnVisibility()}\n className=\"h-auto p-1 text-xs\"\n >\n Reset\n </Button>\n )}\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n {columns.length === 0 ? (\n <div className=\"px-2 py-4 text-center text-muted-foreground text-sm\">\n No columns available\n </div>\n ) : (\n columns.map((column) => {\n const label =\n (column.columnDef.meta as { label?: string })?.label ||\n column.id.charAt(0).toUpperCase() + column.id.slice(1).replace(/([A-Z])/g, \" $1\")\n\n return (\n <DropdownMenuCheckboxItem\n key={column.id}\n checked={column.getIsVisible()}\n onCheckedChange={(value) => column.toggleVisibility(!!value)}\n className=\"capitalize\"\n >\n {label}\n </DropdownMenuCheckboxItem>\n )\n })\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DataTableFacetedFilter\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DataTableFacetedFilterOption = {\n label: string\n value: string\n icon?: React.ComponentType<{ className?: string }>\n}\n\ntype DataTableFacetedFilterProps<TData, TValue> = {\n column?: Column<TData, TValue>\n title?: string\n options: DataTableFacetedFilterOption[]\n className?: string\n}\n\nfunction DataTableFacetedFilter<TData, TValue>({\n column,\n title,\n options,\n className,\n}: DataTableFacetedFilterProps<TData, TValue>) {\n const facets = column?.getFacetedUniqueValues()\n const selectedValues = new Set(column?.getFilterValue() as string[])\n\n return (\n <Popover>\n <PopoverTrigger\n render={\n <Button variant=\"outline\" size=\"sm\" className={cn(\"h-8 border-dashed\", className)} />\n }\n >\n <PlusCircle />\n {title}\n {selectedValues?.size > 0 && (\n <>\n <Separator orientation=\"vertical\" className=\"mx-2 h-4\" />\n <Badge variant=\"secondary\" className=\"rounded-sm px-1 font-normal lg:hidden\">\n {selectedValues.size}\n </Badge>\n <div className=\"hidden gap-1 lg:flex\">\n {selectedValues.size > 2 ? (\n <Badge variant=\"secondary\" className=\"rounded-sm px-1 font-normal\">\n {selectedValues.size} selected\n </Badge>\n ) : (\n options\n .filter((option) => selectedValues.has(option.value))\n .map((option) => (\n <Badge\n variant=\"secondary\"\n key={option.value}\n className=\"rounded-sm px-1 font-normal\"\n >\n {option.label}\n </Badge>\n ))\n )}\n </div>\n </>\n )}\n </PopoverTrigger>\n <PopoverContent className=\"w-[200px] p-0\" align=\"start\" autoFocus={false}>\n <Command>\n <CommandInput placeholder={title} />\n <CommandList>\n <CommandEmpty>No results found.</CommandEmpty>\n <CommandGroup>\n {options.map((option) => {\n const isSelected = selectedValues.has(option.value)\n return (\n <CommandItem\n key={option.value}\n onSelect={() => {\n if (isSelected) {\n selectedValues.delete(option.value)\n } else {\n selectedValues.add(option.value)\n }\n const filterValues = Array.from(selectedValues)\n column?.setFilterValue(filterValues.length ? filterValues : undefined)\n }}\n >\n <Checkbox\n checked={isSelected}\n className=\"pointer-events-none\"\n tabIndex={-1}\n aria-hidden\n />\n {option.icon && <option.icon className=\"size-4 text-muted-foreground\" />}\n <span>{option.label}</span>\n {facets?.get(option.value) && (\n <span className=\"ml-auto flex size-4 items-center justify-center font-mono text-muted-foreground text-xs\">\n {facets.get(option.value)}\n </span>\n )}\n </CommandItem>\n )\n })}\n </CommandGroup>\n {selectedValues.size > 0 && (\n <>\n <CommandSeparator />\n <CommandGroup>\n <CommandItem\n onSelect={() => column?.setFilterValue(undefined)}\n className=\"justify-center text-center\"\n >\n Clear filters\n </CommandItem>\n </CommandGroup>\n </>\n )}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DataTableToolbar\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DataTableToolbarProps<TData> = React.ComponentProps<\"div\"> & {\n table: TableInstance<TData>\n showViewOptions?: boolean\n}\n\nfunction DataTableToolbar<TData>({\n table,\n children,\n className,\n showViewOptions = true,\n ...props\n}: DataTableToolbarProps<TData>) {\n return (\n <div\n data-slot=\"data-table-toolbar\"\n className={cn(\n \"flex flex-col gap-2 py-4 sm:flex-row sm:items-center sm:justify-between\",\n className,\n )}\n {...props}\n >\n <div className=\"flex flex-1 flex-wrap items-center gap-2\">{children}</div>\n <div className=\"mb-auto flex sm:mb-0 sm:items-center\">\n {showViewOptions && <DataTableViewOptions table={table} />}\n </div>\n </div>\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * Exports\n * ──────────────────────────────────────────────────────────────────────────── */\n\nexport {\n DataTable,\n DataTableColumnHeader,\n DataTableFacetedFilter,\n DataTablePagination,\n DataTableToolbar,\n DataTableViewOptions,\n useDataTable,\n}\n\nexport type {\n DataTableColumnHeaderProps,\n DataTableFacetedFilterOption,\n DataTableFacetedFilterProps,\n DataTablePaginationProps,\n DataTableProps,\n DataTableToolbarProps,\n DataTableViewOptionsProps,\n UseDataTableOptions,\n}\n\n// Re-export TanStack types consumers will need for column definitions\nexport type {\n ColumnDef,\n ColumnFiltersState,\n RowSelectionState,\n SortingState,\n VisibilityState,\n} from \"@tanstack/react-table\"\n","\"use client\"\n\nimport { addDays, format } from \"date-fns\"\nimport { CalendarIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport type { DateRange } from \"react-day-picker\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\nimport { Calendar } from \"./calendar\"\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover\"\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"./select\"\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DatePicker — single date\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DatePickerPreset = {\n label: string\n /** Number of days from today (0 = today, 1 = tomorrow, -7 = a week ago) */\n days: number\n}\n\ntype DatePickerProps = {\n /** Currently selected date */\n value?: Date\n /** Callback when date changes */\n onChange?: (date: Date | undefined) => void\n /** Placeholder text when no date selected */\n placeholder?: string\n /** Date format string (date-fns format) */\n dateFormat?: string\n /** Preset quick-select options */\n presets?: DatePickerPreset[]\n /** Alignment of the popover */\n align?: \"start\" | \"center\" | \"end\"\n /** Additional className for the trigger button */\n className?: string\n /** Disabled state */\n disabled?: boolean\n /** Props forwarded to the Calendar */\n calendarProps?: Omit<React.ComponentProps<typeof Calendar>, \"mode\" | \"selected\" | \"onSelect\">\n}\n\nfunction DatePicker({\n value,\n onChange,\n placeholder = \"Pick a date\",\n dateFormat = \"PPP\",\n presets,\n align = \"start\",\n className,\n disabled,\n calendarProps,\n}: DatePickerProps) {\n return (\n <Popover>\n <PopoverTrigger\n render={\n <Button\n variant=\"outline\"\n disabled={disabled}\n className={cn(\n \"w-[240px] justify-start text-left font-normal\",\n !value && \"text-muted-foreground\",\n className,\n )}\n />\n }\n >\n <CalendarIcon className=\"size-4\" />\n {value ? format(value, dateFormat) : <span>{placeholder}</span>}\n </PopoverTrigger>\n <PopoverContent\n align={align}\n className={cn(\"w-auto p-0\", presets && \"flex flex-col space-y-2 p-2\")}\n >\n {presets && (\n <Select\n onValueChange={(v: string | null) => {\n if (v) onChange?.(addDays(new Date(), Number.parseInt(v, 10)))\n }}\n >\n <SelectTrigger>\n <SelectValue placeholder=\"Select\" />\n </SelectTrigger>\n <SelectContent>\n {presets.map((preset) => (\n <SelectItem key={preset.days} value={`${preset.days}`}>\n {preset.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n )}\n <div className={cn(presets && \"rounded-md border\")}>\n <Calendar mode=\"single\" selected={value} onSelect={onChange} {...calendarProps} />\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DateRangePicker\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DateRangePickerProps = {\n /** Currently selected date range */\n value?: DateRange\n /** Callback when range changes */\n onChange?: (range: DateRange | undefined) => void\n /** Placeholder text when no date selected */\n placeholder?: string\n /** Date format string (date-fns format) */\n dateFormat?: string\n /** Number of months to display (default: 2) */\n numberOfMonths?: number\n /** Alignment of the popover */\n align?: \"start\" | \"center\" | \"end\"\n /** Additional className for the trigger button */\n className?: string\n /** Disabled state */\n disabled?: boolean\n /** Props forwarded to the Calendar */\n calendarProps?: Omit<\n React.ComponentProps<typeof Calendar>,\n \"mode\" | \"selected\" | \"onSelect\" | \"numberOfMonths\"\n >\n}\n\nfunction DateRangePicker({\n value,\n onChange,\n placeholder = \"Pick a date\",\n dateFormat = \"LLL dd, y\",\n numberOfMonths = 2,\n align = \"start\",\n className,\n disabled,\n calendarProps,\n}: DateRangePickerProps) {\n return (\n <Popover>\n <PopoverTrigger\n render={\n <Button\n variant=\"outline\"\n disabled={disabled}\n className={cn(\n \"w-[300px] justify-start text-left font-normal\",\n !value && \"text-muted-foreground\",\n className,\n )}\n />\n }\n >\n <CalendarIcon className=\"size-4\" />\n {value?.from ? (\n value.to ? (\n <>\n {format(value.from, dateFormat)} – {format(value.to, dateFormat)}\n </>\n ) : (\n format(value.from, dateFormat)\n )\n ) : (\n <span>{placeholder}</span>\n )}\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align={align}>\n <Calendar\n mode=\"range\"\n defaultMonth={value?.from}\n selected={value}\n onSelect={onChange}\n numberOfMonths={numberOfMonths}\n {...calendarProps}\n />\n </PopoverContent>\n </Popover>\n )\n}\n\nexport { DatePicker, DateRangePicker }\nexport type { DatePickerPreset, DatePickerProps, DateRangePickerProps }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype Urgency = \"normal\" | \"warning\" | \"critical\" | \"overdue\"\n\nconst deadlineCountdownVariants = cva(\"inline-flex items-center gap-1.5 text-sm font-medium\", {\n variants: {\n urgency: {\n normal: \"text-muted-foreground\",\n warning: \"text-amber-600 dark:text-amber-400\",\n critical: \"text-red-600 dark:text-red-400\",\n overdue: \"text-destructive\",\n },\n },\n defaultVariants: {\n urgency: \"normal\",\n },\n})\n\ntype DeadlineCountdownProps = Omit<React.ComponentProps<\"span\">, \"children\"> &\n Omit<VariantProps<typeof deadlineCountdownVariants>, \"urgency\"> & {\n /** The deadline date */\n deadline: Date\n /** Override auto-detected urgency */\n urgency?: Urgency\n /** Days threshold for \"warning\" state. Defaults to 7. */\n warningDays?: number\n /** Days threshold for \"critical\" state. Defaults to 2. */\n criticalDays?: number\n /** Optional label prefix (e.g. \"Due in\") */\n label?: string\n /** Whether to show the dot indicator. Defaults to true. */\n showDot?: boolean\n }\n\nfunction getAutoUrgency(deadline: Date, warningDays: number, criticalDays: number): Urgency {\n const now = new Date()\n const diff = deadline.getTime() - now.getTime()\n const days = diff / (1000 * 60 * 60 * 24)\n\n if (days < 0) return \"overdue\"\n if (days <= criticalDays) return \"critical\"\n if (days <= warningDays) return \"warning\"\n return \"normal\"\n}\n\nfunction formatTimeRemaining(deadline: Date): string {\n const now = new Date()\n const diff = deadline.getTime() - now.getTime()\n\n if (diff < 0) {\n const absDiff = Math.abs(diff)\n const days = Math.floor(absDiff / (1000 * 60 * 60 * 24))\n if (days > 0) return `${days}d overdue`\n const hours = Math.floor(absDiff / (1000 * 60 * 60))\n if (hours > 0) return `${hours}h overdue`\n return \"Just overdue\"\n }\n\n const days = Math.floor(diff / (1000 * 60 * 60 * 24))\n const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60))\n\n if (days > 0) return `${days}d ${hours}h`\n if (hours > 0) return `${hours}h`\n const mins = Math.floor(diff / (1000 * 60))\n return `${mins}m`\n}\n\nconst dotColors: Record<Urgency, string> = {\n normal: \"bg-muted-foreground/40\",\n warning: \"bg-amber-500\",\n critical: \"bg-red-500 animate-pulse\",\n overdue: \"bg-destructive animate-pulse\",\n}\n\nfunction DeadlineCountdown({\n deadline,\n urgency: urgencyOverride,\n warningDays = 7,\n criticalDays = 2,\n label,\n showDot = true,\n className,\n ...props\n}: DeadlineCountdownProps) {\n const urgency = urgencyOverride ?? getAutoUrgency(deadline, warningDays, criticalDays)\n const timeText = formatTimeRemaining(deadline)\n\n return (\n <span\n data-slot=\"deadline-countdown\"\n className={cn(deadlineCountdownVariants({ urgency }), className)}\n {...props}\n >\n {showDot && <span className={cn(\"size-2 shrink-0 rounded-full\", dotColors[urgency])} />}\n {label && <span>{label}</span>}\n <span>{timeText}</span>\n </span>\n )\n}\n\nexport { DeadlineCountdown, deadlineCountdownVariants }\nexport type { DeadlineCountdownProps, Urgency }\n","import type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction DescriptionList({ className, ...props }: React.ComponentProps<\"dl\">) {\n return (\n <dl\n data-slot=\"description-list\"\n className={cn(\"divide-y divide-border\", className)}\n {...props}\n />\n )\n}\n\nfunction DescriptionListItem({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"description-list-item\"\n className={cn(\"flex flex-col gap-1 py-3 sm:flex-row sm:gap-4\", className)}\n {...props}\n />\n )\n}\n\nfunction DescriptionListTerm({ className, ...props }: React.ComponentProps<\"dt\">) {\n return (\n <dt\n data-slot=\"description-list-term\"\n className={cn(\"font-medium text-muted-foreground text-sm sm:w-40 sm:shrink-0\", className)}\n {...props}\n />\n )\n}\n\nfunction DescriptionListDetail({ className, ...props }: React.ComponentProps<\"dd\">) {\n return <dd data-slot=\"description-list-detail\" className={cn(\"text-sm\", className)} {...props} />\n}\n\nexport { DescriptionList, DescriptionListItem, DescriptionListTerm, DescriptionListDetail }\n","\"use client\"\n\nimport { DrawerPreview as DrawerPrimitive } from \"@base-ui/react/drawer\"\nimport { XIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\n\ntype DrawerDirection = \"down\" | \"up\" | \"left\" | \"right\"\n\nfunction Drawer({\n swipeDirection = \"down\",\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root> & { swipeDirection?: DrawerDirection }) {\n return <DrawerPrimitive.Root data-slot=\"drawer\" swipeDirection={swipeDirection} {...props} />\n}\n\nfunction DrawerTrigger({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />\n}\n\nfunction DrawerPortal({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Portal>) {\n return <DrawerPrimitive.Portal data-slot=\"drawer-portal\" {...props} />\n}\n\nfunction DrawerClose({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Close>) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />\n}\n\nfunction DrawerOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Backdrop>) {\n return (\n <DrawerPrimitive.Backdrop\n data-slot=\"drawer-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black/10 transition-opacity duration-300 supports-backdrop-filter:backdrop-blur-xs [&[data-ending-style]]:opacity-0 [&[data-starting-style]]:opacity-0\",\n className,\n )}\n {...props}\n />\n )\n}\n\ntype DrawerContentProps = React.ComponentProps<typeof DrawerPrimitive.Popup> & {\n direction?: DrawerDirection\n showCloseButton?: boolean\n showHandle?: boolean\n}\n\nconst directionClasses: Record<DrawerDirection, string> = {\n down: [\n \"inset-x-0 bottom-0 max-h-[80vh] rounded-t-xl border-t\",\n \"[&[data-starting-style]]:translate-y-full [&[data-ending-style]]:translate-y-full\",\n ].join(\" \"),\n up: [\n \"inset-x-0 top-0 max-h-[80vh] rounded-b-xl border-b\",\n \"[&[data-starting-style]]:-translate-y-full [&[data-ending-style]]:-translate-y-full\",\n ].join(\" \"),\n left: [\n \"inset-y-0 left-0 w-3/4 rounded-r-xl border-r sm:max-w-sm\",\n \"[&[data-starting-style]]:-translate-x-full [&[data-ending-style]]:-translate-x-full\",\n ].join(\" \"),\n right: [\n \"inset-y-0 right-0 w-3/4 rounded-l-xl border-l sm:max-w-sm\",\n \"[&[data-starting-style]]:translate-x-full [&[data-ending-style]]:translate-x-full\",\n ].join(\" \"),\n}\n\nfunction DrawerContent({\n className,\n children,\n direction = \"down\",\n showCloseButton = true,\n showHandle,\n ...props\n}: DrawerContentProps) {\n const showHandleResolved = showHandle ?? (direction === \"down\" || direction === \"up\")\n return (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Viewport>\n <DrawerPrimitive.Popup\n data-slot=\"drawer-content\"\n data-direction={direction}\n className={cn(\n \"group/drawer-content fixed z-50 flex h-auto flex-col bg-background text-sm transition-transform duration-300 ease-out [&[data-swiping]]:transition-none\",\n directionClasses[direction],\n className,\n )}\n {...props}\n >\n {showHandleResolved && (\n <div className=\"mx-auto mt-4 h-1.5 w-[100px] shrink-0 rounded-full bg-muted\" />\n )}\n {children}\n {showCloseButton && (\n <DrawerPrimitive.Close\n data-slot=\"drawer-close\"\n render={<Button variant=\"ghost\" className=\"absolute top-4 right-4\" size=\"icon-sm\" />}\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DrawerPrimitive.Close>\n )}\n </DrawerPrimitive.Popup>\n </DrawerPrimitive.Viewport>\n </DrawerPortal>\n )\n}\n\nfunction DrawerHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n \"flex flex-col gap-0.5 p-4 group-data-[direction=down]/drawer-content:text-center group-data-[direction=up]/drawer-content:text-center md:gap-1.5 md:text-left\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction DrawerTitle({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Title>) {\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn(\"font-medium text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction DrawerDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Description>) {\n return (\n <DrawerPrimitive.Description\n data-slot=\"drawer-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n}\nexport type { DrawerContentProps, DrawerDirection }\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Empty({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n \"flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 text-balance rounded-lg border-dashed p-12 text-center\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-header\"\n className={cn(\"flex max-w-sm flex-col items-center gap-2\", className)}\n {...props}\n />\n )\n}\n\nconst emptyMediaVariants = cva(\n \"mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n)\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof emptyMediaVariants>) {\n return (\n <div\n data-slot=\"empty-icon\"\n data-variant={variant}\n className={cn(emptyMediaVariants({ variant, className }))}\n {...props}\n />\n )\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-title\"\n className={cn(\"font-medium text-lg tracking-tight\", className)}\n {...props}\n />\n )\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <div\n data-slot=\"empty-description\"\n className={cn(\n \"text-muted-foreground text-sm/relaxed [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(\n \"flex w-full min-w-0 max-w-sm flex-col items-center gap-4 text-balance text-sm\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Empty, EmptyHeader, EmptyTitle, EmptyDescription, EmptyContent, EmptyMedia }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport type { ReactNode } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\n/* ── Meta item type ── */\n\ninterface EntityHeaderMeta {\n icon?: ReactNode\n text: string\n href?: string\n external?: boolean\n}\n\n/* ── Variants ── */\n\nconst headerVariants = cva(\"flex flex-col gap-4\", {\n variants: {\n size: {\n sm: \"\",\n default: \"\",\n lg: \"\",\n },\n },\n defaultVariants: { size: \"default\" },\n})\n\nconst avatarVariants = cva(\"shrink-0 rounded-lg object-contain\", {\n variants: {\n size: {\n sm: \"size-8\",\n default: \"size-12\",\n lg: \"size-16\",\n },\n },\n defaultVariants: { size: \"default\" },\n})\n\nconst fallbackVariants = cva(\n \"flex shrink-0 items-center justify-center rounded-lg bg-muted font-medium text-muted-foreground\",\n {\n variants: {\n size: {\n sm: \"size-8 text-sm\",\n default: \"size-12 text-lg\",\n lg: \"size-16 text-2xl\",\n },\n },\n defaultVariants: { size: \"default\" },\n },\n)\n\nconst nameVariants = cva(\"font-medium leading-none tracking-tight\", {\n variants: {\n size: {\n sm: \"text-xl\",\n default: \"text-2xl md:text-3xl\",\n lg: \"text-3xl md:text-4xl\",\n },\n },\n defaultVariants: { size: \"default\" },\n})\n\n/* ── Props ── */\n\ntype EntityHeaderProps = React.ComponentProps<\"div\"> &\n VariantProps<typeof headerVariants> & {\n name: string\n subtitle?: string\n logoUrl?: string | null\n emoji?: ReactNode\n description?: string\n meta?: EntityHeaderMeta[]\n rightCol?: ReactNode\n }\n\n/* ── Component ── */\n\nfunction EntityHeader({\n name,\n subtitle,\n logoUrl,\n emoji,\n description,\n meta,\n rightCol,\n children,\n size,\n className,\n ...props\n}: EntityHeaderProps) {\n return (\n <div data-slot=\"entity-header\" className={cn(headerVariants({ size }), className)} {...props}>\n <div className=\"flex flex-col gap-4 md:flex-row md:items-start md:justify-between\">\n {/* Left: avatar + name + meta */}\n <div className=\"flex min-w-0 flex-1 items-start gap-4\">\n {/* Avatar */}\n {emoji ? (\n <div\n data-slot=\"entity-header-avatar\"\n className={cn(fallbackVariants({ size }), \"border border-border bg-transparent\")}\n >\n {emoji}\n </div>\n ) : logoUrl ? (\n <img\n src={logoUrl}\n alt={`${name} logo`}\n data-slot=\"entity-header-avatar\"\n className={avatarVariants({ size })}\n />\n ) : (\n <div data-slot=\"entity-header-avatar\" className={fallbackVariants({ size })}>\n {name.charAt(0)}\n </div>\n )}\n\n <div className=\"flex min-w-0 flex-col gap-y-1.5 pt-1\">\n <h1 data-slot=\"entity-header-name\" className={nameVariants({ size })}>\n {name}\n </h1>\n\n {subtitle && (\n <p data-slot=\"entity-header-subtitle\" className=\"text-muted-foreground text-sm\">\n {subtitle}\n </p>\n )}\n\n {meta && meta.length > 0 && (\n <div\n data-slot=\"entity-header-meta\"\n className=\"mt-0.5 flex flex-wrap items-center gap-x-4 gap-y-1 text-muted-foreground text-xs\"\n >\n {meta.map((item) => {\n if (item.href) {\n return (\n <a\n key={item.text}\n href={item.href}\n className=\"flex items-center gap-1.5 transition-colors hover:text-foreground\"\n {...(item.external && {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n })}\n >\n {item.icon && <span className=\"text-base leading-none\">{item.icon}</span>}\n {item.text}\n </a>\n )\n }\n\n return (\n <span key={item.text} className=\"flex items-center gap-1.5\">\n {item.icon && <span className=\"text-base leading-none\">{item.icon}</span>}\n {item.text}\n </span>\n )\n })}\n </div>\n )}\n </div>\n </div>\n\n {/* Right column */}\n {rightCol && <div className=\"w-full shrink-0 md:w-auto\">{rightCol}</div>}\n </div>\n\n {/* Description */}\n {description && (\n <p\n data-slot=\"entity-header-description\"\n className=\"max-w-3xl text-base text-muted-foreground md:text-lg\"\n >\n {description}\n </p>\n )}\n\n {/* Children */}\n {children}\n </div>\n )\n}\n\nexport { EntityHeader, headerVariants as entityHeaderVariants }\nexport type { EntityHeaderProps, EntityHeaderMeta }\n","\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { useMemo } from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Label } from \"./label\"\nimport { Separator } from \"./separator\"\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n \"flex flex-col gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLegend({\n className,\n variant = \"legend\",\n ...props\n}: React.ComponentProps<\"legend\"> & { variant?: \"legend\" | \"label\" }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n \"group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nconst fieldVariants = cva(\"data-[invalid=true]:text-destructive gap-3 group/field flex w-full\", {\n variants: {\n orientation: {\n vertical: \"flex-col *:w-full [&>.sr-only]:w-auto\",\n horizontal:\n \"flex-row items-center *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n responsive:\n \"flex-col *:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:*:data-[slot=field-label]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n})\n\nfunction Field({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\"group/field-content flex flex-1 flex-col gap-1 leading-snug\", className)}\n {...props}\n />\n )\n}\n\nfunction FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n \"group/field-label peer/field-label flex w-fit gap-2 leading-snug has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border has-data-checked:border-primary/30 has-data-checked:bg-primary/5 *:data-[slot=field]:p-3 group-data-[disabled=true]/field:opacity-50 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n \"flex w-fit items-center gap-2 font-medium text-sm leading-snug group-data-[disabled=true]/field:opacity-50\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n \"text-left font-normal text-muted-foreground text-sm leading-normal group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5\",\n \"nth-last-2:-mt-1 last:mt-0\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n children?: React.ReactNode\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n \"relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2\",\n className,\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"relative mx-auto block w-fit bg-background px-2 text-muted-foreground\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n )\n}\n\ntype FieldErrorItem = string | { message?: string } | undefined\n\nfunction normalizeError(error: FieldErrorItem): string | undefined {\n if (!error) return undefined\n if (typeof error === \"string\") return error\n return error.message\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<\"div\"> & {\n errors?: FieldErrorItem[]\n}) {\n const content = useMemo(() => {\n if (children) {\n return children\n }\n\n if (!errors?.length) {\n return null\n }\n\n const messages = errors.map(normalizeError).filter(Boolean) as string[]\n const unique = [...new Set(messages)]\n\n if (unique.length === 1) {\n return unique[0]\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {unique.map((msg, index) => (\n <li key={index}>{msg}</li>\n ))}\n </ul>\n )\n }, [children, errors])\n\n if (!content) {\n return null\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(\"font-normal text-destructive text-sm\", className)}\n {...props}\n >\n {content}\n </div>\n )\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n}\n","\"use client\"\n\nimport { UploadIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { useCallback, useRef, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype FileUploadProps = Omit<React.ComponentProps<\"div\">, \"onChange\"> & {\n /** Accepted file types (e.g. \"image/*,.pdf\") */\n accept?: string\n /** Allow multiple files */\n multiple?: boolean\n /** Max file size in bytes */\n maxSize?: number\n /** Called when files are selected */\n onChange?: (files: File[]) => void\n /** Disabled state */\n disabled?: boolean\n}\n\nfunction FileUpload({\n accept,\n multiple = false,\n maxSize,\n onChange,\n disabled = false,\n className,\n children,\n ...props\n}: FileUploadProps) {\n const [isDragOver, setIsDragOver] = useState(false)\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleFiles = useCallback(\n (fileList: FileList) => {\n let files = Array.from(fileList)\n if (maxSize) {\n files = files.filter((f) => f.size <= maxSize)\n }\n onChange?.(files)\n },\n [maxSize, onChange],\n )\n\n const handleDrop = useCallback(\n (e: React.DragEvent) => {\n e.preventDefault()\n setIsDragOver(false)\n if (disabled) return\n handleFiles(e.dataTransfer.files)\n },\n [disabled, handleFiles],\n )\n\n return (\n <div\n data-slot=\"file-upload\"\n data-drag-over={isDragOver || undefined}\n className={cn(\n \"relative flex flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed p-8 text-center transition-colors\",\n isDragOver && \"border-primary bg-primary/5\",\n !isDragOver && \"border-border hover:border-primary/50\",\n disabled && \"pointer-events-none opacity-50\",\n className,\n )}\n onDragOver={(e) => {\n e.preventDefault()\n if (!disabled) setIsDragOver(true)\n }}\n onDragLeave={() => setIsDragOver(false)}\n onDrop={handleDrop}\n onClick={() => inputRef.current?.click()}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") inputRef.current?.click()\n }}\n {...props}\n >\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n className=\"sr-only\"\n onChange={(e) => e.target.files && handleFiles(e.target.files)}\n disabled={disabled}\n tabIndex={-1}\n />\n {children ?? (\n <>\n <UploadIcon className=\"size-8 text-muted-foreground\" />\n <div>\n <p className=\"font-medium text-sm\">Drop files here or click to upload</p>\n <p className=\"mt-1 text-muted-foreground text-xs\">\n {accept ? `Accepted: ${accept}` : \"Any file type\"}\n </p>\n </div>\n </>\n )}\n </div>\n )\n}\n\nexport { FileUpload }\nexport type { FileUploadProps }\n","import { PlusCircleIcon, X } from \"lucide-react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction FilterBar({ className, children, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"filter-bar\"\n className={cn(\"flex flex-wrap items-center gap-2\", className)}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nfunction FilterChip({\n label,\n value,\n onRemove,\n className,\n ...props\n}: Omit<React.ComponentProps<\"span\">, \"children\"> & {\n label: string\n value?: string\n onRemove?: () => void\n}) {\n return (\n <span\n data-slot=\"filter-chip\"\n className={cn(\n \"inline-flex h-8 items-center gap-1.5 rounded-md border border-dashed px-3 text-xs\",\n className,\n )}\n {...props}\n >\n <PlusCircleIcon className=\"size-3.5 text-muted-foreground\" />\n <span className=\"font-medium\">{label}</span>\n {value && (\n <>\n <span className=\"mx-0.5 h-4 w-px bg-border\" />\n <span className=\"rounded-sm bg-secondary px-1.5 py-0.5 font-normal\">{value}</span>\n </>\n )}\n {onRemove && (\n <button\n type=\"button\"\n aria-label={`Remove ${label} filter`}\n onClick={onRemove}\n className=\"ml-0.5 cursor-pointer rounded-full p-0.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\"\n >\n <X className=\"size-3\" />\n </button>\n )}\n </span>\n )\n}\n\nfunction FilterClear({\n onClick,\n className,\n children = \"Clear all\",\n ...props\n}: React.ComponentProps<\"button\">) {\n return (\n <button\n type=\"button\"\n data-slot=\"filter-clear\"\n className={cn(\"text-muted-foreground text-xs underline-offset-4 hover:underline\", className)}\n onClick={onClick}\n {...props}\n >\n {children}\n </button>\n )\n}\n\nexport { FilterBar, FilterChip, FilterClear }\n","import type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\n/* ────────────────────────────────────────────────────────────────────────────\n * Tailwind grid class mappings\n * ──────────────────────────────────────────────────────────────────────────── */\n\nconst colsMap: Record<number, string> = {\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 7: \"grid-cols-7\",\n 8: \"grid-cols-8\",\n 9: \"grid-cols-9\",\n 10: \"grid-cols-10\",\n 11: \"grid-cols-11\",\n 12: \"grid-cols-12\",\n}\n\nconst rowsMap: Record<number, string> = {\n 1: \"grid-rows-1\",\n 2: \"grid-rows-2\",\n 3: \"grid-rows-3\",\n 4: \"grid-rows-4\",\n 5: \"grid-rows-5\",\n 6: \"grid-rows-6\",\n 7: \"grid-rows-7\",\n 8: \"grid-rows-8\",\n 9: \"grid-rows-9\",\n 10: \"grid-rows-10\",\n 11: \"grid-rows-11\",\n 12: \"grid-rows-12\",\n}\n\nconst flowMap = {\n row: \"grid-flow-row\",\n col: \"grid-flow-col\",\n dense: \"grid-flow-dense\",\n \"row-dense\": \"grid-flow-row-dense\",\n \"col-dense\": \"grid-flow-col-dense\",\n} as const\n\nconst autoColsMap = {\n auto: \"auto-cols-auto\",\n min: \"auto-cols-min\",\n max: \"auto-cols-max\",\n fr: \"auto-cols-fr\",\n} as const\n\nconst autoRowsMap = {\n auto: \"auto-rows-auto\",\n min: \"auto-rows-min\",\n max: \"auto-rows-max\",\n fr: \"auto-rows-fr\",\n} as const\n\nconst gapMap: Record<number | string, string> = {\n 0: \"gap-0\",\n 0.5: \"gap-0.5\",\n 1: \"gap-1\",\n 1.5: \"gap-1.5\",\n 2: \"gap-2\",\n 2.5: \"gap-2.5\",\n 3: \"gap-3\",\n 3.5: \"gap-3.5\",\n 4: \"gap-4\",\n 5: \"gap-5\",\n 6: \"gap-6\",\n 7: \"gap-7\",\n 8: \"gap-8\",\n 9: \"gap-9\",\n 10: \"gap-10\",\n 11: \"gap-11\",\n 12: \"gap-12\",\n 14: \"gap-14\",\n 16: \"gap-16\",\n 20: \"gap-20\",\n 24: \"gap-24\",\n 28: \"gap-28\",\n 32: \"gap-32\",\n}\n\nconst gapXMap: Record<number | string, string> = {\n 0: \"gap-x-0\",\n 0.5: \"gap-x-0.5\",\n 1: \"gap-x-1\",\n 1.5: \"gap-x-1.5\",\n 2: \"gap-x-2\",\n 2.5: \"gap-x-2.5\",\n 3: \"gap-x-3\",\n 3.5: \"gap-x-3.5\",\n 4: \"gap-x-4\",\n 5: \"gap-x-5\",\n 6: \"gap-x-6\",\n 7: \"gap-x-7\",\n 8: \"gap-x-8\",\n 9: \"gap-x-9\",\n 10: \"gap-x-10\",\n 11: \"gap-x-11\",\n 12: \"gap-x-12\",\n 14: \"gap-x-14\",\n 16: \"gap-x-16\",\n 20: \"gap-x-20\",\n 24: \"gap-x-24\",\n 28: \"gap-x-28\",\n 32: \"gap-x-32\",\n}\n\nconst gapYMap: Record<number | string, string> = {\n 0: \"gap-y-0\",\n 0.5: \"gap-y-0.5\",\n 1: \"gap-y-1\",\n 1.5: \"gap-y-1.5\",\n 2: \"gap-y-2\",\n 2.5: \"gap-y-2.5\",\n 3: \"gap-y-3\",\n 3.5: \"gap-y-3.5\",\n 4: \"gap-y-4\",\n 5: \"gap-y-5\",\n 6: \"gap-y-6\",\n 7: \"gap-y-7\",\n 8: \"gap-y-8\",\n 9: \"gap-y-9\",\n 10: \"gap-y-10\",\n 11: \"gap-y-11\",\n 12: \"gap-y-12\",\n 14: \"gap-y-14\",\n 16: \"gap-y-16\",\n 20: \"gap-y-20\",\n 24: \"gap-y-24\",\n 28: \"gap-y-28\",\n 32: \"gap-y-32\",\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * Col class mappings\n * ──────────────────────────────────────────────────────────────────────────── */\n\nconst colSpanMap: Record<number | string, string> = {\n 1: \"col-span-1\",\n 2: \"col-span-2\",\n 3: \"col-span-3\",\n 4: \"col-span-4\",\n 5: \"col-span-5\",\n 6: \"col-span-6\",\n 7: \"col-span-7\",\n 8: \"col-span-8\",\n 9: \"col-span-9\",\n 10: \"col-span-10\",\n 11: \"col-span-11\",\n 12: \"col-span-12\",\n full: \"col-span-full\",\n}\n\nconst colStartMap: Record<number | string, string> = {\n 1: \"col-start-1\",\n 2: \"col-start-2\",\n 3: \"col-start-3\",\n 4: \"col-start-4\",\n 5: \"col-start-5\",\n 6: \"col-start-6\",\n 7: \"col-start-7\",\n 8: \"col-start-8\",\n 9: \"col-start-9\",\n 10: \"col-start-10\",\n 11: \"col-start-11\",\n 12: \"col-start-12\",\n 13: \"col-start-13\",\n auto: \"col-start-auto\",\n}\n\nconst colEndMap: Record<number | string, string> = {\n 1: \"col-end-1\",\n 2: \"col-end-2\",\n 3: \"col-end-3\",\n 4: \"col-end-4\",\n 5: \"col-end-5\",\n 6: \"col-end-6\",\n 7: \"col-end-7\",\n 8: \"col-end-8\",\n 9: \"col-end-9\",\n 10: \"col-end-10\",\n 11: \"col-end-11\",\n 12: \"col-end-12\",\n 13: \"col-end-13\",\n auto: \"col-end-auto\",\n}\n\nconst rowSpanMap: Record<number | string, string> = {\n 1: \"row-span-1\",\n 2: \"row-span-2\",\n 3: \"row-span-3\",\n 4: \"row-span-4\",\n 5: \"row-span-5\",\n 6: \"row-span-6\",\n 7: \"row-span-7\",\n 8: \"row-span-8\",\n 9: \"row-span-9\",\n 10: \"row-span-10\",\n 11: \"row-span-11\",\n 12: \"row-span-12\",\n full: \"row-span-full\",\n}\n\nconst rowStartMap: Record<number | string, string> = {\n 1: \"row-start-1\",\n 2: \"row-start-2\",\n 3: \"row-start-3\",\n 4: \"row-start-4\",\n 5: \"row-start-5\",\n 6: \"row-start-6\",\n 7: \"row-start-7\",\n 8: \"row-start-8\",\n 9: \"row-start-9\",\n 10: \"row-start-10\",\n 11: \"row-start-11\",\n 12: \"row-start-12\",\n 13: \"row-start-13\",\n auto: \"row-start-auto\",\n}\n\nconst rowEndMap: Record<number | string, string> = {\n 1: \"row-end-1\",\n 2: \"row-end-2\",\n 3: \"row-end-3\",\n 4: \"row-end-4\",\n 5: \"row-end-5\",\n 6: \"row-end-6\",\n 7: \"row-end-7\",\n 8: \"row-end-8\",\n 9: \"row-end-9\",\n 10: \"row-end-10\",\n 11: \"row-end-11\",\n 12: \"row-end-12\",\n 13: \"row-end-13\",\n auto: \"row-end-auto\",\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * Grid\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype GridProps = React.ComponentProps<\"div\"> & {\n /** Number of columns (1–12) or a custom Tailwind class like \"grid-cols-[200px_1fr]\" */\n cols?: number | string\n /** Number of rows (1–12) or a custom Tailwind class like \"grid-rows-[auto_1fr_auto]\" */\n rows?: number | string\n /** Grid auto-flow: row | col | dense | row-dense | col-dense */\n flow?: keyof typeof flowMap\n /** Auto columns: auto | min | max | fr */\n autoCols?: keyof typeof autoColsMap\n /** Auto rows: auto | min | max | fr */\n autoRows?: keyof typeof autoRowsMap\n /** Gap (Tailwind spacing scale) */\n gap?: number\n /** Column gap (Tailwind spacing scale) */\n gapX?: number\n /** Row gap (Tailwind spacing scale) */\n gapY?: number\n}\n\nfunction Grid({\n className,\n cols,\n rows,\n flow,\n autoCols,\n autoRows,\n gap,\n gapX,\n gapY,\n ...props\n}: GridProps) {\n return (\n <div\n data-slot=\"grid\"\n className={cn(\n \"grid\",\n typeof cols === \"number\" ? colsMap[cols] : cols,\n typeof rows === \"number\" ? rowsMap[rows] : rows,\n flow && flowMap[flow],\n autoCols && autoColsMap[autoCols],\n autoRows && autoRowsMap[autoRows],\n gap != null && gapMap[gap],\n gapX != null && gapXMap[gapX],\n gapY != null && gapYMap[gapY],\n className,\n )}\n {...props}\n />\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * Col\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype ColProps = React.ComponentProps<\"div\"> & {\n /** Column span (1–12 or \"full\") */\n span?: number | \"full\"\n /** Column start line (1–13 or \"auto\") */\n start?: number | \"auto\"\n /** Column end line (1–13 or \"auto\") */\n end?: number | \"auto\"\n /** Row span (1–12 or \"full\") */\n rowSpan?: number | \"full\"\n /** Row start line (1–13 or \"auto\") */\n rowStart?: number | \"auto\"\n /** Row end line (1–13 or \"auto\") */\n rowEnd?: number | \"auto\"\n}\n\nfunction Col({ className, span, start, end, rowSpan, rowStart, rowEnd, ...props }: ColProps) {\n return (\n <div\n data-slot=\"col\"\n className={cn(\n span != null && colSpanMap[span],\n start != null && colStartMap[start],\n end != null && colEndMap[end],\n rowSpan != null && rowSpanMap[rowSpan],\n rowStart != null && rowStartMap[rowStart],\n rowEnd != null && rowEndMap[rowEnd],\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Grid, Col }\nexport type { GridProps, ColProps }\n","\"use client\"\n\nimport { CheckIcon, PencilIcon, XIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype InlineEditProps = Omit<React.ComponentProps<\"div\">, \"onChange\"> & {\n /** Current value */\n value: string\n /** Called when edit is confirmed */\n onChange: (value: string) => void\n /** Render the display value (defaults to plain text) */\n renderDisplay?: (value: string) => React.ReactNode\n /** Placeholder when value is empty */\n placeholder?: string\n}\n\nfunction InlineEdit({\n value,\n onChange,\n renderDisplay,\n placeholder = \"Click to edit\",\n className,\n ...props\n}: InlineEditProps) {\n const [editing, setEditing] = useState(false)\n const [draft, setDraft] = useState(value)\n const inputRef = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n setDraft(value)\n }, [value])\n\n useEffect(() => {\n if (editing) inputRef.current?.focus()\n }, [editing])\n\n const confirm = useCallback(() => {\n onChange(draft)\n setEditing(false)\n }, [draft, onChange])\n\n const cancel = useCallback(() => {\n setDraft(value)\n setEditing(false)\n }, [value])\n\n if (editing) {\n return (\n <div data-slot=\"inline-edit\" className={cn(\"flex items-center gap-1\", className)} {...props}>\n <input\n ref={inputRef}\n value={draft}\n onChange={(e) => setDraft(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") confirm()\n if (e.key === \"Escape\") cancel()\n }}\n className=\"flex-1 rounded-md border bg-background px-2 py-1 text-sm outline-none focus:ring-2 focus:ring-ring\"\n />\n <button\n type=\"button\"\n onClick={confirm}\n className=\"rounded-md p-1 text-muted-foreground hover:text-foreground\"\n aria-label=\"Confirm\"\n >\n <CheckIcon className=\"size-3.5\" />\n </button>\n <button\n type=\"button\"\n onClick={cancel}\n className=\"rounded-md p-1 text-muted-foreground hover:text-foreground\"\n aria-label=\"Cancel\"\n >\n <XIcon className=\"size-3.5\" />\n </button>\n </div>\n )\n }\n\n return (\n <div\n data-slot=\"inline-edit\"\n className={cn(\"group inline-flex cursor-pointer items-center gap-1\", className)}\n onClick={() => setEditing(true)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") setEditing(true)\n }}\n role=\"button\"\n tabIndex={0}\n {...props}\n >\n <span className={cn(!value && \"text-muted-foreground\")}>\n {renderDisplay ? renderDisplay(value) : value || placeholder}\n </span>\n <PencilIcon className=\"size-3 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100\" />\n </div>\n )\n}\n\nexport { InlineEdit }\nexport type { InlineEditProps }\n","\"use client\"\n\nimport { OTPInput, OTPInputContext } from \"input-otp\"\nimport { MinusIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction InputOTP({\n className,\n containerClassName,\n ...props\n}: React.ComponentProps<typeof OTPInput> & {\n containerClassName?: string\n}) {\n return (\n <OTPInput\n data-slot=\"input-otp\"\n containerClassName={cn(\n \"cn-input-otp flex items-center has-disabled:opacity-50\",\n containerClassName,\n )}\n spellCheck={false}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n )\n}\n\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-otp-group\"\n className={cn(\n \"flex items-center rounded-md has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction InputOTPSlot({\n index,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n index: number\n}) {\n const inputOTPContext = React.useContext(OTPInputContext)\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {}\n\n return (\n <div\n data-slot=\"input-otp-slot\"\n data-active={isActive}\n className={cn(\n \"relative flex size-9 items-center justify-center border-input border-y border-r text-sm shadow-xs outline-none transition-all first:rounded-l-md first:border-l last:rounded-r-md aria-invalid:border-destructive data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-3 data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20 dark:bg-input/30 dark:data-[active=true]:aria-invalid:ring-destructive/40\",\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\nfunction InputOTPSeparator({ ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-otp-separator\"\n className=\"flex items-center [&_svg:not([class*='size-'])]:size-4\"\n role=\"separator\"\n {...props}\n >\n <MinusIcon />\n </div>\n )\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }\n","import { cn } from \"../lib/utils\"\n\nfunction Kbd({ className, ...props }: React.ComponentProps<\"kbd\">) {\n return (\n <kbd\n data-slot=\"kbd\"\n className={cn(\n \"pointer-events-none inline-flex h-5 w-fit min-w-5 select-none items-center justify-center gap-1 rounded-sm bg-muted in-data-[slot=tooltip-content]:bg-background/20 px-1 font-medium font-sans in-data-[slot=tooltip-content]:text-background text-muted-foreground text-xs dark:in-data-[slot=tooltip-content]:bg-background/10 [&_svg:not([class*='size-'])]:size-3\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction KbdGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <kbd\n data-slot=\"kbd-group\"\n className={cn(\"inline-flex items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\nexport { Kbd, KbdGroup }\n","import { Loader2Icon } from \"lucide-react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Spinner({ className, ...props }: React.ComponentProps<\"svg\">) {\n return (\n <Loader2Icon\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(\"size-4 animate-spin\", className)}\n {...props}\n />\n )\n}\n\nexport { Spinner }\n","import type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { Spinner } from \"./spinner\"\n\ntype LoadingOverlayProps = React.ComponentProps<\"div\"> & {\n /** Whether the overlay is visible */\n loading: boolean\n /** Optional label */\n label?: string\n}\n\nfunction LoadingOverlay({ loading, label, className, children, ...props }: LoadingOverlayProps) {\n return (\n <div data-slot=\"loading-overlay\" className={cn(\"relative\", className)} {...props}>\n {children}\n {loading && (\n <div className=\"absolute inset-0 z-50 flex flex-col items-center justify-center gap-2 rounded-[inherit] bg-background/80 backdrop-blur-[2px]\">\n <Spinner className=\"size-6\" />\n {label && <p className=\"text-muted-foreground text-sm\">{label}</p>}\n </div>\n )}\n </div>\n )\n}\n\nexport { LoadingOverlay }\nexport type { LoadingOverlayProps }\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../lib/utils\"\n\nconst logoVaspVariants = cva(\"inline-block shrink-0\", {\n variants: {\n size: {\n sm: \"size-6\",\n default: \"size-8\",\n lg: \"size-12\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\ntype LogoVaspProps = React.ComponentProps<\"svg\"> & VariantProps<typeof logoVaspVariants>\n\nfunction LogoVasp({ size, className, ...props }: LogoVaspProps) {\n return (\n <svg\n viewBox=\"0 0 320 320\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n data-slot=\"logo-vasp\"\n className={cn(logoVaspVariants({ size }), className)}\n role=\"img\"\n aria-label=\"VASP Track logo\"\n {...props}\n >\n <path d=\"M35 65h97l84 190h-97L35 65zM216 65h68v124h-68z\" fill=\"currentColor\" />\n </svg>\n )\n}\n\nexport { LogoVasp, logoVaspVariants }\nexport type { LogoVaspProps }\n","\"use client\"\n\nimport { cn } from \"../lib/utils\"\n\ninterface MarqueeProps {\n children: React.ReactNode\n className?: string\n /** Duration in seconds for one full loop. Default: 40 */\n duration?: number\n /** Scroll direction. Default: \"left\" */\n direction?: \"left\" | \"right\"\n /** Pause on hover. Default: true */\n pauseOnHover?: boolean\n /** Show fade edges. Default: true */\n fadeEdges?: boolean\n}\n\nfunction Marquee({\n children,\n className,\n duration = 40,\n direction = \"left\",\n pauseOnHover = true,\n fadeEdges = true,\n}: MarqueeProps) {\n return (\n <div\n data-slot=\"marquee\"\n className={cn(\"relative flex items-center overflow-hidden\", className)}\n >\n {fadeEdges && (\n <>\n <div className=\"pointer-events-none absolute inset-y-0 left-0 z-10 w-16 bg-gradient-to-r from-background to-transparent\" />\n <div className=\"pointer-events-none absolute inset-y-0 right-0 z-10 w-16 bg-gradient-to-l from-background to-transparent\" />\n </>\n )}\n <div\n className={cn(\n \"flex w-max gap-4\",\n direction === \"left\" ? \"animate-marquee-left\" : \"animate-marquee-right\",\n pauseOnHover && \"hover:[animation-play-state:paused]\",\n )}\n style={{ animationDuration: `${duration}s` }}\n >\n {children}\n {children}\n </div>\n </div>\n )\n}\n\nexport { Marquee }\nexport type { MarqueeProps }\n","\"use client\"\n\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\"\nimport { Menubar as MenubarPrimitive } from \"@base-ui/react/menubar\"\nimport { CheckIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"./dropdown-menu\"\n\nfunction Menubar({ className, ...props }: MenubarPrimitive.Props) {\n return (\n <MenubarPrimitive\n data-slot=\"menubar\"\n className={cn(\n \"flex h-9 items-center gap-1 rounded-md border bg-background p-1 shadow-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarMenu({ ...props }: React.ComponentProps<typeof DropdownMenu>) {\n return <DropdownMenu data-slot=\"menubar-menu\" {...props} />\n}\n\nfunction MenubarGroup({ ...props }: React.ComponentProps<typeof DropdownMenuGroup>) {\n return <DropdownMenuGroup data-slot=\"menubar-group\" {...props} />\n}\n\nfunction MenubarPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPortal>) {\n return <DropdownMenuPortal data-slot=\"menubar-portal\" {...props} />\n}\n\nfunction MenubarTrigger({ className, ...props }: React.ComponentProps<typeof DropdownMenuTrigger>) {\n return (\n <DropdownMenuTrigger\n data-slot=\"menubar-trigger\"\n className={cn(\n \"flex select-none items-center rounded-sm px-2 py-1 font-medium text-sm outline-hidden hover:bg-muted aria-expanded:bg-muted\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarContent({\n className,\n align = \"start\",\n alignOffset = -4,\n sideOffset = 8,\n ...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n return (\n <DropdownMenuContent\n data-slot=\"menubar-content\"\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"data-open:fade-in-0 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 cn-menu-target min-w-36 rounded-lg border border-border-light bg-popover p-1 text-popover-foreground shadow-lg duration-100 data-open:animate-in\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuItem>) {\n return (\n <DropdownMenuItem\n data-slot=\"menubar-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/menubar-item gap-2 rounded-sm px-2 py-1.5 text-sm focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-8 data-[variant=destructive]:text-destructive data-disabled:opacity-50 data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"menubar-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md py-1.5 pr-2 pl-8 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4\">\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n )\n}\n\nfunction MenubarRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuRadioGroup>) {\n return <DropdownMenuRadioGroup data-slot=\"menubar-radio-group\" {...props} />\n}\n\nfunction MenubarRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"menubar-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md py-1.5 pr-2 pl-8 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4\">\n <MenuPrimitive.RadioItemIndicator>\n <CheckIcon />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n )\n}\n\nfunction MenubarLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuLabel> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuLabel\n data-slot=\"menubar-label\"\n data-inset={inset}\n className={cn(\"px-2 py-1.5 font-medium text-sm data-inset:pl-8\", className)}\n {...props}\n />\n )\n}\n\nfunction MenubarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSeparator>) {\n return (\n <DropdownMenuSeparator\n data-slot=\"menubar-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction MenubarShortcut({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuShortcut>) {\n return (\n <DropdownMenuShortcut\n data-slot=\"menubar-shortcut\"\n className={cn(\n \"ml-auto text-muted-foreground text-xs tracking-widest group-focus/menubar-item:text-accent-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarSub({ ...props }: React.ComponentProps<typeof DropdownMenuSub>) {\n return <DropdownMenuSub data-slot=\"menubar-sub\" {...props} />\n}\n\nfunction MenubarSubTrigger({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSubTrigger> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuSubTrigger\n data-slot=\"menubar-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"gap-2 rounded-sm px-2 py-1.5 text-sm focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-inset:pl-8 data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSubContent>) {\n return (\n <DropdownMenuSubContent\n data-slot=\"menubar-sub-content\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-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 min-w-32 rounded-lg border border-border-light bg-popover p-1 text-popover-foreground shadow-lg duration-100 data-closed:animate-out data-open:animate-in\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n Menubar,\n MenubarPortal,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarGroup,\n MenubarSeparator,\n MenubarLabel,\n MenubarItem,\n MenubarShortcut,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n}\n","import { ChevronDownIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\ntype NativeSelectProps = Omit<React.ComponentProps<\"select\">, \"size\"> & {\n size?: \"sm\" | \"default\"\n}\n\nfunction NativeSelect({ className, size = \"default\", ...props }: NativeSelectProps) {\n return (\n <div\n className={cn(\n \"group/native-select relative w-fit has-[select:disabled]:opacity-50\",\n className,\n )}\n data-slot=\"native-select-wrapper\"\n data-size={size}\n >\n <select\n data-slot=\"native-select\"\n data-size={size}\n className=\"h-9 w-full min-w-0 select-none appearance-none rounded-md border border-input bg-transparent py-1 pr-8 pl-2.5 text-sm shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=sm]:h-8 dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 dark:hover:bg-input/50\"\n {...props}\n />\n <ChevronDownIcon\n className=\"pointer-events-none absolute top-1/2 right-2.5 size-4 -translate-y-1/2 select-none text-muted-foreground\"\n aria-hidden=\"true\"\n data-slot=\"native-select-icon\"\n />\n </div>\n )\n}\n\nfunction NativeSelectOption({ ...props }: React.ComponentProps<\"option\">) {\n return <option data-slot=\"native-select-option\" {...props} />\n}\n\nfunction NativeSelectOptGroup({ className, ...props }: React.ComponentProps<\"optgroup\">) {\n return <optgroup data-slot=\"native-select-optgroup\" className={cn(className)} {...props} />\n}\n\nexport { NativeSelect, NativeSelectOptGroup, NativeSelectOption }\n","import { NavigationMenu as NavigationMenuPrimitive } from \"@base-ui/react/navigation-menu\"\nimport { cva } from \"class-variance-authority\"\n\nimport { ChevronDownIcon } from \"lucide-react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction NavigationMenu({\n align = \"start\",\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Root.Props & Pick<NavigationMenuPrimitive.Positioner.Props, \"align\">) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n className={cn(\n \"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center\",\n className,\n )}\n {...props}\n >\n {children}\n <NavigationMenuPositioner align={align} />\n </NavigationMenuPrimitive.Root>\n )\n}\n\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(\"group flex flex-1 list-none items-center justify-center gap-0\", className)}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn(\"relative\", className)}\n {...props}\n />\n )\n}\n\nconst navigationMenuTriggerStyle = cva(\n \"bg-background hover:bg-muted focus:bg-muted data-open:hover:bg-muted data-open:focus:bg-muted data-open:bg-muted/50 focus-visible:ring-ring/50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted rounded-md px-4 py-2 text-sm font-medium transition-all focus-visible:ring-3 focus-visible:outline-1 disabled:opacity-50 group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center disabled:pointer-events-none outline-none\",\n)\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Trigger.Props) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDownIcon\n className=\"relative top-px ml-1 size-3 transition duration-300 group-data-open/navigation-menu-trigger:rotate-180 group-data-popup-open/navigation-menu-trigger:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n )\n}\n\nfunction NavigationMenuContent({ className, ...props }: NavigationMenuPrimitive.Content.Props) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"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 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 h-full w-auto p-2 pr-2.5 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-ending-style:data-activation-direction=left:translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-ending-style:opacity-0 data-starting-style:opacity-0 **:data-[slot=navigation-menu-link]:focus:outline-none **:data-[slot=navigation-menu-link]:focus:ring-0 group-data-[viewport=false]/navigation-menu:rounded-lg group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:border-border-light group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow-lg group-data-[viewport=false]/navigation-menu:duration-300 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-open:animate-in\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuPositioner({\n className,\n side = \"bottom\",\n sideOffset = 8,\n align = \"start\",\n alignOffset = 0,\n ...props\n}: NavigationMenuPrimitive.Positioner.Props) {\n return (\n <NavigationMenuPrimitive.Portal>\n <NavigationMenuPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={cn(\n \"isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0\",\n className,\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Popup className=\"data-[ending-style]:easing-[ease] relative h-(--popup-height) w-(--popup-width) xs:w-(--popup-width) origin-(--transform-origin) rounded-lg border border-border-light bg-popover text-popover-foreground shadow-lg outline-none transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-ending-style:scale-90 data-starting-style:scale-90 data-ending-style:opacity-0 data-starting-style:opacity-0 data-ending-style:duration-150\">\n <NavigationMenuPrimitive.Viewport className=\"relative size-full overflow-hidden\" />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </NavigationMenuPrimitive.Portal>\n )\n}\n\nfunction NavigationMenuLink({ className, ...props }: NavigationMenuPrimitive.Link.Props) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n \"flex items-center gap-1.5 rounded-sm p-2 text-sm outline-none transition-all hover:bg-muted focus:bg-muted focus-visible:outline-1 focus-visible:ring-3 focus-visible:ring-ring/50 data-[active=true]:bg-muted/50 data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Icon>) {\n return (\n <NavigationMenuPrimitive.Icon\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=visible]:animate-in\",\n className,\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Icon>\n )\n}\n\nexport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuIndicator,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n navigationMenuTriggerStyle,\n NavigationMenuPositioner,\n}\n","\"use client\"\n\nimport { MinusIcon, PlusIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { useCallback, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\nimport { Input } from \"./input\"\n\ntype NumberInputProps = Omit<React.ComponentProps<\"input\">, \"type\" | \"value\" | \"onChange\"> & {\n value?: number\n defaultValue?: number\n onChange?: (value: number) => void\n min?: number\n max?: number\n step?: number\n}\n\nfunction NumberInput({\n value: controlledValue,\n defaultValue = 0,\n onChange,\n min = -Infinity,\n max = Infinity,\n step = 1,\n className,\n disabled,\n ...props\n}: NumberInputProps) {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const value = controlledValue ?? internalValue\n\n const setValue = useCallback(\n (next: number) => {\n const clamped = Math.min(max, Math.max(min, next))\n if (controlledValue === undefined) setInternalValue(clamped)\n onChange?.(clamped)\n },\n [min, max, controlledValue, onChange],\n )\n\n return (\n <div data-slot=\"number-input\" className={cn(\"flex items-center gap-1\", className)}>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"size-8 shrink-0\"\n onClick={() => setValue(value - step)}\n disabled={disabled || value <= min}\n aria-label=\"Decrease\"\n >\n <MinusIcon className=\"size-3.5\" />\n </Button>\n <Input\n type=\"number\"\n value={value}\n onChange={(e) => setValue(Number(e.target.value))}\n min={min}\n max={max}\n step={step}\n disabled={disabled}\n className=\"text-center [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none\"\n {...props}\n />\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"size-8 shrink-0\"\n onClick={() => setValue(value + step)}\n disabled={disabled || value >= max}\n aria-label=\"Increase\"\n >\n <PlusIcon className=\"size-3.5\" />\n </Button>\n </div>\n )\n}\n\nexport { NumberInput }\nexport type { NumberInputProps }\n","import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\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\nfunction PaginationContent({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn(\"flex items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n return <li data-slot=\"pagination-item\" {...props} />\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean\n} & Pick<React.ComponentProps<typeof Button>, \"size\"> &\n React.ComponentProps<\"a\">\n\nfunction PaginationLink({ className, isActive, size = \"icon\", ...props }: PaginationLinkProps) {\n return (\n <Button\n variant={isActive ? \"outline\" : \"ghost\"}\n size={size}\n className={cn(className)}\n nativeButton={false}\n render={\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n data-active={isActive}\n {...props}\n />\n }\n />\n )\n}\n\nfunction PaginationPrevious({\n className,\n text = \"Previous\",\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"pl-2!\", className)}\n {...props}\n >\n <ChevronLeftIcon data-icon=\"inline-start\" className=\"cn-rtl-flip\" />\n <span className=\"hidden sm:block\">{text}</span>\n </PaginationLink>\n )\n}\n\nfunction PaginationNext({\n className,\n text = \"Next\",\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"pr-2!\", className)}\n {...props}\n >\n <span className=\"hidden sm:block\">{text}</span>\n <ChevronRightIcon data-icon=\"inline-end\" className=\"cn-rtl-flip\" />\n </PaginationLink>\n )\n}\n\nfunction PaginationEllipsis({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\n \"flex size-9 items-center justify-center [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <MoreHorizontalIcon />\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","import { cva, type VariantProps } from \"class-variance-authority\"\nimport { XIcon } from \"lucide-react\"\nimport * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nconst policyBannerVariants = cva(\n \"relative flex w-full items-center gap-3 rounded-lg border px-4 py-3 text-sm\",\n {\n variants: {\n variant: {\n info: \"border-blue-200 bg-blue-50 text-blue-900 dark:border-blue-800 dark:bg-blue-950 dark:text-blue-100\",\n warning:\n \"border-amber-200 bg-amber-50 text-amber-900 dark:border-amber-800 dark:bg-amber-950 dark:text-amber-100\",\n critical:\n \"border-red-200 bg-red-50 text-red-900 dark:border-red-800 dark:bg-red-950 dark:text-red-100\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n },\n)\n\ntype PolicyBannerProps = React.ComponentProps<\"div\"> &\n VariantProps<typeof policyBannerVariants> & {\n /** Optional icon displayed before the message */\n icon?: React.ReactNode\n /** Action element (e.g. a Button) displayed after the message */\n action?: React.ReactNode\n /** Whether the banner can be dismissed. Defaults to true. */\n dismissible?: boolean\n /** Callback when dismissed */\n onDismiss?: () => void\n }\n\nfunction PolicyBanner({\n variant,\n icon,\n action,\n dismissible = true,\n onDismiss,\n children,\n className,\n ...props\n}: PolicyBannerProps) {\n const [visible, setVisible] = React.useState(true)\n\n if (!visible) return null\n\n function handleDismiss() {\n setVisible(false)\n onDismiss?.()\n }\n\n return (\n <div\n data-slot=\"policy-banner\"\n role=\"alert\"\n className={cn(policyBannerVariants({ variant }), className)}\n {...props}\n >\n {icon && <span className=\"shrink-0\">{icon}</span>}\n <div className=\"flex-1\">{children}</div>\n {action && <span className=\"shrink-0\">{action}</span>}\n {dismissible && (\n <button\n type=\"button\"\n onClick={handleDismiss}\n className=\"shrink-0 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n aria-label=\"Dismiss\"\n >\n <XIcon className=\"size-4\" />\n </button>\n )}\n </div>\n )\n}\n\nexport { PolicyBanner, policyBannerVariants }\nexport type { PolicyBannerProps }\n","\"use client\"\n\nimport { Progress as ProgressPrimitive } from \"@base-ui/react/progress\"\nimport React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction hasProgressTrack(children: React.ReactNode): boolean {\n let found = false\n React.Children.forEach(children, (child) => {\n if (\n React.isValidElement(child) &&\n (child.type === ProgressTrack ||\n (child.type as { displayName?: string })?.displayName === \"ProgressTrack\")\n ) {\n found = true\n }\n })\n return found\n}\n\ntype ProgressProps = ProgressPrimitive.Root.Props & {\n /** Animate the indicator from 0 on mount. Defaults to false. */\n animate?: boolean\n}\n\nfunction Progress({ className, children, value, animate, ...props }: ProgressProps) {\n const hasCustomTrack = hasProgressTrack(children)\n const [mountedValue, setMountedValue] = React.useState(animate ? 0 : value)\n\n React.useEffect(() => {\n if (animate) {\n const id = requestAnimationFrame(() => setMountedValue(value))\n return () => cancelAnimationFrame(id)\n }\n setMountedValue(value)\n }, [animate, value])\n\n return (\n <ProgressPrimitive.Root\n value={mountedValue}\n data-slot=\"progress\"\n className={cn(\"flex flex-wrap gap-3\", className)}\n {...props}\n >\n {children}\n {!hasCustomTrack && (\n <ProgressTrack>\n <ProgressIndicator\n className={animate ? \"transition-all duration-700 ease-out\" : undefined}\n />\n </ProgressTrack>\n )}\n </ProgressPrimitive.Root>\n )\n}\n\nfunction ProgressTrack({ className, ...props }: ProgressPrimitive.Track.Props) {\n return (\n <ProgressPrimitive.Track\n className={cn(\n \"relative flex h-1.5 w-full items-center overflow-x-hidden rounded-full bg-muted\",\n className,\n )}\n data-slot=\"progress-track\"\n {...props}\n />\n )\n}\n\nProgressTrack.displayName = \"ProgressTrack\"\n\nfunction ProgressIndicator({ className, ...props }: ProgressPrimitive.Indicator.Props) {\n return (\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className={cn(\"h-full bg-primary transition-all\", className)}\n {...props}\n />\n )\n}\n\nfunction ProgressLabel({ className, ...props }: ProgressPrimitive.Label.Props) {\n return (\n <ProgressPrimitive.Label\n className={cn(\"font-medium text-sm\", className)}\n data-slot=\"progress-label\"\n {...props}\n />\n )\n}\n\nfunction ProgressValue({ className, ...props }: ProgressPrimitive.Value.Props) {\n return (\n <ProgressPrimitive.Value\n className={cn(\"ml-auto text-muted-foreground text-sm tabular-nums\", className)}\n data-slot=\"progress-value\"\n {...props}\n />\n )\n}\n\nexport { Progress, ProgressTrack, ProgressIndicator, ProgressLabel, ProgressValue }\n","\"use client\"\n\nimport { Radio as RadioPrimitive } from \"@base-ui/react/radio\"\nimport { RadioGroup as RadioGroupPrimitive } from \"@base-ui/react/radio-group\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction RadioGroup({ className, ...props }: RadioGroupPrimitive.Props) {\n return (\n <RadioGroupPrimitive\n data-slot=\"radio-group\"\n className={cn(\"grid w-full gap-3\", className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({ className, ...props }: RadioPrimitive.Root.Props) {\n return (\n <RadioPrimitive.Root\n data-slot=\"radio-group-item\"\n className={cn(\n \"group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-input outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:bg-input/30 dark:data-checked:bg-primary dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n >\n <RadioPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"flex size-4 items-center justify-center\"\n >\n <span className=\"absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-foreground\" />\n </RadioPrimitive.Indicator>\n </RadioPrimitive.Root>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n","\"use client\"\n\nimport * as ResizablePrimitive from \"react-resizable-panels\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction ResizablePanelGroup({ className, ...props }: ResizablePrimitive.GroupProps) {\n return (\n <ResizablePrimitive.Group\n data-slot=\"resizable-panel-group\"\n className={cn(\"flex h-full w-full aria-[orientation=vertical]:flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction ResizablePanel({ ...props }: ResizablePrimitive.PanelProps) {\n return <ResizablePrimitive.Panel data-slot=\"resizable-panel\" {...props} />\n}\n\nfunction ResizableHandle({\n withHandle,\n className,\n ...props\n}: ResizablePrimitive.SeparatorProps & {\n withHandle?: boolean\n}) {\n return (\n <ResizablePrimitive.Separator\n data-slot=\"resizable-handle\"\n className={cn(\n \"relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90\",\n className,\n )}\n {...props}\n >\n {withHandle && <div className=\"z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border\" />}\n </ResizablePrimitive.Separator>\n )\n}\n\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup }\n","\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { useEffect, useRef, useState } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nconst TOTAL_BARS = 40\n\nconst TIER_COLORS: Record<string, { filled: string; empty: string }> = {\n low: { filled: \"bg-success\", empty: \"bg-success/15\" },\n medium: { filled: \"bg-warning\", empty: \"bg-warning/15\" },\n high: { filled: \"bg-risk-high\", empty: \"bg-risk-high/15\" },\n severe: { filled: \"bg-destructive\", empty: \"bg-destructive/15\" },\n highTrust: { filled: \"bg-success\", empty: \"bg-success/15\" },\n moderateTrust: { filled: \"bg-warning\", empty: \"bg-warning/15\" },\n lowTrust: { filled: \"bg-risk-high\", empty: \"bg-risk-high/15\" },\n critical: { filled: \"bg-destructive\", empty: \"bg-destructive/15\" },\n}\n\nconst sizeVariants = cva(\"flex items-center\", {\n variants: {\n size: {\n sm: \"gap-[3px]\",\n lg: \"gap-1\",\n },\n },\n defaultVariants: {\n size: \"sm\",\n },\n})\n\nconst barVariants = cva(\"flex-1 rounded-sm transition-all\", {\n variants: {\n size: {\n sm: \"h-4 w-1.5\",\n lg: \"h-6 w-2.5\",\n },\n },\n defaultVariants: {\n size: \"sm\",\n },\n})\n\nconst textVariants = cva(\"flex items-center justify-between text-muted-foreground\", {\n variants: {\n size: {\n sm: \"text-xs\",\n lg: \"text-sm\",\n },\n },\n defaultVariants: {\n size: \"sm\",\n },\n})\n\ntype RiskGaugeProps = React.ComponentProps<\"div\"> &\n VariantProps<typeof sizeVariants> & {\n score: number\n tier: string\n label?: string\n animated?: boolean\n }\n\nfunction RiskGauge({\n score,\n tier,\n label,\n size = \"sm\",\n animated = true,\n className,\n ...props\n}: RiskGaugeProps) {\n const targetCount = Math.round((score / 100) * TOTAL_BARS)\n const [filledCount, setFilledCount] = useState(animated ? 0 : targetCount)\n const [displayScore, setDisplayScore] = useState(animated ? 0 : score)\n const hasAnimated = useRef(false)\n const ref = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (!animated || hasAnimated.current) {\n setFilledCount(targetCount)\n setDisplayScore(score)\n return\n }\n\n const el = ref.current\n if (!el) return\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (!entry.isIntersecting || hasAnimated.current) return\n hasAnimated.current = true\n\n let current = 0\n const step = () => {\n current++\n setFilledCount(current)\n setDisplayScore(Math.round((current / TOTAL_BARS) * 100))\n if (current < targetCount) {\n setTimeout(step, 40)\n } else {\n setDisplayScore(score)\n }\n }\n setTimeout(step, 100)\n },\n { threshold: 0.5 },\n )\n\n observer.observe(el)\n return () => observer.disconnect()\n }, [animated, targetCount, score])\n\n const colors = TIER_COLORS[tier] ?? TIER_COLORS.medium\n\n return (\n <div\n ref={ref}\n data-slot=\"risk-gauge\"\n className={cn(\"flex flex-col gap-1.5\", className)}\n {...props}\n >\n {label && (\n <div className={textVariants({ size })}>\n <span>{label}</span>\n <span className=\"font-medium font-mono text-foreground\">{displayScore}/100</span>\n </div>\n )}\n <div className={sizeVariants({ size })}>\n {Array.from({ length: TOTAL_BARS }, (_, i) => (\n <div\n key={`bar-${i}`}\n className={cn(\n barVariants({ size }),\n i < filledCount ? colors.filled : colors.empty,\n animated && \"duration-150\",\n )}\n />\n ))}\n </div>\n </div>\n )\n}\n\nexport { RiskGauge, TIER_COLORS as riskGaugeTierColors }\nexport type { RiskGaugeProps }\n","\"use client\"\n\nimport { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction ScrollArea({ className, children, ...props }: ScrollAreaPrimitive.Root.Props) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"size-full rounded-[inherit] outline-none transition-[color,box-shadow] focus-visible:outline-1 focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: ScrollAreaPrimitive.Scrollbar.Props) {\n return (\n <ScrollAreaPrimitive.Scrollbar\n data-slot=\"scroll-area-scrollbar\"\n data-orientation={orientation}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none p-px transition-colors data-horizontal:h-2.5 data-vertical:h-full data-vertical:w-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:border-l data-vertical:border-l-transparent\",\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.Thumb\n data-slot=\"scroll-area-thumb\"\n className=\"relative flex-1 rounded-full bg-border\"\n />\n </ScrollAreaPrimitive.Scrollbar>\n )\n}\n\nexport { ScrollArea, ScrollBar }\n","\"use client\"\n\nimport { Search } from \"lucide-react\"\nimport { type ReactNode, useCallback, useEffect, useRef, useState } from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Input } from \"./input\"\nimport { Spinner } from \"./spinner\"\n\n/* ── Types ── */\n\ntype SearchInputProps<T> = Omit<React.ComponentProps<\"div\">, \"onSelect\"> & {\n onSearch: (query: string) => Promise<T[]>\n renderItem: (item: T, index: number, highlighted: boolean) => ReactNode\n onSelect?: (item: T) => void\n getItemId?: (item: T, index: number) => string\n placeholder?: string\n minQueryLength?: number\n debounceMs?: number\n emptyState?: ReactNode\n inputClassName?: string\n}\n\n/* ── Component ── */\n\nfunction SearchInput<T>({\n onSearch,\n renderItem,\n onSelect,\n getItemId,\n placeholder = \"Search...\",\n minQueryLength = 2,\n debounceMs = 300,\n emptyState,\n className,\n inputClassName,\n ...props\n}: SearchInputProps<T>) {\n const [query, setQuery] = useState(\"\")\n const [results, setResults] = useState<T[]>([])\n const [loading, setLoading] = useState(false)\n const [open, setOpen] = useState(false)\n const [searched, setSearched] = useState(false)\n const [highlightedIndex, setHighlightedIndex] = useState(-1)\n const ref = useRef<HTMLDivElement>(null)\n const listRef = useRef<HTMLDivElement>(null)\n const loadingTimer = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n useEffect(() => {\n if (query.length < minQueryLength) {\n setResults([])\n setOpen(false)\n setLoading(false)\n setSearched(false)\n return\n }\n\n setLoading(true)\n\n const timer = setTimeout(async () => {\n try {\n const data = await onSearch(query)\n setResults(data)\n setSearched(true)\n setOpen(true)\n } finally {\n if (loadingTimer.current) clearTimeout(loadingTimer.current)\n loadingTimer.current = setTimeout(() => setLoading(false), 400)\n }\n }, debounceMs)\n\n return () => {\n clearTimeout(timer)\n }\n }, [query, minQueryLength, debounceMs, onSearch])\n\n useEffect(() => {\n setHighlightedIndex(-1)\n }, [])\n\n // Click outside\n useEffect(() => {\n function handleClickOutside(e: MouseEvent) {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside)\n return () => document.removeEventListener(\"mousedown\", handleClickOutside)\n }, [])\n\n // Auto-scroll highlighted item\n useEffect(() => {\n if (highlightedIndex >= 0 && listRef.current) {\n const items = listRef.current.querySelectorAll(\"[data-search-item]\")\n const el = items[highlightedIndex] as HTMLElement | undefined\n el?.scrollIntoView?.({ block: \"nearest\" })\n }\n }, [highlightedIndex])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Escape\") {\n setOpen(false)\n setHighlightedIndex(-1)\n return\n }\n\n if (!open || results.length === 0) return\n\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault()\n setHighlightedIndex((prev) => (prev < results.length - 1 ? prev + 1 : 0))\n break\n case \"ArrowUp\":\n e.preventDefault()\n setHighlightedIndex((prev) => (prev > 0 ? prev - 1 : results.length - 1))\n break\n case \"Enter\":\n if (highlightedIndex >= 0 && onSelect) {\n e.preventDefault()\n onSelect(results[highlightedIndex])\n setOpen(false)\n }\n break\n }\n },\n [open, results, highlightedIndex, onSelect],\n )\n\n const itemId = useCallback(\n (item: T, index: number) => {\n if (getItemId) return getItemId(item, index)\n return `search-result-${index}`\n },\n [getItemId],\n )\n\n return (\n <div ref={ref} data-slot=\"search-input\" className={cn(\"relative w-full\", className)} {...props}>\n <div\n className={cn(\n \"overflow-hidden rounded-xl border border-border bg-background transition-shadow duration-200\",\n open ? \"ring-2 ring-ring\" : \"focus-within:ring-2 focus-within:ring-ring\",\n )}\n >\n <div className=\"relative\">\n <Search className=\"pointer-events-none absolute top-1/2 left-4 size-5 -translate-y-1/2 text-muted-foreground\" />\n <Input\n type=\"text\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n onFocus={() => searched && setOpen(true)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n className={cn(\n \"h-auto rounded-none border-0 bg-transparent px-12 py-4 text-foreground text-lg shadow-none placeholder:text-muted-foreground focus-visible:border-0 focus-visible:ring-0\",\n inputClassName,\n )}\n role=\"combobox\"\n aria-expanded={open}\n aria-activedescendant={\n highlightedIndex >= 0\n ? itemId(results[highlightedIndex], highlightedIndex)\n : undefined\n }\n />\n {loading && (\n <div className=\"absolute top-1/2 right-4 -translate-y-1/2\">\n <Spinner />\n </div>\n )}\n </div>\n\n {open && (\n <div\n ref={listRef}\n data-slot=\"search-input-results\"\n className=\"max-h-96 overflow-y-auto border-border border-t\"\n role=\"listbox\"\n >\n {results.length === 0 && searched && !loading && (\n <div className=\"px-4 py-4\">\n {emptyState ?? (\n <p className=\"text-muted-foreground text-sm\">\n No results found for &ldquo;{query}&rdquo;\n </p>\n )}\n </div>\n )}\n {results.map((item, i) => (\n <div\n key={itemId(item, i)}\n id={itemId(item, i)}\n data-search-item\n role=\"option\"\n aria-selected={i === highlightedIndex}\n onClick={() => {\n onSelect?.(item)\n setOpen(false)\n }}\n onMouseEnter={() => setHighlightedIndex(i)}\n onMouseLeave={() => setHighlightedIndex(-1)}\n className={cn(\n \"flex w-full cursor-pointer items-start gap-3 px-4 py-3 text-left transition-colors hover:bg-accent\",\n i === highlightedIndex && \"bg-primary/10 ring-1 ring-primary/20\",\n i !== highlightedIndex && i % 2 === 1 && \"bg-muted/30\",\n )}\n >\n {renderItem(item, i, i === highlightedIndex)}\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n )\n}\n\nexport { SearchInput }\nexport type { SearchInputProps }\n","\"use client\"\n\nimport type * as React from \"react\"\nimport { useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype SegmentedControlProps = Omit<React.ComponentProps<\"div\">, \"onChange\"> & {\n options: { value: string; label: React.ReactNode }[]\n value?: string\n defaultValue?: string\n onChange?: (value: string) => void\n}\n\nfunction SegmentedControl({\n options,\n value: controlledValue,\n defaultValue,\n onChange,\n className,\n ...props\n}: SegmentedControlProps) {\n const [internalValue, setInternalValue] = useState(defaultValue ?? options[0]?.value)\n const value = controlledValue ?? internalValue\n\n const selectedIndex = options.findIndex((o) => o.value === value)\n\n return (\n <div\n data-slot=\"segmented-control\"\n role=\"radiogroup\"\n className={cn(\"relative inline-flex items-center rounded-lg bg-muted p-1\", className)}\n {...props}\n >\n <div\n className=\"absolute inset-y-1 rounded-md bg-background shadow-sm transition-all duration-200\"\n style={{\n width: `calc((100% - 8px) / ${options.length})`,\n left: `calc(4px + ${selectedIndex} * (100% - 8px) / ${options.length})`,\n }}\n />\n {options.map((option) => (\n <button\n key={option.value}\n type=\"button\"\n role=\"radio\"\n aria-checked={value === option.value}\n onClick={() => {\n if (controlledValue === undefined) setInternalValue(option.value)\n onChange?.(option.value)\n }}\n className={cn(\n \"relative z-10 flex-1 rounded-md px-3 py-1.5 font-medium text-sm transition-colors\",\n value === option.value\n ? \"text-foreground\"\n : \"text-muted-foreground hover:text-foreground\",\n )}\n >\n {option.label}\n </button>\n ))}\n </div>\n )\n}\n\nexport { SegmentedControl }\nexport type { SegmentedControlProps }\n","\"use client\"\n\nimport { Dialog as SheetPrimitive } from \"@base-ui/react/dialog\"\nimport { XIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\n\nfunction Sheet({ ...props }: SheetPrimitive.Root.Props) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({ ...props }: SheetPrimitive.Close.Props) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({ ...props }: SheetPrimitive.Portal.Props) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.Props) {\n return (\n <SheetPrimitive.Backdrop\n data-slot=\"sheet-overlay\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 z-50 bg-black/10 duration-100 data-closed:animate-out data-open:animate-in data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n showCloseButton = true,\n ...props\n}: SheetPrimitive.Popup.Props & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n showCloseButton?: boolean\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Popup\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n \"data-[side=right]:data-closed:slide-out-to-right-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=top]:data-closed:slide-out-to-top-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:fade-out-0 data-open:fade-in-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=bottom]:data-open:slide-in-from-bottom-10 fixed z-50 flex flex-col gap-4 bg-background bg-clip-padding text-sm shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=top]:inset-x-0 data-[side=left]:inset-y-0 data-[side=right]:inset-y-0 data-[side=top]:top-0 data-[side=right]:right-0 data-[side=bottom]:bottom-0 data-[side=left]:left-0 data-[side=bottom]:h-auto data-[side=left]:h-full data-[side=right]:h-full data-[side=top]:h-auto data-[side=left]:w-3/4 data-[side=right]:w-3/4 data-closed:animate-out data-open:animate-in data-[side=bottom]:border-t data-[side=left]:border-r data-[side=top]:border-b data-[side=right]:border-l data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <SheetPrimitive.Close\n data-slot=\"sheet-close\"\n render={<Button variant=\"ghost\" className=\"absolute top-4 right-4\" size=\"icon-sm\" />}\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Popup>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col gap-1.5 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({ className, ...props }: SheetPrimitive.Title.Props) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\"font-medium text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({ className, ...props }: SheetPrimitive.Description.Props) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\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\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"animate-pulse rounded-md bg-muted-foreground/15\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n","\"use client\"\n\nimport { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction TooltipProvider({ delay = 0, ...props }: TooltipPrimitive.Provider.Props) {\n return <TooltipPrimitive.Provider data-slot=\"tooltip-provider\" delay={delay} {...props} />\n}\n\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n}\n\nfunction TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n side = \"top\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n children,\n ...props\n}: TooltipPrimitive.Popup.Props &\n Pick<TooltipPrimitive.Positioner.Props, \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\">) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n \"data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:fade-out-0 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 z-50 w-fit max-w-xs origin-(--transform-origin) rounded-md bg-foreground px-3 py-1.5 text-background text-xs data-[state=delayed-open]:animate-in data-closed:animate-out data-open:animate-in\",\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-start]:top-1/2! data-[side=left]:top-1/2! data-[side=right]:top-1/2! data-[side=inline-start]:-right-1 data-[side=left]:-right-1 data-[side=top]:-bottom-2.5 data-[side=inline-end]:-left-1 data-[side=right]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:-translate-y-1/2 data-[side=right]:-translate-y-1/2\" />\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","\"use client\"\n\nimport { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { PanelLeftIcon } from \"lucide-react\"\nimport * as React from \"react\"\nimport { useIsMobile } from \"../hooks/use-mobile\"\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\nimport { Input } from \"./input\"\nimport { Separator } from \"./separator\"\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from \"./sheet\"\nimport { Skeleton } from \"./skeleton\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"./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\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\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<\"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 // biome-ignore lint/suspicious/noDocumentCookie: sidebar state persistence\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 ? setOpenMobile((open) => !open) : setOpen((open) => !open)\n }, [isMobile, setOpen])\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\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, toggleSidebar],\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <div\n data-slot=\"sidebar-wrapper\"\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 {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n )\n}\n\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n dir,\n ...props\n}: React.ComponentProps<\"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 {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n dir={dir}\n data-sidebar=\"sidebar\"\n data-slot=\"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 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 data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\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)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n data-side={side}\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=right]:right-0 data-[side=left]:left-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] md:flex\",\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)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\nfunction SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon-sm\"\n className={cn(className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeftIcon className=\"cn-rtl-flip\" />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"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 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]:-right-4 group-data-[side=right]:left-0 sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2\",\n \"in-data-[side=left]:cursor-w-resize in-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 hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:after:left-full\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n \"relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\"h-8 w-full bg-background shadow-none\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\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\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\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\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\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\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"no-scrollbar 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\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\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\nfunction SidebarGroupLabel({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"div\"> & React.ComponentProps<\"div\">) {\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\n \"text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 flex shrink-0 items-center outline-hidden [&>svg]:shrink-0\",\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: \"sidebar-group-label\",\n sidebar: \"group-label\",\n },\n })\n}\n\nfunction SidebarGroupAction({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"button\"> & React.ComponentProps<\"button\">) {\n return useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 w-5 rounded-md p-0 focus-visible:ring-2 [&>svg]:size-4 flex aspect-square items-center justify-center outline-hidden transition-transform [&>svg]:shrink-0 after:absolute after:-inset-2 md:after:hidden group-data-[collapsible=icon]:hidden\",\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: \"sidebar-group-action\",\n sidebar: \"group-action\",\n },\n })\n}\n\nfunction SidebarGroupContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\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\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\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\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\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\nconst sidebarMenuButtonVariants = cva(\n \"ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-md p-2 text-left text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-active:font-medium peer/menu-button flex w-full items-center overflow-hidden outline-hidden group/menu-button 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\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] 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\nfunction SidebarMenuButton({\n render,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n}: useRender.ComponentProps<\"button\"> &\n React.ComponentProps<\"button\"> & {\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n } & VariantProps<typeof sidebarMenuButtonVariants>) {\n const { isMobile, state } = useSidebar()\n const buttonProps = mergeProps<\"button\">(\n {\n className: cn(sidebarMenuButtonVariants({ variant, size }), className),\n },\n props,\n )\n const buttonState = {\n slot: \"sidebar-menu-button\",\n sidebar: \"menu-button\",\n size,\n active: isActive,\n }\n\n if (!tooltip) {\n return useRender({\n defaultTagName: \"button\",\n props: buttonProps,\n render,\n state: buttonState,\n })\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n }\n }\n\n // When tooltip is present, wrap in Tooltip but preserve the render prop\n // so the element renders as the correct tag (e.g. <a> via Next.js Link)\n const triggerRender = render ?? <button />\n return (\n <Tooltip>\n <TooltipTrigger\n render={triggerRender}\n {...buttonProps}\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive || undefined}\n />\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n )\n}\n\nfunction SidebarMenuAction({\n className,\n render,\n showOnHover = false,\n ...props\n}: useRender.ComponentProps<\"button\"> &\n React.ComponentProps<\"button\"> & {\n showOnHover?: boolean\n }) {\n return useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 aspect-square w-5 rounded-md p-0 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 focus-visible:ring-2 [&>svg]:size-4 flex items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0\",\n showOnHover &&\n \"peer-data-active/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 aria-expanded:opacity-100 md:opacity-0\",\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: \"sidebar-menu-action\",\n sidebar: \"menu-action\",\n },\n })\n}\n\nfunction SidebarMenuBadge({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 font-medium text-sidebar-foreground text-xs tabular-nums peer-hover/menu-button:text-sidebar-accent-foreground group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 peer-data-active/menu-button:text-sidebar-accent-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showIcon?: boolean\n}) {\n // Random width between 50 to 90%.\n const [width] = React.useState(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n })\n\n return (\n <div\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 && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\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\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\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-sidebar-border border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubButton({\n render,\n size = \"md\",\n isActive = false,\n className,\n ...props\n}: useRender.ComponentProps<\"a\"> &\n React.ComponentProps<\"a\"> & {\n size?: \"sm\" | \"md\"\n isActive?: boolean\n }) {\n return useRender({\n defaultTagName: \"a\",\n props: mergeProps<\"a\">(\n {\n className: cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground h-7 gap-2 rounded-md px-2 focus-visible:ring-2 data-[size=md]:text-sm data-[size=sm]:text-xs [&>svg]:size-4 flex min-w-0 -translate-x-px items-center overflow-hidden outline-hidden group-data-[collapsible=icon]:hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0\",\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: \"sidebar-menu-sub-button\",\n sidebar: \"menu-sub-button\",\n size,\n active: isActive,\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 { Slider as SliderPrimitive } from \"@base-ui/react/slider\"\nimport * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: SliderPrimitive.Root.Props) {\n const _values = React.useMemo(\n () => (Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max]),\n [value, defaultValue, min, max],\n )\n\n return (\n <SliderPrimitive.Root\n className={cn(\"data-vertical:h-full data-horizontal:w-full\", className)}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n thumbAlignment=\"edge\"\n {...props}\n >\n <SliderPrimitive.Control className=\"relative flex w-full touch-none select-none items-center data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col data-disabled:opacity-50\">\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className=\"relative grow select-none overflow-hidden rounded-full bg-muted data-horizontal:h-1.5 data-vertical:h-full data-horizontal:w-full data-vertical:w-1.5\"\n >\n <SliderPrimitive.Indicator\n data-slot=\"slider-range\"\n className=\"select-none bg-primary data-horizontal:h-full data-vertical:w-full\"\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"block size-4 shrink-0 select-none rounded-full border border-primary bg-white shadow-sm ring-ring/50 transition-[color,box-shadow] hover:ring-4 focus-visible:outline-hidden focus-visible:ring-4 disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Control>\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n","\"use client\"\n\nimport {\n CircleCheckIcon,\n InfoIcon,\n Loader2Icon,\n OctagonXIcon,\n TriangleAlertIcon,\n} from \"lucide-react\"\nimport { Toaster as Sonner, type ToasterProps } from \"sonner\"\n\nconst Toaster = ({ theme, ...props }: ToasterProps) => {\n return (\n <Sonner\n theme={theme}\n className=\"toaster group\"\n icons={{\n success: <CircleCheckIcon className=\"size-4\" />,\n info: <InfoIcon className=\"size-4\" />,\n warning: <TriangleAlertIcon className=\"size-4\" />,\n error: <OctagonXIcon className=\"size-4\" />,\n loading: <Loader2Icon className=\"size-4 animate-spin\" />,\n }}\n style={\n {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n \"--border-radius\": \"var(--radius)\",\n } as React.CSSProperties\n }\n toastOptions={{\n classNames: {\n toast: \"cn-toast\",\n },\n }}\n {...props}\n />\n )\n}\n\nexport { Toaster }\n","\"use client\"\n\nimport type * as ResizablePrimitive from \"react-resizable-panels\"\n\nimport { cn } from \"../lib/utils\"\nimport { ResizableHandle, ResizablePanel, ResizablePanelGroup } from \"./resizable\"\n\ntype SplitPaneDirection = \"horizontal\" | \"vertical\"\n\ninterface SplitPaneProps extends Omit<React.ComponentProps<\"div\">, \"dir\"> {\n /** Layout direction. @default \"horizontal\" */\n direction?: SplitPaneDirection\n children: React.ReactNode\n}\n\nfunction SplitPane({ direction = \"horizontal\", className, children, ...props }: SplitPaneProps) {\n return (\n <div data-slot=\"split-pane\" className={cn(\"flex h-full w-full\", className)} {...props}>\n {/* @ts-expect-error direction type mismatch between react-resizable-panels versions */}\n <ResizablePanelGroup direction={direction}>{children}</ResizablePanelGroup>\n </div>\n )\n}\n\ninterface SplitPanePanelProps extends ResizablePrimitive.PanelProps {}\n\nfunction SplitPanePanel({ minSize = 20, defaultSize = 35, ...props }: SplitPanePanelProps) {\n return <ResizablePanel minSize={minSize} defaultSize={defaultSize} {...props} />\n}\n\ninterface SplitPaneDividerProps\n extends Omit<React.ComponentProps<typeof ResizableHandle>, \"withHandle\"> {\n /** Show a visible grab indicator. @default true */\n withHandle?: boolean\n}\n\nfunction SplitPaneDivider({ withHandle = true, className, ...props }: SplitPaneDividerProps) {\n return (\n <ResizableHandle\n withHandle={withHandle}\n className={cn(\"data-[slot=resizable-handle]:bg-border\", className)}\n {...props}\n />\n )\n}\n\nexport { SplitPane, SplitPaneDivider, SplitPanePanel }\nexport type { SplitPaneDividerProps, SplitPaneDirection, SplitPaneProps, SplitPanePanelProps }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport { TrendingDownIcon, TrendingUpIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction Stat({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"stat\" className={cn(\"space-y-1\", className)} {...props} />\n}\n\nfunction StatLabel({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"stat-label\"\n className={cn(\"font-medium text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction StatValue({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"stat-value\"\n className={cn(\"font-bold text-2xl tracking-tight\", className)}\n {...props}\n />\n )\n}\n\nconst trendVariants = cva(\"inline-flex items-center gap-1 text-xs font-medium\", {\n variants: {\n direction: {\n up: \"text-emerald-600 dark:text-emerald-400\",\n down: \"text-red-600 dark:text-red-400\",\n neutral: \"text-muted-foreground\",\n },\n },\n defaultVariants: { direction: \"neutral\" },\n})\n\ntype StatTrendProps = React.ComponentProps<\"span\"> & VariantProps<typeof trendVariants>\n\nfunction StatTrend({ className, direction, children, ...props }: StatTrendProps) {\n return (\n <span data-slot=\"stat-trend\" className={cn(trendVariants({ direction }), className)} {...props}>\n {direction === \"up\" && <TrendingUpIcon className=\"size-3.5\" />}\n {direction === \"down\" && <TrendingDownIcon className=\"size-3.5\" />}\n {children}\n </span>\n )\n}\n\nexport { Stat, StatLabel, StatValue, StatTrend, trendVariants }\nexport type { StatTrendProps }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\nconst statusIndicatorVariants = cva(\"relative inline-flex shrink-0 rounded-full\", {\n variants: {\n variant: {\n online: \"bg-emerald-500\",\n offline: \"bg-muted-foreground/40\",\n busy: \"bg-destructive\",\n away: \"bg-amber-500\",\n pending: \"bg-blue-500\",\n },\n size: {\n sm: \"size-2\",\n default: \"size-2.5\",\n lg: \"size-3.5\",\n },\n pulse: {\n true: \"\",\n false: \"\",\n },\n },\n compoundVariants: [\n { pulse: true, variant: \"online\", className: \"animate-pulse\" },\n { pulse: true, variant: \"busy\", className: \"animate-pulse\" },\n { pulse: true, variant: \"pending\", className: \"animate-pulse\" },\n ],\n defaultVariants: {\n variant: \"online\",\n size: \"default\",\n pulse: false,\n },\n})\n\ntype StatusIndicatorProps = React.ComponentProps<\"span\"> &\n VariantProps<typeof statusIndicatorVariants> & {\n /** Accessible label describing the status */\n label?: string\n }\n\nfunction StatusIndicator({\n variant,\n size,\n pulse,\n label,\n className,\n ...props\n}: StatusIndicatorProps) {\n const defaultLabels: Record<string, string> = {\n online: \"Online\",\n offline: \"Offline\",\n busy: \"Busy\",\n away: \"Away\",\n pending: \"Pending\",\n }\n\n return (\n <span\n data-slot=\"status-indicator\"\n role=\"status\"\n aria-label={label ?? defaultLabels[variant ?? \"online\"]}\n className={cn(statusIndicatorVariants({ variant, size, pulse }), className)}\n {...props}\n />\n )\n}\n\nexport { StatusIndicator, statusIndicatorVariants }\nexport type { StatusIndicatorProps }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport { CheckIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype StepProgressStatus = \"complete\" | \"current\" | \"upcoming\"\n\nconst stepProgressVariants = cva(\"\", {\n variants: {\n orientation: {\n horizontal: \"flex w-full items-start\",\n vertical: \"flex flex-col\",\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n})\n\ntype StepProgressProps = React.ComponentProps<\"div\"> & VariantProps<typeof stepProgressVariants>\n\nfunction StepProgress({ orientation, className, ...props }: StepProgressProps) {\n return (\n <div\n data-slot=\"step-progress\"\n data-orientation={orientation ?? \"vertical\"}\n className={cn(stepProgressVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\ntype StepProgressItemProps = React.ComponentProps<\"div\"> & {\n status?: StepProgressStatus\n}\n\nfunction StepProgressItem({ status = \"upcoming\", className, ...props }: StepProgressItemProps) {\n return (\n <div\n data-slot=\"step-progress-item\"\n data-status={status}\n className={cn(\n \"relative flex\",\n // Vertical: row layout, bottom padding\n \"[[data-orientation='vertical']_&]:gap-3 [[data-orientation='vertical']_&]:pb-8 [[data-orientation='vertical']_&]:last:pb-0\",\n // Horizontal: column layout, flex-1 to share space\n \"[[data-orientation='horizontal']_&]:flex-1 [[data-orientation='horizontal']_&]:flex-col [[data-orientation='horizontal']_&]:items-center [[data-orientation='horizontal']_&]:gap-2\",\n className,\n )}\n {...props}\n />\n )\n}\n\nconst indicatorStyles: Record<StepProgressStatus, string> = {\n complete: \"border-emerald-500 bg-emerald-500 text-white\",\n current: \"border-primary bg-primary text-primary-foreground\",\n upcoming: \"border-border bg-background text-muted-foreground\",\n}\n\ntype StepProgressIndicatorProps = React.ComponentProps<\"div\"> & {\n status?: StepProgressStatus\n step?: number\n}\n\nfunction StepProgressIndicator({\n status = \"upcoming\",\n step,\n className,\n ...props\n}: StepProgressIndicatorProps) {\n return (\n <div\n data-slot=\"step-progress-indicator\"\n className={cn(\n \"relative z-10 flex size-8 shrink-0 items-center justify-center rounded-full border-2 font-semibold text-xs\",\n indicatorStyles[status],\n className,\n )}\n {...props}\n >\n {status === \"complete\" ? <CheckIcon className=\"size-4\" /> : step}\n </div>\n )\n}\n\nfunction StepProgressConnector({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"step-progress-connector\"\n className={cn(\n // Vertical: line going down\n \"[[data-orientation='vertical']_&]:absolute [[data-orientation='vertical']_&]:top-8 [[data-orientation='vertical']_&]:left-[15px] [[data-orientation='vertical']_&]:h-[calc(100%-2rem)] [[data-orientation='vertical']_&]:w-0.5\",\n // Horizontal: line going right\n \"[[data-orientation='horizontal']_&]:absolute [[data-orientation='horizontal']_&]:top-4 [[data-orientation='horizontal']_&]:left-[calc(50%+20px)] [[data-orientation='horizontal']_&]:h-0.5 [[data-orientation='horizontal']_&]:w-[calc(100%-40px)]\",\n \"bg-border\",\n \"[&[data-complete='true']]:bg-emerald-500\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction StepProgressContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"step-progress-content\"\n className={cn(\n \"min-w-0\",\n \"[[data-orientation='vertical']_&]:pt-1\",\n \"[[data-orientation='horizontal']_&]:text-center\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction StepProgressTitle({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"step-progress-title\"\n className={cn(\"font-medium text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction StepProgressDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"step-progress-description\"\n className={cn(\"text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nexport {\n StepProgress,\n StepProgressItem,\n StepProgressIndicator,\n StepProgressConnector,\n StepProgressContent,\n StepProgressTitle,\n StepProgressDescription,\n stepProgressVariants,\n}\nexport type {\n StepProgressProps,\n StepProgressItemProps,\n StepProgressIndicatorProps,\n StepProgressStatus,\n}\n","\"use client\"\n\nimport { AnimatePresence, domAnimation, LazyMotion, m } from \"motion/react\"\nimport { useEffect, useRef } from \"react\"\n\nimport { useAnimationTimer } from \"../hooks/use-animation-timer\"\nimport { cn } from \"../lib/utils\"\n\nconst EASE_OUT: [number, number, number, number] = [0.22, 0.61, 0.36, 1]\n\ninterface StreamingCardsProps {\n /** Array of card content to cycle through */\n children: React.ReactNode[]\n /** Number of cards visible at once. Default: 3 */\n maxVisible?: number\n /** Milliseconds between each new card. Default: 2800 */\n interval?: number\n /** Whether older cards fade to lower opacity. Default: true */\n fadeOlder?: boolean\n className?: string\n}\n\nfunction StreamingCards({\n children,\n maxVisible = 3,\n interval = 2800,\n fadeOlder = true,\n className,\n}: StreamingCardsProps) {\n const [timerRef, tick] = useAnimationTimer(interval)\n const count = Math.min(tick + 1, maxVisible)\n const startIdx = Math.max(0, tick + 1 - count)\n const visibleIndices = Array.from({ length: count }, (_, i) => (startIdx + i) % children.length)\n const scrollRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollTo({\n top: scrollRef.current.scrollHeight,\n behavior: \"smooth\",\n })\n }\n }, [])\n\n return (\n <LazyMotion features={domAnimation}>\n <div\n ref={timerRef}\n data-slot=\"streaming-cards\"\n className={cn(\"flex flex-col overflow-hidden\", className)}\n >\n <div\n ref={scrollRef}\n className=\"scrollbar-none flex flex-1 flex-col gap-2.5 overflow-y-auto\"\n >\n <AnimatePresence initial={false}>\n {visibleIndices.map((childIdx, i) => {\n const isLatest = i === visibleIndices.length - 1\n return (\n <m.div\n key={`${i}-${childIdx}`}\n initial={{ opacity: 0, y: 16 }}\n animate={{\n opacity: fadeOlder ? (isLatest ? 1 : 0.5) : 1,\n y: 0,\n }}\n exit={{ opacity: 0, y: -8 }}\n transition={{ duration: 0.4, ease: EASE_OUT }}\n >\n {children[childIdx]}\n </m.div>\n )\n })}\n </AnimatePresence>\n </div>\n </div>\n </LazyMotion>\n )\n}\n\nexport { StreamingCards }\nexport type { StreamingCardsProps }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype WaffleChartSegment = {\n /** Percentage value (0–100) */\n value: number\n /** CSS color (hex, rgb, hsl, oklch). Defaults to var(--color-primary) resolved at render time. */\n color?: string\n /** Optional label */\n label?: string\n}\n\ntype WaffleChartMode = \"grid\" | \"bar\"\ntype WaffleChartSize = \"xs\" | \"sm\" | \"default\" | \"lg\"\n\nconst waffleChartVariants = cva(\"w-full text-foreground\", {\n variants: {\n mode: {\n grid: \"\",\n bar: \"\",\n },\n size: {\n xs: \"\",\n sm: \"\",\n default: \"\",\n lg: \"\",\n },\n },\n compoundVariants: [\n { mode: \"bar\", size: \"xs\", className: \"h-4\" },\n { mode: \"bar\", size: \"sm\", className: \"h-6\" },\n { mode: \"bar\", size: \"default\", className: \"h-10\" },\n { mode: \"bar\", size: \"lg\", className: \"h-16\" },\n { mode: \"grid\", size: \"xs\", className: \"max-w-32 aspect-square\" },\n { mode: \"grid\", size: \"sm\", className: \"max-w-48 aspect-square\" },\n { mode: \"grid\", size: \"default\", className: \"max-w-sm aspect-square\" },\n { mode: \"grid\", size: \"lg\", className: \"max-w-lg aspect-square\" },\n ],\n defaultVariants: {\n mode: \"grid\",\n size: \"default\",\n },\n})\n\ntype WaffleChartProps = Omit<React.ComponentProps<\"div\">, \"size\"> &\n Omit<VariantProps<typeof waffleChartVariants>, \"mode\"> & {\n /** Segments to display. Remaining cells render as muted. */\n segments: WaffleChartSegment[]\n /** Display mode. \"grid\" renders a square waffle grid, \"bar\" renders a horizontal striped bar. Defaults to \"grid\". */\n mode?: WaffleChartMode\n /** Size variant. Defaults to \"default\". */\n size?: WaffleChartSize\n /** Whether to animate cells filling in. Defaults to true. */\n animate?: boolean\n /** Animation duration in ms. Defaults to 800. */\n duration?: number\n /** Gap between cells in px. Defaults to 2 for grid, 2.5 for bar. */\n gap?: number\n /** Corner radius of each cell in px. Defaults to 2 for grid, 1 for bar. */\n radius?: number\n /** Number of rows (grid mode). Defaults to 10. */\n rows?: number\n /** Number of columns (grid mode). Defaults to 10. */\n cols?: number\n /** Total number of stripes (bar mode). Defaults to 60. */\n stripes?: number\n /** Show dotted dividers between segments (bar mode only). Defaults to true. */\n dividers?: boolean\n }\n\nfunction WaffleChart({\n segments,\n mode = \"grid\",\n size = \"default\",\n animate = true,\n duration = 800,\n gap: gapProp,\n radius: radiusProp,\n rows = 10,\n cols = 10,\n stripes = 60,\n dividers = true,\n className,\n ...props\n}: WaffleChartProps) {\n const canvasRef = React.useRef<HTMLCanvasElement>(null)\n const containerRef = React.useRef<HTMLDivElement>(null)\n const progressRef = React.useRef(animate ? 0 : 1)\n const startTimeRef = React.useRef<number | null>(null)\n const colorsRef = React.useRef<{ muted: string; divider: string; primary: string } | null>(null)\n\n const gap = gapProp ?? (mode === \"bar\" ? 2.5 : 2)\n const radius = radiusProp ?? (mode === \"bar\" ? 1 : 2)\n\n // ── Grid mode data ──\n const totalCells = rows * cols\n const gridCellData = React.useMemo(() => {\n if (mode !== \"grid\") return []\n const cells: { color: string | null; useDefault: boolean }[] = []\n for (const seg of segments) {\n const count = Math.round((seg.value / 100) * totalCells)\n const hasExplicitColor = seg.color != null\n for (let i = 0; i < count; i++) {\n cells.push({ color: seg.color ?? null, useDefault: !hasExplicitColor })\n }\n }\n const remaining = Math.max(0, totalCells - cells.length)\n for (let i = 0; i < remaining; i++) {\n cells.push({ color: null, useDefault: false })\n }\n return cells\n }, [segments, totalCells, mode])\n\n // ── Bar mode data ──\n const barBlockData = React.useMemo(() => {\n if (mode !== \"bar\") return []\n const blocks: { color: string | null; useDefault: boolean; dividerAfter: boolean }[] = []\n for (const seg of segments) {\n const count = Math.round((seg.value / 100) * stripes)\n const hasExplicitColor = seg.color != null\n for (let i = 0; i < count; i++) {\n blocks.push({\n color: seg.color ?? null,\n useDefault: !hasExplicitColor,\n dividerAfter: false,\n })\n }\n if (dividers && blocks.length > 0) {\n blocks[blocks.length - 1].dividerAfter = true\n }\n }\n const remaining = Math.max(0, stripes - blocks.length)\n for (let i = 0; i < remaining; i++) {\n blocks.push({ color: null, useDefault: false, dividerAfter: false })\n }\n if (blocks.length > 0) {\n blocks[blocks.length - 1].dividerAfter = false\n }\n return blocks\n }, [segments, stripes, dividers, mode])\n\n // Resolve theme colors once on mount\n React.useEffect(() => {\n const container = containerRef.current\n if (!container) return\n const style = getComputedStyle(container)\n const fg = style.color\n const match = fg.match(/[\\d.]+/g)\n const primary =\n style.getPropertyValue(\"--color-primary\").trim() || style.getPropertyValue(\"--primary\").trim()\n if (match && match.length >= 3) {\n const [r, g, b] = match\n colorsRef.current = {\n muted: `rgba(${r}, ${g}, ${b}, 0.1)`,\n divider: `rgba(${r}, ${g}, ${b}, 0.3)`,\n primary: primary || `rgb(${r}, ${g}, ${b})`,\n }\n } else {\n colorsRef.current = {\n muted: \"color-mix(in oklch, var(--foreground) 10%, transparent)\",\n divider: \"color-mix(in oklch, var(--foreground) 30%, transparent)\",\n primary: primary || \"var(--color-primary)\",\n }\n }\n }, [])\n\n // ── Grid draw ──\n const drawGrid = React.useCallback(\n (ctx: CanvasRenderingContext2D, w: number, h: number) => {\n if (totalCells === 0) return\n const cellW = (w - (cols - 1) * gap) / cols\n const cellH = (h - (rows - 1) * gap) / rows\n const progress = progressRef.current\n const visibleCells = Math.floor(progress * totalCells)\n const colors = colorsRef.current ?? {\n muted: \"oklch(0.5 0 0 / 0.1)\",\n primary: \"var(--color-primary)\",\n }\n\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < cols; col++) {\n const idx = row * cols + col\n const cell = gridCellData[idx]\n if (!cell) continue\n const hasColor = cell.color !== null || cell.useDefault\n const isFilled = hasColor && idx < visibleCells\n const fillColor = cell.useDefault ? colors.primary : cell.color!\n ctx.fillStyle = isFilled ? fillColor : colors.muted\n const x = col * (cellW + gap)\n const y = row * (cellH + gap)\n ctx.beginPath()\n ctx.roundRect(x, y, cellW, cellH, radius)\n ctx.fill()\n }\n }\n },\n [gridCellData, rows, cols, gap, radius, totalCells],\n )\n\n // ── Bar draw ──\n const drawBar = React.useCallback(\n (ctx: CanvasRenderingContext2D, w: number, h: number) => {\n const total = barBlockData.length\n if (total === 0) return\n\n const rowGap = gap\n const colGap = gap\n const dividerGap = 10\n const dividerCount = barBlockData.filter((b) => b.dividerAfter).length\n\n const targetSize = 4\n const barRows = Math.max(1, Math.floor((h + rowGap) / (targetSize + rowGap)))\n const blockH = (h - (barRows - 1) * rowGap) / barRows\n // For divider blocks, replace the normal colGap with dividerGap (equal space on each side of dots)\n const normalGaps = total - 1 - dividerCount\n const availableWidth = w - normalGaps * colGap - dividerCount * dividerGap\n const blockW = Math.max(2, availableWidth / total)\n\n const progress = progressRef.current\n const visibleCols = Math.floor(progress * total)\n const colors = colorsRef.current ?? {\n muted: \"oklch(0.5 0 0 / 0.1)\",\n divider: \"oklch(0.5 0 0 / 0.3)\",\n primary: \"var(--color-primary)\",\n }\n\n let x = 0\n for (let col = 0; col < total; col++) {\n const block = barBlockData[col]\n const hasColor = block.color !== null || block.useDefault\n const isFilled = hasColor && col < visibleCols\n const fillColor = block.useDefault ? colors.primary : block.color!\n ctx.fillStyle = isFilled ? fillColor : colors.muted\n\n for (let row = 0; row < barRows; row++) {\n const y = row * (blockH + rowGap)\n ctx.beginPath()\n ctx.roundRect(x, y, blockW, blockH, radius)\n ctx.fill()\n }\n\n if (block.dividerAfter) {\n // Advance past the block, then center dots in the dividerGap\n const halfGap = dividerGap / 2\n x += blockW + halfGap\n\n const dotRadius = 1\n const dotSpacing = 4\n const dotCount = Math.max(3, Math.floor(h / dotSpacing))\n const totalDotH = dotCount * dotSpacing\n const startY = (h - totalDotH) / 2 + dotSpacing / 2\n ctx.fillStyle = colors.divider\n for (let d = 0; d < dotCount; d++) {\n const dotY = startY + d * dotSpacing\n ctx.beginPath()\n ctx.arc(x, dotY, dotRadius, 0, Math.PI * 2)\n ctx.fill()\n }\n\n x += halfGap\n } else if (col < total - 1) {\n x += blockW + colGap\n }\n }\n },\n [barBlockData, gap, radius],\n )\n\n const draw = React.useCallback(() => {\n const canvas = canvasRef.current\n const container = containerRef.current\n if (!canvas || !container) return\n\n const dpr = window.devicePixelRatio || 1\n const rect = container.getBoundingClientRect()\n const w = rect.width\n const h = rect.height\n if (w === 0 || h === 0) return\n\n canvas.width = w * dpr\n canvas.height = h * dpr\n canvas.style.width = `${w}px`\n canvas.style.height = `${h}px`\n\n const ctx = canvas.getContext(\"2d\")\n if (!ctx) return\n ctx.scale(dpr, dpr)\n ctx.clearRect(0, 0, w, h)\n\n if (mode === \"grid\") {\n drawGrid(ctx, w, h)\n } else {\n drawBar(ctx, w, h)\n }\n }, [mode, drawGrid, drawBar])\n\n // Animation loop\n React.useEffect(() => {\n if (!animate) {\n progressRef.current = 1\n const id = requestAnimationFrame(() => draw())\n return () => cancelAnimationFrame(id)\n }\n\n progressRef.current = 0\n startTimeRef.current = null\n let rafId: number\n\n function animateFrame(timestamp: number) {\n if (!startTimeRef.current) startTimeRef.current = timestamp\n const elapsed = timestamp - startTimeRef.current\n const t = Math.min(elapsed / duration, 1)\n progressRef.current = 1 - (1 - t) ** 3\n draw()\n if (t < 1) {\n rafId = requestAnimationFrame(animateFrame)\n }\n }\n\n rafId = requestAnimationFrame(animateFrame)\n return () => cancelAnimationFrame(rafId)\n }, [animate, duration, draw])\n\n // Redraw on resize\n React.useEffect(() => {\n const container = containerRef.current\n if (!container) return\n let timeout: ReturnType<typeof setTimeout>\n const observer = new ResizeObserver(() => {\n clearTimeout(timeout)\n timeout = setTimeout(() => draw(), 50)\n })\n observer.observe(container)\n return () => {\n observer.disconnect()\n clearTimeout(timeout)\n }\n }, [draw])\n\n return (\n <div\n ref={containerRef}\n data-slot=\"waffle-chart\"\n className={cn(waffleChartVariants({ mode, size }), className)}\n {...props}\n >\n <canvas ref={canvasRef} className=\"block size-full\" />\n </div>\n )\n}\n\nexport { WaffleChart, waffleChartVariants }\nexport type { WaffleChartProps, WaffleChartSegment, WaffleChartMode, WaffleChartSize }\n","/**\n * @deprecated Use `<WaffleChart mode=\"bar\" />` instead.\n * StripedBar is now an alias for WaffleChart in bar mode.\n */\nimport type * as React from \"react\"\nimport { WaffleChart, type WaffleChartSegment } from \"./waffle-chart\"\n\ntype StripedBarSegment = WaffleChartSegment\n\ntype StripedBarProps = React.ComponentProps<\"div\"> & {\n /** Segments to display. Remaining percentage renders as muted blocks. */\n segments: StripedBarSegment[]\n /** Total number of columns. Defaults to 60. */\n stripes?: number\n /** Whether to animate blocks filling in. Defaults to true. */\n animated?: boolean\n /** Animation duration in ms. Defaults to 800. */\n duration?: number\n}\n\nfunction StripedBar({\n segments,\n stripes = 60,\n animated = true,\n duration = 800,\n ...props\n}: StripedBarProps) {\n return (\n <WaffleChart\n segments={segments}\n mode=\"bar\"\n stripes={stripes}\n animate={animated}\n duration={duration}\n {...props}\n />\n )\n}\n\nexport { StripedBar }\nexport type { StripedBarProps, StripedBarSegment }\n","\"use client\"\n\nimport { useEffect, useRef } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\ntype Palette = \"blue\" | \"green\" | \"amber\"\n\nconst PALETTES: Record<Palette, { light: string[]; dark: string[] }> = {\n blue: {\n light: [\"100, 140, 200\", \"80, 160, 120\", \"140, 100, 180\"],\n dark: [\"140, 180, 255\", \"160, 255, 180\", \"200, 160, 255\"],\n },\n green: {\n light: [\"60, 140, 90\", \"100, 160, 60\", \"40, 120, 130\"],\n dark: [\"120, 220, 150\", \"180, 255, 120\", \"100, 200, 180\"],\n },\n amber: {\n light: [\"180, 130, 60\", \"160, 100, 80\", \"140, 140, 60\"],\n dark: [\"255, 200, 120\", \"255, 160, 140\", \"220, 220, 120\"],\n },\n}\n\ntype SubtleShaderProps = React.ComponentProps<\"canvas\"> & {\n paused?: boolean\n palette?: Palette\n}\n\nfunction SubtleShader({\n paused = false,\n palette = \"blue\",\n className,\n ...props\n}: SubtleShaderProps) {\n const canvasRef = useRef<HTMLCanvasElement>(null)\n const rafRef = useRef(0)\n const pausedRef = useRef(paused)\n\n useEffect(() => {\n pausedRef.current = paused\n }, [paused])\n\n useEffect(() => {\n const canvas = canvasRef.current\n if (!canvas) return\n\n const ctx = canvas.getContext(\"2d\")\n if (!ctx) return\n\n const mq = window.matchMedia(\"(prefers-reduced-motion: reduce)\")\n if (mq.matches) return\n\n const startTime = performance.now()\n\n const resize = () => {\n const dpr = Math.min(window.devicePixelRatio, 2)\n const w = canvas.clientWidth\n const h = canvas.clientHeight\n canvas.width = w * dpr * 0.25\n canvas.height = h * dpr * 0.25\n }\n\n resize()\n window.addEventListener(\"resize\", resize)\n\n const render = (now: number) => {\n if (pausedRef.current) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n const w = canvas.width\n const h = canvas.height\n if (w === 0 || h === 0) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n const t = (now - startTime) * 0.00008\n\n const isDark = document.documentElement.classList.contains(\"dark\")\n const baseAlpha = isDark ? 0.06 : 0.04\n const colors = isDark ? PALETTES[palette].dark : PALETTES[palette].light\n\n ctx.clearRect(0, 0, w, h)\n\n const blobs = [\n {\n x: w * (0.3 + 0.2 * Math.sin(t * 1.1)),\n y: h * (0.3 + 0.2 * Math.cos(t * 0.9)),\n r: Math.max(w, h) * 0.6,\n color: colors[0],\n },\n {\n x: w * (0.7 + 0.15 * Math.cos(t * 0.7)),\n y: h * (0.6 + 0.2 * Math.sin(t * 1.3)),\n r: Math.max(w, h) * 0.5,\n color: colors[1],\n },\n {\n x: w * (0.5 + 0.25 * Math.sin(t * 0.5)),\n y: h * (0.4 + 0.15 * Math.cos(t * 1.1)),\n r: Math.max(w, h) * 0.55,\n color: colors[2],\n },\n ]\n\n for (const blob of blobs) {\n const gradient = ctx.createRadialGradient(blob.x, blob.y, 0, blob.x, blob.y, blob.r)\n gradient.addColorStop(0, `rgba(${blob.color}, ${baseAlpha})`)\n gradient.addColorStop(1, `rgba(${blob.color}, 0)`)\n ctx.fillStyle = gradient\n ctx.fillRect(0, 0, w, h)\n }\n\n rafRef.current = requestAnimationFrame(render)\n }\n\n rafRef.current = requestAnimationFrame(render)\n\n return () => {\n cancelAnimationFrame(rafRef.current)\n window.removeEventListener(\"resize\", resize)\n }\n }, [palette])\n\n return (\n <canvas\n ref={canvasRef}\n data-slot=\"subtle-shader\"\n className={cn(\"absolute inset-0 h-full w-full\", className)}\n style={{ imageRendering: \"auto\", filter: \"blur(40px)\" }}\n {...props}\n />\n )\n}\n\nexport { SubtleShader }\nexport type { Palette as SubtleShaderPalette, SubtleShaderProps }\n","\"use client\"\n\nimport { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Tabs({ className, orientation = \"horizontal\", ...props }: TabsPrimitive.Root.Props) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-orientation={orientation}\n data-horizontal={orientation === \"horizontal\" ? \"\" : undefined}\n data-vertical={orientation === \"vertical\" ? \"\" : undefined}\n className={cn(\"group/tabs flex gap-2 data-horizontal:flex-col\", className)}\n {...props}\n />\n )\n}\n\nconst tabsListVariants = cva(\n \"rounded-lg p-[3px] group-data-horizontal/tabs:h-12 group-data-horizontal/tabs:md:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit max-w-full items-center justify-between overflow-x-auto overflow-y-hidden group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col group-data-vertical/tabs:overflow-x-visible\",\n {\n variants: {\n variant: {\n default: \"bg-muted\",\n line: \"gap-1 bg-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n)\n\nfunction TabsList({\n className,\n variant = \"default\",\n ...props\n}: TabsPrimitive.List.Props & VariantProps<typeof tabsListVariants>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props) {\n return (\n <TabsPrimitive.Tab\n data-slot=\"tabs-trigger\"\n className={cn(\n \"relative inline-flex h-[calc(100%-1px)] shrink-0 items-center justify-center gap-1.5 whitespace-nowrap rounded-md border border-transparent px-2 py-1 font-medium text-foreground/60 text-sm transition-all hover:text-foreground focus-visible:border-ring focus-visible:outline-1 focus-visible:outline-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 group-data-vertical/tabs:w-full group-data-vertical/tabs:shrink group-data-vertical/tabs:justify-start group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none dark:text-muted-foreground dark:hover:text-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n \"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent\",\n \"data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground\",\n \"after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({ className, ...props }: TabsPrimitive.Panel.Props) {\n return (\n <TabsPrimitive.Panel\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 text-sm outline-none\", className)}\n {...props}\n />\n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants }\n","\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { XIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nconst tagVariants = cva(\n \"inline-flex items-center gap-1 rounded-md border px-2 py-0.5 text-xs font-medium transition-colors\",\n {\n variants: {\n variant: {\n default: \"border-border bg-background text-foreground hover:bg-muted\",\n primary: \"border-primary/30 bg-primary/10 text-primary\",\n secondary: \"border-secondary bg-secondary text-secondary-foreground\",\n destructive: \"border-destructive/30 bg-destructive/10 text-destructive\",\n success: \"border-emerald-500/30 bg-emerald-500/10 text-emerald-700 dark:text-emerald-400\",\n },\n },\n defaultVariants: { variant: \"default\" },\n },\n)\n\ntype TagProps = React.ComponentProps<\"span\"> &\n VariantProps<typeof tagVariants> & {\n /** Called when the remove button is clicked. If provided, shows the X button. */\n onRemove?: () => void\n }\n\nfunction Tag({ className, variant, children, onRemove, ...props }: TagProps) {\n return (\n <span data-slot=\"tag\" className={cn(tagVariants({ variant }), className)} {...props}>\n {children}\n {onRemove && (\n <button\n type=\"button\"\n onClick={onRemove}\n className=\"ml-0.5 cursor-pointer rounded-sm opacity-70 transition-opacity hover:opacity-100\"\n aria-label=\"Remove\"\n >\n <XIcon className=\"size-3\" />\n </button>\n )}\n </span>\n )\n}\n\nexport { Tag, tagVariants }\nexport type { TagProps }\n","/**\n * Inline script that syncs the `.dark` class on `<html>` with the OS\n * color-scheme preference. Drop this into `<head>` to avoid FOUC.\n *\n * Works with the DS's `@custom-variant dark (&:is(.dark *))` directive.\n *\n * @example\n * // app/layout.tsx\n * import { ThemeScript } from \"@cogentic/ds\"\n *\n * export default function RootLayout({ children }) {\n * return (\n * <html lang=\"en\" suppressHydrationWarning>\n * <head>\n * <ThemeScript />\n * </head>\n * <body>{children}</body>\n * </html>\n * )\n * }\n */\nexport function ThemeScript() {\n const script = `(function(){var d=document.documentElement;var m=window.matchMedia(\"(prefers-color-scheme:dark)\");function s(e){e.matches?d.classList.add(\"dark\"):d.classList.remove(\"dark\")}s(m);m.addEventListener(\"change\",s)})();`\n\n // biome-ignore lint/security/noDangerouslySetInnerHtml: inline script for theme flash prevention\n return <script dangerouslySetInnerHTML={{ __html: script }} />\n}\n","import type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction Timeline({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"timeline\" className={cn(\"relative space-y-0 pl-8\", className)} {...props} />\n )\n}\n\ntype TimelineItemProps = React.ComponentProps<\"div\">\n\nfunction TimelineItem({ className, ...props }: TimelineItemProps) {\n return (\n <div\n data-slot=\"timeline-item\"\n className={cn(\n \"relative pb-8 last:pb-0\",\n \"before:absolute before:top-2 before:left-[-25px] before:h-full before:w-px before:bg-border last:before:hidden\",\n className,\n )}\n {...props}\n />\n )\n}\n\ntype TimelineDotProps = React.ComponentProps<\"div\">\n\nfunction TimelineDot({ className, children, ...props }: TimelineDotProps) {\n return (\n <div\n data-slot=\"timeline-dot\"\n className={cn(\n \"absolute top-0.5 left-[-35px] flex size-[22px] items-center justify-center rounded-full border-2 border-border bg-background\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nfunction TimelineContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"timeline-content\" className={cn(\"text-sm\", className)} {...props} />\n}\n\nfunction TimelineTitle({ className, ...props }: React.ComponentProps<\"p\">) {\n return <p data-slot=\"timeline-title\" className={cn(\"font-medium\", className)} {...props} />\n}\n\nfunction TimelineTime({ className, ...props }: React.ComponentProps<\"time\">) {\n return (\n <time\n data-slot=\"timeline-time\"\n className={cn(\"text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nexport { Timeline, TimelineItem, TimelineDot, TimelineContent, TimelineTitle, TimelineTime }\nexport type { TimelineItemProps, TimelineDotProps }\n","\"use client\"\n\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../lib/utils\"\n\nconst toggleVariants = cva(\n \"hover:text-foreground aria-pressed:bg-muted focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive gap-1 rounded-md text-sm font-medium transition-[color,box-shadow] [&_svg:not([class*='size-'])]:size-4 group/toggle hover:bg-muted inline-flex items-center justify-center whitespace-nowrap outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border-input hover:bg-muted border bg-transparent shadow-xs\",\n },\n size: {\n default: \"h-9 min-w-9 px-2\",\n sm: \"h-8 min-w-8 px-1.5\",\n lg: \"h-10 min-w-10 px-2.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n)\n\nfunction Toggle({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n","\"use client\"\n\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\"\nimport { ToggleGroup as ToggleGroupPrimitive } from \"@base-ui/react/toggle-group\"\nimport type { VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { toggleVariants } from \"./toggle\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n orientation: \"horizontal\",\n})\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n orientation = \"horizontal\",\n children,\n ...props\n}: ToggleGroupPrimitive.Props &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }) {\n return (\n <ToggleGroupPrimitive\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=0]:data-[variant=outline]:shadow-xs data-vertical:flex-col data-vertical:items-stretch\",\n className,\n )}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size, spacing, orientation }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant = \"default\",\n size = \"default\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <TogglePrimitive\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n \"shrink-0 focus:z-10 focus-visible:z-10 data-[state=on]:bg-muted group-data-[spacing=0]/toggle-group:rounded-none group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-[spacing=0]/toggle-group:px-2 group-data-[spacing=0]/toggle-group:shadow-none group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-md group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-md group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-md group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-md\",\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className,\n )}\n {...props}\n >\n {children}\n </TogglePrimitive>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n","\"use client\"\n\nimport { useEffect, useRef, useState } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\ninterface TypewriterLine {\n text: string\n className?: string\n indent?: number\n}\n\ninterface TypewriterProps {\n /** Array of lines to reveal sequentially */\n lines: TypewriterLine[]\n /** Milliseconds between each line appearing. Default: 80 */\n speed?: number\n /** Whether to show line numbers. Default: true */\n showLineNumbers?: boolean\n /** Whether to show a blinking cursor while typing. Default: true */\n showCursor?: boolean\n /** Whether to loop the animation. Default: false */\n loop?: boolean\n /** Milliseconds to pause before looping. Default: 3000 */\n loopDelay?: number\n className?: string\n}\n\nfunction Typewriter({\n lines,\n speed = 80,\n showLineNumbers = true,\n showCursor = true,\n loop = false,\n loopDelay = 3000,\n className,\n}: TypewriterProps) {\n const [visibleLines, setVisibleLines] = useState(0)\n const scrollRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (visibleLines < lines.length) {\n const id = setTimeout(() => setVisibleLines((v) => v + 1), speed)\n return () => clearTimeout(id)\n } else if (loop) {\n const id = setTimeout(() => setVisibleLines(0), loopDelay)\n return () => clearTimeout(id)\n }\n }, [visibleLines, lines.length, speed, loop, loopDelay])\n\n useEffect(() => {\n const el = scrollRef.current\n if (!el) return\n requestAnimationFrame(() => {\n el.scrollTop = el.scrollHeight\n })\n }, [])\n\n return (\n <div\n ref={scrollRef}\n data-slot=\"typewriter\"\n className={cn(\"overflow-y-auto font-mono text-sm\", className)}\n >\n <div className=\"space-y-0.5\">\n {lines.slice(0, visibleLines).map((line, i) => (\n <div key={i} className=\"flex\">\n {showLineNumbers && (\n <span className=\"w-6 shrink-0 select-none text-right text-muted-foreground/40 text-xs\">\n {i + 1}\n </span>\n )}\n <span\n className={cn(\"ml-3 text-xs\", line.className ?? \"text-foreground/60\")}\n style={{ paddingLeft: (line.indent ?? 0) * 16 }}\n >\n {line.text || \"\\u00A0\"}\n </span>\n </div>\n ))}\n {showCursor && visibleLines < lines.length && (\n <div className=\"flex\">\n {showLineNumbers && <span className=\"w-6\" />}\n <span className=\"ml-3 animate-pulse text-foreground/30 text-xs\">{\"\\u2588\"}</span>\n </div>\n )}\n </div>\n </div>\n )\n}\n\nexport { Typewriter }\nexport type { TypewriterProps, TypewriterLine }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\n/* ────────────────────────────────────────────────────────────────────────────\n * Prose — container for rich text / markdown content\n * ──────────────────────────────────────────────────────────────────────────── */\n\nconst proseVariants = cva(\n [\n \"[&>*+*]:mt-6\",\n \"[&>h1+*]:mt-4 [&>h2+*]:mt-4 [&>h3+*]:mt-3 [&>h4+*]:mt-3\",\n \"[&>hr]:my-8 [&>hr]:border-border\",\n \"[&_a]:text-primary [&_a]:underline [&_a]:underline-offset-4 [&_a:hover]:text-primary/80\",\n \"[&_strong]:font-semibold\",\n \"[&_code]:rounded [&_code]:bg-muted [&_code]:px-1.5 [&_code]:py-0.5 [&_code]:font-mono [&_code]:text-[0.875em]\",\n \"[&_pre]:overflow-x-auto [&_pre]:rounded-lg [&_pre]:bg-muted [&_pre]:p-4 [&_pre_code]:bg-transparent [&_pre_code]:p-0\",\n \"[&_img]:rounded-lg\",\n \"[&_table]:w-full [&_table]:border-collapse\",\n \"[&_th]:border [&_th]:border-border [&_th]:px-3 [&_th]:py-2 [&_th]:text-left [&_th]:font-semibold\",\n \"[&_td]:border [&_td]:border-border [&_td]:px-3 [&_td]:py-2\",\n ].join(\" \"),\n {\n variants: {\n size: {\n sm: \"text-sm [&>h1]:text-2xl [&>h2]:text-xl [&>h3]:text-lg [&>h4]:text-base [&_p]:leading-6 [&_li]:leading-6\",\n default:\n \"text-base [&>h1]:text-4xl [&>h2]:text-3xl [&>h3]:text-2xl [&>h4]:text-xl [&_p]:leading-7 [&_li]:leading-7\",\n lg: \"text-lg [&>h1]:text-5xl [&>h2]:text-4xl [&>h3]:text-3xl [&>h4]:text-2xl [&_p]:leading-8 [&_li]:leading-8\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n },\n)\n\ntype ProseProps = React.ComponentProps<\"div\"> & VariantProps<typeof proseVariants>\n\nfunction Prose({ className, size, ...props }: ProseProps) {\n return <div data-slot=\"prose\" className={cn(proseVariants({ size }), className)} {...props} />\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * Heading components\n * ──────────────────────────────────────────────────────────────────────────── */\n\nfunction H1({ className, ...props }: React.ComponentProps<\"h1\">) {\n return (\n <h1\n data-slot=\"h1\"\n className={cn(\"scroll-m-20 text-balance font-extrabold text-4xl tracking-tight\", className)}\n {...props}\n />\n )\n}\n\nfunction H2({ className, ...props }: React.ComponentProps<\"h2\">) {\n return (\n <h2\n data-slot=\"h2\"\n className={cn(\n \"scroll-m-20 border-b pb-2 font-semibold text-3xl tracking-tight first:mt-0\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction H3({ className, ...props }: React.ComponentProps<\"h3\">) {\n return (\n <h3\n data-slot=\"h3\"\n className={cn(\"scroll-m-20 font-semibold text-2xl tracking-tight\", className)}\n {...props}\n />\n )\n}\n\nfunction H4({ className, ...props }: React.ComponentProps<\"h4\">) {\n return (\n <h4\n data-slot=\"h4\"\n className={cn(\"scroll-m-20 font-semibold text-xl tracking-tight\", className)}\n {...props}\n />\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * Text components\n * ──────────────────────────────────────────────────────────────────────────── */\n\nfunction P({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p data-slot=\"p\" className={cn(\"leading-7 [&:not(:first-child)]:mt-6\", className)} {...props} />\n )\n}\n\nfunction Blockquote({ className, ...props }: React.ComponentProps<\"blockquote\">) {\n return (\n <blockquote\n data-slot=\"blockquote\"\n className={cn(\"mt-6 border-l-2 pl-6 italic\", className)}\n {...props}\n />\n )\n}\n\nfunction List({\n className,\n ordered,\n ...props\n}: React.ComponentProps<\"ul\"> & { ordered?: boolean }) {\n const listClassName = cn(\n \"my-6 ml-6 [&>li]:mt-2\",\n ordered ? \"list-decimal\" : \"list-disc\",\n className,\n )\n\n if (ordered) {\n return (\n <ol data-slot=\"list\" className={listClassName} {...(props as React.ComponentProps<\"ol\">)} />\n )\n }\n\n return <ul data-slot=\"list\" className={listClassName} {...props} />\n}\n\nfunction Lead({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p data-slot=\"lead\" className={cn(\"text-muted-foreground text-xl\", className)} {...props} />\n )\n}\n\nfunction Large({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"large\" className={cn(\"font-semibold text-lg\", className)} {...props} />\n}\n\nfunction Small({ className, ...props }: React.ComponentProps<\"small\">) {\n return (\n <small\n data-slot=\"small\"\n className={cn(\"font-medium text-sm leading-none\", className)}\n {...props}\n />\n )\n}\n\nfunction Muted({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p data-slot=\"muted\" className={cn(\"text-muted-foreground text-sm\", className)} {...props} />\n )\n}\n\nfunction InlineCode({ className, ...props }: React.ComponentProps<\"code\">) {\n return (\n <code\n data-slot=\"inline-code\"\n className={cn(\n \"relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono font-semibold text-sm\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Blockquote, H1, H2, H3, H4, InlineCode, Large, Lead, List, Muted, P, Prose, Small }\nexport type { ProseProps }\n","import type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction VisuallyHidden({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"visually-hidden\"\n className={cn(\n \"absolute h-px w-px overflow-hidden whitespace-nowrap border-0 p-0 [clip:rect(0,0,0,0)]\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { VisuallyHidden }\n","\"use client\"\n\nimport { useCallback, useState } from \"react\"\n\nexport interface UseCarouselOptions {\n initialIndex?: number\n loop?: boolean\n}\n\n/**\n * Custom hook for managing carousel/slider state.\n *\n * @param itemCount - Total number of items in the carousel\n * @param options - Configuration options (initialIndex, loop behavior)\n * @returns Object with carousel state and navigation methods\n */\nexport function useCarouselState(itemCount: number, options: UseCarouselOptions = {}) {\n const { initialIndex = 0, loop = true } = options\n const [activeIndex, setActiveIndex] = useState(initialIndex)\n\n const goToPrev = useCallback(() => {\n setActiveIndex((current) => {\n if (current === 0) {\n return loop ? itemCount - 1 : 0\n }\n return current - 1\n })\n }, [itemCount, loop])\n\n const goToNext = useCallback(() => {\n setActiveIndex((current) => {\n if (current === itemCount - 1) {\n return loop ? 0 : itemCount - 1\n }\n return current + 1\n })\n }, [itemCount, loop])\n\n const goToIndex = useCallback(\n (index: number) => {\n if (index >= 0 && index < itemCount) {\n setActiveIndex(index)\n }\n },\n [itemCount],\n )\n\n return {\n activeIndex,\n setActiveIndex,\n goToPrev,\n goToNext,\n goToIndex,\n }\n}\n","import { useCallback, useState } from \"react\"\n\ntype UseClipboardOptions = {\n /** How long \"copied\" stays true (ms). Default 2000 */\n timeout?: number\n}\n\nfunction useClipboard({ timeout = 2000 }: UseClipboardOptions = {}) {\n const [copied, setCopied] = useState(false)\n\n const copy = useCallback(\n async (text: string) => {\n await navigator.clipboard.writeText(text)\n setCopied(true)\n setTimeout(() => setCopied(false), timeout)\n },\n [timeout],\n )\n\n return { copied, copy }\n}\n\nexport { useClipboard }\nexport type { UseClipboardOptions }\n","import { useEffect, useState } from \"react\"\n\nfunction useDebounce<T>(value: T, delay: number): T {\n const [debounced, setDebounced] = useState(value)\n\n useEffect(() => {\n const timer = setTimeout(() => setDebounced(value), delay)\n return () => clearTimeout(timer)\n }, [value, delay])\n\n return debounced\n}\n\nexport { useDebounce }\n","import { useCallback, useState } from \"react\"\n\ntype UseDisclosureReturn = {\n isOpen: boolean\n onOpen: () => void\n onClose: () => void\n onToggle: () => void\n}\n\nfunction useDisclosure(defaultOpen = false): UseDisclosureReturn {\n const [isOpen, setIsOpen] = useState(defaultOpen)\n\n const onOpen = useCallback(() => setIsOpen(true), [])\n const onClose = useCallback(() => setIsOpen(false), [])\n const onToggle = useCallback(() => setIsOpen((prev) => !prev), [])\n\n return { isOpen, onOpen, onClose, onToggle }\n}\n\nexport { useDisclosure }\nexport type { UseDisclosureReturn }\n","import { useEffect, useRef, useState } from \"react\"\n\ntype UseIntersectionObserverOptions = {\n threshold?: number | number[]\n root?: Element | null\n rootMargin?: string\n /** Only trigger once then disconnect */\n once?: boolean\n}\n\nfunction useIntersectionObserver<T extends Element = HTMLDivElement>(\n options: UseIntersectionObserverOptions = {},\n) {\n const { threshold = 0, root = null, rootMargin = \"0px\", once = false } = options\n const ref = useRef<T>(null)\n const [isIntersecting, setIsIntersecting] = useState(false)\n\n useEffect(() => {\n const element = ref.current\n if (!element) return\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n setIsIntersecting(entry.isIntersecting)\n if (entry.isIntersecting && once) {\n observer.disconnect()\n }\n },\n { threshold, root, rootMargin },\n )\n\n observer.observe(element)\n return () => observer.disconnect()\n }, [threshold, root, rootMargin, once])\n\n return { ref, isIntersecting }\n}\n\nexport { useIntersectionObserver }\nexport type { UseIntersectionObserverOptions }\n","import { useCallback, useState } from \"react\"\n\nfunction useLocalStorage<T>(\n key: string,\n initialValue: T,\n): [T, (value: T | ((prev: T) => T)) => void] {\n const [storedValue, setStoredValue] = useState<T>(() => {\n if (typeof window === \"undefined\") return initialValue\n try {\n const item = window.localStorage.getItem(key)\n return item ? (JSON.parse(item) as T) : initialValue\n } catch {\n return initialValue\n }\n })\n\n const setValue = useCallback(\n (value: T | ((prev: T) => T)) => {\n setStoredValue((prev) => {\n const next = value instanceof Function ? value(prev) : value\n if (typeof window !== \"undefined\") {\n window.localStorage.setItem(key, JSON.stringify(next))\n }\n return next\n })\n },\n [key],\n )\n\n return [storedValue, setValue]\n}\n\nexport { useLocalStorage }\n","import { useEffect, useState } from \"react\"\n\nfunction useMediaQuery(query: string): boolean {\n const [matches, setMatches] = useState(false)\n\n useEffect(() => {\n const mql = window.matchMedia(query)\n setMatches(mql.matches)\n\n function onChange(e: MediaQueryListEvent) {\n setMatches(e.matches)\n }\n\n mql.addEventListener(\"change\", onChange)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [query])\n\n return matches\n}\n\nexport { useMediaQuery }\n","import { ChevronRight, ChevronsUpDown, LogOut, User } from \"lucide-react\"\nimport * as React from \"react\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"../components/avatar\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"../components/breadcrumb\"\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from \"../components/collapsible\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"../components/dropdown-menu\"\nimport { ScrollArea } from \"../components/scroll-area\"\nimport { Separator } from \"../components/separator\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarTrigger,\n} from \"../components/sidebar\"\nimport { cn } from \"../lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype NavItem = {\n label: string\n icon?: React.ComponentType<React.SVGProps<SVGSVGElement>>\n href: string\n isActive?: boolean\n children?: NavItem[]\n /** Optional badge rendered after the label */\n badge?: React.ReactNode\n}\n\ntype NavGroup = {\n title: string\n items: NavItem[]\n defaultOpen?: boolean\n}\n\ntype AppShellUser = {\n name: string\n email: string\n avatar?: string\n}\n\ntype BreadcrumbSegment = {\n label: string\n href?: string\n}\n\ntype AppShellLogo = {\n icon?: React.ReactNode\n title: string\n subtitle?: string\n href?: string\n}\n\ninterface AppShellProps {\n /** Logo/branding for the sidebar header */\n logo: AppShellLogo\n /** Main navigation groups rendered in the sidebar body */\n nav: NavGroup[]\n /** Optional footer navigation group (e.g. Help, Settings) */\n footerNav?: NavGroup\n /** User data — renders a user menu in the sidebar footer */\n user?: AppShellUser\n /** Breadcrumb segments for the header */\n breadcrumbs?: BreadcrumbSegment[]\n /** Extra content rendered on the right side of the header */\n headerActions?: React.ReactNode\n /** Custom user menu items rendered before the logout item */\n userMenuItems?: React.ReactNode\n /** Called when the user clicks \"Log out\" */\n onLogout?: () => void\n /** Component to use for links (e.g. Next.js Link). Defaults to `\"a\"`. */\n linkComponent?: React.ElementType\n /** Extra content rendered below the logo in the sidebar header */\n sidebarHeaderExtra?: React.ReactNode\n /** Page content */\n children: React.ReactNode\n className?: string\n}\n\n// ---------------------------------------------------------------------------\n// Internal components\n// ---------------------------------------------------------------------------\n\nfunction ShellLogo({\n logo,\n linkComponent: Link = \"a\",\n}: {\n logo: AppShellLogo\n linkComponent?: React.ElementType\n}) {\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <SidebarMenuButton size=\"lg\" render={<Link href={logo.href ?? \"/\"} />}>\n {logo.icon && (\n <div className=\"flex aspect-square size-8 items-center justify-center rounded-sm bg-primary text-primary-foreground\">\n {logo.icon}\n </div>\n )}\n <div className=\"flex flex-col gap-0.5 leading-none\">\n <span className=\"font-medium\">{logo.title}</span>\n {logo.subtitle && (\n <span className=\"text-muted-foreground text-xs\">{logo.subtitle}</span>\n )}\n </div>\n </SidebarMenuButton>\n </SidebarMenuItem>\n </SidebarMenu>\n )\n}\n\nfunction ShellNavItem({\n item,\n linkComponent: Link = \"a\",\n}: {\n item: NavItem\n linkComponent?: React.ElementType\n}) {\n const Icon = item.icon\n const hasChildren = item.children && item.children.length > 0\n\n if (!hasChildren) {\n return (\n <SidebarMenuItem>\n <SidebarMenuButton render={<Link href={item.href} />} isActive={item.isActive}>\n {Icon && <Icon className=\"size-4\" />}\n <span>{item.label}</span>\n {item.badge && <span className=\"ml-auto\">{item.badge}</span>}\n </SidebarMenuButton>\n </SidebarMenuItem>\n )\n }\n\n return (\n <Collapsible defaultOpen className=\"group/collapsible\">\n <SidebarMenuItem>\n <CollapsibleTrigger render={<SidebarMenuButton isActive={item.isActive} />}>\n {Icon && <Icon className=\"size-4\" />}\n <span>{item.label}</span>\n <ChevronRight className=\"ml-auto size-4 transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90\" />\n </CollapsibleTrigger>\n <CollapsibleContent>\n <SidebarMenuSub>\n {item.children!.map((child) => (\n <SidebarMenuSubItem key={child.label}>\n <SidebarMenuSubButton render={<Link href={child.href} />} isActive={child.isActive}>\n {child.label}\n </SidebarMenuSubButton>\n </SidebarMenuSubItem>\n ))}\n </SidebarMenuSub>\n </CollapsibleContent>\n </SidebarMenuItem>\n </Collapsible>\n )\n}\n\nfunction ShellUserMenu({\n user,\n userMenuItems,\n onLogout,\n}: {\n user: AppShellUser\n userMenuItems?: React.ReactNode\n onLogout?: () => void\n}) {\n const initials = user.name\n .split(\" \")\n .map((n) => n[0])\n .join(\"\")\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <SidebarMenuButton\n size=\"lg\"\n className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n />\n }\n >\n <Avatar className=\"size-8 rounded-lg\">\n {user.avatar && <AvatarImage src={user.avatar} alt={user.name} />}\n <AvatarFallback className=\"rounded-lg\">{initials}</AvatarFallback>\n </Avatar>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-medium\">{user.name}</span>\n <span className=\"truncate text-muted-foreground text-xs\">{user.email}</span>\n </div>\n <ChevronsUpDown className=\"ml-auto size-4\" />\n </DropdownMenuTrigger>\n <DropdownMenuContent\n className=\"min-w-56 rounded-lg\"\n side=\"bottom\"\n align=\"end\"\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"p-0 font-normal\">\n <div className=\"flex items-center gap-2 px-1 py-1.5 text-left text-sm\">\n <Avatar className=\"size-8 rounded-lg\">\n {user.avatar && <AvatarImage src={user.avatar} alt={user.name} />}\n <AvatarFallback className=\"rounded-lg\">{initials}</AvatarFallback>\n </Avatar>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-medium\">{user.name}</span>\n <span className=\"truncate text-muted-foreground text-xs\">{user.email}</span>\n </div>\n </div>\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n {userMenuItems ?? (\n <DropdownMenuItem>\n <User className=\"mr-2 size-4\" />\n Account\n </DropdownMenuItem>\n )}\n {onLogout && (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={onLogout}>\n <LogOut className=\"mr-2 size-4\" />\n Log out\n </DropdownMenuItem>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n )\n}\n\n// ---------------------------------------------------------------------------\n// AppShell\n// ---------------------------------------------------------------------------\n\nfunction AppShell({\n logo,\n nav,\n footerNav,\n user,\n breadcrumbs,\n headerActions,\n userMenuItems,\n onLogout,\n sidebarHeaderExtra,\n linkComponent: Link = \"a\",\n children,\n className,\n}: AppShellProps) {\n return (\n <SidebarProvider className={cn(className)}>\n <Sidebar>\n <SidebarHeader>\n <ShellLogo logo={logo} linkComponent={Link} />\n {sidebarHeaderExtra}\n </SidebarHeader>\n\n <SidebarContent className=\"overflow-hidden\">\n <ScrollArea className=\"min-h-0 flex-1\">\n {nav.map((group) => (\n <SidebarGroup key={group.title}>\n <SidebarGroupLabel>{group.title}</SidebarGroupLabel>\n <SidebarGroupContent>\n <SidebarMenu>\n {group.items.map((item) => (\n <ShellNavItem key={item.label} item={item} linkComponent={Link} />\n ))}\n </SidebarMenu>\n </SidebarGroupContent>\n </SidebarGroup>\n ))}\n </ScrollArea>\n </SidebarContent>\n\n <SidebarFooter>\n {footerNav && (\n <SidebarGroup>\n <SidebarGroupContent>\n <SidebarMenu>\n {footerNav.items.map((item) => (\n <ShellNavItem key={item.label} item={item} linkComponent={Link} />\n ))}\n </SidebarMenu>\n </SidebarGroupContent>\n </SidebarGroup>\n )}\n {user && <ShellUserMenu user={user} userMenuItems={userMenuItems} onLogout={onLogout} />}\n </SidebarFooter>\n\n <SidebarRail />\n </Sidebar>\n\n <SidebarInset>\n <header className=\"sticky top-0 z-10 flex h-16 shrink-0 items-center gap-2 border-b bg-background px-4\">\n <SidebarTrigger className=\"-ml-1\" />\n <Separator\n orientation=\"vertical\"\n className=\"mr-2 hidden data-[orientation=vertical]:h-4 md:block\"\n />\n {/* Mobile logo */}\n <Link href={logo.href ?? \"/\"} className=\"flex items-center gap-2 md:hidden\">\n {logo.icon && (\n <div className=\"flex aspect-square size-8 items-center justify-center rounded-sm bg-primary text-primary-foreground\">\n {logo.icon}\n </div>\n )}\n <span className=\"font-semibold\">{logo.title}</span>\n </Link>\n\n {/* Breadcrumbs */}\n {breadcrumbs && breadcrumbs.length > 0 && (\n <Breadcrumb className=\"hidden md:block\">\n <BreadcrumbList>\n {breadcrumbs.map((segment, i) => (\n <React.Fragment key={segment.label}>\n {i > 0 && <BreadcrumbSeparator />}\n <BreadcrumbItem>\n {i === breadcrumbs.length - 1 || !segment.href ? (\n <BreadcrumbPage>{segment.label}</BreadcrumbPage>\n ) : (\n <BreadcrumbLink href={segment.href}>{segment.label}</BreadcrumbLink>\n )}\n </BreadcrumbItem>\n </React.Fragment>\n ))}\n </BreadcrumbList>\n </Breadcrumb>\n )}\n\n {headerActions && <div className=\"ml-auto flex items-center gap-2\">{headerActions}</div>}\n </header>\n\n <div className=\"flex flex-1 flex-col gap-4 p-4\">{children}</div>\n </SidebarInset>\n </SidebarProvider>\n )\n}\n\nexport { AppShell }\nexport type { AppShellProps, AppShellLogo, AppShellUser, NavItem, NavGroup, BreadcrumbSegment }\n"]}
1
+ {"version":3,"sources":["../src/blocks/article-card.tsx","../src/blocks/page-cta.tsx","../src/components/aspect-ratio.tsx","../src/blocks/team-card.tsx","../src/components/accordion.tsx","../src/components/alert.tsx","../src/components/alert-dialog.tsx","../src/components/animated-counter.tsx","../src/components/dialog.tsx","../src/components/textarea.tsx","../src/components/approval-actions.tsx","../src/components/ascii-shader.tsx","../src/components/audit-log.tsx","../src/components/avatar.tsx","../src/components/badge.tsx","../src/components/bg-shader.tsx","../src/components/blocky-shader.tsx","../src/components/breadcrumb.tsx","../src/components/separator.tsx","../src/components/button-group.tsx","../src/components/calendar.tsx","../src/components/callout.tsx","../src/components/carousel.tsx","../src/components/hover-card.tsx","../src/components/item.tsx","../src/components/case-card.tsx","../src/components/checkbox.tsx","../src/components/code-block.tsx","../src/components/collapsible.tsx","../src/components/input-group.tsx","../src/components/combobox.tsx","../src/components/command.tsx","../src/components/comment-thread.tsx","../src/components/compliance-score.tsx","../src/components/context-menu.tsx","../src/components/copy-button.tsx","../src/components/dropdown-menu.tsx","../src/components/popover.tsx","../src/components/select.tsx","../src/components/table.tsx","../src/components/data-table.tsx","../src/components/date-picker.tsx","../src/components/deadline-countdown.tsx","../src/components/description-list.tsx","../src/components/drawer.tsx","../src/components/empty.tsx","../src/components/entity-header.tsx","../src/components/field.tsx","../src/components/file-upload.tsx","../src/components/filter-bar.tsx","../src/components/grid.tsx","../src/components/inline-edit.tsx","../src/components/input-otp.tsx","../src/components/kbd.tsx","../src/components/spinner.tsx","../src/components/loading-overlay.tsx","../src/components/logo-vasp.tsx","../src/components/marquee.tsx","../src/components/menubar.tsx","../src/components/native-select.tsx","../src/components/navigation-menu.tsx","../src/components/number-input.tsx","../src/components/pagination.tsx","../src/components/policy-banner.tsx","../src/components/progress.tsx","../src/components/radio-group.tsx","../src/components/resizable.tsx","../src/components/risk-gauge.tsx","../src/components/scroll-area.tsx","../src/components/search-input.tsx","../src/components/segmented-control.tsx","../src/components/sheet.tsx","../src/hooks/use-mobile.ts","../src/components/skeleton.tsx","../src/components/tooltip.tsx","../src/components/sidebar.tsx","../src/components/slider.tsx","../src/components/sonner.tsx","../src/components/split-pane.tsx","../src/components/stat.tsx","../src/components/status-indicator.tsx","../src/components/step-progress.tsx","../src/components/streaming-cards.tsx","../src/components/waffle-chart.tsx","../src/components/striped-bar.tsx","../src/components/subtle-shader.tsx","../src/components/tabs.tsx","../src/components/tag.tsx","../src/components/theme-script.tsx","../src/components/timeline.tsx","../src/components/toggle.tsx","../src/components/toggle-group.tsx","../src/components/typewriter.tsx","../src/components/typography.tsx","../src/components/visually-hidden.tsx","../src/hooks/use-carousel.ts","../src/hooks/use-clipboard.ts","../src/hooks/use-debounce.ts","../src/hooks/use-disclosure.ts","../src/hooks/use-intersection-observer.ts","../src/hooks/use-local-storage.ts","../src/hooks/use-media-query.ts","../src/shells/app-shell.tsx"],"names":["jsxs","jsx","AccordionPrimitive","AlertDialogPrimitive","DialogPrimitive","XIcon","useState","useEffect","cva","AvatarPrimitive","useRef","CHARS","CELL","FONT_SIZE","isDark","useRender","mergeProps","SeparatorPrimitive","Calendar","_a","_b","className","props","ChevronRightIcon","ChevronDownIcon","React","React2","api","ChevronLeftIcon","PreviewCardPrimitive","CheckboxPrimitive","CheckIcon","useCallback","CollapsiblePrimitive","ComboboxPrimitive","React3","CommandPrimitive","ContextMenuPrimitive","ClipboardIcon","MenuPrimitive","PopoverPrimitive","SelectPrimitive","ChevronUpIcon","Fragment","days","hours","DrawerPrimitive","useMemo","React5","MenubarPrimitive","NavigationMenuPrimitive","MinusIcon","MoreHorizontalIcon","React6","ProgressPrimitive","RadioGroupPrimitive","RadioPrimitive","ScrollAreaPrimitive","SheetPrimitive","React8","TooltipPrimitive","React9","open","React10","SliderPrimitive","Sonner","InfoIcon","TriangleAlertIcon","Loader2Icon","EASE_OUT","React11","TabsPrimitive","TogglePrimitive","React12","ToggleGroupPrimitive","Link","ChevronRight","ChevronsUpDown","React13"],"mappings":"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","file":"index.js","sourcesContent":["\"use client\"\n\nimport { ArrowUpRight, Calendar } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\ninterface ArticleCardProps {\n title: string\n excerpt?: string\n href?: string\n imageUrl?: string\n date?: string\n category?: string\n author?: string\n className?: string\n}\n\nfunction ArticleCard({\n title,\n excerpt,\n href = \"#\",\n imageUrl,\n date,\n category,\n author = \"Cogentic Team\",\n className,\n}: ArticleCardProps) {\n return (\n <a\n data-slot=\"article-card\"\n href={href}\n className={cn(\n \"group flex flex-col rounded-xl border border-border border-dashed p-4 transition-colors hover:border-muted-foreground/40\",\n className,\n )}\n >\n {/* Image */}\n {imageUrl && (\n <div className=\"relative aspect-[16/10] w-full overflow-hidden rounded-lg bg-muted\">\n <img\n src={imageUrl}\n alt={title}\n className=\"h-full w-full object-cover transition-transform duration-300 group-hover:scale-[1.02]\"\n />\n </div>\n )}\n\n {/* Date + category row */}\n <div className=\"mt-4 flex items-center justify-between gap-3\">\n {date && (\n <div className=\"flex items-center gap-1.5 text-muted-foreground text-sm\">\n <Calendar className=\"size-3.5\" />\n <span>{date}</span>\n </div>\n )}\n {category && (\n <span className=\"rounded-full border border-border px-2.5 py-0.5 font-medium text-muted-foreground text-xs\">\n {category}\n </span>\n )}\n </div>\n\n {/* Title */}\n <h3 className=\"mt-3 font-semibold text-foreground text-lg leading-snug tracking-tight\">\n {title}\n </h3>\n\n {/* Excerpt */}\n {excerpt && <p className=\"mt-2 line-clamp-2 text-muted-foreground text-sm\">{excerpt}</p>}\n\n {/* Author + arrow */}\n <div className=\"mt-auto flex items-center justify-between pt-4\">\n <span className=\"font-medium text-foreground text-sm\">{author}</span>\n <span className=\"flex size-8 items-center justify-center rounded-full border border-border transition-colors group-hover:border-muted-foreground/40\">\n <ArrowUpRight className=\"size-4 text-muted-foreground transition-colors group-hover:text-foreground\" />\n </span>\n </div>\n </a>\n )\n}\n\nexport { ArticleCard }\nexport type { ArticleCardProps }\n","\"use client\"\n\nimport Link from \"next/link\"\nimport { Button } from \"../components/button\"\nimport { cn } from \"../lib/utils\"\n\ntype CtaLink = {\n label: string\n href: string\n}\n\ninterface PageCtaProps {\n headline?: string\n subheadline?: string\n primaryCta?: CtaLink\n secondaryCta?: CtaLink\n children?: React.ReactNode\n className?: string\n}\n\nfunction PageCta({\n headline,\n subheadline,\n primaryCta,\n secondaryCta,\n children,\n className,\n}: PageCtaProps) {\n return (\n <section\n data-slot=\"page-cta\"\n className={cn(\"relative overflow-hidden bg-cogentic-green px-6\", className)}\n >\n {/* Dotted pattern */}\n <div className=\"pointer-events-none absolute inset-0 bg-[radial-gradient(currentColor_1px,transparent_1px)] bg-[size:16px_16px] text-primary-foreground opacity-30\" />\n\n {/* Centered gradient behind text */}\n <div className=\"pointer-events-none absolute top-0 left-1/2 h-full w-[500px] -translate-x-1/2 bg-radial from-cogentic-green to-cogentic-green/10\" />\n\n <div className=\"container relative px-0 py-16 text-center sm:py-20 md:px-6 md:py-28\">\n {headline && (\n <h2 className=\"mx-auto max-w-5xl text-balance font-medium text-4xl text-primary-foreground leading-tight sm:text-5xl md:text-6xl\">\n {headline}\n </h2>\n )}\n\n {subheadline && (\n <p className=\"mx-auto mt-4 max-w-2xl font-normal text-base text-primary-foreground/80 sm:text-lg\">\n {subheadline}\n </p>\n )}\n\n {children}\n\n {(primaryCta || secondaryCta) && (\n <div className=\"mt-8 flex flex-col flex-wrap items-center justify-center gap-4 sm:flex-row\">\n {primaryCta && (\n <Button\n className=\"bg-background text-foreground hover:bg-foreground hover:text-background\"\n render={<Link href={primaryCta.href} />}\n >\n {primaryCta.label}\n </Button>\n )}\n\n {secondaryCta && (\n <Button\n variant=\"ghost\"\n className=\"border-primary-foreground/30 text-primary-foreground hover:bg-primary-foreground\"\n render={<Link href={secondaryCta.href} />}\n >\n {secondaryCta.label}\n </Button>\n )}\n </div>\n )}\n </div>\n </section>\n )\n}\n\nexport { PageCta }\nexport type { PageCtaProps, CtaLink }\n","import { cn } from \"../lib/utils\"\n\nfunction AspectRatio({\n ratio,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & { ratio: number }) {\n return (\n <div\n data-slot=\"aspect-ratio\"\n style={\n {\n \"--ratio\": ratio,\n } as React.CSSProperties\n }\n className={cn(\"relative aspect-(--ratio)\", className)}\n {...props}\n />\n )\n}\n\nexport { AspectRatio }\n","\"use client\"\n\nimport { Linkedin } from \"lucide-react\"\nimport Image from \"next/image\"\nimport { AspectRatio } from \"../components/aspect-ratio\"\nimport { Card, CardContent, CardFooter } from \"../components/card\"\nimport { cn } from \"../lib/utils\"\n\ninterface TeamCardProps {\n name: string\n role: string\n imageUrl?: string\n linkedinUrl?: string\n className?: string\n}\n\nfunction TeamCard({ name, role, imageUrl, linkedinUrl, className }: TeamCardProps) {\n const initials = name\n .split(\" \")\n .map((n) => n[0])\n .join(\"\")\n\n return (\n <Card\n data-slot=\"team-card\"\n className={cn(\"group relative gap-0 overflow-hidden p-0\", className)}\n >\n {linkedinUrl && (\n <a\n href={linkedinUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"absolute inset-0 z-10 block\"\n />\n )}\n <CardContent className=\"p-0\">\n <AspectRatio ratio={1} className=\"overflow-hidden\">\n {imageUrl ? (\n <Image\n src={imageUrl}\n alt={name}\n fill\n sizes=\"(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 20vw\"\n className=\"block size-full origin-center object-cover object-center transition-transform duration-500 group-hover:scale-110\"\n />\n ) : (\n <div className=\"flex size-full items-center justify-center bg-gradient-to-br from-primary/10 to-primary/20\">\n <span className=\"font-medium text-4xl text-muted-foreground/40\">{initials}</span>\n </div>\n )}\n </AspectRatio>\n </CardContent>\n <CardFooter className=\"gap-2 px-4 py-2.5\">\n <div className=\"flex-1\">\n <div className=\"font-medium text-sm leading-normal\">{name}</div>\n <div className=\"text-muted-foreground text-xs\">{role}</div>\n </div>\n {linkedinUrl && (\n <div className=\"shrink-0\">\n <Linkedin className=\"size-4 text-muted-foreground\" />\n </div>\n )}\n </CardFooter>\n </Card>\n )\n}\n\nexport { TeamCard }\nexport type { TeamCardProps }\n","\"use client\"\n\nimport { Accordion as AccordionPrimitive } from \"@base-ui/react/accordion\"\n\nimport { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Accordion({ className, ...props }: AccordionPrimitive.Root.Props) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(\"flex w-full flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({ className, ...props }: AccordionPrimitive.Item.Props) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"not-last:border-b\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({ className, children, ...props }: AccordionPrimitive.Trigger.Props) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"group/accordion-trigger relative flex flex-1 items-start justify-between rounded-md border border-transparent py-4 text-left font-medium text-sm outline-none transition-all hover:underline focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon\n data-slot=\"accordion-trigger-icon\"\n className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\"\n />\n <ChevronUpIcon\n data-slot=\"accordion-trigger-icon\"\n className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\"\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({ className, children, ...props }: AccordionPrimitive.Panel.Props) {\n return (\n <AccordionPrimitive.Panel\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm data-closed:animate-accordion-up data-open:animate-accordion-down\"\n {...props}\n >\n <div\n className={cn(\n \"h-(--accordion-panel-height) pt-0 pb-4 data-ending-style:h-0 data-starting-style:h-0 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className,\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Panel>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nconst alertVariants = cva(\n \"grid gap-0.5 rounded-lg border px-4 py-3 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2.5 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4 w-full relative group/alert\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n warning:\n \"text-amber-800 bg-amber-50 border-amber-200 dark:text-amber-200 dark:bg-amber-950 dark:border-amber-800 *:data-[slot=alert-description]:text-amber-700 dark:*:data-[slot=alert-description]:text-amber-300 *:[svg]:text-amber-600 dark:*:[svg]:text-amber-400\",\n destructive:\n \"text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n)\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n \"font-medium group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"text-balance text-muted-foreground text-sm md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-action\"\n className={cn(\"absolute top-2.5 right-3\", className)}\n {...props}\n />\n )\n}\n\nexport { Alert, AlertTitle, AlertDescription, AlertAction }\n","\"use client\"\n\nimport { AlertDialog as AlertDialogPrimitive } from \"@base-ui/react/alert-dialog\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\n\nfunction AlertDialog({ ...props }: AlertDialogPrimitive.Root.Props) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />\n}\n\nfunction AlertDialogTrigger({ ...props }: AlertDialogPrimitive.Trigger.Props) {\n return <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n}\n\nfunction AlertDialogPortal({ ...props }: AlertDialogPrimitive.Portal.Props) {\n return <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n}\n\nfunction AlertDialogOverlay({ className, ...props }: AlertDialogPrimitive.Backdrop.Props) {\n return (\n <AlertDialogPrimitive.Backdrop\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 isolate z-50 bg-black/10 duration-100 data-closed:animate-out data-open:animate-in supports-backdrop-filter:backdrop-blur-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogContent({\n className,\n size = \"default\",\n ...props\n}: AlertDialogPrimitive.Popup.Props & {\n size?: \"default\" | \"sm\"\n}) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Popup\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-6 rounded-xl border border-border-light bg-background p-6 shadow-lg outline-none duration-100 data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-closed:animate-out data-open:animate-in data-[size=default]:sm:max-w-lg\",\n className,\n )}\n {...props}\n />\n </AlertDialogPortal>\n )\n}\n\nfunction AlertDialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n \"grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogMedia({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"mb-2 inline-flex size-16 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\n \"font-medium text-lg sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\n \"text-balance text-muted-foreground text-sm md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDialogAction({ className, ...props }: React.ComponentProps<typeof Button>) {\n return <Button data-slot=\"alert-dialog-action\" className={cn(className)} {...props} />\n}\n\nfunction AlertDialogCancel({\n className,\n variant = \"outline\",\n size = \"default\",\n ...props\n}: AlertDialogPrimitive.Close.Props &\n Pick<React.ComponentProps<typeof Button>, \"variant\" | \"size\">) {\n return (\n <AlertDialogPrimitive.Close\n data-slot=\"alert-dialog-cancel\"\n className={cn(className)}\n render={<Button variant={variant} size={size} />}\n {...props}\n />\n )\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n}\n","\"use client\"\n\nimport { useEffect, useState } from \"react\"\n\ninterface AnimatedCounterProps {\n /** Target value to animate to */\n value: number\n /** Animation duration in milliseconds. Default: 1000 */\n duration?: number\n /** Optional prefix (e.g. \"$\") */\n prefix?: string\n /** Optional suffix (e.g. \"%\") */\n suffix?: string\n /** Number of decimal places. Default: 0 */\n decimals?: number\n className?: string\n}\n\nfunction AnimatedCounter({\n value,\n duration = 1000,\n prefix = \"\",\n suffix = \"\",\n decimals = 0,\n className,\n}: AnimatedCounterProps) {\n const [display, setDisplay] = useState(0)\n\n useEffect(() => {\n let start: number | null = null\n let raf: number\n\n function tick(ts: number) {\n if (start === null) start = ts\n const progress = Math.min((ts - start) / duration, 1)\n // Cubic ease-out\n const eased = 1 - (1 - progress) ** 3\n setDisplay(value * eased)\n if (progress < 1) raf = requestAnimationFrame(tick)\n }\n\n raf = requestAnimationFrame(tick)\n return () => cancelAnimationFrame(raf)\n }, [value, duration])\n\n return (\n <span data-slot=\"animated-counter\" className={className}>\n {prefix}\n {decimals > 0 ? display.toFixed(decimals) : Math.round(display)}\n {suffix}\n </span>\n )\n}\n\nexport { AnimatedCounter }\nexport type { AnimatedCounterProps }\n","\"use client\"\n\nimport { Dialog as DialogPrimitive } from \"@base-ui/react/dialog\"\nimport { XIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\n\nfunction Dialog({ ...props }: DialogPrimitive.Root.Props) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({ ...props }: DialogPrimitive.Trigger.Props) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({ ...props }: DialogPrimitive.Portal.Props) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({ ...props }: DialogPrimitive.Close.Props) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({ className, ...props }: DialogPrimitive.Backdrop.Props) {\n return (\n <DialogPrimitive.Backdrop\n data-slot=\"dialog-overlay\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 isolate z-50 bg-black/10 duration-100 data-closed:animate-out data-open:animate-in supports-backdrop-filter:backdrop-blur-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: DialogPrimitive.Popup.Props & {\n showCloseButton?: boolean\n}) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Popup\n data-slot=\"dialog-content\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-6 rounded-xl border border-border-light bg-background p-6 text-sm shadow-lg outline-none duration-100 data-closed:animate-out data-open:animate-in sm:max-w-md\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n render={<Button variant=\"ghost\" className=\"absolute top-4 right-4\" size=\"icon-sm\" />}\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Popup>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"dialog-header\" className={cn(\"flex flex-col gap-2\", className)} {...props} />\n )\n}\n\nfunction DialogFooter({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean\n}) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\", className)}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close render={<Button variant=\"outline\" />}>Close</DialogPrimitive.Close>\n )}\n </div>\n )\n}\n\nfunction DialogTitle({ className, ...props }: DialogPrimitive.Title.Props) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"font-medium leading-none\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({ className, ...props }: DialogPrimitive.Description.Props) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\n \"text-muted-foreground text-sm *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n","import type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"field-sizing-content flex min-h-16 w-full rounded-md border border-input bg-transparent px-2.5 py-2 text-base shadow-xs outline-none transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n","\"use client\"\n\nimport { ArrowUpIcon, CheckIcon, XIcon } from \"lucide-react\"\nimport { useState } from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"./dialog\"\nimport { Textarea } from \"./textarea\"\n\ntype ApprovalAction = \"approve\" | \"reject\" | \"escalate\"\n\ntype ApprovalActionsProps = {\n onApprove?: (reason?: string) => void\n onReject?: (reason?: string) => void\n onEscalate?: (reason?: string) => void\n requireReason?: boolean\n disabled?: boolean\n className?: string\n}\n\nconst actionConfig: Record<\n ApprovalAction,\n {\n label: string\n icon: typeof CheckIcon\n dialogTitle: string\n dialogDescription: string\n confirmLabel: string\n triggerClassName: string\n confirmClassName: string\n dialogClassName: string\n }\n> = {\n approve: {\n label: \"Approve\",\n icon: CheckIcon,\n dialogTitle: \"Confirm Approval\",\n dialogDescription: \"Are you sure you want to approve this item?\",\n confirmLabel: \"Approve\",\n triggerClassName:\n \"bg-emerald-600 text-white hover:bg-emerald-700 dark:bg-emerald-600 dark:hover:bg-emerald-500\",\n confirmClassName:\n \"bg-emerald-600 text-white hover:bg-emerald-700 dark:bg-emerald-600 dark:hover:bg-emerald-500\",\n dialogClassName: \"border-emerald-500\",\n },\n reject: {\n label: \"Reject\",\n icon: XIcon,\n dialogTitle: \"Confirm Rejection\",\n dialogDescription:\n \"Are you sure you want to reject this item? This action may require a reason.\",\n confirmLabel: \"Reject\",\n triggerClassName:\n \"border border-destructive text-destructive bg-transparent hover:bg-destructive/10 dark:hover:bg-destructive/20\",\n confirmClassName: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n dialogClassName: \"border-destructive\",\n },\n escalate: {\n label: \"Escalate\",\n icon: ArrowUpIcon,\n dialogTitle: \"Confirm Escalation\",\n dialogDescription: \"This will escalate the item to a senior reviewer.\",\n confirmLabel: \"Escalate\",\n triggerClassName:\n \"border border-amber-500 text-amber-600 bg-transparent hover:bg-amber-500/10 dark:text-amber-400 dark:hover:bg-amber-500/20\",\n confirmClassName:\n \"bg-amber-500 text-white hover:bg-amber-600 dark:bg-amber-600 dark:hover:bg-amber-500\",\n dialogClassName: \"border-amber-500\",\n },\n}\n\nfunction ApprovalDialog({\n action,\n requireReason,\n onConfirm,\n disabled,\n}: {\n action: ApprovalAction\n requireReason: boolean\n onConfirm: (reason?: string) => void\n disabled?: boolean\n}) {\n const [reason, setReason] = useState(\"\")\n const [open, setOpen] = useState(false)\n const config = actionConfig[action]\n const Icon = config.icon\n\n function handleConfirm() {\n onConfirm(reason || undefined)\n setReason(\"\")\n setOpen(false)\n }\n\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogTrigger disabled={disabled} render={<Button className={config.triggerClassName} />}>\n <Icon className=\"size-4\" />\n {config.label}\n </DialogTrigger>\n <DialogContent className={config.dialogClassName}>\n <DialogHeader>\n <DialogTitle>{config.dialogTitle}</DialogTitle>\n <DialogDescription>{config.dialogDescription}</DialogDescription>\n </DialogHeader>\n <div className=\"space-y-2\">\n <Textarea\n placeholder={requireReason ? \"Reason (required)\" : \"Reason (optional)\"}\n value={reason}\n onChange={(e) => setReason(e.target.value)}\n />\n </div>\n <DialogFooter>\n <DialogClose render={<Button variant=\"outline\" />}>Cancel</DialogClose>\n <Button\n className={config.confirmClassName}\n onClick={handleConfirm}\n disabled={requireReason && !reason.trim()}\n >\n {config.confirmLabel}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction ApprovalButton({\n action,\n requireReason = false,\n onAction,\n disabled,\n}: {\n action: ApprovalAction\n requireReason?: boolean\n onAction?: (reason?: string) => void\n disabled?: boolean\n}) {\n const config = actionConfig[action]\n const Icon = config.icon\n\n if (!onAction) {\n return (\n <Button className={config.triggerClassName} disabled>\n <Icon className=\"size-4\" />\n {config.label}\n </Button>\n )\n }\n\n // No dialog needed when reason isn't required — fire directly\n if (!requireReason) {\n return (\n <Button className={config.triggerClassName} disabled={disabled} onClick={() => onAction()}>\n <Icon className=\"size-4\" />\n {config.label}\n </Button>\n )\n }\n\n return (\n <ApprovalDialog\n action={action}\n requireReason={requireReason}\n onConfirm={onAction}\n disabled={disabled}\n />\n )\n}\n\nfunction ApprovalActions({\n onApprove,\n onReject,\n onEscalate,\n requireReason = false,\n disabled,\n className,\n}: ApprovalActionsProps) {\n return (\n <div data-slot=\"approval-actions\" className={cn(\"flex items-center gap-2\", className)}>\n <ApprovalButton\n action=\"approve\"\n requireReason={requireReason}\n onAction={onApprove}\n disabled={disabled}\n />\n <ApprovalButton\n action=\"reject\"\n requireReason={requireReason}\n onAction={onReject}\n disabled={disabled}\n />\n <ApprovalButton\n action=\"escalate\"\n requireReason={requireReason}\n onAction={onEscalate}\n disabled={disabled}\n />\n </div>\n )\n}\n\nexport { ApprovalActions, ApprovalButton, ApprovalDialog }\nexport type { ApprovalAction, ApprovalActionsProps }\n","\"use client\"\n\nimport { useEffect, useRef } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nconst CHARS = \" .:-=+*#%@\"\nconst IS_MOBILE = typeof window !== \"undefined\" && window.innerWidth < 768\nconst CELL = IS_MOBILE ? 20 : 14\nconst FONT_SIZE = IS_MOBILE ? 16 : 12\n\ntype AsciiShaderProps = React.ComponentProps<\"canvas\"> & {\n paused?: boolean\n}\n\nfunction isDark() {\n return document.documentElement.classList.contains(\"dark\")\n}\n\nfunction AsciiShader({ paused = false, className, ...props }: AsciiShaderProps) {\n const canvasRef = useRef<HTMLCanvasElement>(null)\n const rafRef = useRef(0)\n const pausedRef = useRef(paused)\n const frameCount = useRef(0)\n\n useEffect(() => {\n pausedRef.current = paused\n }, [paused])\n\n useEffect(() => {\n const canvas = canvasRef.current\n if (!canvas) return\n\n const ctx = canvas.getContext(\"2d\")\n if (!ctx) return\n\n const mq = window.matchMedia(\"(prefers-reduced-motion: reduce)\")\n if (mq.matches) return\n\n let baseOpacity = isDark() ? 0.15 : 0.08\n let fgBase = isDark() ? \"255,255,255\" : \"0,0,0\"\n\n const updateColors = () => {\n baseOpacity = isDark() ? 0.15 : 0.08\n fgBase = isDark() ? \"255,255,255\" : \"0,0,0\"\n }\n\n const darkMq = window.matchMedia(\"(prefers-color-scheme: dark)\")\n darkMq.addEventListener(\"change\", updateColors)\n const mutObs = new MutationObserver(updateColors)\n mutObs.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [\"class\"],\n })\n\n const startTime = performance.now()\n let cols = 0\n let rows = 0\n\n const resize = () => {\n const dpr = Math.min(window.devicePixelRatio, 2)\n canvas.width = canvas.clientWidth * dpr\n canvas.height = canvas.clientHeight * dpr\n ctx.scale(dpr, dpr)\n cols = Math.ceil(canvas.clientWidth / CELL)\n rows = Math.ceil(canvas.clientHeight / CELL)\n }\n\n resize()\n window.addEventListener(\"resize\", resize)\n\n const render = (now: number) => {\n if (pausedRef.current) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n frameCount.current++\n if (frameCount.current % 3 !== 0) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n const w = canvas.clientWidth\n const h = canvas.clientHeight\n if (w === 0 || h === 0) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n ctx.clearRect(0, 0, w, h)\n ctx.font = `${FONT_SIZE}px var(--font-mono), monospace`\n ctx.textAlign = \"center\"\n ctx.textBaseline = \"middle\"\n\n const t = ((now - startTime) / 1000) * 0.8\n const t3 = t / 3\n const aspect = w / h\n\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < cols; col++) {\n const u = (col / cols) * aspect * 4 + t3 * 0.2\n const v = (row / rows) * 4 + t3 * 0.15\n\n const k = Math.cos(v * 1.3 + Math.sin(t3 * 0.8 + u * 0.7)) * 2\n const w2 = Math.sin(u * 1.1 + Math.cos(t3 * 0.6 - v * 0.9)) * 2\n const d = Math.sqrt(u * u + v * v) * 0.3\n const field = Math.cos(d + k) * Math.sin(d + w2) * Math.cos(k * w2 * 0.3 + t3)\n\n const val = field * 0.5 + 0.5\n const charIdx = Math.floor(val * (CHARS.length - 1))\n const char = CHARS[Math.min(charIdx, CHARS.length - 1)]\n\n if (char !== \" \") {\n const opacity = baseOpacity * (0.3 + 0.7 * (charIdx / (CHARS.length - 1)))\n ctx.fillStyle = `rgba(${fgBase},${opacity})`\n const x = col * CELL + CELL / 2\n const y = row * CELL + CELL / 2\n ctx.fillText(char, x, y)\n }\n }\n }\n\n rafRef.current = requestAnimationFrame(render)\n }\n\n rafRef.current = requestAnimationFrame(render)\n\n return () => {\n cancelAnimationFrame(rafRef.current)\n window.removeEventListener(\"resize\", resize)\n darkMq.removeEventListener(\"change\", updateColors)\n mutObs.disconnect()\n }\n }, [])\n\n return (\n <canvas\n ref={canvasRef}\n data-slot=\"ascii-shader\"\n className={cn(\"absolute inset-0 h-full w-full\", className)}\n {...props}\n />\n )\n}\n\nexport { AsciiShader }\nexport type { AsciiShaderProps }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction AuditLog({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"audit-log\"\n role=\"log\"\n className={cn(\"space-y-0 divide-y divide-border\", className)}\n {...props}\n />\n )\n}\n\nconst auditLogEntryVariants = cva(\n \"flex items-start gap-3 px-4 py-3 text-sm transition-colors hover:bg-muted/50\",\n {\n variants: {\n action: {\n create: \"\",\n update: \"\",\n delete: \"\",\n approve: \"\",\n reject: \"\",\n login: \"\",\n export: \"\",\n default: \"\",\n },\n },\n defaultVariants: {\n action: \"default\",\n },\n },\n)\n\ntype AuditLogEntryProps = React.ComponentProps<\"div\"> & VariantProps<typeof auditLogEntryVariants>\n\nfunction AuditLogEntry({ action, className, ...props }: AuditLogEntryProps) {\n return (\n <div\n data-slot=\"audit-log-entry\"\n data-action={action ?? \"default\"}\n className={cn(auditLogEntryVariants({ action }), className)}\n {...props}\n />\n )\n}\n\nfunction AuditLogIcon({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"audit-log-icon\"\n className={cn(\n \"mt-0.5 flex size-6 shrink-0 items-center justify-center rounded-full bg-muted\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AuditLogContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"audit-log-content\" className={cn(\"min-w-0 flex-1\", className)} {...props} />\n )\n}\n\nfunction AuditLogMessage({ className, ...props }: React.ComponentProps<\"p\">) {\n return <p data-slot=\"audit-log-message\" className={cn(\"text-sm\", className)} {...props} />\n}\n\nfunction AuditLogMeta({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"audit-log-meta\"\n className={cn(\"flex items-center gap-2 text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction AuditLogTime({ className, ...props }: React.ComponentProps<\"time\">) {\n return (\n <time\n data-slot=\"audit-log-time\"\n className={cn(\"shrink-0 text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction AuditLogDetail({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"audit-log-detail\"\n className={cn(\n \"mt-1.5 rounded-md border bg-muted/30 px-3 py-2 text-muted-foreground text-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n AuditLog,\n AuditLogEntry,\n AuditLogIcon,\n AuditLogContent,\n AuditLogMessage,\n AuditLogMeta,\n AuditLogTime,\n AuditLogDetail,\n auditLogEntryVariants,\n}\nexport type { AuditLogEntryProps }\n","\"use client\"\n\nimport { Avatar as AvatarPrimitive } from \"@base-ui/react/avatar\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Avatar({\n className,\n size = \"default\",\n ...props\n}: AvatarPrimitive.Root.Props & {\n size?: \"default\" | \"sm\" | \"lg\"\n}) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n \"group/avatar relative flex size-8 shrink-0 select-none rounded-full after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarImage({ className, ...props }: AvatarPrimitive.Image.Props) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square size-full rounded-full object-cover\", className)}\n {...props}\n />\n )\n}\n\nfunction AvatarFallback({ className, ...props }: AvatarPrimitive.Fallback.Props) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"flex size-full items-center justify-center rounded-full bg-muted text-muted-foreground text-sm group-data-[size=sm]/avatar:text-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarBadge({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n \"absolute right-0 bottom-0 z-10 inline-flex select-none items-center justify-center rounded-full bg-primary text-primary-foreground bg-blend-color ring-2 ring-background\",\n \"group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden\",\n \"group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2\",\n \"group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group\"\n className={cn(\n \"group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroupCount({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\n \"relative flex size-8 shrink-0 items-center justify-center rounded-full bg-muted text-muted-foreground text-sm ring-2 ring-background group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Avatar, AvatarImage, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarBadge }\n","import { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../lib/utils\"\n\nconst badgeVariants = cva(\n \"h-5 gap-1 rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! inline-flex items-center justify-center w-fit whitespace-nowrap shrink-0 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive overflow-hidden group/badge\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground [a]:hover:bg-primary/80\",\n secondary: \"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80\",\n destructive:\n \"bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20\",\n outline: \"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground\",\n ghost: \"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n tagline:\n \"h-auto rounded-full border-border text-foreground [a]:hover:bg-accent [a]:hover:text-accent-foreground font-semibold text-base px-3 mx-auto flex mb-2\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n)\n\nfunction Badge({\n className,\n variant = \"default\",\n square = false,\n render,\n ...props\n}: useRender.ComponentProps<\"span\"> & VariantProps<typeof badgeVariants> & { square?: boolean }) {\n return useRender({\n defaultTagName: \"span\",\n props: mergeProps<\"span\">(\n {\n className: cn(badgeVariants({ variant }), square && \"rounded-none\", className),\n },\n props,\n ),\n render,\n state: {\n slot: \"badge\",\n variant,\n },\n })\n}\n\nexport { Badge, badgeVariants }\n","\"use client\"\n\nimport { useEffect, useRef } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\n// 4×4 Bayer dithering matrix (normalised to 0–1)\nconst BAYER = [\n 0 / 16,\n 8 / 16,\n 2 / 16,\n 10 / 16,\n 12 / 16,\n 4 / 16,\n 14 / 16,\n 6 / 16,\n 3 / 16,\n 11 / 16,\n 1 / 16,\n 9 / 16,\n 15 / 16,\n 7 / 16,\n 13 / 16,\n 5 / 16,\n]\n\nconst BAYER_SCALE = 4\nconst DOWNSAMPLE = 4\n\nfunction parseCssColor(value: string): [number, number, number] | null {\n // Handles \"rgb(r, g, b)\" and \"rgba(r, g, b, a)\" returned by getComputedStyle\n const match = value.match(/[\\d.]+/g)\n if (match && match.length >= 3) {\n return [\n Math.round(Number(match[0])),\n Math.round(Number(match[1])),\n Math.round(Number(match[2])),\n ]\n }\n return null\n}\n\nfunction resolveColors(): { fg: [number, number, number]; bg: [number, number, number] } {\n // Use a probe element to force the browser to resolve CSS custom properties\n // into computed rgb() values that the canvas pixel renderer can consume.\n const probe = document.createElement(\"div\")\n probe.style.display = \"none\"\n probe.style.color = \"var(--foreground)\"\n probe.style.backgroundColor = \"var(--background)\"\n document.body.appendChild(probe)\n const probeStyle = getComputedStyle(probe)\n const fgRgb = parseCssColor(probeStyle.color)\n const bgRgb = parseCssColor(probeStyle.backgroundColor)\n document.body.removeChild(probe)\n\n // Fallback values (light mode defaults)\n const fg: [number, number, number] = fgRgb ?? [0xdc, 0xdf, 0xe3]\n const bg: [number, number, number] = bgRgb ?? [0xfa, 0xfa, 0xfa]\n return { fg, bg }\n}\n\ninterface BgShaderProps {\n className?: string\n}\n\nfunction BgShader({ className }: BgShaderProps) {\n const canvasRef = useRef<HTMLCanvasElement>(null)\n const rafRef = useRef<number>(0)\n const visibleRef = useRef(false)\n const frameCount = useRef(0)\n useEffect(() => {\n const canvas = canvasRef.current\n if (!canvas) return\n\n const mq = window.matchMedia(\"(prefers-reduced-motion: reduce)\")\n const reducedMotion = mq.matches\n\n const ctx = canvas.getContext(\"2d\")\n if (!ctx) return\n\n let { fg, bg } = resolveColors()\n\n const updateColors = () => {\n const resolved = resolveColors()\n fg = resolved.fg\n bg = resolved.bg\n }\n\n const darkMq = window.matchMedia(\"(prefers-color-scheme: dark)\")\n darkMq.addEventListener(\"change\", updateColors)\n\n const mutObs = new MutationObserver(updateColors)\n mutObs.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [\"class\"],\n })\n\n const ioObs = new IntersectionObserver(\n ([entry]) => {\n visibleRef.current = entry.isIntersecting\n if (entry.isIntersecting) {\n rafRef.current = requestAnimationFrame(render)\n }\n },\n { rootMargin: \"100px\" },\n )\n ioObs.observe(canvas)\n\n const startTime = performance.now()\n\n const render = (now: number) => {\n if (!visibleRef.current || reducedMotion) return\n\n frameCount.current++\n if (frameCount.current % 2 !== 0) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n const w = canvas.clientWidth\n const h = canvas.clientHeight\n if (w === 0 || h === 0) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n const cw = Math.ceil(w / DOWNSAMPLE)\n const ch = Math.ceil(h / DOWNSAMPLE)\n\n if (canvas.width !== cw || canvas.height !== ch) {\n canvas.width = cw\n canvas.height = ch\n }\n\n const imageData = ctx.createImageData(cw, ch)\n const data = imageData.data\n\n const time = ((now - startTime) / 1000) * 0.5\n const t3 = time / 3\n const aspect = w / h\n\n for (let py = 0; py < ch; py++) {\n for (let px = 0; px < cw; px++) {\n const u = (px / cw) * aspect * 3.5 + t3 * 0.3\n const v = (py / ch) * 3.5 + t3 * 0.3\n\n const k = 0.1 + Math.cos(v + Math.sin(0.148 - t3)) + 2.4 * t3\n const w2 = 0.9 + Math.sin(u + Math.cos(0.628 + t3)) - 0.7 * t3\n const d = Math.sqrt(u * u + v * v)\n const s = 7.0 * Math.cos(d + w2) * Math.sin(k + w2)\n\n const r = 0.5 + 0.5 * Math.cos(s + 0.2)\n const g = 0.5 + 0.5 * Math.cos(s + 0.5)\n const b = 0.5 + 0.5 * Math.cos(s + 0.9)\n\n const gray = 0.299 * r + 0.587 * g + 0.114 * b\n\n const ox = px * DOWNSAMPLE\n const oy = py * DOWNSAMPLE\n const bx = Math.floor(ox / BAYER_SCALE) & 3\n const by = Math.floor(oy / BAYER_SCALE) & 3\n const threshold = BAYER[bx + by * 4]\n\n const idx = (py * cw + px) * 4\n if (gray > threshold) {\n data[idx] = fg[0]\n data[idx + 1] = fg[1]\n data[idx + 2] = fg[2]\n } else {\n data[idx] = bg[0]\n data[idx + 1] = bg[1]\n data[idx + 2] = bg[2]\n }\n data[idx + 3] = 255\n }\n }\n\n ctx.putImageData(imageData, 0, 0)\n rafRef.current = requestAnimationFrame(render)\n }\n\n if (reducedMotion) {\n requestAnimationFrame(() => {\n visibleRef.current = true\n frameCount.current = 1\n const w = canvas.clientWidth\n const h = canvas.clientHeight\n if (w === 0 || h === 0) return\n const cw = Math.ceil(w / DOWNSAMPLE)\n const ch = Math.ceil(h / DOWNSAMPLE)\n canvas.width = cw\n canvas.height = ch\n const imageData = ctx.createImageData(cw, ch)\n const data = imageData.data\n const aspect = w / h\n for (let py = 0; py < ch; py++) {\n for (let px = 0; px < cw; px++) {\n const u = (px / cw) * aspect * 3.5\n const v = (py / ch) * 3.5\n const k = 0.1 + Math.cos(v + Math.sin(0.148))\n const w2 = 0.9 + Math.sin(u + Math.cos(0.628))\n const d = Math.sqrt(u * u + v * v)\n const s = 7.0 * Math.cos(d + w2) * Math.sin(k + w2)\n const gray =\n 0.299 * (0.5 + 0.5 * Math.cos(s + 0.2)) +\n 0.587 * (0.5 + 0.5 * Math.cos(s + 0.5)) +\n 0.114 * (0.5 + 0.5 * Math.cos(s + 0.9))\n const ox = px * DOWNSAMPLE\n const oy = py * DOWNSAMPLE\n const bx = Math.floor(ox / BAYER_SCALE) & 3\n const by = Math.floor(oy / BAYER_SCALE) & 3\n const threshold = BAYER[bx + by * 4]\n const idx = (py * cw + px) * 4\n const c = gray > threshold ? fg : bg\n data[idx] = c[0]\n data[idx + 1] = c[1]\n data[idx + 2] = c[2]\n data[idx + 3] = 255\n }\n }\n ctx.putImageData(imageData, 0, 0)\n })\n }\n\n return () => {\n cancelAnimationFrame(rafRef.current)\n ioObs.disconnect()\n mutObs.disconnect()\n darkMq.removeEventListener(\"change\", updateColors)\n }\n }, [])\n\n return (\n <section className={cn(\"absolute inset-0 opacity-50\", className)} data-slot=\"bg-shader\">\n <canvas\n ref={canvasRef}\n className=\"block h-full w-full\"\n style={{ imageRendering: \"pixelated\" }}\n />\n </section>\n )\n}\n\nexport { BgShader }\n","\"use client\"\n\nimport { useEffect, useRef } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nconst CHARS = \" .:-=+*#%@\"\nconst CELL = 14\nconst FONT_SIZE = 12\n\ntype BlockyShaderProps = React.ComponentProps<\"canvas\"> & {\n paused?: boolean\n}\n\nfunction isDark() {\n return document.documentElement.classList.contains(\"dark\")\n}\n\nfunction BlockyShader({ paused = false, className, ...props }: BlockyShaderProps) {\n const canvasRef = useRef<HTMLCanvasElement>(null)\n const rafRef = useRef(0)\n const pausedRef = useRef(paused)\n const frameCount = useRef(0)\n\n useEffect(() => {\n pausedRef.current = paused\n }, [paused])\n\n useEffect(() => {\n const canvas = canvasRef.current\n if (!canvas) return\n\n const ctx = canvas.getContext(\"2d\")\n if (!ctx) return\n\n const mq = window.matchMedia(\"(prefers-reduced-motion: reduce)\")\n if (mq.matches) return\n\n let fg = isDark() ? \"rgba(255,255,255,0.12)\" : \"rgba(0,0,0,0.07)\"\n\n const updateColors = () => {\n fg = isDark() ? \"rgba(255,255,255,0.12)\" : \"rgba(0,0,0,0.07)\"\n }\n\n const darkMq = window.matchMedia(\"(prefers-color-scheme: dark)\")\n darkMq.addEventListener(\"change\", updateColors)\n const mutObs = new MutationObserver(updateColors)\n mutObs.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [\"class\"],\n })\n\n const startTime = performance.now()\n let cols = 0\n let rows = 0\n\n const resize = () => {\n const dpr = Math.min(window.devicePixelRatio, 2)\n canvas.width = canvas.clientWidth * dpr\n canvas.height = canvas.clientHeight * dpr\n ctx.scale(dpr, dpr)\n cols = Math.ceil(canvas.clientWidth / CELL)\n rows = Math.ceil(canvas.clientHeight / CELL)\n }\n\n resize()\n window.addEventListener(\"resize\", resize)\n\n const render = (now: number) => {\n if (pausedRef.current) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n frameCount.current++\n if (frameCount.current % 3 !== 0) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n const w = canvas.clientWidth\n const h = canvas.clientHeight\n if (w === 0 || h === 0) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n ctx.clearRect(0, 0, w, h)\n ctx.font = `${FONT_SIZE}px monospace`\n ctx.fillStyle = fg\n ctx.textAlign = \"center\"\n ctx.textBaseline = \"middle\"\n\n const t = ((now - startTime) / 1000) * 0.3\n const t3 = t / 3\n const aspect = w / h\n\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < cols; col++) {\n const u = (col / cols) * aspect * 4 + t3 * 0.2\n const v = (row / rows) * 4 + t3 * 0.15\n\n const k = Math.cos(v * 1.3 + Math.sin(t3 * 0.8 + u * 0.7)) * 2\n const w2 = Math.sin(u * 1.1 + Math.cos(t3 * 0.6 - v * 0.9)) * 2\n const d = Math.sqrt(u * u + v * v) * 0.3\n const field = Math.cos(d + k) * Math.sin(d + w2) * Math.cos(k * w2 * 0.3 + t3)\n\n const val = field * 0.5 + 0.5\n const charIdx = Math.floor(val * (CHARS.length - 1))\n const char = CHARS[Math.min(charIdx, CHARS.length - 1)]\n\n if (char !== \" \") {\n const x = col * CELL + CELL / 2\n const y = row * CELL + CELL / 2\n ctx.fillText(char, x, y)\n }\n }\n }\n\n rafRef.current = requestAnimationFrame(render)\n }\n\n rafRef.current = requestAnimationFrame(render)\n\n return () => {\n cancelAnimationFrame(rafRef.current)\n window.removeEventListener(\"resize\", resize)\n darkMq.removeEventListener(\"change\", updateColors)\n mutObs.disconnect()\n }\n }, [])\n\n return (\n <canvas\n ref={canvasRef}\n data-slot=\"blocky-shader\"\n className={cn(\"absolute inset-0 h-full w-full\", className)}\n {...props}\n />\n )\n}\n\nexport { BlockyShader }\nexport type { BlockyShaderProps }\n","import { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { ChevronRightIcon, MoreHorizontalIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Breadcrumb({ className, ...props }: React.ComponentProps<\"nav\">) {\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" className={cn(className)} {...props} />\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<\"ol\">) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"wrap-break-word flex flex-wrap items-center gap-1.5 text-muted-foreground text-sm sm:gap-2.5\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbLink({ className, render, ...props }: useRender.ComponentProps<\"a\">) {\n return useRender({\n defaultTagName: \"a\",\n props: mergeProps<\"a\">(\n {\n className: cn(\"hover:text-foreground transition-colors\", className),\n },\n props,\n ),\n render,\n state: {\n slot: \"breadcrumb-link\",\n },\n })\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRightIcon className=\"cn-rtl-flip\" />}\n </li>\n )\n}\n\nfunction BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex size-5 items-center justify-center [&>svg]:size-4\", className)}\n {...props}\n >\n <MoreHorizontalIcon />\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","\"use client\"\n\nimport { Separator as SeparatorPrimitive } from \"@base-ui/react/separator\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Separator({ className, orientation = \"horizontal\", ...props }: SeparatorPrimitive.Props) {\n return (\n <SeparatorPrimitive\n data-slot=\"separator\"\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n","import { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../lib/utils\"\nimport { Separator } from \"./separator\"\n\nconst buttonGroupVariants = cva(\n \"has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md flex w-fit items-stretch *:focus-visible:z-10 *:focus-visible:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n {\n variants: {\n orientation: {\n horizontal:\n \"[&>[data-slot]:not(:has(~[data-slot]))]:rounded-r-md! [&>[data-slot]~[data-slot]]:rounded-l-none [&>[data-slot]~[data-slot]]:border-l-0 *:data-slot:rounded-r-none\",\n vertical:\n \"[&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-md! flex-col [&>[data-slot]~[data-slot]]:rounded-t-none [&>[data-slot]~[data-slot]]:border-t-0 *:data-slot:rounded-b-none\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n },\n)\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(buttonGroupVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupText({ className, render, ...props }: useRender.ComponentProps<\"div\">) {\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\n \"bg-muted gap-2 rounded-md border px-2.5 text-sm font-medium shadow-xs [&_svg:not([class*='size-'])]:size-4 flex items-center [&_svg]:pointer-events-none\",\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: \"button-group-text\",\n },\n })\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\n \"relative self-stretch bg-input data-horizontal:mx-px data-vertical:my-px data-vertical:h-auto data-horizontal:w-auto\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants }\n","\"use client\"\n\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\"\nimport * as React from \"react\"\nimport { type DayButton, DayPicker, getDefaultClassNames, type Locale } from \"react-day-picker\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button, buttonVariants } from \"./button\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n locale,\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 \"group/calendar bg-background in-data-[slot=card-content]:bg-transparent in-data-[slot=popover-content]:bg-transparent p-3 [--cell-radius:var(--radius-md)] [--cell-size:--spacing(8)]\",\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 locale={locale}\n formatters={{\n formatMonthDropdown: (date) => date.toLocaleString(locale?.code, { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\"flex gap-4 flex-col md:flex-row relative\", defaultClassNames.months),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav,\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root,\n ),\n dropdown: cn(\"absolute bg-popover inset-0 opacity-0\", defaultClassNames.dropdown),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>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 \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday,\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\"select-none w-(--cell-size)\", defaultClassNames.week_number_header),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number,\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day,\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 z-0 isolate\",\n defaultClassNames.range_start,\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:left-0 z-0 isolate\",\n defaultClassNames.range_end,\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) 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(\"text-muted-foreground opacity-50\", defaultClassNames.disabled),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return <div data-slot=\"calendar\" ref={rootRef} className={cn(className)} {...props} />\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return <ChevronLeftIcon className={cn(\"cn-rtl-flip size-4\", className)} {...props} />\n }\n\n if (orientation === \"right\") {\n return <ChevronRightIcon className={cn(\"cn-rtl-flip size-4\", className)} {...props} />\n }\n\n return <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n },\n DayButton: ({ ...props }) => <CalendarDayButton locale={locale} {...props} />,\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\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n locale,\n ...props\n}: React.ComponentProps<typeof DayButton> & { locale?: Partial<Locale> }) {\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 variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString(locale?.code)}\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 \"relative isolate z-10 flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 border-0 font-normal leading-none data-[range-end=true]:rounded-(--cell-radius) data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-(--cell-radius) data-[range-end=true]:rounded-r-(--cell-radius) data-[range-start=true]:rounded-l-(--cell-radius) data-[range-end=true]:bg-primary data-[range-middle=true]:bg-muted data-[range-start=true]:bg-primary data-[selected-single=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:text-foreground data-[range-start=true]:text-primary-foreground data-[selected-single=true]:text-primary-foreground 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 dark:hover:text-foreground [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport { AlertCircleIcon, InfoIcon, LightbulbIcon, TriangleAlertIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nconst calloutVariants = cva(\"flex gap-3 rounded-lg border p-4\", {\n variants: {\n variant: {\n info: \"border-blue-500/20 bg-blue-500/5 text-blue-900 dark:text-blue-200 [&>svg]:text-blue-500\",\n warning:\n \"border-amber-500/20 bg-amber-500/5 text-amber-900 dark:text-amber-200 [&>svg]:text-amber-500\",\n danger: \"border-red-500/20 bg-red-500/5 text-red-900 dark:text-red-200 [&>svg]:text-red-500\",\n tip: \"border-emerald-500/20 bg-emerald-500/5 text-emerald-900 dark:text-emerald-200 [&>svg]:text-emerald-500\",\n },\n },\n defaultVariants: { variant: \"info\" },\n})\n\nconst iconMap = {\n info: InfoIcon,\n warning: TriangleAlertIcon,\n danger: AlertCircleIcon,\n tip: LightbulbIcon,\n}\n\ntype CalloutProps = React.ComponentProps<\"div\"> & VariantProps<typeof calloutVariants>\n\nfunction Callout({ variant = \"info\", className, children, ...props }: CalloutProps) {\n const Icon = iconMap[variant!]\n return (\n <div data-slot=\"callout\" className={cn(calloutVariants({ variant }), className)} {...props}>\n <Icon className=\"mt-0.5 size-4 shrink-0\" />\n <div className=\"text-sm [&>p]:leading-relaxed\">{children}</div>\n </div>\n )\n}\n\nexport { Callout, calloutVariants }\nexport type { CalloutProps }\n","\"use client\"\n\nimport useEmblaCarousel, { type UseEmblaCarouselType } from \"embla-carousel-react\"\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\n\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\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\nfunction Carousel({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: React.ComponentProps<\"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) return\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) return\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) return\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: orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n data-slot=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n}\n\nfunction CarouselContent({ className, ...props }: React.ComponentProps<\"div\">) {\n const { carouselRef, orientation } = useCarousel()\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\" data-slot=\"carousel-content\">\n <div\n className={cn(\"flex\", orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\", className)}\n {...props}\n />\n </div>\n )\n}\n\nfunction CarouselItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const { orientation } = useCarousel()\n\n return (\n <div\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\" ? \"pl-4\" : \"pt-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n\n return (\n <Button\n data-slot=\"carousel-previous\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -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 <ChevronLeftIcon className=\"cn-rtl-flip\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n )\n}\n\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n\n return (\n <Button\n data-slot=\"carousel-next\"\n variant={variant}\n size={size}\n className={cn(\n \"absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -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 <ChevronRightIcon className=\"cn-rtl-flip\" />\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 useCarousel,\n}\n","\"use client\"\n\nimport { PreviewCard as PreviewCardPrimitive } from \"@base-ui/react/preview-card\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction HoverCard({ ...props }: PreviewCardPrimitive.Root.Props) {\n return <PreviewCardPrimitive.Root data-slot=\"hover-card\" {...props} />\n}\n\nfunction HoverCardTrigger({ ...props }: PreviewCardPrimitive.Trigger.Props) {\n return <PreviewCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n}\n\nfunction HoverCardContent({\n className,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 4,\n ...props\n}: PreviewCardPrimitive.Popup.Props &\n Pick<PreviewCardPrimitive.Positioner.Props, \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\">) {\n return (\n <PreviewCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <PreviewCardPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <PreviewCardPrimitive.Popup\n data-slot=\"hover-card-content\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 z-50 w-64 origin-(--transform-origin) rounded-lg border border-border-light bg-popover p-4 text-popover-foreground text-sm shadow-lg outline-hidden duration-100 data-closed:animate-out data-open:animate-in\",\n className,\n )}\n {...props}\n />\n </PreviewCardPrimitive.Positioner>\n </PreviewCardPrimitive.Portal>\n )\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n","import { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Separator } from \"./separator\"\n\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"list\"\n data-slot=\"item-group\"\n className={cn(\n \"group/item-group flex w-full flex-col gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ItemSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"item-separator\"\n orientation=\"horizontal\"\n className={cn(\"my-2\", className)}\n {...props}\n />\n )\n}\n\nconst itemVariants = cva(\n \"[a]:hover:bg-muted rounded-md border text-sm w-full group/item focus-visible:border-ring focus-visible:ring-ring/50 flex items-center flex-wrap outline-none transition-colors duration-100 focus-visible:ring-[3px] [a]:transition-colors\",\n {\n variants: {\n variant: {\n default: \"border-transparent\",\n outline: \"border-border\",\n muted: \"bg-muted/50 border-transparent\",\n },\n size: {\n default: \"gap-3.5 px-4 py-3.5\",\n sm: \"gap-2.5 px-3 py-2.5\",\n xs: \"gap-2 px-2.5 py-2 in-data-[slot=dropdown-menu-content]:p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n)\n\nfunction Item({\n className,\n variant = \"default\",\n size = \"default\",\n render,\n ...props\n}: useRender.ComponentProps<\"div\"> & VariantProps<typeof itemVariants>) {\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(itemVariants({ variant, size, className })),\n },\n props,\n ),\n render,\n state: {\n slot: \"item\",\n variant,\n size,\n },\n })\n}\n\nconst itemMediaVariants = cva(\n \"gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start flex shrink-0 items-center justify-center [&_svg]:pointer-events-none\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"[&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 overflow-hidden rounded-sm group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n)\n\nfunction ItemMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof itemMediaVariants>) {\n return (\n <div\n data-slot=\"item-media\"\n data-variant={variant}\n className={cn(itemMediaVariants({ variant, className }))}\n {...props}\n />\n )\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-content\"\n className={cn(\n \"flex flex-1 flex-col gap-1 group-data-[size=xs]/item:gap-0 [&+[data-slot=item-content]]:flex-none\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-title\"\n className={cn(\n \"line-clamp-1 flex w-fit items-center gap-2 font-medium text-sm leading-snug underline-offset-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"item-description\"\n className={cn(\n \"line-clamp-2 text-left font-normal text-muted-foreground text-sm leading-normal group-data-[size=xs]/item:text-xs [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"item-actions\" className={cn(\"flex items-center gap-2\", className)} {...props} />\n )\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-header\"\n className={cn(\"flex basis-full items-center justify-between gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-footer\"\n className={cn(\"flex basis-full items-center justify-between gap-2\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Item,\n ItemMedia,\n ItemContent,\n ItemActions,\n ItemGroup,\n ItemSeparator,\n ItemTitle,\n ItemDescription,\n ItemHeader,\n ItemFooter,\n}\n","\"use client\"\n\nimport { AlertTriangle, ArrowLeftRight, Calendar } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn, timeAgo } from \"../lib/utils\"\nimport { Badge } from \"./badge\"\nimport { Card } from \"./card\"\nimport { HoverCard, HoverCardContent, HoverCardTrigger } from \"./hover-card\"\nimport { Item, ItemContent, ItemDescription, ItemMedia, ItemTitle } from \"./item\"\n\n/* ------------------------------------------------------------------ */\n/* Style maps */\n/* ------------------------------------------------------------------ */\n\nconst SLA_BADGE: Record<string, string> = {\n on_track:\n \"text-emerald-700 bg-emerald-50 border-emerald-200 dark:text-emerald-400 dark:bg-emerald-950 dark:border-emerald-800\",\n at_risk:\n \"text-amber-700 bg-amber-50 border-amber-200 dark:text-amber-400 dark:bg-amber-950 dark:border-amber-800\",\n overdue:\n \"text-red-700 bg-red-50 border-red-200 dark:text-red-400 dark:bg-red-950 dark:border-red-800\",\n}\n\nconst PRIORITY_BADGE: Record<string, string> = {\n p1: \"text-red-700 bg-red-50 border-red-200 dark:text-red-400 dark:bg-red-950 dark:border-red-800\",\n p2: \"text-orange-700 bg-orange-50 border-orange-200 dark:text-orange-400 dark:bg-orange-950 dark:border-orange-800\",\n p3: \"text-slate-700 bg-slate-100 border-slate-200 dark:text-slate-400 dark:bg-slate-900 dark:border-slate-700\",\n}\n\nconst SEVERITY_DOT: Record<string, string> = {\n low: \"bg-slate-400\",\n medium: \"bg-amber-500\",\n high: \"bg-orange-500\",\n critical: \"bg-red-500\",\n}\n\n/* ------------------------------------------------------------------ */\n/* Types */\n/* ------------------------------------------------------------------ */\n\nexport type CaseCardAlert = {\n id: string\n severity: string\n trigger: string\n type: string\n href?: string\n}\n\nexport type CaseCardTransaction = {\n id: string\n amount: string\n asset: string\n direction: string\n href?: string\n}\n\nexport type CaseCardAssignee = {\n name: string\n role?: string\n}\n\nexport type CaseCardProps = {\n id: string\n title: string\n entities: string[]\n sla: string\n priority: string\n updatedAt: string\n assignee?: CaseCardAssignee\n linkedAlerts?: CaseCardAlert[]\n linkedTransactions?: CaseCardTransaction[]\n onClick?: () => void\n className?: string\n}\n\n/* ------------------------------------------------------------------ */\n/* Component */\n/* ------------------------------------------------------------------ */\n\nfunction CaseCard({\n id,\n title,\n entities,\n sla,\n priority,\n updatedAt,\n assignee,\n linkedAlerts = [],\n linkedTransactions = [],\n onClick,\n className,\n}: CaseCardProps) {\n const initials = assignee\n ? assignee.name\n .split(\" \")\n .map((n) => n[0])\n .join(\"\")\n .slice(0, 2)\n : null\n\n return (\n <Card\n padding=\"none\"\n className={cn(\n \"cursor-pointer p-4 transition-all duration-200 hover:-translate-y-0.5 hover:border-emerald-800 hover:bg-emerald-50/20 hover:shadow-md\",\n className,\n )}\n onClick={onClick}\n >\n {/* Header: ID + SLA */}\n <div className=\"flex flex-col gap-y-2 pb-2\">\n <div className=\"flex items-center justify-between\">\n <span className=\"flex items-center gap-2 font-mono text-[10px] text-muted-foreground\">\n {id.replace(\"case-\", \"CASE-\")}\n </span>\n <Badge\n square\n variant=\"outline\"\n className={cn(\n \"items-center px-1 py-0.5 text-[9px] uppercase leading-none\",\n SLA_BADGE[sla],\n )}\n >\n {sla === \"overdue\" && (\n <span className=\"relative flex size-1.5\">\n <span className=\"absolute inline-flex h-full w-full animate-ping rounded-full bg-red-400 opacity-75\" />\n <span className=\"relative inline-flex size-1.5 rounded-full bg-red-500\" />\n </span>\n )}\n {sla.replace(\"_\", \" \")}\n </Badge>\n </div>\n\n {/* Body: title + entities */}\n <div className=\"flex flex-col gap-y-1\">\n <p className=\"line-clamp-2 font-semibold text-sm leading-snug\">{title}</p>\n <p className=\"truncate text-muted-foreground text-xs\">{entities.join(\", \")}</p>\n </div>\n\n {/* Meta: priority + assignee */}\n <div className=\"flex items-center justify-between py-1\">\n <div className=\"flex items-center gap-1.5\">\n <Badge\n square\n variant=\"outline\"\n className={cn(\"px-1.5 py-0.5 text-[10px] leading-none\", PRIORITY_BADGE[priority])}\n >\n {priority.toUpperCase()}\n </Badge>\n </div>\n {assignee && initials && (\n <HoverCard>\n <HoverCardTrigger onClick={(e: React.MouseEvent) => e.stopPropagation()}>\n <div className=\"flex size-6 shrink-0 items-center justify-center rounded-full bg-primary/10 font-semibold text-[10px] text-primary transition-all hover:ring-2 hover:ring-primary/20\">\n {initials}\n </div>\n </HoverCardTrigger>\n <HoverCardContent side=\"top\" className=\"w-48 text-xs\">\n <div className=\"flex items-center gap-2\">\n <div className=\"flex size-8 shrink-0 items-center justify-center rounded-full bg-primary/10 font-semibold text-primary text-xs\">\n {initials}\n </div>\n <div>\n <p className=\"font-medium\">{assignee.name}</p>\n <p className=\"text-muted-foreground\">{assignee.role ?? \"Compliance Analyst\"}</p>\n </div>\n </div>\n </HoverCardContent>\n </HoverCard>\n )}\n </div>\n </div>\n\n {/* Footer: linked items + timestamp */}\n <div className=\"-mx-4 -mb-3 flex items-center gap-4 border-t border-dashed px-4 py-3 font-mono text-muted-foreground text-xs\">\n {linkedAlerts.length > 0 && (\n <HoverCard>\n <HoverCardTrigger\n className=\"flex items-center gap-1 transition-colors hover:text-foreground\"\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n >\n <AlertTriangle className=\"size-3.5\" />\n {linkedAlerts.length}\n </HoverCardTrigger>\n <HoverCardContent side=\"top\" className=\"w-72 p-2\">\n <p className=\"px-2 py-1 font-medium text-muted-foreground text-xs\">Linked Alerts</p>\n {linkedAlerts.map((a) => (\n <Item\n key={a.id}\n size=\"xs\"\n {...(a.href\n ? {\n render: (\n <a href={a.href} onClick={(e: React.MouseEvent) => e.stopPropagation()} />\n ),\n }\n : {})}\n >\n <ItemMedia>\n <div className={cn(\"size-2 rounded-full\", SEVERITY_DOT[a.severity])} />\n </ItemMedia>\n <ItemContent>\n <ItemTitle className=\"text-xs\">{a.trigger}</ItemTitle>\n <ItemDescription className=\"text-[10px]\">\n {a.id} · {a.type}\n </ItemDescription>\n </ItemContent>\n </Item>\n ))}\n </HoverCardContent>\n </HoverCard>\n )}\n {linkedTransactions.length > 0 && (\n <HoverCard>\n <HoverCardTrigger\n className=\"flex items-center gap-1 transition-colors hover:text-foreground\"\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n >\n <ArrowLeftRight className=\"size-3.5\" />\n {linkedTransactions.length}\n </HoverCardTrigger>\n <HoverCardContent side=\"top\" className=\"w-72 p-2\">\n <p className=\"px-2 py-1 font-medium text-muted-foreground text-xs\">\n Linked Transactions\n </p>\n {linkedTransactions.map((t) => (\n <Item\n key={t.id}\n size=\"xs\"\n {...(t.href\n ? {\n render: (\n <a href={t.href} onClick={(e: React.MouseEvent) => e.stopPropagation()} />\n ),\n }\n : {})}\n >\n <ItemMedia>\n <ArrowLeftRight className=\"size-3 text-muted-foreground\" />\n </ItemMedia>\n <ItemContent>\n <ItemTitle className=\"text-xs\">\n {t.amount} {t.asset}\n </ItemTitle>\n <ItemDescription className=\"text-[10px]\">\n {t.id} · {t.direction}\n </ItemDescription>\n </ItemContent>\n </Item>\n ))}\n </HoverCardContent>\n </HoverCard>\n )}\n <span className=\"ml-auto flex items-center gap-1\">\n <Calendar className=\"size-3.5\" />\n {timeAgo(updatedAt)}\n </span>\n </div>\n </Card>\n )\n}\n\nexport { CaseCard }\n","\"use client\"\n\nimport { Checkbox as CheckboxPrimitive } from \"@base-ui/react/checkbox\"\n\nimport { CheckIcon } from \"lucide-react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input shadow-xs outline-none transition-shadow after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 group-has-disabled/field:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:bg-input/30 dark:data-checked:bg-primary dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none [&>svg]:size-3.5\"\n >\n <CheckIcon />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n","\"use client\"\n\nimport { CheckIcon, ClipboardIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { useCallback, useEffect, useState } from \"react\"\nimport type { BundledLanguage, BundledTheme, HighlighterGeneric } from \"shiki\"\nimport { cn } from \"../lib/utils\"\n\ntype CodeBlockProps = React.ComponentProps<\"div\"> & {\n /** The code content */\n code: string\n /** Language for syntax highlighting (e.g. \"tsx\", \"typescript\", \"css\") */\n language?: string\n /** Show line numbers */\n showLineNumbers?: boolean\n /** Show copy button */\n showCopy?: boolean\n}\n\nlet highlighterPromise: Promise<HighlighterGeneric<BundledLanguage, BundledTheme>> | null = null\n\nfunction getHighlighter() {\n if (!highlighterPromise) {\n highlighterPromise = import(\"shiki\").then((mod) =>\n mod.createHighlighter({\n themes: [\"github-dark-default\", \"github-light-default\"],\n langs: [\n \"tsx\",\n \"typescript\",\n \"javascript\",\n \"css\",\n \"html\",\n \"json\",\n \"bash\",\n \"shell\",\n \"markdown\",\n \"python\",\n \"go\",\n \"rust\",\n \"sql\",\n \"yaml\",\n ],\n }),\n )\n }\n return highlighterPromise\n}\n\nfunction CodeBlock({\n code,\n language,\n showLineNumbers = false,\n showCopy = true,\n className,\n ...props\n}: CodeBlockProps) {\n const [copied, setCopied] = useState(false)\n const [highlightedHtml, setHighlightedHtml] = useState<string | null>(null)\n\n const handleCopy = useCallback(() => {\n navigator.clipboard.writeText(code)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n }, [code])\n\n useEffect(() => {\n if (!language) return\n let cancelled = false\n getHighlighter()\n .then((highlighter) => {\n if (cancelled) return\n const supportedLangs = highlighter.getLoadedLanguages()\n if (!supportedLangs.includes(language as BundledLanguage)) return\n const html = highlighter.codeToHtml(code, {\n lang: language,\n themes: {\n light: \"github-light-default\",\n dark: \"github-dark-default\",\n },\n })\n setHighlightedHtml(html)\n })\n .catch(() => {\n // Fallback to plain text on error\n })\n return () => {\n cancelled = true\n }\n }, [code, language])\n\n const lines = code.split(\"\\n\")\n\n return (\n <div\n data-slot=\"code-block\"\n className={cn(\"relative rounded-lg border bg-muted\", className)}\n {...props}\n >\n {(language || showCopy) && (\n <div className=\"flex items-center justify-between border-b px-4 py-2\">\n {language && (\n <span className=\"font-medium text-muted-foreground text-xs\">{language}</span>\n )}\n {showCopy && (\n <button\n type=\"button\"\n onClick={handleCopy}\n className=\"inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-muted-foreground text-xs transition-colors hover:text-foreground\"\n >\n {copied ? <CheckIcon className=\"size-3.5\" /> : <ClipboardIcon className=\"size-3.5\" />}\n {copied ? \"Copied!\" : \"Copy\"}\n </button>\n )}\n </div>\n )}\n {highlightedHtml ? (\n <div\n className={cn(\n \"[&_.shiki]:bg-transparent! [&_pre]:overflow-x-auto [&_pre]:p-4 [&_pre]:font-mono [&_pre]:text-sm [&_pre]:leading-relaxed\",\n showLineNumbers &&\n \"[&_.shiki_.line]:table-row [&_.shiki_.line]:[counter-increment:line] [&_.shiki_.line]:before:table-cell [&_.shiki_.line]:before:select-none [&_.shiki_.line]:before:pr-4 [&_.shiki_.line]:before:text-right [&_.shiki_.line]:before:text-muted-foreground/50 [&_.shiki_.line]:before:content-[counter(line)] [&_.shiki_code]:table [&_.shiki_code]:w-full [&_.shiki_code]:[counter-reset:line]\",\n )}\n // biome-ignore lint: html from shiki is safe\n dangerouslySetInnerHTML={{ __html: highlightedHtml }}\n />\n ) : (\n <pre className=\"overflow-x-auto p-4 font-mono text-sm leading-relaxed\">\n <code className={cn(showLineNumbers && \"table w-full\")}>\n {showLineNumbers\n ? lines.map((line, i) => (\n <span key={i} className=\"table-row\">\n <span className=\"table-cell select-none pr-4 text-right align-top text-muted-foreground/50\">\n {i + 1}\n </span>\n <span className=\"table-cell whitespace-pre\">{line}</span>\n </span>\n ))\n : code}\n </code>\n </pre>\n )}\n </div>\n )\n}\n\nexport { CodeBlock }\nexport type { CodeBlockProps }\n","\"use client\"\n\nimport { Collapsible as CollapsiblePrimitive } from \"@base-ui/react/collapsible\"\n\nfunction Collapsible({ ...props }: CollapsiblePrimitive.Root.Props) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({ ...props }: CollapsiblePrimitive.Trigger.Props) {\n return <CollapsiblePrimitive.Trigger data-slot=\"collapsible-trigger\" {...props} />\n}\n\nfunction CollapsibleContent({ ...props }: CollapsiblePrimitive.Panel.Props) {\n return <CollapsiblePrimitive.Panel data-slot=\"collapsible-content\" {...props} />\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\nimport { Input } from \"./input\"\nimport { Textarea } from \"./textarea\"\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group relative flex h-9 w-full min-w-0 items-center rounded-md border border-input shadow-xs outline-none transition-[color,box-shadow] in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-start]]:h-auto has-[>textarea]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:flex-col has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:bg-input/30 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-start]]:[&>input]:pl-1.5\",\n className,\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground h-auto gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4 flex cursor-text items-center justify-center select-none\",\n {\n variants: {\n align: {\n \"inline-start\": \"pl-2 has-[>button]:-ml-1 has-[>kbd]:ml-[-0.15rem] order-first\",\n \"inline-end\": \"pr-2 has-[>button]:-mr-1 has-[>kbd]:mr-[-0.15rem] order-last\",\n \"block-start\":\n \"px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2 order-first w-full justify-start\",\n \"block-end\":\n \"px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2 order-last w-full justify-start\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n },\n)\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus()\n }}\n {...props}\n />\n )\n}\n\nconst inputGroupButtonVariants = cva(\"gap-2 text-sm shadow-none flex items-center\", {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n \"icon-xs\": \"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n})\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\" | \"type\"> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: \"button\" | \"submit\" | \"reset\"\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-muted-foreground text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n}\n","\"use client\"\n\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react\"\nimport { CheckIcon, ChevronDownIcon, XIcon } from \"lucide-react\"\nimport * as React from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\nimport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput } from \"./input-group\"\n\nconst Combobox = ComboboxPrimitive.Root\n\nfunction ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props) {\n return <ComboboxPrimitive.Value data-slot=\"combobox-value\" {...props} />\n}\n\nfunction ComboboxTrigger({ className, children, ...props }: ComboboxPrimitive.Trigger.Props) {\n return (\n <ComboboxPrimitive.Trigger\n data-slot=\"combobox-trigger\"\n className={cn(\"[&_svg:not([class*='size-'])]:size-4\", className)}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n </ComboboxPrimitive.Trigger>\n )\n}\n\nfunction ComboboxClear({ className, ...props }: ComboboxPrimitive.Clear.Props) {\n return (\n <ComboboxPrimitive.Clear\n data-slot=\"combobox-clear\"\n render={<InputGroupButton variant=\"ghost\" size=\"icon-xs\" />}\n className={cn(className)}\n {...props}\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.Clear>\n )\n}\n\nfunction ComboboxInput({\n className,\n children,\n disabled = false,\n showTrigger = true,\n showClear = false,\n ...props\n}: ComboboxPrimitive.Input.Props & {\n showTrigger?: boolean\n showClear?: boolean\n}) {\n return (\n <InputGroup className={cn(\"w-auto\", className)}>\n <ComboboxPrimitive.Input render={<InputGroupInput disabled={disabled} />} {...props} />\n <InputGroupAddon align=\"inline-end\">\n {showTrigger && (\n <InputGroupButton\n size=\"icon-xs\"\n variant=\"ghost\"\n render={<ComboboxTrigger />}\n data-slot=\"input-group-button\"\n className=\"group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent\"\n disabled={disabled}\n />\n )}\n {showClear && <ComboboxClear disabled={disabled} />}\n </InputGroupAddon>\n {children}\n </InputGroup>\n )\n}\n\nfunction ComboboxContent({\n className,\n side = \"bottom\",\n sideOffset = 6,\n align = \"start\",\n alignOffset = 0,\n anchor,\n ...props\n}: ComboboxPrimitive.Popup.Props &\n Pick<\n ComboboxPrimitive.Positioner.Props,\n \"side\" | \"align\" | \"sideOffset\" | \"alignOffset\" | \"anchor\"\n >) {\n return (\n <ComboboxPrimitive.Portal>\n <ComboboxPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n anchor={anchor}\n className=\"isolate z-50\"\n >\n <ComboboxPrimitive.Popup\n data-slot=\"combobox-content\"\n data-chips={!!anchor}\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 cn-menu-target group/combobox-content relative max-h-(--available-height) w-(--anchor-width) min-w-[calc(var(--anchor-width)+--spacing(7))] max-w-(--available-width) origin-(--transform-origin) overflow-hidden rounded-lg border border-border-light bg-popover text-popover-foreground shadow-lg duration-100 data-[chips=true]:min-w-(--anchor-width) data-closed:animate-out data-open:animate-in *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none\",\n className,\n )}\n {...props}\n />\n </ComboboxPrimitive.Positioner>\n </ComboboxPrimitive.Portal>\n )\n}\n\nfunction ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props) {\n return (\n <ComboboxPrimitive.List\n data-slot=\"combobox-list\"\n className={cn(\n \"no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxItem({ className, children, ...props }: ComboboxPrimitive.Item.Props) {\n return (\n <ComboboxPrimitive.Item\n data-slot=\"combobox-item\"\n className={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden data-disabled:pointer-events-none data-highlighted:bg-accent data-highlighted:text-accent-foreground data-disabled:opacity-50 not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <ComboboxPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ItemIndicator>\n </ComboboxPrimitive.Item>\n )\n}\n\nfunction ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props) {\n return <ComboboxPrimitive.Group data-slot=\"combobox-group\" className={cn(className)} {...props} />\n}\n\nfunction ComboboxLabel({ className, ...props }: ComboboxPrimitive.GroupLabel.Props) {\n return (\n <ComboboxPrimitive.GroupLabel\n data-slot=\"combobox-label\"\n className={cn(\"px-2 py-1.5 text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props) {\n return <ComboboxPrimitive.Collection data-slot=\"combobox-collection\" {...props} />\n}\n\nfunction ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props) {\n return (\n <ComboboxPrimitive.Empty\n data-slot=\"combobox-empty\"\n className={cn(\n \"hidden w-full justify-center py-2 text-center text-muted-foreground text-sm group-data-empty/combobox-content:flex\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxSeparator({ className, ...props }: ComboboxPrimitive.Separator.Props) {\n return (\n <ComboboxPrimitive.Separator\n data-slot=\"combobox-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction ComboboxChips({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> & ComboboxPrimitive.Chips.Props) {\n return (\n <ComboboxPrimitive.Chips\n data-slot=\"combobox-chips\"\n className={cn(\n \"flex min-h-9 flex-wrap items-center gap-1.5 rounded-md border border-input bg-transparent bg-clip-padding px-2.5 py-1.5 text-sm shadow-xs transition-[color,box-shadow] focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50 has-aria-invalid:border-destructive has-data-[slot=combobox-chip]:px-1.5 has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ComboboxChip({\n className,\n children,\n showRemove = true,\n ...props\n}: ComboboxPrimitive.Chip.Props & {\n showRemove?: boolean\n}) {\n return (\n <ComboboxPrimitive.Chip\n data-slot=\"combobox-chip\"\n className={cn(\n \"flex h-[calc(--spacing(5.5))] w-fit items-center justify-center gap-1 whitespace-nowrap rounded-sm bg-muted px-1.5 font-medium text-foreground text-xs has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-data-[slot=combobox-chip-remove]:pr-0 has-disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n {children}\n {showRemove && (\n <ComboboxPrimitive.ChipRemove\n render={<Button variant=\"ghost\" size=\"icon-xs\" />}\n className=\"-ml-1 opacity-50 hover:opacity-100\"\n data-slot=\"combobox-chip-remove\"\n >\n <XIcon className=\"pointer-events-none\" />\n </ComboboxPrimitive.ChipRemove>\n )}\n </ComboboxPrimitive.Chip>\n )\n}\n\nfunction ComboboxChipsInput({ className, ...props }: ComboboxPrimitive.Input.Props) {\n return (\n <ComboboxPrimitive.Input\n data-slot=\"combobox-chip-input\"\n className={cn(\"min-w-16 flex-1 outline-none\", className)}\n {...props}\n />\n )\n}\n\nfunction useComboboxAnchor() {\n return React.useRef<HTMLDivElement | null>(null)\n}\n\nexport {\n Combobox,\n ComboboxInput,\n ComboboxContent,\n ComboboxList,\n ComboboxItem,\n ComboboxGroup,\n ComboboxLabel,\n ComboboxCollection,\n ComboboxEmpty,\n ComboboxSeparator,\n ComboboxChips,\n ComboboxChip,\n ComboboxChipsInput,\n ComboboxTrigger,\n ComboboxValue,\n useComboboxAnchor,\n}\n","\"use client\"\n\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { CheckIcon, SearchIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from \"./dialog\"\nimport { InputGroup, InputGroupAddon } from \"./input-group\"\n\nfunction Command({ className, ...props }: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n \"flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CommandDialog({\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n children,\n className,\n showCloseButton = false,\n ...props\n}: Omit<React.ComponentProps<typeof Dialog>, \"children\"> & {\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n children: React.ReactNode\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn(\"top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0\", className)}\n showCloseButton={showCloseButton}\n >\n {children}\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction CommandInput({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div data-slot=\"command-input-wrapper\" className=\"p-1 pb-0\">\n <InputGroup className=\"h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:pl-2!\">\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn(\n \"w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n <InputGroupAddon>\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n </InputGroupAddon>\n </InputGroup>\n </div>\n )\n}\n\nfunction CommandList({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn(\n \"no-scrollbar max-h-72 scroll-py-1 overflow-y-auto overflow-x-hidden outline-none\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CommandEmpty({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className={cn(\"py-6 text-center text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\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]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground **:[[cmdk-group-heading]]:text-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn(\"-mx-1 h-px w-auto bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n \"group/command-item relative flex cursor-default select-none items-center gap-2 in-data-[slot=dialog-content]:rounded-lg! rounded-sm px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-selected:bg-muted data-selected:text-foreground data-[disabled=true]:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0 data-selected:**:[svg]:text-foreground\",\n className,\n )}\n {...props}\n >\n {children}\n <CheckIcon className=\"ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100\" />\n </CommandPrimitive.Item>\n )\n}\n\nfunction CommandShortcut({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n \"ml-auto text-muted-foreground text-xs tracking-widest group-data-selected/command-item:text-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","import type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction CommentThread({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"comment-thread\" className={cn(\"space-y-4\", className)} {...props} />\n}\n\ntype CommentProps = React.ComponentProps<\"div\"> & {\n /** Whether this is a reply (indented) */\n reply?: boolean\n}\n\nfunction Comment({ reply, className, ...props }: CommentProps) {\n return (\n <div data-slot=\"comment\" className={cn(\"flex gap-3\", reply && \"ml-10\", className)} {...props} />\n )\n}\n\nfunction CommentAvatar({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"comment-avatar\"\n className={cn(\n \"flex size-8 shrink-0 items-center justify-center rounded-full bg-muted font-medium text-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CommentBody({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"comment-body\"\n className={cn(\"min-w-0 flex-1 space-y-1\", className)}\n {...props}\n />\n )\n}\n\nfunction CommentHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"comment-header\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction CommentAuthor({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span data-slot=\"comment-author\" className={cn(\"font-medium text-sm\", className)} {...props} />\n )\n}\n\nfunction CommentTime({ className, ...props }: React.ComponentProps<\"time\">) {\n return (\n <time\n data-slot=\"comment-time\"\n className={cn(\"text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction CommentContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"comment-content\"\n className={cn(\"text-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CommentActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"comment-actions\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n )\n}\n\nexport {\n CommentThread,\n Comment,\n CommentAvatar,\n CommentBody,\n CommentHeader,\n CommentAuthor,\n CommentTime,\n CommentContent,\n CommentActions,\n}\nexport type { CommentProps }\n","\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { useEffect, useRef, useState } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nconst complianceScoreVariants = cva(\"relative inline-flex items-center justify-center\", {\n variants: {\n size: {\n sm: \"size-20\",\n default: \"size-28\",\n lg: \"size-36\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\n/** Map size to SVG stroke width and font sizing */\nconst sizeConfig = {\n sm: { strokeWidth: 5, viewBox: 80, radius: 34, fontSize: \"text-lg\", labelSize: \"text-[8px]\" },\n default: {\n strokeWidth: 6,\n viewBox: 80,\n radius: 34,\n fontSize: \"text-2xl\",\n labelSize: \"text-[9px]\",\n },\n lg: {\n strokeWidth: 7,\n viewBox: 80,\n radius: 34,\n fontSize: \"text-3xl\",\n labelSize: \"text-[10px]\",\n },\n} as const\n\nfunction getScoreColor(score: number): string {\n if (score <= 40) return \"text-destructive\"\n if (score <= 70) return \"text-warning\"\n return \"text-emerald-500\"\n}\n\nfunction getTrackColor(score: number): string {\n if (score <= 40) return \"text-destructive/15\"\n if (score <= 70) return \"text-warning/15\"\n return \"text-emerald-500/15\"\n}\n\ntype ComplianceScoreProps = React.ComponentProps<\"div\"> &\n VariantProps<typeof complianceScoreVariants> & {\n /** Compliance score from 0–100 */\n score: number\n /** Optional label rendered below the score */\n label?: string\n /** Show the numeric value in the center. Default: true */\n showValue?: boolean\n /** Override the automatic color (accepts a Tailwind text-color class) */\n color?: string\n }\n\nfunction ComplianceScore({\n score,\n label,\n size = \"default\",\n showValue = true,\n color,\n className,\n ...props\n}: ComplianceScoreProps) {\n const clampedScore = Math.max(0, Math.min(100, score))\n const cfg = sizeConfig[size ?? \"default\"]\n const circumference = 2 * Math.PI * cfg.radius\n const [animatedScore, setAnimatedScore] = useState(0)\n const hasAnimated = useRef(false)\n const ref = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const el = ref.current\n if (!el) return\n\n if (hasAnimated.current) {\n setAnimatedScore(clampedScore)\n return\n }\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (!entry.isIntersecting || hasAnimated.current) return\n hasAnimated.current = true\n\n const start = performance.now()\n const duration = 800\n\n function tick(now: number) {\n const progress = Math.min((now - start) / duration, 1)\n // Cubic ease-out\n const eased = 1 - (1 - progress) ** 3\n setAnimatedScore(Math.round(clampedScore * eased))\n if (progress < 1) requestAnimationFrame(tick)\n }\n\n requestAnimationFrame(tick)\n },\n { threshold: 0.5 },\n )\n\n observer.observe(el)\n return () => observer.disconnect()\n }, [clampedScore])\n\n const dashOffset = circumference - (animatedScore / 100) * circumference\n const scoreColor = color ?? getScoreColor(clampedScore)\n const trackColor = color ? `${color}/15` : getTrackColor(clampedScore)\n\n return (\n <div\n ref={ref}\n data-slot=\"compliance-score\"\n className={cn(complianceScoreVariants({ size }), className)}\n {...props}\n >\n <svg\n viewBox={`0 0 ${cfg.viewBox} ${cfg.viewBox}`}\n className=\"absolute inset-0 size-full -rotate-90\"\n aria-hidden=\"true\"\n >\n {/* Track */}\n <circle\n cx={cfg.viewBox / 2}\n cy={cfg.viewBox / 2}\n r={cfg.radius}\n fill=\"none\"\n strokeWidth={cfg.strokeWidth}\n className={cn(\"stroke-current\", trackColor)}\n strokeLinecap=\"round\"\n />\n {/* Fill */}\n <circle\n cx={cfg.viewBox / 2}\n cy={cfg.viewBox / 2}\n r={cfg.radius}\n fill=\"none\"\n strokeWidth={cfg.strokeWidth}\n className={cn(\"stroke-current transition-[stroke-dashoffset] duration-300\", scoreColor)}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={dashOffset}\n />\n </svg>\n\n {/* Center content */}\n {showValue && (\n <div className=\"relative z-10 flex flex-col items-center\">\n <span\n className={cn(\"font-mono font-semibold tabular-nums\", cfg.fontSize, scoreColor)}\n aria-label={`${animatedScore}%`}\n >\n {animatedScore}\n </span>\n {label && (\n <span\n className={cn(\n \"mt-0.5 font-medium text-muted-foreground uppercase tracking-wide\",\n cfg.labelSize,\n )}\n >\n {label}\n </span>\n )}\n </div>\n )}\n </div>\n )\n}\n\nexport { ComplianceScore, complianceScoreVariants }\nexport type { ComplianceScoreProps }\n","\"use client\"\n\nimport { ContextMenu as ContextMenuPrimitive } from \"@base-ui/react/context-menu\"\nimport { CheckIcon, ChevronRightIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction ContextMenu({ ...props }: ContextMenuPrimitive.Root.Props) {\n return <ContextMenuPrimitive.Root data-slot=\"context-menu\" {...props} />\n}\n\nfunction ContextMenuPortal({ ...props }: ContextMenuPrimitive.Portal.Props) {\n return <ContextMenuPrimitive.Portal data-slot=\"context-menu-portal\" {...props} />\n}\n\nfunction ContextMenuTrigger({ className, ...props }: ContextMenuPrimitive.Trigger.Props) {\n return (\n <ContextMenuPrimitive.Trigger\n data-slot=\"context-menu-trigger\"\n className={cn(\"select-none\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextMenuContent({\n className,\n align = \"start\",\n alignOffset = 4,\n side = \"right\",\n sideOffset = 0,\n ...props\n}: ContextMenuPrimitive.Popup.Props &\n Pick<ContextMenuPrimitive.Positioner.Props, \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\">) {\n return (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <ContextMenuPrimitive.Popup\n data-slot=\"context-menu-content\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 cn-menu-target z-50 max-h-(--available-height) min-w-36 origin-(--transform-origin) overflow-y-auto overflow-x-hidden rounded-lg border border-border-light bg-popover p-1 text-popover-foreground shadow-lg outline-none duration-100 data-closed:animate-out data-open:animate-in\",\n className,\n )}\n {...props}\n />\n </ContextMenuPrimitive.Positioner>\n </ContextMenuPrimitive.Portal>\n )\n}\n\nfunction ContextMenuGroup({ ...props }: ContextMenuPrimitive.Group.Props) {\n return <ContextMenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />\n}\n\nfunction ContextMenuLabel({\n className,\n inset,\n ...props\n}: ContextMenuPrimitive.GroupLabel.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.GroupLabel\n data-slot=\"context-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 font-medium text-muted-foreground text-xs data-inset:pl-8\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: ContextMenuPrimitive.Item.Props & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <ContextMenuPrimitive.Item\n data-slot=\"context-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/context-menu-item relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-[variant=destructive]:text-destructive data-disabled:opacity-50 data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuSub({ ...props }: ContextMenuPrimitive.SubmenuRoot.Props) {\n return <ContextMenuPrimitive.SubmenuRoot data-slot=\"context-menu-sub\" {...props} />\n}\n\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: ContextMenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.SubmenuTrigger\n data-slot=\"context-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-inset:pl-8 data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"cn-rtl-flip ml-auto\" />\n </ContextMenuPrimitive.SubmenuTrigger>\n )\n}\n\nfunction ContextMenuSubContent({ ...props }: React.ComponentProps<typeof ContextMenuContent>) {\n return (\n <ContextMenuContent\n data-slot=\"context-menu-sub-content\"\n className=\"shadow-lg\"\n side=\"right\"\n {...props}\n />\n )\n}\n\nfunction ContextMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: ContextMenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.CheckboxItem\n data-slot=\"context-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2\">\n <ContextMenuPrimitive.CheckboxItemIndicator>\n <CheckIcon />\n </ContextMenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n )\n}\n\nfunction ContextMenuRadioGroup({ ...props }: ContextMenuPrimitive.RadioGroup.Props) {\n return <ContextMenuPrimitive.RadioGroup data-slot=\"context-menu-radio-group\" {...props} />\n}\n\nfunction ContextMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: ContextMenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.RadioItem\n data-slot=\"context-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2\">\n <ContextMenuPrimitive.RadioItemIndicator>\n <CheckIcon />\n </ContextMenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n )\n}\n\nfunction ContextMenuSeparator({ className, ...props }: ContextMenuPrimitive.Separator.Props) {\n return (\n <ContextMenuPrimitive.Separator\n data-slot=\"context-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextMenuShortcut({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"context-menu-shortcut\"\n className={cn(\n \"ml-auto text-muted-foreground text-xs tracking-widest group-focus/context-menu-item:text-accent-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 { CheckIcon, ClipboardIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { useCallback, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\n\ntype CopyButtonProps = Omit<React.ComponentProps<typeof Button>, \"onClick\"> & {\n /** Text to copy to clipboard */\n value: string\n /** How long \"Copied!\" stays visible (ms). Default 2000 */\n timeout?: number\n}\n\nfunction CopyButton({ value, timeout = 2000, className, children, ...props }: CopyButtonProps) {\n const [copied, setCopied] = useState(false)\n\n const handleCopy = useCallback(() => {\n navigator.clipboard.writeText(value)\n setCopied(true)\n setTimeout(() => setCopied(false), timeout)\n }, [value, timeout])\n\n return (\n <Button\n data-slot=\"copy-button\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"size-8\", className)}\n onClick={handleCopy}\n {...props}\n >\n {copied ? <CheckIcon className=\"size-3.5\" /> : <ClipboardIcon className=\"size-3.5\" />}\n {children}\n </Button>\n )\n}\n\nexport { CopyButton }\nexport type { CopyButtonProps }\n","\"use client\"\n\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\"\nimport { CheckIcon, ChevronRightIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {\n return <MenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />\n}\n\nfunction DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {\n return <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n}\n\nfunction DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {\n return <MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />\n}\n\nfunction DropdownMenuContent({\n align = \"start\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n className,\n ...props\n}: MenuPrimitive.Popup.Props &\n Pick<MenuPrimitive.Positioner.Props, \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\">) {\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <MenuPrimitive.Popup\n data-slot=\"dropdown-menu-content\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 cn-menu-target z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-y-auto overflow-x-hidden rounded-lg border border-border-light bg-popover p-1 text-popover-foreground shadow-lg outline-none duration-100 data-closed:animate-out data-open:animate-in data-closed:overflow-hidden\",\n className,\n )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n )\n}\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n return <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<\"div\"> & {\n inset?: boolean\n}) {\n return (\n <div\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 font-medium text-muted-foreground text-xs data-[inset]:pl-8\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: MenuPrimitive.Item.Props & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <MenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/dropdown-menu-item relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-[variant=destructive]:text-destructive data-disabled:opacity-50 data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0 data-[variant=destructive]:*:[svg]:text-destructive\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.SubmenuTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-open:bg-accent data-popup-open:bg-accent data-inset:pl-8 data-open:text-accent-foreground data-popup-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"cn-rtl-flip ml-auto\" />\n </MenuPrimitive.SubmenuTrigger>\n )\n}\n\nfunction DropdownMenuSubContent({\n align = \"start\",\n alignOffset = -3,\n side = \"right\",\n sideOffset = 0,\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n return (\n <DropdownMenuContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-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 w-auto min-w-[96px] rounded-lg border border-border-light bg-popover p-1 text-popover-foreground shadow-lg duration-100 data-closed:animate-out data-open:animate-in\",\n className,\n )}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n )\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n return <MenuPrimitive.RadioGroup data-slot=\"dropdown-menu-radio-group\" {...props} />\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <MenuPrimitive.RadioItemIndicator>\n <CheckIcon />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n )\n}\n\nfunction DropdownMenuSeparator({ className, ...props }: MenuPrimitive.Separator.Props) {\n return (\n <MenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuShortcut({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"ml-auto text-muted-foreground text-xs tracking-widest group-focus/dropdown-menu-item:text-accent-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n","\"use client\"\n\nimport { Popover as PopoverPrimitive } from \"@base-ui/react/popover\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Popover({ ...props }: PopoverPrimitive.Root.Props) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({ ...props }: PopoverPrimitive.Trigger.Props) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n ...props\n}: PopoverPrimitive.Popup.Props &\n Pick<PopoverPrimitive.Positioner.Props, \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\">) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <PopoverPrimitive.Popup\n data-slot=\"popover-content\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 z-50 flex w-72 origin-(--transform-origin) flex-col gap-4 rounded-lg border border-border-light bg-popover p-4 text-popover-foreground text-sm shadow-lg outline-hidden duration-100 data-closed:animate-out data-open:animate-in\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"popover-header\"\n className={cn(\"flex flex-col gap-1 text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverTitle({ className, ...props }: PopoverPrimitive.Title.Props) {\n return (\n <PopoverPrimitive.Title\n data-slot=\"popover-title\"\n className={cn(\"font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverDescription({ className, ...props }: PopoverPrimitive.Description.Props) {\n return (\n <PopoverPrimitive.Description\n data-slot=\"popover-description\"\n className={cn(\"text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport { Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger }\n","\"use client\"\n\nimport { Select as SelectPrimitive } from \"@base-ui/react/select\"\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nconst Select = SelectPrimitive.Root\n\nfunction SelectGroup({ className, ...props }: SelectPrimitive.Group.Props) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(\"scroll-my-1 p-1\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectValue({ className, ...props }: SelectPrimitive.Value.Props) {\n return (\n <SelectPrimitive.Value\n data-slot=\"select-value\"\n className={cn(\"flex flex-1 text-left\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: SelectPrimitive.Trigger.Props & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"flex w-fit items-center justify-between gap-1.5 whitespace-nowrap rounded-md border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm shadow-xs outline-none transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-9 data-[size=sm]:h-8 data-placeholder:text-muted-foreground *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 dark:hover:bg-input/50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon\n render={<ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />}\n />\n </SelectPrimitive.Trigger>\n )\n}\n\nfunction SelectContent({\n className,\n children,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n alignItemWithTrigger = true,\n ...props\n}: SelectPrimitive.Popup.Props &\n Pick<\n SelectPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\" | \"alignItemWithTrigger\"\n >) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n alignItemWithTrigger={alignItemWithTrigger}\n className=\"isolate z-50\"\n >\n <SelectPrimitive.Popup\n data-slot=\"select-content\"\n data-align-trigger={alignItemWithTrigger}\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 cn-menu-target relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-y-auto overflow-x-hidden rounded-lg border border-border-light bg-popover text-popover-foreground shadow-lg duration-100 data-[align-trigger=true]:animate-none data-closed:animate-out data-open:animate-in\",\n className,\n )}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.List>{children}</SelectPrimitive.List>\n <SelectScrollDownButton />\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n )\n}\n\nfunction SelectLabel({ className, ...props }: SelectPrimitive.GroupLabel.Props) {\n return (\n <SelectPrimitive.GroupLabel\n data-slot=\"select-label\"\n className={cn(\"px-2 py-1.5 text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectItem({ className, children, ...props }: SelectPrimitive.Item.Props) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className,\n )}\n {...props}\n >\n <SelectPrimitive.ItemText className=\"flex flex-1 shrink-0 gap-2 whitespace-nowrap\">\n {children}\n </SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n )\n}\n\nfunction SelectSeparator({ className, ...props }: SelectPrimitive.Separator.Props) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"pointer-events-none -mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>) {\n return (\n <SelectPrimitive.ScrollUpArrow\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronUpIcon />\n </SelectPrimitive.ScrollUpArrow>\n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>) {\n return (\n <SelectPrimitive.ScrollDownArrow\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <ChevronDownIcon />\n </SelectPrimitive.ScrollDownArrow>\n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n","\"use client\"\n\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Table({ className, ...props }: React.ComponentProps<\"table\">) {\n return (\n <div data-slot=\"table-container\" className=\"relative w-full overflow-x-auto\">\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return <thead data-slot=\"table-header\" className={cn(\"[&_tr]:border-b\", className)} {...props} />\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"h-10 whitespace-nowrap px-2 text-left align-middle font-medium text-foreground [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\"whitespace-nowrap p-2 align-middle [&:has([role=checkbox])]:pr-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableCaption({ className, ...props }: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"mt-4 text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption }\n","\"use client\"\n\nimport {\n type Column,\n type ColumnDef,\n type ColumnFiltersState,\n flexRender,\n getCoreRowModel,\n getFacetedRowModel,\n getFacetedUniqueValues,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type Row,\n type RowSelectionState,\n type SortingState,\n type Table as TableInstance,\n useReactTable,\n type VisibilityState,\n} from \"@tanstack/react-table\"\nimport { useVirtualizer } from \"@tanstack/react-virtual\"\nimport {\n ArrowDown,\n ArrowUp,\n ChevronLeft,\n ChevronRight,\n ChevronsLeft,\n ChevronsRight,\n ChevronsUpDown,\n PlusCircle,\n Settings2,\n} from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Badge } from \"./badge\"\nimport { Button } from \"./button\"\nimport { Checkbox } from \"./checkbox\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n} from \"./command\"\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"./dropdown-menu\"\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover\"\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"./select\"\nimport { Separator } from \"./separator\"\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from \"./table\"\n\n/* ────────────────────────────────────────────────────────────────────────────\n * useDataTable hook\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype UseDataTableOptions<TData> = {\n data: TData[]\n columns: ColumnDef<TData, unknown>[]\n getRowId?: (row: TData) => string\n initialSorting?: SortingState\n initialGlobalFilter?: string\n initialFilters?: ColumnFiltersState\n initialVisibility?: VisibilityState\n initialSelection?: RowSelectionState\n enableRowSelection?: boolean\n enablePagination?: boolean\n}\n\nfunction useDataTable<TData>(options: UseDataTableOptions<TData>) {\n const {\n data,\n columns,\n getRowId,\n initialSorting = [],\n initialFilters = [],\n initialGlobalFilter = \"\",\n initialVisibility = {},\n initialSelection = {},\n enableRowSelection = true,\n enablePagination = true,\n } = options\n\n const [sorting, setSorting] = React.useState<SortingState>(initialSorting)\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>(initialFilters)\n const [globalFilter, setGlobalFilter] = React.useState<string>(initialGlobalFilter)\n const [columnVisibility, setColumnVisibility] = React.useState<VisibilityState>(initialVisibility)\n const [rowSelection, setRowSelection] = React.useState<RowSelectionState>(initialSelection)\n\n // Memoize row-model factories so they are stable across renders\n const paginationRowModel = React.useMemo(\n () => (enablePagination ? getPaginationRowModel<TData>() : undefined),\n [enablePagination],\n )\n\n // Guard against pre-mount state updates from tanstack's pagination init.\n // We buffer setState calls until after mount so React doesn't warn about\n // \"state update on a component that hasn't mounted yet\".\n const mountedRef = React.useRef(false)\n React.useEffect(() => {\n mountedRef.current = true\n }, [])\n\n const safeSorting = React.useCallback(\n (updater: SortingState | ((prev: SortingState) => SortingState)) => {\n if (mountedRef.current) setSorting(updater)\n },\n [],\n )\n const safeColumnFilters = React.useCallback(\n (updater: ColumnFiltersState | ((prev: ColumnFiltersState) => ColumnFiltersState)) => {\n if (mountedRef.current) setColumnFilters(updater)\n },\n [],\n )\n const safeRowSelection = React.useCallback(\n (updater: RowSelectionState | ((prev: RowSelectionState) => RowSelectionState)) => {\n if (mountedRef.current) setRowSelection(updater)\n },\n [],\n )\n const safeGlobalFilter = React.useCallback((updater: string | ((prev: string) => string)) => {\n if (mountedRef.current) setGlobalFilter(updater)\n }, [])\n const safeColumnVisibility = React.useCallback(\n (updater: VisibilityState | ((prev: VisibilityState) => VisibilityState)) => {\n if (mountedRef.current) setColumnVisibility(updater)\n },\n [],\n )\n\n const table = useReactTable({\n data,\n columns,\n getRowId,\n state: {\n sorting,\n columnFilters,\n globalFilter,\n columnVisibility,\n rowSelection,\n },\n onSortingChange: safeSorting,\n onColumnFiltersChange: safeColumnFilters,\n onRowSelectionChange: safeRowSelection,\n onGlobalFilterChange: safeGlobalFilter,\n onColumnVisibilityChange: safeColumnVisibility,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n ...(paginationRowModel && { getPaginationRowModel: paginationRowModel }),\n getFacetedRowModel: getFacetedRowModel(),\n getFacetedUniqueValues: getFacetedUniqueValues(),\n enableRowSelection,\n autoResetPageIndex: false,\n })\n\n return {\n table,\n columnFilters,\n setColumnFilters,\n sorting,\n setSorting,\n globalFilter,\n setGlobalFilter,\n columnVisibility,\n setColumnVisibility,\n rowSelection,\n setRowSelection,\n }\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DataTable — main renderer\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DataTableProps<TData> = {\n table: TableInstance<TData>\n columns: ColumnDef<TData, unknown>[]\n className?: string\n /** Enable virtual scrolling for large datasets */\n virtual?: boolean\n /** Fixed height for the virtual scroll container (default: 400) */\n virtualHeight?: number\n /** Estimated row height for virtualizer (default: 48) */\n estimateSize?: number\n /** Render function for empty state */\n emptyState?: React.ReactNode\n /** Callback when a row is clicked */\n onRowClick?: (row: TData) => void\n}\n\nfunction DataTable<TData>({\n table,\n columns,\n className,\n virtual = false,\n virtualHeight = 400,\n estimateSize = 48,\n emptyState,\n onRowClick,\n}: DataTableProps<TData>) {\n const { rows } = table.getRowModel()\n\n if (virtual) {\n return (\n <DataTableVirtual\n table={table}\n columns={columns}\n className={className}\n virtualHeight={virtualHeight}\n estimateSize={estimateSize}\n emptyState={emptyState}\n />\n )\n }\n\n return (\n <div data-slot=\"data-table\" className={cn(\"overflow-x-auto rounded-md border\", className)}>\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead key={header.id}>\n {header.isPlaceholder\n ? null\n : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {rows.length ? (\n rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n className={onRowClick ? \"cursor-pointer\" : undefined}\n onClick={onRowClick ? () => onRowClick(row.original) : undefined}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className=\"h-24 text-center\">\n {emptyState ?? \"No results.\"}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DataTableVirtual — virtualized renderer\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DataTableVirtualProps<TData> = {\n table: TableInstance<TData>\n columns: ColumnDef<TData, unknown>[]\n className?: string\n virtualHeight: number\n estimateSize: number\n emptyState?: React.ReactNode\n}\n\nfunction DataTableVirtual<TData>({\n table,\n columns,\n className,\n virtualHeight,\n estimateSize,\n emptyState,\n}: DataTableVirtualProps<TData>) {\n const { rows } = table.getRowModel()\n const parentRef = React.useRef<HTMLDivElement>(null)\n\n const virtualizer = useVirtualizer({\n count: rows.length,\n getScrollElement: () => parentRef.current,\n estimateSize: () => estimateSize,\n overscan: 10,\n })\n\n return (\n <div data-slot=\"data-table\" className={cn(\"overflow-x-auto rounded-md border\", className)}>\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead key={header.id}>\n {header.isPlaceholder\n ? null\n : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n </Table>\n <div ref={parentRef} className=\"overflow-auto\" style={{ height: virtualHeight }}>\n <Table>\n <TableBody>\n {rows.length ? (\n <>\n <tr style={{ height: virtualizer.getVirtualItems()[0]?.start ?? 0 }} />\n {virtualizer.getVirtualItems().map((virtualRow) => {\n const row = rows[virtualRow.index] as Row<TData>\n return (\n <TableRow\n key={row.id}\n data-index={virtualRow.index}\n ref={(node) => virtualizer.measureElement(node)}\n data-state={row.getIsSelected() && \"selected\"}\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n )\n })}\n <tr\n style={{\n height:\n virtualizer.getTotalSize() - (virtualizer.getVirtualItems().at(-1)?.end ?? 0),\n }}\n />\n </>\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className=\"h-24 text-center\">\n {emptyState ?? \"No results.\"}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n </div>\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DataTableColumnHeader — sortable header\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DataTableColumnHeaderProps<TData, TValue> = {\n column: Column<TData, TValue>\n title: string\n className?: string\n}\n\nfunction DataTableColumnHeader<TData, TValue>({\n column,\n title,\n className,\n}: DataTableColumnHeaderProps<TData, TValue>) {\n const canSort = column.getCanSort()\n const sorted = column.getIsSorted()\n\n if (!canSort) {\n return (\n <span className={cn(\"flex h-8 items-center font-medium text-foreground text-sm\", className)}>\n {title}\n </span>\n )\n }\n\n return (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={cn(\n \"flex h-8 items-center gap-2 px-0 font-medium text-foreground text-sm\",\n className,\n )}\n onClick={() => column.toggleSorting(sorted === \"asc\")}\n >\n <span>{title}</span>\n {sorted === \"desc\" ? (\n <ArrowDown className=\"size-4\" />\n ) : sorted === \"asc\" ? (\n <ArrowUp className=\"size-4\" />\n ) : (\n <ChevronsUpDown className=\"size-4 opacity-50\" />\n )}\n </Button>\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DataTablePagination\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DataTablePaginationProps<TData> = {\n table: TableInstance<TData>\n pageSizeOptions?: number[]\n className?: string\n}\n\nfunction DataTablePagination<TData>({\n table,\n pageSizeOptions = [10, 20, 30, 40, 50],\n className,\n}: DataTablePaginationProps<TData>) {\n const currentPage = table.getState().pagination.pageIndex\n const pageSize = table.getState().pagination.pageSize\n const totalRows = table.getFilteredRowModel().rows.length\n const pageCount = table.getPageCount()\n\n const startRow = currentPage * pageSize + 1\n const endRow = Math.min((currentPage + 1) * pageSize, totalRows)\n\n const relevantPageSizes = pageSizeOptions.filter((size) => size <= totalRows || size === pageSize)\n\n return (\n <div\n data-slot=\"data-table-pagination\"\n className={cn(\"flex items-center justify-between gap-2 px-2 py-4\", className)}\n >\n <div className=\"text-muted-foreground text-sm\">\n <span className=\"font-medium\">\n {totalRows === 0 ? (\n \"No results\"\n ) : (\n <>\n <span className=\"lg:hidden\">\n {startRow}–{endRow} of {totalRows}\n </span>\n <span className=\"hidden lg:inline\">\n Showing {startRow} to {endRow} of {totalRows} {totalRows === 1 ? \"row\" : \"rows\"}\n </span>\n </>\n )}\n </span>\n </div>\n\n <div className=\"flex items-center gap-2 lg:gap-6\">\n <div className=\"hidden items-center gap-2 lg:flex\">\n <p className=\"whitespace-nowrap font-medium text-sm\">Rows per page</p>\n <Select\n value={`${pageSize}`}\n onValueChange={(value) => {\n if (value) table.setPageSize(Number(value))\n }}\n disabled={totalRows === 0}\n >\n <SelectTrigger className=\"h-8 w-[70px]\" aria-label=\"Rows per page\">\n <SelectValue placeholder={`${pageSize}`} />\n </SelectTrigger>\n <SelectContent side=\"top\">\n {relevantPageSizes.map((size) => (\n <SelectItem key={size} value={`${size}`}>\n {size}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n\n <div className=\"flex items-center gap-2\">\n <div className=\"hidden whitespace-nowrap font-medium text-sm lg:block\">\n Page {currentPage + 1} of {pageCount}\n </div>\n\n <div className=\"flex items-center gap-1\">\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"hidden size-8 xl:flex\"\n onClick={() => table.setPageIndex(0)}\n disabled={currentPage === 0 || totalRows === 0}\n aria-label=\"Go to first page\"\n >\n <ChevronsLeft className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"size-8\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n aria-label=\"Go to previous page\"\n >\n <ChevronLeft className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"size-8\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n aria-label=\"Go to next page\"\n >\n <ChevronRight className=\"size-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"hidden size-8 xl:flex\"\n onClick={() => table.setPageIndex(pageCount - 1)}\n disabled={currentPage === pageCount - 1 || totalRows === 0}\n aria-label=\"Go to last page\"\n >\n <ChevronsRight className=\"size-4\" />\n </Button>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DataTableViewOptions — column visibility toggle\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DataTableViewOptionsProps<TData> = {\n table: TableInstance<TData>\n className?: string\n}\n\nfunction DataTableViewOptions<TData>({ table, className }: DataTableViewOptionsProps<TData>) {\n const columns = table.getAllColumns().filter((column) => column.getCanHide())\n const hiddenCount = columns.filter((col) => !col.getIsVisible()).length\n const hasHiddenColumns = hiddenCount > 0\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger\n render={<Button variant=\"outline\" size=\"sm\" className={cn(\"h-8 gap-2\", className)} />}\n >\n <Settings2 className=\"size-4\" />\n <span className=\"hidden sm:inline\">View</span>\n {hasHiddenColumns && (\n <Badge variant=\"secondary\" className=\"ml-1 size-5 rounded-full p-0 text-xs\">\n {hiddenCount}\n </Badge>\n )}\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-[200px]\">\n <DropdownMenuLabel className=\"flex items-center justify-between\">\n <span>Toggle columns</span>\n {hasHiddenColumns && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => table.resetColumnVisibility()}\n className=\"h-auto p-1 text-xs\"\n >\n Reset\n </Button>\n )}\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n {columns.length === 0 ? (\n <div className=\"px-2 py-4 text-center text-muted-foreground text-sm\">\n No columns available\n </div>\n ) : (\n columns.map((column) => {\n const label =\n (column.columnDef.meta as { label?: string })?.label ||\n column.id.charAt(0).toUpperCase() + column.id.slice(1).replace(/([A-Z])/g, \" $1\")\n\n return (\n <DropdownMenuCheckboxItem\n key={column.id}\n checked={column.getIsVisible()}\n onCheckedChange={(value) => column.toggleVisibility(!!value)}\n className=\"capitalize\"\n >\n {label}\n </DropdownMenuCheckboxItem>\n )\n })\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DataTableFacetedFilter\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DataTableFacetedFilterOption = {\n label: string\n value: string\n icon?: React.ComponentType<{ className?: string }>\n}\n\ntype DataTableFacetedFilterProps<TData, TValue> = {\n column?: Column<TData, TValue>\n title?: string\n options: DataTableFacetedFilterOption[]\n className?: string\n}\n\nfunction DataTableFacetedFilter<TData, TValue>({\n column,\n title,\n options,\n className,\n}: DataTableFacetedFilterProps<TData, TValue>) {\n const facets = column?.getFacetedUniqueValues()\n const selectedValues = new Set(column?.getFilterValue() as string[])\n\n return (\n <Popover>\n <PopoverTrigger\n render={\n <Button variant=\"outline\" size=\"sm\" className={cn(\"h-8 border-dashed\", className)} />\n }\n >\n <PlusCircle />\n {title}\n {selectedValues?.size > 0 && (\n <>\n <Separator orientation=\"vertical\" className=\"mx-2 h-4\" />\n <Badge variant=\"secondary\" className=\"rounded-sm px-1 font-normal lg:hidden\">\n {selectedValues.size}\n </Badge>\n <div className=\"hidden gap-1 lg:flex\">\n {selectedValues.size > 2 ? (\n <Badge variant=\"secondary\" className=\"rounded-sm px-1 font-normal\">\n {selectedValues.size} selected\n </Badge>\n ) : (\n options\n .filter((option) => selectedValues.has(option.value))\n .map((option) => (\n <Badge\n variant=\"secondary\"\n key={option.value}\n className=\"rounded-sm px-1 font-normal\"\n >\n {option.label}\n </Badge>\n ))\n )}\n </div>\n </>\n )}\n </PopoverTrigger>\n <PopoverContent className=\"w-[200px] p-0\" align=\"start\" autoFocus={false}>\n <Command>\n <CommandInput placeholder={title} />\n <CommandList>\n <CommandEmpty>No results found.</CommandEmpty>\n <CommandGroup>\n {options.map((option) => {\n const isSelected = selectedValues.has(option.value)\n return (\n <CommandItem\n key={option.value}\n onSelect={() => {\n if (isSelected) {\n selectedValues.delete(option.value)\n } else {\n selectedValues.add(option.value)\n }\n const filterValues = Array.from(selectedValues)\n column?.setFilterValue(filterValues.length ? filterValues : undefined)\n }}\n >\n <Checkbox\n checked={isSelected}\n className=\"pointer-events-none\"\n tabIndex={-1}\n aria-hidden\n />\n {option.icon && <option.icon className=\"size-4 text-muted-foreground\" />}\n <span>{option.label}</span>\n {facets?.get(option.value) && (\n <span className=\"ml-auto flex size-4 items-center justify-center font-mono text-muted-foreground text-xs\">\n {facets.get(option.value)}\n </span>\n )}\n </CommandItem>\n )\n })}\n </CommandGroup>\n {selectedValues.size > 0 && (\n <>\n <CommandSeparator />\n <CommandGroup>\n <CommandItem\n onSelect={() => column?.setFilterValue(undefined)}\n className=\"justify-center text-center\"\n >\n Clear filters\n </CommandItem>\n </CommandGroup>\n </>\n )}\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DataTableToolbar\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DataTableToolbarProps<TData> = React.ComponentProps<\"div\"> & {\n table: TableInstance<TData>\n showViewOptions?: boolean\n}\n\nfunction DataTableToolbar<TData>({\n table,\n children,\n className,\n showViewOptions = true,\n ...props\n}: DataTableToolbarProps<TData>) {\n return (\n <div\n data-slot=\"data-table-toolbar\"\n className={cn(\n \"flex flex-col gap-2 py-4 sm:flex-row sm:items-center sm:justify-between\",\n className,\n )}\n {...props}\n >\n <div className=\"flex flex-1 flex-wrap items-center gap-2\">{children}</div>\n <div className=\"mb-auto flex sm:mb-0 sm:items-center\">\n {showViewOptions && <DataTableViewOptions table={table} />}\n </div>\n </div>\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * Exports\n * ──────────────────────────────────────────────────────────────────────────── */\n\nexport {\n DataTable,\n DataTableColumnHeader,\n DataTableFacetedFilter,\n DataTablePagination,\n DataTableToolbar,\n DataTableViewOptions,\n useDataTable,\n}\n\nexport type {\n DataTableColumnHeaderProps,\n DataTableFacetedFilterOption,\n DataTableFacetedFilterProps,\n DataTablePaginationProps,\n DataTableProps,\n DataTableToolbarProps,\n DataTableViewOptionsProps,\n UseDataTableOptions,\n}\n\n// Re-export TanStack types consumers will need for column definitions\nexport type {\n ColumnDef,\n ColumnFiltersState,\n RowSelectionState,\n SortingState,\n VisibilityState,\n} from \"@tanstack/react-table\"\n","\"use client\"\n\nimport { addDays, format } from \"date-fns\"\nimport { CalendarIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport type { DateRange } from \"react-day-picker\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\nimport { Calendar } from \"./calendar\"\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover\"\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from \"./select\"\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DatePicker — single date\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DatePickerPreset = {\n label: string\n /** Number of days from today (0 = today, 1 = tomorrow, -7 = a week ago) */\n days: number\n}\n\ntype DatePickerProps = {\n /** Currently selected date */\n value?: Date\n /** Callback when date changes */\n onChange?: (date: Date | undefined) => void\n /** Placeholder text when no date selected */\n placeholder?: string\n /** Date format string (date-fns format) */\n dateFormat?: string\n /** Preset quick-select options */\n presets?: DatePickerPreset[]\n /** Alignment of the popover */\n align?: \"start\" | \"center\" | \"end\"\n /** Additional className for the trigger button */\n className?: string\n /** Disabled state */\n disabled?: boolean\n /** Props forwarded to the Calendar */\n calendarProps?: Omit<React.ComponentProps<typeof Calendar>, \"mode\" | \"selected\" | \"onSelect\">\n}\n\nfunction DatePicker({\n value,\n onChange,\n placeholder = \"Pick a date\",\n dateFormat = \"PPP\",\n presets,\n align = \"start\",\n className,\n disabled,\n calendarProps,\n}: DatePickerProps) {\n return (\n <Popover>\n <PopoverTrigger\n render={\n <Button\n variant=\"outline\"\n disabled={disabled}\n className={cn(\n \"w-[240px] justify-start text-left font-normal\",\n !value && \"text-muted-foreground\",\n className,\n )}\n />\n }\n >\n <CalendarIcon className=\"size-4\" />\n {value ? format(value, dateFormat) : <span>{placeholder}</span>}\n </PopoverTrigger>\n <PopoverContent\n align={align}\n className={cn(\"w-auto p-0\", presets && \"flex flex-col space-y-2 p-2\")}\n >\n {presets && (\n <Select\n onValueChange={(v: string | null) => {\n if (v) onChange?.(addDays(new Date(), Number.parseInt(v, 10)))\n }}\n >\n <SelectTrigger>\n <SelectValue placeholder=\"Select\" />\n </SelectTrigger>\n <SelectContent>\n {presets.map((preset) => (\n <SelectItem key={preset.days} value={`${preset.days}`}>\n {preset.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n )}\n <div className={cn(presets && \"rounded-md border\")}>\n <Calendar mode=\"single\" selected={value} onSelect={onChange} {...calendarProps} />\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * DateRangePicker\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype DateRangePickerProps = {\n /** Currently selected date range */\n value?: DateRange\n /** Callback when range changes */\n onChange?: (range: DateRange | undefined) => void\n /** Placeholder text when no date selected */\n placeholder?: string\n /** Date format string (date-fns format) */\n dateFormat?: string\n /** Number of months to display (default: 2) */\n numberOfMonths?: number\n /** Alignment of the popover */\n align?: \"start\" | \"center\" | \"end\"\n /** Additional className for the trigger button */\n className?: string\n /** Disabled state */\n disabled?: boolean\n /** Props forwarded to the Calendar */\n calendarProps?: Omit<\n React.ComponentProps<typeof Calendar>,\n \"mode\" | \"selected\" | \"onSelect\" | \"numberOfMonths\"\n >\n}\n\nfunction DateRangePicker({\n value,\n onChange,\n placeholder = \"Pick a date\",\n dateFormat = \"LLL dd, y\",\n numberOfMonths = 2,\n align = \"start\",\n className,\n disabled,\n calendarProps,\n}: DateRangePickerProps) {\n return (\n <Popover>\n <PopoverTrigger\n render={\n <Button\n variant=\"outline\"\n disabled={disabled}\n className={cn(\n \"w-[300px] justify-start text-left font-normal\",\n !value && \"text-muted-foreground\",\n className,\n )}\n />\n }\n >\n <CalendarIcon className=\"size-4\" />\n {value?.from ? (\n value.to ? (\n <>\n {format(value.from, dateFormat)} – {format(value.to, dateFormat)}\n </>\n ) : (\n format(value.from, dateFormat)\n )\n ) : (\n <span>{placeholder}</span>\n )}\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align={align}>\n <Calendar\n mode=\"range\"\n defaultMonth={value?.from}\n selected={value}\n onSelect={onChange}\n numberOfMonths={numberOfMonths}\n {...calendarProps}\n />\n </PopoverContent>\n </Popover>\n )\n}\n\nexport { DatePicker, DateRangePicker }\nexport type { DatePickerPreset, DatePickerProps, DateRangePickerProps }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype Urgency = \"normal\" | \"warning\" | \"critical\" | \"overdue\"\n\nconst deadlineCountdownVariants = cva(\"inline-flex items-center gap-1.5 text-sm font-medium\", {\n variants: {\n urgency: {\n normal: \"text-muted-foreground\",\n warning: \"text-amber-600 dark:text-amber-400\",\n critical: \"text-red-600 dark:text-red-400\",\n overdue: \"text-destructive\",\n },\n },\n defaultVariants: {\n urgency: \"normal\",\n },\n})\n\ntype DeadlineCountdownProps = Omit<React.ComponentProps<\"span\">, \"children\"> &\n Omit<VariantProps<typeof deadlineCountdownVariants>, \"urgency\"> & {\n /** The deadline date */\n deadline: Date\n /** Override auto-detected urgency */\n urgency?: Urgency\n /** Days threshold for \"warning\" state. Defaults to 7. */\n warningDays?: number\n /** Days threshold for \"critical\" state. Defaults to 2. */\n criticalDays?: number\n /** Optional label prefix (e.g. \"Due in\") */\n label?: string\n /** Whether to show the dot indicator. Defaults to true. */\n showDot?: boolean\n }\n\nfunction getAutoUrgency(deadline: Date, warningDays: number, criticalDays: number): Urgency {\n const now = new Date()\n const diff = deadline.getTime() - now.getTime()\n const days = diff / (1000 * 60 * 60 * 24)\n\n if (days < 0) return \"overdue\"\n if (days <= criticalDays) return \"critical\"\n if (days <= warningDays) return \"warning\"\n return \"normal\"\n}\n\nfunction formatTimeRemaining(deadline: Date): string {\n const now = new Date()\n const diff = deadline.getTime() - now.getTime()\n\n if (diff < 0) {\n const absDiff = Math.abs(diff)\n const days = Math.floor(absDiff / (1000 * 60 * 60 * 24))\n if (days > 0) return `${days}d overdue`\n const hours = Math.floor(absDiff / (1000 * 60 * 60))\n if (hours > 0) return `${hours}h overdue`\n return \"Just overdue\"\n }\n\n const days = Math.floor(diff / (1000 * 60 * 60 * 24))\n const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60))\n\n if (days > 0) return `${days}d ${hours}h`\n if (hours > 0) return `${hours}h`\n const mins = Math.floor(diff / (1000 * 60))\n return `${mins}m`\n}\n\nconst dotColors: Record<Urgency, string> = {\n normal: \"bg-muted-foreground/40\",\n warning: \"bg-amber-500\",\n critical: \"bg-red-500 animate-pulse\",\n overdue: \"bg-destructive animate-pulse\",\n}\n\nfunction DeadlineCountdown({\n deadline,\n urgency: urgencyOverride,\n warningDays = 7,\n criticalDays = 2,\n label,\n showDot = true,\n className,\n ...props\n}: DeadlineCountdownProps) {\n const urgency = urgencyOverride ?? getAutoUrgency(deadline, warningDays, criticalDays)\n const timeText = formatTimeRemaining(deadline)\n\n return (\n <span\n data-slot=\"deadline-countdown\"\n className={cn(deadlineCountdownVariants({ urgency }), className)}\n {...props}\n >\n {showDot && <span className={cn(\"size-2 shrink-0 rounded-full\", dotColors[urgency])} />}\n {label && <span>{label}</span>}\n <span>{timeText}</span>\n </span>\n )\n}\n\nexport { DeadlineCountdown, deadlineCountdownVariants }\nexport type { DeadlineCountdownProps, Urgency }\n","import type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction DescriptionList({ className, ...props }: React.ComponentProps<\"dl\">) {\n return (\n <dl\n data-slot=\"description-list\"\n className={cn(\"divide-y divide-border\", className)}\n {...props}\n />\n )\n}\n\nfunction DescriptionListItem({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"description-list-item\"\n className={cn(\"flex flex-col gap-1 py-3 sm:flex-row sm:gap-4\", className)}\n {...props}\n />\n )\n}\n\nfunction DescriptionListTerm({ className, ...props }: React.ComponentProps<\"dt\">) {\n return (\n <dt\n data-slot=\"description-list-term\"\n className={cn(\"font-medium text-muted-foreground text-sm sm:w-40 sm:shrink-0\", className)}\n {...props}\n />\n )\n}\n\nfunction DescriptionListDetail({ className, ...props }: React.ComponentProps<\"dd\">) {\n return <dd data-slot=\"description-list-detail\" className={cn(\"text-sm\", className)} {...props} />\n}\n\nexport { DescriptionList, DescriptionListItem, DescriptionListTerm, DescriptionListDetail }\n","\"use client\"\n\nimport type * as React from \"react\"\nimport { Drawer as DrawerPrimitive } from \"vaul\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Drawer({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return <DrawerPrimitive.Root data-slot=\"drawer\" {...props} />\n}\n\nfunction DrawerTrigger({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />\n}\n\nfunction DrawerPortal({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Portal>) {\n return <DrawerPrimitive.Portal data-slot=\"drawer-portal\" {...props} />\n}\n\nfunction DrawerClose({ ...props }: React.ComponentProps<typeof DrawerPrimitive.Close>) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />\n}\n\nfunction DrawerOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {\n return (\n <DrawerPrimitive.Overlay\n data-slot=\"drawer-overlay\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 z-50 bg-black/10 data-closed:animate-out data-open:animate-in supports-backdrop-filter:backdrop-blur-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DrawerContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Content>) {\n return (\n <DrawerPortal data-slot=\"drawer-portal\">\n <DrawerOverlay />\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(\n \"group/drawer-content fixed z-50 flex h-auto flex-col bg-background text-sm data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=bottom]:rounded-t-xl data-[vaul-drawer-direction=left]:rounded-r-xl data-[vaul-drawer-direction=top]:rounded-b-xl data-[vaul-drawer-direction=right]:rounded-l-xl data-[vaul-drawer-direction=bottom]:border-t data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=top]:border-b data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm\",\n className,\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 hidden h-1.5 w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n )\n}\n\nfunction DrawerHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n \"flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction DrawerTitle({ className, ...props }: React.ComponentProps<typeof DrawerPrimitive.Title>) {\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn(\"font-medium text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction DrawerDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Description>) {\n return (\n <DrawerPrimitive.Description\n data-slot=\"drawer-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n}\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Empty({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n \"flex w-full min-w-0 flex-1 flex-col items-center justify-center gap-4 text-balance rounded-lg border-dashed p-12 text-center\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-header\"\n className={cn(\"flex max-w-sm flex-col items-center gap-2\", className)}\n {...props}\n />\n )\n}\n\nconst emptyMediaVariants = cva(\n \"mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n)\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof emptyMediaVariants>) {\n return (\n <div\n data-slot=\"empty-icon\"\n data-variant={variant}\n className={cn(emptyMediaVariants({ variant, className }))}\n {...props}\n />\n )\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-title\"\n className={cn(\"font-medium text-lg tracking-tight\", className)}\n {...props}\n />\n )\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <div\n data-slot=\"empty-description\"\n className={cn(\n \"text-muted-foreground text-sm/relaxed [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(\n \"flex w-full min-w-0 max-w-sm flex-col items-center gap-4 text-balance text-sm\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Empty, EmptyHeader, EmptyTitle, EmptyDescription, EmptyContent, EmptyMedia }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport type { ReactNode } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\n/* ── Meta item type ── */\n\ninterface EntityHeaderMeta {\n icon?: ReactNode\n text: string\n href?: string\n external?: boolean\n}\n\n/* ── Variants ── */\n\nconst headerVariants = cva(\"flex flex-col gap-4\", {\n variants: {\n size: {\n sm: \"\",\n default: \"\",\n lg: \"\",\n },\n },\n defaultVariants: { size: \"default\" },\n})\n\nconst avatarVariants = cva(\"shrink-0 rounded-lg object-contain\", {\n variants: {\n size: {\n sm: \"size-8\",\n default: \"size-12\",\n lg: \"size-16\",\n },\n },\n defaultVariants: { size: \"default\" },\n})\n\nconst fallbackVariants = cva(\n \"flex shrink-0 items-center justify-center rounded-lg bg-muted font-medium text-muted-foreground\",\n {\n variants: {\n size: {\n sm: \"size-8 text-sm\",\n default: \"size-12 text-lg\",\n lg: \"size-16 text-2xl\",\n },\n },\n defaultVariants: { size: \"default\" },\n },\n)\n\nconst nameVariants = cva(\"font-medium leading-none tracking-tight\", {\n variants: {\n size: {\n sm: \"text-xl\",\n default: \"text-2xl md:text-3xl\",\n lg: \"text-3xl md:text-4xl\",\n },\n },\n defaultVariants: { size: \"default\" },\n})\n\n/* ── Props ── */\n\ntype EntityHeaderProps = React.ComponentProps<\"div\"> &\n VariantProps<typeof headerVariants> & {\n name: string\n subtitle?: string\n logoUrl?: string | null\n emoji?: ReactNode\n description?: string\n meta?: EntityHeaderMeta[]\n rightCol?: ReactNode\n }\n\n/* ── Component ── */\n\nfunction EntityHeader({\n name,\n subtitle,\n logoUrl,\n emoji,\n description,\n meta,\n rightCol,\n children,\n size,\n className,\n ...props\n}: EntityHeaderProps) {\n return (\n <div data-slot=\"entity-header\" className={cn(headerVariants({ size }), className)} {...props}>\n <div className=\"flex flex-col gap-4 md:flex-row md:items-start md:justify-between\">\n {/* Left: avatar + name + meta */}\n <div className=\"flex min-w-0 flex-1 items-start gap-4\">\n {/* Avatar */}\n {emoji ? (\n <div\n data-slot=\"entity-header-avatar\"\n className={cn(fallbackVariants({ size }), \"border border-border bg-transparent\")}\n >\n {emoji}\n </div>\n ) : logoUrl ? (\n <img\n src={logoUrl}\n alt={`${name} logo`}\n data-slot=\"entity-header-avatar\"\n className={avatarVariants({ size })}\n />\n ) : (\n <div data-slot=\"entity-header-avatar\" className={fallbackVariants({ size })}>\n {name.charAt(0)}\n </div>\n )}\n\n <div className=\"flex min-w-0 flex-col gap-y-1.5 pt-1\">\n <h1 data-slot=\"entity-header-name\" className={nameVariants({ size })}>\n {name}\n </h1>\n\n {subtitle && (\n <p data-slot=\"entity-header-subtitle\" className=\"text-muted-foreground text-sm\">\n {subtitle}\n </p>\n )}\n\n {meta && meta.length > 0 && (\n <div\n data-slot=\"entity-header-meta\"\n className=\"mt-0.5 flex flex-wrap items-center gap-x-4 gap-y-1 text-muted-foreground text-xs\"\n >\n {meta.map((item) => {\n if (item.href) {\n return (\n <a\n key={item.text}\n href={item.href}\n className=\"flex items-center gap-1.5 transition-colors hover:text-foreground\"\n {...(item.external && {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n })}\n >\n {item.icon && <span className=\"text-base leading-none\">{item.icon}</span>}\n {item.text}\n </a>\n )\n }\n\n return (\n <span key={item.text} className=\"flex items-center gap-1.5\">\n {item.icon && <span className=\"text-base leading-none\">{item.icon}</span>}\n {item.text}\n </span>\n )\n })}\n </div>\n )}\n </div>\n </div>\n\n {/* Right column */}\n {rightCol && <div className=\"w-full shrink-0 md:w-auto\">{rightCol}</div>}\n </div>\n\n {/* Description */}\n {description && (\n <p\n data-slot=\"entity-header-description\"\n className=\"max-w-3xl text-base text-muted-foreground md:text-lg\"\n >\n {description}\n </p>\n )}\n\n {/* Children */}\n {children}\n </div>\n )\n}\n\nexport { EntityHeader, headerVariants as entityHeaderVariants }\nexport type { EntityHeaderProps, EntityHeaderMeta }\n","\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { useMemo } from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Label } from \"./label\"\nimport { Separator } from \"./separator\"\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n \"flex flex-col gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction FieldLegend({\n className,\n variant = \"legend\",\n ...props\n}: React.ComponentProps<\"legend\"> & { variant?: \"legend\" | \"label\" }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n \"mb-3 font-medium data-[variant=label]:text-sm data-[variant=legend]:text-base\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n \"group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nconst fieldVariants = cva(\"data-[invalid=true]:text-destructive gap-3 group/field flex w-full\", {\n variants: {\n orientation: {\n vertical: \"flex-col *:w-full [&>.sr-only]:w-auto\",\n horizontal:\n \"flex-row items-center *:data-[slot=field-label]:flex-auto has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n responsive:\n \"flex-col *:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto @md/field-group:*:data-[slot=field-label]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px\",\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n})\n\nfunction Field({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\"group/field-content flex flex-1 flex-col gap-1 leading-snug\", className)}\n {...props}\n />\n )\n}\n\nfunction FieldLabel({ className, ...props }: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n \"group/field-label peer/field-label flex w-fit gap-2 leading-snug has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border has-data-checked:border-primary/30 has-data-checked:bg-primary/5 *:data-[slot=field]:p-3 group-data-[disabled=true]/field:opacity-50 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10\",\n \"has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n \"flex w-fit items-center gap-2 font-medium text-sm leading-snug group-data-[disabled=true]/field:opacity-50\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n \"text-left font-normal text-muted-foreground text-sm leading-normal group-has-data-horizontal/field:text-balance [[data-variant=legend]+&]:-mt-1.5\",\n \"nth-last-2:-mt-1 last:mt-0\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n children?: React.ReactNode\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n \"relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2\",\n className,\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"relative mx-auto block w-fit bg-background px-2 text-muted-foreground\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n )\n}\n\ntype FieldErrorItem = string | { message?: string } | undefined\n\nfunction normalizeError(error: FieldErrorItem): string | undefined {\n if (!error) return undefined\n if (typeof error === \"string\") return error\n return error.message\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<\"div\"> & {\n errors?: FieldErrorItem[]\n}) {\n const content = useMemo(() => {\n if (children) {\n return children\n }\n\n if (!errors?.length) {\n return null\n }\n\n const messages = errors.map(normalizeError).filter(Boolean) as string[]\n const unique = [...new Set(messages)]\n\n if (unique.length === 1) {\n return unique[0]\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {unique.map((msg, index) => (\n <li key={index}>{msg}</li>\n ))}\n </ul>\n )\n }, [children, errors])\n\n if (!content) {\n return null\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn(\"font-normal text-destructive text-sm\", className)}\n {...props}\n >\n {content}\n </div>\n )\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n}\n","\"use client\"\n\nimport { UploadIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { useCallback, useRef, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype FileUploadProps = Omit<React.ComponentProps<\"div\">, \"onChange\"> & {\n /** Accepted file types (e.g. \"image/*,.pdf\") */\n accept?: string\n /** Allow multiple files */\n multiple?: boolean\n /** Max file size in bytes */\n maxSize?: number\n /** Called when files are selected */\n onChange?: (files: File[]) => void\n /** Disabled state */\n disabled?: boolean\n}\n\nfunction FileUpload({\n accept,\n multiple = false,\n maxSize,\n onChange,\n disabled = false,\n className,\n children,\n ...props\n}: FileUploadProps) {\n const [isDragOver, setIsDragOver] = useState(false)\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleFiles = useCallback(\n (fileList: FileList) => {\n let files = Array.from(fileList)\n if (maxSize) {\n files = files.filter((f) => f.size <= maxSize)\n }\n onChange?.(files)\n },\n [maxSize, onChange],\n )\n\n const handleDrop = useCallback(\n (e: React.DragEvent) => {\n e.preventDefault()\n setIsDragOver(false)\n if (disabled) return\n handleFiles(e.dataTransfer.files)\n },\n [disabled, handleFiles],\n )\n\n return (\n <div\n data-slot=\"file-upload\"\n data-drag-over={isDragOver || undefined}\n className={cn(\n \"relative flex flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed p-8 text-center transition-colors\",\n isDragOver && \"border-primary bg-primary/5\",\n !isDragOver && \"border-border hover:border-primary/50\",\n disabled && \"pointer-events-none opacity-50\",\n className,\n )}\n onDragOver={(e) => {\n e.preventDefault()\n if (!disabled) setIsDragOver(true)\n }}\n onDragLeave={() => setIsDragOver(false)}\n onDrop={handleDrop}\n onClick={() => inputRef.current?.click()}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") inputRef.current?.click()\n }}\n {...props}\n >\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n className=\"sr-only\"\n onChange={(e) => e.target.files && handleFiles(e.target.files)}\n disabled={disabled}\n tabIndex={-1}\n />\n {children ?? (\n <>\n <UploadIcon className=\"size-8 text-muted-foreground\" />\n <div>\n <p className=\"font-medium text-sm\">Drop files here or click to upload</p>\n <p className=\"mt-1 text-muted-foreground text-xs\">\n {accept ? `Accepted: ${accept}` : \"Any file type\"}\n </p>\n </div>\n </>\n )}\n </div>\n )\n}\n\nexport { FileUpload }\nexport type { FileUploadProps }\n","import { PlusCircleIcon, X } from \"lucide-react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction FilterBar({ className, children, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"filter-bar\"\n className={cn(\"flex flex-wrap items-center gap-2\", className)}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nfunction FilterChip({\n label,\n value,\n onRemove,\n className,\n ...props\n}: Omit<React.ComponentProps<\"span\">, \"children\"> & {\n label: string\n value?: string\n onRemove?: () => void\n}) {\n return (\n <span\n data-slot=\"filter-chip\"\n className={cn(\n \"inline-flex h-8 items-center gap-1.5 rounded-md border border-dashed px-3 text-xs\",\n className,\n )}\n {...props}\n >\n <PlusCircleIcon className=\"size-3.5 text-muted-foreground\" />\n <span className=\"font-medium\">{label}</span>\n {value && (\n <>\n <span className=\"mx-0.5 h-4 w-px bg-border\" />\n <span className=\"rounded-sm bg-secondary px-1.5 py-0.5 font-normal\">{value}</span>\n </>\n )}\n {onRemove && (\n <button\n type=\"button\"\n aria-label={`Remove ${label} filter`}\n onClick={onRemove}\n className=\"ml-0.5 cursor-pointer rounded-full p-0.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground\"\n >\n <X className=\"size-3\" />\n </button>\n )}\n </span>\n )\n}\n\nfunction FilterClear({\n onClick,\n className,\n children = \"Clear all\",\n ...props\n}: React.ComponentProps<\"button\">) {\n return (\n <button\n type=\"button\"\n data-slot=\"filter-clear\"\n className={cn(\"text-muted-foreground text-xs underline-offset-4 hover:underline\", className)}\n onClick={onClick}\n {...props}\n >\n {children}\n </button>\n )\n}\n\nexport { FilterBar, FilterChip, FilterClear }\n","import type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\n/* ────────────────────────────────────────────────────────────────────────────\n * Tailwind grid class mappings\n * ──────────────────────────────────────────────────────────────────────────── */\n\nconst colsMap: Record<number, string> = {\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 7: \"grid-cols-7\",\n 8: \"grid-cols-8\",\n 9: \"grid-cols-9\",\n 10: \"grid-cols-10\",\n 11: \"grid-cols-11\",\n 12: \"grid-cols-12\",\n}\n\nconst rowsMap: Record<number, string> = {\n 1: \"grid-rows-1\",\n 2: \"grid-rows-2\",\n 3: \"grid-rows-3\",\n 4: \"grid-rows-4\",\n 5: \"grid-rows-5\",\n 6: \"grid-rows-6\",\n 7: \"grid-rows-7\",\n 8: \"grid-rows-8\",\n 9: \"grid-rows-9\",\n 10: \"grid-rows-10\",\n 11: \"grid-rows-11\",\n 12: \"grid-rows-12\",\n}\n\nconst flowMap = {\n row: \"grid-flow-row\",\n col: \"grid-flow-col\",\n dense: \"grid-flow-dense\",\n \"row-dense\": \"grid-flow-row-dense\",\n \"col-dense\": \"grid-flow-col-dense\",\n} as const\n\nconst autoColsMap = {\n auto: \"auto-cols-auto\",\n min: \"auto-cols-min\",\n max: \"auto-cols-max\",\n fr: \"auto-cols-fr\",\n} as const\n\nconst autoRowsMap = {\n auto: \"auto-rows-auto\",\n min: \"auto-rows-min\",\n max: \"auto-rows-max\",\n fr: \"auto-rows-fr\",\n} as const\n\nconst gapMap: Record<number | string, string> = {\n 0: \"gap-0\",\n 0.5: \"gap-0.5\",\n 1: \"gap-1\",\n 1.5: \"gap-1.5\",\n 2: \"gap-2\",\n 2.5: \"gap-2.5\",\n 3: \"gap-3\",\n 3.5: \"gap-3.5\",\n 4: \"gap-4\",\n 5: \"gap-5\",\n 6: \"gap-6\",\n 7: \"gap-7\",\n 8: \"gap-8\",\n 9: \"gap-9\",\n 10: \"gap-10\",\n 11: \"gap-11\",\n 12: \"gap-12\",\n 14: \"gap-14\",\n 16: \"gap-16\",\n 20: \"gap-20\",\n 24: \"gap-24\",\n 28: \"gap-28\",\n 32: \"gap-32\",\n}\n\nconst gapXMap: Record<number | string, string> = {\n 0: \"gap-x-0\",\n 0.5: \"gap-x-0.5\",\n 1: \"gap-x-1\",\n 1.5: \"gap-x-1.5\",\n 2: \"gap-x-2\",\n 2.5: \"gap-x-2.5\",\n 3: \"gap-x-3\",\n 3.5: \"gap-x-3.5\",\n 4: \"gap-x-4\",\n 5: \"gap-x-5\",\n 6: \"gap-x-6\",\n 7: \"gap-x-7\",\n 8: \"gap-x-8\",\n 9: \"gap-x-9\",\n 10: \"gap-x-10\",\n 11: \"gap-x-11\",\n 12: \"gap-x-12\",\n 14: \"gap-x-14\",\n 16: \"gap-x-16\",\n 20: \"gap-x-20\",\n 24: \"gap-x-24\",\n 28: \"gap-x-28\",\n 32: \"gap-x-32\",\n}\n\nconst gapYMap: Record<number | string, string> = {\n 0: \"gap-y-0\",\n 0.5: \"gap-y-0.5\",\n 1: \"gap-y-1\",\n 1.5: \"gap-y-1.5\",\n 2: \"gap-y-2\",\n 2.5: \"gap-y-2.5\",\n 3: \"gap-y-3\",\n 3.5: \"gap-y-3.5\",\n 4: \"gap-y-4\",\n 5: \"gap-y-5\",\n 6: \"gap-y-6\",\n 7: \"gap-y-7\",\n 8: \"gap-y-8\",\n 9: \"gap-y-9\",\n 10: \"gap-y-10\",\n 11: \"gap-y-11\",\n 12: \"gap-y-12\",\n 14: \"gap-y-14\",\n 16: \"gap-y-16\",\n 20: \"gap-y-20\",\n 24: \"gap-y-24\",\n 28: \"gap-y-28\",\n 32: \"gap-y-32\",\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * Col class mappings\n * ──────────────────────────────────────────────────────────────────────────── */\n\nconst colSpanMap: Record<number | string, string> = {\n 1: \"col-span-1\",\n 2: \"col-span-2\",\n 3: \"col-span-3\",\n 4: \"col-span-4\",\n 5: \"col-span-5\",\n 6: \"col-span-6\",\n 7: \"col-span-7\",\n 8: \"col-span-8\",\n 9: \"col-span-9\",\n 10: \"col-span-10\",\n 11: \"col-span-11\",\n 12: \"col-span-12\",\n full: \"col-span-full\",\n}\n\nconst colStartMap: Record<number | string, string> = {\n 1: \"col-start-1\",\n 2: \"col-start-2\",\n 3: \"col-start-3\",\n 4: \"col-start-4\",\n 5: \"col-start-5\",\n 6: \"col-start-6\",\n 7: \"col-start-7\",\n 8: \"col-start-8\",\n 9: \"col-start-9\",\n 10: \"col-start-10\",\n 11: \"col-start-11\",\n 12: \"col-start-12\",\n 13: \"col-start-13\",\n auto: \"col-start-auto\",\n}\n\nconst colEndMap: Record<number | string, string> = {\n 1: \"col-end-1\",\n 2: \"col-end-2\",\n 3: \"col-end-3\",\n 4: \"col-end-4\",\n 5: \"col-end-5\",\n 6: \"col-end-6\",\n 7: \"col-end-7\",\n 8: \"col-end-8\",\n 9: \"col-end-9\",\n 10: \"col-end-10\",\n 11: \"col-end-11\",\n 12: \"col-end-12\",\n 13: \"col-end-13\",\n auto: \"col-end-auto\",\n}\n\nconst rowSpanMap: Record<number | string, string> = {\n 1: \"row-span-1\",\n 2: \"row-span-2\",\n 3: \"row-span-3\",\n 4: \"row-span-4\",\n 5: \"row-span-5\",\n 6: \"row-span-6\",\n 7: \"row-span-7\",\n 8: \"row-span-8\",\n 9: \"row-span-9\",\n 10: \"row-span-10\",\n 11: \"row-span-11\",\n 12: \"row-span-12\",\n full: \"row-span-full\",\n}\n\nconst rowStartMap: Record<number | string, string> = {\n 1: \"row-start-1\",\n 2: \"row-start-2\",\n 3: \"row-start-3\",\n 4: \"row-start-4\",\n 5: \"row-start-5\",\n 6: \"row-start-6\",\n 7: \"row-start-7\",\n 8: \"row-start-8\",\n 9: \"row-start-9\",\n 10: \"row-start-10\",\n 11: \"row-start-11\",\n 12: \"row-start-12\",\n 13: \"row-start-13\",\n auto: \"row-start-auto\",\n}\n\nconst rowEndMap: Record<number | string, string> = {\n 1: \"row-end-1\",\n 2: \"row-end-2\",\n 3: \"row-end-3\",\n 4: \"row-end-4\",\n 5: \"row-end-5\",\n 6: \"row-end-6\",\n 7: \"row-end-7\",\n 8: \"row-end-8\",\n 9: \"row-end-9\",\n 10: \"row-end-10\",\n 11: \"row-end-11\",\n 12: \"row-end-12\",\n 13: \"row-end-13\",\n auto: \"row-end-auto\",\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * Grid\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype GridProps = React.ComponentProps<\"div\"> & {\n /** Number of columns (1–12) or a custom Tailwind class like \"grid-cols-[200px_1fr]\" */\n cols?: number | string\n /** Number of rows (1–12) or a custom Tailwind class like \"grid-rows-[auto_1fr_auto]\" */\n rows?: number | string\n /** Grid auto-flow: row | col | dense | row-dense | col-dense */\n flow?: keyof typeof flowMap\n /** Auto columns: auto | min | max | fr */\n autoCols?: keyof typeof autoColsMap\n /** Auto rows: auto | min | max | fr */\n autoRows?: keyof typeof autoRowsMap\n /** Gap (Tailwind spacing scale) */\n gap?: number\n /** Column gap (Tailwind spacing scale) */\n gapX?: number\n /** Row gap (Tailwind spacing scale) */\n gapY?: number\n}\n\nfunction Grid({\n className,\n cols,\n rows,\n flow,\n autoCols,\n autoRows,\n gap,\n gapX,\n gapY,\n ...props\n}: GridProps) {\n return (\n <div\n data-slot=\"grid\"\n className={cn(\n \"grid\",\n typeof cols === \"number\" ? colsMap[cols] : cols,\n typeof rows === \"number\" ? rowsMap[rows] : rows,\n flow && flowMap[flow],\n autoCols && autoColsMap[autoCols],\n autoRows && autoRowsMap[autoRows],\n gap != null && gapMap[gap],\n gapX != null && gapXMap[gapX],\n gapY != null && gapYMap[gapY],\n className,\n )}\n {...props}\n />\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * Col\n * ──────────────────────────────────────────────────────────────────────────── */\n\ntype ColProps = React.ComponentProps<\"div\"> & {\n /** Column span (1–12 or \"full\") */\n span?: number | \"full\"\n /** Column start line (1–13 or \"auto\") */\n start?: number | \"auto\"\n /** Column end line (1–13 or \"auto\") */\n end?: number | \"auto\"\n /** Row span (1–12 or \"full\") */\n rowSpan?: number | \"full\"\n /** Row start line (1–13 or \"auto\") */\n rowStart?: number | \"auto\"\n /** Row end line (1–13 or \"auto\") */\n rowEnd?: number | \"auto\"\n}\n\nfunction Col({ className, span, start, end, rowSpan, rowStart, rowEnd, ...props }: ColProps) {\n return (\n <div\n data-slot=\"col\"\n className={cn(\n span != null && colSpanMap[span],\n start != null && colStartMap[start],\n end != null && colEndMap[end],\n rowSpan != null && rowSpanMap[rowSpan],\n rowStart != null && rowStartMap[rowStart],\n rowEnd != null && rowEndMap[rowEnd],\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Grid, Col }\nexport type { GridProps, ColProps }\n","\"use client\"\n\nimport { CheckIcon, PencilIcon, XIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype InlineEditProps = Omit<React.ComponentProps<\"div\">, \"onChange\"> & {\n /** Current value */\n value: string\n /** Called when edit is confirmed */\n onChange: (value: string) => void\n /** Render the display value (defaults to plain text) */\n renderDisplay?: (value: string) => React.ReactNode\n /** Placeholder when value is empty */\n placeholder?: string\n}\n\nfunction InlineEdit({\n value,\n onChange,\n renderDisplay,\n placeholder = \"Click to edit\",\n className,\n ...props\n}: InlineEditProps) {\n const [editing, setEditing] = useState(false)\n const [draft, setDraft] = useState(value)\n const inputRef = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n setDraft(value)\n }, [value])\n\n useEffect(() => {\n if (editing) inputRef.current?.focus()\n }, [editing])\n\n const confirm = useCallback(() => {\n onChange(draft)\n setEditing(false)\n }, [draft, onChange])\n\n const cancel = useCallback(() => {\n setDraft(value)\n setEditing(false)\n }, [value])\n\n if (editing) {\n return (\n <div data-slot=\"inline-edit\" className={cn(\"flex items-center gap-1\", className)} {...props}>\n <input\n ref={inputRef}\n value={draft}\n onChange={(e) => setDraft(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") confirm()\n if (e.key === \"Escape\") cancel()\n }}\n className=\"flex-1 rounded-md border bg-background px-2 py-1 text-sm outline-none focus:ring-2 focus:ring-ring\"\n />\n <button\n type=\"button\"\n onClick={confirm}\n className=\"rounded-md p-1 text-muted-foreground hover:text-foreground\"\n aria-label=\"Confirm\"\n >\n <CheckIcon className=\"size-3.5\" />\n </button>\n <button\n type=\"button\"\n onClick={cancel}\n className=\"rounded-md p-1 text-muted-foreground hover:text-foreground\"\n aria-label=\"Cancel\"\n >\n <XIcon className=\"size-3.5\" />\n </button>\n </div>\n )\n }\n\n return (\n <div\n data-slot=\"inline-edit\"\n className={cn(\"group inline-flex cursor-pointer items-center gap-1\", className)}\n onClick={() => setEditing(true)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") setEditing(true)\n }}\n role=\"button\"\n tabIndex={0}\n {...props}\n >\n <span className={cn(!value && \"text-muted-foreground\")}>\n {renderDisplay ? renderDisplay(value) : value || placeholder}\n </span>\n <PencilIcon className=\"size-3 text-muted-foreground opacity-0 transition-opacity group-hover:opacity-100\" />\n </div>\n )\n}\n\nexport { InlineEdit }\nexport type { InlineEditProps }\n","\"use client\"\n\nimport { OTPInput, OTPInputContext } from \"input-otp\"\nimport { MinusIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction InputOTP({\n className,\n containerClassName,\n ...props\n}: React.ComponentProps<typeof OTPInput> & {\n containerClassName?: string\n}) {\n return (\n <OTPInput\n data-slot=\"input-otp\"\n containerClassName={cn(\n \"cn-input-otp flex items-center has-disabled:opacity-50\",\n containerClassName,\n )}\n spellCheck={false}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n )\n}\n\nfunction InputOTPGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-otp-group\"\n className={cn(\n \"flex items-center rounded-md has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 dark:has-aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction InputOTPSlot({\n index,\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n index: number\n}) {\n const inputOTPContext = React.useContext(OTPInputContext)\n const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {}\n\n return (\n <div\n data-slot=\"input-otp-slot\"\n data-active={isActive}\n className={cn(\n \"relative flex size-9 items-center justify-center border-input border-y border-r text-sm shadow-xs outline-none transition-all first:rounded-l-md first:border-l last:rounded-r-md aria-invalid:border-destructive data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-3 data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20 dark:bg-input/30 dark:data-[active=true]:aria-invalid:ring-destructive/40\",\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\nfunction InputOTPSeparator({ ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-otp-separator\"\n className=\"flex items-center [&_svg:not([class*='size-'])]:size-4\"\n role=\"separator\"\n {...props}\n >\n <MinusIcon />\n </div>\n )\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }\n","import { cn } from \"../lib/utils\"\n\nfunction Kbd({ className, ...props }: React.ComponentProps<\"kbd\">) {\n return (\n <kbd\n data-slot=\"kbd\"\n className={cn(\n \"pointer-events-none inline-flex h-5 w-fit min-w-5 select-none items-center justify-center gap-1 rounded-sm bg-muted in-data-[slot=tooltip-content]:bg-background/20 px-1 font-medium font-sans in-data-[slot=tooltip-content]:text-background text-muted-foreground text-xs dark:in-data-[slot=tooltip-content]:bg-background/10 [&_svg:not([class*='size-'])]:size-3\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction KbdGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <kbd\n data-slot=\"kbd-group\"\n className={cn(\"inline-flex items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\nexport { Kbd, KbdGroup }\n","import { Loader2Icon } from \"lucide-react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Spinner({ className, ...props }: React.ComponentProps<\"svg\">) {\n return (\n <Loader2Icon\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(\"size-4 animate-spin\", className)}\n {...props}\n />\n )\n}\n\nexport { Spinner }\n","import type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { Spinner } from \"./spinner\"\n\ntype LoadingOverlayProps = React.ComponentProps<\"div\"> & {\n /** Whether the overlay is visible */\n loading: boolean\n /** Optional label */\n label?: string\n}\n\nfunction LoadingOverlay({ loading, label, className, children, ...props }: LoadingOverlayProps) {\n return (\n <div data-slot=\"loading-overlay\" className={cn(\"relative\", className)} {...props}>\n {children}\n {loading && (\n <div className=\"absolute inset-0 z-50 flex flex-col items-center justify-center gap-2 rounded-[inherit] bg-background/80 backdrop-blur-[2px]\">\n <Spinner className=\"size-6\" />\n {label && <p className=\"text-muted-foreground text-sm\">{label}</p>}\n </div>\n )}\n </div>\n )\n}\n\nexport { LoadingOverlay }\nexport type { LoadingOverlayProps }\n","import { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../lib/utils\"\n\nconst logoVaspVariants = cva(\"inline-block shrink-0\", {\n variants: {\n size: {\n sm: \"size-6\",\n default: \"size-8\",\n lg: \"size-12\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\ntype LogoVaspProps = React.ComponentProps<\"svg\"> & VariantProps<typeof logoVaspVariants>\n\nfunction LogoVasp({ size, className, ...props }: LogoVaspProps) {\n return (\n <svg\n viewBox=\"0 0 320 320\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n data-slot=\"logo-vasp\"\n className={cn(logoVaspVariants({ size }), className)}\n role=\"img\"\n aria-label=\"VASP Track logo\"\n {...props}\n >\n <path d=\"M35 65h97l84 190h-97L35 65zM216 65h68v124h-68z\" fill=\"currentColor\" />\n </svg>\n )\n}\n\nexport { LogoVasp, logoVaspVariants }\nexport type { LogoVaspProps }\n","\"use client\"\n\nimport { cn } from \"../lib/utils\"\n\ninterface MarqueeProps {\n children: React.ReactNode\n className?: string\n /** Duration in seconds for one full loop. Default: 40 */\n duration?: number\n /** Scroll direction. Default: \"left\" */\n direction?: \"left\" | \"right\"\n /** Pause on hover. Default: true */\n pauseOnHover?: boolean\n /** Show fade edges. Default: true */\n fadeEdges?: boolean\n}\n\nfunction Marquee({\n children,\n className,\n duration = 40,\n direction = \"left\",\n pauseOnHover = true,\n fadeEdges = true,\n}: MarqueeProps) {\n return (\n <div\n data-slot=\"marquee\"\n className={cn(\"relative flex items-center overflow-hidden\", className)}\n >\n {fadeEdges && (\n <>\n <div className=\"pointer-events-none absolute inset-y-0 left-0 z-10 w-16 bg-gradient-to-r from-background to-transparent\" />\n <div className=\"pointer-events-none absolute inset-y-0 right-0 z-10 w-16 bg-gradient-to-l from-background to-transparent\" />\n </>\n )}\n <div\n className={cn(\n \"flex w-max gap-4\",\n direction === \"left\" ? \"animate-marquee-left\" : \"animate-marquee-right\",\n pauseOnHover && \"hover:[animation-play-state:paused]\",\n )}\n style={{ animationDuration: `${duration}s` }}\n >\n {children}\n {children}\n </div>\n </div>\n )\n}\n\nexport { Marquee }\nexport type { MarqueeProps }\n","\"use client\"\n\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\"\nimport { Menubar as MenubarPrimitive } from \"@base-ui/react/menubar\"\nimport { CheckIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"./dropdown-menu\"\n\nfunction Menubar({ className, ...props }: MenubarPrimitive.Props) {\n return (\n <MenubarPrimitive\n data-slot=\"menubar\"\n className={cn(\n \"flex h-9 items-center gap-1 rounded-md border bg-background p-1 shadow-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarMenu({ ...props }: React.ComponentProps<typeof DropdownMenu>) {\n return <DropdownMenu data-slot=\"menubar-menu\" {...props} />\n}\n\nfunction MenubarGroup({ ...props }: React.ComponentProps<typeof DropdownMenuGroup>) {\n return <DropdownMenuGroup data-slot=\"menubar-group\" {...props} />\n}\n\nfunction MenubarPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPortal>) {\n return <DropdownMenuPortal data-slot=\"menubar-portal\" {...props} />\n}\n\nfunction MenubarTrigger({ className, ...props }: React.ComponentProps<typeof DropdownMenuTrigger>) {\n return (\n <DropdownMenuTrigger\n data-slot=\"menubar-trigger\"\n className={cn(\n \"flex select-none items-center rounded-sm px-2 py-1 font-medium text-sm outline-hidden hover:bg-muted aria-expanded:bg-muted\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarContent({\n className,\n align = \"start\",\n alignOffset = -4,\n sideOffset = 8,\n ...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n return (\n <DropdownMenuContent\n data-slot=\"menubar-content\"\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"data-open:fade-in-0 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 cn-menu-target min-w-36 rounded-lg border border-border-light bg-popover p-1 text-popover-foreground shadow-lg duration-100 data-open:animate-in\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuItem>) {\n return (\n <DropdownMenuItem\n data-slot=\"menubar-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/menubar-item gap-2 rounded-sm px-2 py-1.5 text-sm focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-8 data-[variant=destructive]:text-destructive data-disabled:opacity-50 data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"menubar-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md py-1.5 pr-2 pl-8 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4\">\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n )\n}\n\nfunction MenubarRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuRadioGroup>) {\n return <DropdownMenuRadioGroup data-slot=\"menubar-radio-group\" {...props} />\n}\n\nfunction MenubarRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"menubar-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-md py-1.5 pr-2 pl-8 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4\">\n <MenuPrimitive.RadioItemIndicator>\n <CheckIcon />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n )\n}\n\nfunction MenubarLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuLabel> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuLabel\n data-slot=\"menubar-label\"\n data-inset={inset}\n className={cn(\"px-2 py-1.5 font-medium text-sm data-inset:pl-8\", className)}\n {...props}\n />\n )\n}\n\nfunction MenubarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSeparator>) {\n return (\n <DropdownMenuSeparator\n data-slot=\"menubar-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction MenubarShortcut({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuShortcut>) {\n return (\n <DropdownMenuShortcut\n data-slot=\"menubar-shortcut\"\n className={cn(\n \"ml-auto text-muted-foreground text-xs tracking-widest group-focus/menubar-item:text-accent-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarSub({ ...props }: React.ComponentProps<typeof DropdownMenuSub>) {\n return <DropdownMenuSub data-slot=\"menubar-sub\" {...props} />\n}\n\nfunction MenubarSubTrigger({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSubTrigger> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuSubTrigger\n data-slot=\"menubar-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"gap-2 rounded-sm px-2 py-1.5 text-sm focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-inset:pl-8 data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSubContent>) {\n return (\n <DropdownMenuSubContent\n data-slot=\"menubar-sub-content\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-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 min-w-32 rounded-lg border border-border-light bg-popover p-1 text-popover-foreground shadow-lg duration-100 data-closed:animate-out data-open:animate-in\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n Menubar,\n MenubarPortal,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarGroup,\n MenubarSeparator,\n MenubarLabel,\n MenubarItem,\n MenubarShortcut,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n}\n","import { ChevronDownIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\ntype NativeSelectProps = Omit<React.ComponentProps<\"select\">, \"size\"> & {\n size?: \"sm\" | \"default\"\n}\n\nfunction NativeSelect({ className, size = \"default\", ...props }: NativeSelectProps) {\n return (\n <div\n className={cn(\n \"group/native-select relative w-fit has-[select:disabled]:opacity-50\",\n className,\n )}\n data-slot=\"native-select-wrapper\"\n data-size={size}\n >\n <select\n data-slot=\"native-select\"\n data-size={size}\n className=\"h-9 w-full min-w-0 select-none appearance-none rounded-md border border-input bg-transparent py-1 pr-8 pl-2.5 text-sm shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=sm]:h-8 dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 dark:hover:bg-input/50\"\n {...props}\n />\n <ChevronDownIcon\n className=\"pointer-events-none absolute top-1/2 right-2.5 size-4 -translate-y-1/2 select-none text-muted-foreground\"\n aria-hidden=\"true\"\n data-slot=\"native-select-icon\"\n />\n </div>\n )\n}\n\nfunction NativeSelectOption({ ...props }: React.ComponentProps<\"option\">) {\n return <option data-slot=\"native-select-option\" {...props} />\n}\n\nfunction NativeSelectOptGroup({ className, ...props }: React.ComponentProps<\"optgroup\">) {\n return <optgroup data-slot=\"native-select-optgroup\" className={cn(className)} {...props} />\n}\n\nexport { NativeSelect, NativeSelectOptGroup, NativeSelectOption }\n","import { NavigationMenu as NavigationMenuPrimitive } from \"@base-ui/react/navigation-menu\"\nimport { cva } from \"class-variance-authority\"\n\nimport { ChevronDownIcon } from \"lucide-react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction NavigationMenu({\n align = \"start\",\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Root.Props & Pick<NavigationMenuPrimitive.Positioner.Props, \"align\">) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n className={cn(\n \"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center\",\n className,\n )}\n {...props}\n >\n {children}\n <NavigationMenuPositioner align={align} />\n </NavigationMenuPrimitive.Root>\n )\n}\n\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(\"group flex flex-1 list-none items-center justify-center gap-0\", className)}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn(\"relative\", className)}\n {...props}\n />\n )\n}\n\nconst navigationMenuTriggerStyle = cva(\n \"bg-background hover:bg-muted focus:bg-muted data-open:hover:bg-muted data-open:focus:bg-muted data-open:bg-muted/50 focus-visible:ring-ring/50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted rounded-md px-4 py-2 text-sm font-medium transition-all focus-visible:ring-3 focus-visible:outline-1 disabled:opacity-50 group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center disabled:pointer-events-none outline-none\",\n)\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Trigger.Props) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDownIcon\n className=\"relative top-px ml-1 size-3 transition duration-300 group-data-open/navigation-menu-trigger:rotate-180 group-data-popup-open/navigation-menu-trigger:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n )\n}\n\nfunction NavigationMenuContent({ className, ...props }: NavigationMenuPrimitive.Content.Props) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"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 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 h-full w-auto p-2 pr-2.5 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-ending-style:data-activation-direction=left:translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-ending-style:opacity-0 data-starting-style:opacity-0 **:data-[slot=navigation-menu-link]:focus:outline-none **:data-[slot=navigation-menu-link]:focus:ring-0 group-data-[viewport=false]/navigation-menu:rounded-lg group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:border-border-light group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow-lg group-data-[viewport=false]/navigation-menu:duration-300 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-open:animate-in\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuPositioner({\n className,\n side = \"bottom\",\n sideOffset = 8,\n align = \"start\",\n alignOffset = 0,\n ...props\n}: NavigationMenuPrimitive.Positioner.Props) {\n return (\n <NavigationMenuPrimitive.Portal>\n <NavigationMenuPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={cn(\n \"isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0\",\n className,\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Popup className=\"data-[ending-style]:easing-[ease] relative h-(--popup-height) w-(--popup-width) xs:w-(--popup-width) origin-(--transform-origin) rounded-lg border border-border-light bg-popover text-popover-foreground shadow-lg outline-none transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-ending-style:scale-90 data-starting-style:scale-90 data-ending-style:opacity-0 data-starting-style:opacity-0 data-ending-style:duration-150\">\n <NavigationMenuPrimitive.Viewport className=\"relative size-full overflow-hidden\" />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </NavigationMenuPrimitive.Portal>\n )\n}\n\nfunction NavigationMenuLink({ className, ...props }: NavigationMenuPrimitive.Link.Props) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n \"flex items-center gap-1.5 rounded-sm p-2 text-sm outline-none transition-all hover:bg-muted focus:bg-muted focus-visible:outline-1 focus-visible:ring-3 focus-visible:ring-ring/50 data-[active=true]:bg-muted/50 data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Icon>) {\n return (\n <NavigationMenuPrimitive.Icon\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=visible]:animate-in\",\n className,\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Icon>\n )\n}\n\nexport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuIndicator,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n navigationMenuTriggerStyle,\n NavigationMenuPositioner,\n}\n","\"use client\"\n\nimport { MinusIcon, PlusIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { useCallback, useState } from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\nimport { Input } from \"./input\"\n\ntype NumberInputProps = Omit<React.ComponentProps<\"input\">, \"type\" | \"value\" | \"onChange\"> & {\n value?: number\n defaultValue?: number\n onChange?: (value: number) => void\n min?: number\n max?: number\n step?: number\n}\n\nfunction NumberInput({\n value: controlledValue,\n defaultValue = 0,\n onChange,\n min = -Infinity,\n max = Infinity,\n step = 1,\n className,\n disabled,\n ...props\n}: NumberInputProps) {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const value = controlledValue ?? internalValue\n\n const setValue = useCallback(\n (next: number) => {\n const clamped = Math.min(max, Math.max(min, next))\n if (controlledValue === undefined) setInternalValue(clamped)\n onChange?.(clamped)\n },\n [min, max, controlledValue, onChange],\n )\n\n return (\n <div data-slot=\"number-input\" className={cn(\"flex items-center gap-1\", className)}>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"size-8 shrink-0\"\n onClick={() => setValue(value - step)}\n disabled={disabled || value <= min}\n aria-label=\"Decrease\"\n >\n <MinusIcon className=\"size-3.5\" />\n </Button>\n <Input\n type=\"number\"\n value={value}\n onChange={(e) => setValue(Number(e.target.value))}\n min={min}\n max={max}\n step={step}\n disabled={disabled}\n className=\"text-center [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none\"\n {...props}\n />\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"size-8 shrink-0\"\n onClick={() => setValue(value + step)}\n disabled={disabled || value >= max}\n aria-label=\"Increase\"\n >\n <PlusIcon className=\"size-3.5\" />\n </Button>\n </div>\n )\n}\n\nexport { NumberInput }\nexport type { NumberInputProps }\n","import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\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\nfunction PaginationContent({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn(\"flex items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n return <li data-slot=\"pagination-item\" {...props} />\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean\n} & Pick<React.ComponentProps<typeof Button>, \"size\"> &\n React.ComponentProps<\"a\">\n\nfunction PaginationLink({ className, isActive, size = \"icon\", ...props }: PaginationLinkProps) {\n return (\n <Button\n variant={isActive ? \"outline\" : \"ghost\"}\n size={size}\n className={cn(className)}\n nativeButton={false}\n render={\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n data-active={isActive}\n {...props}\n />\n }\n />\n )\n}\n\nfunction PaginationPrevious({\n className,\n text = \"Previous\",\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"pl-2!\", className)}\n {...props}\n >\n <ChevronLeftIcon data-icon=\"inline-start\" className=\"cn-rtl-flip\" />\n <span className=\"hidden sm:block\">{text}</span>\n </PaginationLink>\n )\n}\n\nfunction PaginationNext({\n className,\n text = \"Next\",\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"pr-2!\", className)}\n {...props}\n >\n <span className=\"hidden sm:block\">{text}</span>\n <ChevronRightIcon data-icon=\"inline-end\" className=\"cn-rtl-flip\" />\n </PaginationLink>\n )\n}\n\nfunction PaginationEllipsis({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\n \"flex size-9 items-center justify-center [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <MoreHorizontalIcon />\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","import { cva, type VariantProps } from \"class-variance-authority\"\nimport { XIcon } from \"lucide-react\"\nimport * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nconst policyBannerVariants = cva(\n \"relative flex w-full items-center gap-3 rounded-lg border px-4 py-3 text-sm\",\n {\n variants: {\n variant: {\n info: \"border-blue-200 bg-blue-50 text-blue-900 dark:border-blue-800 dark:bg-blue-950 dark:text-blue-100\",\n warning:\n \"border-amber-200 bg-amber-50 text-amber-900 dark:border-amber-800 dark:bg-amber-950 dark:text-amber-100\",\n critical:\n \"border-red-200 bg-red-50 text-red-900 dark:border-red-800 dark:bg-red-950 dark:text-red-100\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n },\n)\n\ntype PolicyBannerProps = React.ComponentProps<\"div\"> &\n VariantProps<typeof policyBannerVariants> & {\n /** Optional icon displayed before the message */\n icon?: React.ReactNode\n /** Action element (e.g. a Button) displayed after the message */\n action?: React.ReactNode\n /** Whether the banner can be dismissed. Defaults to true. */\n dismissible?: boolean\n /** Callback when dismissed */\n onDismiss?: () => void\n }\n\nfunction PolicyBanner({\n variant,\n icon,\n action,\n dismissible = true,\n onDismiss,\n children,\n className,\n ...props\n}: PolicyBannerProps) {\n const [visible, setVisible] = React.useState(true)\n\n if (!visible) return null\n\n function handleDismiss() {\n setVisible(false)\n onDismiss?.()\n }\n\n return (\n <div\n data-slot=\"policy-banner\"\n role=\"alert\"\n className={cn(policyBannerVariants({ variant }), className)}\n {...props}\n >\n {icon && <span className=\"shrink-0\">{icon}</span>}\n <div className=\"flex-1\">{children}</div>\n {action && <span className=\"shrink-0\">{action}</span>}\n {dismissible && (\n <button\n type=\"button\"\n onClick={handleDismiss}\n className=\"shrink-0 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n aria-label=\"Dismiss\"\n >\n <XIcon className=\"size-4\" />\n </button>\n )}\n </div>\n )\n}\n\nexport { PolicyBanner, policyBannerVariants }\nexport type { PolicyBannerProps }\n","\"use client\"\n\nimport { Progress as ProgressPrimitive } from \"@base-ui/react/progress\"\nimport React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction hasProgressTrack(children: React.ReactNode): boolean {\n let found = false\n React.Children.forEach(children, (child) => {\n if (\n React.isValidElement(child) &&\n (child.type === ProgressTrack ||\n (child.type as { displayName?: string })?.displayName === \"ProgressTrack\")\n ) {\n found = true\n }\n })\n return found\n}\n\ntype ProgressProps = ProgressPrimitive.Root.Props & {\n /** Animate the indicator from 0 on mount. Defaults to false. */\n animate?: boolean\n}\n\nfunction Progress({ className, children, value, animate, ...props }: ProgressProps) {\n const hasCustomTrack = hasProgressTrack(children)\n const [mountedValue, setMountedValue] = React.useState(animate ? 0 : value)\n\n React.useEffect(() => {\n if (animate) {\n const id = requestAnimationFrame(() => setMountedValue(value))\n return () => cancelAnimationFrame(id)\n }\n setMountedValue(value)\n }, [animate, value])\n\n return (\n <ProgressPrimitive.Root\n value={mountedValue}\n data-slot=\"progress\"\n className={cn(\"flex flex-wrap gap-3\", className)}\n {...props}\n >\n {children}\n {!hasCustomTrack && (\n <ProgressTrack>\n <ProgressIndicator\n className={animate ? \"transition-all duration-700 ease-out\" : undefined}\n />\n </ProgressTrack>\n )}\n </ProgressPrimitive.Root>\n )\n}\n\nfunction ProgressTrack({ className, ...props }: ProgressPrimitive.Track.Props) {\n return (\n <ProgressPrimitive.Track\n className={cn(\n \"relative flex h-1.5 w-full items-center overflow-x-hidden rounded-full bg-muted\",\n className,\n )}\n data-slot=\"progress-track\"\n {...props}\n />\n )\n}\n\nProgressTrack.displayName = \"ProgressTrack\"\n\nfunction ProgressIndicator({ className, ...props }: ProgressPrimitive.Indicator.Props) {\n return (\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className={cn(\"h-full bg-primary transition-all\", className)}\n {...props}\n />\n )\n}\n\nfunction ProgressLabel({ className, ...props }: ProgressPrimitive.Label.Props) {\n return (\n <ProgressPrimitive.Label\n className={cn(\"font-medium text-sm\", className)}\n data-slot=\"progress-label\"\n {...props}\n />\n )\n}\n\nfunction ProgressValue({ className, ...props }: ProgressPrimitive.Value.Props) {\n return (\n <ProgressPrimitive.Value\n className={cn(\"ml-auto text-muted-foreground text-sm tabular-nums\", className)}\n data-slot=\"progress-value\"\n {...props}\n />\n )\n}\n\nexport { Progress, ProgressTrack, ProgressIndicator, ProgressLabel, ProgressValue }\n","\"use client\"\n\nimport { Radio as RadioPrimitive } from \"@base-ui/react/radio\"\nimport { RadioGroup as RadioGroupPrimitive } from \"@base-ui/react/radio-group\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction RadioGroup({ className, ...props }: RadioGroupPrimitive.Props) {\n return (\n <RadioGroupPrimitive\n data-slot=\"radio-group\"\n className={cn(\"grid w-full gap-3\", className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({ className, ...props }: RadioPrimitive.Root.Props) {\n return (\n <RadioPrimitive.Root\n data-slot=\"radio-group-item\"\n className={cn(\n \"group/radio-group-item peer relative flex aspect-square size-4 shrink-0 rounded-full border border-input outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:bg-input/30 dark:data-checked:bg-primary dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40\",\n className,\n )}\n {...props}\n >\n <RadioPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"flex size-4 items-center justify-center\"\n >\n <span className=\"absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-foreground\" />\n </RadioPrimitive.Indicator>\n </RadioPrimitive.Root>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n","\"use client\"\n\nimport * as ResizablePrimitive from \"react-resizable-panels\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction ResizablePanelGroup({ className, ...props }: ResizablePrimitive.GroupProps) {\n return (\n <ResizablePrimitive.Group\n data-slot=\"resizable-panel-group\"\n className={cn(\"flex h-full w-full aria-[orientation=vertical]:flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction ResizablePanel({ ...props }: ResizablePrimitive.PanelProps) {\n return <ResizablePrimitive.Panel data-slot=\"resizable-panel\" {...props} />\n}\n\nfunction ResizableHandle({\n withHandle,\n className,\n ...props\n}: ResizablePrimitive.SeparatorProps & {\n withHandle?: boolean\n}) {\n return (\n <ResizablePrimitive.Separator\n data-slot=\"resizable-handle\"\n className={cn(\n \"relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90\",\n className,\n )}\n {...props}\n >\n {withHandle && <div className=\"z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border\" />}\n </ResizablePrimitive.Separator>\n )\n}\n\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup }\n","\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { useEffect, useRef, useState } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nconst TOTAL_BARS = 40\n\nconst TIER_COLORS: Record<string, { filled: string; empty: string }> = {\n low: { filled: \"bg-success\", empty: \"bg-success/15\" },\n medium: { filled: \"bg-warning\", empty: \"bg-warning/15\" },\n high: { filled: \"bg-risk-high\", empty: \"bg-risk-high/15\" },\n severe: { filled: \"bg-destructive\", empty: \"bg-destructive/15\" },\n highTrust: { filled: \"bg-success\", empty: \"bg-success/15\" },\n moderateTrust: { filled: \"bg-warning\", empty: \"bg-warning/15\" },\n lowTrust: { filled: \"bg-risk-high\", empty: \"bg-risk-high/15\" },\n critical: { filled: \"bg-destructive\", empty: \"bg-destructive/15\" },\n}\n\nconst sizeVariants = cva(\"flex items-center\", {\n variants: {\n size: {\n sm: \"gap-[3px]\",\n lg: \"gap-1\",\n },\n },\n defaultVariants: {\n size: \"sm\",\n },\n})\n\nconst barVariants = cva(\"flex-1 rounded-sm transition-all\", {\n variants: {\n size: {\n sm: \"h-4 w-1.5\",\n lg: \"h-6 w-2.5\",\n },\n },\n defaultVariants: {\n size: \"sm\",\n },\n})\n\nconst textVariants = cva(\"flex items-center justify-between text-muted-foreground\", {\n variants: {\n size: {\n sm: \"text-xs\",\n lg: \"text-sm\",\n },\n },\n defaultVariants: {\n size: \"sm\",\n },\n})\n\ntype RiskGaugeProps = React.ComponentProps<\"div\"> &\n VariantProps<typeof sizeVariants> & {\n score: number\n tier: string\n label?: string\n animated?: boolean\n }\n\nfunction RiskGauge({\n score,\n tier,\n label,\n size = \"sm\",\n animated = true,\n className,\n ...props\n}: RiskGaugeProps) {\n const targetCount = Math.round((score / 100) * TOTAL_BARS)\n const [filledCount, setFilledCount] = useState(animated ? 0 : targetCount)\n const [displayScore, setDisplayScore] = useState(animated ? 0 : score)\n const hasAnimated = useRef(false)\n const ref = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (!animated || hasAnimated.current) {\n setFilledCount(targetCount)\n setDisplayScore(score)\n return\n }\n\n const el = ref.current\n if (!el) return\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (!entry.isIntersecting || hasAnimated.current) return\n hasAnimated.current = true\n\n let current = 0\n const step = () => {\n current++\n setFilledCount(current)\n setDisplayScore(Math.round((current / TOTAL_BARS) * 100))\n if (current < targetCount) {\n setTimeout(step, 40)\n } else {\n setDisplayScore(score)\n }\n }\n setTimeout(step, 100)\n },\n { threshold: 0.5 },\n )\n\n observer.observe(el)\n return () => observer.disconnect()\n }, [animated, targetCount, score])\n\n const colors = TIER_COLORS[tier] ?? TIER_COLORS.medium\n\n return (\n <div\n ref={ref}\n data-slot=\"risk-gauge\"\n className={cn(\"flex flex-col gap-1.5\", className)}\n {...props}\n >\n {label && (\n <div className={textVariants({ size })}>\n <span>{label}</span>\n <span className=\"font-medium font-mono text-foreground\">{displayScore}/100</span>\n </div>\n )}\n <div className={sizeVariants({ size })}>\n {Array.from({ length: TOTAL_BARS }, (_, i) => (\n <div\n key={`bar-${i}`}\n className={cn(\n barVariants({ size }),\n i < filledCount ? colors.filled : colors.empty,\n animated && \"duration-150\",\n )}\n />\n ))}\n </div>\n </div>\n )\n}\n\nexport { RiskGauge, TIER_COLORS as riskGaugeTierColors }\nexport type { RiskGaugeProps }\n","\"use client\"\n\nimport { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction ScrollArea({ className, children, ...props }: ScrollAreaPrimitive.Root.Props) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"size-full rounded-[inherit] outline-none transition-[color,box-shadow] focus-visible:outline-1 focus-visible:ring-[3px] focus-visible:ring-ring/50\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: ScrollAreaPrimitive.Scrollbar.Props) {\n return (\n <ScrollAreaPrimitive.Scrollbar\n data-slot=\"scroll-area-scrollbar\"\n data-orientation={orientation}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none p-px transition-colors data-horizontal:h-2.5 data-vertical:h-full data-vertical:w-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:border-l data-vertical:border-l-transparent\",\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.Thumb\n data-slot=\"scroll-area-thumb\"\n className=\"relative flex-1 rounded-full bg-border\"\n />\n </ScrollAreaPrimitive.Scrollbar>\n )\n}\n\nexport { ScrollArea, ScrollBar }\n","\"use client\"\n\nimport { Search } from \"lucide-react\"\nimport { type ReactNode, useCallback, useEffect, useRef, useState } from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Input } from \"./input\"\nimport { Spinner } from \"./spinner\"\n\n/* ── Types ── */\n\ntype SearchInputProps<T> = Omit<React.ComponentProps<\"div\">, \"onSelect\"> & {\n onSearch: (query: string) => Promise<T[]>\n renderItem: (item: T, index: number, highlighted: boolean) => ReactNode\n onSelect?: (item: T) => void\n getItemId?: (item: T, index: number) => string\n placeholder?: string\n minQueryLength?: number\n debounceMs?: number\n emptyState?: ReactNode\n inputClassName?: string\n}\n\n/* ── Component ── */\n\nfunction SearchInput<T>({\n onSearch,\n renderItem,\n onSelect,\n getItemId,\n placeholder = \"Search...\",\n minQueryLength = 2,\n debounceMs = 300,\n emptyState,\n className,\n inputClassName,\n ...props\n}: SearchInputProps<T>) {\n const [query, setQuery] = useState(\"\")\n const [results, setResults] = useState<T[]>([])\n const [loading, setLoading] = useState(false)\n const [open, setOpen] = useState(false)\n const [searched, setSearched] = useState(false)\n const [highlightedIndex, setHighlightedIndex] = useState(-1)\n const ref = useRef<HTMLDivElement>(null)\n const listRef = useRef<HTMLDivElement>(null)\n const loadingTimer = useRef<ReturnType<typeof setTimeout> | null>(null)\n\n useEffect(() => {\n if (query.length < minQueryLength) {\n setResults([])\n setOpen(false)\n setLoading(false)\n setSearched(false)\n return\n }\n\n setLoading(true)\n\n const timer = setTimeout(async () => {\n try {\n const data = await onSearch(query)\n setResults(data)\n setSearched(true)\n setOpen(true)\n } finally {\n if (loadingTimer.current) clearTimeout(loadingTimer.current)\n loadingTimer.current = setTimeout(() => setLoading(false), 400)\n }\n }, debounceMs)\n\n return () => {\n clearTimeout(timer)\n }\n }, [query, minQueryLength, debounceMs, onSearch])\n\n useEffect(() => {\n setHighlightedIndex(-1)\n }, [])\n\n // Click outside\n useEffect(() => {\n function handleClickOutside(e: MouseEvent) {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n setOpen(false)\n }\n }\n document.addEventListener(\"mousedown\", handleClickOutside)\n return () => document.removeEventListener(\"mousedown\", handleClickOutside)\n }, [])\n\n // Auto-scroll highlighted item\n useEffect(() => {\n if (highlightedIndex >= 0 && listRef.current) {\n const items = listRef.current.querySelectorAll(\"[data-search-item]\")\n const el = items[highlightedIndex] as HTMLElement | undefined\n el?.scrollIntoView?.({ block: \"nearest\" })\n }\n }, [highlightedIndex])\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Escape\") {\n setOpen(false)\n setHighlightedIndex(-1)\n return\n }\n\n if (!open || results.length === 0) return\n\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault()\n setHighlightedIndex((prev) => (prev < results.length - 1 ? prev + 1 : 0))\n break\n case \"ArrowUp\":\n e.preventDefault()\n setHighlightedIndex((prev) => (prev > 0 ? prev - 1 : results.length - 1))\n break\n case \"Enter\":\n if (highlightedIndex >= 0 && onSelect) {\n e.preventDefault()\n onSelect(results[highlightedIndex])\n setOpen(false)\n }\n break\n }\n },\n [open, results, highlightedIndex, onSelect],\n )\n\n const itemId = useCallback(\n (item: T, index: number) => {\n if (getItemId) return getItemId(item, index)\n return `search-result-${index}`\n },\n [getItemId],\n )\n\n return (\n <div ref={ref} data-slot=\"search-input\" className={cn(\"relative w-full\", className)} {...props}>\n <div\n className={cn(\n \"overflow-hidden rounded-xl border border-border bg-background transition-shadow duration-200\",\n open ? \"ring-2 ring-ring\" : \"focus-within:ring-2 focus-within:ring-ring\",\n )}\n >\n <div className=\"relative\">\n <Search className=\"pointer-events-none absolute top-1/2 left-4 size-5 -translate-y-1/2 text-muted-foreground\" />\n <Input\n type=\"text\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n onFocus={() => searched && setOpen(true)}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n className={cn(\n \"h-auto rounded-none border-0 bg-transparent px-12 py-4 text-foreground text-lg shadow-none placeholder:text-muted-foreground focus-visible:border-0 focus-visible:ring-0\",\n inputClassName,\n )}\n role=\"combobox\"\n aria-expanded={open}\n aria-activedescendant={\n highlightedIndex >= 0\n ? itemId(results[highlightedIndex], highlightedIndex)\n : undefined\n }\n />\n {loading && (\n <div className=\"absolute top-1/2 right-4 -translate-y-1/2\">\n <Spinner />\n </div>\n )}\n </div>\n\n {open && (\n <div\n ref={listRef}\n data-slot=\"search-input-results\"\n className=\"max-h-96 overflow-y-auto border-border border-t\"\n role=\"listbox\"\n >\n {results.length === 0 && searched && !loading && (\n <div className=\"px-4 py-4\">\n {emptyState ?? (\n <p className=\"text-muted-foreground text-sm\">\n No results found for &ldquo;{query}&rdquo;\n </p>\n )}\n </div>\n )}\n {results.map((item, i) => (\n <div\n key={itemId(item, i)}\n id={itemId(item, i)}\n data-search-item\n role=\"option\"\n aria-selected={i === highlightedIndex}\n onClick={() => {\n onSelect?.(item)\n setOpen(false)\n }}\n onMouseEnter={() => setHighlightedIndex(i)}\n onMouseLeave={() => setHighlightedIndex(-1)}\n className={cn(\n \"flex w-full cursor-pointer items-start gap-3 px-4 py-3 text-left transition-colors hover:bg-accent\",\n i === highlightedIndex && \"bg-primary/10 ring-1 ring-primary/20\",\n i !== highlightedIndex && i % 2 === 1 && \"bg-muted/30\",\n )}\n >\n {renderItem(item, i, i === highlightedIndex)}\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n )\n}\n\nexport { SearchInput }\nexport type { SearchInputProps }\n","\"use client\"\n\nimport type * as React from \"react\"\nimport { useState } from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype SegmentedControlProps = Omit<React.ComponentProps<\"div\">, \"onChange\"> & {\n options: { value: string; label: React.ReactNode }[]\n value?: string\n defaultValue?: string\n onChange?: (value: string) => void\n}\n\nfunction SegmentedControl({\n options,\n value: controlledValue,\n defaultValue,\n onChange,\n className,\n ...props\n}: SegmentedControlProps) {\n const [internalValue, setInternalValue] = useState(defaultValue ?? options[0]?.value)\n const value = controlledValue ?? internalValue\n\n const selectedIndex = options.findIndex((o) => o.value === value)\n\n return (\n <div\n data-slot=\"segmented-control\"\n role=\"radiogroup\"\n className={cn(\"relative inline-flex items-center rounded-lg bg-muted p-1\", className)}\n {...props}\n >\n <div\n className=\"absolute inset-y-1 rounded-md bg-background shadow-sm transition-all duration-200\"\n style={{\n width: `calc((100% - 8px) / ${options.length})`,\n left: `calc(4px + ${selectedIndex} * (100% - 8px) / ${options.length})`,\n }}\n />\n {options.map((option) => (\n <button\n key={option.value}\n type=\"button\"\n role=\"radio\"\n aria-checked={value === option.value}\n onClick={() => {\n if (controlledValue === undefined) setInternalValue(option.value)\n onChange?.(option.value)\n }}\n className={cn(\n \"relative z-10 flex-1 rounded-md px-3 py-1.5 font-medium text-sm transition-colors\",\n value === option.value\n ? \"text-foreground\"\n : \"text-muted-foreground hover:text-foreground\",\n )}\n >\n {option.label}\n </button>\n ))}\n </div>\n )\n}\n\nexport { SegmentedControl }\nexport type { SegmentedControlProps }\n","\"use client\"\n\nimport { Dialog as SheetPrimitive } from \"@base-ui/react/dialog\"\nimport { XIcon } from \"lucide-react\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\n\nfunction Sheet({ ...props }: SheetPrimitive.Root.Props) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({ ...props }: SheetPrimitive.Close.Props) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({ ...props }: SheetPrimitive.Portal.Props) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.Props) {\n return (\n <SheetPrimitive.Backdrop\n data-slot=\"sheet-overlay\"\n className={cn(\n \"data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 z-50 bg-black/10 duration-100 data-closed:animate-out data-open:animate-in data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n showCloseButton = true,\n ...props\n}: SheetPrimitive.Popup.Props & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n showCloseButton?: boolean\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Popup\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n \"data-[side=right]:data-closed:slide-out-to-right-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=top]:data-closed:slide-out-to-top-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:fade-out-0 data-open:fade-in-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=bottom]:data-open:slide-in-from-bottom-10 fixed z-50 flex flex-col gap-4 bg-background bg-clip-padding text-sm shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=top]:inset-x-0 data-[side=left]:inset-y-0 data-[side=right]:inset-y-0 data-[side=top]:top-0 data-[side=right]:right-0 data-[side=bottom]:bottom-0 data-[side=left]:left-0 data-[side=bottom]:h-auto data-[side=left]:h-full data-[side=right]:h-full data-[side=top]:h-auto data-[side=left]:w-3/4 data-[side=right]:w-3/4 data-closed:animate-out data-open:animate-in data-[side=bottom]:border-t data-[side=left]:border-r data-[side=top]:border-b data-[side=right]:border-l data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm\",\n className,\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <SheetPrimitive.Close\n data-slot=\"sheet-close\"\n render={<Button variant=\"ghost\" className=\"absolute top-4 right-4\" size=\"icon-sm\" />}\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Popup>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col gap-1.5 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({ className, ...props }: SheetPrimitive.Title.Props) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\"font-medium text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({ className, ...props }: SheetPrimitive.Description.Props) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\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\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"animate-pulse rounded-md bg-muted-foreground/15\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n","\"use client\"\n\nimport { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction TooltipProvider({ delay = 0, ...props }: TooltipPrimitive.Provider.Props) {\n return <TooltipPrimitive.Provider data-slot=\"tooltip-provider\" delay={delay} {...props} />\n}\n\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n}\n\nfunction TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n side = \"top\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n children,\n ...props\n}: TooltipPrimitive.Popup.Props &\n Pick<TooltipPrimitive.Positioner.Props, \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\">) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n \"data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:fade-out-0 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 z-50 w-fit max-w-xs origin-(--transform-origin) rounded-md bg-foreground px-3 py-1.5 text-background text-xs data-[state=delayed-open]:animate-in data-closed:animate-out data-open:animate-in\",\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-start]:top-1/2! data-[side=left]:top-1/2! data-[side=right]:top-1/2! data-[side=inline-start]:-right-1 data-[side=left]:-right-1 data-[side=top]:-bottom-2.5 data-[side=inline-end]:-left-1 data-[side=right]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:-translate-y-1/2 data-[side=right]:-translate-y-1/2\" />\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","\"use client\"\n\nimport { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { PanelLeftIcon } from \"lucide-react\"\nimport * as React from \"react\"\nimport { useIsMobile } from \"../hooks/use-mobile\"\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\nimport { Input } from \"./input\"\nimport { Separator } from \"./separator\"\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from \"./sheet\"\nimport { Skeleton } from \"./skeleton\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"./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\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\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<\"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 // biome-ignore lint/suspicious/noDocumentCookie: sidebar state persistence\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 ? setOpenMobile((open) => !open) : setOpen((open) => !open)\n }, [isMobile, setOpen])\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\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, toggleSidebar],\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <div\n data-slot=\"sidebar-wrapper\"\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 {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n )\n}\n\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n dir,\n ...props\n}: React.ComponentProps<\"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 {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n dir={dir}\n data-sidebar=\"sidebar\"\n data-slot=\"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 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 data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\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)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n data-side={side}\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=right]:right-0 data-[side=left]:left-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] md:flex\",\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)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\nfunction SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon-sm\"\n className={cn(className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeftIcon className=\"cn-rtl-flip\" />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n const { toggleSidebar } = useSidebar()\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"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 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]:-right-4 group-data-[side=right]:left-0 sm:flex ltr:-translate-x-1/2 rtl:-translate-x-1/2\",\n \"in-data-[side=left]:cursor-w-resize in-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 hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:after:left-full\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n \"relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarInput({ className, ...props }: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\"h-8 w-full bg-background shadow-none\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\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\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\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\nfunction SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\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\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"no-scrollbar 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\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\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\nfunction SidebarGroupLabel({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"div\"> & React.ComponentProps<\"div\">) {\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\n \"text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 flex shrink-0 items-center outline-hidden [&>svg]:shrink-0\",\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: \"sidebar-group-label\",\n sidebar: \"group-label\",\n },\n })\n}\n\nfunction SidebarGroupAction({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"button\"> & React.ComponentProps<\"button\">) {\n return useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 w-5 rounded-md p-0 focus-visible:ring-2 [&>svg]:size-4 flex aspect-square items-center justify-center outline-hidden transition-transform [&>svg]:shrink-0 after:absolute after:-inset-2 md:after:hidden group-data-[collapsible=icon]:hidden\",\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: \"sidebar-group-action\",\n sidebar: \"group-action\",\n },\n })\n}\n\nfunction SidebarGroupContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\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\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\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\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\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\nconst sidebarMenuButtonVariants = cva(\n \"ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-md p-2 text-left text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-active:font-medium peer/menu-button flex w-full items-center overflow-hidden outline-hidden group/menu-button 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\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] 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\nfunction SidebarMenuButton({\n render,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n}: useRender.ComponentProps<\"button\"> &\n React.ComponentProps<\"button\"> & {\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n } & VariantProps<typeof sidebarMenuButtonVariants>) {\n const { isMobile, state } = useSidebar()\n const buttonProps = mergeProps<\"button\">(\n {\n className: cn(sidebarMenuButtonVariants({ variant, size }), className),\n },\n props,\n )\n const buttonState = {\n slot: \"sidebar-menu-button\",\n sidebar: \"menu-button\",\n size,\n active: isActive,\n }\n\n if (!tooltip) {\n return useRender({\n defaultTagName: \"button\",\n props: buttonProps,\n render,\n state: buttonState,\n })\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n }\n }\n\n // When tooltip is present, wrap in Tooltip but preserve the render prop\n // so the element renders as the correct tag (e.g. <a> via Next.js Link)\n const triggerRender = render ?? <button />\n return (\n <Tooltip>\n <TooltipTrigger\n render={triggerRender}\n {...buttonProps}\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive || undefined}\n />\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n )\n}\n\nfunction SidebarMenuAction({\n className,\n render,\n showOnHover = false,\n ...props\n}: useRender.ComponentProps<\"button\"> &\n React.ComponentProps<\"button\"> & {\n showOnHover?: boolean\n }) {\n return useRender({\n defaultTagName: \"button\",\n props: mergeProps<\"button\">(\n {\n className: cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 aspect-square w-5 rounded-md p-0 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 focus-visible:ring-2 [&>svg]:size-4 flex items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0\",\n showOnHover &&\n \"peer-data-active/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 aria-expanded:opacity-100 md:opacity-0\",\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: \"sidebar-menu-action\",\n sidebar: \"menu-action\",\n },\n })\n}\n\nfunction SidebarMenuBadge({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 font-medium text-sidebar-foreground text-xs tabular-nums peer-hover/menu-button:text-sidebar-accent-foreground group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 peer-data-active/menu-button:text-sidebar-accent-foreground\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showIcon?: boolean\n}) {\n // Random width between 50 to 90%.\n const [width] = React.useState(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`\n })\n\n return (\n <div\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 && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\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\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\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-sidebar-border border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n )\n}\n\nfunction SidebarMenuSubButton({\n render,\n size = \"md\",\n isActive = false,\n className,\n ...props\n}: useRender.ComponentProps<\"a\"> &\n React.ComponentProps<\"a\"> & {\n size?: \"sm\" | \"md\"\n isActive?: boolean\n }) {\n return useRender({\n defaultTagName: \"a\",\n props: mergeProps<\"a\">(\n {\n className: cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground h-7 gap-2 rounded-md px-2 focus-visible:ring-2 data-[size=md]:text-sm data-[size=sm]:text-xs [&>svg]:size-4 flex min-w-0 -translate-x-px items-center overflow-hidden outline-hidden group-data-[collapsible=icon]:hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0\",\n className,\n ),\n },\n props,\n ),\n render,\n state: {\n slot: \"sidebar-menu-sub-button\",\n sidebar: \"menu-sub-button\",\n size,\n active: isActive,\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 { Slider as SliderPrimitive } from \"@base-ui/react/slider\"\nimport * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: SliderPrimitive.Root.Props) {\n const _values = React.useMemo(\n () => (Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max]),\n [value, defaultValue, min, max],\n )\n\n return (\n <SliderPrimitive.Root\n className={cn(\"data-vertical:h-full data-horizontal:w-full\", className)}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n thumbAlignment=\"edge\"\n {...props}\n >\n <SliderPrimitive.Control className=\"relative flex w-full touch-none select-none items-center data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col data-disabled:opacity-50\">\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className=\"relative grow select-none overflow-hidden rounded-full bg-muted data-horizontal:h-1.5 data-vertical:h-full data-horizontal:w-full data-vertical:w-1.5\"\n >\n <SliderPrimitive.Indicator\n data-slot=\"slider-range\"\n className=\"select-none bg-primary data-horizontal:h-full data-vertical:w-full\"\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"block size-4 shrink-0 select-none rounded-full border border-primary bg-white shadow-sm ring-ring/50 transition-[color,box-shadow] hover:ring-4 focus-visible:outline-hidden focus-visible:ring-4 disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Control>\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n","\"use client\"\n\nimport {\n CircleCheckIcon,\n InfoIcon,\n Loader2Icon,\n OctagonXIcon,\n TriangleAlertIcon,\n} from \"lucide-react\"\nimport { Toaster as Sonner, type ToasterProps } from \"sonner\"\n\nconst Toaster = ({ theme, ...props }: ToasterProps) => {\n return (\n <Sonner\n theme={theme}\n className=\"toaster group\"\n icons={{\n success: <CircleCheckIcon className=\"size-4\" />,\n info: <InfoIcon className=\"size-4\" />,\n warning: <TriangleAlertIcon className=\"size-4\" />,\n error: <OctagonXIcon className=\"size-4\" />,\n loading: <Loader2Icon className=\"size-4 animate-spin\" />,\n }}\n style={\n {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n \"--border-radius\": \"var(--radius)\",\n } as React.CSSProperties\n }\n toastOptions={{\n classNames: {\n toast: \"cn-toast\",\n },\n }}\n {...props}\n />\n )\n}\n\nexport { Toaster }\n","\"use client\"\n\nimport type * as ResizablePrimitive from \"react-resizable-panels\"\n\nimport { cn } from \"../lib/utils\"\nimport { ResizableHandle, ResizablePanel, ResizablePanelGroup } from \"./resizable\"\n\ntype SplitPaneDirection = \"horizontal\" | \"vertical\"\n\ninterface SplitPaneProps extends Omit<React.ComponentProps<\"div\">, \"dir\"> {\n /** Layout direction. @default \"horizontal\" */\n direction?: SplitPaneDirection\n children: React.ReactNode\n}\n\nfunction SplitPane({ direction = \"horizontal\", className, children, ...props }: SplitPaneProps) {\n return (\n <div data-slot=\"split-pane\" className={cn(\"flex h-full w-full\", className)} {...props}>\n {/* @ts-expect-error direction type mismatch between react-resizable-panels versions */}\n <ResizablePanelGroup direction={direction}>{children}</ResizablePanelGroup>\n </div>\n )\n}\n\ninterface SplitPanePanelProps extends ResizablePrimitive.PanelProps {}\n\nfunction SplitPanePanel({ minSize = 20, defaultSize = 35, ...props }: SplitPanePanelProps) {\n return <ResizablePanel minSize={minSize} defaultSize={defaultSize} {...props} />\n}\n\ninterface SplitPaneDividerProps\n extends Omit<React.ComponentProps<typeof ResizableHandle>, \"withHandle\"> {\n /** Show a visible grab indicator. @default true */\n withHandle?: boolean\n}\n\nfunction SplitPaneDivider({ withHandle = true, className, ...props }: SplitPaneDividerProps) {\n return (\n <ResizableHandle\n withHandle={withHandle}\n className={cn(\"data-[slot=resizable-handle]:bg-border\", className)}\n {...props}\n />\n )\n}\n\nexport { SplitPane, SplitPaneDivider, SplitPanePanel }\nexport type { SplitPaneDividerProps, SplitPaneDirection, SplitPaneProps, SplitPanePanelProps }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport { TrendingDownIcon, TrendingUpIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction Stat({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"stat\" className={cn(\"space-y-1\", className)} {...props} />\n}\n\nfunction StatLabel({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"stat-label\"\n className={cn(\"font-medium text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction StatValue({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"stat-value\"\n className={cn(\"font-bold text-2xl tracking-tight\", className)}\n {...props}\n />\n )\n}\n\nconst trendVariants = cva(\"inline-flex items-center gap-1 text-xs font-medium\", {\n variants: {\n direction: {\n up: \"text-emerald-600 dark:text-emerald-400\",\n down: \"text-red-600 dark:text-red-400\",\n neutral: \"text-muted-foreground\",\n },\n },\n defaultVariants: { direction: \"neutral\" },\n})\n\ntype StatTrendProps = React.ComponentProps<\"span\"> & VariantProps<typeof trendVariants>\n\nfunction StatTrend({ className, direction, children, ...props }: StatTrendProps) {\n return (\n <span data-slot=\"stat-trend\" className={cn(trendVariants({ direction }), className)} {...props}>\n {direction === \"up\" && <TrendingUpIcon className=\"size-3.5\" />}\n {direction === \"down\" && <TrendingDownIcon className=\"size-3.5\" />}\n {children}\n </span>\n )\n}\n\nexport { Stat, StatLabel, StatValue, StatTrend, trendVariants }\nexport type { StatTrendProps }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\nconst statusIndicatorVariants = cva(\"relative inline-flex shrink-0 rounded-full\", {\n variants: {\n variant: {\n online: \"bg-emerald-500\",\n offline: \"bg-muted-foreground/40\",\n busy: \"bg-destructive\",\n away: \"bg-amber-500\",\n pending: \"bg-blue-500\",\n },\n size: {\n sm: \"size-2\",\n default: \"size-2.5\",\n lg: \"size-3.5\",\n },\n pulse: {\n true: \"\",\n false: \"\",\n },\n },\n compoundVariants: [\n { pulse: true, variant: \"online\", className: \"animate-pulse\" },\n { pulse: true, variant: \"busy\", className: \"animate-pulse\" },\n { pulse: true, variant: \"pending\", className: \"animate-pulse\" },\n ],\n defaultVariants: {\n variant: \"online\",\n size: \"default\",\n pulse: false,\n },\n})\n\ntype StatusIndicatorProps = React.ComponentProps<\"span\"> &\n VariantProps<typeof statusIndicatorVariants> & {\n /** Accessible label describing the status */\n label?: string\n }\n\nfunction StatusIndicator({\n variant,\n size,\n pulse,\n label,\n className,\n ...props\n}: StatusIndicatorProps) {\n const defaultLabels: Record<string, string> = {\n online: \"Online\",\n offline: \"Offline\",\n busy: \"Busy\",\n away: \"Away\",\n pending: \"Pending\",\n }\n\n return (\n <span\n data-slot=\"status-indicator\"\n role=\"status\"\n aria-label={label ?? defaultLabels[variant ?? \"online\"]}\n className={cn(statusIndicatorVariants({ variant, size, pulse }), className)}\n {...props}\n />\n )\n}\n\nexport { StatusIndicator, statusIndicatorVariants }\nexport type { StatusIndicatorProps }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport { CheckIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype StepProgressStatus = \"complete\" | \"current\" | \"upcoming\"\n\nconst stepProgressVariants = cva(\"\", {\n variants: {\n orientation: {\n horizontal: \"flex w-full items-start\",\n vertical: \"flex flex-col\",\n },\n },\n defaultVariants: {\n orientation: \"vertical\",\n },\n})\n\ntype StepProgressProps = React.ComponentProps<\"div\"> & VariantProps<typeof stepProgressVariants>\n\nfunction StepProgress({ orientation, className, ...props }: StepProgressProps) {\n return (\n <div\n data-slot=\"step-progress\"\n data-orientation={orientation ?? \"vertical\"}\n className={cn(stepProgressVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\ntype StepProgressItemProps = React.ComponentProps<\"div\"> & {\n status?: StepProgressStatus\n}\n\nfunction StepProgressItem({ status = \"upcoming\", className, ...props }: StepProgressItemProps) {\n return (\n <div\n data-slot=\"step-progress-item\"\n data-status={status}\n className={cn(\n \"relative flex\",\n // Vertical: row layout, bottom padding\n \"[[data-orientation='vertical']_&]:gap-3 [[data-orientation='vertical']_&]:pb-8 [[data-orientation='vertical']_&]:last:pb-0\",\n // Horizontal: column layout, flex-1 to share space\n \"[[data-orientation='horizontal']_&]:flex-1 [[data-orientation='horizontal']_&]:flex-col [[data-orientation='horizontal']_&]:items-center [[data-orientation='horizontal']_&]:gap-2\",\n className,\n )}\n {...props}\n />\n )\n}\n\nconst indicatorStyles: Record<StepProgressStatus, string> = {\n complete: \"border-emerald-500 bg-emerald-500 text-white\",\n current: \"border-primary bg-primary text-primary-foreground\",\n upcoming: \"border-border bg-background text-muted-foreground\",\n}\n\ntype StepProgressIndicatorProps = React.ComponentProps<\"div\"> & {\n status?: StepProgressStatus\n step?: number\n}\n\nfunction StepProgressIndicator({\n status = \"upcoming\",\n step,\n className,\n ...props\n}: StepProgressIndicatorProps) {\n return (\n <div\n data-slot=\"step-progress-indicator\"\n className={cn(\n \"relative z-10 flex size-8 shrink-0 items-center justify-center rounded-full border-2 font-semibold text-xs\",\n indicatorStyles[status],\n className,\n )}\n {...props}\n >\n {status === \"complete\" ? <CheckIcon className=\"size-4\" /> : step}\n </div>\n )\n}\n\nfunction StepProgressConnector({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"step-progress-connector\"\n className={cn(\n // Vertical: line going down\n \"[[data-orientation='vertical']_&]:absolute [[data-orientation='vertical']_&]:top-8 [[data-orientation='vertical']_&]:left-[15px] [[data-orientation='vertical']_&]:h-[calc(100%-2rem)] [[data-orientation='vertical']_&]:w-0.5\",\n // Horizontal: line going right\n \"[[data-orientation='horizontal']_&]:absolute [[data-orientation='horizontal']_&]:top-4 [[data-orientation='horizontal']_&]:left-[calc(50%+20px)] [[data-orientation='horizontal']_&]:h-0.5 [[data-orientation='horizontal']_&]:w-[calc(100%-40px)]\",\n \"bg-border\",\n \"[&[data-complete='true']]:bg-emerald-500\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction StepProgressContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"step-progress-content\"\n className={cn(\n \"min-w-0\",\n \"[[data-orientation='vertical']_&]:pt-1\",\n \"[[data-orientation='horizontal']_&]:text-center\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction StepProgressTitle({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"step-progress-title\"\n className={cn(\"font-medium text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction StepProgressDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"step-progress-description\"\n className={cn(\"text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nexport {\n StepProgress,\n StepProgressItem,\n StepProgressIndicator,\n StepProgressConnector,\n StepProgressContent,\n StepProgressTitle,\n StepProgressDescription,\n stepProgressVariants,\n}\nexport type {\n StepProgressProps,\n StepProgressItemProps,\n StepProgressIndicatorProps,\n StepProgressStatus,\n}\n","\"use client\"\n\nimport { AnimatePresence, domAnimation, LazyMotion, m } from \"motion/react\"\nimport { useEffect, useRef } from \"react\"\n\nimport { useAnimationTimer } from \"../hooks/use-animation-timer\"\nimport { cn } from \"../lib/utils\"\n\nconst EASE_OUT: [number, number, number, number] = [0.22, 0.61, 0.36, 1]\n\ninterface StreamingCardsProps {\n /** Array of card content to cycle through */\n children: React.ReactNode[]\n /** Number of cards visible at once. Default: 3 */\n maxVisible?: number\n /** Milliseconds between each new card. Default: 2800 */\n interval?: number\n /** Whether older cards fade to lower opacity. Default: true */\n fadeOlder?: boolean\n className?: string\n}\n\nfunction StreamingCards({\n children,\n maxVisible = 3,\n interval = 2800,\n fadeOlder = true,\n className,\n}: StreamingCardsProps) {\n const [timerRef, tick] = useAnimationTimer(interval)\n const count = Math.min(tick + 1, maxVisible)\n const startIdx = Math.max(0, tick + 1 - count)\n const visibleIndices = Array.from({ length: count }, (_, i) => (startIdx + i) % children.length)\n const scrollRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (scrollRef.current) {\n scrollRef.current.scrollTo({\n top: scrollRef.current.scrollHeight,\n behavior: \"smooth\",\n })\n }\n }, [])\n\n return (\n <LazyMotion features={domAnimation}>\n <div\n ref={timerRef}\n data-slot=\"streaming-cards\"\n className={cn(\"flex flex-col overflow-hidden\", className)}\n >\n <div\n ref={scrollRef}\n className=\"scrollbar-none flex flex-1 flex-col gap-2.5 overflow-y-auto\"\n >\n <AnimatePresence initial={false}>\n {visibleIndices.map((childIdx, i) => {\n const isLatest = i === visibleIndices.length - 1\n return (\n <m.div\n key={`${i}-${childIdx}`}\n initial={{ opacity: 0, y: 16 }}\n animate={{\n opacity: fadeOlder ? (isLatest ? 1 : 0.5) : 1,\n y: 0,\n }}\n exit={{ opacity: 0, y: -8 }}\n transition={{ duration: 0.4, ease: EASE_OUT }}\n >\n {children[childIdx]}\n </m.div>\n )\n })}\n </AnimatePresence>\n </div>\n </div>\n </LazyMotion>\n )\n}\n\nexport { StreamingCards }\nexport type { StreamingCardsProps }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\ntype WaffleChartSegment = {\n /** Percentage value (0–100) */\n value: number\n /** CSS color (hex, rgb, hsl, oklch). Defaults to var(--color-primary) resolved at render time. */\n color?: string\n /** Optional label */\n label?: string\n}\n\ntype WaffleChartMode = \"grid\" | \"bar\"\ntype WaffleChartSize = \"xs\" | \"sm\" | \"default\" | \"lg\"\n\nconst waffleChartVariants = cva(\"w-full text-foreground\", {\n variants: {\n mode: {\n grid: \"\",\n bar: \"\",\n },\n size: {\n xs: \"\",\n sm: \"\",\n default: \"\",\n lg: \"\",\n },\n },\n compoundVariants: [\n { mode: \"bar\", size: \"xs\", className: \"h-4\" },\n { mode: \"bar\", size: \"sm\", className: \"h-6\" },\n { mode: \"bar\", size: \"default\", className: \"h-10\" },\n { mode: \"bar\", size: \"lg\", className: \"h-16\" },\n { mode: \"grid\", size: \"xs\", className: \"max-w-32 aspect-square\" },\n { mode: \"grid\", size: \"sm\", className: \"max-w-48 aspect-square\" },\n { mode: \"grid\", size: \"default\", className: \"max-w-sm aspect-square\" },\n { mode: \"grid\", size: \"lg\", className: \"max-w-lg aspect-square\" },\n ],\n defaultVariants: {\n mode: \"grid\",\n size: \"default\",\n },\n})\n\ntype WaffleChartProps = Omit<React.ComponentProps<\"div\">, \"size\"> &\n Omit<VariantProps<typeof waffleChartVariants>, \"mode\"> & {\n /** Segments to display. Remaining cells render as muted. */\n segments: WaffleChartSegment[]\n /** Display mode. \"grid\" renders a square waffle grid, \"bar\" renders a horizontal striped bar. Defaults to \"grid\". */\n mode?: WaffleChartMode\n /** Size variant. Defaults to \"default\". */\n size?: WaffleChartSize\n /** Whether to animate cells filling in. Defaults to true. */\n animate?: boolean\n /** Animation duration in ms. Defaults to 800. */\n duration?: number\n /** Gap between cells in px. Defaults to 2 for grid, 2.5 for bar. */\n gap?: number\n /** Corner radius of each cell in px. Defaults to 2 for grid, 1 for bar. */\n radius?: number\n /** Number of rows (grid mode). Defaults to 10. */\n rows?: number\n /** Number of columns (grid mode). Defaults to 10. */\n cols?: number\n /** Total number of stripes (bar mode). Defaults to 60. */\n stripes?: number\n /** Show dotted dividers between segments (bar mode only). Defaults to true. */\n dividers?: boolean\n }\n\nfunction WaffleChart({\n segments,\n mode = \"grid\",\n size = \"default\",\n animate = true,\n duration = 800,\n gap: gapProp,\n radius: radiusProp,\n rows = 10,\n cols = 10,\n stripes = 60,\n dividers = true,\n className,\n ...props\n}: WaffleChartProps) {\n const canvasRef = React.useRef<HTMLCanvasElement>(null)\n const containerRef = React.useRef<HTMLDivElement>(null)\n const progressRef = React.useRef(animate ? 0 : 1)\n const startTimeRef = React.useRef<number | null>(null)\n const colorsRef = React.useRef<{ muted: string; divider: string; primary: string } | null>(null)\n\n const gap = gapProp ?? (mode === \"bar\" ? 2.5 : 2)\n const radius = radiusProp ?? (mode === \"bar\" ? 1 : 2)\n\n // ── Grid mode data ──\n const totalCells = rows * cols\n const gridCellData = React.useMemo(() => {\n if (mode !== \"grid\") return []\n const cells: { color: string | null; useDefault: boolean }[] = []\n for (const seg of segments) {\n const count = Math.round((seg.value / 100) * totalCells)\n const hasExplicitColor = seg.color != null\n for (let i = 0; i < count; i++) {\n cells.push({ color: seg.color ?? null, useDefault: !hasExplicitColor })\n }\n }\n const remaining = Math.max(0, totalCells - cells.length)\n for (let i = 0; i < remaining; i++) {\n cells.push({ color: null, useDefault: false })\n }\n return cells\n }, [segments, totalCells, mode])\n\n // ── Bar mode data ──\n const barBlockData = React.useMemo(() => {\n if (mode !== \"bar\") return []\n const blocks: { color: string | null; useDefault: boolean; dividerAfter: boolean }[] = []\n for (const seg of segments) {\n const count = Math.round((seg.value / 100) * stripes)\n const hasExplicitColor = seg.color != null\n for (let i = 0; i < count; i++) {\n blocks.push({\n color: seg.color ?? null,\n useDefault: !hasExplicitColor,\n dividerAfter: false,\n })\n }\n if (dividers && blocks.length > 0) {\n blocks[blocks.length - 1].dividerAfter = true\n }\n }\n const remaining = Math.max(0, stripes - blocks.length)\n for (let i = 0; i < remaining; i++) {\n blocks.push({ color: null, useDefault: false, dividerAfter: false })\n }\n if (blocks.length > 0) {\n blocks[blocks.length - 1].dividerAfter = false\n }\n return blocks\n }, [segments, stripes, dividers, mode])\n\n // Resolve theme colors once on mount\n React.useEffect(() => {\n const container = containerRef.current\n if (!container) return\n const style = getComputedStyle(container)\n const fg = style.color\n const match = fg.match(/[\\d.]+/g)\n const primary =\n style.getPropertyValue(\"--color-primary\").trim() || style.getPropertyValue(\"--primary\").trim()\n if (match && match.length >= 3) {\n const [r, g, b] = match\n colorsRef.current = {\n muted: `rgba(${r}, ${g}, ${b}, 0.1)`,\n divider: `rgba(${r}, ${g}, ${b}, 0.3)`,\n primary: primary || `rgb(${r}, ${g}, ${b})`,\n }\n } else {\n colorsRef.current = {\n muted: \"color-mix(in oklch, var(--foreground) 10%, transparent)\",\n divider: \"color-mix(in oklch, var(--foreground) 30%, transparent)\",\n primary: primary || \"var(--color-primary)\",\n }\n }\n }, [])\n\n // ── Grid draw ──\n const drawGrid = React.useCallback(\n (ctx: CanvasRenderingContext2D, w: number, h: number) => {\n if (totalCells === 0) return\n const cellW = (w - (cols - 1) * gap) / cols\n const cellH = (h - (rows - 1) * gap) / rows\n const progress = progressRef.current\n const visibleCells = Math.floor(progress * totalCells)\n const colors = colorsRef.current ?? {\n muted: \"oklch(0.5 0 0 / 0.1)\",\n primary: \"var(--color-primary)\",\n }\n\n for (let row = 0; row < rows; row++) {\n for (let col = 0; col < cols; col++) {\n const idx = row * cols + col\n const cell = gridCellData[idx]\n if (!cell) continue\n const hasColor = cell.color !== null || cell.useDefault\n const isFilled = hasColor && idx < visibleCells\n const fillColor = cell.useDefault ? colors.primary : cell.color!\n ctx.fillStyle = isFilled ? fillColor : colors.muted\n const x = col * (cellW + gap)\n const y = row * (cellH + gap)\n ctx.beginPath()\n ctx.roundRect(x, y, cellW, cellH, radius)\n ctx.fill()\n }\n }\n },\n [gridCellData, rows, cols, gap, radius, totalCells],\n )\n\n // ── Bar draw ──\n const drawBar = React.useCallback(\n (ctx: CanvasRenderingContext2D, w: number, h: number) => {\n const total = barBlockData.length\n if (total === 0) return\n\n const rowGap = gap\n const colGap = gap\n const dividerGap = 10\n const dividerCount = barBlockData.filter((b) => b.dividerAfter).length\n\n const targetSize = 4\n const barRows = Math.max(1, Math.floor((h + rowGap) / (targetSize + rowGap)))\n const blockH = (h - (barRows - 1) * rowGap) / barRows\n // For divider blocks, replace the normal colGap with dividerGap (equal space on each side of dots)\n const normalGaps = total - 1 - dividerCount\n const availableWidth = w - normalGaps * colGap - dividerCount * dividerGap\n const blockW = Math.max(2, availableWidth / total)\n\n const progress = progressRef.current\n const visibleCols = Math.floor(progress * total)\n const colors = colorsRef.current ?? {\n muted: \"oklch(0.5 0 0 / 0.1)\",\n divider: \"oklch(0.5 0 0 / 0.3)\",\n primary: \"var(--color-primary)\",\n }\n\n let x = 0\n for (let col = 0; col < total; col++) {\n const block = barBlockData[col]\n const hasColor = block.color !== null || block.useDefault\n const isFilled = hasColor && col < visibleCols\n const fillColor = block.useDefault ? colors.primary : block.color!\n ctx.fillStyle = isFilled ? fillColor : colors.muted\n\n for (let row = 0; row < barRows; row++) {\n const y = row * (blockH + rowGap)\n ctx.beginPath()\n ctx.roundRect(x, y, blockW, blockH, radius)\n ctx.fill()\n }\n\n if (block.dividerAfter) {\n // Advance past the block, then center dots in the dividerGap\n const halfGap = dividerGap / 2\n x += blockW + halfGap\n\n const dotRadius = 1\n const dotSpacing = 4\n const dotCount = Math.max(3, Math.floor(h / dotSpacing))\n const totalDotH = dotCount * dotSpacing\n const startY = (h - totalDotH) / 2 + dotSpacing / 2\n ctx.fillStyle = colors.divider\n for (let d = 0; d < dotCount; d++) {\n const dotY = startY + d * dotSpacing\n ctx.beginPath()\n ctx.arc(x, dotY, dotRadius, 0, Math.PI * 2)\n ctx.fill()\n }\n\n x += halfGap\n } else if (col < total - 1) {\n x += blockW + colGap\n }\n }\n },\n [barBlockData, gap, radius],\n )\n\n const draw = React.useCallback(() => {\n const canvas = canvasRef.current\n const container = containerRef.current\n if (!canvas || !container) return\n\n const dpr = window.devicePixelRatio || 1\n const rect = container.getBoundingClientRect()\n const w = rect.width\n const h = rect.height\n if (w === 0 || h === 0) return\n\n canvas.width = w * dpr\n canvas.height = h * dpr\n canvas.style.width = `${w}px`\n canvas.style.height = `${h}px`\n\n const ctx = canvas.getContext(\"2d\")\n if (!ctx) return\n ctx.scale(dpr, dpr)\n ctx.clearRect(0, 0, w, h)\n\n if (mode === \"grid\") {\n drawGrid(ctx, w, h)\n } else {\n drawBar(ctx, w, h)\n }\n }, [mode, drawGrid, drawBar])\n\n // Animation loop\n React.useEffect(() => {\n if (!animate) {\n progressRef.current = 1\n const id = requestAnimationFrame(() => draw())\n return () => cancelAnimationFrame(id)\n }\n\n progressRef.current = 0\n startTimeRef.current = null\n let rafId: number\n\n function animateFrame(timestamp: number) {\n if (!startTimeRef.current) startTimeRef.current = timestamp\n const elapsed = timestamp - startTimeRef.current\n const t = Math.min(elapsed / duration, 1)\n progressRef.current = 1 - (1 - t) ** 3\n draw()\n if (t < 1) {\n rafId = requestAnimationFrame(animateFrame)\n }\n }\n\n rafId = requestAnimationFrame(animateFrame)\n return () => cancelAnimationFrame(rafId)\n }, [animate, duration, draw])\n\n // Redraw on resize\n React.useEffect(() => {\n const container = containerRef.current\n if (!container) return\n let timeout: ReturnType<typeof setTimeout>\n const observer = new ResizeObserver(() => {\n clearTimeout(timeout)\n timeout = setTimeout(() => draw(), 50)\n })\n observer.observe(container)\n return () => {\n observer.disconnect()\n clearTimeout(timeout)\n }\n }, [draw])\n\n return (\n <div\n ref={containerRef}\n data-slot=\"waffle-chart\"\n className={cn(waffleChartVariants({ mode, size }), className)}\n {...props}\n >\n <canvas ref={canvasRef} className=\"block size-full\" />\n </div>\n )\n}\n\nexport { WaffleChart, waffleChartVariants }\nexport type { WaffleChartProps, WaffleChartSegment, WaffleChartMode, WaffleChartSize }\n","/**\n * @deprecated Use `<WaffleChart mode=\"bar\" />` instead.\n * StripedBar is now an alias for WaffleChart in bar mode.\n */\nimport type * as React from \"react\"\nimport { WaffleChart, type WaffleChartSegment } from \"./waffle-chart\"\n\ntype StripedBarSegment = WaffleChartSegment\n\ntype StripedBarProps = React.ComponentProps<\"div\"> & {\n /** Segments to display. Remaining percentage renders as muted blocks. */\n segments: StripedBarSegment[]\n /** Total number of columns. Defaults to 60. */\n stripes?: number\n /** Whether to animate blocks filling in. Defaults to true. */\n animated?: boolean\n /** Animation duration in ms. Defaults to 800. */\n duration?: number\n}\n\nfunction StripedBar({\n segments,\n stripes = 60,\n animated = true,\n duration = 800,\n ...props\n}: StripedBarProps) {\n return (\n <WaffleChart\n segments={segments}\n mode=\"bar\"\n stripes={stripes}\n animate={animated}\n duration={duration}\n {...props}\n />\n )\n}\n\nexport { StripedBar }\nexport type { StripedBarProps, StripedBarSegment }\n","\"use client\"\n\nimport { useEffect, useRef } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\ntype Palette = \"blue\" | \"green\" | \"amber\"\n\nconst PALETTES: Record<Palette, { light: string[]; dark: string[] }> = {\n blue: {\n light: [\"100, 140, 200\", \"80, 160, 120\", \"140, 100, 180\"],\n dark: [\"140, 180, 255\", \"160, 255, 180\", \"200, 160, 255\"],\n },\n green: {\n light: [\"60, 140, 90\", \"100, 160, 60\", \"40, 120, 130\"],\n dark: [\"120, 220, 150\", \"180, 255, 120\", \"100, 200, 180\"],\n },\n amber: {\n light: [\"180, 130, 60\", \"160, 100, 80\", \"140, 140, 60\"],\n dark: [\"255, 200, 120\", \"255, 160, 140\", \"220, 220, 120\"],\n },\n}\n\ntype SubtleShaderProps = React.ComponentProps<\"canvas\"> & {\n paused?: boolean\n palette?: Palette\n}\n\nfunction SubtleShader({\n paused = false,\n palette = \"blue\",\n className,\n ...props\n}: SubtleShaderProps) {\n const canvasRef = useRef<HTMLCanvasElement>(null)\n const rafRef = useRef(0)\n const pausedRef = useRef(paused)\n\n useEffect(() => {\n pausedRef.current = paused\n }, [paused])\n\n useEffect(() => {\n const canvas = canvasRef.current\n if (!canvas) return\n\n const ctx = canvas.getContext(\"2d\")\n if (!ctx) return\n\n const mq = window.matchMedia(\"(prefers-reduced-motion: reduce)\")\n if (mq.matches) return\n\n const startTime = performance.now()\n\n const resize = () => {\n const dpr = Math.min(window.devicePixelRatio, 2)\n const w = canvas.clientWidth\n const h = canvas.clientHeight\n canvas.width = w * dpr * 0.25\n canvas.height = h * dpr * 0.25\n }\n\n resize()\n window.addEventListener(\"resize\", resize)\n\n const render = (now: number) => {\n if (pausedRef.current) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n const w = canvas.width\n const h = canvas.height\n if (w === 0 || h === 0) {\n rafRef.current = requestAnimationFrame(render)\n return\n }\n\n const t = (now - startTime) * 0.00008\n\n const isDark = document.documentElement.classList.contains(\"dark\")\n const baseAlpha = isDark ? 0.06 : 0.04\n const colors = isDark ? PALETTES[palette].dark : PALETTES[palette].light\n\n ctx.clearRect(0, 0, w, h)\n\n const blobs = [\n {\n x: w * (0.3 + 0.2 * Math.sin(t * 1.1)),\n y: h * (0.3 + 0.2 * Math.cos(t * 0.9)),\n r: Math.max(w, h) * 0.6,\n color: colors[0],\n },\n {\n x: w * (0.7 + 0.15 * Math.cos(t * 0.7)),\n y: h * (0.6 + 0.2 * Math.sin(t * 1.3)),\n r: Math.max(w, h) * 0.5,\n color: colors[1],\n },\n {\n x: w * (0.5 + 0.25 * Math.sin(t * 0.5)),\n y: h * (0.4 + 0.15 * Math.cos(t * 1.1)),\n r: Math.max(w, h) * 0.55,\n color: colors[2],\n },\n ]\n\n for (const blob of blobs) {\n const gradient = ctx.createRadialGradient(blob.x, blob.y, 0, blob.x, blob.y, blob.r)\n gradient.addColorStop(0, `rgba(${blob.color}, ${baseAlpha})`)\n gradient.addColorStop(1, `rgba(${blob.color}, 0)`)\n ctx.fillStyle = gradient\n ctx.fillRect(0, 0, w, h)\n }\n\n rafRef.current = requestAnimationFrame(render)\n }\n\n rafRef.current = requestAnimationFrame(render)\n\n return () => {\n cancelAnimationFrame(rafRef.current)\n window.removeEventListener(\"resize\", resize)\n }\n }, [palette])\n\n return (\n <canvas\n ref={canvasRef}\n data-slot=\"subtle-shader\"\n className={cn(\"absolute inset-0 h-full w-full\", className)}\n style={{ imageRendering: \"auto\", filter: \"blur(40px)\" }}\n {...props}\n />\n )\n}\n\nexport { SubtleShader }\nexport type { Palette as SubtleShaderPalette, SubtleShaderProps }\n","\"use client\"\n\nimport { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction Tabs({ className, orientation = \"horizontal\", ...props }: TabsPrimitive.Root.Props) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-orientation={orientation}\n data-horizontal={orientation === \"horizontal\" ? \"\" : undefined}\n data-vertical={orientation === \"vertical\" ? \"\" : undefined}\n className={cn(\"group/tabs flex gap-2 data-horizontal:flex-col\", className)}\n {...props}\n />\n )\n}\n\nconst tabsListVariants = cva(\n \"rounded-lg p-[3px] group-data-horizontal/tabs:h-12 group-data-horizontal/tabs:md:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit max-w-full items-center justify-between overflow-x-auto overflow-y-hidden group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col group-data-vertical/tabs:overflow-x-visible\",\n {\n variants: {\n variant: {\n default: \"bg-muted\",\n line: \"gap-1 bg-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n)\n\nfunction TabsList({\n className,\n variant = \"default\",\n ...props\n}: TabsPrimitive.List.Props & VariantProps<typeof tabsListVariants>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props) {\n return (\n <TabsPrimitive.Tab\n data-slot=\"tabs-trigger\"\n className={cn(\n \"relative inline-flex h-[calc(100%-1px)] shrink-0 items-center justify-center gap-1.5 whitespace-nowrap rounded-md border border-transparent px-2 py-1 font-medium text-foreground/60 text-sm transition-all hover:text-foreground focus-visible:border-ring focus-visible:outline-1 focus-visible:outline-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 group-data-vertical/tabs:w-full group-data-vertical/tabs:shrink group-data-vertical/tabs:justify-start group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none dark:text-muted-foreground dark:hover:text-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n \"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent\",\n \"data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground\",\n \"after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({ className, ...props }: TabsPrimitive.Panel.Props) {\n return (\n <TabsPrimitive.Panel\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 text-sm outline-none\", className)}\n {...props}\n />\n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants }\n","\"use client\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { XIcon } from \"lucide-react\"\nimport type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nconst tagVariants = cva(\n \"inline-flex items-center gap-1 rounded-md border px-2 py-0.5 text-xs font-medium transition-colors\",\n {\n variants: {\n variant: {\n default: \"border-border bg-background text-foreground hover:bg-muted\",\n primary: \"border-primary/30 bg-primary/10 text-primary\",\n secondary: \"border-secondary bg-secondary text-secondary-foreground\",\n destructive: \"border-destructive/30 bg-destructive/10 text-destructive\",\n success: \"border-emerald-500/30 bg-emerald-500/10 text-emerald-700 dark:text-emerald-400\",\n },\n },\n defaultVariants: { variant: \"default\" },\n },\n)\n\ntype TagProps = React.ComponentProps<\"span\"> &\n VariantProps<typeof tagVariants> & {\n /** Called when the remove button is clicked. If provided, shows the X button. */\n onRemove?: () => void\n }\n\nfunction Tag({ className, variant, children, onRemove, ...props }: TagProps) {\n return (\n <span data-slot=\"tag\" className={cn(tagVariants({ variant }), className)} {...props}>\n {children}\n {onRemove && (\n <button\n type=\"button\"\n onClick={onRemove}\n className=\"ml-0.5 cursor-pointer rounded-sm opacity-70 transition-opacity hover:opacity-100\"\n aria-label=\"Remove\"\n >\n <XIcon className=\"size-3\" />\n </button>\n )}\n </span>\n )\n}\n\nexport { Tag, tagVariants }\nexport type { TagProps }\n","/**\n * Inline script that syncs the `.dark` class on `<html>` with the OS\n * color-scheme preference. Drop this into `<head>` to avoid FOUC.\n *\n * Works with the DS's `@custom-variant dark (&:is(.dark *))` directive.\n *\n * @example\n * // app/layout.tsx\n * import { ThemeScript } from \"@cogentic/ds\"\n *\n * export default function RootLayout({ children }) {\n * return (\n * <html lang=\"en\" suppressHydrationWarning>\n * <head>\n * <ThemeScript />\n * </head>\n * <body>{children}</body>\n * </html>\n * )\n * }\n */\nexport function ThemeScript() {\n const script = `(function(){var d=document.documentElement;var m=window.matchMedia(\"(prefers-color-scheme:dark)\");function s(e){e.matches?d.classList.add(\"dark\"):d.classList.remove(\"dark\")}s(m);m.addEventListener(\"change\",s)})();`\n\n // biome-ignore lint/security/noDangerouslySetInnerHtml: inline script for theme flash prevention\n return <script dangerouslySetInnerHTML={{ __html: script }} />\n}\n","import type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction Timeline({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"timeline\" className={cn(\"relative space-y-0 pl-8\", className)} {...props} />\n )\n}\n\ntype TimelineItemProps = React.ComponentProps<\"div\">\n\nfunction TimelineItem({ className, ...props }: TimelineItemProps) {\n return (\n <div\n data-slot=\"timeline-item\"\n className={cn(\n \"relative pb-8 last:pb-0\",\n \"before:absolute before:top-2 before:left-[-25px] before:h-full before:w-px before:bg-border last:before:hidden\",\n className,\n )}\n {...props}\n />\n )\n}\n\ntype TimelineDotProps = React.ComponentProps<\"div\">\n\nfunction TimelineDot({ className, children, ...props }: TimelineDotProps) {\n return (\n <div\n data-slot=\"timeline-dot\"\n className={cn(\n \"absolute top-0.5 left-[-35px] flex size-[22px] items-center justify-center rounded-full border-2 border-border bg-background\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nfunction TimelineContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"timeline-content\" className={cn(\"text-sm\", className)} {...props} />\n}\n\nfunction TimelineTitle({ className, ...props }: React.ComponentProps<\"p\">) {\n return <p data-slot=\"timeline-title\" className={cn(\"font-medium\", className)} {...props} />\n}\n\nfunction TimelineTime({ className, ...props }: React.ComponentProps<\"time\">) {\n return (\n <time\n data-slot=\"timeline-time\"\n className={cn(\"text-muted-foreground text-xs\", className)}\n {...props}\n />\n )\n}\n\nexport { Timeline, TimelineItem, TimelineDot, TimelineContent, TimelineTitle, TimelineTime }\nexport type { TimelineItemProps, TimelineDotProps }\n","\"use client\"\n\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../lib/utils\"\n\nconst toggleVariants = cva(\n \"hover:text-foreground aria-pressed:bg-muted focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive gap-1 rounded-md text-sm font-medium transition-[color,box-shadow] [&_svg:not([class*='size-'])]:size-4 group/toggle hover:bg-muted inline-flex items-center justify-center whitespace-nowrap outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border-input hover:bg-muted border bg-transparent shadow-xs\",\n },\n size: {\n default: \"h-9 min-w-9 px-2\",\n sm: \"h-8 min-w-8 px-1.5\",\n lg: \"h-10 min-w-10 px-2.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n)\n\nfunction Toggle({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n","\"use client\"\n\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\"\nimport { ToggleGroup as ToggleGroupPrimitive } from \"@base-ui/react/toggle-group\"\nimport type { VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\nimport { toggleVariants } from \"./toggle\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n orientation: \"horizontal\",\n})\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n orientation = \"horizontal\",\n children,\n ...props\n}: ToggleGroupPrimitive.Props &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }) {\n return (\n <ToggleGroupPrimitive\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=0]:data-[variant=outline]:shadow-xs data-vertical:flex-col data-vertical:items-stretch\",\n className,\n )}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size, spacing, orientation }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant = \"default\",\n size = \"default\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <TogglePrimitive\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n \"shrink-0 focus:z-10 focus-visible:z-10 data-[state=on]:bg-muted group-data-[spacing=0]/toggle-group:rounded-none group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-[spacing=0]/toggle-group:px-2 group-data-[spacing=0]/toggle-group:shadow-none group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-md group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-md group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-md group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-md\",\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className,\n )}\n {...props}\n >\n {children}\n </TogglePrimitive>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n","\"use client\"\n\nimport { useEffect, useRef, useState } from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\ninterface TypewriterLine {\n text: string\n className?: string\n indent?: number\n}\n\ninterface TypewriterProps {\n /** Array of lines to reveal sequentially */\n lines: TypewriterLine[]\n /** Milliseconds between each line appearing. Default: 80 */\n speed?: number\n /** Whether to show line numbers. Default: true */\n showLineNumbers?: boolean\n /** Whether to show a blinking cursor while typing. Default: true */\n showCursor?: boolean\n /** Whether to loop the animation. Default: false */\n loop?: boolean\n /** Milliseconds to pause before looping. Default: 3000 */\n loopDelay?: number\n className?: string\n}\n\nfunction Typewriter({\n lines,\n speed = 80,\n showLineNumbers = true,\n showCursor = true,\n loop = false,\n loopDelay = 3000,\n className,\n}: TypewriterProps) {\n const [visibleLines, setVisibleLines] = useState(0)\n const scrollRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (visibleLines < lines.length) {\n const id = setTimeout(() => setVisibleLines((v) => v + 1), speed)\n return () => clearTimeout(id)\n } else if (loop) {\n const id = setTimeout(() => setVisibleLines(0), loopDelay)\n return () => clearTimeout(id)\n }\n }, [visibleLines, lines.length, speed, loop, loopDelay])\n\n useEffect(() => {\n const el = scrollRef.current\n if (!el) return\n requestAnimationFrame(() => {\n el.scrollTop = el.scrollHeight\n })\n }, [])\n\n return (\n <div\n ref={scrollRef}\n data-slot=\"typewriter\"\n className={cn(\"overflow-y-auto font-mono text-sm\", className)}\n >\n <div className=\"space-y-0.5\">\n {lines.slice(0, visibleLines).map((line, i) => (\n <div key={i} className=\"flex\">\n {showLineNumbers && (\n <span className=\"w-6 shrink-0 select-none text-right text-muted-foreground/40 text-xs\">\n {i + 1}\n </span>\n )}\n <span\n className={cn(\"ml-3 text-xs\", line.className ?? \"text-foreground/60\")}\n style={{ paddingLeft: (line.indent ?? 0) * 16 }}\n >\n {line.text || \"\\u00A0\"}\n </span>\n </div>\n ))}\n {showCursor && visibleLines < lines.length && (\n <div className=\"flex\">\n {showLineNumbers && <span className=\"w-6\" />}\n <span className=\"ml-3 animate-pulse text-foreground/30 text-xs\">{\"\\u2588\"}</span>\n </div>\n )}\n </div>\n </div>\n )\n}\n\nexport { Typewriter }\nexport type { TypewriterProps, TypewriterLine }\n","import { cva, type VariantProps } from \"class-variance-authority\"\nimport type * as React from \"react\"\n\nimport { cn } from \"../lib/utils\"\n\n/* ────────────────────────────────────────────────────────────────────────────\n * Prose — container for rich text / markdown content\n * ──────────────────────────────────────────────────────────────────────────── */\n\nconst proseVariants = cva(\n [\n \"[&>*+*]:mt-6\",\n \"[&>h1+*]:mt-4 [&>h2+*]:mt-4 [&>h3+*]:mt-3 [&>h4+*]:mt-3\",\n \"[&>hr]:my-8 [&>hr]:border-border\",\n \"[&_a]:text-primary [&_a]:underline [&_a]:underline-offset-4 [&_a:hover]:text-primary/80\",\n \"[&_strong]:font-semibold\",\n \"[&_code]:rounded [&_code]:bg-muted [&_code]:px-1.5 [&_code]:py-0.5 [&_code]:font-mono [&_code]:text-[0.875em]\",\n \"[&_pre]:overflow-x-auto [&_pre]:rounded-lg [&_pre]:bg-muted [&_pre]:p-4 [&_pre_code]:bg-transparent [&_pre_code]:p-0\",\n \"[&_img]:rounded-lg\",\n \"[&_table]:w-full [&_table]:border-collapse\",\n \"[&_th]:border [&_th]:border-border [&_th]:px-3 [&_th]:py-2 [&_th]:text-left [&_th]:font-semibold\",\n \"[&_td]:border [&_td]:border-border [&_td]:px-3 [&_td]:py-2\",\n ].join(\" \"),\n {\n variants: {\n size: {\n sm: \"text-sm [&>h1]:text-2xl [&>h2]:text-xl [&>h3]:text-lg [&>h4]:text-base [&_p]:leading-6 [&_li]:leading-6\",\n default:\n \"text-base [&>h1]:text-4xl [&>h2]:text-3xl [&>h3]:text-2xl [&>h4]:text-xl [&_p]:leading-7 [&_li]:leading-7\",\n lg: \"text-lg [&>h1]:text-5xl [&>h2]:text-4xl [&>h3]:text-3xl [&>h4]:text-2xl [&_p]:leading-8 [&_li]:leading-8\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n },\n)\n\ntype ProseProps = React.ComponentProps<\"div\"> & VariantProps<typeof proseVariants>\n\nfunction Prose({ className, size, ...props }: ProseProps) {\n return <div data-slot=\"prose\" className={cn(proseVariants({ size }), className)} {...props} />\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * Heading components\n * ──────────────────────────────────────────────────────────────────────────── */\n\nfunction H1({ className, ...props }: React.ComponentProps<\"h1\">) {\n return (\n <h1\n data-slot=\"h1\"\n className={cn(\"scroll-m-20 text-balance font-extrabold text-4xl tracking-tight\", className)}\n {...props}\n />\n )\n}\n\nfunction H2({ className, ...props }: React.ComponentProps<\"h2\">) {\n return (\n <h2\n data-slot=\"h2\"\n className={cn(\n \"scroll-m-20 border-b pb-2 font-semibold text-3xl tracking-tight first:mt-0\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction H3({ className, ...props }: React.ComponentProps<\"h3\">) {\n return (\n <h3\n data-slot=\"h3\"\n className={cn(\"scroll-m-20 font-semibold text-2xl tracking-tight\", className)}\n {...props}\n />\n )\n}\n\nfunction H4({ className, ...props }: React.ComponentProps<\"h4\">) {\n return (\n <h4\n data-slot=\"h4\"\n className={cn(\"scroll-m-20 font-semibold text-xl tracking-tight\", className)}\n {...props}\n />\n )\n}\n\n/* ────────────────────────────────────────────────────────────────────────────\n * Text components\n * ──────────────────────────────────────────────────────────────────────────── */\n\nfunction P({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p data-slot=\"p\" className={cn(\"leading-7 [&:not(:first-child)]:mt-6\", className)} {...props} />\n )\n}\n\nfunction Blockquote({ className, ...props }: React.ComponentProps<\"blockquote\">) {\n return (\n <blockquote\n data-slot=\"blockquote\"\n className={cn(\"mt-6 border-l-2 pl-6 italic\", className)}\n {...props}\n />\n )\n}\n\nfunction List({\n className,\n ordered,\n ...props\n}: React.ComponentProps<\"ul\"> & { ordered?: boolean }) {\n const listClassName = cn(\n \"my-6 ml-6 [&>li]:mt-2\",\n ordered ? \"list-decimal\" : \"list-disc\",\n className,\n )\n\n if (ordered) {\n return (\n <ol data-slot=\"list\" className={listClassName} {...(props as React.ComponentProps<\"ol\">)} />\n )\n }\n\n return <ul data-slot=\"list\" className={listClassName} {...props} />\n}\n\nfunction Lead({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p data-slot=\"lead\" className={cn(\"text-muted-foreground text-xl\", className)} {...props} />\n )\n}\n\nfunction Large({ className, ...props }: React.ComponentProps<\"div\">) {\n return <div data-slot=\"large\" className={cn(\"font-semibold text-lg\", className)} {...props} />\n}\n\nfunction Small({ className, ...props }: React.ComponentProps<\"small\">) {\n return (\n <small\n data-slot=\"small\"\n className={cn(\"font-medium text-sm leading-none\", className)}\n {...props}\n />\n )\n}\n\nfunction Muted({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p data-slot=\"muted\" className={cn(\"text-muted-foreground text-sm\", className)} {...props} />\n )\n}\n\nfunction InlineCode({ className, ...props }: React.ComponentProps<\"code\">) {\n return (\n <code\n data-slot=\"inline-code\"\n className={cn(\n \"relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono font-semibold text-sm\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Blockquote, H1, H2, H3, H4, InlineCode, Large, Lead, List, Muted, P, Prose, Small }\nexport type { ProseProps }\n","import type * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nfunction VisuallyHidden({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"visually-hidden\"\n className={cn(\n \"absolute h-px w-px overflow-hidden whitespace-nowrap border-0 p-0 [clip:rect(0,0,0,0)]\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { VisuallyHidden }\n","\"use client\"\n\nimport { useCallback, useState } from \"react\"\n\nexport interface UseCarouselOptions {\n initialIndex?: number\n loop?: boolean\n}\n\n/**\n * Custom hook for managing carousel/slider state.\n *\n * @param itemCount - Total number of items in the carousel\n * @param options - Configuration options (initialIndex, loop behavior)\n * @returns Object with carousel state and navigation methods\n */\nexport function useCarouselState(itemCount: number, options: UseCarouselOptions = {}) {\n const { initialIndex = 0, loop = true } = options\n const [activeIndex, setActiveIndex] = useState(initialIndex)\n\n const goToPrev = useCallback(() => {\n setActiveIndex((current) => {\n if (current === 0) {\n return loop ? itemCount - 1 : 0\n }\n return current - 1\n })\n }, [itemCount, loop])\n\n const goToNext = useCallback(() => {\n setActiveIndex((current) => {\n if (current === itemCount - 1) {\n return loop ? 0 : itemCount - 1\n }\n return current + 1\n })\n }, [itemCount, loop])\n\n const goToIndex = useCallback(\n (index: number) => {\n if (index >= 0 && index < itemCount) {\n setActiveIndex(index)\n }\n },\n [itemCount],\n )\n\n return {\n activeIndex,\n setActiveIndex,\n goToPrev,\n goToNext,\n goToIndex,\n }\n}\n","import { useCallback, useState } from \"react\"\n\ntype UseClipboardOptions = {\n /** How long \"copied\" stays true (ms). Default 2000 */\n timeout?: number\n}\n\nfunction useClipboard({ timeout = 2000 }: UseClipboardOptions = {}) {\n const [copied, setCopied] = useState(false)\n\n const copy = useCallback(\n async (text: string) => {\n await navigator.clipboard.writeText(text)\n setCopied(true)\n setTimeout(() => setCopied(false), timeout)\n },\n [timeout],\n )\n\n return { copied, copy }\n}\n\nexport { useClipboard }\nexport type { UseClipboardOptions }\n","import { useEffect, useState } from \"react\"\n\nfunction useDebounce<T>(value: T, delay: number): T {\n const [debounced, setDebounced] = useState(value)\n\n useEffect(() => {\n const timer = setTimeout(() => setDebounced(value), delay)\n return () => clearTimeout(timer)\n }, [value, delay])\n\n return debounced\n}\n\nexport { useDebounce }\n","import { useCallback, useState } from \"react\"\n\ntype UseDisclosureReturn = {\n isOpen: boolean\n onOpen: () => void\n onClose: () => void\n onToggle: () => void\n}\n\nfunction useDisclosure(defaultOpen = false): UseDisclosureReturn {\n const [isOpen, setIsOpen] = useState(defaultOpen)\n\n const onOpen = useCallback(() => setIsOpen(true), [])\n const onClose = useCallback(() => setIsOpen(false), [])\n const onToggle = useCallback(() => setIsOpen((prev) => !prev), [])\n\n return { isOpen, onOpen, onClose, onToggle }\n}\n\nexport { useDisclosure }\nexport type { UseDisclosureReturn }\n","import { useEffect, useRef, useState } from \"react\"\n\ntype UseIntersectionObserverOptions = {\n threshold?: number | number[]\n root?: Element | null\n rootMargin?: string\n /** Only trigger once then disconnect */\n once?: boolean\n}\n\nfunction useIntersectionObserver<T extends Element = HTMLDivElement>(\n options: UseIntersectionObserverOptions = {},\n) {\n const { threshold = 0, root = null, rootMargin = \"0px\", once = false } = options\n const ref = useRef<T>(null)\n const [isIntersecting, setIsIntersecting] = useState(false)\n\n useEffect(() => {\n const element = ref.current\n if (!element) return\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n setIsIntersecting(entry.isIntersecting)\n if (entry.isIntersecting && once) {\n observer.disconnect()\n }\n },\n { threshold, root, rootMargin },\n )\n\n observer.observe(element)\n return () => observer.disconnect()\n }, [threshold, root, rootMargin, once])\n\n return { ref, isIntersecting }\n}\n\nexport { useIntersectionObserver }\nexport type { UseIntersectionObserverOptions }\n","import { useCallback, useState } from \"react\"\n\nfunction useLocalStorage<T>(\n key: string,\n initialValue: T,\n): [T, (value: T | ((prev: T) => T)) => void] {\n const [storedValue, setStoredValue] = useState<T>(() => {\n if (typeof window === \"undefined\") return initialValue\n try {\n const item = window.localStorage.getItem(key)\n return item ? (JSON.parse(item) as T) : initialValue\n } catch {\n return initialValue\n }\n })\n\n const setValue = useCallback(\n (value: T | ((prev: T) => T)) => {\n setStoredValue((prev) => {\n const next = value instanceof Function ? value(prev) : value\n if (typeof window !== \"undefined\") {\n window.localStorage.setItem(key, JSON.stringify(next))\n }\n return next\n })\n },\n [key],\n )\n\n return [storedValue, setValue]\n}\n\nexport { useLocalStorage }\n","import { useEffect, useState } from \"react\"\n\nfunction useMediaQuery(query: string): boolean {\n const [matches, setMatches] = useState(false)\n\n useEffect(() => {\n const mql = window.matchMedia(query)\n setMatches(mql.matches)\n\n function onChange(e: MediaQueryListEvent) {\n setMatches(e.matches)\n }\n\n mql.addEventListener(\"change\", onChange)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [query])\n\n return matches\n}\n\nexport { useMediaQuery }\n","import { ChevronRight, ChevronsUpDown, LogOut, User } from \"lucide-react\"\nimport * as React from \"react\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"../components/avatar\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"../components/breadcrumb\"\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from \"../components/collapsible\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"../components/dropdown-menu\"\nimport { ScrollArea } from \"../components/scroll-area\"\nimport { Separator } from \"../components/separator\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarTrigger,\n} from \"../components/sidebar\"\nimport { cn } from \"../lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype NavItem = {\n label: string\n icon?: React.ComponentType<React.SVGProps<SVGSVGElement>>\n href: string\n isActive?: boolean\n children?: NavItem[]\n /** Optional badge rendered after the label */\n badge?: React.ReactNode\n}\n\ntype NavGroup = {\n title: string\n items: NavItem[]\n defaultOpen?: boolean\n}\n\ntype AppShellUser = {\n name: string\n email: string\n avatar?: string\n}\n\ntype BreadcrumbSegment = {\n label: string\n href?: string\n}\n\ntype AppShellLogo = {\n icon?: React.ReactNode\n title: string\n subtitle?: string\n href?: string\n}\n\ninterface AppShellProps {\n /** Logo/branding for the sidebar header */\n logo: AppShellLogo\n /** Main navigation groups rendered in the sidebar body */\n nav: NavGroup[]\n /** Optional footer navigation group (e.g. Help, Settings) */\n footerNav?: NavGroup\n /** User data — renders a user menu in the sidebar footer */\n user?: AppShellUser\n /** Breadcrumb segments for the header */\n breadcrumbs?: BreadcrumbSegment[]\n /** Extra content rendered on the right side of the header */\n headerActions?: React.ReactNode\n /** Custom user menu items rendered before the logout item */\n userMenuItems?: React.ReactNode\n /** Called when the user clicks \"Log out\" */\n onLogout?: () => void\n /** Component to use for links (e.g. Next.js Link). Defaults to `\"a\"`. */\n linkComponent?: React.ElementType\n /** Extra content rendered below the logo in the sidebar header */\n sidebarHeaderExtra?: React.ReactNode\n /** Page content */\n children: React.ReactNode\n className?: string\n}\n\n// ---------------------------------------------------------------------------\n// Internal components\n// ---------------------------------------------------------------------------\n\nfunction ShellLogo({\n logo,\n linkComponent: Link = \"a\",\n}: {\n logo: AppShellLogo\n linkComponent?: React.ElementType\n}) {\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <SidebarMenuButton size=\"lg\" render={<Link href={logo.href ?? \"/\"} />}>\n {logo.icon && (\n <div className=\"flex aspect-square size-8 items-center justify-center rounded-sm bg-primary text-primary-foreground\">\n {logo.icon}\n </div>\n )}\n <div className=\"flex flex-col gap-0.5 leading-none\">\n <span className=\"font-medium\">{logo.title}</span>\n {logo.subtitle && (\n <span className=\"text-muted-foreground text-xs\">{logo.subtitle}</span>\n )}\n </div>\n </SidebarMenuButton>\n </SidebarMenuItem>\n </SidebarMenu>\n )\n}\n\nfunction ShellNavItem({\n item,\n linkComponent: Link = \"a\",\n}: {\n item: NavItem\n linkComponent?: React.ElementType\n}) {\n const Icon = item.icon\n const hasChildren = item.children && item.children.length > 0\n\n if (!hasChildren) {\n return (\n <SidebarMenuItem>\n <SidebarMenuButton render={<Link href={item.href} />} isActive={item.isActive}>\n {Icon && <Icon className=\"size-4\" />}\n <span>{item.label}</span>\n {item.badge && <span className=\"ml-auto\">{item.badge}</span>}\n </SidebarMenuButton>\n </SidebarMenuItem>\n )\n }\n\n return (\n <Collapsible defaultOpen className=\"group/collapsible\">\n <SidebarMenuItem>\n <CollapsibleTrigger render={<SidebarMenuButton isActive={item.isActive} />}>\n {Icon && <Icon className=\"size-4\" />}\n <span>{item.label}</span>\n <ChevronRight className=\"ml-auto size-4 transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90\" />\n </CollapsibleTrigger>\n <CollapsibleContent>\n <SidebarMenuSub>\n {item.children!.map((child) => (\n <SidebarMenuSubItem key={child.label}>\n <SidebarMenuSubButton render={<Link href={child.href} />} isActive={child.isActive}>\n {child.label}\n </SidebarMenuSubButton>\n </SidebarMenuSubItem>\n ))}\n </SidebarMenuSub>\n </CollapsibleContent>\n </SidebarMenuItem>\n </Collapsible>\n )\n}\n\nfunction ShellUserMenu({\n user,\n userMenuItems,\n onLogout,\n}: {\n user: AppShellUser\n userMenuItems?: React.ReactNode\n onLogout?: () => void\n}) {\n const initials = user.name\n .split(\" \")\n .map((n) => n[0])\n .join(\"\")\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger\n render={\n <SidebarMenuButton\n size=\"lg\"\n className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n />\n }\n >\n <Avatar className=\"size-8 rounded-lg\">\n {user.avatar && <AvatarImage src={user.avatar} alt={user.name} />}\n <AvatarFallback className=\"rounded-lg\">{initials}</AvatarFallback>\n </Avatar>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-medium\">{user.name}</span>\n <span className=\"truncate text-muted-foreground text-xs\">{user.email}</span>\n </div>\n <ChevronsUpDown className=\"ml-auto size-4\" />\n </DropdownMenuTrigger>\n <DropdownMenuContent\n className=\"min-w-56 rounded-lg\"\n side=\"bottom\"\n align=\"end\"\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"p-0 font-normal\">\n <div className=\"flex items-center gap-2 px-1 py-1.5 text-left text-sm\">\n <Avatar className=\"size-8 rounded-lg\">\n {user.avatar && <AvatarImage src={user.avatar} alt={user.name} />}\n <AvatarFallback className=\"rounded-lg\">{initials}</AvatarFallback>\n </Avatar>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-medium\">{user.name}</span>\n <span className=\"truncate text-muted-foreground text-xs\">{user.email}</span>\n </div>\n </div>\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n {userMenuItems ?? (\n <DropdownMenuItem>\n <User className=\"mr-2 size-4\" />\n Account\n </DropdownMenuItem>\n )}\n {onLogout && (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={onLogout}>\n <LogOut className=\"mr-2 size-4\" />\n Log out\n </DropdownMenuItem>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n )\n}\n\n// ---------------------------------------------------------------------------\n// AppShell\n// ---------------------------------------------------------------------------\n\nfunction AppShell({\n logo,\n nav,\n footerNav,\n user,\n breadcrumbs,\n headerActions,\n userMenuItems,\n onLogout,\n sidebarHeaderExtra,\n linkComponent: Link = \"a\",\n children,\n className,\n}: AppShellProps) {\n return (\n <SidebarProvider className={cn(className)}>\n <Sidebar>\n <SidebarHeader>\n <ShellLogo logo={logo} linkComponent={Link} />\n {sidebarHeaderExtra}\n </SidebarHeader>\n\n <SidebarContent className=\"overflow-hidden\">\n <ScrollArea className=\"min-h-0 flex-1\">\n {nav.map((group) => (\n <SidebarGroup key={group.title}>\n <SidebarGroupLabel>{group.title}</SidebarGroupLabel>\n <SidebarGroupContent>\n <SidebarMenu>\n {group.items.map((item) => (\n <ShellNavItem key={item.label} item={item} linkComponent={Link} />\n ))}\n </SidebarMenu>\n </SidebarGroupContent>\n </SidebarGroup>\n ))}\n </ScrollArea>\n </SidebarContent>\n\n <SidebarFooter>\n {footerNav && (\n <SidebarGroup>\n <SidebarGroupContent>\n <SidebarMenu>\n {footerNav.items.map((item) => (\n <ShellNavItem key={item.label} item={item} linkComponent={Link} />\n ))}\n </SidebarMenu>\n </SidebarGroupContent>\n </SidebarGroup>\n )}\n {user && <ShellUserMenu user={user} userMenuItems={userMenuItems} onLogout={onLogout} />}\n </SidebarFooter>\n\n <SidebarRail />\n </Sidebar>\n\n <SidebarInset>\n <header className=\"sticky top-0 z-10 flex h-16 shrink-0 items-center gap-2 border-b bg-background px-4\">\n <SidebarTrigger className=\"-ml-1\" />\n <Separator\n orientation=\"vertical\"\n className=\"mr-2 hidden data-[orientation=vertical]:h-4 md:block\"\n />\n {/* Mobile logo */}\n <Link href={logo.href ?? \"/\"} className=\"flex items-center gap-2 md:hidden\">\n {logo.icon && (\n <div className=\"flex aspect-square size-8 items-center justify-center rounded-sm bg-primary text-primary-foreground\">\n {logo.icon}\n </div>\n )}\n <span className=\"font-semibold\">{logo.title}</span>\n </Link>\n\n {/* Breadcrumbs */}\n {breadcrumbs && breadcrumbs.length > 0 && (\n <Breadcrumb className=\"hidden md:block\">\n <BreadcrumbList>\n {breadcrumbs.map((segment, i) => (\n <React.Fragment key={segment.label}>\n {i > 0 && <BreadcrumbSeparator />}\n <BreadcrumbItem>\n {i === breadcrumbs.length - 1 || !segment.href ? (\n <BreadcrumbPage>{segment.label}</BreadcrumbPage>\n ) : (\n <BreadcrumbLink href={segment.href}>{segment.label}</BreadcrumbLink>\n )}\n </BreadcrumbItem>\n </React.Fragment>\n ))}\n </BreadcrumbList>\n </Breadcrumb>\n )}\n\n {headerActions && <div className=\"ml-auto flex items-center gap-2\">{headerActions}</div>}\n </header>\n\n <div className=\"flex flex-1 flex-col gap-4 p-4\">{children}</div>\n </SidebarInset>\n </SidebarProvider>\n )\n}\n\nexport { AppShell }\nexport type { AppShellProps, AppShellLogo, AppShellUser, NavItem, NavGroup, BreadcrumbSegment }\n"]}