@yuva-devlab/ui 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/common.css +0 -40
  2. package/dist/components/badge/badge.css +31 -27
  3. package/dist/components/badge/badge.mdx +6 -4
  4. package/dist/components/chain-of-thought/chain-of-thought.css +72 -0
  5. package/dist/components/chain-of-thought/chain-of-thought.mdx +18 -0
  6. package/dist/components/checkpoint/checkpoint.css +54 -0
  7. package/dist/components/checkpoint/checkpoint.mdx +18 -0
  8. package/dist/components/code-block/code-block.css +84 -0
  9. package/dist/components/code-block/code-block.mdx +26 -0
  10. package/dist/components/confirmation/confirmation.css +75 -0
  11. package/dist/components/confirmation/confirmation.mdx +22 -0
  12. package/dist/components/context/context.css +80 -0
  13. package/dist/components/context/context.mdx +18 -0
  14. package/dist/components/data-table/data-table.css +71 -0
  15. package/dist/components/data-table/data-table.mdx +22 -0
  16. package/dist/components/file-tree/file-tree.css +58 -0
  17. package/dist/components/file-tree/file-tree.mdx +18 -0
  18. package/dist/components/input-number/input-number.css +95 -0
  19. package/dist/components/input-number/input-number.mdx +34 -0
  20. package/dist/components/kbd/kbd.css +78 -0
  21. package/dist/components/kbd/kbd.mdx +30 -0
  22. package/dist/components/legal-footer/legal-footer.css +98 -0
  23. package/dist/components/legal-footer/legal-footer.mdx +38 -0
  24. package/dist/components/message/message.css +89 -0
  25. package/dist/components/message/message.mdx +14 -0
  26. package/dist/components/model-selector/model-selector.css +138 -0
  27. package/dist/components/model-selector/model-selector.mdx +26 -0
  28. package/dist/components/multi-select/multi-select.css +212 -0
  29. package/dist/components/multi-select/multi-select.mdx +30 -0
  30. package/dist/components/password-input/password-input.css +21 -0
  31. package/dist/components/password-input/password-input.mdx +30 -0
  32. package/dist/components/plan/plan.css +106 -0
  33. package/dist/components/plan/plan.mdx +22 -0
  34. package/dist/components/popover/popover.css +0 -5
  35. package/dist/components/prompt-input/prompt-input.css +140 -0
  36. package/dist/components/prompt-input/prompt-input.mdx +22 -0
  37. package/dist/components/queue/queue.css +76 -0
  38. package/dist/components/queue/queue.mdx +18 -0
  39. package/dist/components/search-input/search-input.css +21 -0
  40. package/dist/components/search-input/search-input.mdx +30 -0
  41. package/dist/components/select/select.css +1 -1
  42. package/dist/components/sonner/sonner.css +68 -17
  43. package/dist/components/sonner/sonner.mdx +5 -3
  44. package/dist/components/sources/sources.css +105 -0
  45. package/dist/components/sources/sources.mdx +18 -0
  46. package/dist/components/stack-trace/stack-trace.css +105 -0
  47. package/dist/components/stack-trace/stack-trace.mdx +18 -0
  48. package/dist/components/subagent/subagent.css +70 -0
  49. package/dist/components/subagent/subagent.mdx +18 -0
  50. package/dist/components/suggestion/suggestion.css +52 -0
  51. package/dist/components/suggestion/suggestion.mdx +14 -0
  52. package/dist/components/terminal/terminal.css +60 -0
  53. package/dist/components/terminal/terminal.mdx +26 -0
  54. package/dist/components/test-results/test-results.css +108 -0
  55. package/dist/components/test-results/test-results.mdx +18 -0
  56. package/dist/components/tool-call/tool-call.css +111 -0
  57. package/dist/components/tool-call/tool-call.mdx +22 -0
  58. package/dist/components/trace/trace.css +100 -0
  59. package/dist/components/trace/trace.mdx +18 -0
  60. package/dist/components.css +2716 -333
  61. package/dist/index.cjs +3605 -793
  62. package/dist/index.cjs.map +1 -1
  63. package/dist/index.d.cts +1065 -8
  64. package/dist/index.d.ts +1065 -8
  65. package/dist/index.js +3638 -842
  66. package/dist/index.js.map +1 -1
  67. package/dist/preset.css +0 -1
  68. package/dist/styles/common.css +0 -40
  69. package/dist/styles/components.css +2716 -333
  70. package/dist/styles/preset.css +0 -1
  71. package/package.json +4 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/lib/utils.ts","../src/theme-provider.tsx","../src/hooks/use-mobile.ts","../src/components/accordion/accordion.tsx","../src/components/alert/alert.tsx","../src/components/alert-dialog/alert-dialog.tsx","../src/components/button/button.tsx","../src/components/aspect-ratio/aspect-ratio.tsx","../src/components/avatar/avatar.tsx","../src/components/badge/badge.tsx","../src/components/breadcrumb/breadcrumb.tsx","../src/components/calendar/calendar.tsx","../src/components/card/card.tsx","../src/components/carousel/carousel-context.tsx","../src/components/carousel/carousel-items.tsx","../src/components/chart/chart-context.tsx","../src/components/chart/chart-container.tsx","../src/components/chart/chart-tooltip.tsx","../src/components/chart/chart-legend.tsx","../src/components/checkbox/checkbox.tsx","../src/components/collapsible/collapsible.tsx","../src/components/command/command.tsx","../src/components/dialog/dialog.tsx","../src/components/confirm-dialog/confirm-dialog.tsx","../src/components/context-menu/context-menu-primitives.tsx","../src/components/context-menu/context-menu-items.tsx","../src/components/date-picker/date-picker.tsx","../src/components/popover/popover.tsx","../src/components/drawer/drawer.tsx","../src/components/dropdown-menu/dropdown-menu-primitives.tsx","../src/components/dropdown-menu/dropdown-menu-items.tsx","../src/components/empty-state/empty-state.tsx","../src/components/form/form.tsx","../src/components/label/label.tsx","../src/components/hover-card/hover-card.tsx","../src/components/input/input.tsx","../src/components/input-otp/input-otp.tsx","../src/components/skeleton/skeleton.tsx","../src/components/loading-state/loading-state.tsx","../src/components/menubar/menubar-primitives.tsx","../src/components/menubar/menubar-items.tsx","../src/components/navigation-menu/navigation-menu.tsx","../src/components/pagination/pagination.tsx","../src/components/panel/panel.tsx","../src/components/progress/progress.tsx","../src/components/radio-group/radio-group.tsx","../src/components/resizable/resizable.tsx","../src/components/scroll-area/scroll-area.tsx","../src/components/searchable-select/searchable-select.tsx","../src/components/searchable-select/use-searchable-select.ts","../src/components/select/select.tsx","../src/components/separator/separator.tsx","../src/components/sheet/sheet.tsx","../src/components/sidebar/sidebar-context.tsx","../src/components/tooltip/tooltip.tsx","../src/components/sidebar/sidebar-layout.tsx","../src/components/sidebar/sidebar-group.tsx","../src/components/sidebar/sidebar-menu.tsx","../src/components/sidebar/sidebar-submenu.tsx","../src/components/sidebar/sidebar-controls.tsx","../src/components/slider/slider.tsx","../src/components/sonner/sonner.tsx","../src/components/status-badge/status-badge.tsx","../src/components/status-chip/status-chip.tsx","../src/components/switch/switch.tsx","../src/components/table/table.tsx","../src/components/tabs/tabs.tsx","../src/components/textarea/textarea.tsx","../src/components/toggle/toggle.tsx","../src/components/toggle-group/toggle-group.tsx","../src/components/metric-card/metric-card.tsx","../src/components/copy-button/copy-button.tsx","../src/components/secret-reveal-card/secret-reveal-card.tsx","../src/components/typography/heading.tsx","../src/components/typography/text.tsx","../src/components/layout/box.tsx","../src/components/layout/flex.tsx","../src/components/layout/stack.tsx","../src/components/layout/grid.tsx","../src/components/layout/container.tsx"],"sourcesContent":["/**\n * Yuva DevLab Design System — UI Component Library\n * Production-ready Radix UI + CVA primitives and scoped dl-* components.\n */\n\n// Utilities & Providers\nexport * from \"./lib/utils\";\nexport * from \"./theme-provider\";\nexport * from \"./hooks/use-mobile\";\n\n// UI Components\nexport * from \"./components\";\n","import { clsx, type ClassValue } from \"clsx\";\n\nexport type { ClassValue };\n\n/**\n * Platform-native class name composer.\n * Zero-overhead utility that joins class names and evaluates conditional expressions.\n * Use for @layer dl-* semantic class composition.\n *\n * @param inputs - Class names, falsy conditionals, or arrays.\n * @returns Clean joined class name string.\n */\nexport function cx(...inputs: ClassValue[]): string {\n return clsx(inputs);\n}\n\n/**\n * Canonical class name helper for components.\n * Joins class names and filters falsy values.\n *\n * @param inputs - List of class names, conditional records, or arrays.\n * @returns Clean joined CSS class string.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return clsx(inputs);\n}\n","import React, { createContext, useContext, useEffect, useState } from \"react\";\n\nexport type Theme = \"dark\" | \"light\" | \"system\" | string;\nexport type ThemeMode = \"light\" | \"dark\" | \"system\";\nexport type Brand = \"finai\" | \"orchestrai\" | string;\n\nexport interface ThemeProviderProps {\n children: React.ReactNode;\n brand?: Brand;\n defaultTheme?: Theme;\n storageKey?: string;\n brandStorageKey?: string;\n attribute?: string;\n brandAttribute?: string;\n enableSystem?: boolean;\n}\n\nexport interface ThemeProviderState {\n theme: Theme;\n brand: Brand;\n setTheme: (theme: Theme) => void;\n setBrand: (brand: Brand) => void;\n resolvedTheme: \"dark\" | \"light\";\n}\n\nconst initialState: ThemeProviderState = {\n theme: \"system\",\n brand: \"finai\",\n setTheme: () => null,\n setBrand: () => null,\n resolvedTheme: \"dark\",\n};\n\nconst ThemeProviderContext = createContext<ThemeProviderState>(initialState);\n\n/**\n * Universal theme & brand provider for Yuva DevLab applications (FinAI, OrchestrAI).\n * Handles HTML class manipulation, data-theme and data-brand attributes,\n * system preferences, and localStorage persistence.\n */\nexport function ThemeProvider({\n children,\n brand: initialBrand = \"finai\",\n defaultTheme = \"system\",\n storageKey = \"yd-theme\",\n brandStorageKey = \"yd-brand\",\n attribute = \"data-theme\",\n brandAttribute = \"data-brand\",\n enableSystem = true,\n ...props\n}: ThemeProviderProps) {\n const [theme, setThemeState] = useState<Theme>(() => {\n if (typeof window !== \"undefined\") {\n const stored = localStorage.getItem(storageKey);\n if (stored) return stored;\n }\n return defaultTheme;\n });\n\n const [brand, setBrandState] = useState<Brand>(() => {\n if (typeof window !== \"undefined\") {\n const stored = localStorage.getItem(brandStorageKey);\n if (stored) return stored;\n }\n return initialBrand;\n });\n\n const [resolvedTheme, setResolvedTheme] = useState<\"dark\" | \"light\">(\"dark\");\n\n useEffect(() => {\n const root = window.document.documentElement;\n\n // Remove legacy theme classes\n root.classList.remove(\"light\", \"dark\");\n\n let activeTheme = theme;\n if (theme === \"system\" && enableSystem) {\n const systemTheme = window.matchMedia(\"(prefers-color-scheme: dark)\")\n .matches\n ? \"dark\"\n : \"light\";\n activeTheme = systemTheme;\n }\n\n const isDark =\n activeTheme.includes(\"dark\") ||\n activeTheme === \"orchestrai\" ||\n (brand === \"orchestrai\" && activeTheme !== \"light\");\n\n const resolved = isDark ? \"dark\" : \"light\";\n setResolvedTheme(resolved);\n\n root.classList.add(resolved);\n\n // Apply data-brand attribute\n if (brandAttribute && brand) {\n root.setAttribute(brandAttribute, brand);\n }\n\n // Apply data-theme attribute\n if (attribute) {\n const combinedTheme =\n theme === \"system\"\n ? `${brand}-${resolved}`\n : theme.startsWith(brand)\n ? theme\n : `${brand}-${theme}`;\n root.setAttribute(attribute, combinedTheme);\n }\n }, [theme, brand, enableSystem, attribute, brandAttribute]);\n\n const value: ThemeProviderState = {\n theme,\n brand,\n setTheme: (newTheme: Theme) => {\n if (typeof window !== \"undefined\") {\n localStorage.setItem(storageKey, newTheme);\n }\n setThemeState(newTheme);\n },\n setBrand: (newBrand: Brand) => {\n if (typeof window !== \"undefined\") {\n localStorage.setItem(brandStorageKey, newBrand);\n }\n setBrandState(newBrand);\n },\n resolvedTheme,\n };\n\n return (\n <ThemeProviderContext.Provider {...props} value={value}>\n {children}\n </ThemeProviderContext.Provider>\n );\n}\n\n/**\n * Hook to access current theme & brand state and mutate the theme/brand.\n */\nexport const useTheme = (): ThemeProviderState => {\n const context = useContext(ThemeProviderContext);\n if (context === undefined) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n return context;\n};\n\n/**\n * ConfigProvider: Brand and Theme Configuration Provider for Yuva DevLab applications.\n */\nexport const ConfigProvider = ThemeProvider;\nexport type ConfigProviderProps = ThemeProviderProps;\nexport const useConfig = useTheme;\n","import * as React from \"react\";\n\nconst MOBILE_BREAKPOINT = 768;\n\n/**\n * Hook to determine if current viewport matches mobile breakpoint (< 768px).\n *\n * @returns boolean indicating if the screen is mobile-sized.\n */\nexport function useIsMobile(): boolean {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(\n undefined,\n );\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 * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Root Accordion component from Radix UI providing collapsible disclosure sections.\n * Supports single-item or multi-item expansion.\n *\n * @example\n * ```tsx\n * <Accordion type=\"single\" collapsible>\n * <AccordionItem value=\"item-1\">\n * <AccordionTrigger>Is it accessible?</AccordionTrigger>\n * <AccordionContent>\n * Yes. It adheres to the WAI-ARIA design pattern.\n * </AccordionContent>\n * </AccordionItem>\n * </Accordion>\n * ```\n */\nconst Accordion = AccordionPrimitive.Root;\n\nexport type AccordionItemProps = React.ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Item\n>;\n\n/**\n * Collapsible section item container within an `Accordion`.\n */\nconst AccordionItem = React.forwardRef<\n React.ComponentRef<typeof AccordionPrimitive.Item>,\n AccordionItemProps\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(\"dl-accordion-item\", className)}\n {...props}\n />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\nexport type AccordionTriggerProps = React.ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Trigger\n>;\n\n/**\n * Interactive header trigger button that toggles expansion of the associated accordion panel.\n */\nconst AccordionTrigger = React.forwardRef<\n React.ComponentRef<typeof AccordionPrimitive.Trigger>,\n AccordionTriggerProps\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"dl-accordion-header\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\"dl-accordion-trigger\", className)}\n {...props}\n >\n {children}\n <ChevronDown aria-hidden=\"true\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nexport type AccordionContentProps = React.ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Content\n>;\n\n/**\n * Animated content container revealed when an `AccordionItem` is opened.\n */\nconst AccordionContent = React.forwardRef<\n React.ComponentRef<typeof AccordionPrimitive.Content>,\n AccordionContentProps\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"dl-accordion-content\"\n {...props}\n >\n <div className={cn(\"dl-accordion-content__inner\", className)}>\n {children}\n </div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Alert variant configuration mapping to dl-* scoped CSS classes.\n */\nconst alertVariants = cva(\"dl-alert\", {\n variants: {\n variant: {\n default: \"dl-alert--default\",\n destructive: \"dl-alert--destructive\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\nexport interface AlertProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof alertVariants> {}\n\n/**\n * Banner alert component for prominent user notifications, warnings, or error states.\n *\n * @example\n * ```tsx\n * <Alert variant=\"destructive\">\n * <AlertCircle />\n * <AlertTitle>Authentication Failed</AlertTitle>\n * <AlertDescription>\n * Your session has expired. Please log in again to continue.\n * </AlertDescription>\n * </Alert>\n * ```\n */\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n ),\n);\nAlert.displayName = \"Alert\";\n\nexport type AlertTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\n/**\n * Bold header title element for an `Alert`.\n */\nconst AlertTitle = React.forwardRef<HTMLHeadingElement, AlertTitleProps>(\n ({ className, ...props }, ref) => (\n <h5 ref={ref} className={cn(\"dl-alert__title\", className)} {...props} />\n ),\n);\nAlertTitle.displayName = \"AlertTitle\";\n\nexport type AlertDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\n/**\n * Descriptive body text element within an `Alert`.\n */\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n AlertDescriptionProps\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-alert__desc\", className)} {...props} />\n));\nAlertDescription.displayName = \"AlertDescription\";\n\nexport { Alert, AlertTitle, AlertDescription, alertVariants };\n","import * as React from \"react\";\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\n\nimport { cn } from \"@/lib/utils\";\nimport { buttonVariants } from \"@/components/button\";\n\n/**\n * Modal dialog that interrupts the user with critical information and requires an explicit response.\n * Built upon Radix UI AlertDialog primitive with scoped CSS and token styling.\n *\n * @example\n * ```tsx\n * <AlertDialog open={open} onOpenChange={setOpen}>\n * <AlertDialogTrigger asChild>\n * <Button variant=\"destructive\">Delete Project</Button>\n * </AlertDialogTrigger>\n * <AlertDialogContent>\n * <AlertDialogHeader>\n * <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>\n * <AlertDialogDescription>\n * This action cannot be undone. This will permanently delete your workspace.\n * </AlertDialogDescription>\n * </AlertDialogHeader>\n * <AlertDialogFooter>\n * <AlertDialogCancel>Cancel</AlertDialogCancel>\n * <AlertDialogAction onClick={handleDelete}>Delete</AlertDialogAction>\n * </AlertDialogFooter>\n * </AlertDialogContent>\n * </AlertDialog>\n * ```\n */\nconst AlertDialog = AlertDialogPrimitive.Root;\n\n/** Trigger button that opens the alert dialog. */\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger;\n\n/** Portals alert dialog to document.body for clean stacking. */\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\n\nexport type AlertDialogOverlayProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Overlay\n>;\n\n/** Semi-transparent backdrop overlay rendered beneath the alert dialog. */\nconst AlertDialogOverlay = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Overlay>,\n AlertDialogOverlayProps\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n className={cn(\"dl-alert-dialog-overlay\", className)}\n {...props}\n ref={ref}\n />\n));\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;\n\nexport type AlertDialogContentProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Content\n>;\n\n/** Modal content container for the alert dialog. */\nconst AlertDialogContent = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Content>,\n AlertDialogContentProps\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n className={cn(\"dl-alert-dialog-content\", className)}\n {...props}\n />\n </AlertDialogPortal>\n));\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\n\n/** Top container for alert dialog title and description. */\nconst AlertDialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-alert-dialog-header\", className)} {...props} />\n);\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\n\n/** Bottom container for alert dialog action buttons. */\nconst AlertDialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-alert-dialog-footer\", className)} {...props} />\n);\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\n\n/** Accessible title heading for the alert dialog. */\nconst AlertDialogTitle = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"dl-alert-dialog-title\", className)}\n {...props}\n />\n));\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\n\n/** Explanatory description text for the alert dialog action. */\nconst AlertDialogDescription = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"dl-alert-dialog-desc\", className)}\n {...props}\n />\n));\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName;\n\n/** Confirmation button that completes the alert action. */\nconst AlertDialogAction = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...props}\n />\n));\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\n\n/** Cancellation button that dismisses the alert dialog without side-effects. */\nconst AlertDialogCancel = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(buttonVariants({ variant: \"outline\" }), className)}\n {...props}\n />\n));\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n};\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Button visual variant and size configurations using scoped `dl-btn` CSS classes.\n * Compatible with Class Variance Authority (CVA).\n */\nconst buttonVariants = cva(\"dl-btn\", {\n variants: {\n variant: {\n default: \"dl-btn--default\",\n destructive: \"dl-btn--destructive\",\n outline: \"dl-btn--outline\",\n secondary: \"dl-btn--secondary\",\n ghost: \"dl-btn--ghost\",\n link: \"dl-btn--link\",\n },\n size: {\n default: \"dl-btn--md\",\n sm: \"dl-btn--sm\",\n lg: \"dl-btn--lg\",\n icon: \"dl-btn--icon\",\n },\n },\n defaultVariants: { variant: \"default\", size: \"default\" },\n});\n\nexport interface ButtonProps\n extends\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n /**\n * If true, delegates rendering to the direct child element via Radix Slot.\n * Useful when composing with Next.js Link or custom router anchors.\n * @default false\n */\n asChild?: boolean;\n /**\n * Content to render inside the button.\n */\n children?: React.ReactNode;\n}\n\n/**\n * Primary interactive button component for triggering actions, submitting forms, or navigation.\n *\n * @example\n * ```tsx\n * // Default button\n * <Button onClick={handleClick}>Click me</Button>\n *\n * // Destructive action\n * <Button variant=\"destructive\" size=\"sm\">Delete Record</Button>\n *\n * // Composed as a link using Next.js Link\n * <Button asChild variant=\"outline\">\n * <Link href=\"/dashboard\">Go to Dashboard</Link>\n * </Button>\n * ```\n */\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","import * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\";\n\nexport type AspectRatioProps = React.ComponentPropsWithoutRef<\n typeof AspectRatioPrimitive.Root\n>;\n\n/**\n * Displays content within a desired ratio (e.g. 16/9, 4/3, 1/1).\n *\n * @example\n * ```tsx\n * <div className=\"w-[300px]\">\n * <AspectRatio ratio={16 / 9}>\n * <img\n * src=\"https://images.unsplash.com/photo-1588345921523-c2dcdb7f1dcd\"\n * alt=\"Photo by Drew Beamer\"\n * className=\"rounded-md object-cover w-full h-full\"\n * />\n * </AspectRatio>\n * </div>\n * ```\n */\nconst AspectRatio = AspectRatioPrimitive.Root;\n\nexport { AspectRatio };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport { cn } from \"@/lib/utils\";\n\nexport type AvatarProps = React.ComponentPropsWithoutRef<\n typeof AvatarPrimitive.Root\n>;\n\n/**\n * Avatar container component displaying user profile images or initials fallback.\n *\n * @example\n * ```tsx\n * <Avatar>\n * <AvatarImage src=\"https://github.com/shadcn.png\" alt=\"@shadcn\" />\n * <AvatarFallback>CN</AvatarFallback>\n * </Avatar>\n * ```\n */\nconst Avatar = React.forwardRef<\n React.ComponentRef<typeof AvatarPrimitive.Root>,\n AvatarProps\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\"dl-avatar\", className)}\n {...props}\n />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nexport type AvatarImageProps = React.ComponentPropsWithoutRef<\n typeof AvatarPrimitive.Image\n>;\n\n/**\n * Image element rendered within an `Avatar`.\n */\nconst AvatarImage = React.forwardRef<\n React.ComponentRef<typeof AvatarPrimitive.Image>,\n AvatarImageProps\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"dl-avatar__img\", className)}\n {...props}\n />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nexport type AvatarFallbackProps = React.ComponentPropsWithoutRef<\n typeof AvatarPrimitive.Fallback\n>;\n\n/**\n * Fallback initials or icon element shown when the avatar image fails to load.\n */\nconst AvatarFallback = React.forwardRef<\n React.ComponentRef<typeof AvatarPrimitive.Fallback>,\n AvatarFallbackProps\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\"dl-avatar__fallback\", className)}\n {...props}\n />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\nexport { Avatar, AvatarImage, AvatarFallback };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Badge style variant generator using class-variance-authority.\n */\nconst badgeVariants = cva(\"dl-badge\", {\n variants: {\n variant: {\n default: \"dl-badge--default\",\n secondary: \"dl-badge--secondary\",\n destructive: \"dl-badge--destructive\",\n success: \"dl-badge--success\",\n warning: \"dl-badge--warning\",\n info: \"dl-badge--info\",\n outline: \"dl-badge--outline\",\n },\n },\n defaultVariants: { variant: \"default\" },\n});\n\nexport interface BadgeProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\n/**\n * Small status or label indicator with curated design-token variant styling.\n *\n * @example\n * ```tsx\n * <Badge variant=\"success\">Completed</Badge>\n * <Badge variant=\"destructive\">Failed</Badge>\n * <Badge variant=\"outline\">v1.2.0</Badge>\n * ```\n */\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport type BreadcrumbProps = React.ComponentPropsWithoutRef<\"nav\"> & {\n separator?: React.ReactNode;\n};\n\n/**\n * Breadcrumb navigation landmark providing context about the current page's\n * location within a navigational hierarchy.\n *\n * @example\n * ```tsx\n * <Breadcrumb>\n * <BreadcrumbList>\n * <BreadcrumbItem>\n * <BreadcrumbLink href=\"/\">Home</BreadcrumbLink>\n * </BreadcrumbItem>\n * <BreadcrumbSeparator />\n * <BreadcrumbItem>\n * <BreadcrumbLink href=\"/components\">Components</BreadcrumbLink>\n * </BreadcrumbItem>\n * <BreadcrumbSeparator />\n * <BreadcrumbItem>\n * <BreadcrumbPage>Breadcrumb</BreadcrumbPage>\n * </BreadcrumbItem>\n * </BreadcrumbList>\n * </Breadcrumb>\n * ```\n */\nconst Breadcrumb = React.forwardRef<HTMLElement, BreadcrumbProps>(\n ({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />,\n);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nexport type BreadcrumbListProps = React.ComponentPropsWithoutRef<\"ol\">;\n\n/**\n * Ordered list container (`<ol>`) wrapping breadcrumb items and separators.\n */\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, BreadcrumbListProps>(\n ({ className, ...props }, ref) => (\n <ol ref={ref} className={cn(\"dl-breadcrumb-list\", className)} {...props} />\n ),\n);\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nexport type BreadcrumbItemProps = React.ComponentPropsWithoutRef<\"li\">;\n\n/**\n * Individual item wrapper (`<li>`) within a breadcrumb trail.\n */\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, BreadcrumbItemProps>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn(\"dl-breadcrumb-item\", className)} {...props} />\n ),\n);\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nexport type BreadcrumbLinkProps = React.ComponentPropsWithoutRef<\"a\"> & {\n /** If true, renders the child component as the root link element (e.g. Next.js Link) */\n asChild?: boolean;\n};\n\n/**\n * Interactive link element within a breadcrumb trail.\n */\nconst BreadcrumbLink = React.forwardRef<HTMLAnchorElement, BreadcrumbLinkProps>(\n ({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n ref={ref}\n className={cn(\"dl-breadcrumb-link\", className)}\n {...props}\n />\n );\n },\n);\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nexport type BreadcrumbPageProps = React.ComponentPropsWithoutRef<\"span\">;\n\n/**\n * Non-clickable page title representing the active, current page in a breadcrumb trail.\n */\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, BreadcrumbPageProps>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"dl-breadcrumb-page\", className)}\n {...props}\n />\n ),\n);\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nexport type BreadcrumbSeparatorProps = React.ComponentProps<\"li\">;\n\n/**\n * Decorative divider between breadcrumb items (defaults to a chevron right icon).\n */\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: BreadcrumbSeparatorProps) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n data-slot=\"breadcrumb-separator\"\n className={cn(\"dl-breadcrumb-separator\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nexport type BreadcrumbEllipsisProps = React.ComponentProps<\"span\">;\n\n/**\n * Ellipsis placeholder indicating intermediate collapsed path items.\n */\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: BreadcrumbEllipsisProps) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"dl-breadcrumb-ellipsis\", className)}\n {...props}\n >\n <MoreHorizontal />\n <span className=\"sr-only\">More</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\";\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\";\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button, buttonVariants } from \"@/components/button\";\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"];\n};\n\n/**\n * Calendar component built on top of react-day-picker, supporting single,\n * multiple, and date-range selection modes.\n * Pure CSS with scoped `.dl-calendar` design tokens.\n *\n * @example\n * ```tsx\n * const [date, setDate] = React.useState<Date | undefined>(new Date());\n *\n * <Calendar\n * mode=\"single\"\n * selected={date}\n * onSelect={setDate}\n * />\n * ```\n */\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: CalendarProps) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\"dl-calendar\", className)}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"dl-calendar\", defaultClassNames.root),\n months: cn(\"dl-calendar__months\", defaultClassNames.months),\n month: cn(\"dl-calendar__month\", defaultClassNames.month),\n nav: cn(\"dl-calendar__nav\", defaultClassNames.nav),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant, size: \"icon\" }),\n \"dl-calendar__nav-button\",\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant, size: \"icon\" }),\n \"dl-calendar__nav-button\",\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n \"dl-calendar__month-caption\",\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\"dl-calendar__dropdowns\", defaultClassNames.dropdowns),\n dropdown_root: cn(\n \"dl-calendar__dropdown-root\",\n defaultClassNames.dropdown_root,\n ),\n dropdown: cn(\"dl-calendar__dropdown\", defaultClassNames.dropdown),\n caption_label: cn(\n \"dl-calendar__caption-label\",\n captionLayout !== \"label\" &&\n \"dl-calendar__caption-label--interactive\",\n defaultClassNames.caption_label,\n ),\n table: cn(\"dl-calendar__table\", defaultClassNames.month_grid),\n month_grid: cn(\"dl-calendar__table\", defaultClassNames.month_grid),\n weekdays: defaultClassNames.weekdays,\n weekday: defaultClassNames.weekday,\n week: defaultClassNames.week,\n day: defaultClassNames.day,\n range_start: defaultClassNames.range_start,\n range_middle: defaultClassNames.range_middle,\n range_end: defaultClassNames.range_end,\n today: defaultClassNames.today,\n outside: defaultClassNames.outside,\n disabled: defaultClassNames.disabled,\n hidden: defaultClassNames.hidden,\n ...classNames,\n }}\n components={{\n Root: ({ className: rootClassName, rootRef, ...rootProps }) => (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(\"dl-calendar\", rootClassName)}\n {...rootProps}\n />\n ),\n Chevron: ({\n className: chevronClassName,\n orientation,\n ...chevronProps\n }) => {\n const chevronClass = cn(\"dl-calendar__chevron\", chevronClassName);\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={chevronClass} {...chevronProps} />\n );\n }\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon className={chevronClass} {...chevronProps} />\n );\n }\n return <ChevronDownIcon className={chevronClass} {...chevronProps} />;\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...weekProps }) => (\n <td {...weekProps}>\n <div className=\"dl-calendar__week-number\">{children}</div>\n </td>\n ),\n ...components,\n }}\n {...props}\n />\n );\n}\n\n/**\n * Custom day button for Calendar, properly forwarding DayButton props\n * with theme-compliant border radius and active states.\n */\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = React.useRef<HTMLButtonElement>(null);\n React.useEffect(() => {\n if (modifiers[\"focused\"]) ref.current?.focus();\n }, [modifiers]);\n\n return (\n <Button\n ref={ref}\n variant={modifiers[\"selected\"] ? \"default\" : \"ghost\"}\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected={modifiers[\"selected\"] ? \"true\" : undefined}\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 \"dl-calendar__day-button\",\n defaultClassNames.day_button,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type CardProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Card container component providing a bordered surface with rounded corners,\n * background color, and subtle shadow.\n *\n * @example\n * ```tsx\n * <Card>\n * <CardHeader>\n * <CardTitle>Notifications</CardTitle>\n * <CardDescription>Manage how you receive alerts.</CardDescription>\n * </CardHeader>\n * <CardContent>\n * <p>Your subscription is active.</p>\n * </CardContent>\n * <CardFooter>\n * <Button>Save Preferences</Button>\n * </CardFooter>\n * </Card>\n * ```\n */\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-card\", className)} {...props} />\n ),\n);\nCard.displayName = \"Card\";\n\nexport type CardHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Header section of a `Card`, organizing titles, descriptions, and action buttons.\n */\nconst CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-card__header\", className)} {...props} />\n ),\n);\nCardHeader.displayName = \"CardHeader\";\n\nexport type CardTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\n/**\n * Primary title heading within a `CardHeader`.\n */\nconst CardTitle = React.forwardRef<HTMLHeadingElement, CardTitleProps>(\n ({ className, ...props }, ref) => (\n <h3 ref={ref} className={cn(\"dl-card__title\", className)} {...props} />\n ),\n);\nCardTitle.displayName = \"CardTitle\";\n\nexport type CardDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\n/**\n * Secondary subtitle or description paragraph within a `CardHeader`.\n */\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n CardDescriptionProps\n>(({ className, ...props }, ref) => (\n <p ref={ref} className={cn(\"dl-card__desc\", className)} {...props} />\n));\nCardDescription.displayName = \"CardDescription\";\n\nexport type CardContentProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Main content body of a `Card`.\n */\nconst CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-card__content\", className)} {...props} />\n ),\n);\nCardContent.displayName = \"CardContent\";\n\nexport type CardFooterProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Footer area of a `Card` for primary and secondary actions.\n */\nconst CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-card__footer\", className)} {...props} />\n ),\n);\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\nexport type CarouselProps = {\n /** Embla carousel configuration options */\n opts?: CarouselOptions;\n /** Embla carousel plugins list (e.g. Autoplay) */\n plugins?: CarouselPlugin;\n /** Scrolling orientation */\n orientation?: \"horizontal\" | \"vertical\";\n /** Callback to receive the initialized Embla API instance */\n setApi?: (api: CarouselApi) => void;\n};\n\nexport type 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\nexport const CarouselContext = React.createContext<CarouselContextProps | null>(\n null,\n);\n\n/**\n * Accesses the parent Carousel context.\n */\nexport function useCarousel() {\n const context = React.useContext(CarouselContext);\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n return context;\n}\n\n/**\n * Interactive carousel slider powered by Embla Carousel.\n *\n * @example\n * ```tsx\n * <Carousel>\n * <CarouselContent>\n * <CarouselItem>Slide 1</CarouselItem>\n * <CarouselItem>Slide 2</CarouselItem>\n * </CarouselContent>\n * <CarouselPrevious />\n * <CarouselNext />\n * </Carousel>\n * ```\n */\nexport const Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\n>(\n (\n {\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const [carouselRef, api] = useEmblaCarousel(\n { ...opts, axis: orientation === \"horizontal\" ? \"x\" : \"y\" },\n plugins,\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((emblaApi: CarouselApi) => {\n if (!emblaApi) return;\n setCanScrollPrev(emblaApi.canScrollPrev());\n setCanScrollNext(emblaApi.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => api?.scrollPrev(), [api]);\n const scrollNext = React.useCallback(() => api?.scrollNext(), [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 return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn(\"dl-carousel\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n },\n);\nCarousel.displayName = \"Carousel\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/button\";\nimport { useCarousel } from \"./carousel-context\";\n\nexport type CarouselContentProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Viewport and track container holding all carousel slides.\n */\nexport const CarouselContent = React.forwardRef<\n HTMLDivElement,\n CarouselContentProps\n>(({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"dl-carousel-viewport\">\n <div\n ref={ref}\n className={cn(\n \"dl-carousel-track\",\n orientation === \"horizontal\"\n ? \"dl-carousel-track--horizontal\"\n : \"dl-carousel-track--vertical\",\n className,\n )}\n {...props}\n />\n </div>\n );\n});\nCarouselContent.displayName = \"CarouselContent\";\n\nexport type CarouselItemProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Individual slide element within a `CarouselContent` track.\n */\nexport const CarouselItem = React.forwardRef<HTMLDivElement, CarouselItemProps>(\n ({ className, ...props }, ref) => {\n const { orientation } = useCarousel();\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n \"dl-carousel-item\",\n orientation === \"horizontal\"\n ? \"dl-carousel-item--horizontal\"\n : \"dl-carousel-item--vertical\",\n className,\n )}\n {...props}\n />\n );\n },\n);\nCarouselItem.displayName = \"CarouselItem\";\n\nexport type CarouselPreviousProps = React.ComponentProps<typeof Button>;\n\n/**\n * Navigation button that moves to the previous carousel slide.\n */\nexport const CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n CarouselPreviousProps\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n \"dl-carousel-btn\",\n orientation === \"horizontal\"\n ? \"dl-carousel-btn--prev-horizontal\"\n : \"dl-carousel-btn--prev-vertical\",\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n});\nCarouselPrevious.displayName = \"CarouselPrevious\";\n\nexport type CarouselNextProps = React.ComponentProps<typeof Button>;\n\n/**\n * Navigation button that moves to the next carousel slide.\n */\nexport const CarouselNext = React.forwardRef<\n HTMLButtonElement,\n CarouselNextProps\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n \"dl-carousel-btn\",\n orientation === \"horizontal\"\n ? \"dl-carousel-btn--next-horizontal\"\n : \"dl-carousel-btn--next-vertical\",\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n});\nCarouselNext.displayName = \"CarouselNext\";\n","import * as React from \"react\";\n\n/** Theme mappings for chart color resolution. */\nexport const THEMES = { light: \"\", dark: \".dark\" } as const;\n\n/**\n * Configuration mapping series keys to colors, labels, and icons.\n */\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n );\n};\n\nexport type ChartContextProps = {\n config: ChartConfig;\n};\n\nexport const ChartContext = React.createContext<ChartContextProps | null>(null);\n\n/**\n * Accesses active chart series configuration from parent `<ChartContainer />`.\n */\nexport function useChart(): ChartContextProps {\n const context = React.useContext(ChartContext);\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\");\n }\n return context;\n}\n\n/**\n * Helper to extract item config from a Recharts payload.\n */\nexport function getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string,\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string;\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config];\n}\n","import * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\nimport { cn } from \"@/lib/utils\";\nimport { ChartConfig, ChartContext, THEMES } from \"./chart-context\";\n\nexport type ChartContainerProps = React.ComponentProps<\"div\"> & {\n /** Configuration mapping series keys to colors, labels, and icons */\n config: ChartConfig;\n /** Responsive chart content (Recharts element) */\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"];\n};\n\n/**\n * Dynamic style block injecting CSS custom properties for chart color keys.\n */\nexport const ChartStyle = ({\n id,\n config,\n}: {\n id: string;\n config: ChartConfig;\n}) => {\n const colorConfig = Object.entries(config).filter(\n ([, itemConfig]) => itemConfig.theme || itemConfig.color,\n );\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join(\"\\n\")}\n}\n`,\n )\n .join(\"\\n\"),\n }}\n />\n );\n};\n\n/**\n * Responsive wrapper for Recharts visualizations with CSS variable theming and unified legend/tooltip support.\n *\n * @example\n * ```tsx\n * <ChartContainer config={chartConfig} className=\"min-h-[200px] w-full\">\n * <BarChart data={chartData}>\n * <Bar dataKey=\"desktop\" fill=\"var(--color-desktop)\" radius={4} />\n * </BarChart>\n * </ChartContainer>\n * ```\n */\nexport const ChartContainer = React.forwardRef<\n HTMLDivElement,\n ChartContainerProps\n>(({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n className={cn(\"dl-chart-container\", className)}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n});\nChartContainer.displayName = \"Chart\";\n","import * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\nimport { cn } from \"@/lib/utils\";\nimport { getPayloadConfigFromPayload, useChart } from \"./chart-context\";\n\n/**\n * Tooltip trigger component from Recharts.\n */\nexport const ChartTooltip = RechartsPrimitive.Tooltip;\n\nexport type ChartTooltipContentProps = React.ComponentProps<\n typeof RechartsPrimitive.Tooltip\n> &\n React.ComponentProps<\"div\"> & {\n /** Hides the series label */\n hideLabel?: boolean;\n /** Hides the colored indicator icon */\n hideIndicator?: boolean;\n /** Style of indicator: line, dot, or dashed */\n indicator?: \"line\" | \"dot\" | \"dashed\";\n /** Custom key in payload for data series name */\n nameKey?: string;\n /** Custom key in payload for label */\n labelKey?: string;\n };\n\n/**\n * Standard content container rendered inside a `ChartTooltip`.\n */\nexport const ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n ChartTooltipContentProps\n>(\n (\n {\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n },\n ref,\n ) => {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return (\n <div className={cn(\"dl-chart-tooltip__label\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return (\n <div className={cn(\"dl-chart-tooltip__label\", labelClassName)}>\n {value}\n </div>\n );\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\";\n\n return (\n <div ref={ref} className={cn(\"dl-chart-tooltip\", className)}>\n {!nestLabel ? tooltipLabel : null}\n <div className=\"dl-chart-tooltip__grid\">\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || item.payload.fill || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"dl-chart-tooltip__item\",\n indicator === \"dot\" && \"dl-chart-tooltip__item--center\",\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"dl-chart-tooltip__indicator\",\n indicator === \"dot\" &&\n \"dl-chart-tooltip__indicator--dot\",\n indicator === \"line\" &&\n \"dl-chart-tooltip__indicator--line\",\n indicator === \"dashed\" &&\n \"dl-chart-tooltip__indicator--dashed\",\n nestLabel &&\n indicator === \"dashed\" &&\n \"dl-chart-tooltip__indicator--nested\",\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"dl-chart-tooltip__row\",\n nestLabel && \"dl-chart-tooltip__row--end\",\n )}\n >\n <div className=\"dl-chart-tooltip__grid\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"dl-chart-tooltip__item-label\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"dl-chart-tooltip__item-value\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n);\nChartTooltipContent.displayName = \"ChartTooltip\";\n","import * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\nimport { cn } from \"@/lib/utils\";\nimport { getPayloadConfigFromPayload, useChart } from \"./chart-context\";\n\n/**\n * Legend component from Recharts.\n */\nexport const ChartLegend = RechartsPrimitive.Legend;\n\nexport type ChartLegendContentProps = React.ComponentProps<\"div\"> &\n Pick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & {\n /** Hides the colored category icon */\n hideIcon?: boolean;\n /** Custom key in payload for data series name */\n nameKey?: string;\n };\n\n/**\n * Standard legend container displaying labeled indicators for active chart series.\n */\nexport const ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n ChartLegendContentProps\n>(\n (\n { className, hideIcon = false, payload, verticalAlign = \"bottom\", nameKey },\n ref,\n ) => {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n \"dl-chart-legend\",\n verticalAlign === \"top\"\n ? \"dl-chart-legend--top\"\n : \"dl-chart-legend--bottom\",\n className,\n )}\n >\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div key={item.value} className=\"dl-chart-legend__item\">\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"dl-chart-legend__indicator\"\n style={{ backgroundColor: item.color }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n },\n);\nChartLegendContent.displayName = \"ChartLegend\";\n","import * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type CheckboxProps = React.ComponentPropsWithoutRef<\n typeof CheckboxPrimitive.Root\n>;\n\n/**\n * Accessible binary selection control built upon Radix UI Checkbox.\n * Supports checked, unchecked, and indeterminate states with smooth micro-animations.\n *\n * @example\n * ```tsx\n * // Basic checkbox with associated label\n * <Flex align=\"center\" gap=\"2\">\n * <Checkbox id=\"terms\" checked={agreed} onCheckedChange={setAgreed} />\n * <Label htmlFor=\"terms\">Accept terms and conditions</Label>\n * </Flex>\n *\n * // Disabled checkbox\n * <Checkbox disabled checked />\n * ```\n */\nconst Checkbox = React.forwardRef<\n React.ComponentRef<typeof CheckboxPrimitive.Root>,\n CheckboxProps\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\"dl-checkbox\", className)}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"dl-checkbox-indicator\">\n <Check className=\"dl-checkbox-icon\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","\"use client\";\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\n\nexport type CollapsibleProps = React.ComponentPropsWithoutRef<\n typeof CollapsiblePrimitive.Root\n>;\n\n/**\n * An interactive component which expands and collapses a panel.\n *\n * @example\n * ```tsx\n * <Collapsible open={isOpen} onOpenChange={setIsOpen}>\n * <CollapsibleTrigger asChild>\n * <Button variant=\"ghost\">Toggle Details</Button>\n * </CollapsibleTrigger>\n * <CollapsibleContent>\n * <div>Hidden details revealed here.</div>\n * </CollapsibleContent>\n * </Collapsible>\n * ```\n */\nconst Collapsible = CollapsiblePrimitive.Root;\n\nexport type CollapsibleTriggerProps = React.ComponentPropsWithoutRef<\n typeof CollapsiblePrimitive.CollapsibleTrigger\n>;\n\n/**\n * The trigger button that toggles the collapsible panel.\n */\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;\n\nexport type CollapsibleContentProps = React.ComponentPropsWithoutRef<\n typeof CollapsiblePrimitive.CollapsibleContent\n>;\n\n/**\n * The component that contains the collapsible content.\n */\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { type DialogProps } from \"@radix-ui/react-dialog\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { Search } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Dialog, DialogContent } from \"@/components/dialog\";\n\nexport type CommandProps = React.ComponentPropsWithoutRef<\n typeof CommandPrimitive\n>;\n\n/**\n * Fast, composable, unstyled command menu component for React.\n *\n * @example\n * ```tsx\n * <Command>\n * <CommandInput placeholder=\"Type a command or search...\" />\n * <CommandList>\n * <CommandEmpty>No results found.</CommandEmpty>\n * <CommandGroup heading=\"Suggestions\">\n * <CommandItem>Calendar</CommandItem>\n * <CommandItem>Search Emoji</CommandItem>\n * <CommandItem>Calculator</CommandItem>\n * </CommandGroup>\n * </CommandList>\n * </Command>\n * ```\n */\nconst Command = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive>,\n CommandProps\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\"dl-command\", className)}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\nexport interface CommandDialogProps extends DialogProps {\n children?: React.ReactNode;\n}\n\n/**\n * Modal dialog wrapper for rendering a command palette over page content.\n *\n * @example\n * ```tsx\n * <CommandDialog open={open} onOpenChange={setOpen}>\n * <CommandInput placeholder=\"Search all commands...\" />\n * <CommandList>\n * <CommandItem>Profile</CommandItem>\n * <CommandItem>Billing</CommandItem>\n * </CommandList>\n * </CommandDialog>\n * ```\n */\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"dl-command-dialog-content\">\n <Command>{children}</Command>\n </DialogContent>\n </Dialog>\n );\n};\n\nexport type CommandInputProps = React.ComponentPropsWithoutRef<\n typeof CommandPrimitive.Input\n>;\n\n/**\n * Search input field for filtering options in a command list.\n */\nconst CommandInput = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.Input>,\n CommandInputProps\n>(({ className, ...props }, ref) => (\n <div className=\"dl-command-input-wrapper\" cmdk-input-wrapper=\"\">\n <Search className=\"dl-command-input-icon\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\"dl-command-input\", className)}\n {...props}\n />\n </div>\n));\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nexport type CommandListProps = React.ComponentPropsWithoutRef<\n typeof CommandPrimitive.List\n>;\n\n/**\n * Scrollable list container that renders filtered items and groups.\n */\nconst CommandList = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.List>,\n CommandListProps\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"dl-command-list\", className)}\n {...props}\n />\n));\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nexport type CommandEmptyProps = React.ComponentPropsWithoutRef<\n typeof CommandPrimitive.Empty\n>;\n\n/**\n * Message shown automatically when no items match the command search filter.\n */\nconst CommandEmpty = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.Empty>,\n CommandEmptyProps\n>((props, ref) => (\n <CommandPrimitive.Empty ref={ref} className=\"dl-command-empty\" {...props} />\n));\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nexport type CommandGroupProps = React.ComponentPropsWithoutRef<\n typeof CommandPrimitive.Group\n>;\n\n/**\n * Grouping container for related command items with an optional heading label.\n */\nconst CommandGroup = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.Group>,\n CommandGroupProps\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\"dl-command-group\", className)}\n {...props}\n />\n));\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nexport type CommandSeparatorProps = React.ComponentPropsWithoutRef<\n typeof CommandPrimitive.Separator\n>;\n\n/**\n * Divider separating groups or sections within a command list.\n */\nconst CommandSeparator = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.Separator>,\n CommandSeparatorProps\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"dl-command-separator\", className)}\n {...props}\n />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nexport type CommandItemProps = React.ComponentPropsWithoutRef<\n typeof CommandPrimitive.Item\n>;\n\n/**\n * Selectable command item with keyboard navigation and focus styling.\n */\nconst CommandItem = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.Item>,\n CommandItemProps\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\"dl-command-item\", className)}\n {...props}\n />\n));\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nexport type CommandShortcutProps = React.HTMLAttributes<HTMLSpanElement>;\n\n/**\n * Visual badge displaying a keyboard shortcut associated with a command item.\n */\nconst CommandShortcut = ({ className, ...props }: CommandShortcutProps) => {\n return <span className={cn(\"dl-command-shortcut\", className)} {...props} />;\n};\nCommandShortcut.displayName = \"CommandShortcut\";\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n","\"use client\";\nimport * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Root container for accessible modal dialog windows. Built upon Radix UI Dialog.\n *\n * @example\n * ```tsx\n * <Dialog open={isOpen} onOpenChange={setIsOpen}>\n * <DialogTrigger asChild>\n * <Button variant=\"outline\">Open Settings</Button>\n * </DialogTrigger>\n * <DialogContent size=\"lg\">\n * <DialogHeader>\n * <DialogTitle>Account Settings</DialogTitle>\n * <DialogDescription>Manage your workspace credentials.</DialogDescription>\n * </DialogHeader>\n * <DialogBody>Dialog body content here...</DialogBody>\n * <DialogFooter>\n * <Button onClick={() => setIsOpen(false)}>Save changes</Button>\n * </DialogFooter>\n * </DialogContent>\n * </Dialog>\n * ```\n */\nconst Dialog = DialogPrimitive.Root;\n\n/** Button or trigger element that opens the dialog modal. */\nconst DialogTrigger = DialogPrimitive.Trigger;\n\n/** Portals dialog content to the end of document.body for clean stacking context. */\nconst DialogPortal = DialogPrimitive.Portal;\n\n/** Button that closes the open dialog. */\nconst DialogClose = DialogPrimitive.Close;\n\nexport type DialogOverlayProps = React.ComponentPropsWithoutRef<\n typeof DialogPrimitive.Overlay\n>;\n\n/** Semi-transparent backdrop overlay rendered beneath the dialog modal. */\nconst DialogOverlay = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Overlay>,\n DialogOverlayProps\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\"dl-dialog-overlay\", className)}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\n/**\n * Predefined maximum width scale for the modal window.\n */\nexport type DialogSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"full\";\n\nexport type DialogContentProps = React.ComponentPropsWithoutRef<\n typeof DialogPrimitive.Content\n> & {\n /**\n * Predefined maximum width scale for the modal window.\n * - `sm`: 24rem (384px) - confirmations, small prompts\n * - `md`: 32rem (512px) - standard forms, default\n * - `lg`: 42rem (672px) - medium panels\n * - `xl`: 56rem (896px) - data previews, wide forms\n * - `2xl`: 72rem (1152px) - deep traces, code editors, debuggers\n * - `full`: nearly full viewport\n * @default \"md\"\n */\n size?: DialogSize;\n};\n\n/**\n * Modal content container. Renders overlay, content card, and accessible close button.\n */\nconst DialogContent = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Content>,\n DialogContentProps\n>(({ className, children, size = \"md\", ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"dl-dialog-content\",\n size && `dl-dialog--${size}`,\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"dl-dialog-close\">\n <X />\n <span className=\"dl-dialog-sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\n/** Top container of the dialog for title and description. */\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-dialog__header\", className)} {...props} />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\n/** Scrollable or flexible body container for dialog modal content. */\nconst DialogBody = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-dialog__body\", className)} {...props} />\n);\nDialogBody.displayName = \"DialogBody\";\n\n/** Bottom container of the dialog for action buttons. */\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-dialog__footer\", className)} {...props} />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\n/** Accessible title heading for the dialog modal. */\nconst DialogTitle = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\"dl-dialog__title\", className)}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\n/** Accessible explanatory text for the dialog content. */\nconst DialogDescription = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"dl-dialog__desc\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogBody,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","import * as React from \"react\";\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from \"@/components/alert-dialog\";\n\nexport interface ConfirmDialogProps {\n /** Whether the confirmation dialog is visible */\n open: boolean;\n /** Callback fired when the open state changes */\n onOpenChange: (open: boolean) => void;\n /** Modal header title */\n title: string;\n /** Detailed description or warning message */\n description: string;\n /** Action executed when the confirm button is clicked */\n onConfirm: () => void;\n /** Custom text for confirm button (default: \"Confirm\") */\n confirmText?: string;\n /** Custom text for cancel button (default: \"Cancel\") */\n cancelText?: string;\n /** Whether the confirmed action is destructive (renders red confirm button) */\n destructive?: boolean;\n}\n\n/**\n * Pre-composed modal dialog for confirming critical, permanent, or destructive user actions.\n *\n * @example\n * ```tsx\n * <ConfirmDialog\n * open={showDeleteModal}\n * onOpenChange={setShowDeleteModal}\n * title=\"Delete Agent Workspace?\"\n * description=\"This will permanently delete the agent workspace and all historical runs.\"\n * confirmText=\"Delete Workspace\"\n * destructive\n * onConfirm={handleDelete}\n * />\n * ```\n */\nexport function ConfirmDialog({\n open,\n onOpenChange,\n title,\n description,\n onConfirm,\n confirmText = \"Confirm\",\n cancelText = \"Cancel\",\n destructive = false,\n}: ConfirmDialogProps) {\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{title}</AlertDialogTitle>\n <AlertDialogDescription>{description}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>{cancelText}</AlertDialogCancel>\n <AlertDialogAction\n onClick={onConfirm}\n className={destructive ? \"dl-btn--destructive\" : \"\"}\n >\n {confirmText}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\";\nimport { ChevronRight } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Root ContextMenu container.\n */\nexport const ContextMenu = ContextMenuPrimitive.Root;\n\n/**\n * The area that triggers the context menu on right click or long press.\n */\nexport const ContextMenuTrigger = ContextMenuPrimitive.Trigger;\n\n/**\n * Group of related context menu items.\n */\nexport const ContextMenuGroup = ContextMenuPrimitive.Group;\n\n/**\n * Portal rendering the context menu in the document body.\n */\nexport const ContextMenuPortal = ContextMenuPrimitive.Portal;\n\n/**\n * Submenu container within a context menu.\n */\nexport const ContextMenuSub = ContextMenuPrimitive.Sub;\n\n/**\n * Radio group container for mutually exclusive context options.\n */\nexport const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;\n\nexport type ContextMenuSubTriggerProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.SubTrigger\n> & {\n inset?: boolean;\n};\n\n/**\n * Trigger item for opening a nested context submenu.\n */\nexport const ContextMenuSubTrigger = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.SubTrigger>,\n ContextMenuSubTriggerProps\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"dl-menu-item dl-menu-sub-trigger\",\n inset && \"dl-menu-item--inset\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"dl-menu-item__chevron\" />\n </ContextMenuPrimitive.SubTrigger>\n));\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;\n\nexport type ContextMenuSubContentProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.SubContent\n>;\n\n/**\n * Content container for a nested context submenu.\n */\nexport const ContextMenuSubContent = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.SubContent>,\n ContextMenuSubContentProps\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n className={cn(\"dl-menu-content\", className)}\n {...props}\n />\n));\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;\n\nexport type ContextMenuContentProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.Content\n>;\n\n/**\n * Floating content panel containing context menu items.\n */\nexport const ContextMenuContent = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.Content>,\n ContextMenuContentProps\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n className={cn(\"dl-context-menu-content\", className)}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n));\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\";\nimport { Check, Circle } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type ContextMenuItemProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.Item\n> & {\n inset?: boolean;\n};\n\n/**\n * Selectable item within a context menu.\n */\nexport const ContextMenuItem = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.Item>,\n ContextMenuItemProps\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Item\n ref={ref}\n className={cn(\"dl-menu-item\", inset && \"dl-menu-item--inset\", className)}\n {...props}\n />\n));\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;\n\nexport type ContextMenuCheckboxItemProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.CheckboxItem\n>;\n\n/**\n * Checkbox menu item supporting checked/unchecked toggle state in a context menu.\n */\nexport const ContextMenuCheckboxItem = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.CheckboxItem>,\n ContextMenuCheckboxItemProps\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\"dl-menu-item dl-menu-checkbox-item\", className)}\n {...props}\n >\n <span className=\"dl-menu-checkbox-item__indicator\">\n <ContextMenuPrimitive.ItemIndicator>\n <Check className=\"dl-menu-item__icon\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n));\nContextMenuCheckboxItem.displayName =\n ContextMenuPrimitive.CheckboxItem.displayName;\n\nexport type ContextMenuRadioItemProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.RadioItem\n>;\n\n/**\n * Radio menu item supporting mutual exclusion in a ContextMenuRadioGroup.\n */\nexport const ContextMenuRadioItem = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.RadioItem>,\n ContextMenuRadioItemProps\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\"dl-menu-item dl-menu-radio-item\", className)}\n {...props}\n >\n <span className=\"dl-menu-radio-item__indicator\">\n <ContextMenuPrimitive.ItemIndicator>\n <Circle className=\"dl-menu-item__radio-dot\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n));\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;\n\nexport type ContextMenuLabelProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.Label\n> & {\n inset?: boolean;\n};\n\n/**\n * Header label for grouping context menu items.\n */\nexport const ContextMenuLabel = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.Label>,\n ContextMenuLabelProps\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Label\n ref={ref}\n className={cn(\"dl-menu-label\", inset && \"dl-menu-label--inset\", className)}\n {...props}\n />\n));\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;\n\nexport type ContextMenuSeparatorProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.Separator\n>;\n\n/**\n * Horizontal rule separating sections within a context menu.\n */\nexport const ContextMenuSeparator = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.Separator>,\n ContextMenuSeparatorProps\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator\n ref={ref}\n className={cn(\"dl-menu-separator\", className)}\n {...props}\n />\n));\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;\n\nexport type ContextMenuShortcutProps = React.HTMLAttributes<HTMLSpanElement>;\n\n/**\n * Keyboard shortcut hint displayed at the trailing end of a context menu item.\n */\nexport const ContextMenuShortcut = ({\n className,\n ...props\n}: ContextMenuShortcutProps) => {\n return <span className={cn(\"dl-menu-shortcut\", className)} {...props} />;\n};\nContextMenuShortcut.displayName = \"ContextMenuShortcut\";\n","import * as React from \"react\";\nimport { format } from \"date-fns\";\nimport { Calendar as CalendarIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/button\";\nimport { Calendar } from \"@/components/calendar\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/popover\";\n\nexport interface DatePickerProps {\n /**\n * The selected date formatted as an ISO string (`YYYY-MM-DD`).\n */\n value?: string;\n /**\n * Callback fired when a date is selected or cleared.\n * @param value - The new date string in `YYYY-MM-DD` format, or empty string if cleared.\n */\n onChange?: (value: string) => void;\n /**\n * Placeholder label rendered when no date is selected.\n * @default \"Pick a date\"\n */\n placeholder?: string;\n /**\n * Optional custom CSS class name for the trigger button.\n */\n className?: string;\n /**\n * Disables user interaction with the date picker.\n */\n disabled?: boolean;\n}\n\n/**\n * Accessible date picker component featuring an interactive popover calendar.\n * Formats dates safely in local timezone to prevent UTC day-shifting.\n *\n * @example\n * ```tsx\n * const [date, setDate] = useState(\"2026-09-25\");\n *\n * <DatePicker\n * value={date}\n * onChange={setDate}\n * placeholder=\"Select appointment date\"\n * />\n * ```\n */\nexport function DatePicker({\n value,\n onChange,\n placeholder = \"Pick a date\",\n className,\n disabled,\n}: DatePickerProps) {\n // Parse date safely in local timezone to avoid UTC shifting\n const date = React.useMemo(() => {\n if (!value) return undefined;\n const parts = value.split(\"-\");\n if (parts.length !== 3) {\n const d = new Date(value);\n return isNaN(d.getTime()) ? undefined : d;\n }\n const year = parseInt(parts[0], 10);\n const month = parseInt(parts[1], 10) - 1; // 0-based month\n const day = parseInt(parts[2], 10);\n return new Date(year, month, day, 12, 0, 0); // Local noon\n }, [value]);\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n type=\"button\"\n disabled={disabled}\n className={cn(\n \"dl-date-picker-trigger\",\n !value && \"dl-date-picker-trigger--placeholder\",\n className,\n )}\n >\n <CalendarIcon className=\"dl-date-picker-icon\" />\n {date && !isNaN(date.getTime()) ? (\n format(date, \"PPP\")\n ) : (\n <span>{placeholder}</span>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"dl-date-picker-content\" align=\"start\">\n <Calendar\n mode=\"single\"\n selected={date}\n onSelect={(selectedDate) =>\n onChange?.(selectedDate ? format(selectedDate, \"yyyy-MM-dd\") : \"\")\n }\n autoFocus\n />\n </PopoverContent>\n </Popover>\n );\n}\n","import * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Root container for non-modal floating panels and flyouts. Built upon Radix UI Popover.\n *\n * @example\n * ```tsx\n * <Popover>\n * <PopoverTrigger asChild>\n * <Button variant=\"outline\">Open Filters</Button>\n * </PopoverTrigger>\n * <PopoverContent align=\"start\">\n * <Stack gap=\"2\">\n * <h4>Filter Results</h4>\n * <p>Adjust display criteria.</p>\n * </Stack>\n * </PopoverContent>\n * </Popover>\n * ```\n */\nconst Popover = PopoverPrimitive.Root;\n\n/** Interactive trigger element that opens the popover. */\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\n/** Optional custom anchor reference element for positioning the popover. */\nconst PopoverAnchor = PopoverPrimitive.Anchor;\n\nexport type PopoverContentProps = React.ComponentPropsWithoutRef<\n typeof PopoverPrimitive.Content\n>;\n\n/**\n * Floating panel content for Popover styled with scoped `dl-popover` CSS tokens.\n */\nconst PopoverContent = React.forwardRef<\n React.ComponentRef<typeof PopoverPrimitive.Content>,\n PopoverContentProps\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\"dl-popover\", className)}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };\n","import * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n <DrawerPrimitive.Root\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n);\nDrawer.displayName = \"Drawer\";\n\nconst DrawerTrigger = DrawerPrimitive.Trigger;\n\nconst DrawerPortal = DrawerPrimitive.Portal;\n\nconst DrawerClose = DrawerPrimitive.Close;\n\nconst DrawerOverlay = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"dl-drawer-overlay\", className)}\n {...props}\n />\n));\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerContent = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\"dl-drawer-content\", className)}\n {...props}\n >\n <div className=\"dl-drawer-handle\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n));\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-drawer-header\", className)} {...props} />\n);\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-drawer-footer\", className)} {...props} />\n);\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\"dl-drawer-title\", className)}\n {...props}\n />\n));\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"dl-drawer-desc\", className)}\n {...props}\n />\n));\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { ChevronRight } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Root DropdownMenu container managing open/closed state.\n */\nexport const DropdownMenu = DropdownMenuPrimitive.Root;\n\n/**\n * The trigger button that toggles the dropdown menu.\n */\nexport const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\n/**\n * Group of related dropdown menu items.\n */\nexport const DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\n/**\n * Portal rendering dropdown menus in the document body.\n */\nexport const DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\n/**\n * Submenu container within a dropdown menu.\n */\nexport const DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\n/**\n * Radio group container for mutually exclusive dropdown options.\n */\nexport const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nexport type DropdownMenuSubTriggerProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.SubTrigger\n> & {\n inset?: boolean;\n};\n\n/**\n * Trigger item for opening a nested dropdown submenu.\n */\nexport const DropdownMenuSubTrigger = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.SubTrigger>,\n DropdownMenuSubTriggerProps\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"dl-menu-item dl-menu-sub-trigger\",\n inset && \"dl-menu-item--inset\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"dl-menu-item__chevron\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName;\n\nexport type DropdownMenuSubContentProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.SubContent\n>;\n\n/**\n * Content container for a nested dropdown submenu.\n */\nexport const DropdownMenuSubContent = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.SubContent>,\n DropdownMenuSubContentProps\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\"dl-menu-content\", className)}\n {...props}\n />\n));\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName;\n\nexport type DropdownMenuContentProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Content\n>;\n\n/**\n * Floating content panel containing dropdown menu items.\n */\nexport const DropdownMenuContent = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Content>,\n DropdownMenuContentProps\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\"dl-menu-content\", className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { Check, Circle } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type DropdownMenuItemProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Item\n> & {\n inset?: boolean;\n};\n\n/**\n * Standard selectable item within a dropdown menu.\n */\nexport const DropdownMenuItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Item>,\n DropdownMenuItemProps\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\"dl-menu-item\", inset && \"dl-menu-item--inset\", className)}\n {...props}\n />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nexport type DropdownMenuCheckboxItemProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.CheckboxItem\n>;\n\n/**\n * Checkbox menu item supporting checked/unchecked toggle state.\n */\nexport const DropdownMenuCheckboxItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n DropdownMenuCheckboxItemProps\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\"dl-menu-item dl-menu-checkbox-item\", className)}\n {...props}\n >\n <span className=\"dl-menu-checkbox-item__indicator\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"dl-menu-item__icon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\n\nexport type DropdownMenuRadioItemProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.RadioItem\n>;\n\n/**\n * Radio menu item supporting mutual exclusion in a DropdownMenuRadioGroup.\n */\nexport const DropdownMenuRadioItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.RadioItem>,\n DropdownMenuRadioItemProps\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\"dl-menu-item dl-menu-radio-item\", className)}\n {...props}\n >\n <span className=\"dl-menu-radio-item__indicator\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"dl-menu-item__radio-dot\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nexport type DropdownMenuLabelProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Label\n> & {\n inset?: boolean;\n};\n\n/**\n * Header label for grouping items in a dropdown menu.\n */\nexport const DropdownMenuLabel = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Label>,\n DropdownMenuLabelProps\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\"dl-menu-label\", inset && \"dl-menu-label--inset\", className)}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nexport type DropdownMenuSeparatorProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Separator\n>;\n\n/**\n * Horizontal rule separating sections within a dropdown menu.\n */\nexport const DropdownMenuSeparator = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Separator>,\n DropdownMenuSeparatorProps\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"dl-menu-separator\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nexport type DropdownMenuShortcutProps = React.HTMLAttributes<HTMLSpanElement>;\n\n/**\n * Keyboard shortcut hint displayed at the trailing end of a menu item.\n */\nexport const DropdownMenuShortcut = ({\n className,\n ...props\n}: DropdownMenuShortcutProps) => {\n return <span className={cn(\"dl-menu-shortcut\", className)} {...props} />;\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Properties for configuring the {@link EmptyState} component.\n */\nexport interface EmptyStateProps extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n \"title\"\n> {\n /** Primary headline or title text */\n readonly title: React.ReactNode;\n /** Secondary explanatory description */\n readonly description?: React.ReactNode;\n /** Optional visual icon displayed in the central badge */\n readonly icon?: React.ReactNode;\n /** Primary action button or trigger node */\n readonly action?: React.ReactNode;\n /** Custom children rendered beneath the description */\n readonly children?: React.ReactNode;\n}\n\n/**\n * Universal EmptyState component displaying cybernetic or theme-adaptive placeholders\n * when queries, tables, or collections yield zero entries.\n *\n * @example\n * ```tsx\n * <EmptyState\n * icon={<Search />}\n * title=\"No results found\"\n * description=\"Try adjusting your filters or search keywords.\"\n * action={<Button variant=\"outline\">Reset filters</Button>}\n * />\n * ```\n */\nexport const EmptyState = React.forwardRef<HTMLDivElement, EmptyStateProps>(\n (\n { title, description, icon, action, children, className, ...props },\n ref,\n ) => {\n return (\n <div ref={ref} className={cn(\"dl-empty-state\", className)} {...props}>\n {icon && <div className=\"dl-empty-state__icon-box\">{icon}</div>}\n <h3 className=\"dl-empty-state__title\">{title}</h3>\n {description && (\n <p className=\"dl-empty-state__description\">{description}</p>\n )}\n {children}\n {action && <div className=\"dl-empty-state__actions\">{action}</div>}\n </div>\n );\n },\n);\nEmptyState.displayName = \"EmptyState\";\n","import * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n Controller,\n FormProvider,\n useFormContext,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from \"react-hook-form\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Label } from \"@/components/label\";\n\n/**\n * Top-level form provider component wrapping react-hook-form.\n */\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue | null>(\n null,\n);\n\n/**\n * Controlled form field connecting input controls to form state.\n */\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\n/**\n * Custom hook to access current form field metadata, errors, and IDs.\n */\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState, formState } = useFormContext();\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\");\n }\n\n if (!itemContext) {\n throw new Error(\"useFormField should be used within <FormItem>\");\n }\n\n const fieldState = getFieldState(fieldContext.name, formState);\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue | null>(null);\n\n/**\n * Container wrapper for a single form item (label, input, description, error).\n */\nconst FormItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn(\"dl-form-item\", className)} {...props} />\n </FormItemContext.Provider>\n );\n});\nFormItem.displayName = \"FormItem\";\n\n/**\n * Accessible label component associated with the active form field.\n */\nconst FormLabel = React.forwardRef<\n React.ComponentRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n ref={ref}\n className={cn(error && \"dl-form-label--error\", className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n});\nFormLabel.displayName = \"FormLabel\";\n\n/**\n * Slot wrapper connecting input controls to aria attributes.\n */\nconst FormControl = React.forwardRef<\n React.ComponentRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n});\nFormControl.displayName = \"FormControl\";\n\n/**\n * Descriptive helper text displayed beneath a form field.\n */\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn(\"dl-form-desc\", className)}\n {...props}\n />\n );\n});\nFormDescription.displayName = \"FormDescription\";\n\n/**\n * Error message element displayed when field validation fails.\n */\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? \"\") : children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn(\"dl-form-error\", className)}\n {...props}\n >\n {body}\n </p>\n );\n});\nFormMessage.displayName = \"FormMessage\";\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n","import * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\nconst labelVariants = cva(\"dl-label\");\n\nexport interface LabelProps\n extends\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>,\n VariantProps<typeof labelVariants> {\n /**\n * If true, displays a red required asterisk indicator next to the label.\n * By default, required is false and no asterisk is rendered.\n * @default false\n */\n required?: boolean;\n}\n\n/**\n * Accessible label component associated with input controls, checkboxes, or form fields.\n * Built upon Radix UI Label primitive with design token typography and disabled styling.\n *\n * @example\n * ```tsx\n * // Associated with an Input via htmlFor\n * <Stack gap=\"2\">\n * <Label htmlFor=\"email\">Email address</Label>\n * <Input id=\"email\" type=\"email\" placeholder=\"name@company.com\" />\n * </Stack>\n * ```\n */\nconst Label = React.forwardRef<\n React.ComponentRef<typeof LabelPrimitive.Root>,\n LabelProps\n>(({ className, children, required = false, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n >\n {children}\n {required && <span className=\"dl-label-required\">*</span>}\n </LabelPrimitive.Root>\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label, labelVariants };\n","import * as React from \"react\";\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst HoverCard = HoverCardPrimitive.Root;\n\nconst HoverCardTrigger = HoverCardPrimitive.Trigger;\n\nconst HoverCardContent = React.forwardRef<\n React.ComponentRef<typeof HoverCardPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\"dl-hover-card\", className)}\n {...props}\n />\n));\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName;\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n /**\n * Optional leading icon or interactive element rendered before the input text.\n * Automatically indents the placeholder and text to avoid overlapping.\n */\n startIcon?: React.ReactNode;\n /**\n * Optional trailing icon or interactive element rendered after the input text.\n * Useful for clear buttons, visibility toggles, or status indicators.\n */\n endIcon?: React.ReactNode;\n}\n\n/**\n * Textual input control styled with design system tokens and scoped CSS.\n * Provides accessible focus states, logical padding, and seamless icon integration.\n *\n * @example\n * ```tsx\n * // Standard text input\n * <Input placeholder=\"Enter your email\" type=\"email\" />\n *\n * // Search box with built-in start icon\n * <Input\n * type=\"search\"\n * placeholder=\"Search agents...\"\n * startIcon={<Search />}\n * />\n *\n * // Password field with end visibility action\n * <Input\n * type={showPassword ? \"text\" : \"password\"}\n * placeholder=\"Password\"\n * endIcon={\n * <button type=\"button\" onClick={() => setShowPassword(!showPassword)}>\n * {showPassword ? <EyeOff /> : <Eye />}\n * </button>\n * }\n * />\n * ```\n */\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, startIcon, endIcon, ...props }, ref) => {\n const inputEl = (\n <input\n type={type}\n className={cn(\n \"dl-input\",\n startIcon && \"dl-input--has-start-icon\",\n endIcon && \"dl-input--has-end-icon\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n\n if (!startIcon && !endIcon) {\n return inputEl;\n }\n\n return (\n <div className=\"dl-input-wrapper\">\n {startIcon && (\n <span className=\"dl-input-icon dl-input-icon--start\">\n {startIcon}\n </span>\n )}\n {inputEl}\n {endIcon && (\n <span className=\"dl-input-icon dl-input-icon--end\">{endIcon}</span>\n )}\n </div>\n );\n },\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","import * as React from \"react\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport { Minus } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport type InputOTPProps = React.ComponentPropsWithoutRef<typeof OTPInput>;\n\n/**\n * Accessible One-Time Password (OTP) input component with pin slots and fake carets.\n * Built upon the `input-otp` primitive with scoped token styling.\n *\n * @example\n * ```tsx\n * <InputOTP maxLength={6} value={value} onChange={setValue}>\n * <InputOTPGroup>\n * <InputOTPSlot index={0} />\n * <InputOTPSlot index={1} />\n * <InputOTPSlot index={2} />\n * </InputOTPGroup>\n * <InputOTPSeparator />\n * <InputOTPGroup>\n * <InputOTPSlot index={3} />\n * <InputOTPSlot index={4} />\n * <InputOTPSlot index={5} />\n * </InputOTPGroup>\n * </InputOTP>\n * ```\n */\nconst InputOTP = React.forwardRef<\n React.ComponentRef<typeof OTPInput>,\n InputOTPProps\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\"dl-input-otp-container\", containerClassName)}\n className={cn(\"dl-input-otp\", className)}\n {...props}\n />\n));\nInputOTP.displayName = \"InputOTP\";\n\n/** Group container for bundling adjacent OTP slots. */\nconst InputOTPGroup = React.forwardRef<\n React.ComponentRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-input-otp-group\", className)} {...props} />\n));\nInputOTPGroup.displayName = \"InputOTPGroup\";\n\nexport interface InputOTPSlotProps extends React.ComponentPropsWithoutRef<\"div\"> {\n /** The zero-indexed position of this character slot. */\n index: number;\n}\n\n/** Individual digit/character slot displaying user input or an animated caret. */\nconst InputOTPSlot = React.forwardRef<\n React.ComponentRef<\"div\">,\n InputOTPSlotProps\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index] ?? {\n char: null,\n hasFakeCaret: false,\n isActive: false,\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n \"dl-input-otp-slot\",\n isActive && \"dl-input-otp-slot--active\",\n className,\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"dl-input-otp-caret\">\n <div className=\"dl-input-otp-caret__line\" />\n </div>\n )}\n </div>\n );\n});\nInputOTPSlot.displayName = \"InputOTPSlot\";\n\n/** Divider component between OTP groups. */\nconst InputOTPSeparator = React.forwardRef<\n React.ComponentRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Minus />\n </div>\n));\nInputOTPSeparator.displayName = \"InputOTPSeparator\";\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type SkeletonProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Animated placeholder component for representing content loading states.\n *\n * @example\n * ```tsx\n * <Flex align=\"center\" gap=\"4\">\n * <Skeleton variant=\"circle\" />\n * <Stack gap=\"2\">\n * <Skeleton />\n * <Skeleton />\n * </Stack>\n * </Flex>\n * ```\n */\nfunction Skeleton({ className, ...props }: SkeletonProps) {\n return <div className={cn(\"dl-skeleton\", className)} {...props} />;\n}\nexport { Skeleton };\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { Skeleton } from \"@/components/skeleton\";\n\nexport interface LoadingStateProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Number of skeleton placeholder rows to render (default: 3) */\n rows?: number;\n /** Optional message to display along with a spinner instead of skeleton rows */\n message?: string;\n}\n\n/**\n * Flexible loading indicator supporting both skeleton placeholder rows and spinner modes.\n *\n * @example\n * ```tsx\n * // Skeleton row placeholder\n * <LoadingState rows={4} />\n *\n * // Spinner with message\n * <LoadingState message=\"Fetching agent logs...\" />\n * ```\n */\nexport function LoadingState({\n rows = 3,\n message,\n className,\n ...props\n}: LoadingStateProps) {\n if (message) {\n return (\n <div className={cn(\"dl-loading\", className)} {...props}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n <span>{message}</span>\n </div>\n );\n }\n\n return (\n <div className={cn(\"dl-loading-skeleton\", className)} {...props}>\n <Skeleton className=\"dl-loading-skeleton__header\" />\n <div className=\"dl-loading-skeleton__list\">\n {Array.from({ length: rows }).map((_, i) => (\n <Skeleton key={i} className=\"dl-loading-skeleton__row\" />\n ))}\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\";\nimport { ChevronRight } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Menu item wrapper component within a `Menubar`.\n */\nexport function MenubarMenu(\n props: React.ComponentProps<typeof MenubarPrimitive.Menu>,\n) {\n return <MenubarPrimitive.Menu {...props} />;\n}\n\n/**\n * Group wrapper within a `Menubar`.\n */\nexport function MenubarGroup(\n props: React.ComponentProps<typeof MenubarPrimitive.Group>,\n) {\n return <MenubarPrimitive.Group {...props} />;\n}\n\n/**\n * Portal wrapper rendering menubar popups to document body.\n */\nexport function MenubarPortal(\n props: React.ComponentProps<typeof MenubarPrimitive.Portal>,\n) {\n return <MenubarPrimitive.Portal {...props} />;\n}\n\n/**\n * Radio group wrapper within a `Menubar`.\n */\nexport function MenubarRadioGroup(\n props: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>,\n) {\n return <MenubarPrimitive.RadioGroup {...props} />;\n}\n\n/**\n * Submenu container within a `Menubar`.\n */\nexport function MenubarSub(\n props: React.ComponentProps<typeof MenubarPrimitive.Sub>,\n) {\n return <MenubarPrimitive.Sub data-slot=\"menubar-sub\" {...props} />;\n}\n\nexport type MenubarProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.Root\n>;\n\n/**\n * A persistent horizontal menu bar commonly used in desktop-style web applications.\n *\n * @example\n * ```tsx\n * <Menubar>\n * <MenubarMenu>\n * <MenubarTrigger>File</MenubarTrigger>\n * <MenubarContent>\n * <MenubarItem>New Tab <MenubarShortcut>⌘T</MenubarShortcut></MenubarItem>\n * <MenubarItem>New Window</MenubarItem>\n * <MenubarSeparator />\n * <MenubarItem>Exit</MenubarItem>\n * </MenubarContent>\n * </MenubarMenu>\n * </Menubar>\n * ```\n */\nexport const Menubar = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Root>,\n MenubarProps\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Root\n ref={ref}\n className={cn(\"dl-menubar\", className)}\n {...props}\n />\n));\nMenubar.displayName = MenubarPrimitive.Root.displayName;\n\nexport type MenubarTriggerProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.Trigger\n>;\n\n/**\n * The top-level menu button in the horizontal menubar row.\n */\nexport const MenubarTrigger = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Trigger>,\n MenubarTriggerProps\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Trigger\n ref={ref}\n className={cn(\"dl-menubar-trigger\", className)}\n {...props}\n />\n));\nMenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;\n\nexport type MenubarSubTriggerProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.SubTrigger\n> & {\n inset?: boolean;\n};\n\n/**\n * Trigger item for opening a nested submenu inside a Menubar.\n */\nexport const MenubarSubTrigger = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.SubTrigger>,\n MenubarSubTriggerProps\n>(({ className, inset, children, ...props }, ref) => (\n <MenubarPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"dl-menu-item dl-menu-sub-trigger\",\n inset && \"dl-menu-item--inset\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"dl-menu-item__chevron\" />\n </MenubarPrimitive.SubTrigger>\n));\nMenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;\n\nexport type MenubarSubContentProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.SubContent\n>;\n\n/**\n * Popover content rendered when a `MenubarSubTrigger` is expanded.\n */\nexport const MenubarSubContent = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.SubContent>,\n MenubarSubContentProps\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.SubContent\n ref={ref}\n className={cn(\"dl-menu-content\", className)}\n {...props}\n />\n));\nMenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;\n\nexport type MenubarContentProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.Content\n>;\n\n/**\n * Floating panel displaying items under a top-level `MenubarTrigger`.\n */\nexport const MenubarContent = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Content>,\n MenubarContentProps\n>(\n (\n { className, align = \"start\", alignOffset = -4, sideOffset = 8, ...props },\n ref,\n ) => (\n <MenubarPrimitive.Portal>\n <MenubarPrimitive.Content\n ref={ref}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\"dl-menu-content\", className)}\n {...props}\n />\n </MenubarPrimitive.Portal>\n ),\n);\nMenubarContent.displayName = MenubarPrimitive.Content.displayName;\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\";\nimport { Check, Circle } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type MenubarItemProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.Item\n> & {\n inset?: boolean;\n};\n\n/**\n * Selectable item within a Menubar menu.\n */\nexport const MenubarItem = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Item>,\n MenubarItemProps\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.Item\n ref={ref}\n className={cn(\"dl-menu-item\", inset && \"dl-menu-item--inset\", className)}\n {...props}\n />\n));\nMenubarItem.displayName = MenubarPrimitive.Item.displayName;\n\nexport type MenubarCheckboxItemProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.CheckboxItem\n>;\n\n/**\n * Checkbox item within a Menubar menu.\n */\nexport const MenubarCheckboxItem = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.CheckboxItem>,\n MenubarCheckboxItemProps\n>(({ className, children, checked, ...props }, ref) => (\n <MenubarPrimitive.CheckboxItem\n ref={ref}\n className={cn(\"dl-menu-item dl-menu-checkbox-item\", className)}\n checked={checked}\n {...props}\n >\n <span className=\"dl-menu-checkbox-item__indicator\">\n <MenubarPrimitive.ItemIndicator>\n <Check className=\"dl-menu-item__icon\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n));\nMenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;\n\nexport type MenubarRadioItemProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.RadioItem\n>;\n\n/**\n * Radio item within a Menubar menu.\n */\nexport const MenubarRadioItem = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.RadioItem>,\n MenubarRadioItemProps\n>(({ className, children, ...props }, ref) => (\n <MenubarPrimitive.RadioItem\n ref={ref}\n className={cn(\"dl-menu-item dl-menu-radio-item\", className)}\n {...props}\n >\n <span className=\"dl-menu-radio-item__indicator\">\n <MenubarPrimitive.ItemIndicator>\n <Circle className=\"dl-menu-item__radio-dot\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n));\nMenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;\n\nexport type MenubarLabelProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.Label\n> & {\n inset?: boolean;\n};\n\n/**\n * Header label within a Menubar menu.\n */\nexport const MenubarLabel = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Label>,\n MenubarLabelProps\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.Label\n ref={ref}\n className={cn(\"dl-menu-label\", inset && \"dl-menu-label--inset\", className)}\n {...props}\n />\n));\nMenubarLabel.displayName = MenubarPrimitive.Label.displayName;\n\nexport type MenubarSeparatorProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.Separator\n>;\n\n/**\n * Divider separating items within a Menubar menu.\n */\nexport const MenubarSeparator = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Separator>,\n MenubarSeparatorProps\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Separator\n ref={ref}\n className={cn(\"dl-menu-separator\", className)}\n {...props}\n />\n));\nMenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;\n\nexport type MenubarShortcutProps = React.HTMLAttributes<HTMLSpanElement>;\n\n/**\n * Visual shortcut indicator displayed at the trailing end of a Menubar item.\n */\nexport const MenubarShortcut = ({\n className,\n ...props\n}: MenubarShortcutProps) => {\n return <span className={cn(\"dl-menu-shortcut\", className)} {...props} />;\n};\nMenubarShortcut.displayName = \"MenubarShortcut\";\n","import * as React from \"react\";\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\nimport { cva } from \"class-variance-authority\";\nimport { ChevronDown } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport type NavigationMenuProps = React.ComponentPropsWithoutRef<\n typeof NavigationMenuPrimitive.Root\n>;\n\n/**\n * Responsive navigation menu with animated indicator and dropdown content panels.\n *\n * @example\n * ```tsx\n * <NavigationMenu>\n * <NavigationMenuList>\n * <NavigationMenuItem>\n * <NavigationMenuTrigger>Getting Started</NavigationMenuTrigger>\n * <NavigationMenuContent>\n * <ul>\n * <li><a href=\"/intro\">Introduction</a></li>\n * <li><a href=\"/install\">Installation</a></li>\n * </ul>\n * </NavigationMenuContent>\n * </NavigationMenuItem>\n * <NavigationMenuItem>\n * <NavigationMenuLink href=\"/docs\">Documentation</NavigationMenuLink>\n * </NavigationMenuItem>\n * </NavigationMenuList>\n * </NavigationMenu>\n * ```\n */\nconst NavigationMenu = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Root>,\n NavigationMenuProps\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn(\"dl-navigation-menu\", className)}\n {...props}\n >\n {children}\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Root>\n));\nNavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;\n\nexport type NavigationMenuListProps = React.ComponentPropsWithoutRef<\n typeof NavigationMenuPrimitive.List\n>;\n\n/**\n * List container (`<ul>`) holding top-level navigation menu items.\n */\nconst NavigationMenuList = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.List>,\n NavigationMenuListProps\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn(\"dl-navigation-menu-list\", className)}\n {...props}\n />\n));\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;\n\n/**\n * Individual navigation menu item wrapper (`<li>`).\n */\nconst NavigationMenuItem = NavigationMenuPrimitive.Item;\n\nconst navigationMenuTriggerStyle = cva(\"dl-navigation-menu-trigger\");\n\nexport type NavigationMenuTriggerProps = React.ComponentPropsWithoutRef<\n typeof NavigationMenuPrimitive.Trigger\n>;\n\n/**\n * Trigger button that reveals submenu content for a navigation item.\n */\nconst NavigationMenuTrigger = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Trigger>,\n NavigationMenuTriggerProps\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDown className=\"dl-navigation-menu-chevron\" aria-hidden=\"true\" />\n </NavigationMenuPrimitive.Trigger>\n));\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;\n\nexport type NavigationMenuContentProps = React.ComponentPropsWithoutRef<\n typeof NavigationMenuPrimitive.Content\n>;\n\n/**\n * Dropdown panel content associated with a `NavigationMenuTrigger`.\n */\nconst NavigationMenuContent = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Content>,\n NavigationMenuContentProps\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\"dl-navigation-menu-content\", className)}\n {...props}\n />\n));\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;\n\n/**\n * Navigational link rendered within a navigation menu.\n */\nconst NavigationMenuLink = NavigationMenuPrimitive.Link;\n\nexport type NavigationMenuViewportProps = React.ComponentPropsWithoutRef<\n typeof NavigationMenuPrimitive.Viewport\n>;\n\n/**\n * Animated viewport container where active menu dropdown content is positioned.\n */\nconst NavigationMenuViewport = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Viewport>,\n NavigationMenuViewportProps\n>(({ className, ...props }, ref) => (\n <div className=\"dl-navigation-menu-viewport-wrapper\">\n <NavigationMenuPrimitive.Viewport\n className={cn(\"dl-navigation-menu-viewport\", className)}\n ref={ref}\n {...props}\n />\n </div>\n));\nNavigationMenuViewport.displayName =\n NavigationMenuPrimitive.Viewport.displayName;\n\nexport type NavigationMenuIndicatorProps = React.ComponentPropsWithoutRef<\n typeof NavigationMenuPrimitive.Indicator\n>;\n\n/**\n * Indicator arrow pointing to the currently active navigation trigger.\n */\nconst NavigationMenuIndicator = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Indicator>,\n NavigationMenuIndicatorProps\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\"dl-navigation-menu-indicator\", className)}\n {...props}\n >\n <div className=\"dl-navigation-menu-indicator__arrow\" />\n </NavigationMenuPrimitive.Indicator>\n));\nNavigationMenuIndicator.displayName =\n NavigationMenuPrimitive.Indicator.displayName;\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n};\n","import * as React from \"react\";\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { ButtonProps, buttonVariants } from \"@/components/button\";\n\nexport type PaginationProps = React.ComponentProps<\"nav\">;\n\n/**\n * Accessible navigation container for paginated content.\n *\n * @example\n * ```tsx\n * <Pagination>\n * <PaginationContent>\n * <PaginationItem>\n * <PaginationPrevious href=\"#\" />\n * </PaginationItem>\n * <PaginationItem>\n * <PaginationLink href=\"#\" isActive>1</PaginationLink>\n * </PaginationItem>\n * <PaginationItem>\n * <PaginationLink href=\"#\">2</PaginationLink>\n * </PaginationItem>\n * <PaginationItem>\n * <PaginationEllipsis />\n * </PaginationItem>\n * <PaginationItem>\n * <PaginationNext href=\"#\" />\n * </PaginationItem>\n * </PaginationContent>\n * </Pagination>\n * ```\n */\nconst Pagination = ({ className, ...props }: PaginationProps) => (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn(\"dl-pagination\", className)}\n {...props}\n />\n);\nPagination.displayName = \"Pagination\";\n\nexport type PaginationContentProps = React.ComponentProps<\"ul\">;\n\n/**\n * List container (`<ul>`) holding pagination links and items.\n */\nconst PaginationContent = React.forwardRef<\n HTMLUListElement,\n PaginationContentProps\n>(({ className, ...props }, ref) => (\n <ul ref={ref} className={cn(\"dl-pagination-content\", className)} {...props} />\n));\nPaginationContent.displayName = \"PaginationContent\";\n\nexport type PaginationItemProps = React.ComponentProps<\"li\">;\n\n/**\n * List item (`<li>`) wrapper for individual pagination controls.\n */\nconst PaginationItem = React.forwardRef<HTMLLIElement, PaginationItemProps>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn(\"dl-pagination-item\", className)} {...props} />\n ),\n);\nPaginationItem.displayName = \"PaginationItem\";\n\nexport type PaginationLinkProps = {\n /** Marks this page link as currently active */\n isActive?: boolean;\n} & Pick<ButtonProps, \"size\"> &\n React.ComponentProps<\"a\">;\n\n/**\n * Interactive link styled as a button for navigating between pages.\n */\nconst PaginationLink = ({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) => (\n <a\n aria-current={isActive ? \"page\" : undefined}\n className={cn(\n buttonVariants({\n variant: isActive ? \"outline\" : \"ghost\",\n size,\n }),\n className,\n )}\n {...props}\n />\n);\nPaginationLink.displayName = \"PaginationLink\";\n\nexport type PaginationPreviousProps = React.ComponentProps<\n typeof PaginationLink\n>;\n\n/**\n * \"Previous\" page navigation link with a preceding chevron icon.\n */\nconst PaginationPrevious = ({\n className,\n ...props\n}: PaginationPreviousProps) => (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"dl-pagination-prev\", className)}\n {...props}\n >\n <ChevronLeft className=\"dl-pagination-icon\" />\n <span>Previous</span>\n </PaginationLink>\n);\nPaginationPrevious.displayName = \"PaginationPrevious\";\n\nexport type PaginationNextProps = React.ComponentProps<typeof PaginationLink>;\n\n/**\n * \"Next\" page navigation link with a trailing chevron icon.\n */\nconst PaginationNext = ({ className, ...props }: PaginationNextProps) => (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"dl-pagination-next\", className)}\n {...props}\n >\n <span>Next</span>\n <ChevronRight className=\"dl-pagination-icon\" />\n </PaginationLink>\n);\nPaginationNext.displayName = \"PaginationNext\";\n\nexport type PaginationEllipsisProps = React.ComponentProps<\"span\">;\n\n/**\n * Ellipsis indicator (`...`) denoting skipped pages in a pagination sequence.\n */\nconst PaginationEllipsis = ({\n className,\n ...props\n}: PaginationEllipsisProps) => (\n <span\n aria-hidden\n className={cn(\"dl-pagination-ellipsis\", className)}\n {...props}\n >\n <MoreHorizontal />\n <span className=\"sr-only\">More pages</span>\n </span>\n);\nPaginationEllipsis.displayName = \"PaginationEllipsis\";\n\nexport {\n Pagination,\n PaginationContent,\n PaginationLink,\n PaginationItem,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n};\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface PanelProps extends React.HTMLAttributes<HTMLElement> {\n /** Optional header title for the panel section */\n title?: string;\n /** Optional metadata node displayed adjacent to the title (e.g. status badge or actions) */\n meta?: React.ReactNode;\n}\n\n/**\n * Panel container component for structured dashboard sections, sidebars, and grouped content.\n *\n * @example\n * ```tsx\n * <Panel title=\"Agent Metrics\" meta={<Badge>Active</Badge>}>\n * <p>Real-time execution analytics.</p>\n * </Panel>\n * ```\n */\nexport const Panel = React.forwardRef<HTMLElement, PanelProps>(\n ({ title, meta, children, className, ...props }, ref) => {\n return (\n <section ref={ref} className={cn(\"dl-panel\", className)} {...props}>\n {title ? (\n <div className=\"dl-panel__header\">\n <h2 className=\"dl-panel__title\">{title}</h2>\n {meta ? <div className=\"dl-panel__meta\">{meta}</div> : null}\n </div>\n ) : null}\n {children}\n </section>\n );\n },\n);\nPanel.displayName = \"Panel\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\";\nimport { cn } from \"@/lib/utils\";\n\nexport type ProgressProps = React.ComponentPropsWithoutRef<\n typeof ProgressPrimitive.Root\n>;\n\n/**\n * Progress indicator component for displaying task completion or loading state.\n *\n * @example\n * ```tsx\n * <Progress value={65} className=\"w-[60%]\" />\n * ```\n */\nconst Progress = React.forwardRef<\n React.ComponentRef<typeof ProgressPrimitive.Root>,\n ProgressProps\n>(({ className, value, ...props }, ref) => (\n <ProgressPrimitive.Root\n ref={ref}\n className={cn(\"dl-progress\", className)}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className=\"dl-progress__indicator\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n));\nProgress.displayName = ProgressPrimitive.Root.displayName;\n\nexport { Progress };\n","import * as React from \"react\";\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { Circle } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type RadioGroupProps = React.ComponentPropsWithoutRef<\n typeof RadioGroupPrimitive.Root\n>;\n\n/**\n * RadioGroup container component managing a set of mutually exclusive radio options.\n * Built upon Radix UI RadioGroup with pure scoped CSS.\n *\n * @example\n * ```tsx\n * <RadioGroup defaultValue=\"monthly\" onValueChange={setBillingCycle}>\n * <Flex align=\"center\" gap=\"2\">\n * <RadioGroupItem value=\"monthly\" id=\"r1\" />\n * <Label htmlFor=\"r1\">Monthly Billing</Label>\n * </Flex>\n * <Flex align=\"center\" gap=\"2\">\n * <RadioGroupItem value=\"annual\" id=\"r2\" />\n * <Label htmlFor=\"r2\">Annual Billing (Save 20%)</Label>\n * </Flex>\n * </RadioGroup>\n * ```\n */\nconst RadioGroup = React.forwardRef<\n React.ComponentRef<typeof RadioGroupPrimitive.Root>,\n RadioGroupProps\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"dl-radio-group\", className)}\n {...props}\n ref={ref}\n />\n );\n});\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;\n\nexport type RadioGroupItemProps = React.ComponentPropsWithoutRef<\n typeof RadioGroupPrimitive.Item\n>;\n\n/**\n * Individual radio option item within a RadioGroup.\n */\nconst RadioGroupItem = React.forwardRef<\n React.ComponentRef<typeof RadioGroupPrimitive.Item>,\n RadioGroupItemProps\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\"dl-radio-item\", className)}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"dl-radio-item__indicator\">\n <Circle aria-hidden=\"true\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n});\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;\n\nexport { RadioGroup, RadioGroupItem };\n","import * as React from \"react\";\nimport { GripVertical } from \"lucide-react\";\nimport { Group, Panel, Separator } from \"react-resizable-panels\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport type ResizablePanelGroupProps = React.ComponentProps<typeof Group>;\n\n/**\n * Container component managing resizable panel layouts.\n *\n * @example\n * ```tsx\n * <ResizablePanelGroup orientation=\"horizontal\">\n * <ResizablePanel defaultSize={50}>Left Content</ResizablePanel>\n * <ResizableHandle withHandle />\n * <ResizablePanel defaultSize={50}>Right Content</ResizablePanel>\n * </ResizablePanelGroup>\n * ```\n */\nconst ResizablePanelGroup = ({\n className,\n ...props\n}: ResizablePanelGroupProps) => (\n <Group className={cn(\"dl-resizable-group\", className)} {...props} />\n);\n\nexport type ResizablePanelProps = React.ComponentProps<typeof Panel>;\n\n/**\n * Individual resizable panel section within a `ResizablePanelGroup`.\n */\nconst ResizablePanel = Panel;\n\nexport type ResizableHandleProps = React.ComponentProps<typeof Separator> & {\n /** Renders a visual draggable grip icon inside the handle */\n withHandle?: boolean;\n};\n\n/**\n * Drag handle divider placed between resizable panels.\n */\nconst ResizableHandle = ({\n withHandle,\n className,\n ...props\n}: ResizableHandleProps) => (\n <Separator className={cn(\"dl-resizable-handle\", className)} {...props}>\n {withHandle && (\n <div className=\"dl-resizable-grip\">\n <GripVertical />\n </div>\n )}\n </Separator>\n);\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\n","import * as React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\nimport { cn } from \"@/lib/utils\";\n\nexport type ScrollAreaProps = React.ComponentPropsWithoutRef<\n typeof ScrollAreaPrimitive.Root\n>;\n\n/**\n * Custom scrollable area component with styled cross-browser scrollbars.\n *\n * @example\n * ```tsx\n * <ScrollArea>\n * <Box p=\"4\">\n * {items.map((item) => (\n * <div key={item.id}>{item.name}</div>\n * ))}\n * </Box>\n * </ScrollArea>\n * ```\n */\nconst ScrollArea = React.forwardRef<\n React.ComponentRef<typeof ScrollAreaPrimitive.Root>,\n ScrollAreaProps\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"dl-scroll-area\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"dl-scroll-area__viewport\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n));\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nexport type ScrollBarProps = React.ComponentPropsWithoutRef<\n typeof ScrollAreaPrimitive.ScrollAreaScrollbar\n>;\n\n/**\n * ScrollBar track and thumb component supporting vertical and horizontal orientations.\n */\nconst ScrollBar = React.forwardRef<\n React.ComponentRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n ScrollBarProps\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\"dl-scroll-area__bar\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"dl-scroll-area__thumb\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n","import * as React from \"react\";\nimport { Search, Plus, Check, ChevronDown } from \"lucide-react\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/popover\";\nimport { Input } from \"@/components/input\";\nimport { Button } from \"@/components/button\";\nimport { cn } from \"@/lib/utils\";\nimport {\n SearchableSelectOption,\n SearchableSelectProps,\n} from \"./searchable-select-types\";\nimport { useSearchableSelect } from \"./use-searchable-select\";\n\nexport type { SearchableSelectOption, SearchableSelectProps };\n\n/**\n * Searchable select component with live filtering, keyboard navigation, option grouping,\n * and optional creation of new entries.\n *\n * @example\n * ```tsx\n * <SearchableSelect\n * options={[\n * { label: \"Claude 3.5 Sonnet\", value: \"anthropic/claude-3-5-sonnet\" },\n * { label: \"GPT-4o\", value: \"openai/gpt-4o\" },\n * ]}\n * value={selectedModel}\n * onChange={setSelectedModel}\n * placeholder=\"Choose model...\"\n * />\n * ```\n */\nexport function SearchableSelect({\n options,\n value,\n onChange,\n placeholder = \"Select an option...\",\n searchPlaceholder = \"Search...\",\n onAddNew,\n addNewLabel = \"Add new\",\n disabled = false,\n className,\n id,\n}: SearchableSelectProps) {\n const {\n open,\n search,\n highlightedIndex,\n setHighlightedIndex,\n listRef,\n selectedOption,\n filteredOptions,\n groupedOptions,\n handleOpenChange,\n handleSearchChange,\n handleSelect,\n handleAddNew,\n handleKeyDown,\n } = useSearchableSelect({ options, value, onChange, onAddNew });\n\n let currentIndex = 0;\n return (\n <Popover open={open} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <Button\n id={id}\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n onKeyDown={handleKeyDown}\n className={cn(\n \"dl-searchable-select-trigger\",\n !selectedOption && \"dl-searchable-select-trigger--placeholder\",\n className,\n )}\n >\n <span className=\"dl-searchable-select-truncate\">\n {selectedOption ? selectedOption.label : placeholder}\n </span>\n <ChevronDown className=\"dl-select-icon\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n align=\"start\"\n className=\"dl-searchable-select-content\"\n onKeyDown={handleKeyDown}\n >\n <div className=\"dl-searchable-select-search\">\n <Search className=\"dl-searchable-select-search-icon\" />\n <Input\n placeholder={searchPlaceholder}\n value={search}\n onChange={(e) => handleSearchChange(e.target.value)}\n className=\"dl-searchable-select-search-input\"\n autoFocus\n />\n </div>\n\n <div\n ref={listRef}\n onWheel={(e) => e.stopPropagation()}\n className=\"dl-searchable-select-list\"\n >\n {Object.keys(groupedOptions).length === 0 ||\n (filteredOptions.length === 0 && !onAddNew) ? (\n <div className=\"dl-searchable-select-empty\">\n No matching options found.\n </div>\n ) : (\n Object.entries(groupedOptions).map(([groupName, groupOpts]) => (\n <div key={groupName} className=\"dl-searchable-select-group\">\n {groupName !== \"Default\" && (\n <div className=\"dl-searchable-select-group-header\">\n {groupName}\n </div>\n )}\n {groupOpts.map((option) => {\n const isSelected = option.value === value;\n const itemIndex = currentIndex++;\n const isHighlighted = itemIndex === highlightedIndex;\n\n return (\n <div\n key={option.value}\n data-highlighted={isHighlighted}\n onClick={() => handleSelect(option.value)}\n onMouseEnter={() => setHighlightedIndex(itemIndex)}\n className={cn(\n \"dl-searchable-select-item\",\n isHighlighted &&\n \"dl-searchable-select-item--highlighted\",\n isSelected &&\n !isHighlighted &&\n \"dl-searchable-select-item--selected\",\n )}\n >\n <span className=\"dl-searchable-select-item-text\">\n {option.label}\n </span>\n {isSelected && <Check className=\"dl-select-check\" />}\n </div>\n );\n })}\n </div>\n ))\n )}\n </div>\n\n {onAddNew && (\n <div className=\"dl-searchable-select-add\">\n <button\n type=\"button\"\n onClick={handleAddNew}\n className=\"dl-searchable-select-add-btn\"\n >\n <Plus className=\"dl-searchable-select-add-icon\" />\n <span className=\"dl-searchable-select-truncate\">\n {search.trim()\n ? `${addNewLabel} \"${search.trim()}\"`\n : addNewLabel}\n </span>\n </button>\n </div>\n )}\n </PopoverContent>\n </Popover>\n );\n}\n","import * as React from \"react\";\nimport {\n SearchableSelectOption,\n SearchableSelectProps,\n} from \"./searchable-select-types\";\n\n/**\n * Encapsulates filtering, keyboard navigation, and grouping state for `SearchableSelect`.\n */\nexport function useSearchableSelect({\n options,\n value,\n onChange,\n onAddNew,\n}: Pick<SearchableSelectProps, \"options\" | \"value\" | \"onChange\" | \"onAddNew\">) {\n const [open, setOpen] = React.useState(false);\n const [search, setSearch] = React.useState(\"\");\n const [highlightedIndex, setHighlightedIndex] = React.useState<number>(0);\n const listRef = React.useRef<HTMLDivElement>(null);\n\n const selectedOption = React.useMemo(() => {\n return options.find((opt) => opt.value === value);\n }, [options, value]);\n\n const filteredOptions = React.useMemo(() => {\n if (!search.trim()) return options;\n const q = search.toLowerCase();\n return options.filter(\n (opt) =>\n opt.label.toLowerCase().includes(q) ||\n (opt.group && opt.group.toLowerCase().includes(q)),\n );\n }, [options, search]);\n\n const handleOpenChange = (newOpen: boolean) => {\n setOpen(newOpen);\n if (newOpen) {\n const idx = filteredOptions.findIndex((opt) => opt.value === value);\n setHighlightedIndex(idx >= 0 ? idx : 0);\n } else {\n setSearch(\"\");\n }\n };\n\n const handleSearchChange = (q: string) => {\n setSearch(q);\n setHighlightedIndex(0);\n };\n\n React.useEffect(() => {\n if (open && listRef.current) {\n const activeEl = listRef.current.querySelector<HTMLElement>(\n \"[data-highlighted='true']\",\n );\n if (activeEl) {\n activeEl.scrollIntoView({ block: \"nearest\" });\n }\n }\n }, [highlightedIndex, open]);\n\n const groupedOptions = React.useMemo(() => {\n const hasGroups = filteredOptions.some((opt) => opt.group);\n if (!hasGroups) return { Default: filteredOptions };\n\n return filteredOptions.reduce<Record<string, SearchableSelectOption[]>>(\n (acc, opt) => {\n const g = opt.group || \"Other\";\n if (!acc[g]) acc[g] = [];\n acc[g].push(opt);\n return acc;\n },\n {},\n );\n }, [filteredOptions]);\n\n const handleSelect = (val: string) => {\n onChange?.(val);\n setOpen(false);\n setSearch(\"\");\n };\n\n const handleAddNew = () => {\n onAddNew?.(search.trim());\n setOpen(false);\n setSearch(\"\");\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (!open) {\n if (e.key === \"ArrowDown\" || e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleOpenChange(true);\n }\n return;\n }\n\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n setHighlightedIndex((p) =>\n p < filteredOptions.length - 1 ? p + 1 : p,\n );\n break;\n case \"ArrowUp\":\n e.preventDefault();\n setHighlightedIndex((p) => (p > 0 ? p - 1 : 0));\n break;\n case \"Enter\":\n e.preventDefault();\n if (filteredOptions.length > 0 && filteredOptions[highlightedIndex]) {\n handleSelect(filteredOptions[highlightedIndex].value);\n } else if (onAddNew && search.trim()) {\n handleAddNew();\n }\n break;\n case \"Escape\":\n case \"Tab\":\n e.preventDefault();\n handleOpenChange(false);\n break;\n }\n };\n\n return {\n open,\n search,\n highlightedIndex,\n setHighlightedIndex,\n listRef,\n selectedOption,\n filteredOptions,\n groupedOptions,\n handleOpenChange,\n handleSearchChange,\n handleSelect,\n handleAddNew,\n handleKeyDown,\n };\n}\n","\"use client\";\nimport * as React from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Root container for accessible custom dropdown selection. Built on Radix UI Select.\n *\n * @example\n * ```tsx\n * <Select value={country} onValueChange={setCountry}>\n * <SelectTrigger className=\"w-[180px]\">\n * <SelectValue placeholder=\"Select country\" />\n * </SelectTrigger>\n * <SelectContent>\n * <SelectItem value=\"us\">United States</SelectItem>\n * <SelectItem value=\"de\">Germany</SelectItem>\n * <SelectItem value=\"jp\">Japan</SelectItem>\n * </SelectContent>\n * </Select>\n * ```\n */\nconst Select = SelectPrimitive.Root;\n\n/** Groups related items within a Select dropdown menu. */\nconst SelectGroup = SelectPrimitive.Group;\n\n/** Displays the currently selected value or a fallback placeholder. */\nconst SelectValue = SelectPrimitive.Value;\n\nexport type SelectTriggerProps = React.ComponentPropsWithoutRef<\n typeof SelectPrimitive.Trigger\n>;\n\n/**\n * Interactive button that toggles the Select dropdown menu open and closed.\n */\nconst SelectTrigger = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Trigger>,\n SelectTriggerProps\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\"dl-select-trigger\", className)}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\"dl-select-scroll-btn\", className)}\n {...props}\n >\n <ChevronUp />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\"dl-select-scroll-btn\", className)}\n {...props}\n >\n <ChevronDown />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nexport type SelectContentProps = React.ComponentPropsWithoutRef<\n typeof SelectPrimitive.Content\n>;\n\n/**\n * Dropdown popover containing list items, groups, and labels.\n */\nconst SelectContent = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Content>,\n SelectContentProps\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\"dl-select-content\", className)}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport className=\"dl-select-viewport\">\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\n/** Header label for grouping items in a Select dropdown. */\nconst SelectLabel = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"dl-select-label\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nexport type SelectItemProps = React.ComponentPropsWithoutRef<\n typeof SelectPrimitive.Item\n>;\n\n/**\n * Individual selectable option inside a Select menu.\n */\nconst SelectItem = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Item>,\n SelectItemProps\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\"dl-select-item\", className)}\n {...props}\n >\n <span className=\"dl-select-item__indicator\">\n <SelectPrimitive.ItemIndicator>\n <Check />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\n/** Visual separator dividing groups or sections in a Select menu. */\nconst SelectSeparator = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"dl-select-separator\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n};\n","import * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport { cn } from \"@/lib/utils\";\n\nexport type SeparatorProps = React.ComponentPropsWithoutRef<\n typeof SeparatorPrimitive.Root\n>;\n\n/**\n * Visual or semantic divider between elements, supporting horizontal and vertical orientations.\n *\n * @example\n * ```tsx\n * <div>\n * <h4>Primitives</h4>\n * <p>An enterprise UI component library.</p>\n * <Separator />\n * <Flex align=\"center\" gap=\"4\">\n * <div>Blog</div>\n * <Separator orientation=\"vertical\" />\n * <div>Docs</div>\n * </Flex>\n * </div>\n * ```\n */\nconst Separator = React.forwardRef<\n React.ComponentRef<typeof SeparatorPrimitive.Root>,\n SeparatorProps\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref,\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\"dl-separator\", className)}\n {...props}\n />\n ),\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Root Sheet component for displaying slide-over drawers (left, right, top, bottom).\n * Built upon Radix UI Dialog with smooth CSS transitions.\n *\n * @example\n * ```tsx\n * <Sheet open={isOpen} onOpenChange={setIsOpen}>\n * <SheetTrigger asChild>\n * <Button variant=\"outline\">Open Menu</Button>\n * </SheetTrigger>\n * <SheetContent side=\"right\">\n * <SheetHeader>\n * <SheetTitle>Navigation Menu</SheetTitle>\n * <SheetDescription>Explore workspace features.</SheetDescription>\n * </SheetHeader>\n * <Box py=\"4\">Sheet navigation links...</Box>\n * </SheetContent>\n * </Sheet>\n * ```\n */\nconst Sheet = SheetPrimitive.Root;\n\n/** Interactive trigger element that opens the slide-over sheet drawer. */\nconst SheetTrigger = SheetPrimitive.Trigger;\n\n/** Interactive button that closes the open sheet. */\nconst SheetClose = SheetPrimitive.Close;\n\n/** Portals sheet content to the end of document.body for clean stacking context. */\nconst SheetPortal = SheetPrimitive.Portal;\n\nexport type SheetOverlayProps = React.ComponentPropsWithoutRef<\n typeof SheetPrimitive.Overlay\n>;\n\n/** Semi-transparent backdrop overlay rendered beneath the sliding sheet. */\nconst SheetOverlay = React.forwardRef<\n React.ComponentRef<typeof SheetPrimitive.Overlay>,\n SheetOverlayProps\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\"dl-dialog-overlay\", className)}\n {...props}\n ref={ref}\n />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\n/**\n * Sheet layout variants for top, bottom, left, and right side drawers.\n */\nconst sheetVariants = cva(\"dl-sheet-content\", {\n variants: {\n side: {\n top: \"dl-sheet-content--top\",\n bottom: \"dl-sheet-content--bottom\",\n left: \"dl-sheet-content--left\",\n right: \"dl-sheet-content--right\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n});\n\nexport interface SheetContentProps\n extends\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\n/** Content panel of the side sheet drawer. */\nconst SheetContent = React.forwardRef<\n React.ComponentRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n data-side={side}\n {...props}\n >\n <SheetPrimitive.Close className=\"dl-sheet-close\">\n <X />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n));\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\n/** Header section containing sheet title and description. */\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-sheet__header\", className)} {...props} />\n);\nSheetHeader.displayName = \"SheetHeader\";\n\n/** Footer section containing sheet action buttons. */\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-sheet__footer\", className)} {...props} />\n);\nSheetFooter.displayName = \"SheetFooter\";\n\n/** Accessible heading title for the sheet panel. */\nconst SheetTitle = React.forwardRef<\n React.ComponentRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"dl-sheet__title\", className)}\n {...props}\n />\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\n/** Accessible explanatory text for the sheet panel. */\nconst SheetDescription = React.forwardRef<\n React.ComponentRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"dl-sheet__desc\", className)}\n {...props}\n />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n sheetVariants,\n};\n","import * as React from \"react\";\nimport { useIsMobile } from \"@/hooks/use-mobile\";\nimport { cn } from \"@/lib/utils\";\nimport { TooltipProvider } from \"@/components/tooltip\";\n\nexport const SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nexport const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nexport const SIDEBAR_WIDTH = \"16rem\";\nexport const SIDEBAR_WIDTH_MOBILE = \"18rem\";\nexport const SIDEBAR_WIDTH_ICON = \"3rem\";\nexport const SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\n/**\n * Shape of the context provided by `SidebarProvider`.\n */\nexport type 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\nexport const SidebarContext = React.createContext<SidebarContextProps | null>(\n null,\n);\n\n/**\n * Hook to access the parent Sidebar context state and controls.\n *\n * @throws Error if used outside of `SidebarProvider`.\n */\nexport function useSidebar(): SidebarContextProps {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n return context;\n}\n\n/**\n * Props for `SidebarProvider`.\n */\nexport type SidebarProviderProps = React.ComponentProps<\"div\"> & {\n /** Initial open state in uncontrolled mode (default: true) */\n defaultOpen?: boolean;\n /** Controlled open state */\n open?: boolean;\n /** Callback fired when open state changes */\n onOpenChange?: (open: boolean) => void;\n};\n\n/**\n * Top-level provider orchestrating sidebar state, responsive breakpoints, and keyboard shortcuts (Cmd+B / Ctrl+B).\n *\n * @example\n * ```tsx\n * <SidebarProvider>\n * <Sidebar>...</Sidebar>\n * <SidebarInset>...</SidebarInset>\n * </SidebarProvider>\n * ```\n */\nexport const SidebarProvider = React.forwardRef<\n HTMLDivElement,\n SidebarProviderProps\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref,\n ) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\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 document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n const toggleSidebar = React.useCallback(() => {\n return isMobile\n ? setOpenMobile((prev) => !prev)\n : setOpen((prev) => !prev);\n }, [isMobile, setOpen, setOpenMobile]);\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n 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 [\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n ],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\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(\"dl-sidebar-wrapper\", className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n },\n);\nSidebarProvider.displayName = \"SidebarProvider\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"@/lib/utils\";\n\n/** Global provider setting delay duration and hover behavior for all child Tooltips. */\nconst TooltipProvider = TooltipPrimitive.Provider;\n\n/**\n * Root container for accessible hover/focus contextual tooltips.\n * Built upon Radix UI Tooltip.\n *\n * @example\n * ```tsx\n * <TooltipProvider>\n * <Tooltip>\n * <TooltipTrigger asChild>\n * <Button variant=\"ghost\" size=\"icon\">\n * <Info />\n * </Button>\n * </TooltipTrigger>\n * <TooltipContent side=\"top\">\n * <p>Display telemetry details</p>\n * </TooltipContent>\n * </Tooltip>\n * </TooltipProvider>\n * ```\n */\nconst Tooltip = TooltipPrimitive.Root;\n\n/** Trigger element that displays the tooltip on hover or keyboard focus. */\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nexport type TooltipContentProps = React.ComponentPropsWithoutRef<\n typeof TooltipPrimitive.Content\n>;\n\n/**\n * Floating tooltip content element styled with scoped `dl-tooltip` CSS tokens.\n */\nconst TooltipContent = React.forwardRef<\n React.ComponentRef<typeof TooltipPrimitive.Content>,\n TooltipContentProps\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\"dl-tooltip\", className)}\n {...props}\n />\n </TooltipPrimitive.Portal>\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"@/components/sheet\";\nimport { SIDEBAR_WIDTH_MOBILE, useSidebar } from \"./sidebar-context\";\n\n/** Props for `Sidebar`. */\nexport type SidebarProps = React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n};\n\n/**\n * Main collapsible navigation sidebar supporting floating, inset, desktop, and mobile sheet views.\n */\nexport const Sidebar = React.forwardRef<HTMLDivElement, SidebarProps>(\n (\n {\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <div\n className={cn(\"dl-sidebar dl-sidebar--static\", className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"dl-sidebar-mobile [&>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=\"dl-sidebar-mobile-content\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"dl-sidebar\", className)}\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n <div className=\"dl-sidebar-desktop-spacer\" />\n <div className=\"dl-sidebar-fixed\" {...props}>\n <div data-sidebar=\"sidebar\" className=\"dl-sidebar-inner\">\n {children}\n </div>\n </div>\n </div>\n );\n },\n);\nSidebar.displayName = \"Sidebar\";\n\n/** Props for `SidebarRail`. */\nexport type SidebarRailProps = React.ComponentProps<\"button\">;\n\n/** Hoverable/draggable rail divider on the edge of the sidebar for quick toggling. */\nexport const SidebarRail = React.forwardRef<\n HTMLButtonElement,\n SidebarRailProps\n>(({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\"dl-sidebar-rail\", className)}\n {...props}\n />\n );\n});\nSidebarRail.displayName = \"SidebarRail\";\n\n/** Props for `SidebarInset`. */\nexport type SidebarInsetProps = React.ComponentProps<\"main\">;\n\n/** Main application container when paired with an inset or standard sidebar. */\nexport const SidebarInset = React.forwardRef<HTMLDivElement, SidebarInsetProps>(\n ({ className, ...props }, ref) => (\n <main ref={ref} className={cn(\"dl-sidebar-inset\", className)} {...props} />\n ),\n);\nSidebarInset.displayName = \"SidebarInset\";\n\n/** Props for `SidebarHeader`. */\nexport type SidebarHeaderProps = React.ComponentProps<\"div\">;\n\n/** Header section at the top of a sidebar. */\nexport const SidebarHeader = React.forwardRef<\n HTMLDivElement,\n SidebarHeaderProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn(\"dl-sidebar-header\", className)}\n {...props}\n />\n));\nSidebarHeader.displayName = \"SidebarHeader\";\n\n/** Props for `SidebarFooter`. */\nexport type SidebarFooterProps = React.ComponentProps<\"div\">;\n\n/** Footer section pinned to the bottom of a sidebar. */\nexport const SidebarFooter = React.forwardRef<\n HTMLDivElement,\n SidebarFooterProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn(\"dl-sidebar-footer\", className)}\n {...props}\n />\n));\nSidebarFooter.displayName = \"SidebarFooter\";\n\n/** Props for `SidebarContent`. */\nexport type SidebarContentProps = React.ComponentProps<\"div\">;\n\n/** Scrollable middle container holding sidebar navigation groups. */\nexport const SidebarContent = React.forwardRef<\n HTMLDivElement,\n SidebarContentProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\"dl-sidebar-content\", className)}\n {...props}\n />\n));\nSidebarContent.displayName = \"SidebarContent\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"@/lib/utils\";\n\n/** Props for `SidebarGroup`. */\nexport type SidebarGroupProps = React.ComponentProps<\"div\">;\n\n/**\n * Section grouping related sidebar menu items.\n */\nexport const SidebarGroup = React.forwardRef<HTMLDivElement, SidebarGroupProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\"dl-sidebar-group\", className)}\n {...props}\n />\n );\n },\n);\nSidebarGroup.displayName = \"SidebarGroup\";\n\n/** Props for `SidebarGroupLabel`. */\nexport type SidebarGroupLabelProps = React.ComponentProps<\"div\"> & {\n asChild?: boolean;\n};\n\n/**\n * Text heading or label for a `SidebarGroup`.\n */\nexport const SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n SidebarGroupLabelProps\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"div\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\"dl-sidebar-group-label\", className)}\n {...props}\n />\n );\n});\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\";\n\n/** Props for `SidebarGroupAction`. */\nexport type SidebarGroupActionProps = React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n};\n\n/**\n * Secondary action button placed beside a `SidebarGroupLabel` (e.g. \"+\" to add items).\n */\nexport const SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n SidebarGroupActionProps\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\"dl-sidebar-group-action\", className)}\n {...props}\n />\n );\n});\nSidebarGroupAction.displayName = \"SidebarGroupAction\";\n\n/** Props for `SidebarGroupContent`. */\nexport type SidebarGroupContentProps = React.ComponentProps<\"div\">;\n\n/**\n * Content container rendered inside a `SidebarGroup`.\n */\nexport const SidebarGroupContent = React.forwardRef<\n HTMLDivElement,\n SidebarGroupContentProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn(\"dl-sidebar-group-content\", className)}\n {...props}\n />\n));\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"@/components/tooltip\";\nimport { useSidebar } from \"./sidebar-context\";\n\n/** Menu button variant styles. */\nexport const sidebarMenuButtonVariants = cva(\"dl-sidebar-menu-button\", {\n variants: {\n variant: {\n default: \"dl-sidebar-menu-button--default\",\n outline: \"dl-sidebar-menu-button--outline\",\n },\n size: {\n default: \"dl-sidebar-menu-button--md\",\n sm: \"dl-sidebar-menu-button--sm\",\n lg: \"dl-sidebar-menu-button--lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n});\n\n/** Props for `SidebarMenu`. */\nexport type SidebarMenuProps = React.ComponentProps<\"ul\">;\n\n/** Vertical list (`<ul>`) holding sidebar menu items. */\nexport const SidebarMenu = React.forwardRef<HTMLUListElement, SidebarMenuProps>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn(\"dl-sidebar-menu\", className)}\n {...props}\n />\n ),\n);\nSidebarMenu.displayName = \"SidebarMenu\";\n\n/** Props for `SidebarMenuItem`. */\nexport type SidebarMenuItemProps = React.ComponentProps<\"li\">;\n\n/** List item (`<li>`) wrapper for a sidebar navigation button or link. */\nexport const SidebarMenuItem = React.forwardRef<\n HTMLLIElement,\n SidebarMenuItemProps\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn(\"dl-sidebar-menu-item\", className)}\n {...props}\n />\n));\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\n\n/** Props for `SidebarMenuButton`. */\nexport type SidebarMenuButtonProps = React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>;\n\n/** Interactive navigation button inside a sidebar menu item, with automatic tooltip in collapsed icon mode. */\nexport const SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n SidebarMenuButtonProps\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : \"button\";\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-variant={variant}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n const tooltipProps =\n typeof tooltip === \"string\" ? { children: tooltip } : tooltip;\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltipProps}\n />\n </Tooltip>\n );\n },\n);\nSidebarMenuButton.displayName = \"SidebarMenuButton\";\n\n/** Props for `SidebarMenuAction`. */\nexport type SidebarMenuActionProps = React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n showOnHover?: boolean;\n};\n\n/** Secondary action button placed beside a sidebar menu button. */\nexport const SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n SidebarMenuActionProps\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n data-show-on-hover={showOnHover ? \"true\" : undefined}\n className={cn(\n \"dl-sidebar-menu-action\",\n showOnHover && \"dl-sidebar-menu-action--hover-only\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = \"SidebarMenuAction\";\n\n/** Props for `SidebarMenuBadge`. */\nexport type SidebarMenuBadgeProps = React.ComponentProps<\"div\">;\n\n/** Numeric or label badge placed on the right side of a sidebar menu button. */\nexport const SidebarMenuBadge = React.forwardRef<\n HTMLDivElement,\n SidebarMenuBadgeProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\"dl-sidebar-menu-badge\", className)}\n {...props}\n />\n));\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"@/lib/utils\";\nimport { Skeleton } from \"@/components/skeleton\";\n\n/** Props for `SidebarMenuSkeleton`. */\nexport type SidebarMenuSkeletonProps = React.ComponentProps<\"div\"> & {\n showIcon?: boolean;\n};\n\n/** Loading skeleton placeholder simulating a sidebar menu item. */\nexport const SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n SidebarMenuSkeletonProps\n>(({ className, showIcon = false, ...props }, ref) => {\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn(\"dl-sidebar-menu-skeleton\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"dl-sidebar-menu-skeleton-icon\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"dl-sidebar-menu-skeleton-text\"\n data-sidebar=\"menu-skeleton-text\"\n style={{ \"--skeleton-width\": width } as React.CSSProperties}\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\";\n\n/** Props for `SidebarMenuSub`. */\nexport type SidebarMenuSubProps = React.ComponentProps<\"ul\">;\n\n/** Nested sub-list container for hierarchical sidebar navigation. */\nexport const SidebarMenuSub = React.forwardRef<\n HTMLUListElement,\n SidebarMenuSubProps\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\"dl-sidebar-menu-sub\", className)}\n {...props}\n />\n));\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\n\n/** Props for `SidebarMenuSubItem`. */\nexport type SidebarMenuSubItemProps = React.ComponentProps<\"li\">;\n\n/** Nested item wrapper inside a `SidebarMenuSub`. */\nexport const SidebarMenuSubItem = React.forwardRef<\n HTMLLIElement,\n SidebarMenuSubItemProps\n>(({ ...props }, ref) => <li ref={ref} {...props} />);\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\n\n/** Props for `SidebarMenuSubButton`. */\nexport type SidebarMenuSubButtonProps = React.ComponentProps<\"a\"> & {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n};\n\n/** Navigation button/link inside a nested `SidebarMenuSub` tree. */\nexport const SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n SidebarMenuSubButtonProps\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"dl-sidebar-menu-sub-button\",\n size === \"sm\" && \"dl-sidebar-menu-sub-button--sm\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\";\n","import * as React from \"react\";\nimport { PanelLeft } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/button\";\nimport { Input } from \"@/components/input\";\nimport { Separator } from \"@/components/separator\";\nimport { useSidebar } from \"./sidebar-context\";\n\n/** Props for `SidebarTrigger`. */\nexport type SidebarTriggerProps = React.ComponentProps<typeof Button>;\n\n/**\n * Button trigger toggling sidebar collapsed/expanded state.\n */\nexport const SidebarTrigger = React.forwardRef<\n React.ComponentRef<typeof Button>,\n SidebarTriggerProps\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"dl-sidebar-trigger\", className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n});\nSidebarTrigger.displayName = \"SidebarTrigger\";\n\n/** Props for `SidebarSeparator`. */\nexport type SidebarSeparatorProps = React.ComponentProps<typeof Separator>;\n\n/**\n * Divider separating sidebar sections.\n */\nexport const SidebarSeparator = React.forwardRef<\n React.ComponentRef<typeof Separator>,\n SidebarSeparatorProps\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn(\"dl-sidebar-separator\", className)}\n {...props}\n />\n );\n});\nSidebarSeparator.displayName = \"SidebarSeparator\";\n\n/** Props for `SidebarInput`. */\nexport type SidebarInputProps = React.ComponentProps<typeof Input>;\n\n/**\n * Styled text input tailored for use inside a sidebar header or filter bar.\n */\nexport const SidebarInput = React.forwardRef<\n React.ComponentRef<typeof Input>,\n SidebarInputProps\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\"dl-sidebar-input\", className)}\n {...props}\n />\n );\n});\nSidebarInput.displayName = \"SidebarInput\";\n","import * as React from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { cn } from \"@/lib/utils\";\n\nexport type SliderProps = React.ComponentPropsWithoutRef<\n typeof SliderPrimitive.Root\n>;\n\n/**\n * Interactive slider component for selecting single numeric values or continuous ranges.\n * Built upon Radix UI Slider with scoped CSS track and thumb styling.\n *\n * @example\n * ```tsx\n * // Volume slider (0 - 100)\n * <Slider\n * value={[volume]}\n * onValueChange={([val]) => setVolume(val)}\n * max={100}\n * step={1}\n * />\n *\n * // Range slider (e.g. min & max price)\n * <Slider\n * value={priceRange}\n * onValueChange={setPriceRange}\n * min={0}\n * max={1000}\n * step={10}\n * />\n * ```\n */\nconst Slider = React.forwardRef<\n React.ComponentRef<typeof SliderPrimitive.Root>,\n SliderProps\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\"dl-slider\", className)}\n {...props}\n >\n <SliderPrimitive.Track className=\"dl-slider__track\">\n <SliderPrimitive.Range className=\"dl-slider__range\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"dl-slider__thumb\" />\n </SliderPrimitive.Root>\n));\nSlider.displayName = SliderPrimitive.Root.displayName;\n\nexport { Slider };\n","import React, { useEffect, useState } from \"react\";\nimport { Toaster as Sonner, toast } from \"sonner\";\nimport type { ThemeMode } from \"@/theme-provider\";\n\nexport type ToasterProps = React.ComponentProps<typeof Sonner>;\nexport type ToastTheme = ThemeMode;\n\n/**\n * Toast notification viewport container configured with `@yuva-devlab/ui` design tokens.\n * Automatically synchronizes Sonner theme with root document dark/light mode\n * when not explicitly provided.\n *\n * @example\n * ```tsx\n * // In your root layout:\n * <Toaster />\n *\n * // In any component:\n * toast.success(\"Configuration saved successfully!\");\n * toast.error(\"Failed to execute agent workflow.\");\n * ```\n */\nconst Toaster = ({ theme: propTheme, ...props }: ToasterProps) => {\n const [resolvedTheme, setResolvedTheme] = useState<ThemeMode>(\"system\");\n\n useEffect(() => {\n if (propTheme) return;\n const root = document.documentElement;\n const detect = () => {\n const isDark =\n root.classList.contains(\"dark\") ||\n (root.getAttribute(\"data-theme\")?.includes(\"dark\") ?? false);\n const isLight =\n root.classList.contains(\"light\") ||\n (root.getAttribute(\"data-theme\")?.includes(\"light\") ?? false);\n if (isDark) {\n setResolvedTheme(\"dark\");\n } else if (isLight) {\n setResolvedTheme(\"light\");\n } else {\n setResolvedTheme(\"system\");\n }\n };\n\n detect();\n const observer = new MutationObserver(detect);\n observer.observe(root, {\n attributes: true,\n attributeFilter: [\"class\", \"data-theme\"],\n });\n return () => observer.disconnect();\n }, [propTheme]);\n\n return (\n <Sonner\n theme={propTheme ?? resolvedTheme}\n className=\"dl-toaster\"\n toastOptions={{\n classNames: {\n toast: \"dl-toast\",\n description: \"dl-toast__desc\",\n actionButton: \"dl-toast__action\",\n cancelButton: \"dl-toast__cancel\",\n },\n }}\n {...props}\n />\n );\n};\n\nexport { Toaster, toast };\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nconst statusCategoryMap: Record<string, string> = {\n Completed: \"dl-status-badge--success\",\n COMPLETED: \"dl-status-badge--success\",\n Operational: \"dl-status-badge--success\",\n OPERATIONAL: \"dl-status-badge--success\",\n Active: \"dl-status-badge--success\",\n ACTIVE: \"dl-status-badge--success\",\n ONLINE: \"dl-status-badge--success\",\n \"In Progress\": \"dl-status-badge--info\",\n RUNNING: \"dl-status-badge--info\",\n \"Needs Approval\": \"dl-status-badge--warning\",\n Degraded: \"dl-status-badge--warning\",\n PAUSED: \"dl-status-badge--warning\",\n Failed: \"dl-status-badge--destructive\",\n FAILED: \"dl-status-badge--destructive\",\n Offline: \"dl-status-badge--muted\",\n DISABLED: \"dl-status-badge--muted\",\n IDLE: \"dl-status-badge--muted\",\n};\n\nexport interface StatusBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** The status string to display (e.g. \"Active\", \"Operational\", \"Failed\") */\n status: string;\n}\n\n/**\n * Visual status pill featuring a colored indicator dot and text label,\n * with automatic color mapping according to system status names.\n *\n * @example\n * ```tsx\n * <StatusBadge status=\"Active\" />\n * <StatusBadge status=\"Failed\" />\n * <StatusBadge status=\"In Progress\" />\n * ```\n */\nexport const StatusBadge = React.forwardRef<HTMLSpanElement, StatusBadgeProps>(\n ({ status, className, ...props }, ref) => {\n const normalizedStatus = status?.trim() ?? \"\";\n const colorClass =\n statusCategoryMap[normalizedStatus] ?? \"dl-status-badge--muted\";\n\n return (\n <span\n ref={ref}\n className={cn(\"dl-status-badge\", colorClass, className)}\n {...props}\n >\n <span className=\"dl-status-badge__dot\" />\n {normalizedStatus}\n </span>\n );\n },\n);\nStatusBadge.displayName = \"StatusBadge\";\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nconst statusToneMap: Record<string, string> = {\n active: \"dl-status-chip--primary\",\n running: \"dl-status-chip--primary\",\n completed: \"dl-status-chip--muted\",\n done: \"dl-status-chip--muted\",\n indexed: \"dl-status-chip--primary\",\n enabled: \"dl-status-chip--primary\",\n available: \"dl-status-chip--primary\",\n published: \"dl-status-chip--primary\",\n ok: \"dl-status-chip--primary\",\n waiting: \"dl-status-chip--warning\",\n paused: \"dl-status-chip--warning\",\n processing: \"dl-status-chip--warning\",\n degraded: \"dl-status-chip--warning\",\n warn: \"dl-status-chip--warning\",\n \"requires-approval\": \"dl-status-chip--warning\",\n draft: \"dl-status-chip--warning\",\n failed: \"dl-status-chip--destructive\",\n error: \"dl-status-chip--destructive\",\n offline: \"dl-status-chip--destructive\",\n};\n\nexport interface StatusChipProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** The lowercase machine or human status key (e.g. \"active\", \"processing\", \"failed\") */\n status: string;\n}\n\n/**\n * Compact chip indicator displaying lifecycle status states with a colored indicator dot.\n *\n * @example\n * ```tsx\n * <StatusChip status=\"running\" />\n * <StatusChip status=\"processing\" />\n * <StatusChip status=\"error\" />\n * ```\n */\nexport const StatusChip = React.forwardRef<HTMLSpanElement, StatusChipProps>(\n ({ status, className, ...props }, ref) => {\n const toneClass = statusToneMap[status] ?? \"dl-status-chip--muted\";\n\n return (\n <span\n ref={ref}\n className={cn(\"dl-status-chip\", toneClass, className)}\n {...props}\n >\n <span className=\"dl-status-chip__dot\" />\n {status}\n </span>\n );\n },\n);\nStatusChip.displayName = \"StatusChip\";\n","import * as React from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport { cn } from \"@/lib/utils\";\n\nexport type SwitchProps = React.ComponentPropsWithoutRef<\n typeof SwitchPrimitives.Root\n>;\n\n/**\n * Interactive toggle control that allows users to switch between on and off states.\n * Powered by Radix UI Switch primitive with scoped CSS transitions and token styling.\n *\n * @example\n * ```tsx\n * // Basic toggle switch\n * <div className=\"flex items-center justify-between\">\n * <Label htmlFor=\"airplane-mode\">Airplane Mode</Label>\n * <Switch id=\"airplane-mode\" checked={enabled} onCheckedChange={setEnabled} />\n * </div>\n *\n * // Disabled state\n * <Switch disabled checked={false} />\n * ```\n */\nconst Switch = React.forwardRef<\n React.ComponentRef<typeof SwitchPrimitives.Root>,\n SwitchProps\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\"dl-switch\", className)}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb className=\"dl-switch__thumb\" />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type TableProps = React.HTMLAttributes<HTMLTableElement>;\n\n/**\n * Responsive table container with pure scoped CSS styling.\n * Automatically wraps in a scrollable horizontal container (`dl-table-wrapper`).\n *\n * @example\n * ```tsx\n * <Table>\n * <TableHeader>\n * <TableRow>\n * <TableHead>Invoice</TableHead>\n * <TableHead>Status</TableHead>\n * <TableHead className=\"text-right\">Amount</TableHead>\n * </TableRow>\n * </TableHeader>\n * <TableBody>\n * <TableRow>\n * <TableCell>INV-001</TableCell>\n * <TableCell>Paid</TableCell>\n * <TableCell className=\"text-right\">$250.00</TableCell>\n * </TableRow>\n * </TableBody>\n * </Table>\n * ```\n */\nconst Table = React.forwardRef<HTMLTableElement, TableProps>(\n ({ className, ...props }, ref) => (\n <div className=\"dl-table-wrapper\">\n <table ref={ref} className={cn(\"dl-table\", className)} {...props} />\n </div>\n ),\n);\nTable.displayName = \"Table\";\n\nexport type TableHeaderProps = React.HTMLAttributes<HTMLTableSectionElement>;\n\n/**\n * Header section of a `Table` (`<thead>`).\n */\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, TableHeaderProps>(\n ({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"dl-table__head\", className)} {...props} />\n ),\n);\nTableHeader.displayName = \"TableHeader\";\n\nexport type TableBodyProps = React.HTMLAttributes<HTMLTableSectionElement>;\n\n/**\n * Body container of a `Table` (`<tbody>`).\n */\nconst TableBody = React.forwardRef<HTMLTableSectionElement, TableBodyProps>(\n ({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn(\"dl-table__body\", className)} {...props} />\n ),\n);\nTableBody.displayName = \"TableBody\";\n\nexport type TableFooterProps = React.HTMLAttributes<HTMLTableSectionElement>;\n\n/**\n * Footer section of a `Table` (`<tfoot>`) for totals or summaries.\n */\nconst TableFooter = React.forwardRef<HTMLTableSectionElement, TableFooterProps>(\n ({ className, ...props }, ref) => (\n <tfoot ref={ref} className={cn(\"dl-table__foot\", className)} {...props} />\n ),\n);\nTableFooter.displayName = \"TableFooter\";\n\nexport type TableRowProps = React.HTMLAttributes<HTMLTableRowElement>;\n\n/**\n * Interactive row within a `Table` (`<tr>`).\n */\nconst TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n ({ className, ...props }, ref) => (\n <tr ref={ref} className={cn(\"dl-table__row\", className)} {...props} />\n ),\n);\nTableRow.displayName = \"TableRow\";\n\nexport type TableHeadProps = React.ThHTMLAttributes<HTMLTableCellElement>;\n\n/**\n * Header cell within a `TableRow` (`<th>`).\n */\nconst TableHead = React.forwardRef<HTMLTableCellElement, TableHeadProps>(\n ({ className, ...props }, ref) => (\n <th ref={ref} className={cn(\"dl-table__head-cell\", className)} {...props} />\n ),\n);\nTableHead.displayName = \"TableHead\";\n\nexport type TableCellProps = React.TdHTMLAttributes<HTMLTableCellElement>;\n\n/**\n * Standard data cell within a `TableRow` (`<td>`).\n */\nconst TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, ...props }, ref) => (\n <td ref={ref} className={cn(\"dl-table__cell\", className)} {...props} />\n ),\n);\nTableCell.displayName = \"TableCell\";\n\nexport type TableCaptionProps = React.HTMLAttributes<HTMLTableCaptionElement>;\n\n/**\n * Accessible caption element describing the purpose or dataset of a `Table`.\n */\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n TableCaptionProps\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"dl-table__caption\", className)}\n {...props}\n />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Root Tabs container organizing content into alternate views.\n *\n * @example\n * ```tsx\n * <Tabs defaultValue=\"account\">\n * <TabsList>\n * <TabsTrigger value=\"account\">Account</TabsTrigger>\n * <TabsTrigger value=\"password\">Password</TabsTrigger>\n * </TabsList>\n * <TabsContent value=\"account\">Account settings form...</TabsContent>\n * <TabsContent value=\"password\">Password change form...</TabsContent>\n * </Tabs>\n * ```\n */\nconst Tabs = TabsPrimitive.Root;\n\nexport type TabsListProps = React.ComponentPropsWithoutRef<\n typeof TabsPrimitive.List\n>;\n\n/**\n * Navigation strip containing tab trigger buttons.\n */\nconst TabsList = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.List>,\n TabsListProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\"dl-tabs-list\", className)}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nexport type TabsTriggerProps = React.ComponentPropsWithoutRef<\n typeof TabsPrimitive.Trigger\n>;\n\n/**\n * Tab button that activates its associated content pane.\n */\nconst TabsTrigger = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.Trigger>,\n TabsTriggerProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\"dl-tabs-trigger\", className)}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nexport type TabsContentProps = React.ComponentPropsWithoutRef<\n typeof TabsPrimitive.Content\n>;\n\n/**\n * Content container rendered when the matching tab trigger is active.\n */\nconst TabsContent = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.Content>,\n TabsContentProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\"dl-tabs-content\", className)}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type TextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\n/**\n * Multi-line text field styled with design system tokens and scoped CSS.\n * Provides accessible focus states, vertical resizing, and clean error integration.\n *\n * @example\n * ```tsx\n * // Basic textarea\n * <Textarea placeholder=\"Type your message here...\" rows={4} />\n *\n * // Controlled textarea with character counter\n * <Textarea\n * value={notes}\n * onChange={(e) => setNotes(e.target.value)}\n * placeholder=\"Additional instructions...\"\n * disabled={isLoading}\n * />\n * ```\n */\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => (\n <textarea className={cn(\"dl-textarea\", className)} ref={ref} {...props} />\n ),\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n","import * as React from \"react\";\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst toggleVariants = cva(\"dl-toggle\", {\n variants: {\n variant: {\n default: \"dl-toggle--variant-default\",\n outline: \"dl-toggle--variant-outline\",\n },\n size: {\n default: \"dl-toggle--size-default\",\n sm: \"dl-toggle--size-sm\",\n lg: \"dl-toggle--size-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n});\n\nexport type ToggleProps = React.ComponentPropsWithoutRef<\n typeof TogglePrimitive.Root\n> &\n VariantProps<typeof toggleVariants>;\n\n/**\n * A two-state button that can be either on or off.\n *\n * @example\n * ```tsx\n * <Toggle aria-label=\"Toggle italic\">\n * <Italic />\n * </Toggle>\n * ```\n */\nconst Toggle = React.forwardRef<\n React.ComponentRef<typeof TogglePrimitive.Root>,\n ToggleProps\n>(({ className, variant, size, ...props }, ref) => (\n <TogglePrimitive.Root\n ref={ref}\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n));\n\nToggle.displayName = TogglePrimitive.Root.displayName;\n\nexport { Toggle, toggleVariants };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\";\nimport { type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\nimport { toggleVariants } from \"@/components/toggle\";\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants>\n>({\n size: \"default\",\n variant: \"default\",\n});\n\nexport type ToggleGroupProps = React.ComponentPropsWithoutRef<\n typeof ToggleGroupPrimitive.Root\n> &\n VariantProps<typeof toggleVariants>;\n\n/**\n * A set of two-state buttons that can be toggled on or off, supporting single or multiple selection.\n *\n * @example\n * ```tsx\n * <ToggleGroup type=\"multiple\">\n * <ToggleGroupItem value=\"bold\" aria-label=\"Toggle bold\">\n * <Bold />\n * </ToggleGroupItem>\n * <ToggleGroupItem value=\"italic\" aria-label=\"Toggle italic\">\n * <Italic />\n * </ToggleGroupItem>\n * </ToggleGroup>\n * ```\n */\nconst ToggleGroup = React.forwardRef<\n React.ComponentRef<typeof ToggleGroupPrimitive.Root>,\n ToggleGroupProps\n>(({ className, variant, size, children, ...props }, ref) => (\n <ToggleGroupPrimitive.Root\n ref={ref}\n className={cn(\"dl-toggle-group\", className)}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n));\n\nToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;\n\nexport type ToggleGroupItemProps = React.ComponentPropsWithoutRef<\n typeof ToggleGroupPrimitive.Item\n> &\n VariantProps<typeof toggleVariants>;\n\n/**\n * An individual toggle button within a `ToggleGroup`.\n */\nconst ToggleGroupItem = React.forwardRef<\n React.ComponentRef<typeof ToggleGroupPrimitive.Item>,\n ToggleGroupItemProps\n>(({ className, children, variant, size, ...props }, ref) => {\n const context = React.useContext(ToggleGroupContext);\n\n return (\n <ToggleGroupPrimitive.Item\n ref={ref}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className,\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n );\n});\n\nToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;\n\nexport { ToggleGroup, ToggleGroupItem };\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface MetricCardProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Label describing the metric */\n readonly label: string;\n /** Primary numeric or textual value */\n readonly value: React.ReactNode;\n /** Contextual note, subtitle, or percentage delta */\n readonly note?: string;\n /** Indicates positive trend (green highlight) */\n readonly positive?: boolean;\n /** Optional icon displayed next to the label */\n readonly icon?: React.ReactNode;\n}\n\n/**\n * MetricCard component displaying key statistical benchmarks with labels, values, and trends.\n *\n * @example\n * ```tsx\n * <MetricCard\n * label=\"Active services\"\n * value={5}\n * note=\"100% operational\"\n * positive={true}\n * />\n * ```\n */\nexport const MetricCard = React.forwardRef<HTMLDivElement, MetricCardProps>(\n ({ label, value, note, positive, icon, className, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(\"dl-metric-card\", className)} {...props}>\n <div className=\"dl-metric-card__header\">\n <span className=\"dl-metric-card__label\">{label}</span>\n {icon && <span className=\"dl-metric-card__icon\">{icon}</span>}\n </div>\n <div className=\"dl-metric-card__value-row\">\n <span className=\"dl-metric-card__value\">{value}</span>\n </div>\n {note && (\n <div\n className={cn(\n \"dl-metric-card__note\",\n positive === true && \"dl-metric-card__note--positive\",\n positive === false && \"dl-metric-card__note--negative\",\n )}\n >\n {note}\n </div>\n )}\n </div>\n );\n },\n);\nMetricCard.displayName = \"MetricCard\";\n\nexport interface MetricsGridProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Grid items */\n readonly children: React.ReactNode;\n}\n\n/**\n * Container component arranging MetricCards in a cohesive responsive grid layout.\n */\nexport const MetricsGrid = React.forwardRef<HTMLDivElement, MetricsGridProps>(\n ({ children, className, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(\"dl-metrics-grid\", className)} {...props}>\n {children}\n </div>\n );\n },\n);\nMetricsGrid.displayName = \"MetricsGrid\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Check, Copy } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface CopyButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Text content to write to user clipboard */\n readonly textToCopy: string;\n /** Label when in default idle state */\n readonly label?: string;\n /** Label shown upon successful copy */\n readonly copiedLabel?: string;\n /** Duration in milliseconds to maintain copied feedback (default 2000) */\n readonly resetTimeoutMs?: number;\n}\n\n/**\n * CopyButton component provides one-click clipboard copying with animated feedback.\n *\n * @example\n * ```tsx\n * <CopyButton textToCopy=\"dl_live_9a8f...bc01\" label=\"Copy Key\" />\n * ```\n */\nexport const CopyButton = React.forwardRef<HTMLButtonElement, CopyButtonProps>(\n (\n {\n textToCopy,\n label = \"Copy\",\n copiedLabel = \"Copied\",\n resetTimeoutMs = 2000,\n className,\n onClick,\n ...props\n },\n ref,\n ) => {\n const [isCopied, setIsCopied] = React.useState(false);\n\n const handleCopy = async (e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n\n try {\n await navigator.clipboard.writeText(textToCopy);\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), resetTimeoutMs);\n } catch {\n // Fallback for non-secure contexts if needed\n }\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n \"dl-copy-button\",\n isCopied && \"dl-copy-button--copied\",\n className,\n )}\n onClick={handleCopy}\n {...props}\n >\n {isCopied ? (\n <Check className=\"dl-copy-button__icon\" />\n ) : (\n <Copy className=\"dl-copy-button__icon\" />\n )}\n <span>{isCopied ? copiedLabel : label}</span>\n </button>\n );\n },\n);\nCopyButton.displayName = \"CopyButton\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { AlertTriangle } from \"lucide-react\";\nimport { CopyButton } from \"@/components/copy-button\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface SecretRevealCardProps extends React.HTMLAttributes<HTMLDivElement> {\n /** The sensitive secret or API key to reveal */\n readonly secret: string;\n /** Custom warning message (default informs about one-time reveal) */\n readonly warningMessage?: string;\n /** Label for copy button */\n readonly copyLabel?: string;\n}\n\n/**\n * SecretRevealCard component securely displays newly provisioned API keys and secrets\n * with copy capabilities and one-time retrieval warnings.\n *\n * @example\n * ```tsx\n * <SecretRevealCard\n * secret=\"dl_live_49f82bc9...\"\n * warningMessage=\"Copy this key now. It is hashed with SHA-256 and will never be shown again.\"\n * />\n * ```\n */\nexport const SecretRevealCard = React.forwardRef<\n HTMLDivElement,\n SecretRevealCardProps\n>(\n (\n {\n secret,\n warningMessage = \"One-time reveal. Please copy and store this credential securely before closing.\",\n copyLabel = \"Copy Secret\",\n className,\n ...props\n },\n ref,\n ) => {\n return (\n <div ref={ref} className={cn(\"dl-secret-reveal\", className)} {...props}>\n {warningMessage && (\n <div className=\"dl-secret-reveal__warning\">\n <AlertTriangle />\n <span>{warningMessage}</span>\n </div>\n )}\n <div className=\"dl-secret-reveal__code-wrap\">\n <code className=\"dl-secret-reveal__code\">{secret}</code>\n <CopyButton textToCopy={secret} label={copyLabel} />\n </div>\n </div>\n );\n },\n);\nSecretRevealCard.displayName = \"SecretRevealCard\";\n","/**\n * @file heading.tsx\n * @description Accessible heading primitive decoupling semantic hierarchy from visual presentation.\n */\n\nimport { forwardRef } from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport type { HeadingProps, HeadingTag } from \"./typography.types\";\n\n/**\n * Resolves the default HTML heading tag based on the visual size token.\n *\n * @param size - Visual size level\n * @returns Standard semantic heading tag\n */\nfunction resolveDefaultTag(size: string): HeadingTag {\n if (size === \"display\") return \"h1\";\n if (\n size === \"h1\" ||\n size === \"h2\" ||\n size === \"h3\" ||\n size === \"h4\" ||\n size === \"h5\" ||\n size === \"h6\"\n ) {\n return size;\n }\n return \"h2\";\n}\n\n/**\n * Heading primitive component.\n *\n * Allows developers to decouple semantic accessibility (`as=\"h1\"`) from visual\n * design styling (`size=\"h3\"`), ensuring 100% SEO/a11y compliance without breaking layouts.\n *\n * @example\n * ```tsx\n * // Visual h3 styling but semantic h1 tag in document outline\n * <Heading as=\"h1\" size=\"h3\">Financial Overview</Heading>\n *\n * // Standard display heading\n * <Heading size=\"display\" color=\"primary\">Hero Headline</Heading>\n * ```\n */\nexport const Heading = forwardRef<HTMLHeadingElement, HeadingProps>(\n function Heading(\n {\n as,\n size = \"h2\",\n color = \"default\",\n weight,\n align = \"left\",\n truncate = false,\n className,\n children,\n ...props\n },\n ref,\n ) {\n const Component = (as ?? resolveDefaultTag(size)) as HeadingTag;\n\n return (\n <Component\n ref={ref}\n className={cn(\"dl-heading\", `dl-${size}`, className)}\n data-typography-color={color !== \"default\" ? color : undefined}\n data-typography-align={align !== \"left\" ? align : undefined}\n data-typography-weight={weight}\n data-typography-truncate={truncate ? \"true\" : undefined}\n {...props}\n >\n {children}\n </Component>\n );\n },\n);\n\nHeading.displayName = \"Heading\";\n","/**\n * @file text.tsx\n * @description Accessible text primitive for body, captions, code, and metrics.\n */\n\nimport { forwardRef } from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport type { TextProps, TextTag } from \"./typography.types\";\n\n/**\n * Text primitive component.\n *\n * Provides standardized body, caption, code, and metric formatting consuming\n * centralized design tokens across all brands.\n *\n * @example\n * ```tsx\n * <Text variant=\"body-sm\" color=\"muted\">Updated 2 minutes ago</Text>\n * <Text as=\"span\" variant=\"metric\" color=\"success\">+18.4%</Text>\n * ```\n */\nexport const Text = forwardRef<HTMLElement, TextProps>(function Text(\n {\n as: Component = \"p\",\n variant = \"body\",\n color = \"default\",\n weight,\n align = \"left\",\n truncate = false,\n className,\n children,\n ...props\n },\n ref,\n) {\n const Element = Component as TextTag;\n\n return (\n <Element\n ref={ref as never}\n className={cn(\"dl-text\", `dl-${variant}`, className)}\n data-typography-color={color !== \"default\" ? color : undefined}\n data-typography-align={align !== \"left\" ? align : undefined}\n data-typography-weight={weight}\n data-typography-truncate={truncate ? \"true\" : undefined}\n {...props}\n >\n {children}\n </Element>\n );\n});\n\nText.displayName = \"Text\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Visual padding scale tokens mapped to semantic spacing CSS variables.\n */\nexport type BoxPadding =\n | \"0\"\n | \"1\"\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"8\"\n | \"10\"\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 8\n | 10;\n\n/**\n * Border radius scale tokens mapped to brand radius CSS variables.\n */\nexport type BoxRadius = \"none\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\n/**\n * Elevation shadow scale tokens.\n */\nexport type BoxShadow = \"none\" | \"sm\" | \"md\" | \"lg\" | \"glass\";\n\n/**\n * Props for the polymorphic Box layout primitive.\n */\nexport interface BoxProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * If true, delegates rendering to the direct child element via Radix Slot.\n * @default false\n */\n asChild?: boolean;\n /**\n * HTML element type to render.\n * @default \"div\"\n */\n as?: React.ElementType;\n /**\n * Internal padding token mapped to --space-* CSS variables.\n */\n p?: BoxPadding;\n /**\n * Horizontal padding token mapped to --space-* CSS variables.\n */\n px?: BoxPadding;\n /**\n * Vertical padding token mapped to --space-* CSS variables.\n */\n py?: BoxPadding;\n /**\n * Border radius token mapped to --radius-* CSS variables.\n */\n radius?: BoxRadius;\n /**\n * Elevation shadow token.\n */\n shadow?: BoxShadow;\n /**\n * Whether to render a default 1px border using var(--border).\n * @default false\n */\n border?: boolean;\n /**\n * Background surface token.\n */\n bg?:\n \"background\" | \"card\" | \"surface\" | \"surface-2\" | \"muted\" | \"transparent\";\n}\n\n/**\n * Primitive bounding Box component for structured spacing, borders, and surfaces.\n *\n * @example\n * ```tsx\n * <Box p=\"6\" bg=\"card\" border radius=\"lg\" shadow=\"md\">\n * <p>Card Content</p>\n * </Box>\n * ```\n */\nexport const Box = React.forwardRef<HTMLDivElement, BoxProps>(\n (\n {\n className,\n asChild = false,\n as,\n p,\n px,\n py,\n radius,\n shadow,\n border = false,\n bg,\n style,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : as || \"div\";\n\n const inlineStyles: React.CSSProperties = { ...style };\n if (p) inlineStyles.padding = `var(--space-${p})`;\n if (px) {\n inlineStyles.paddingLeft = `var(--space-${px})`;\n inlineStyles.paddingRight = `var(--space-${px})`;\n }\n if (py) {\n inlineStyles.paddingTop = `var(--space-${py})`;\n inlineStyles.paddingBottom = `var(--space-${py})`;\n }\n if (radius && radius !== \"none\") {\n inlineStyles.borderRadius = `var(--radius-${radius}, var(--radius))`;\n }\n if (border) {\n inlineStyles.border = \"1px solid var(--border)\";\n }\n if (bg) {\n inlineStyles.backgroundColor = `var(--${bg})`;\n }\n\n return (\n <Comp\n ref={ref}\n className={cn(\n \"dl-box\",\n shadow && shadow !== \"none\" && `dl-shadow-${shadow}`,\n className,\n )}\n style={inlineStyles}\n {...props}\n />\n );\n },\n);\n\nBox.displayName = \"Box\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Flexbox direction options.\n */\nexport type FlexDirection = \"row\" | \"row-reverse\" | \"col\" | \"col-reverse\";\n\n/**\n * Flexbox content alignment options along the main axis.\n */\nexport type FlexJustify =\n \"start\" | \"center\" | \"end\" | \"between\" | \"around\" | \"evenly\";\n\n/**\n * Flexbox item alignment options along the cross axis.\n */\nexport type FlexAlign = \"start\" | \"center\" | \"end\" | \"stretch\" | \"baseline\";\n\n/**\n * Spacing gap scale tokens mapped to --space-* CSS variables.\n */\nexport type LayoutGap =\n | \"0\"\n | \"1\"\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"8\"\n | \"10\"\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 8\n | 10;\n\n/**\n * Props for the Flex layout primitive.\n */\nexport interface FlexProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * If true, delegates rendering to the direct child element via Radix Slot.\n * @default false\n */\n asChild?: boolean;\n /**\n * HTML element type to render.\n * @default \"div\"\n */\n as?: React.ElementType;\n /**\n * Flex direction.\n * @default \"row\"\n */\n direction?: FlexDirection;\n /**\n * Main axis alignment (justify-content).\n */\n justify?: FlexJustify;\n /**\n * Cross axis alignment (align-items).\n */\n align?: FlexAlign;\n /**\n * Flex wrap behavior.\n * @default false\n */\n wrap?: boolean | \"wrap\" | \"nowrap\" | \"reverse\";\n /**\n * Gap spacing token mapped to --space-*.\n */\n gap?: LayoutGap;\n /**\n * Whether to display as inline-flex.\n * @default false\n */\n inline?: boolean;\n}\n\n/**\n * Polymorphic Flex container component for fluid 1-dimensional layouts.\n *\n * @example\n * ```tsx\n * <Flex justify=\"between\" align=\"center\" gap=\"4\">\n * <span>Title</span>\n * <Button size=\"sm\">Action</Button>\n * </Flex>\n * ```\n */\nexport const Flex = React.forwardRef<HTMLDivElement, FlexProps>(\n (\n {\n className,\n asChild = false,\n as,\n direction = \"row\",\n justify,\n align,\n wrap = false,\n gap,\n inline = false,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : as || \"div\";\n\n return (\n <Comp\n ref={ref}\n className={cn(\n \"dl-flex\",\n inline && \"dl-flex--inline\",\n direction && `dl-flex--${direction}`,\n justify && `dl-flex--justify-${justify}`,\n align && `dl-flex--align-${align}`,\n (wrap === true || wrap === \"wrap\") && \"dl-flex--wrap\",\n wrap === \"nowrap\" && \"dl-flex--nowrap\",\n wrap === \"reverse\" && \"dl-flex--wrap-reverse\",\n gap !== undefined && `dl-gap-${gap}`,\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nFlex.displayName = \"Flex\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"@/lib/utils\";\nimport type { LayoutGap } from \"./flex\";\n\n/**\n * Direction orientation for Stack flow.\n */\nexport type StackDirection = \"col\" | \"row\";\n\n/**\n * Alignment options for Stack items.\n */\nexport type StackAlign = \"start\" | \"center\" | \"end\" | \"stretch\" | \"baseline\";\n\n/**\n * Props for the Stack layout primitive.\n */\nexport interface StackProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * If true, delegates rendering to the direct child element via Radix Slot.\n * @default false\n */\n asChild?: boolean;\n /**\n * HTML element type to render.\n * @default \"div\"\n */\n as?: React.ElementType;\n /**\n * Flow orientation of the stack items.\n * @default \"col\"\n */\n direction?: StackDirection;\n /**\n * Spacing gap token mapped to --space-* CSS variables.\n * @default \"3\"\n */\n gap?: LayoutGap;\n /**\n * Alignment along the cross axis.\n * @default \"stretch\"\n */\n align?: StackAlign;\n}\n\n/**\n * High-velocity Stack layout primitive for structured vertical or horizontal flows.\n *\n * @example\n * ```tsx\n * <Stack direction=\"col\" gap=\"4\">\n * <Input label=\"Name\" />\n * <Input label=\"Email\" />\n * <Button>Submit</Button>\n * </Stack>\n * ```\n */\nexport const Stack = React.forwardRef<HTMLDivElement, StackProps>(\n (\n {\n className,\n asChild = false,\n as,\n direction = \"col\",\n gap = \"3\",\n align = \"stretch\",\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : as || \"div\";\n\n return (\n <Comp\n ref={ref}\n className={cn(\n \"dl-stack\",\n `dl-stack--${direction}`,\n `dl-flex--align-${align}`,\n gap !== undefined && `dl-gap-${gap}`,\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nStack.displayName = \"Stack\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"@/lib/utils\";\nimport type { LayoutGap } from \"./flex\";\n\n/**\n * Grid column counts (1 through 12).\n */\nexport type GridColumns = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\n/**\n * Props for the Grid layout primitive.\n */\nexport interface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * If true, delegates rendering to the direct child element via Radix Slot.\n * @default false\n */\n asChild?: boolean;\n /**\n * HTML element type to render.\n * @default \"div\"\n */\n as?: React.ElementType;\n /**\n * Number of uniform columns, or an auto-fit minItemWidth (e.g. \"280px\").\n * @default 1\n */\n cols?: GridColumns | string;\n /**\n * Alias for `cols`.\n */\n columns?: GridColumns | string;\n /**\n * Spacing gap token mapped to --space-* CSS variables.\n * @default \"4\"\n */\n gap?: LayoutGap;\n /**\n * Whether to display as inline-grid.\n * @default false\n */\n inline?: boolean;\n}\n\n/**\n * Responsive 2D Grid layout primitive.\n *\n * @example\n * ```tsx\n * <Grid cols={3} gap=\"4\">\n * <MetricCard title=\"A\" />\n * <MetricCard title=\"B\" />\n * <MetricCard title=\"C\" />\n * </Grid>\n * ```\n */\nexport const Grid = React.forwardRef<HTMLDivElement, GridProps>(\n (\n {\n className,\n asChild = false,\n as,\n cols,\n columns,\n gap = \"4\",\n inline = false,\n style,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : as || \"div\";\n const resolvedCols = cols ?? columns ?? 1;\n\n const inlineStyles: React.CSSProperties = { ...style };\n if (typeof resolvedCols === \"number\") {\n inlineStyles.gridTemplateColumns = `repeat(${resolvedCols}, minmax(0, 1fr))`;\n } else if (typeof resolvedCols === \"string\") {\n inlineStyles.gridTemplateColumns = `repeat(auto-fit, minmax(${resolvedCols}, 1fr))`;\n }\n\n return (\n <Comp\n ref={ref}\n className={cn(\n \"dl-grid\",\n inline && \"dl-grid--inline\",\n gap !== undefined && `dl-gap-${gap}`,\n className,\n )}\n style={inlineStyles}\n {...props}\n />\n );\n },\n);\n\nGrid.displayName = \"Grid\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Responsive maximum width constraint for the Container.\n */\nexport type ContainerSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"fluid\";\n\n/**\n * Props for the Container layout primitive.\n */\nexport interface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * If true, delegates rendering to the direct child element via Radix Slot.\n * @default false\n */\n asChild?: boolean;\n /**\n * HTML element type to render.\n * @default \"div\"\n */\n as?: React.ElementType;\n /**\n * Maximum width threshold.\n * @default \"xl\"\n */\n size?: ContainerSize;\n}\n\n/**\n * Centered responsive max-width boundary component for page sections and layouts.\n *\n * @example\n * ```tsx\n * <Container size=\"xl\">\n * <Header />\n * <Main />\n * </Container>\n * ```\n */\nexport const Container = React.forwardRef<HTMLDivElement, ContainerProps>(\n ({ className, asChild = false, as, size = \"xl\", ...props }, ref) => {\n const Comp = asChild ? Slot : as || \"div\";\n\n return (\n <Comp\n ref={ref}\n className={cn(\"dl-container\", `dl-container--${size}`, className)}\n {...props}\n />\n );\n },\n);\n\nContainer.displayName = \"Container\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAAA;AAAA,EAAA,0BAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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","names":["CollapsibleContent","CollapsibleTrigger","Label","RadioGroup","Separator","Tooltip","React","React","import_jsx_runtime","React","import_jsx_runtime","React","React","import_class_variance_authority","import_jsx_runtime","import_jsx_runtime","React","import_jsx_runtime","import_class_variance_authority","import_jsx_runtime","React","import_react_slot","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","useEmblaCarousel","React","import_lucide_react","import_jsx_runtime","React","React","import_jsx_runtime","React","RechartsPrimitive","import_jsx_runtime","React","RechartsPrimitive","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","CollapsibleTrigger","CollapsibleContent","React","import_lucide_react","React","import_lucide_react","import_jsx_runtime","import_jsx_runtime","CommandPrimitive","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","ContextMenuPrimitive","import_lucide_react","import_jsx_runtime","React","import_lucide_react","React","import_jsx_runtime","import_jsx_runtime","CalendarIcon","React","import_jsx_runtime","DrawerPrimitive","React","import_lucide_react","import_jsx_runtime","React","DropdownMenuPrimitive","import_lucide_react","import_jsx_runtime","React","import_jsx_runtime","React","import_react_slot","React","import_class_variance_authority","import_jsx_runtime","Label","import_jsx_runtime","Label","React","import_jsx_runtime","React","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","MenubarPrimitive","import_lucide_react","import_jsx_runtime","React","import_class_variance_authority","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","RadioGroup","import_lucide_react","import_jsx_runtime","React","import_jsx_runtime","import_lucide_react","React","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_jsx_runtime","Separator","React","import_class_variance_authority","import_lucide_react","import_jsx_runtime","React","React","import_jsx_runtime","Tooltip","import_jsx_runtime","React","import_jsx_runtime","React","import_react_slot","import_jsx_runtime","React","import_react_slot","import_class_variance_authority","import_jsx_runtime","Tooltip","React","import_react_slot","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","Separator","React","import_jsx_runtime","import_react","import_jsx_runtime","Sonner","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_class_variance_authority","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","import_react","import_jsx_runtime","Heading","import_react","import_jsx_runtime","Text","React","import_react_slot","import_jsx_runtime","React","import_react_slot","import_jsx_runtime","React","import_react_slot","import_jsx_runtime","React","import_react_slot","import_jsx_runtime","React","import_react_slot","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/lib/utils.ts","../src/theme-provider.tsx","../src/hooks/use-mobile.ts","../src/components/accordion/accordion.tsx","../src/components/alert/alert.tsx","../src/components/alert-dialog/alert-dialog.tsx","../src/components/button/button.tsx","../src/components/aspect-ratio/aspect-ratio.tsx","../src/components/avatar/avatar.tsx","../src/components/badge/badge.tsx","../src/components/breadcrumb/breadcrumb.tsx","../src/components/calendar/calendar.tsx","../src/components/card/card.tsx","../src/components/carousel/carousel-context.tsx","../src/components/carousel/carousel-items.tsx","../src/components/chain-of-thought/chain-of-thought.tsx","../src/components/checkpoint/checkpoint.tsx","../src/components/chart/chart-context.tsx","../src/components/chart/chart-container.tsx","../src/components/chart/chart-tooltip.tsx","../src/components/chart/chart-legend.tsx","../src/components/checkbox/checkbox.tsx","../src/components/code-block/code-block.tsx","../src/components/collapsible/collapsible.tsx","../src/components/command/command.tsx","../src/components/dialog/dialog.tsx","../src/components/confirm-dialog/confirm-dialog.tsx","../src/components/confirmation/confirmation.tsx","../src/components/context-menu/context-menu-primitives.tsx","../src/components/context-menu/context-menu-items.tsx","../src/components/data-table/data-table.tsx","../src/components/table/table.tsx","../src/components/empty-state/empty-state.tsx","../src/components/skeleton/skeleton.tsx","../src/components/pagination/pagination.tsx","../src/components/data-table/data-table-pagination.tsx","../src/components/date-picker/date-picker.tsx","../src/components/popover/popover.tsx","../src/components/drawer/drawer.tsx","../src/components/dropdown-menu/dropdown-menu-primitives.tsx","../src/components/dropdown-menu/dropdown-menu-items.tsx","../src/components/form/form.tsx","../src/components/label/label.tsx","../src/components/hover-card/hover-card.tsx","../src/components/input/input.tsx","../src/components/input-otp/input-otp.tsx","../src/components/input-number/input-number.tsx","../src/components/password-input/password-input.tsx","../src/components/search-input/search-input.tsx","../src/components/kbd/kbd.tsx","../src/components/loading-state/loading-state.tsx","../src/components/menubar/menubar-primitives.tsx","../src/components/menubar/menubar-items.tsx","../src/components/multi-select/multi-select.tsx","../src/components/navigation-menu/navigation-menu.tsx","../src/components/panel/panel.tsx","../src/components/progress/progress.tsx","../src/components/radio-group/radio-group.tsx","../src/components/resizable/resizable.tsx","../src/components/scroll-area/scroll-area.tsx","../src/components/searchable-select/searchable-select.tsx","../src/components/searchable-select/use-searchable-select.ts","../src/components/select/select.tsx","../src/components/separator/separator.tsx","../src/components/sheet/sheet.tsx","../src/components/sidebar/sidebar-context.tsx","../src/components/tooltip/tooltip.tsx","../src/components/sidebar/sidebar-layout.tsx","../src/components/sidebar/sidebar-group.tsx","../src/components/sidebar/sidebar-menu.tsx","../src/components/sidebar/sidebar-submenu.tsx","../src/components/sidebar/sidebar-controls.tsx","../src/components/slider/slider.tsx","../src/components/sonner/sonner.tsx","../src/components/status-badge/status-badge.tsx","../src/components/status-chip/status-chip.tsx","../src/components/switch/switch.tsx","../src/components/tabs/tabs.tsx","../src/components/textarea/textarea.tsx","../src/components/toggle/toggle.tsx","../src/components/toggle-group/toggle-group.tsx","../src/components/tool-call/tool-call.tsx","../src/components/trace/trace.tsx","../src/components/prompt-input/prompt-input.tsx","../src/components/message/message.tsx","../src/components/suggestion/suggestion.tsx","../src/components/terminal/terminal.tsx","../src/components/model-selector/model-selector.tsx","../src/components/plan/plan.tsx","../src/components/sources/sources.tsx","../src/components/file-tree/file-tree.tsx","../src/components/stack-trace/stack-trace.tsx","../src/components/subagent/subagent.tsx","../src/components/context/context.tsx","../src/components/queue/queue.tsx","../src/components/test-results/test-results.tsx","../src/components/metric-card/metric-card.tsx","../src/components/copy-button/copy-button.tsx","../src/components/secret-reveal-card/secret-reveal-card.tsx","../src/components/typography/heading.tsx","../src/components/typography/text.tsx","../src/components/layout/box.tsx","../src/components/layout/flex.tsx","../src/components/layout/stack.tsx","../src/components/layout/grid.tsx","../src/components/layout/container.tsx","../src/components/legal-footer/legal-footer.tsx"],"sourcesContent":["/**\n * Yuva DevLab Design System — UI Component Library\n * Production-ready Radix UI + CVA primitives and scoped dl-* components.\n */\n\n// Utilities & Providers\nexport * from \"./lib/utils\";\nexport * from \"./theme-provider\";\nexport * from \"./hooks/use-mobile\";\n\n// UI Components\nexport * from \"./components\";\n","import { clsx, type ClassValue } from \"clsx\";\n\nexport type { ClassValue };\n\n/**\n * Platform-native class name composer.\n * Zero-overhead utility that joins class names and evaluates conditional expressions.\n * Use for @layer dl-* semantic class composition.\n *\n * @param inputs - Class names, falsy conditionals, or arrays.\n * @returns Clean joined class name string.\n */\nexport function cx(...inputs: ClassValue[]): string {\n return clsx(inputs);\n}\n\n/**\n * Canonical class name helper for components.\n * Joins class names and filters falsy values.\n *\n * @param inputs - List of class names, conditional records, or arrays.\n * @returns Clean joined CSS class string.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return clsx(inputs);\n}\n","import React, { createContext, useContext, useEffect, useState } from \"react\";\n\nexport type Theme = \"dark\" | \"light\" | \"system\" | string;\nexport type ThemeMode = \"light\" | \"dark\" | \"system\";\nexport type Brand =\n \"finai\" | \"orchestrai\" | \"logs\" | \"vitalai\" | \"portal\" | string;\n\nexport interface ThemeProviderProps {\n children: React.ReactNode;\n brand?: Brand;\n defaultTheme?: Theme;\n storageKey?: string;\n brandStorageKey?: string;\n attribute?: string;\n brandAttribute?: string;\n enableSystem?: boolean;\n}\n\nexport interface ThemeProviderState {\n theme: Theme;\n brand: Brand;\n setTheme: (theme: Theme) => void;\n setBrand: (brand: Brand) => void;\n resolvedTheme: \"dark\" | \"light\";\n}\n\nconst initialState: ThemeProviderState = {\n theme: \"system\",\n brand: \"finai\",\n setTheme: () => null,\n setBrand: () => null,\n resolvedTheme: \"dark\",\n};\n\nconst ThemeProviderContext = createContext<ThemeProviderState>(initialState);\n\n/**\n * Universal theme & brand provider for Yuva DevLab applications (FinAI, OrchestrAI).\n * Handles HTML class manipulation, data-theme and data-brand attributes,\n * system preferences, and localStorage persistence.\n */\nexport function ThemeProvider({\n children,\n brand: initialBrand = \"finai\",\n defaultTheme = \"system\",\n storageKey = \"yd-theme\",\n brandStorageKey = \"yd-brand\",\n attribute = \"data-theme\",\n brandAttribute = \"data-brand\",\n enableSystem = true,\n ...props\n}: ThemeProviderProps) {\n const [theme, setThemeState] = useState<Theme>(() => {\n if (typeof window !== \"undefined\") {\n const stored = localStorage.getItem(storageKey);\n if (stored) return stored;\n }\n return defaultTheme;\n });\n\n const [brand, setBrandState] = useState<Brand>(() => {\n if (typeof window !== \"undefined\") {\n const stored = localStorage.getItem(brandStorageKey);\n if (stored) return stored;\n }\n return initialBrand;\n });\n\n const [resolvedTheme, setResolvedTheme] = useState<\"dark\" | \"light\">(\"dark\");\n\n useEffect(() => {\n const root = window.document.documentElement;\n\n // Remove legacy theme classes\n root.classList.remove(\"light\", \"dark\");\n\n let activeTheme = theme;\n if (theme === \"system\" && enableSystem) {\n const systemTheme = window.matchMedia(\"(prefers-color-scheme: dark)\")\n .matches\n ? \"dark\"\n : \"light\";\n activeTheme = systemTheme;\n }\n\n const isDark =\n activeTheme.includes(\"dark\") ||\n activeTheme === \"orchestrai\" ||\n (brand === \"orchestrai\" && activeTheme !== \"light\");\n\n const resolved = isDark ? \"dark\" : \"light\";\n setResolvedTheme(resolved);\n\n root.classList.add(resolved);\n\n // Apply data-brand attribute\n if (brandAttribute && brand) {\n root.setAttribute(brandAttribute, brand);\n }\n\n // Apply data-theme attribute\n if (attribute) {\n const combinedTheme =\n theme === \"system\"\n ? `${brand}-${resolved}`\n : theme.startsWith(brand)\n ? theme\n : `${brand}-${theme}`;\n root.setAttribute(attribute, combinedTheme);\n }\n }, [theme, brand, enableSystem, attribute, brandAttribute]);\n\n const value: ThemeProviderState = {\n theme,\n brand,\n setTheme: (newTheme: Theme) => {\n if (typeof window !== \"undefined\") {\n localStorage.setItem(storageKey, newTheme);\n }\n setThemeState(newTheme);\n },\n setBrand: (newBrand: Brand) => {\n if (typeof window !== \"undefined\") {\n localStorage.setItem(brandStorageKey, newBrand);\n }\n setBrandState(newBrand);\n },\n resolvedTheme,\n };\n\n return (\n <ThemeProviderContext.Provider {...props} value={value}>\n {children}\n </ThemeProviderContext.Provider>\n );\n}\n\n/**\n * Hook to access current theme & brand state and mutate the theme/brand.\n */\nexport const useTheme = (): ThemeProviderState => {\n const context = useContext(ThemeProviderContext);\n if (context === undefined) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n return context;\n};\n\n/**\n * ConfigProvider: Brand and Theme Configuration Provider for Yuva DevLab applications.\n */\nexport const ConfigProvider = ThemeProvider;\nexport type ConfigProviderProps = ThemeProviderProps;\nexport const useConfig = useTheme;\n","import * as React from \"react\";\n\nconst MOBILE_BREAKPOINT = 768;\n\n/**\n * Hook to determine if current viewport matches mobile breakpoint (< 768px).\n *\n * @returns boolean indicating if the screen is mobile-sized.\n */\nexport function useIsMobile(): boolean {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(\n undefined,\n );\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 * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Root Accordion component from Radix UI providing collapsible disclosure sections.\n * Supports single-item or multi-item expansion.\n *\n * @example\n * ```tsx\n * <Accordion type=\"single\" collapsible>\n * <AccordionItem value=\"item-1\">\n * <AccordionTrigger>Is it accessible?</AccordionTrigger>\n * <AccordionContent>\n * Yes. It adheres to the WAI-ARIA design pattern.\n * </AccordionContent>\n * </AccordionItem>\n * </Accordion>\n * ```\n */\nconst Accordion = AccordionPrimitive.Root;\n\nexport type AccordionItemProps = React.ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Item\n>;\n\n/**\n * Collapsible section item container within an `Accordion`.\n */\nconst AccordionItem = React.forwardRef<\n React.ComponentRef<typeof AccordionPrimitive.Item>,\n AccordionItemProps\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(\"dl-accordion-item\", className)}\n {...props}\n />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\nexport type AccordionTriggerProps = React.ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Trigger\n>;\n\n/**\n * Interactive header trigger button that toggles expansion of the associated accordion panel.\n */\nconst AccordionTrigger = React.forwardRef<\n React.ComponentRef<typeof AccordionPrimitive.Trigger>,\n AccordionTriggerProps\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"dl-accordion-header\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\"dl-accordion-trigger\", className)}\n {...props}\n >\n {children}\n <ChevronDown aria-hidden=\"true\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nexport type AccordionContentProps = React.ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Content\n>;\n\n/**\n * Animated content container revealed when an `AccordionItem` is opened.\n */\nconst AccordionContent = React.forwardRef<\n React.ComponentRef<typeof AccordionPrimitive.Content>,\n AccordionContentProps\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"dl-accordion-content\"\n {...props}\n >\n <div className={cn(\"dl-accordion-content__inner\", className)}>\n {children}\n </div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Alert variant configuration mapping to dl-* scoped CSS classes.\n */\nconst alertVariants = cva(\"dl-alert\", {\n variants: {\n variant: {\n default: \"dl-alert--default\",\n destructive: \"dl-alert--destructive\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\nexport interface AlertProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof alertVariants> {}\n\n/**\n * Banner alert component for prominent user notifications, warnings, or error states.\n *\n * @example\n * ```tsx\n * <Alert variant=\"destructive\">\n * <AlertCircle />\n * <AlertTitle>Authentication Failed</AlertTitle>\n * <AlertDescription>\n * Your session has expired. Please log in again to continue.\n * </AlertDescription>\n * </Alert>\n * ```\n */\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n ),\n);\nAlert.displayName = \"Alert\";\n\nexport type AlertTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\n/**\n * Bold header title element for an `Alert`.\n */\nconst AlertTitle = React.forwardRef<HTMLHeadingElement, AlertTitleProps>(\n ({ className, ...props }, ref) => (\n <h5 ref={ref} className={cn(\"dl-alert__title\", className)} {...props} />\n ),\n);\nAlertTitle.displayName = \"AlertTitle\";\n\nexport type AlertDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\n/**\n * Descriptive body text element within an `Alert`.\n */\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n AlertDescriptionProps\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-alert__desc\", className)} {...props} />\n));\nAlertDescription.displayName = \"AlertDescription\";\n\nexport { Alert, AlertTitle, AlertDescription, alertVariants };\n","import * as React from \"react\";\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\n\nimport { cn } from \"@/lib/utils\";\nimport { buttonVariants } from \"@/components/button\";\n\n/**\n * Modal dialog that interrupts the user with critical information and requires an explicit response.\n * Built upon Radix UI AlertDialog primitive with scoped CSS and token styling.\n *\n * @example\n * ```tsx\n * <AlertDialog open={open} onOpenChange={setOpen}>\n * <AlertDialogTrigger asChild>\n * <Button variant=\"destructive\">Delete Project</Button>\n * </AlertDialogTrigger>\n * <AlertDialogContent>\n * <AlertDialogHeader>\n * <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>\n * <AlertDialogDescription>\n * This action cannot be undone. This will permanently delete your workspace.\n * </AlertDialogDescription>\n * </AlertDialogHeader>\n * <AlertDialogFooter>\n * <AlertDialogCancel>Cancel</AlertDialogCancel>\n * <AlertDialogAction onClick={handleDelete}>Delete</AlertDialogAction>\n * </AlertDialogFooter>\n * </AlertDialogContent>\n * </AlertDialog>\n * ```\n */\nconst AlertDialog = AlertDialogPrimitive.Root;\n\n/** Trigger button that opens the alert dialog. */\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger;\n\n/** Portals alert dialog to document.body for clean stacking. */\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\n\nexport type AlertDialogOverlayProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Overlay\n>;\n\n/** Semi-transparent backdrop overlay rendered beneath the alert dialog. */\nconst AlertDialogOverlay = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Overlay>,\n AlertDialogOverlayProps\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n className={cn(\"dl-alert-dialog-overlay\", className)}\n {...props}\n ref={ref}\n />\n));\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;\n\nexport type AlertDialogContentProps = React.ComponentPropsWithoutRef<\n typeof AlertDialogPrimitive.Content\n>;\n\n/** Modal content container for the alert dialog. */\nconst AlertDialogContent = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Content>,\n AlertDialogContentProps\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n className={cn(\"dl-alert-dialog-content\", className)}\n {...props}\n />\n </AlertDialogPortal>\n));\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\n\n/** Top container for alert dialog title and description. */\nconst AlertDialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-alert-dialog-header\", className)} {...props} />\n);\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\n\n/** Bottom container for alert dialog action buttons. */\nconst AlertDialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-alert-dialog-footer\", className)} {...props} />\n);\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\n\n/** Accessible title heading for the alert dialog. */\nconst AlertDialogTitle = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"dl-alert-dialog-title\", className)}\n {...props}\n />\n));\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\n\n/** Explanatory description text for the alert dialog action. */\nconst AlertDialogDescription = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"dl-alert-dialog-desc\", className)}\n {...props}\n />\n));\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName;\n\n/** Confirmation button that completes the alert action. */\nconst AlertDialogAction = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...props}\n />\n));\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\n\n/** Cancellation button that dismisses the alert dialog without side-effects. */\nconst AlertDialogCancel = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(buttonVariants({ variant: \"outline\" }), className)}\n {...props}\n />\n));\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n};\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Button visual variant and size configurations using scoped `dl-btn` CSS classes.\n * Compatible with Class Variance Authority (CVA).\n */\nconst buttonVariants = cva(\"dl-btn\", {\n variants: {\n variant: {\n default: \"dl-btn--default\",\n destructive: \"dl-btn--destructive\",\n outline: \"dl-btn--outline\",\n secondary: \"dl-btn--secondary\",\n ghost: \"dl-btn--ghost\",\n link: \"dl-btn--link\",\n },\n size: {\n default: \"dl-btn--md\",\n sm: \"dl-btn--sm\",\n lg: \"dl-btn--lg\",\n icon: \"dl-btn--icon\",\n },\n },\n defaultVariants: { variant: \"default\", size: \"default\" },\n});\n\nexport interface ButtonProps\n extends\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n /**\n * If true, delegates rendering to the direct child element via Radix Slot.\n * Useful when composing with Next.js Link or custom router anchors.\n * @default false\n */\n asChild?: boolean;\n /**\n * Content to render inside the button.\n */\n children?: React.ReactNode;\n}\n\n/**\n * Primary interactive button component for triggering actions, submitting forms, or navigation.\n *\n * @example\n * ```tsx\n * // Default button\n * <Button onClick={handleClick}>Click me</Button>\n *\n * // Destructive action\n * <Button variant=\"destructive\" size=\"sm\">Delete Record</Button>\n *\n * // Composed as a link using Next.js Link\n * <Button asChild variant=\"outline\">\n * <Link href=\"/dashboard\">Go to Dashboard</Link>\n * </Button>\n * ```\n */\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","import * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\";\n\nexport type AspectRatioProps = React.ComponentPropsWithoutRef<\n typeof AspectRatioPrimitive.Root\n>;\n\n/**\n * Displays content within a desired ratio (e.g. 16/9, 4/3, 1/1).\n *\n * @example\n * ```tsx\n * <div className=\"w-[300px]\">\n * <AspectRatio ratio={16 / 9}>\n * <img\n * src=\"https://images.unsplash.com/photo-1588345921523-c2dcdb7f1dcd\"\n * alt=\"Photo by Drew Beamer\"\n * className=\"rounded-md object-cover w-full h-full\"\n * />\n * </AspectRatio>\n * </div>\n * ```\n */\nconst AspectRatio = AspectRatioPrimitive.Root;\n\nexport { AspectRatio };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport { cn } from \"@/lib/utils\";\n\nexport type AvatarProps = React.ComponentPropsWithoutRef<\n typeof AvatarPrimitive.Root\n>;\n\n/**\n * Avatar container component displaying user profile images or initials fallback.\n *\n * @example\n * ```tsx\n * <Avatar>\n * <AvatarImage src=\"https://github.com/shadcn.png\" alt=\"@shadcn\" />\n * <AvatarFallback>CN</AvatarFallback>\n * </Avatar>\n * ```\n */\nconst Avatar = React.forwardRef<\n React.ComponentRef<typeof AvatarPrimitive.Root>,\n AvatarProps\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\"dl-avatar\", className)}\n {...props}\n />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nexport type AvatarImageProps = React.ComponentPropsWithoutRef<\n typeof AvatarPrimitive.Image\n>;\n\n/**\n * Image element rendered within an `Avatar`.\n */\nconst AvatarImage = React.forwardRef<\n React.ComponentRef<typeof AvatarPrimitive.Image>,\n AvatarImageProps\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"dl-avatar__img\", className)}\n {...props}\n />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nexport type AvatarFallbackProps = React.ComponentPropsWithoutRef<\n typeof AvatarPrimitive.Fallback\n>;\n\n/**\n * Fallback initials or icon element shown when the avatar image fails to load.\n */\nconst AvatarFallback = React.forwardRef<\n React.ComponentRef<typeof AvatarPrimitive.Fallback>,\n AvatarFallbackProps\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\"dl-avatar__fallback\", className)}\n {...props}\n />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\nexport { Avatar, AvatarImage, AvatarFallback };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Badge style variant generator using class-variance-authority.\n */\nconst badgeVariants = cva(\"dl-badge\", {\n variants: {\n variant: {\n default: \"dl-badge--default\",\n secondary: \"dl-badge--secondary\",\n destructive: \"dl-badge--destructive\",\n success: \"dl-badge--success\",\n warning: \"dl-badge--warning\",\n info: \"dl-badge--info\",\n outline: \"dl-badge--outline\",\n },\n },\n defaultVariants: { variant: \"default\" },\n});\n\nexport interface BadgeProps\n extends\n React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {\n /** Numeric count displayed inside the floating notification badge */\n count?: number | React.ReactNode;\n /** Max numeric threshold before displaying '+' (e.g., 99+). Defaults to 99 */\n overflowCount?: number;\n /** Whether to render as a red indicator dot without numeric count */\n dot?: boolean;\n /** Whether to display the badge when count is zero. Defaults to false */\n showZero?: boolean;\n /** Offset tuple [x, y] to position the badge relative to wrapped element */\n offset?: [number | string, number | string];\n}\n\n/**\n * Versatile badge primitive supporting both standalone status labels\n * and floating notification counter badges over child components.\n *\n * @example\n * ```tsx\n * // Standalone label badge\n * <Badge variant=\"success\">Completed</Badge>\n *\n * // Notification counter badge over icon\n * <Badge count={5}>\n * <Button variant=\"ghost\" size=\"icon\"><Bell /></Button>\n * </Badge>\n *\n * // Unread indicator dot over avatar\n * <Badge dot>\n * <Avatar src=\"/user.png\" />\n * </Badge>\n * ```\n */\nfunction Badge({\n className,\n variant,\n children,\n count,\n overflowCount = 99,\n dot = false,\n showZero = false,\n offset,\n style,\n ...props\n}: BadgeProps) {\n const isWrapper = children !== undefined && (count !== undefined || dot);\n\n if (isWrapper) {\n const isCountNumber = typeof count === \"number\";\n const isZero = isCountNumber && count === 0;\n const shouldDisplay =\n dot || (count !== undefined && count !== null && (!isZero || showZero));\n\n let displayCount: React.ReactNode = count;\n if (isCountNumber && count > overflowCount) {\n displayCount = `${overflowCount}+`;\n }\n\n const badgeStyle: React.CSSProperties = { ...style };\n if (offset) {\n badgeStyle.transform = `translate(${offset[0]}, ${offset[1]})`;\n }\n\n return (\n <span className=\"dl-badge-wrapper\">\n {children}\n {shouldDisplay && (\n <sup\n className={cn(\n \"dl-badge-count\",\n dot && \"dl-badge-dot\",\n variant && badgeVariants({ variant }),\n className,\n )}\n style={badgeStyle}\n aria-label={\n dot ? \"Notification indicator\" : `Unread count: ${count}`\n }\n >\n {dot ? null : displayCount}\n </sup>\n )}\n </span>\n );\n }\n\n return (\n <div\n className={cn(badgeVariants({ variant }), className)}\n style={style}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport type BreadcrumbProps = React.ComponentPropsWithoutRef<\"nav\"> & {\n separator?: React.ReactNode;\n};\n\n/**\n * Breadcrumb navigation landmark providing context about the current page's\n * location within a navigational hierarchy.\n *\n * @example\n * ```tsx\n * <Breadcrumb>\n * <BreadcrumbList>\n * <BreadcrumbItem>\n * <BreadcrumbLink href=\"/\">Home</BreadcrumbLink>\n * </BreadcrumbItem>\n * <BreadcrumbSeparator />\n * <BreadcrumbItem>\n * <BreadcrumbLink href=\"/components\">Components</BreadcrumbLink>\n * </BreadcrumbItem>\n * <BreadcrumbSeparator />\n * <BreadcrumbItem>\n * <BreadcrumbPage>Breadcrumb</BreadcrumbPage>\n * </BreadcrumbItem>\n * </BreadcrumbList>\n * </Breadcrumb>\n * ```\n */\nconst Breadcrumb = React.forwardRef<HTMLElement, BreadcrumbProps>(\n ({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />,\n);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nexport type BreadcrumbListProps = React.ComponentPropsWithoutRef<\"ol\">;\n\n/**\n * Ordered list container (`<ol>`) wrapping breadcrumb items and separators.\n */\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, BreadcrumbListProps>(\n ({ className, ...props }, ref) => (\n <ol ref={ref} className={cn(\"dl-breadcrumb-list\", className)} {...props} />\n ),\n);\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nexport type BreadcrumbItemProps = React.ComponentPropsWithoutRef<\"li\">;\n\n/**\n * Individual item wrapper (`<li>`) within a breadcrumb trail.\n */\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, BreadcrumbItemProps>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn(\"dl-breadcrumb-item\", className)} {...props} />\n ),\n);\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nexport type BreadcrumbLinkProps = React.ComponentPropsWithoutRef<\"a\"> & {\n /** If true, renders the child component as the root link element (e.g. Next.js Link) */\n asChild?: boolean;\n};\n\n/**\n * Interactive link element within a breadcrumb trail.\n */\nconst BreadcrumbLink = React.forwardRef<HTMLAnchorElement, BreadcrumbLinkProps>(\n ({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n ref={ref}\n className={cn(\"dl-breadcrumb-link\", className)}\n {...props}\n />\n );\n },\n);\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nexport type BreadcrumbPageProps = React.ComponentPropsWithoutRef<\"span\">;\n\n/**\n * Non-clickable page title representing the active, current page in a breadcrumb trail.\n */\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, BreadcrumbPageProps>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"dl-breadcrumb-page\", className)}\n {...props}\n />\n ),\n);\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nexport type BreadcrumbSeparatorProps = React.ComponentProps<\"li\">;\n\n/**\n * Decorative divider between breadcrumb items (defaults to a chevron right icon).\n */\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: BreadcrumbSeparatorProps) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n data-slot=\"breadcrumb-separator\"\n className={cn(\"dl-breadcrumb-separator\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nexport type BreadcrumbEllipsisProps = React.ComponentProps<\"span\">;\n\n/**\n * Ellipsis placeholder indicating intermediate collapsed path items.\n */\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: BreadcrumbEllipsisProps) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"dl-breadcrumb-ellipsis\", className)}\n {...props}\n >\n <MoreHorizontal />\n <span className=\"sr-only\">More</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\";\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\";\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button, buttonVariants } from \"@/components/button\";\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"];\n};\n\n/**\n * Calendar component built on top of react-day-picker, supporting single,\n * multiple, and date-range selection modes.\n * Pure CSS with scoped `.dl-calendar` design tokens.\n *\n * @example\n * ```tsx\n * const [date, setDate] = React.useState<Date | undefined>(new Date());\n *\n * <Calendar\n * mode=\"single\"\n * selected={date}\n * onSelect={setDate}\n * />\n * ```\n */\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: CalendarProps) {\n const defaultClassNames = getDefaultClassNames();\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\"dl-calendar\", className)}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"dl-calendar\", defaultClassNames.root),\n months: cn(\"dl-calendar__months\", defaultClassNames.months),\n month: cn(\"dl-calendar__month\", defaultClassNames.month),\n nav: cn(\"dl-calendar__nav\", defaultClassNames.nav),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant, size: \"icon\" }),\n \"dl-calendar__nav-button\",\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant, size: \"icon\" }),\n \"dl-calendar__nav-button\",\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n \"dl-calendar__month-caption\",\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\"dl-calendar__dropdowns\", defaultClassNames.dropdowns),\n dropdown_root: cn(\n \"dl-calendar__dropdown-root\",\n defaultClassNames.dropdown_root,\n ),\n dropdown: cn(\"dl-calendar__dropdown\", defaultClassNames.dropdown),\n caption_label: cn(\n \"dl-calendar__caption-label\",\n captionLayout !== \"label\" &&\n \"dl-calendar__caption-label--interactive\",\n defaultClassNames.caption_label,\n ),\n table: cn(\"dl-calendar__table\", defaultClassNames.month_grid),\n month_grid: cn(\"dl-calendar__table\", defaultClassNames.month_grid),\n weekdays: defaultClassNames.weekdays,\n weekday: defaultClassNames.weekday,\n week: defaultClassNames.week,\n day: defaultClassNames.day,\n range_start: defaultClassNames.range_start,\n range_middle: defaultClassNames.range_middle,\n range_end: defaultClassNames.range_end,\n today: defaultClassNames.today,\n outside: defaultClassNames.outside,\n disabled: defaultClassNames.disabled,\n hidden: defaultClassNames.hidden,\n ...classNames,\n }}\n components={{\n Root: ({ className: rootClassName, rootRef, ...rootProps }) => (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(\"dl-calendar\", rootClassName)}\n {...rootProps}\n />\n ),\n Chevron: ({\n className: chevronClassName,\n orientation,\n ...chevronProps\n }) => {\n const chevronClass = cn(\"dl-calendar__chevron\", chevronClassName);\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={chevronClass} {...chevronProps} />\n );\n }\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon className={chevronClass} {...chevronProps} />\n );\n }\n return <ChevronDownIcon className={chevronClass} {...chevronProps} />;\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...weekProps }) => (\n <td {...weekProps}>\n <div className=\"dl-calendar__week-number\">{children}</div>\n </td>\n ),\n ...components,\n }}\n {...props}\n />\n );\n}\n\n/**\n * Custom day button for Calendar, properly forwarding DayButton props\n * with theme-compliant border radius and active states.\n */\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames();\n\n const ref = React.useRef<HTMLButtonElement>(null);\n React.useEffect(() => {\n if (modifiers[\"focused\"]) ref.current?.focus();\n }, [modifiers]);\n\n return (\n <Button\n ref={ref}\n variant={modifiers[\"selected\"] ? \"default\" : \"ghost\"}\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected={modifiers[\"selected\"] ? \"true\" : undefined}\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 \"dl-calendar__day-button\",\n defaultClassNames.day_button,\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Calendar, CalendarDayButton };\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type CardProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Card container component providing a bordered surface with rounded corners,\n * background color, and subtle shadow.\n *\n * @example\n * ```tsx\n * <Card>\n * <CardHeader>\n * <CardTitle>Notifications</CardTitle>\n * <CardDescription>Manage how you receive alerts.</CardDescription>\n * </CardHeader>\n * <CardContent>\n * <p>Your subscription is active.</p>\n * </CardContent>\n * <CardFooter>\n * <Button>Save Preferences</Button>\n * </CardFooter>\n * </Card>\n * ```\n */\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-card\", className)} {...props} />\n ),\n);\nCard.displayName = \"Card\";\n\nexport type CardHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Header section of a `Card`, organizing titles, descriptions, and action buttons.\n */\nconst CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-card__header\", className)} {...props} />\n ),\n);\nCardHeader.displayName = \"CardHeader\";\n\nexport type CardTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\n/**\n * Primary title heading within a `CardHeader`.\n */\nconst CardTitle = React.forwardRef<HTMLHeadingElement, CardTitleProps>(\n ({ className, ...props }, ref) => (\n <h3 ref={ref} className={cn(\"dl-card__title\", className)} {...props} />\n ),\n);\nCardTitle.displayName = \"CardTitle\";\n\nexport type CardDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\n/**\n * Secondary subtitle or description paragraph within a `CardHeader`.\n */\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n CardDescriptionProps\n>(({ className, ...props }, ref) => (\n <p ref={ref} className={cn(\"dl-card__desc\", className)} {...props} />\n));\nCardDescription.displayName = \"CardDescription\";\n\nexport type CardContentProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Main content body of a `Card`.\n */\nconst CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-card__content\", className)} {...props} />\n ),\n);\nCardContent.displayName = \"CardContent\";\n\nexport type CardFooterProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Footer area of a `Card` for primary and secondary actions.\n */\nconst CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-card__footer\", className)} {...props} />\n ),\n);\nCardFooter.displayName = \"CardFooter\";\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\nexport type CarouselProps = {\n /** Embla carousel configuration options */\n opts?: CarouselOptions;\n /** Embla carousel plugins list (e.g. Autoplay) */\n plugins?: CarouselPlugin;\n /** Scrolling orientation */\n orientation?: \"horizontal\" | \"vertical\";\n /** Callback to receive the initialized Embla API instance */\n setApi?: (api: CarouselApi) => void;\n};\n\nexport type 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\nexport const CarouselContext = React.createContext<CarouselContextProps | null>(\n null,\n);\n\n/**\n * Accesses the parent Carousel context.\n */\nexport function useCarousel() {\n const context = React.useContext(CarouselContext);\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n return context;\n}\n\n/**\n * Interactive carousel slider powered by Embla Carousel.\n *\n * @example\n * ```tsx\n * <Carousel>\n * <CarouselContent>\n * <CarouselItem>Slide 1</CarouselItem>\n * <CarouselItem>Slide 2</CarouselItem>\n * </CarouselContent>\n * <CarouselPrevious />\n * <CarouselNext />\n * </Carousel>\n * ```\n */\nexport const Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\n>(\n (\n {\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const [carouselRef, api] = useEmblaCarousel(\n { ...opts, axis: orientation === \"horizontal\" ? \"x\" : \"y\" },\n plugins,\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((emblaApi: CarouselApi) => {\n if (!emblaApi) return;\n setCanScrollPrev(emblaApi.canScrollPrev());\n setCanScrollNext(emblaApi.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => api?.scrollPrev(), [api]);\n const scrollNext = React.useCallback(() => api?.scrollNext(), [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 return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn(\"dl-carousel\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n },\n);\nCarousel.displayName = \"Carousel\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/button\";\nimport { useCarousel } from \"./carousel-context\";\n\nexport type CarouselContentProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Viewport and track container holding all carousel slides.\n */\nexport const CarouselContent = React.forwardRef<\n HTMLDivElement,\n CarouselContentProps\n>(({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"dl-carousel-viewport\">\n <div\n ref={ref}\n className={cn(\n \"dl-carousel-track\",\n orientation === \"horizontal\"\n ? \"dl-carousel-track--horizontal\"\n : \"dl-carousel-track--vertical\",\n className,\n )}\n {...props}\n />\n </div>\n );\n});\nCarouselContent.displayName = \"CarouselContent\";\n\nexport type CarouselItemProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Individual slide element within a `CarouselContent` track.\n */\nexport const CarouselItem = React.forwardRef<HTMLDivElement, CarouselItemProps>(\n ({ className, ...props }, ref) => {\n const { orientation } = useCarousel();\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n \"dl-carousel-item\",\n orientation === \"horizontal\"\n ? \"dl-carousel-item--horizontal\"\n : \"dl-carousel-item--vertical\",\n className,\n )}\n {...props}\n />\n );\n },\n);\nCarouselItem.displayName = \"CarouselItem\";\n\nexport type CarouselPreviousProps = React.ComponentProps<typeof Button>;\n\n/**\n * Navigation button that moves to the previous carousel slide.\n */\nexport const CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n CarouselPreviousProps\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n \"dl-carousel-btn\",\n orientation === \"horizontal\"\n ? \"dl-carousel-btn--prev-horizontal\"\n : \"dl-carousel-btn--prev-vertical\",\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n});\nCarouselPrevious.displayName = \"CarouselPrevious\";\n\nexport type CarouselNextProps = React.ComponentProps<typeof Button>;\n\n/**\n * Navigation button that moves to the next carousel slide.\n */\nexport const CarouselNext = React.forwardRef<\n HTMLButtonElement,\n CarouselNextProps\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n \"dl-carousel-btn\",\n orientation === \"horizontal\"\n ? \"dl-carousel-btn--next-horizontal\"\n : \"dl-carousel-btn--next-vertical\",\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n});\nCarouselNext.displayName = \"CarouselNext\";\n","import * as React from \"react\";\nimport {\n ChevronDown,\n Sparkles,\n Loader2,\n CheckCircle2,\n AlertCircle,\n} from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n ChainOfThoughtProps,\n ChainOfThoughtHeaderProps,\n ChainOfThoughtStepProps,\n} from \"./chain-of-thought-types\";\n\nexport type {\n ChainOfThoughtProps,\n ChainOfThoughtHeaderProps,\n ChainOfThoughtStepProps,\n};\n\nconst ChainOfThoughtContext = React.createContext<{\n open: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n}>({ open: false, setOpen: () => {} });\n\nexport const ChainOfThoughtHeader = React.forwardRef<\n HTMLButtonElement,\n ChainOfThoughtHeaderProps\n>(({ className, isThinking, durationSeconds, children, ...props }, ref) => {\n const { open, setOpen } = React.useContext(ChainOfThoughtContext);\n\n return (\n <button\n ref={ref}\n type=\"button\"\n onClick={() => setOpen((prev) => !prev)}\n aria-expanded={open}\n className={cn(\"dl-cot__header\", className)}\n {...props}\n >\n <div className=\"dl-cot__summary\">\n {isThinking ? (\n <Loader2 className=\"size-3.5 text-primary animate-spin\" />\n ) : (\n <Sparkles className=\"size-3.5 text-primary\" />\n )}\n <span>\n {children ??\n (isThinking\n ? durationSeconds !== undefined\n ? `Thinking for ${durationSeconds}s...`\n : \"Thinking...\"\n : durationSeconds !== undefined\n ? `Thought for ${durationSeconds}s`\n : \"Thought Process\")}\n </span>\n </div>\n <ChevronDown className=\"dl-cot__chevron\" />\n </button>\n );\n});\nChainOfThoughtHeader.displayName = \"ChainOfThoughtHeader\";\n\nexport const ChainOfThoughtStep = React.forwardRef<\n HTMLDivElement,\n ChainOfThoughtStepProps\n>(({ className, status = \"default\", icon, children, ...props }, ref) => {\n let resolvedIcon = icon;\n if (!resolvedIcon) {\n if (status === \"running\")\n resolvedIcon = <Loader2 className=\"size-3 animate-spin text-primary\" />;\n else if (status === \"success\")\n resolvedIcon = <CheckCircle2 className=\"size-3 text-success\" />;\n else if (status === \"error\")\n resolvedIcon = <AlertCircle className=\"size-3 text-destructive\" />;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"dl-cot__step\", `dl-cot__step--${status}`, className)}\n {...props}\n >\n {resolvedIcon && <span className=\"shrink-0\">{resolvedIcon}</span>}\n <span className={cn(status === \"running\" && \"dl-shimmer\")}>\n {children}\n </span>\n </div>\n );\n});\nChainOfThoughtStep.displayName = \"ChainOfThoughtStep\";\n\nexport const ChainOfThoughtContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, children, ...props }, ref) => {\n const { open } = React.useContext(ChainOfThoughtContext);\n if (!open) return null;\n\n return (\n <div ref={ref} className={cn(\"dl-cot__content\", className)} {...props}>\n {children}\n </div>\n );\n});\nChainOfThoughtContent.displayName = \"ChainOfThoughtContent\";\n\n/**\n * Visualizes an AI model's internal step-by-step reasoning and thought process.\n *\n * @example\n * ```tsx\n * <ChainOfThought durationSeconds={3.8}>\n * <ChainOfThoughtHeader />\n * <ChainOfThoughtContent>\n * <ChainOfThoughtStep status=\"success\">Inspected git status</ChainOfThoughtStep>\n * <ChainOfThoughtStep status=\"success\">Compiled TypeScript bundle</ChainOfThoughtStep>\n * </ChainOfThoughtContent>\n * </ChainOfThought>\n * ```\n */\nexport function ChainOfThought({\n isThinking = false,\n durationSeconds,\n open: propOpen,\n defaultOpen = false,\n onOpenChange,\n className,\n title,\n children,\n ...props\n}: ChainOfThoughtProps) {\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen);\n const isOpen = propOpen !== undefined ? propOpen : internalOpen;\n\n const setOpen = React.useCallback(\n (action: React.SetStateAction<boolean>) => {\n const next = typeof action === \"function\" ? action(isOpen) : action;\n if (propOpen === undefined) {\n setInternalOpen(next);\n }\n onOpenChange?.(next);\n },\n [isOpen, propOpen, onOpenChange],\n );\n\n return (\n <ChainOfThoughtContext.Provider value={{ open: isOpen, setOpen }}>\n <div\n data-state={isOpen ? \"open\" : \"closed\"}\n className={cn(\"dl-cot\", className)}\n {...props}\n >\n {children ?? (\n <>\n <ChainOfThoughtHeader\n isThinking={isThinking}\n durationSeconds={durationSeconds}\n >\n {title}\n </ChainOfThoughtHeader>\n <ChainOfThoughtContent />\n </>\n )}\n </div>\n </ChainOfThoughtContext.Provider>\n );\n}\n","import * as React from \"react\";\nimport { History } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { CheckpointProps } from \"./checkpoint-types\";\n\nexport type { CheckpointProps };\n\n/**\n * Checkpoint divider marking a notable conversation turn or restore snapshot.\n *\n * @example\n * ```tsx\n * <Checkpoint label=\"Checkpoint: Before schema migration\" onRestore={handleRestore} />\n * ```\n */\nexport const Checkpoint = React.forwardRef<HTMLDivElement, CheckpointProps>(\n (\n {\n className,\n label = \"Checkpoint\",\n onRestore,\n restoreLabel = \"Restore\",\n children,\n ...props\n },\n ref,\n ) => {\n return (\n <div ref={ref} className={cn(\"dl-checkpoint\", className)} {...props}>\n <div className=\"dl-checkpoint__content\">\n <History className=\"size-3 text-muted-foreground\" />\n <span>{label}</span>\n {onRestore && (\n <button\n type=\"button\"\n onClick={onRestore}\n className=\"dl-checkpoint__restore-btn\"\n >\n {restoreLabel}\n </button>\n )}\n {children}\n </div>\n </div>\n );\n },\n);\n\nCheckpoint.displayName = \"Checkpoint\";\n","import * as React from \"react\";\n\n/** Theme mappings for chart color resolution. */\nexport const THEMES = { light: \"\", dark: \".dark\" } as const;\n\n/**\n * Configuration mapping series keys to colors, labels, and icons.\n */\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n );\n};\n\nexport type ChartContextProps = {\n config: ChartConfig;\n};\n\nexport const ChartContext = React.createContext<ChartContextProps | null>(null);\n\n/**\n * Accesses active chart series configuration from parent `<ChartContainer />`.\n */\nexport function useChart(): ChartContextProps {\n const context = React.useContext(ChartContext);\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\");\n }\n return context;\n}\n\n/**\n * Helper to extract item config from a Recharts payload.\n */\nexport function getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string,\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string;\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config];\n}\n","import * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\nimport { cn } from \"@/lib/utils\";\nimport { ChartConfig, ChartContext, THEMES } from \"./chart-context\";\n\nexport type ChartContainerProps = React.ComponentProps<\"div\"> & {\n /** Configuration mapping series keys to colors, labels, and icons */\n config: ChartConfig;\n /** Responsive chart content (Recharts element) */\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"];\n};\n\n/**\n * Dynamic style block injecting CSS custom properties for chart color keys.\n */\nexport const ChartStyle = ({\n id,\n config,\n}: {\n id: string;\n config: ChartConfig;\n}) => {\n const colorConfig = Object.entries(config).filter(\n ([, itemConfig]) => itemConfig.theme || itemConfig.color,\n );\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join(\"\\n\")}\n}\n`,\n )\n .join(\"\\n\"),\n }}\n />\n );\n};\n\n/**\n * Responsive wrapper for Recharts visualizations with CSS variable theming and unified legend/tooltip support.\n *\n * @example\n * ```tsx\n * <ChartContainer config={chartConfig} className=\"min-h-[200px] w-full\">\n * <BarChart data={chartData}>\n * <Bar dataKey=\"desktop\" fill=\"var(--color-desktop)\" radius={4} />\n * </BarChart>\n * </ChartContainer>\n * ```\n */\nexport const ChartContainer = React.forwardRef<\n HTMLDivElement,\n ChartContainerProps\n>(({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n className={cn(\"dl-chart-container\", className)}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n});\nChartContainer.displayName = \"Chart\";\n","import * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\nimport { cn } from \"@/lib/utils\";\nimport { getPayloadConfigFromPayload, useChart } from \"./chart-context\";\n\n/**\n * Tooltip trigger component from Recharts.\n */\nexport const ChartTooltip = RechartsPrimitive.Tooltip;\n\nexport type ChartTooltipContentProps = React.ComponentProps<\n typeof RechartsPrimitive.Tooltip\n> &\n React.ComponentProps<\"div\"> & {\n /** Hides the series label */\n hideLabel?: boolean;\n /** Hides the colored indicator icon */\n hideIndicator?: boolean;\n /** Style of indicator: line, dot, or dashed */\n indicator?: \"line\" | \"dot\" | \"dashed\";\n /** Custom key in payload for data series name */\n nameKey?: string;\n /** Custom key in payload for label */\n labelKey?: string;\n };\n\n/**\n * Standard content container rendered inside a `ChartTooltip`.\n */\nexport const ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n ChartTooltipContentProps\n>(\n (\n {\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n },\n ref,\n ) => {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return (\n <div className={cn(\"dl-chart-tooltip__label\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return (\n <div className={cn(\"dl-chart-tooltip__label\", labelClassName)}>\n {value}\n </div>\n );\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\";\n\n return (\n <div ref={ref} className={cn(\"dl-chart-tooltip\", className)}>\n {!nestLabel ? tooltipLabel : null}\n <div className=\"dl-chart-tooltip__grid\">\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || item.payload.fill || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"dl-chart-tooltip__item\",\n indicator === \"dot\" && \"dl-chart-tooltip__item--center\",\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"dl-chart-tooltip__indicator\",\n indicator === \"dot\" &&\n \"dl-chart-tooltip__indicator--dot\",\n indicator === \"line\" &&\n \"dl-chart-tooltip__indicator--line\",\n indicator === \"dashed\" &&\n \"dl-chart-tooltip__indicator--dashed\",\n nestLabel &&\n indicator === \"dashed\" &&\n \"dl-chart-tooltip__indicator--nested\",\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"dl-chart-tooltip__row\",\n nestLabel && \"dl-chart-tooltip__row--end\",\n )}\n >\n <div className=\"dl-chart-tooltip__grid\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"dl-chart-tooltip__item-label\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"dl-chart-tooltip__item-value\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n);\nChartTooltipContent.displayName = \"ChartTooltip\";\n","import * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\nimport { cn } from \"@/lib/utils\";\nimport { getPayloadConfigFromPayload, useChart } from \"./chart-context\";\n\n/**\n * Legend component from Recharts.\n */\nexport const ChartLegend = RechartsPrimitive.Legend;\n\nexport type ChartLegendContentProps = React.ComponentProps<\"div\"> &\n Pick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & {\n /** Hides the colored category icon */\n hideIcon?: boolean;\n /** Custom key in payload for data series name */\n nameKey?: string;\n };\n\n/**\n * Standard legend container displaying labeled indicators for active chart series.\n */\nexport const ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n ChartLegendContentProps\n>(\n (\n { className, hideIcon = false, payload, verticalAlign = \"bottom\", nameKey },\n ref,\n ) => {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n \"dl-chart-legend\",\n verticalAlign === \"top\"\n ? \"dl-chart-legend--top\"\n : \"dl-chart-legend--bottom\",\n className,\n )}\n >\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div key={item.value} className=\"dl-chart-legend__item\">\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"dl-chart-legend__indicator\"\n style={{ backgroundColor: item.color }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n },\n);\nChartLegendContent.displayName = \"ChartLegend\";\n","import * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type CheckboxProps = React.ComponentPropsWithoutRef<\n typeof CheckboxPrimitive.Root\n>;\n\n/**\n * Accessible binary selection control built upon Radix UI Checkbox.\n * Supports checked, unchecked, and indeterminate states with smooth micro-animations.\n *\n * @example\n * ```tsx\n * // Basic checkbox with associated label\n * <Flex align=\"center\" gap=\"2\">\n * <Checkbox id=\"terms\" checked={agreed} onCheckedChange={setAgreed} />\n * <Label htmlFor=\"terms\">Accept terms and conditions</Label>\n * </Flex>\n *\n * // Disabled checkbox\n * <Checkbox disabled checked />\n * ```\n */\nconst Checkbox = React.forwardRef<\n React.ComponentRef<typeof CheckboxPrimitive.Root>,\n CheckboxProps\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\"dl-checkbox\", className)}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"dl-checkbox-indicator\">\n <Check className=\"dl-checkbox-icon\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","import * as React from \"react\";\nimport { Check, Copy } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n CodeBlockProps,\n CodeBlockHeaderProps,\n CodeBlockContentProps,\n} from \"./code-block-types\";\n\nexport type { CodeBlockProps, CodeBlockHeaderProps, CodeBlockContentProps };\n\n/**\n * Copy to clipboard button with temporary success checkmark animation.\n */\nexport const CodeBlockCopyButton = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & { code?: string }\n>(({ className, code = \"\", onClick, ...props }, ref) => {\n const [copied, setCopied] = React.useState(false);\n\n const handleCopy = (e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (!code) return;\n navigator.clipboard?.writeText(code).then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n });\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n onClick={handleCopy}\n aria-label={copied ? \"Copied\" : \"Copy code\"}\n className={cn(\"dl-code-block__copy-btn\", className)}\n {...props}\n >\n {copied ? (\n <Check className=\"size-3.5 text-success\" />\n ) : (\n <Copy className=\"size-3.5\" />\n )}\n </button>\n );\n});\nCodeBlockCopyButton.displayName = \"CodeBlockCopyButton\";\n\n/**\n * Header section of a code block showing filename, language badge, and actions.\n */\nexport const CodeBlockHeader = React.forwardRef<\n HTMLDivElement,\n CodeBlockHeaderProps\n>(({ className, filename, language, children, ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-code-block__header\", className)} {...props}>\n <div className=\"flex items-center gap-2\">\n {filename && <span className=\"dl-code-block__filename\">{filename}</span>}\n {language && <span className=\"dl-code-block__language\">{language}</span>}\n </div>\n <div className=\"flex items-center gap-1.5\">{children}</div>\n </div>\n));\nCodeBlockHeader.displayName = \"CodeBlockHeader\";\n\n/**\n * Code container pre element with support for horizontal scrolling or word wrapping.\n */\nexport const CodeBlockContent = React.forwardRef<\n HTMLPreElement,\n CodeBlockContentProps\n>(\n (\n { className, wrap = false, lineNumbers = false, children, ...props },\n ref,\n ) => {\n const rawText = typeof children === \"string\" ? children : null;\n const lines = rawText && lineNumbers ? rawText.trim().split(\"\\n\") : null;\n\n return (\n <pre\n ref={ref}\n className={cn(\n \"dl-code-block__content\",\n wrap && \"dl-code-block__content--wrap\",\n className,\n )}\n {...props}\n >\n {lines ? (\n lines.map((line, idx) => (\n <div key={idx} className=\"dl-code-block__line\">\n <span className=\"dl-code-block__line-num\">{idx + 1}</span>\n <span>{line}</span>\n </div>\n ))\n ) : (\n <code>{children}</code>\n )}\n </pre>\n );\n },\n);\nCodeBlockContent.displayName = \"CodeBlockContent\";\n\n/**\n * Enterprise code snippet display with syntax font, optional header, copy button,\n * and line numbers.\n *\n * @example\n * ```tsx\n * <CodeBlock code=\"const a = 10;\" language=\"typescript\" filename=\"main.ts\" />\n * ```\n */\nexport const CodeBlock = React.forwardRef<HTMLDivElement, CodeBlockProps>(\n (\n {\n className,\n filename,\n language,\n code,\n copyable = true,\n lineNumbers = false,\n children,\n ...props\n },\n ref,\n ) => {\n const codeString = code ?? (typeof children === \"string\" ? children : \"\");\n\n return (\n <div ref={ref} className={cn(\"dl-code-block\", className)} {...props}>\n {(filename || language || copyable) && (\n <CodeBlockHeader filename={filename} language={language}>\n {copyable && <CodeBlockCopyButton code={codeString} />}\n </CodeBlockHeader>\n )}\n <CodeBlockContent lineNumbers={lineNumbers}>\n {code ?? children}\n </CodeBlockContent>\n </div>\n );\n },\n);\nCodeBlock.displayName = \"CodeBlock\";\n","\"use client\";\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\n\nexport type CollapsibleProps = React.ComponentPropsWithoutRef<\n typeof CollapsiblePrimitive.Root\n>;\n\n/**\n * An interactive component which expands and collapses a panel.\n *\n * @example\n * ```tsx\n * <Collapsible open={isOpen} onOpenChange={setIsOpen}>\n * <CollapsibleTrigger asChild>\n * <Button variant=\"ghost\">Toggle Details</Button>\n * </CollapsibleTrigger>\n * <CollapsibleContent>\n * <div>Hidden details revealed here.</div>\n * </CollapsibleContent>\n * </Collapsible>\n * ```\n */\nconst Collapsible = CollapsiblePrimitive.Root;\n\nexport type CollapsibleTriggerProps = React.ComponentPropsWithoutRef<\n typeof CollapsiblePrimitive.CollapsibleTrigger\n>;\n\n/**\n * The trigger button that toggles the collapsible panel.\n */\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;\n\nexport type CollapsibleContentProps = React.ComponentPropsWithoutRef<\n typeof CollapsiblePrimitive.CollapsibleContent\n>;\n\n/**\n * The component that contains the collapsible content.\n */\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { type DialogProps } from \"@radix-ui/react-dialog\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { Search } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Dialog, DialogContent } from \"@/components/dialog\";\n\nexport type CommandProps = React.ComponentPropsWithoutRef<\n typeof CommandPrimitive\n>;\n\n/**\n * Fast, composable, unstyled command menu component for React.\n *\n * @example\n * ```tsx\n * <Command>\n * <CommandInput placeholder=\"Type a command or search...\" />\n * <CommandList>\n * <CommandEmpty>No results found.</CommandEmpty>\n * <CommandGroup heading=\"Suggestions\">\n * <CommandItem>Calendar</CommandItem>\n * <CommandItem>Search Emoji</CommandItem>\n * <CommandItem>Calculator</CommandItem>\n * </CommandGroup>\n * </CommandList>\n * </Command>\n * ```\n */\nconst Command = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive>,\n CommandProps\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\"dl-command\", className)}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\nexport interface CommandDialogProps extends DialogProps {\n children?: React.ReactNode;\n}\n\n/**\n * Modal dialog wrapper for rendering a command palette over page content.\n *\n * @example\n * ```tsx\n * <CommandDialog open={open} onOpenChange={setOpen}>\n * <CommandInput placeholder=\"Search all commands...\" />\n * <CommandList>\n * <CommandItem>Profile</CommandItem>\n * <CommandItem>Billing</CommandItem>\n * </CommandList>\n * </CommandDialog>\n * ```\n */\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"dl-command-dialog-content\">\n <Command>{children}</Command>\n </DialogContent>\n </Dialog>\n );\n};\n\nexport type CommandInputProps = React.ComponentPropsWithoutRef<\n typeof CommandPrimitive.Input\n>;\n\n/**\n * Search input field for filtering options in a command list.\n */\nconst CommandInput = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.Input>,\n CommandInputProps\n>(({ className, ...props }, ref) => (\n <div className=\"dl-command-input-wrapper\" cmdk-input-wrapper=\"\">\n <Search className=\"dl-command-input-icon\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\"dl-command-input\", className)}\n {...props}\n />\n </div>\n));\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nexport type CommandListProps = React.ComponentPropsWithoutRef<\n typeof CommandPrimitive.List\n>;\n\n/**\n * Scrollable list container that renders filtered items and groups.\n */\nconst CommandList = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.List>,\n CommandListProps\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"dl-command-list\", className)}\n {...props}\n />\n));\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nexport type CommandEmptyProps = React.ComponentPropsWithoutRef<\n typeof CommandPrimitive.Empty\n>;\n\n/**\n * Message shown automatically when no items match the command search filter.\n */\nconst CommandEmpty = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.Empty>,\n CommandEmptyProps\n>((props, ref) => (\n <CommandPrimitive.Empty ref={ref} className=\"dl-command-empty\" {...props} />\n));\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nexport type CommandGroupProps = React.ComponentPropsWithoutRef<\n typeof CommandPrimitive.Group\n>;\n\n/**\n * Grouping container for related command items with an optional heading label.\n */\nconst CommandGroup = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.Group>,\n CommandGroupProps\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\"dl-command-group\", className)}\n {...props}\n />\n));\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nexport type CommandSeparatorProps = React.ComponentPropsWithoutRef<\n typeof CommandPrimitive.Separator\n>;\n\n/**\n * Divider separating groups or sections within a command list.\n */\nconst CommandSeparator = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.Separator>,\n CommandSeparatorProps\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"dl-command-separator\", className)}\n {...props}\n />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nexport type CommandItemProps = React.ComponentPropsWithoutRef<\n typeof CommandPrimitive.Item\n>;\n\n/**\n * Selectable command item with keyboard navigation and focus styling.\n */\nconst CommandItem = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.Item>,\n CommandItemProps\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\"dl-command-item\", className)}\n {...props}\n />\n));\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nexport type CommandShortcutProps = React.HTMLAttributes<HTMLSpanElement>;\n\n/**\n * Visual badge displaying a keyboard shortcut associated with a command item.\n */\nconst CommandShortcut = ({ className, ...props }: CommandShortcutProps) => {\n return <span className={cn(\"dl-command-shortcut\", className)} {...props} />;\n};\nCommandShortcut.displayName = \"CommandShortcut\";\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n","\"use client\";\nimport * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Root container for accessible modal dialog windows. Built upon Radix UI Dialog.\n *\n * @example\n * ```tsx\n * <Dialog open={isOpen} onOpenChange={setIsOpen}>\n * <DialogTrigger asChild>\n * <Button variant=\"outline\">Open Settings</Button>\n * </DialogTrigger>\n * <DialogContent size=\"lg\">\n * <DialogHeader>\n * <DialogTitle>Account Settings</DialogTitle>\n * <DialogDescription>Manage your workspace credentials.</DialogDescription>\n * </DialogHeader>\n * <DialogBody>Dialog body content here...</DialogBody>\n * <DialogFooter>\n * <Button onClick={() => setIsOpen(false)}>Save changes</Button>\n * </DialogFooter>\n * </DialogContent>\n * </Dialog>\n * ```\n */\nconst Dialog = DialogPrimitive.Root;\n\n/** Button or trigger element that opens the dialog modal. */\nconst DialogTrigger = DialogPrimitive.Trigger;\n\n/** Portals dialog content to the end of document.body for clean stacking context. */\nconst DialogPortal = DialogPrimitive.Portal;\n\n/** Button that closes the open dialog. */\nconst DialogClose = DialogPrimitive.Close;\n\nexport type DialogOverlayProps = React.ComponentPropsWithoutRef<\n typeof DialogPrimitive.Overlay\n>;\n\n/** Semi-transparent backdrop overlay rendered beneath the dialog modal. */\nconst DialogOverlay = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Overlay>,\n DialogOverlayProps\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\"dl-dialog-overlay\", className)}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\n/**\n * Predefined maximum width scale for the modal window.\n */\nexport type DialogSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"full\";\n\nexport type DialogContentProps = React.ComponentPropsWithoutRef<\n typeof DialogPrimitive.Content\n> & {\n /**\n * Predefined maximum width scale for the modal window.\n * - `sm`: 24rem (384px) - confirmations, small prompts\n * - `md`: 32rem (512px) - standard forms, default\n * - `lg`: 42rem (672px) - medium panels\n * - `xl`: 56rem (896px) - data previews, wide forms\n * - `2xl`: 72rem (1152px) - deep traces, code editors, debuggers\n * - `full`: nearly full viewport\n * @default \"md\"\n */\n size?: DialogSize;\n};\n\n/**\n * Modal content container. Renders overlay, content card, and accessible close button.\n */\nconst DialogContent = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Content>,\n DialogContentProps\n>(({ className, children, size = \"md\", ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"dl-dialog-content\",\n size && `dl-dialog--${size}`,\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"dl-dialog-close\">\n <X />\n <span className=\"dl-dialog-sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\n/** Top container of the dialog for title and description. */\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-dialog__header\", className)} {...props} />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\n/** Scrollable or flexible body container for dialog modal content. */\nconst DialogBody = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-dialog__body\", className)} {...props} />\n);\nDialogBody.displayName = \"DialogBody\";\n\n/** Bottom container of the dialog for action buttons. */\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-dialog__footer\", className)} {...props} />\n);\nDialogFooter.displayName = \"DialogFooter\";\n\n/** Accessible title heading for the dialog modal. */\nconst DialogTitle = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\"dl-dialog__title\", className)}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\n/** Accessible explanatory text for the dialog content. */\nconst DialogDescription = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"dl-dialog__desc\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogBody,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","import * as React from \"react\";\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from \"@/components/alert-dialog\";\n\nexport interface ConfirmDialogProps {\n /** Whether the confirmation dialog is visible */\n open: boolean;\n /** Callback fired when the open state changes */\n onOpenChange: (open: boolean) => void;\n /** Modal header title */\n title: string;\n /** Detailed description or warning message */\n description: string;\n /** Action executed when the confirm button is clicked */\n onConfirm: () => void;\n /** Custom text for confirm button (default: \"Confirm\") */\n confirmText?: string;\n /** Custom text for cancel button (default: \"Cancel\") */\n cancelText?: string;\n /** Whether the confirmed action is destructive (renders red confirm button) */\n destructive?: boolean;\n}\n\n/**\n * Pre-composed modal dialog for confirming critical, permanent, or destructive user actions.\n *\n * @example\n * ```tsx\n * <ConfirmDialog\n * open={showDeleteModal}\n * onOpenChange={setShowDeleteModal}\n * title=\"Delete Agent Workspace?\"\n * description=\"This will permanently delete the agent workspace and all historical runs.\"\n * confirmText=\"Delete Workspace\"\n * destructive\n * onConfirm={handleDelete}\n * />\n * ```\n */\nexport function ConfirmDialog({\n open,\n onOpenChange,\n title,\n description,\n onConfirm,\n confirmText = \"Confirm\",\n cancelText = \"Cancel\",\n destructive = false,\n}: ConfirmDialogProps) {\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{title}</AlertDialogTitle>\n <AlertDialogDescription>{description}</AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>{cancelText}</AlertDialogCancel>\n <AlertDialogAction\n onClick={onConfirm}\n className={destructive ? \"dl-btn--destructive\" : \"\"}\n >\n {confirmText}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n ConfirmationProps,\n ConfirmationMediaProps,\n ConfirmationContentProps,\n ConfirmationTitleProps,\n ConfirmationDescriptionProps,\n ConfirmationActionsProps,\n} from \"./confirmation-types\";\n\nexport type {\n ConfirmationProps,\n ConfirmationMediaProps,\n ConfirmationContentProps,\n ConfirmationTitleProps,\n ConfirmationDescriptionProps,\n ConfirmationActionsProps,\n};\n\nexport const ConfirmationMedia = React.forwardRef<\n HTMLDivElement,\n ConfirmationMediaProps\n>(({ className, children, ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-confirmation__media\", className)} {...props}>\n {children}\n </div>\n));\nConfirmationMedia.displayName = \"ConfirmationMedia\";\n\nexport const ConfirmationTitle = React.forwardRef<\n HTMLHeadingElement,\n ConfirmationTitleProps\n>(({ className, ...props }, ref) => (\n <h4\n ref={ref}\n className={cn(\"dl-confirmation__title\", className)}\n {...props}\n />\n));\nConfirmationTitle.displayName = \"ConfirmationTitle\";\n\nexport const ConfirmationDescription = React.forwardRef<\n HTMLParagraphElement,\n ConfirmationDescriptionProps\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"dl-confirmation__description\", className)}\n {...props}\n />\n));\nConfirmationDescription.displayName = \"ConfirmationDescription\";\n\nexport const ConfirmationContent = React.forwardRef<\n HTMLDivElement,\n ConfirmationContentProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"dl-confirmation__content\", className)}\n {...props}\n />\n));\nConfirmationContent.displayName = \"ConfirmationContent\";\n\nexport const ConfirmationActions = React.forwardRef<\n HTMLDivElement,\n ConfirmationActionsProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"dl-confirmation__actions\", className)}\n {...props}\n />\n));\nConfirmationActions.displayName = \"ConfirmationActions\";\n\n/**\n * Human-in-the-loop action approval card for sensitive or destructive agent operations.\n *\n * @example\n * ```tsx\n * <Confirmation>\n * <ConfirmationMedia><AlertTriangle /></ConfirmationMedia>\n * <ConfirmationContent>\n * <ConfirmationTitle>Run migration script?</ConfirmationTitle>\n * <ConfirmationDescription>Alters 3 database tables.</ConfirmationDescription>\n * </ConfirmationContent>\n * <ConfirmationActions>\n * <Button variant=\"outline\" size=\"sm\">Deny</Button>\n * <Button size=\"sm\">Approve</Button>\n * </ConfirmationActions>\n * </Confirmation>\n * ```\n */\nexport const Confirmation = React.forwardRef<HTMLDivElement, ConfirmationProps>(\n (\n { className, variant = \"outline\", size = \"md\", children, ...props },\n ref,\n ) => (\n <div\n ref={ref}\n className={cn(\n \"dl-confirmation\",\n `dl-confirmation--${variant}`,\n `dl-confirmation--${size}`,\n className,\n )}\n {...props}\n >\n <div className=\"dl-confirmation__body\">{children}</div>\n </div>\n ),\n);\nConfirmation.displayName = \"Confirmation\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\";\nimport { ChevronRight } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Root ContextMenu container.\n */\nexport const ContextMenu = ContextMenuPrimitive.Root;\n\n/**\n * The area that triggers the context menu on right click or long press.\n */\nexport const ContextMenuTrigger = ContextMenuPrimitive.Trigger;\n\n/**\n * Group of related context menu items.\n */\nexport const ContextMenuGroup = ContextMenuPrimitive.Group;\n\n/**\n * Portal rendering the context menu in the document body.\n */\nexport const ContextMenuPortal = ContextMenuPrimitive.Portal;\n\n/**\n * Submenu container within a context menu.\n */\nexport const ContextMenuSub = ContextMenuPrimitive.Sub;\n\n/**\n * Radio group container for mutually exclusive context options.\n */\nexport const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;\n\nexport type ContextMenuSubTriggerProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.SubTrigger\n> & {\n inset?: boolean;\n};\n\n/**\n * Trigger item for opening a nested context submenu.\n */\nexport const ContextMenuSubTrigger = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.SubTrigger>,\n ContextMenuSubTriggerProps\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"dl-menu-item dl-menu-sub-trigger\",\n inset && \"dl-menu-item--inset\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"dl-menu-item__chevron\" />\n </ContextMenuPrimitive.SubTrigger>\n));\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;\n\nexport type ContextMenuSubContentProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.SubContent\n>;\n\n/**\n * Content container for a nested context submenu.\n */\nexport const ContextMenuSubContent = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.SubContent>,\n ContextMenuSubContentProps\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n className={cn(\"dl-menu-content\", className)}\n {...props}\n />\n));\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;\n\nexport type ContextMenuContentProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.Content\n>;\n\n/**\n * Floating content panel containing context menu items.\n */\nexport const ContextMenuContent = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.Content>,\n ContextMenuContentProps\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n className={cn(\"dl-context-menu-content\", className)}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n));\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\";\nimport { Check, Circle } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type ContextMenuItemProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.Item\n> & {\n inset?: boolean;\n};\n\n/**\n * Selectable item within a context menu.\n */\nexport const ContextMenuItem = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.Item>,\n ContextMenuItemProps\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Item\n ref={ref}\n className={cn(\"dl-menu-item\", inset && \"dl-menu-item--inset\", className)}\n {...props}\n />\n));\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;\n\nexport type ContextMenuCheckboxItemProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.CheckboxItem\n>;\n\n/**\n * Checkbox menu item supporting checked/unchecked toggle state in a context menu.\n */\nexport const ContextMenuCheckboxItem = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.CheckboxItem>,\n ContextMenuCheckboxItemProps\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\"dl-menu-item dl-menu-checkbox-item\", className)}\n {...props}\n >\n <span className=\"dl-menu-checkbox-item__indicator\">\n <ContextMenuPrimitive.ItemIndicator>\n <Check className=\"dl-menu-item__icon\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n));\nContextMenuCheckboxItem.displayName =\n ContextMenuPrimitive.CheckboxItem.displayName;\n\nexport type ContextMenuRadioItemProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.RadioItem\n>;\n\n/**\n * Radio menu item supporting mutual exclusion in a ContextMenuRadioGroup.\n */\nexport const ContextMenuRadioItem = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.RadioItem>,\n ContextMenuRadioItemProps\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\"dl-menu-item dl-menu-radio-item\", className)}\n {...props}\n >\n <span className=\"dl-menu-radio-item__indicator\">\n <ContextMenuPrimitive.ItemIndicator>\n <Circle className=\"dl-menu-item__radio-dot\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n));\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;\n\nexport type ContextMenuLabelProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.Label\n> & {\n inset?: boolean;\n};\n\n/**\n * Header label for grouping context menu items.\n */\nexport const ContextMenuLabel = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.Label>,\n ContextMenuLabelProps\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Label\n ref={ref}\n className={cn(\"dl-menu-label\", inset && \"dl-menu-label--inset\", className)}\n {...props}\n />\n));\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;\n\nexport type ContextMenuSeparatorProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.Separator\n>;\n\n/**\n * Horizontal rule separating sections within a context menu.\n */\nexport const ContextMenuSeparator = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.Separator>,\n ContextMenuSeparatorProps\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator\n ref={ref}\n className={cn(\"dl-menu-separator\", className)}\n {...props}\n />\n));\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;\n\nexport type ContextMenuShortcutProps = React.HTMLAttributes<HTMLSpanElement>;\n\n/**\n * Keyboard shortcut hint displayed at the trailing end of a context menu item.\n */\nexport const ContextMenuShortcut = ({\n className,\n ...props\n}: ContextMenuShortcutProps) => {\n return <span className={cn(\"dl-menu-shortcut\", className)} {...props} />;\n};\nContextMenuShortcut.displayName = \"ContextMenuShortcut\";\n","import * as React from \"react\";\nimport { ArrowUpDown, ArrowUp, ArrowDown } from \"lucide-react\";\nimport {\n Table,\n TableHeader,\n TableBody,\n TableRow,\n TableHead,\n TableCell,\n} from \"@/components/table\";\nimport { EmptyState } from \"@/components/empty-state\";\nimport { Skeleton } from \"@/components/skeleton\";\nimport { cn } from \"@/lib/utils\";\nimport {\n DataTableColumn,\n DataTablePaginationConfig,\n DataTableProps,\n} from \"./data-table-types\";\nimport { DataTablePagination } from \"./data-table-pagination\";\n\nexport type { DataTableColumn, DataTablePaginationConfig, DataTableProps };\n\n/**\n * Generic enterprise data table with integrated sorting, client/server pagination,\n * custom column renderers, and zero-config empty states.\n */\nexport function DataTable<T extends Record<string, unknown>>({\n data,\n columns,\n rowKey = \"id\",\n pagination = true,\n loading = false,\n emptyState,\n onRowClick,\n className,\n}: DataTableProps<T>) {\n const [internalPage, setInternalPage] = React.useState(1);\n const [sortKey, setSortKey] = React.useState<string | null>(null);\n const [sortDirection, setSortDirection] = React.useState<\"asc\" | \"desc\">(\n \"asc\",\n );\n\n const paginationConfig: DataTablePaginationConfig | null =\n React.useMemo(() => {\n if (!pagination) return null;\n return typeof pagination === \"boolean\"\n ? { pageSize: 10, showSummary: true }\n : { pageSize: 10, showSummary: true, ...pagination };\n }, [pagination]);\n\n const isServerPagination =\n paginationConfig?.total !== undefined &&\n paginationConfig?.onPageChange !== undefined;\n\n const activePage = paginationConfig?.page ?? internalPage;\n const pageSize = paginationConfig?.pageSize ?? 10;\n\n const handlePageChange = (nextPage: number) => {\n if (isServerPagination) {\n paginationConfig?.onPageChange?.(nextPage);\n } else {\n setInternalPage(nextPage);\n }\n };\n\n const handleSort = (key: string) => {\n if (sortKey === key) {\n if (sortDirection === \"asc\") {\n setSortDirection(\"desc\");\n } else {\n setSortKey(null);\n setSortDirection(\"asc\");\n }\n } else {\n setSortKey(key);\n setSortDirection(\"asc\");\n }\n };\n\n const sortedData = React.useMemo(() => {\n if (!sortKey || isServerPagination) return data;\n const col = columns.find((c) => c.key === sortKey);\n return [...data].sort((a, b) => {\n if (col?.sortFn) {\n return sortDirection === \"asc\" ? col.sortFn(a, b) : col.sortFn(b, a);\n }\n const valA = a[sortKey];\n const valB = b[sortKey];\n if (valA === valB) return 0;\n if (valA === null || valA === undefined) return 1;\n if (valB === null || valB === undefined) return -1;\n const res = String(valA).localeCompare(String(valB), undefined, {\n numeric: true,\n });\n return sortDirection === \"asc\" ? res : -res;\n });\n }, [data, sortKey, sortDirection, columns, isServerPagination]);\n\n const totalItems = isServerPagination\n ? (paginationConfig?.total ?? data.length)\n : sortedData.length;\n const totalPages = Math.max(1, Math.ceil(totalItems / pageSize));\n\n const displayData = React.useMemo(() => {\n if (!paginationConfig || isServerPagination) return sortedData;\n const start = (activePage - 1) * pageSize;\n return sortedData.slice(start, start + pageSize);\n }, [sortedData, paginationConfig, isServerPagination, activePage, pageSize]);\n\n const getRowId = (row: T, index: number): string | number => {\n if (typeof rowKey === \"function\") return rowKey(row, index);\n const val = row[rowKey as string];\n return typeof val === \"string\" || typeof val === \"number\" ? val : index;\n };\n\n return (\n <div className={cn(\"dl-data-table-container\", className)}>\n <div className=\"dl-data-table-wrapper\">\n <Table>\n <TableHeader>\n <TableRow>\n {columns.map((col) => {\n const isSorted = sortKey === col.key;\n return (\n <TableHead\n key={col.key}\n className={cn(\n col.align === \"center\" && \"text-center\",\n col.align === \"right\" && \"text-right\",\n col.className,\n )}\n >\n {col.sortable ? (\n <button\n type=\"button\"\n onClick={() => handleSort(col.key)}\n className=\"dl-data-table-sort-btn\"\n >\n <span>{col.header}</span>\n {isSorted ? (\n sortDirection === \"asc\" ? (\n <ArrowUp className=\"dl-data-table-sort-icon\" />\n ) : (\n <ArrowDown className=\"dl-data-table-sort-icon\" />\n )\n ) : (\n <ArrowUpDown className=\"dl-data-table-sort-icon\" />\n )}\n </button>\n ) : (\n col.header\n )}\n </TableHead>\n );\n })}\n </TableRow>\n </TableHeader>\n <TableBody>\n {loading ? (\n Array.from({ length: pageSize }).map((_, idx) => (\n <TableRow key={`skeleton-${idx}`}>\n {columns.map((col) => (\n <TableCell key={col.key}>\n <Skeleton className=\"h-4 w-full\" />\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : displayData.length === 0 ? (\n <TableRow>\n <TableCell\n colSpan={columns.length}\n className=\"dl-data-table-empty\"\n >\n {emptyState ?? (\n <EmptyState\n title=\"No entries found\"\n description=\"There is no data matching the current criteria.\"\n />\n )}\n </TableCell>\n </TableRow>\n ) : (\n displayData.map((row, rowIndex) => (\n <TableRow\n key={getRowId(row, rowIndex)}\n onClick={() => onRowClick?.(row)}\n className={cn(onRowClick && \"dl-data-table-row--clickable\")}\n >\n {columns.map((col) => (\n <TableCell\n key={col.key}\n className={cn(\n col.align === \"center\" && \"text-center\",\n col.align === \"right\" && \"text-right\",\n col.className,\n )}\n >\n {col.cell\n ? col.cell(row, rowIndex)\n : (row[col.key] as React.ReactNode)}\n </TableCell>\n ))}\n </TableRow>\n ))\n )}\n </TableBody>\n </Table>\n </div>\n\n {paginationConfig && (\n <DataTablePagination\n config={paginationConfig}\n activePage={activePage}\n totalItems={totalItems}\n totalPages={totalPages}\n pageSize={pageSize}\n onPageChange={handlePageChange}\n />\n )}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type TableProps = React.HTMLAttributes<HTMLTableElement>;\n\n/**\n * Responsive table container with pure scoped CSS styling.\n * Automatically wraps in a scrollable horizontal container (`dl-table-wrapper`).\n *\n * @example\n * ```tsx\n * <Table>\n * <TableHeader>\n * <TableRow>\n * <TableHead>Invoice</TableHead>\n * <TableHead>Status</TableHead>\n * <TableHead className=\"text-right\">Amount</TableHead>\n * </TableRow>\n * </TableHeader>\n * <TableBody>\n * <TableRow>\n * <TableCell>INV-001</TableCell>\n * <TableCell>Paid</TableCell>\n * <TableCell className=\"text-right\">$250.00</TableCell>\n * </TableRow>\n * </TableBody>\n * </Table>\n * ```\n */\nconst Table = React.forwardRef<HTMLTableElement, TableProps>(\n ({ className, ...props }, ref) => (\n <div className=\"dl-table-wrapper\">\n <table ref={ref} className={cn(\"dl-table\", className)} {...props} />\n </div>\n ),\n);\nTable.displayName = \"Table\";\n\nexport type TableHeaderProps = React.HTMLAttributes<HTMLTableSectionElement>;\n\n/**\n * Header section of a `Table` (`<thead>`).\n */\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, TableHeaderProps>(\n ({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"dl-table__head\", className)} {...props} />\n ),\n);\nTableHeader.displayName = \"TableHeader\";\n\nexport type TableBodyProps = React.HTMLAttributes<HTMLTableSectionElement>;\n\n/**\n * Body container of a `Table` (`<tbody>`).\n */\nconst TableBody = React.forwardRef<HTMLTableSectionElement, TableBodyProps>(\n ({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn(\"dl-table__body\", className)} {...props} />\n ),\n);\nTableBody.displayName = \"TableBody\";\n\nexport type TableFooterProps = React.HTMLAttributes<HTMLTableSectionElement>;\n\n/**\n * Footer section of a `Table` (`<tfoot>`) for totals or summaries.\n */\nconst TableFooter = React.forwardRef<HTMLTableSectionElement, TableFooterProps>(\n ({ className, ...props }, ref) => (\n <tfoot ref={ref} className={cn(\"dl-table__foot\", className)} {...props} />\n ),\n);\nTableFooter.displayName = \"TableFooter\";\n\nexport type TableRowProps = React.HTMLAttributes<HTMLTableRowElement>;\n\n/**\n * Interactive row within a `Table` (`<tr>`).\n */\nconst TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n ({ className, ...props }, ref) => (\n <tr ref={ref} className={cn(\"dl-table__row\", className)} {...props} />\n ),\n);\nTableRow.displayName = \"TableRow\";\n\nexport type TableHeadProps = React.ThHTMLAttributes<HTMLTableCellElement>;\n\n/**\n * Header cell within a `TableRow` (`<th>`).\n */\nconst TableHead = React.forwardRef<HTMLTableCellElement, TableHeadProps>(\n ({ className, ...props }, ref) => (\n <th ref={ref} className={cn(\"dl-table__head-cell\", className)} {...props} />\n ),\n);\nTableHead.displayName = \"TableHead\";\n\nexport type TableCellProps = React.TdHTMLAttributes<HTMLTableCellElement>;\n\n/**\n * Standard data cell within a `TableRow` (`<td>`).\n */\nconst TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, ...props }, ref) => (\n <td ref={ref} className={cn(\"dl-table__cell\", className)} {...props} />\n ),\n);\nTableCell.displayName = \"TableCell\";\n\nexport type TableCaptionProps = React.HTMLAttributes<HTMLTableCaptionElement>;\n\n/**\n * Accessible caption element describing the purpose or dataset of a `Table`.\n */\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n TableCaptionProps\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"dl-table__caption\", className)}\n {...props}\n />\n));\nTableCaption.displayName = \"TableCaption\";\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Properties for configuring the {@link EmptyState} component.\n */\nexport interface EmptyStateProps extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n \"title\"\n> {\n /** Primary headline or title text */\n readonly title: React.ReactNode;\n /** Secondary explanatory description */\n readonly description?: React.ReactNode;\n /** Optional visual icon displayed in the central badge */\n readonly icon?: React.ReactNode;\n /** Primary action button or trigger node */\n readonly action?: React.ReactNode;\n /** Custom children rendered beneath the description */\n readonly children?: React.ReactNode;\n}\n\n/**\n * Universal EmptyState component displaying cybernetic or theme-adaptive placeholders\n * when queries, tables, or collections yield zero entries.\n *\n * @example\n * ```tsx\n * <EmptyState\n * icon={<Search />}\n * title=\"No results found\"\n * description=\"Try adjusting your filters or search keywords.\"\n * action={<Button variant=\"outline\">Reset filters</Button>}\n * />\n * ```\n */\nexport const EmptyState = React.forwardRef<HTMLDivElement, EmptyStateProps>(\n (\n { title, description, icon, action, children, className, ...props },\n ref,\n ) => {\n return (\n <div ref={ref} className={cn(\"dl-empty-state\", className)} {...props}>\n {icon && <div className=\"dl-empty-state__icon-box\">{icon}</div>}\n <h3 className=\"dl-empty-state__title\">{title}</h3>\n {description && (\n <p className=\"dl-empty-state__description\">{description}</p>\n )}\n {children}\n {action && <div className=\"dl-empty-state__actions\">{action}</div>}\n </div>\n );\n },\n);\nEmptyState.displayName = \"EmptyState\";\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type SkeletonProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Animated placeholder component for representing content loading states.\n *\n * @example\n * ```tsx\n * <Flex align=\"center\" gap=\"4\">\n * <Skeleton variant=\"circle\" />\n * <Stack gap=\"2\">\n * <Skeleton />\n * <Skeleton />\n * </Stack>\n * </Flex>\n * ```\n */\nfunction Skeleton({ className, ...props }: SkeletonProps) {\n return <div className={cn(\"dl-skeleton\", className)} {...props} />;\n}\nexport { Skeleton };\n","import * as React from \"react\";\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { ButtonProps, buttonVariants } from \"@/components/button\";\n\nexport type PaginationProps = React.ComponentProps<\"nav\">;\n\n/**\n * Accessible navigation container for paginated content.\n *\n * @example\n * ```tsx\n * <Pagination>\n * <PaginationContent>\n * <PaginationItem>\n * <PaginationPrevious href=\"#\" />\n * </PaginationItem>\n * <PaginationItem>\n * <PaginationLink href=\"#\" isActive>1</PaginationLink>\n * </PaginationItem>\n * <PaginationItem>\n * <PaginationLink href=\"#\">2</PaginationLink>\n * </PaginationItem>\n * <PaginationItem>\n * <PaginationEllipsis />\n * </PaginationItem>\n * <PaginationItem>\n * <PaginationNext href=\"#\" />\n * </PaginationItem>\n * </PaginationContent>\n * </Pagination>\n * ```\n */\nconst Pagination = ({ className, ...props }: PaginationProps) => (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn(\"dl-pagination\", className)}\n {...props}\n />\n);\nPagination.displayName = \"Pagination\";\n\nexport type PaginationContentProps = React.ComponentProps<\"ul\">;\n\n/**\n * List container (`<ul>`) holding pagination links and items.\n */\nconst PaginationContent = React.forwardRef<\n HTMLUListElement,\n PaginationContentProps\n>(({ className, ...props }, ref) => (\n <ul ref={ref} className={cn(\"dl-pagination-content\", className)} {...props} />\n));\nPaginationContent.displayName = \"PaginationContent\";\n\nexport type PaginationItemProps = React.ComponentProps<\"li\">;\n\n/**\n * List item (`<li>`) wrapper for individual pagination controls.\n */\nconst PaginationItem = React.forwardRef<HTMLLIElement, PaginationItemProps>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn(\"dl-pagination-item\", className)} {...props} />\n ),\n);\nPaginationItem.displayName = \"PaginationItem\";\n\nexport type PaginationLinkProps = {\n /** Marks this page link as currently active */\n isActive?: boolean;\n} & Pick<ButtonProps, \"size\"> &\n React.ComponentProps<\"a\">;\n\n/**\n * Interactive link styled as a button for navigating between pages.\n */\nconst PaginationLink = ({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) => (\n <a\n aria-current={isActive ? \"page\" : undefined}\n className={cn(\n buttonVariants({\n variant: isActive ? \"outline\" : \"ghost\",\n size,\n }),\n className,\n )}\n {...props}\n />\n);\nPaginationLink.displayName = \"PaginationLink\";\n\nexport type PaginationPreviousProps = React.ComponentProps<\n typeof PaginationLink\n>;\n\n/**\n * \"Previous\" page navigation link with a preceding chevron icon.\n */\nconst PaginationPrevious = ({\n className,\n ...props\n}: PaginationPreviousProps) => (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"dl-pagination-prev\", className)}\n {...props}\n >\n <ChevronLeft className=\"dl-pagination-icon\" />\n <span>Previous</span>\n </PaginationLink>\n);\nPaginationPrevious.displayName = \"PaginationPrevious\";\n\nexport type PaginationNextProps = React.ComponentProps<typeof PaginationLink>;\n\n/**\n * \"Next\" page navigation link with a trailing chevron icon.\n */\nconst PaginationNext = ({ className, ...props }: PaginationNextProps) => (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"dl-pagination-next\", className)}\n {...props}\n >\n <span>Next</span>\n <ChevronRight className=\"dl-pagination-icon\" />\n </PaginationLink>\n);\nPaginationNext.displayName = \"PaginationNext\";\n\nexport type PaginationEllipsisProps = React.ComponentProps<\"span\">;\n\n/**\n * Ellipsis indicator (`...`) denoting skipped pages in a pagination sequence.\n */\nconst PaginationEllipsis = ({\n className,\n ...props\n}: PaginationEllipsisProps) => (\n <span\n aria-hidden\n className={cn(\"dl-pagination-ellipsis\", className)}\n {...props}\n >\n <MoreHorizontal />\n <span className=\"sr-only\">More pages</span>\n </span>\n);\nPaginationEllipsis.displayName = \"PaginationEllipsis\";\n\nexport {\n Pagination,\n PaginationContent,\n PaginationLink,\n PaginationItem,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n};\n","import * as React from \"react\";\nimport {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n} from \"@/components/pagination\";\nimport { cn } from \"@/lib/utils\";\nimport { DataTablePaginationConfig } from \"./data-table-types\";\n\nexport interface DataTablePaginationProps {\n config: DataTablePaginationConfig;\n activePage: number;\n totalItems: number;\n totalPages: number;\n pageSize: number;\n onPageChange: (page: number) => void;\n}\n\nexport function DataTablePagination({\n config,\n activePage,\n totalItems,\n totalPages,\n pageSize,\n onPageChange,\n}: DataTablePaginationProps) {\n if (totalItems <= 0) return null;\n\n return (\n <div className=\"dl-data-table-footer\">\n {config.showSummary && (\n <div className=\"dl-data-table-summary\">\n Showing{\" \"}\n <strong>\n {Math.min((activePage - 1) * pageSize + 1, totalItems)}\n </strong>{\" \"}\n to <strong>{Math.min(activePage * pageSize, totalItems)}</strong> of{\" \"}\n <strong>{totalItems}</strong> entries\n </div>\n )}\n\n {totalPages > 1 && (\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n if (activePage > 1) onPageChange(activePage - 1);\n }}\n className={cn(\n activePage <= 1 && \"pointer-events-none opacity-50\",\n )}\n />\n </PaginationItem>\n {Array.from({ length: totalPages }, (_, i) => i + 1).map((p) => {\n if (\n totalPages > 7 &&\n p > 2 &&\n p < totalPages - 1 &&\n Math.abs(p - activePage) > 1\n ) {\n if (p === 3 || p === totalPages - 2) {\n return (\n <PaginationItem key={`ellipsis-${p}`}>\n <PaginationEllipsis />\n </PaginationItem>\n );\n }\n return null;\n }\n return (\n <PaginationItem key={p}>\n <PaginationLink\n href=\"#\"\n isActive={p === activePage}\n onClick={(e) => {\n e.preventDefault();\n onPageChange(p);\n }}\n >\n {p}\n </PaginationLink>\n </PaginationItem>\n );\n })}\n <PaginationItem>\n <PaginationNext\n href=\"#\"\n onClick={(e) => {\n e.preventDefault();\n if (activePage < totalPages) onPageChange(activePage + 1);\n }}\n className={cn(\n activePage >= totalPages && \"pointer-events-none opacity-50\",\n )}\n />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n )}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { format } from \"date-fns\";\nimport { Calendar as CalendarIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/button\";\nimport { Calendar } from \"@/components/calendar\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/popover\";\n\nexport interface DatePickerProps {\n /**\n * The selected date formatted as an ISO string (`YYYY-MM-DD`).\n */\n value?: string;\n /**\n * Callback fired when a date is selected or cleared.\n * @param value - The new date string in `YYYY-MM-DD` format, or empty string if cleared.\n */\n onChange?: (value: string) => void;\n /**\n * Placeholder label rendered when no date is selected.\n * @default \"Pick a date\"\n */\n placeholder?: string;\n /**\n * Optional custom CSS class name for the trigger button.\n */\n className?: string;\n /**\n * Disables user interaction with the date picker.\n */\n disabled?: boolean;\n}\n\n/**\n * Accessible date picker component featuring an interactive popover calendar.\n * Formats dates safely in local timezone to prevent UTC day-shifting.\n *\n * @example\n * ```tsx\n * const [date, setDate] = useState(\"2026-09-25\");\n *\n * <DatePicker\n * value={date}\n * onChange={setDate}\n * placeholder=\"Select appointment date\"\n * />\n * ```\n */\nexport function DatePicker({\n value,\n onChange,\n placeholder = \"Pick a date\",\n className,\n disabled,\n}: DatePickerProps) {\n // Parse date safely in local timezone to avoid UTC shifting\n const date = React.useMemo(() => {\n if (!value) return undefined;\n const parts = value.split(\"-\");\n if (parts.length !== 3) {\n const d = new Date(value);\n return isNaN(d.getTime()) ? undefined : d;\n }\n const year = parseInt(parts[0], 10);\n const month = parseInt(parts[1], 10) - 1; // 0-based month\n const day = parseInt(parts[2], 10);\n return new Date(year, month, day, 12, 0, 0); // Local noon\n }, [value]);\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n type=\"button\"\n disabled={disabled}\n className={cn(\n \"dl-date-picker-trigger\",\n !value && \"dl-date-picker-trigger--placeholder\",\n className,\n )}\n >\n <CalendarIcon className=\"dl-date-picker-icon\" />\n {date && !isNaN(date.getTime()) ? (\n format(date, \"PPP\")\n ) : (\n <span>{placeholder}</span>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"dl-date-picker-content\" align=\"start\">\n <Calendar\n mode=\"single\"\n selected={date}\n onSelect={(selectedDate) =>\n onChange?.(selectedDate ? format(selectedDate, \"yyyy-MM-dd\") : \"\")\n }\n autoFocus\n />\n </PopoverContent>\n </Popover>\n );\n}\n","import * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Root container for non-modal floating panels and flyouts. Built upon Radix UI Popover.\n *\n * @example\n * ```tsx\n * <Popover>\n * <PopoverTrigger asChild>\n * <Button variant=\"outline\">Open Filters</Button>\n * </PopoverTrigger>\n * <PopoverContent align=\"start\">\n * <Stack gap=\"2\">\n * <h4>Filter Results</h4>\n * <p>Adjust display criteria.</p>\n * </Stack>\n * </PopoverContent>\n * </Popover>\n * ```\n */\nconst Popover = PopoverPrimitive.Root;\n\n/** Interactive trigger element that opens the popover. */\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\n/** Optional custom anchor reference element for positioning the popover. */\nconst PopoverAnchor = PopoverPrimitive.Anchor;\n\nexport type PopoverContentProps = React.ComponentPropsWithoutRef<\n typeof PopoverPrimitive.Content\n>;\n\n/**\n * Floating panel content for Popover styled with scoped `dl-popover` CSS tokens.\n */\nconst PopoverContent = React.forwardRef<\n React.ComponentRef<typeof PopoverPrimitive.Content>,\n PopoverContentProps\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\"dl-popover\", className)}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };\n","import * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n <DrawerPrimitive.Root\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n);\nDrawer.displayName = \"Drawer\";\n\nconst DrawerTrigger = DrawerPrimitive.Trigger;\n\nconst DrawerPortal = DrawerPrimitive.Portal;\n\nconst DrawerClose = DrawerPrimitive.Close;\n\nconst DrawerOverlay = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"dl-drawer-overlay\", className)}\n {...props}\n />\n));\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerContent = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\"dl-drawer-content\", className)}\n {...props}\n >\n <div className=\"dl-drawer-handle\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n));\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-drawer-header\", className)} {...props} />\n);\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-drawer-footer\", className)} {...props} />\n);\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\"dl-drawer-title\", className)}\n {...props}\n />\n));\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription = React.forwardRef<\n React.ComponentRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"dl-drawer-desc\", className)}\n {...props}\n />\n));\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { ChevronRight } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Root DropdownMenu container managing open/closed state.\n */\nexport const DropdownMenu = DropdownMenuPrimitive.Root;\n\n/**\n * The trigger button that toggles the dropdown menu.\n */\nexport const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\n/**\n * Group of related dropdown menu items.\n */\nexport const DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\n/**\n * Portal rendering dropdown menus in the document body.\n */\nexport const DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\n/**\n * Submenu container within a dropdown menu.\n */\nexport const DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\n/**\n * Radio group container for mutually exclusive dropdown options.\n */\nexport const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nexport type DropdownMenuSubTriggerProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.SubTrigger\n> & {\n inset?: boolean;\n};\n\n/**\n * Trigger item for opening a nested dropdown submenu.\n */\nexport const DropdownMenuSubTrigger = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.SubTrigger>,\n DropdownMenuSubTriggerProps\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"dl-menu-item dl-menu-sub-trigger\",\n inset && \"dl-menu-item--inset\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"dl-menu-item__chevron\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName;\n\nexport type DropdownMenuSubContentProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.SubContent\n>;\n\n/**\n * Content container for a nested dropdown submenu.\n */\nexport const DropdownMenuSubContent = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.SubContent>,\n DropdownMenuSubContentProps\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\"dl-menu-content\", className)}\n {...props}\n />\n));\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName;\n\nexport type DropdownMenuContentProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Content\n>;\n\n/**\n * Floating content panel containing dropdown menu items.\n */\nexport const DropdownMenuContent = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Content>,\n DropdownMenuContentProps\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\"dl-menu-content\", className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { Check, Circle } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type DropdownMenuItemProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Item\n> & {\n inset?: boolean;\n};\n\n/**\n * Standard selectable item within a dropdown menu.\n */\nexport const DropdownMenuItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Item>,\n DropdownMenuItemProps\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\"dl-menu-item\", inset && \"dl-menu-item--inset\", className)}\n {...props}\n />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nexport type DropdownMenuCheckboxItemProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.CheckboxItem\n>;\n\n/**\n * Checkbox menu item supporting checked/unchecked toggle state.\n */\nexport const DropdownMenuCheckboxItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n DropdownMenuCheckboxItemProps\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\"dl-menu-item dl-menu-checkbox-item\", className)}\n {...props}\n >\n <span className=\"dl-menu-checkbox-item__indicator\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"dl-menu-item__icon\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\n\nexport type DropdownMenuRadioItemProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.RadioItem\n>;\n\n/**\n * Radio menu item supporting mutual exclusion in a DropdownMenuRadioGroup.\n */\nexport const DropdownMenuRadioItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.RadioItem>,\n DropdownMenuRadioItemProps\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\"dl-menu-item dl-menu-radio-item\", className)}\n {...props}\n >\n <span className=\"dl-menu-radio-item__indicator\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"dl-menu-item__radio-dot\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nexport type DropdownMenuLabelProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Label\n> & {\n inset?: boolean;\n};\n\n/**\n * Header label for grouping items in a dropdown menu.\n */\nexport const DropdownMenuLabel = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Label>,\n DropdownMenuLabelProps\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\"dl-menu-label\", inset && \"dl-menu-label--inset\", className)}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nexport type DropdownMenuSeparatorProps = React.ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Separator\n>;\n\n/**\n * Horizontal rule separating sections within a dropdown menu.\n */\nexport const DropdownMenuSeparator = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Separator>,\n DropdownMenuSeparatorProps\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"dl-menu-separator\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nexport type DropdownMenuShortcutProps = React.HTMLAttributes<HTMLSpanElement>;\n\n/**\n * Keyboard shortcut hint displayed at the trailing end of a menu item.\n */\nexport const DropdownMenuShortcut = ({\n className,\n ...props\n}: DropdownMenuShortcutProps) => {\n return <span className={cn(\"dl-menu-shortcut\", className)} {...props} />;\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n","import * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n Controller,\n FormProvider,\n useFormContext,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from \"react-hook-form\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Label } from \"@/components/label\";\n\n/**\n * Top-level form provider component wrapping react-hook-form.\n */\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue | null>(\n null,\n);\n\n/**\n * Controlled form field connecting input controls to form state.\n */\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\n/**\n * Custom hook to access current form field metadata, errors, and IDs.\n */\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState, formState } = useFormContext();\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\");\n }\n\n if (!itemContext) {\n throw new Error(\"useFormField should be used within <FormItem>\");\n }\n\n const fieldState = getFieldState(fieldContext.name, formState);\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue | null>(null);\n\n/**\n * Container wrapper for a single form item (label, input, description, error).\n */\nconst FormItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn(\"dl-form-item\", className)} {...props} />\n </FormItemContext.Provider>\n );\n});\nFormItem.displayName = \"FormItem\";\n\n/**\n * Accessible label component associated with the active form field.\n */\nconst FormLabel = React.forwardRef<\n React.ComponentRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n ref={ref}\n className={cn(error && \"dl-form-label--error\", className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n});\nFormLabel.displayName = \"FormLabel\";\n\n/**\n * Slot wrapper connecting input controls to aria attributes.\n */\nconst FormControl = React.forwardRef<\n React.ComponentRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n});\nFormControl.displayName = \"FormControl\";\n\n/**\n * Descriptive helper text displayed beneath a form field.\n */\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn(\"dl-form-desc\", className)}\n {...props}\n />\n );\n});\nFormDescription.displayName = \"FormDescription\";\n\n/**\n * Error message element displayed when field validation fails.\n */\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? \"\") : children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn(\"dl-form-error\", className)}\n {...props}\n >\n {body}\n </p>\n );\n});\nFormMessage.displayName = \"FormMessage\";\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n","import * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\nconst labelVariants = cva(\"dl-label\");\n\nexport interface LabelProps\n extends\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>,\n VariantProps<typeof labelVariants> {\n /**\n * If true, displays a red required asterisk indicator next to the label.\n * By default, required is false and no asterisk is rendered.\n * @default false\n */\n required?: boolean;\n}\n\n/**\n * Accessible label component associated with input controls, checkboxes, or form fields.\n * Built upon Radix UI Label primitive with design token typography and disabled styling.\n *\n * @example\n * ```tsx\n * // Associated with an Input via htmlFor\n * <Stack gap=\"2\">\n * <Label htmlFor=\"email\">Email address</Label>\n * <Input id=\"email\" type=\"email\" placeholder=\"name@company.com\" />\n * </Stack>\n * ```\n */\nconst Label = React.forwardRef<\n React.ComponentRef<typeof LabelPrimitive.Root>,\n LabelProps\n>(({ className, children, required = false, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n >\n {children}\n {required && <span className=\"dl-label-required\">*</span>}\n </LabelPrimitive.Root>\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label, labelVariants };\n","import * as React from \"react\";\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst HoverCard = HoverCardPrimitive.Root;\n\nconst HoverCardTrigger = HoverCardPrimitive.Trigger;\n\nconst HoverCardContent = React.forwardRef<\n React.ComponentRef<typeof HoverCardPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\"dl-hover-card\", className)}\n {...props}\n />\n));\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName;\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n /**\n * Optional leading icon or interactive element rendered before the input text.\n * Automatically indents the placeholder and text to avoid overlapping.\n */\n startIcon?: React.ReactNode;\n /**\n * Optional trailing icon or interactive element rendered after the input text.\n * Useful for clear buttons, visibility toggles, or status indicators.\n */\n endIcon?: React.ReactNode;\n}\n\n/**\n * Textual input control styled with design system tokens and scoped CSS.\n * Provides accessible focus states, logical padding, and seamless icon integration.\n *\n * @example\n * ```tsx\n * // Standard text input\n * <Input placeholder=\"Enter your email\" type=\"email\" />\n *\n * // Search box with built-in start icon\n * <Input\n * type=\"search\"\n * placeholder=\"Search agents...\"\n * startIcon={<Search />}\n * />\n *\n * // Password field with end visibility action\n * <Input\n * type={showPassword ? \"text\" : \"password\"}\n * placeholder=\"Password\"\n * endIcon={\n * <button type=\"button\" onClick={() => setShowPassword(!showPassword)}>\n * {showPassword ? <EyeOff /> : <Eye />}\n * </button>\n * }\n * />\n * ```\n */\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, startIcon, endIcon, ...props }, ref) => {\n const inputEl = (\n <input\n type={type}\n className={cn(\n \"dl-input\",\n startIcon && \"dl-input--has-start-icon\",\n endIcon && \"dl-input--has-end-icon\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n\n if (!startIcon && !endIcon) {\n return inputEl;\n }\n\n return (\n <div className=\"dl-input-wrapper\">\n {startIcon && (\n <span className=\"dl-input-icon dl-input-icon--start\">\n {startIcon}\n </span>\n )}\n {inputEl}\n {endIcon && (\n <span className=\"dl-input-icon dl-input-icon--end\">{endIcon}</span>\n )}\n </div>\n );\n },\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","import * as React from \"react\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport { Minus } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport type InputOTPProps = React.ComponentPropsWithoutRef<typeof OTPInput>;\n\n/**\n * Accessible One-Time Password (OTP) input component with pin slots and fake carets.\n * Built upon the `input-otp` primitive with scoped token styling.\n *\n * @example\n * ```tsx\n * <InputOTP maxLength={6} value={value} onChange={setValue}>\n * <InputOTPGroup>\n * <InputOTPSlot index={0} />\n * <InputOTPSlot index={1} />\n * <InputOTPSlot index={2} />\n * </InputOTPGroup>\n * <InputOTPSeparator />\n * <InputOTPGroup>\n * <InputOTPSlot index={3} />\n * <InputOTPSlot index={4} />\n * <InputOTPSlot index={5} />\n * </InputOTPGroup>\n * </InputOTP>\n * ```\n */\nconst InputOTP = React.forwardRef<\n React.ComponentRef<typeof OTPInput>,\n InputOTPProps\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\"dl-input-otp-container\", containerClassName)}\n className={cn(\"dl-input-otp\", className)}\n {...props}\n />\n));\nInputOTP.displayName = \"InputOTP\";\n\n/** Group container for bundling adjacent OTP slots. */\nconst InputOTPGroup = React.forwardRef<\n React.ComponentRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-input-otp-group\", className)} {...props} />\n));\nInputOTPGroup.displayName = \"InputOTPGroup\";\n\nexport interface InputOTPSlotProps extends React.ComponentPropsWithoutRef<\"div\"> {\n /** The zero-indexed position of this character slot. */\n index: number;\n}\n\n/** Individual digit/character slot displaying user input or an animated caret. */\nconst InputOTPSlot = React.forwardRef<\n React.ComponentRef<\"div\">,\n InputOTPSlotProps\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index] ?? {\n char: null,\n hasFakeCaret: false,\n isActive: false,\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n \"dl-input-otp-slot\",\n isActive && \"dl-input-otp-slot--active\",\n className,\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"dl-input-otp-caret\">\n <div className=\"dl-input-otp-caret__line\" />\n </div>\n )}\n </div>\n );\n});\nInputOTPSlot.displayName = \"InputOTPSlot\";\n\n/** Divider component between OTP groups. */\nconst InputOTPSeparator = React.forwardRef<\n React.ComponentRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Minus />\n </div>\n));\nInputOTPSeparator.displayName = \"InputOTPSeparator\";\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n","import * as React from \"react\";\nimport { ChevronUp, ChevronDown } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface InputNumberProps extends Omit<\n React.HTMLAttributes<HTMLDivElement>,\n \"onChange\" | \"defaultValue\" | \"prefix\"\n> {\n /** Numeric value in controlled mode */\n value?: number | null;\n /** Initial numeric value in uncontrolled mode */\n defaultValue?: number;\n /** Callback fired when numeric value changes */\n onChange?: (value: number | null) => void;\n /** Minimum permitted value */\n min?: number;\n /** Maximum permitted value */\n max?: number;\n /** Increment / decrement step size. Defaults to 1 */\n step?: number;\n /** Decimal places precision */\n precision?: number;\n /** Whether the control is non-interactive */\n disabled?: boolean;\n /** Whether to render vertical stepper controls. Defaults to true */\n controls?: boolean;\n /** Optional leading decorative element (e.g. $, #) */\n prefix?: React.ReactNode;\n /** Optional trailing unit label (e.g. px, ms, MB) */\n suffix?: React.ReactNode;\n /** Placeholder hint text */\n placeholder?: string;\n /** Accessible label */\n \"aria-label\"?: string;\n}\n\n/**\n * Precision numeric input control with accessible stepper buttons, min/max guards,\n * and keyboard arrow navigation.\n *\n * @example\n * ```tsx\n * <InputNumber min={1} max={100} step={5} defaultValue={20} suffix=\"ms\" />\n * ```\n */\nexport const InputNumber = React.forwardRef<HTMLDivElement, InputNumberProps>(\n (\n {\n className,\n value: propValue,\n defaultValue,\n onChange,\n min,\n max,\n step = 1,\n precision,\n disabled = false,\n controls = true,\n prefix,\n suffix,\n placeholder,\n \"aria-label\": ariaLabel,\n ...props\n },\n ref,\n ) => {\n const isControlled = propValue !== undefined;\n const [internalVal, setInternalVal] = React.useState<number | null>(\n defaultValue ?? null,\n );\n const currentValue = isControlled ? propValue : internalVal;\n\n const formatNumber = (num: number): number => {\n if (precision !== undefined) {\n return parseFloat(num.toFixed(precision));\n }\n return num;\n };\n\n const updateValue = (next: number | null) => {\n let resolved = next;\n if (resolved !== null) {\n if (min !== undefined && resolved < min) resolved = min;\n if (max !== undefined && resolved > max) resolved = max;\n resolved = formatNumber(resolved);\n }\n if (!isControlled) {\n setInternalVal(resolved);\n }\n onChange?.(resolved);\n };\n\n const handleStep = (direction: \"up\" | \"down\") => {\n if (disabled) return;\n const base = currentValue ?? (min !== undefined ? min : 0);\n const delta = direction === \"up\" ? step : -step;\n updateValue(base + delta);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (disabled) return;\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n handleStep(\"up\");\n } else if (e.key === \"ArrowDown\") {\n e.preventDefault();\n handleStep(\"down\");\n }\n };\n\n const isUpDisabled =\n disabled ||\n (max !== undefined &&\n currentValue !== null &&\n currentValue !== undefined &&\n currentValue >= max);\n const isDownDisabled =\n disabled ||\n (min !== undefined &&\n currentValue !== null &&\n currentValue !== undefined &&\n currentValue <= min);\n\n return (\n <div\n ref={ref}\n className={cn(\n \"dl-input-number\",\n disabled && \"dl-input-number--disabled\",\n className,\n )}\n {...props}\n >\n {prefix && <span className=\"dl-input-number__prefix\">{prefix}</span>}\n <input\n type=\"text\"\n inputMode=\"decimal\"\n role=\"spinbutton\"\n aria-label={ariaLabel}\n aria-valuenow={currentValue ?? undefined}\n aria-valuemin={min}\n aria-valuemax={max}\n disabled={disabled}\n placeholder={placeholder}\n value={\n currentValue !== null && currentValue !== undefined\n ? String(currentValue)\n : \"\"\n }\n onChange={(e) => {\n const raw = e.target.value.trim();\n if (raw === \"\") {\n updateValue(null);\n return;\n }\n const parsed = parseFloat(raw);\n if (!Number.isNaN(parsed)) {\n updateValue(parsed);\n }\n }}\n onKeyDown={handleKeyDown}\n className=\"dl-input-number__input\"\n />\n {suffix && <span className=\"dl-input-number__suffix\">{suffix}</span>}\n {controls && (\n <div className=\"dl-input-number__controls\">\n <button\n type=\"button\"\n tabIndex={-1}\n disabled={isUpDisabled}\n onClick={() => handleStep(\"up\")}\n aria-label=\"Increment value\"\n className=\"dl-input-number__btn dl-input-number__btn--up\"\n >\n <ChevronUp className=\"size-3\" />\n </button>\n <button\n type=\"button\"\n tabIndex={-1}\n disabled={isDownDisabled}\n onClick={() => handleStep(\"down\")}\n aria-label=\"Decrement value\"\n className=\"dl-input-number__btn dl-input-number__btn--down\"\n >\n <ChevronDown className=\"size-3\" />\n </button>\n </div>\n )}\n </div>\n );\n },\n);\n\nInputNumber.displayName = \"InputNumber\";\n","import * as React from \"react\";\nimport { Eye, EyeOff } from \"lucide-react\";\nimport { Input, type InputProps } from \"@/components/input\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface PasswordInputProps extends Omit<InputProps, \"type\"> {\n /**\n * Whether to display the interactive show/hide password toggle button.\n * @default true\n */\n showToggle?: boolean;\n}\n\n/**\n * Enterprise password input control with accessible show/hide toggle.\n * Built with design system tokens and Radix focus management.\n *\n * @example\n * ```tsx\n * <PasswordInput placeholder=\"Enter your credentials\" required />\n * ```\n */\nexport const PasswordInput = React.forwardRef<\n HTMLInputElement,\n PasswordInputProps\n>(({ className, showToggle = true, endIcon, ...props }, ref) => {\n const [showPassword, setShowPassword] = React.useState(false);\n\n const toggleButton = showToggle ? (\n <button\n type=\"button\"\n className=\"dl-password-toggle-btn\"\n onClick={() => setShowPassword((prev) => !prev)}\n aria-label={showPassword ? \"Hide password\" : \"Show password\"}\n aria-pressed={showPassword}\n tabIndex={-1}\n >\n {showPassword ? (\n <EyeOff className=\"size-4\" aria-hidden=\"true\" />\n ) : (\n <Eye className=\"size-4\" aria-hidden=\"true\" />\n )}\n </button>\n ) : null;\n\n return (\n <Input\n type={showPassword ? \"text\" : \"password\"}\n className={cn(\"dl-password-input\", className)}\n ref={ref}\n endIcon={toggleButton ?? endIcon}\n {...props}\n />\n );\n});\n\nPasswordInput.displayName = \"PasswordInput\";\n","import * as React from \"react\";\nimport { Search, X, Loader2 } from \"lucide-react\";\nimport { Input, type InputProps } from \"@/components/input\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface SearchInputProps extends InputProps {\n /**\n * Callback fired when the clear search button is clicked.\n */\n onClear?: () => void;\n /**\n * Whether to display an inline loading spinner indicating background filtering.\n * @default false\n */\n loading?: boolean;\n}\n\n/**\n * Standardized search input control with integrated search icon, clear button,\n * and loading indicator.\n *\n * @example\n * ```tsx\n * <SearchInput\n * value={search}\n * onChange={(e) => setSearch(e.target.value)}\n * onClear={() => setSearch(\"\")}\n * placeholder=\"Search applications...\"\n * />\n * ```\n */\nexport const SearchInput = React.forwardRef<HTMLInputElement, SearchInputProps>(\n (\n {\n className,\n value,\n onChange,\n onClear,\n loading = false,\n startIcon = <Search className=\"size-4\" aria-hidden=\"true\" />,\n endIcon,\n ...props\n },\n ref,\n ) => {\n const hasValue = Boolean(\n value !== undefined && value !== null && String(value).length > 0,\n );\n\n const clearButton =\n onClear && hasValue ? (\n <button\n type=\"button\"\n className=\"dl-search-clear-btn\"\n onClick={onClear}\n aria-label=\"Clear search query\"\n tabIndex={-1}\n >\n <X className=\"size-4\" aria-hidden=\"true\" />\n </button>\n ) : null;\n\n const trailingIcon = loading ? (\n <Loader2\n className=\"size-4 animate-spin text-muted-foreground\"\n aria-hidden=\"true\"\n />\n ) : (\n (clearButton ?? endIcon)\n );\n\n return (\n <Input\n type=\"search\"\n ref={ref}\n value={value}\n onChange={onChange}\n className={cn(\"dl-search-input\", className)}\n startIcon={startIcon}\n endIcon={trailingIcon}\n {...props}\n />\n );\n },\n);\n\nSearchInput.displayName = \"SearchInput\";\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface KbdProps extends React.HTMLAttributes<HTMLElement> {\n /** Visual presentation variant */\n variant?: \"default\" | \"outline\" | \"ghost\";\n /** Size variant */\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\n/**\n * Semantic keycap element used to display keyboard shortcuts and hotkeys.\n *\n * @example\n * ```tsx\n * <Kbd>⌘</Kbd>\n * <Kbd>K</Kbd>\n * ```\n */\nexport const Kbd = React.forwardRef<HTMLElement, KbdProps>(\n (\n { className, variant = \"default\", size = \"md\", children, ...props },\n ref,\n ) => {\n return (\n <kbd\n ref={ref}\n className={cn(\n \"dl-kbd\",\n `dl-kbd--${variant}`,\n `dl-kbd--${size}`,\n className,\n )}\n {...props}\n >\n {children}\n </kbd>\n );\n },\n);\n\nKbd.displayName = \"Kbd\";\n\nexport interface KbdGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Optional delimiter between keys, e.g. \"+\" or empty */\n separator?: React.ReactNode;\n}\n\n/**\n * Container grouping multiple keycaps into a hotkey combination sequence.\n *\n * @example\n * ```tsx\n * <KbdGroup>\n * <Kbd>⌘</Kbd>\n * <Kbd>⇧</Kbd>\n * <Kbd>P</Kbd>\n * </KbdGroup>\n * ```\n */\nexport const KbdGroup = React.forwardRef<HTMLDivElement, KbdGroupProps>(\n ({ className, separator, children, ...props }, ref) => {\n const items = React.Children.toArray(children);\n\n return (\n <div\n ref={ref}\n className={cn(\"dl-kbd-group\", className)}\n role=\"group\"\n aria-label=\"Keyboard shortcut\"\n {...props}\n >\n {items.map((item, idx) => (\n <React.Fragment key={idx}>\n {item}\n {separator && idx < items.length - 1 && (\n <span className=\"dl-kbd-separator\" aria-hidden=\"true\">\n {separator}\n </span>\n )}\n </React.Fragment>\n ))}\n </div>\n );\n },\n);\n\nKbdGroup.displayName = \"KbdGroup\";\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { Skeleton } from \"@/components/skeleton\";\n\nexport interface LoadingStateProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Number of skeleton placeholder rows to render (default: 3) */\n rows?: number;\n /** Optional message to display along with a spinner instead of skeleton rows */\n message?: string;\n}\n\n/**\n * Flexible loading indicator supporting both skeleton placeholder rows and spinner modes.\n *\n * @example\n * ```tsx\n * // Skeleton row placeholder\n * <LoadingState rows={4} />\n *\n * // Spinner with message\n * <LoadingState message=\"Fetching agent logs...\" />\n * ```\n */\nexport function LoadingState({\n rows = 3,\n message,\n className,\n ...props\n}: LoadingStateProps) {\n if (message) {\n return (\n <div className={cn(\"dl-loading\", className)} {...props}>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n <span>{message}</span>\n </div>\n );\n }\n\n return (\n <div className={cn(\"dl-loading-skeleton\", className)} {...props}>\n <Skeleton className=\"dl-loading-skeleton__header\" />\n <div className=\"dl-loading-skeleton__list\">\n {Array.from({ length: rows }).map((_, i) => (\n <Skeleton key={i} className=\"dl-loading-skeleton__row\" />\n ))}\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\";\nimport { ChevronRight } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Menu item wrapper component within a `Menubar`.\n */\nexport function MenubarMenu(\n props: React.ComponentProps<typeof MenubarPrimitive.Menu>,\n) {\n return <MenubarPrimitive.Menu {...props} />;\n}\n\n/**\n * Group wrapper within a `Menubar`.\n */\nexport function MenubarGroup(\n props: React.ComponentProps<typeof MenubarPrimitive.Group>,\n) {\n return <MenubarPrimitive.Group {...props} />;\n}\n\n/**\n * Portal wrapper rendering menubar popups to document body.\n */\nexport function MenubarPortal(\n props: React.ComponentProps<typeof MenubarPrimitive.Portal>,\n) {\n return <MenubarPrimitive.Portal {...props} />;\n}\n\n/**\n * Radio group wrapper within a `Menubar`.\n */\nexport function MenubarRadioGroup(\n props: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>,\n) {\n return <MenubarPrimitive.RadioGroup {...props} />;\n}\n\n/**\n * Submenu container within a `Menubar`.\n */\nexport function MenubarSub(\n props: React.ComponentProps<typeof MenubarPrimitive.Sub>,\n) {\n return <MenubarPrimitive.Sub data-slot=\"menubar-sub\" {...props} />;\n}\n\nexport type MenubarProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.Root\n>;\n\n/**\n * A persistent horizontal menu bar commonly used in desktop-style web applications.\n *\n * @example\n * ```tsx\n * <Menubar>\n * <MenubarMenu>\n * <MenubarTrigger>File</MenubarTrigger>\n * <MenubarContent>\n * <MenubarItem>New Tab <MenubarShortcut>⌘T</MenubarShortcut></MenubarItem>\n * <MenubarItem>New Window</MenubarItem>\n * <MenubarSeparator />\n * <MenubarItem>Exit</MenubarItem>\n * </MenubarContent>\n * </MenubarMenu>\n * </Menubar>\n * ```\n */\nexport const Menubar = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Root>,\n MenubarProps\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Root\n ref={ref}\n className={cn(\"dl-menubar\", className)}\n {...props}\n />\n));\nMenubar.displayName = MenubarPrimitive.Root.displayName;\n\nexport type MenubarTriggerProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.Trigger\n>;\n\n/**\n * The top-level menu button in the horizontal menubar row.\n */\nexport const MenubarTrigger = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Trigger>,\n MenubarTriggerProps\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Trigger\n ref={ref}\n className={cn(\"dl-menubar-trigger\", className)}\n {...props}\n />\n));\nMenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;\n\nexport type MenubarSubTriggerProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.SubTrigger\n> & {\n inset?: boolean;\n};\n\n/**\n * Trigger item for opening a nested submenu inside a Menubar.\n */\nexport const MenubarSubTrigger = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.SubTrigger>,\n MenubarSubTriggerProps\n>(({ className, inset, children, ...props }, ref) => (\n <MenubarPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"dl-menu-item dl-menu-sub-trigger\",\n inset && \"dl-menu-item--inset\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"dl-menu-item__chevron\" />\n </MenubarPrimitive.SubTrigger>\n));\nMenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;\n\nexport type MenubarSubContentProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.SubContent\n>;\n\n/**\n * Popover content rendered when a `MenubarSubTrigger` is expanded.\n */\nexport const MenubarSubContent = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.SubContent>,\n MenubarSubContentProps\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.SubContent\n ref={ref}\n className={cn(\"dl-menu-content\", className)}\n {...props}\n />\n));\nMenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;\n\nexport type MenubarContentProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.Content\n>;\n\n/**\n * Floating panel displaying items under a top-level `MenubarTrigger`.\n */\nexport const MenubarContent = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Content>,\n MenubarContentProps\n>(\n (\n { className, align = \"start\", alignOffset = -4, sideOffset = 8, ...props },\n ref,\n ) => (\n <MenubarPrimitive.Portal>\n <MenubarPrimitive.Content\n ref={ref}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\"dl-menu-content\", className)}\n {...props}\n />\n </MenubarPrimitive.Portal>\n ),\n);\nMenubarContent.displayName = MenubarPrimitive.Content.displayName;\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\";\nimport { Check, Circle } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type MenubarItemProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.Item\n> & {\n inset?: boolean;\n};\n\n/**\n * Selectable item within a Menubar menu.\n */\nexport const MenubarItem = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Item>,\n MenubarItemProps\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.Item\n ref={ref}\n className={cn(\"dl-menu-item\", inset && \"dl-menu-item--inset\", className)}\n {...props}\n />\n));\nMenubarItem.displayName = MenubarPrimitive.Item.displayName;\n\nexport type MenubarCheckboxItemProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.CheckboxItem\n>;\n\n/**\n * Checkbox item within a Menubar menu.\n */\nexport const MenubarCheckboxItem = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.CheckboxItem>,\n MenubarCheckboxItemProps\n>(({ className, children, checked, ...props }, ref) => (\n <MenubarPrimitive.CheckboxItem\n ref={ref}\n className={cn(\"dl-menu-item dl-menu-checkbox-item\", className)}\n checked={checked}\n {...props}\n >\n <span className=\"dl-menu-checkbox-item__indicator\">\n <MenubarPrimitive.ItemIndicator>\n <Check className=\"dl-menu-item__icon\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n));\nMenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;\n\nexport type MenubarRadioItemProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.RadioItem\n>;\n\n/**\n * Radio item within a Menubar menu.\n */\nexport const MenubarRadioItem = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.RadioItem>,\n MenubarRadioItemProps\n>(({ className, children, ...props }, ref) => (\n <MenubarPrimitive.RadioItem\n ref={ref}\n className={cn(\"dl-menu-item dl-menu-radio-item\", className)}\n {...props}\n >\n <span className=\"dl-menu-radio-item__indicator\">\n <MenubarPrimitive.ItemIndicator>\n <Circle className=\"dl-menu-item__radio-dot\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n));\nMenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;\n\nexport type MenubarLabelProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.Label\n> & {\n inset?: boolean;\n};\n\n/**\n * Header label within a Menubar menu.\n */\nexport const MenubarLabel = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Label>,\n MenubarLabelProps\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.Label\n ref={ref}\n className={cn(\"dl-menu-label\", inset && \"dl-menu-label--inset\", className)}\n {...props}\n />\n));\nMenubarLabel.displayName = MenubarPrimitive.Label.displayName;\n\nexport type MenubarSeparatorProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.Separator\n>;\n\n/**\n * Divider separating items within a Menubar menu.\n */\nexport const MenubarSeparator = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Separator>,\n MenubarSeparatorProps\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Separator\n ref={ref}\n className={cn(\"dl-menu-separator\", className)}\n {...props}\n />\n));\nMenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;\n\nexport type MenubarShortcutProps = React.HTMLAttributes<HTMLSpanElement>;\n\n/**\n * Visual shortcut indicator displayed at the trailing end of a Menubar item.\n */\nexport const MenubarShortcut = ({\n className,\n ...props\n}: MenubarShortcutProps) => {\n return <span className={cn(\"dl-menu-shortcut\", className)} {...props} />;\n};\nMenubarShortcut.displayName = \"MenubarShortcut\";\n","import * as React from \"react\";\nimport { Search, Check, ChevronDown, X } from \"lucide-react\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/popover\";\nimport { cn } from \"@/lib/utils\";\nimport { MultiSelectOption, MultiSelectProps } from \"./multi-select-types\";\n\nexport type { MultiSelectOption, MultiSelectProps };\n\n/**\n * MultiSelect component allowing users to filter, select, and manage multiple options\n * displayed as dismissible tags in the trigger.\n *\n * @example\n * ```tsx\n * <MultiSelect\n * options={[\n * { label: \"Engineering\", value: \"eng\" },\n * { label: \"Design\", value: \"design\" },\n * ]}\n * value={selectedDepts}\n * onChange={setSelectedDepts}\n * />\n * ```\n */\nexport function MultiSelect({\n options,\n value: propValue,\n defaultValue = [],\n onChange,\n placeholder = \"Select options...\",\n searchPlaceholder = \"Search options...\",\n maxCount = 3,\n showActions = true,\n disabled = false,\n className,\n id,\n}: MultiSelectProps) {\n const [open, setOpen] = React.useState(false);\n const [internalVal, setInternalVal] = React.useState<string[]>(defaultValue);\n const [search, setSearch] = React.useState(\"\");\n\n const isControlled = propValue !== undefined;\n const selectedValues = isControlled ? propValue : internalVal;\n\n const updateValues = (next: string[]) => {\n if (!isControlled) {\n setInternalVal(next);\n }\n onChange?.(next);\n };\n\n const handleToggle = (val: string) => {\n if (selectedValues.includes(val)) {\n updateValues(selectedValues.filter((v) => v !== val));\n } else {\n updateValues([...selectedValues, val]);\n }\n };\n\n const handleRemove = (e: React.MouseEvent, val: string) => {\n e.stopPropagation();\n if (disabled) return;\n updateValues(selectedValues.filter((v) => v !== val));\n };\n\n const handleSelectAll = () => {\n const selectable = options.filter((o) => !o.disabled).map((o) => o.value);\n updateValues(Array.from(new Set([...selectedValues, ...selectable])));\n };\n\n const handleClearAll = () => {\n updateValues([]);\n };\n\n const filtered = React.useMemo(() => {\n if (!search.trim()) return options;\n const query = search.toLowerCase();\n return options.filter((opt) => opt.label.toLowerCase().includes(query));\n }, [options, search]);\n\n const selectedOptions = React.useMemo(\n () => options.filter((o) => selectedValues.includes(o.value)),\n [options, selectedValues],\n );\n\n const visibleOptions = selectedOptions.slice(0, maxCount);\n const hiddenCount = selectedOptions.length - maxCount;\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <div\n id={id}\n role=\"combobox\"\n tabIndex={disabled ? -1 : 0}\n aria-expanded={open}\n aria-disabled={disabled}\n onClick={() => !disabled && setOpen(!open)}\n onKeyDown={(e) => {\n if (disabled) return;\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n setOpen(!open);\n }\n }}\n className={cn(\n \"dl-multi-select-trigger\",\n disabled && \"dl-multi-select-trigger--disabled\",\n className,\n )}\n >\n <div className=\"dl-multi-select-tags\">\n {selectedOptions.length === 0 ? (\n <span className=\"dl-multi-select-placeholder\">{placeholder}</span>\n ) : (\n <>\n {visibleOptions.map((opt) => (\n <span key={opt.value} className=\"dl-multi-select-chip\">\n {opt.icon}\n <span className=\"dl-multi-select-chip__text\">\n {opt.label}\n </span>\n <button\n type=\"button\"\n tabIndex={-1}\n onClick={(e) => handleRemove(e, opt.value)}\n aria-label={`Remove ${opt.label}`}\n className=\"dl-multi-select-chip__remove\"\n >\n <X className=\"size-3\" />\n </button>\n </span>\n ))}\n {hiddenCount > 0 && (\n <span className=\"dl-multi-select-chip\">\n +{hiddenCount} more\n </span>\n )}\n </>\n )}\n </div>\n <ChevronDown className=\"size-4 shrink-0 text-muted-foreground\" />\n </div>\n </PopoverTrigger>\n <PopoverContent align=\"start\" className=\"dl-multi-select-content\">\n <div className=\"dl-multi-select-search\">\n <Search className=\"dl-multi-select-search-icon\" />\n <input\n type=\"text\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n placeholder={searchPlaceholder}\n className=\"dl-multi-select-search-input\"\n autoFocus\n />\n </div>\n\n {showActions && (\n <div className=\"dl-multi-select-actions\">\n <span>{selectedValues.length} selected</span>\n <div className=\"flex gap-2\">\n <button\n type=\"button\"\n onClick={handleSelectAll}\n className=\"dl-multi-select-action-btn\"\n >\n Select all\n </button>\n {selectedValues.length > 0 && (\n <button\n type=\"button\"\n onClick={handleClearAll}\n className=\"dl-multi-select-action-btn\"\n >\n Clear\n </button>\n )}\n </div>\n </div>\n )}\n\n <div\n className=\"dl-multi-select-list\"\n role=\"listbox\"\n aria-multiselectable=\"true\"\n >\n {filtered.length === 0 ? (\n <div className=\"dl-multi-select-empty\">No options found.</div>\n ) : (\n filtered.map((opt) => {\n const isSelected = selectedValues.includes(opt.value);\n return (\n <div\n key={opt.value}\n role=\"option\"\n aria-selected={isSelected}\n aria-disabled={opt.disabled}\n onClick={() => !opt.disabled && handleToggle(opt.value)}\n className={cn(\n \"dl-multi-select-item\",\n isSelected && \"dl-multi-select-item--selected\",\n opt.disabled && \"dl-multi-select-item--disabled\",\n )}\n >\n <span className=\"dl-multi-select-checkbox\">\n {isSelected && <Check className=\"size-3 stroke-[3]\" />}\n </span>\n {opt.icon}\n <span className=\"flex-1 truncate\">{opt.label}</span>\n </div>\n );\n })\n )}\n </div>\n </PopoverContent>\n </Popover>\n );\n}\n","import * as React from \"react\";\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\nimport { cva } from \"class-variance-authority\";\nimport { ChevronDown } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport type NavigationMenuProps = React.ComponentPropsWithoutRef<\n typeof NavigationMenuPrimitive.Root\n>;\n\n/**\n * Responsive navigation menu with animated indicator and dropdown content panels.\n *\n * @example\n * ```tsx\n * <NavigationMenu>\n * <NavigationMenuList>\n * <NavigationMenuItem>\n * <NavigationMenuTrigger>Getting Started</NavigationMenuTrigger>\n * <NavigationMenuContent>\n * <ul>\n * <li><a href=\"/intro\">Introduction</a></li>\n * <li><a href=\"/install\">Installation</a></li>\n * </ul>\n * </NavigationMenuContent>\n * </NavigationMenuItem>\n * <NavigationMenuItem>\n * <NavigationMenuLink href=\"/docs\">Documentation</NavigationMenuLink>\n * </NavigationMenuItem>\n * </NavigationMenuList>\n * </NavigationMenu>\n * ```\n */\nconst NavigationMenu = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Root>,\n NavigationMenuProps\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn(\"dl-navigation-menu\", className)}\n {...props}\n >\n {children}\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Root>\n));\nNavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;\n\nexport type NavigationMenuListProps = React.ComponentPropsWithoutRef<\n typeof NavigationMenuPrimitive.List\n>;\n\n/**\n * List container (`<ul>`) holding top-level navigation menu items.\n */\nconst NavigationMenuList = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.List>,\n NavigationMenuListProps\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn(\"dl-navigation-menu-list\", className)}\n {...props}\n />\n));\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;\n\n/**\n * Individual navigation menu item wrapper (`<li>`).\n */\nconst NavigationMenuItem = NavigationMenuPrimitive.Item;\n\nconst navigationMenuTriggerStyle = cva(\"dl-navigation-menu-trigger\");\n\nexport type NavigationMenuTriggerProps = React.ComponentPropsWithoutRef<\n typeof NavigationMenuPrimitive.Trigger\n>;\n\n/**\n * Trigger button that reveals submenu content for a navigation item.\n */\nconst NavigationMenuTrigger = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Trigger>,\n NavigationMenuTriggerProps\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDown className=\"dl-navigation-menu-chevron\" aria-hidden=\"true\" />\n </NavigationMenuPrimitive.Trigger>\n));\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;\n\nexport type NavigationMenuContentProps = React.ComponentPropsWithoutRef<\n typeof NavigationMenuPrimitive.Content\n>;\n\n/**\n * Dropdown panel content associated with a `NavigationMenuTrigger`.\n */\nconst NavigationMenuContent = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Content>,\n NavigationMenuContentProps\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\"dl-navigation-menu-content\", className)}\n {...props}\n />\n));\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;\n\n/**\n * Navigational link rendered within a navigation menu.\n */\nconst NavigationMenuLink = NavigationMenuPrimitive.Link;\n\nexport type NavigationMenuViewportProps = React.ComponentPropsWithoutRef<\n typeof NavigationMenuPrimitive.Viewport\n>;\n\n/**\n * Animated viewport container where active menu dropdown content is positioned.\n */\nconst NavigationMenuViewport = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Viewport>,\n NavigationMenuViewportProps\n>(({ className, ...props }, ref) => (\n <div className=\"dl-navigation-menu-viewport-wrapper\">\n <NavigationMenuPrimitive.Viewport\n className={cn(\"dl-navigation-menu-viewport\", className)}\n ref={ref}\n {...props}\n />\n </div>\n));\nNavigationMenuViewport.displayName =\n NavigationMenuPrimitive.Viewport.displayName;\n\nexport type NavigationMenuIndicatorProps = React.ComponentPropsWithoutRef<\n typeof NavigationMenuPrimitive.Indicator\n>;\n\n/**\n * Indicator arrow pointing to the currently active navigation trigger.\n */\nconst NavigationMenuIndicator = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Indicator>,\n NavigationMenuIndicatorProps\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\"dl-navigation-menu-indicator\", className)}\n {...props}\n >\n <div className=\"dl-navigation-menu-indicator__arrow\" />\n </NavigationMenuPrimitive.Indicator>\n));\nNavigationMenuIndicator.displayName =\n NavigationMenuPrimitive.Indicator.displayName;\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n};\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface PanelProps extends React.HTMLAttributes<HTMLElement> {\n /** Optional header title for the panel section */\n title?: string;\n /** Optional metadata node displayed adjacent to the title (e.g. status badge or actions) */\n meta?: React.ReactNode;\n}\n\n/**\n * Panel container component for structured dashboard sections, sidebars, and grouped content.\n *\n * @example\n * ```tsx\n * <Panel title=\"Agent Metrics\" meta={<Badge>Active</Badge>}>\n * <p>Real-time execution analytics.</p>\n * </Panel>\n * ```\n */\nexport const Panel = React.forwardRef<HTMLElement, PanelProps>(\n ({ title, meta, children, className, ...props }, ref) => {\n return (\n <section ref={ref} className={cn(\"dl-panel\", className)} {...props}>\n {title ? (\n <div className=\"dl-panel__header\">\n <h2 className=\"dl-panel__title\">{title}</h2>\n {meta ? <div className=\"dl-panel__meta\">{meta}</div> : null}\n </div>\n ) : null}\n {children}\n </section>\n );\n },\n);\nPanel.displayName = \"Panel\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\";\nimport { cn } from \"@/lib/utils\";\n\nexport type ProgressProps = React.ComponentPropsWithoutRef<\n typeof ProgressPrimitive.Root\n>;\n\n/**\n * Progress indicator component for displaying task completion or loading state.\n *\n * @example\n * ```tsx\n * <Progress value={65} className=\"w-[60%]\" />\n * ```\n */\nconst Progress = React.forwardRef<\n React.ComponentRef<typeof ProgressPrimitive.Root>,\n ProgressProps\n>(({ className, value, ...props }, ref) => (\n <ProgressPrimitive.Root\n ref={ref}\n className={cn(\"dl-progress\", className)}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className=\"dl-progress__indicator\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n));\nProgress.displayName = ProgressPrimitive.Root.displayName;\n\nexport { Progress };\n","import * as React from \"react\";\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { Circle } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type RadioGroupProps = React.ComponentPropsWithoutRef<\n typeof RadioGroupPrimitive.Root\n>;\n\n/**\n * RadioGroup container component managing a set of mutually exclusive radio options.\n * Built upon Radix UI RadioGroup with pure scoped CSS.\n *\n * @example\n * ```tsx\n * <RadioGroup defaultValue=\"monthly\" onValueChange={setBillingCycle}>\n * <Flex align=\"center\" gap=\"2\">\n * <RadioGroupItem value=\"monthly\" id=\"r1\" />\n * <Label htmlFor=\"r1\">Monthly Billing</Label>\n * </Flex>\n * <Flex align=\"center\" gap=\"2\">\n * <RadioGroupItem value=\"annual\" id=\"r2\" />\n * <Label htmlFor=\"r2\">Annual Billing (Save 20%)</Label>\n * </Flex>\n * </RadioGroup>\n * ```\n */\nconst RadioGroup = React.forwardRef<\n React.ComponentRef<typeof RadioGroupPrimitive.Root>,\n RadioGroupProps\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"dl-radio-group\", className)}\n {...props}\n ref={ref}\n />\n );\n});\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;\n\nexport type RadioGroupItemProps = React.ComponentPropsWithoutRef<\n typeof RadioGroupPrimitive.Item\n>;\n\n/**\n * Individual radio option item within a RadioGroup.\n */\nconst RadioGroupItem = React.forwardRef<\n React.ComponentRef<typeof RadioGroupPrimitive.Item>,\n RadioGroupItemProps\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\"dl-radio-item\", className)}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"dl-radio-item__indicator\">\n <Circle aria-hidden=\"true\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n});\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;\n\nexport { RadioGroup, RadioGroupItem };\n","import * as React from \"react\";\nimport { GripVertical } from \"lucide-react\";\nimport { Group, Panel, Separator } from \"react-resizable-panels\";\n\nimport { cn } from \"@/lib/utils\";\n\nexport type ResizablePanelGroupProps = React.ComponentProps<typeof Group>;\n\n/**\n * Container component managing resizable panel layouts.\n *\n * @example\n * ```tsx\n * <ResizablePanelGroup orientation=\"horizontal\">\n * <ResizablePanel defaultSize={50}>Left Content</ResizablePanel>\n * <ResizableHandle withHandle />\n * <ResizablePanel defaultSize={50}>Right Content</ResizablePanel>\n * </ResizablePanelGroup>\n * ```\n */\nconst ResizablePanelGroup = ({\n className,\n ...props\n}: ResizablePanelGroupProps) => (\n <Group className={cn(\"dl-resizable-group\", className)} {...props} />\n);\n\nexport type ResizablePanelProps = React.ComponentProps<typeof Panel>;\n\n/**\n * Individual resizable panel section within a `ResizablePanelGroup`.\n */\nconst ResizablePanel = Panel;\n\nexport type ResizableHandleProps = React.ComponentProps<typeof Separator> & {\n /** Renders a visual draggable grip icon inside the handle */\n withHandle?: boolean;\n};\n\n/**\n * Drag handle divider placed between resizable panels.\n */\nconst ResizableHandle = ({\n withHandle,\n className,\n ...props\n}: ResizableHandleProps) => (\n <Separator className={cn(\"dl-resizable-handle\", className)} {...props}>\n {withHandle && (\n <div className=\"dl-resizable-grip\">\n <GripVertical />\n </div>\n )}\n </Separator>\n);\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\n","import * as React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\nimport { cn } from \"@/lib/utils\";\n\nexport type ScrollAreaProps = React.ComponentPropsWithoutRef<\n typeof ScrollAreaPrimitive.Root\n>;\n\n/**\n * Custom scrollable area component with styled cross-browser scrollbars.\n *\n * @example\n * ```tsx\n * <ScrollArea>\n * <Box p=\"4\">\n * {items.map((item) => (\n * <div key={item.id}>{item.name}</div>\n * ))}\n * </Box>\n * </ScrollArea>\n * ```\n */\nconst ScrollArea = React.forwardRef<\n React.ComponentRef<typeof ScrollAreaPrimitive.Root>,\n ScrollAreaProps\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"dl-scroll-area\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"dl-scroll-area__viewport\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n));\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nexport type ScrollBarProps = React.ComponentPropsWithoutRef<\n typeof ScrollAreaPrimitive.ScrollAreaScrollbar\n>;\n\n/**\n * ScrollBar track and thumb component supporting vertical and horizontal orientations.\n */\nconst ScrollBar = React.forwardRef<\n React.ComponentRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n ScrollBarProps\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\"dl-scroll-area__bar\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"dl-scroll-area__thumb\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n","import * as React from \"react\";\nimport { Search, Plus, Check, ChevronDown } from \"lucide-react\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/popover\";\nimport { Input } from \"@/components/input\";\nimport { Button } from \"@/components/button\";\nimport { cn } from \"@/lib/utils\";\nimport {\n SearchableSelectOption,\n SearchableSelectProps,\n} from \"./searchable-select-types\";\nimport { useSearchableSelect } from \"./use-searchable-select\";\n\nexport type { SearchableSelectOption, SearchableSelectProps };\n\n/**\n * Searchable select component with live filtering, keyboard navigation, option grouping,\n * and optional creation of new entries.\n *\n * @example\n * ```tsx\n * <SearchableSelect\n * options={[\n * { label: \"Claude 3.5 Sonnet\", value: \"anthropic/claude-3-5-sonnet\" },\n * { label: \"GPT-4o\", value: \"openai/gpt-4o\" },\n * ]}\n * value={selectedModel}\n * onChange={setSelectedModel}\n * placeholder=\"Choose model...\"\n * />\n * ```\n */\nexport function SearchableSelect({\n options,\n value,\n onChange,\n placeholder = \"Select an option...\",\n searchPlaceholder = \"Search...\",\n onAddNew,\n addNewLabel = \"Add new\",\n disabled = false,\n className,\n id,\n}: SearchableSelectProps) {\n const {\n open,\n search,\n highlightedIndex,\n setHighlightedIndex,\n listRef,\n selectedOption,\n filteredOptions,\n groupedOptions,\n handleOpenChange,\n handleSearchChange,\n handleSelect,\n handleAddNew,\n handleKeyDown,\n } = useSearchableSelect({ options, value, onChange, onAddNew });\n\n let currentIndex = 0;\n return (\n <Popover open={open} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <Button\n id={id}\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n onKeyDown={handleKeyDown}\n className={cn(\n \"dl-searchable-select-trigger\",\n !selectedOption && \"dl-searchable-select-trigger--placeholder\",\n className,\n )}\n >\n <span className=\"dl-searchable-select-truncate\">\n {selectedOption ? selectedOption.label : placeholder}\n </span>\n <ChevronDown className=\"dl-select-icon\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n align=\"start\"\n className=\"dl-searchable-select-content\"\n onKeyDown={handleKeyDown}\n >\n <div className=\"dl-searchable-select-search\">\n <Search className=\"dl-searchable-select-search-icon\" />\n <Input\n placeholder={searchPlaceholder}\n value={search}\n onChange={(e) => handleSearchChange(e.target.value)}\n className=\"dl-searchable-select-search-input\"\n autoFocus\n />\n </div>\n\n <div\n ref={listRef}\n onWheel={(e) => e.stopPropagation()}\n className=\"dl-searchable-select-list\"\n >\n {Object.keys(groupedOptions).length === 0 ||\n (filteredOptions.length === 0 && !onAddNew) ? (\n <div className=\"dl-searchable-select-empty\">\n No matching options found.\n </div>\n ) : (\n Object.entries(groupedOptions).map(([groupName, groupOpts]) => (\n <div key={groupName} className=\"dl-searchable-select-group\">\n {groupName !== \"Default\" && (\n <div className=\"dl-searchable-select-group-header\">\n {groupName}\n </div>\n )}\n {groupOpts.map((option) => {\n const isSelected = option.value === value;\n const itemIndex = currentIndex++;\n const isHighlighted = itemIndex === highlightedIndex;\n\n return (\n <div\n key={option.value}\n data-highlighted={isHighlighted}\n onClick={() => handleSelect(option.value)}\n onMouseEnter={() => setHighlightedIndex(itemIndex)}\n className={cn(\n \"dl-searchable-select-item\",\n isHighlighted &&\n \"dl-searchable-select-item--highlighted\",\n isSelected &&\n !isHighlighted &&\n \"dl-searchable-select-item--selected\",\n )}\n >\n <span className=\"dl-searchable-select-item-text\">\n {option.label}\n </span>\n {isSelected && <Check className=\"dl-select-check\" />}\n </div>\n );\n })}\n </div>\n ))\n )}\n </div>\n\n {onAddNew && (\n <div className=\"dl-searchable-select-add\">\n <button\n type=\"button\"\n onClick={handleAddNew}\n className=\"dl-searchable-select-add-btn\"\n >\n <Plus className=\"dl-searchable-select-add-icon\" />\n <span className=\"dl-searchable-select-truncate\">\n {search.trim()\n ? `${addNewLabel} \"${search.trim()}\"`\n : addNewLabel}\n </span>\n </button>\n </div>\n )}\n </PopoverContent>\n </Popover>\n );\n}\n","import * as React from \"react\";\nimport {\n SearchableSelectOption,\n SearchableSelectProps,\n} from \"./searchable-select-types\";\n\n/**\n * Encapsulates filtering, keyboard navigation, and grouping state for `SearchableSelect`.\n */\nexport function useSearchableSelect({\n options,\n value,\n onChange,\n onAddNew,\n}: Pick<SearchableSelectProps, \"options\" | \"value\" | \"onChange\" | \"onAddNew\">) {\n const [open, setOpen] = React.useState(false);\n const [search, setSearch] = React.useState(\"\");\n const [highlightedIndex, setHighlightedIndex] = React.useState<number>(0);\n const listRef = React.useRef<HTMLDivElement>(null);\n\n const selectedOption = React.useMemo(() => {\n return options.find((opt) => opt.value === value);\n }, [options, value]);\n\n const filteredOptions = React.useMemo(() => {\n if (!search.trim()) return options;\n const q = search.toLowerCase();\n return options.filter(\n (opt) =>\n opt.label.toLowerCase().includes(q) ||\n (opt.group && opt.group.toLowerCase().includes(q)),\n );\n }, [options, search]);\n\n const handleOpenChange = (newOpen: boolean) => {\n setOpen(newOpen);\n if (newOpen) {\n const idx = filteredOptions.findIndex((opt) => opt.value === value);\n setHighlightedIndex(idx >= 0 ? idx : 0);\n } else {\n setSearch(\"\");\n }\n };\n\n const handleSearchChange = (q: string) => {\n setSearch(q);\n setHighlightedIndex(0);\n };\n\n React.useEffect(() => {\n if (open && listRef.current) {\n const activeEl = listRef.current.querySelector<HTMLElement>(\n \"[data-highlighted='true']\",\n );\n if (activeEl) {\n activeEl.scrollIntoView({ block: \"nearest\" });\n }\n }\n }, [highlightedIndex, open]);\n\n const groupedOptions = React.useMemo(() => {\n const hasGroups = filteredOptions.some((opt) => opt.group);\n if (!hasGroups) return { Default: filteredOptions };\n\n return filteredOptions.reduce<Record<string, SearchableSelectOption[]>>(\n (acc, opt) => {\n const g = opt.group || \"Other\";\n if (!acc[g]) acc[g] = [];\n acc[g].push(opt);\n return acc;\n },\n {},\n );\n }, [filteredOptions]);\n\n const handleSelect = (val: string) => {\n onChange?.(val);\n setOpen(false);\n setSearch(\"\");\n };\n\n const handleAddNew = () => {\n onAddNew?.(search.trim());\n setOpen(false);\n setSearch(\"\");\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (!open) {\n if (e.key === \"ArrowDown\" || e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n handleOpenChange(true);\n }\n return;\n }\n\n switch (e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n setHighlightedIndex((p) =>\n p < filteredOptions.length - 1 ? p + 1 : p,\n );\n break;\n case \"ArrowUp\":\n e.preventDefault();\n setHighlightedIndex((p) => (p > 0 ? p - 1 : 0));\n break;\n case \"Enter\":\n e.preventDefault();\n if (filteredOptions.length > 0 && filteredOptions[highlightedIndex]) {\n handleSelect(filteredOptions[highlightedIndex].value);\n } else if (onAddNew && search.trim()) {\n handleAddNew();\n }\n break;\n case \"Escape\":\n case \"Tab\":\n e.preventDefault();\n handleOpenChange(false);\n break;\n }\n };\n\n return {\n open,\n search,\n highlightedIndex,\n setHighlightedIndex,\n listRef,\n selectedOption,\n filteredOptions,\n groupedOptions,\n handleOpenChange,\n handleSearchChange,\n handleSelect,\n handleAddNew,\n handleKeyDown,\n };\n}\n","\"use client\";\nimport * as React from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Root container for accessible custom dropdown selection. Built on Radix UI Select.\n *\n * @example\n * ```tsx\n * <Select value={country} onValueChange={setCountry}>\n * <SelectTrigger className=\"w-[180px]\">\n * <SelectValue placeholder=\"Select country\" />\n * </SelectTrigger>\n * <SelectContent>\n * <SelectItem value=\"us\">United States</SelectItem>\n * <SelectItem value=\"de\">Germany</SelectItem>\n * <SelectItem value=\"jp\">Japan</SelectItem>\n * </SelectContent>\n * </Select>\n * ```\n */\nconst Select = SelectPrimitive.Root;\n\n/** Groups related items within a Select dropdown menu. */\nconst SelectGroup = SelectPrimitive.Group;\n\n/** Displays the currently selected value or a fallback placeholder. */\nconst SelectValue = SelectPrimitive.Value;\n\nexport type SelectTriggerProps = React.ComponentPropsWithoutRef<\n typeof SelectPrimitive.Trigger\n>;\n\n/**\n * Interactive button that toggles the Select dropdown menu open and closed.\n */\nconst SelectTrigger = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Trigger>,\n SelectTriggerProps\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\"dl-select-trigger\", className)}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\"dl-select-scroll-btn\", className)}\n {...props}\n >\n <ChevronUp />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\"dl-select-scroll-btn\", className)}\n {...props}\n >\n <ChevronDown />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nexport type SelectContentProps = React.ComponentPropsWithoutRef<\n typeof SelectPrimitive.Content\n>;\n\n/**\n * Dropdown popover containing list items, groups, and labels.\n */\nconst SelectContent = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Content>,\n SelectContentProps\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\"dl-select-content\", className)}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport className=\"dl-select-viewport\">\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\n/** Header label for grouping items in a Select dropdown. */\nconst SelectLabel = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"dl-select-label\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nexport type SelectItemProps = React.ComponentPropsWithoutRef<\n typeof SelectPrimitive.Item\n>;\n\n/**\n * Individual selectable option inside a Select menu.\n */\nconst SelectItem = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Item>,\n SelectItemProps\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\"dl-select-item\", className)}\n {...props}\n >\n <span className=\"dl-select-item__indicator\">\n <SelectPrimitive.ItemIndicator>\n <Check />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\n/** Visual separator dividing groups or sections in a Select menu. */\nconst SelectSeparator = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"dl-select-separator\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n};\n","import * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport { cn } from \"@/lib/utils\";\n\nexport type SeparatorProps = React.ComponentPropsWithoutRef<\n typeof SeparatorPrimitive.Root\n>;\n\n/**\n * Visual or semantic divider between elements, supporting horizontal and vertical orientations.\n *\n * @example\n * ```tsx\n * <div>\n * <h4>Primitives</h4>\n * <p>An enterprise UI component library.</p>\n * <Separator />\n * <Flex align=\"center\" gap=\"4\">\n * <div>Blog</div>\n * <Separator orientation=\"vertical\" />\n * <div>Docs</div>\n * </Flex>\n * </div>\n * ```\n */\nconst Separator = React.forwardRef<\n React.ComponentRef<typeof SeparatorPrimitive.Root>,\n SeparatorProps\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref,\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\"dl-separator\", className)}\n {...props}\n />\n ),\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Root Sheet component for displaying slide-over drawers (left, right, top, bottom).\n * Built upon Radix UI Dialog with smooth CSS transitions.\n *\n * @example\n * ```tsx\n * <Sheet open={isOpen} onOpenChange={setIsOpen}>\n * <SheetTrigger asChild>\n * <Button variant=\"outline\">Open Menu</Button>\n * </SheetTrigger>\n * <SheetContent side=\"right\">\n * <SheetHeader>\n * <SheetTitle>Navigation Menu</SheetTitle>\n * <SheetDescription>Explore workspace features.</SheetDescription>\n * </SheetHeader>\n * <Box py=\"4\">Sheet navigation links...</Box>\n * </SheetContent>\n * </Sheet>\n * ```\n */\nconst Sheet = SheetPrimitive.Root;\n\n/** Interactive trigger element that opens the slide-over sheet drawer. */\nconst SheetTrigger = SheetPrimitive.Trigger;\n\n/** Interactive button that closes the open sheet. */\nconst SheetClose = SheetPrimitive.Close;\n\n/** Portals sheet content to the end of document.body for clean stacking context. */\nconst SheetPortal = SheetPrimitive.Portal;\n\nexport type SheetOverlayProps = React.ComponentPropsWithoutRef<\n typeof SheetPrimitive.Overlay\n>;\n\n/** Semi-transparent backdrop overlay rendered beneath the sliding sheet. */\nconst SheetOverlay = React.forwardRef<\n React.ComponentRef<typeof SheetPrimitive.Overlay>,\n SheetOverlayProps\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\"dl-dialog-overlay\", className)}\n {...props}\n ref={ref}\n />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\n/**\n * Sheet layout variants for top, bottom, left, and right side drawers.\n */\nconst sheetVariants = cva(\"dl-sheet-content\", {\n variants: {\n side: {\n top: \"dl-sheet-content--top\",\n bottom: \"dl-sheet-content--bottom\",\n left: \"dl-sheet-content--left\",\n right: \"dl-sheet-content--right\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n});\n\nexport interface SheetContentProps\n extends\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\n/** Content panel of the side sheet drawer. */\nconst SheetContent = React.forwardRef<\n React.ComponentRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n data-side={side}\n {...props}\n >\n <SheetPrimitive.Close className=\"dl-sheet-close\">\n <X />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n));\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\n/** Header section containing sheet title and description. */\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-sheet__header\", className)} {...props} />\n);\nSheetHeader.displayName = \"SheetHeader\";\n\n/** Footer section containing sheet action buttons. */\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"dl-sheet__footer\", className)} {...props} />\n);\nSheetFooter.displayName = \"SheetFooter\";\n\n/** Accessible heading title for the sheet panel. */\nconst SheetTitle = React.forwardRef<\n React.ComponentRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"dl-sheet__title\", className)}\n {...props}\n />\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\n/** Accessible explanatory text for the sheet panel. */\nconst SheetDescription = React.forwardRef<\n React.ComponentRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"dl-sheet__desc\", className)}\n {...props}\n />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n sheetVariants,\n};\n","import * as React from \"react\";\nimport { useIsMobile } from \"@/hooks/use-mobile\";\nimport { cn } from \"@/lib/utils\";\nimport { TooltipProvider } from \"@/components/tooltip\";\n\nexport const SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nexport const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nexport const SIDEBAR_WIDTH = \"16rem\";\nexport const SIDEBAR_WIDTH_MOBILE = \"18rem\";\nexport const SIDEBAR_WIDTH_ICON = \"3rem\";\nexport const SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\n/**\n * Shape of the context provided by `SidebarProvider`.\n */\nexport type 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\nexport const SidebarContext = React.createContext<SidebarContextProps | null>(\n null,\n);\n\n/**\n * Hook to access the parent Sidebar context state and controls.\n *\n * @throws Error if used outside of `SidebarProvider`.\n */\nexport function useSidebar(): SidebarContextProps {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n return context;\n}\n\n/**\n * Props for `SidebarProvider`.\n */\nexport type SidebarProviderProps = React.ComponentProps<\"div\"> & {\n /** Initial open state in uncontrolled mode (default: true) */\n defaultOpen?: boolean;\n /** Controlled open state */\n open?: boolean;\n /** Callback fired when open state changes */\n onOpenChange?: (open: boolean) => void;\n};\n\n/**\n * Top-level provider orchestrating sidebar state, responsive breakpoints, and keyboard shortcuts (Cmd+B / Ctrl+B).\n *\n * @example\n * ```tsx\n * <SidebarProvider>\n * <Sidebar>...</Sidebar>\n * <SidebarInset>...</SidebarInset>\n * </SidebarProvider>\n * ```\n */\nexport const SidebarProvider = React.forwardRef<\n HTMLDivElement,\n SidebarProviderProps\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref,\n ) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\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 document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n const toggleSidebar = React.useCallback(() => {\n return isMobile\n ? setOpenMobile((prev) => !prev)\n : setOpen((prev) => !prev);\n }, [isMobile, setOpen, setOpenMobile]);\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n 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 [\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n ],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\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(\"dl-sidebar-wrapper\", className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n },\n);\nSidebarProvider.displayName = \"SidebarProvider\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"@/lib/utils\";\n\n/** Global provider setting delay duration and hover behavior for all child Tooltips. */\nconst TooltipProvider = TooltipPrimitive.Provider;\n\n/**\n * Root container for accessible hover/focus contextual tooltips.\n * Built upon Radix UI Tooltip.\n *\n * @example\n * ```tsx\n * <TooltipProvider>\n * <Tooltip>\n * <TooltipTrigger asChild>\n * <Button variant=\"ghost\" size=\"icon\">\n * <Info />\n * </Button>\n * </TooltipTrigger>\n * <TooltipContent side=\"top\">\n * <p>Display telemetry details</p>\n * </TooltipContent>\n * </Tooltip>\n * </TooltipProvider>\n * ```\n */\nconst Tooltip = TooltipPrimitive.Root;\n\n/** Trigger element that displays the tooltip on hover or keyboard focus. */\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nexport type TooltipContentProps = React.ComponentPropsWithoutRef<\n typeof TooltipPrimitive.Content\n>;\n\n/**\n * Floating tooltip content element styled with scoped `dl-tooltip` CSS tokens.\n */\nconst TooltipContent = React.forwardRef<\n React.ComponentRef<typeof TooltipPrimitive.Content>,\n TooltipContentProps\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\"dl-tooltip\", className)}\n {...props}\n />\n </TooltipPrimitive.Portal>\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"@/components/sheet\";\nimport { SIDEBAR_WIDTH_MOBILE, useSidebar } from \"./sidebar-context\";\n\n/** Props for `Sidebar`. */\nexport type SidebarProps = React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n};\n\n/**\n * Main collapsible navigation sidebar supporting floating, inset, desktop, and mobile sheet views.\n */\nexport const Sidebar = React.forwardRef<HTMLDivElement, SidebarProps>(\n (\n {\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <div\n className={cn(\"dl-sidebar dl-sidebar--static\", className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"dl-sidebar-mobile [&>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=\"dl-sidebar-mobile-content\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"dl-sidebar\", className)}\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n <div className=\"dl-sidebar-desktop-spacer\" />\n <div className=\"dl-sidebar-fixed\" {...props}>\n <div data-sidebar=\"sidebar\" className=\"dl-sidebar-inner\">\n {children}\n </div>\n </div>\n </div>\n );\n },\n);\nSidebar.displayName = \"Sidebar\";\n\n/** Props for `SidebarRail`. */\nexport type SidebarRailProps = React.ComponentProps<\"button\">;\n\n/** Hoverable/draggable rail divider on the edge of the sidebar for quick toggling. */\nexport const SidebarRail = React.forwardRef<\n HTMLButtonElement,\n SidebarRailProps\n>(({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\"dl-sidebar-rail\", className)}\n {...props}\n />\n );\n});\nSidebarRail.displayName = \"SidebarRail\";\n\n/** Props for `SidebarInset`. */\nexport type SidebarInsetProps = React.ComponentProps<\"main\">;\n\n/** Main application container when paired with an inset or standard sidebar. */\nexport const SidebarInset = React.forwardRef<HTMLDivElement, SidebarInsetProps>(\n ({ className, ...props }, ref) => (\n <main ref={ref} className={cn(\"dl-sidebar-inset\", className)} {...props} />\n ),\n);\nSidebarInset.displayName = \"SidebarInset\";\n\n/** Props for `SidebarHeader`. */\nexport type SidebarHeaderProps = React.ComponentProps<\"div\">;\n\n/** Header section at the top of a sidebar. */\nexport const SidebarHeader = React.forwardRef<\n HTMLDivElement,\n SidebarHeaderProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn(\"dl-sidebar-header\", className)}\n {...props}\n />\n));\nSidebarHeader.displayName = \"SidebarHeader\";\n\n/** Props for `SidebarFooter`. */\nexport type SidebarFooterProps = React.ComponentProps<\"div\">;\n\n/** Footer section pinned to the bottom of a sidebar. */\nexport const SidebarFooter = React.forwardRef<\n HTMLDivElement,\n SidebarFooterProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn(\"dl-sidebar-footer\", className)}\n {...props}\n />\n));\nSidebarFooter.displayName = \"SidebarFooter\";\n\n/** Props for `SidebarContent`. */\nexport type SidebarContentProps = React.ComponentProps<\"div\">;\n\n/** Scrollable middle container holding sidebar navigation groups. */\nexport const SidebarContent = React.forwardRef<\n HTMLDivElement,\n SidebarContentProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\"dl-sidebar-content\", className)}\n {...props}\n />\n));\nSidebarContent.displayName = \"SidebarContent\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"@/lib/utils\";\n\n/** Props for `SidebarGroup`. */\nexport type SidebarGroupProps = React.ComponentProps<\"div\">;\n\n/**\n * Section grouping related sidebar menu items.\n */\nexport const SidebarGroup = React.forwardRef<HTMLDivElement, SidebarGroupProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\"dl-sidebar-group\", className)}\n {...props}\n />\n );\n },\n);\nSidebarGroup.displayName = \"SidebarGroup\";\n\n/** Props for `SidebarGroupLabel`. */\nexport type SidebarGroupLabelProps = React.ComponentProps<\"div\"> & {\n asChild?: boolean;\n};\n\n/**\n * Text heading or label for a `SidebarGroup`.\n */\nexport const SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n SidebarGroupLabelProps\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"div\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\"dl-sidebar-group-label\", className)}\n {...props}\n />\n );\n});\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\";\n\n/** Props for `SidebarGroupAction`. */\nexport type SidebarGroupActionProps = React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n};\n\n/**\n * Secondary action button placed beside a `SidebarGroupLabel` (e.g. \"+\" to add items).\n */\nexport const SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n SidebarGroupActionProps\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\"dl-sidebar-group-action\", className)}\n {...props}\n />\n );\n});\nSidebarGroupAction.displayName = \"SidebarGroupAction\";\n\n/** Props for `SidebarGroupContent`. */\nexport type SidebarGroupContentProps = React.ComponentProps<\"div\">;\n\n/**\n * Content container rendered inside a `SidebarGroup`.\n */\nexport const SidebarGroupContent = React.forwardRef<\n HTMLDivElement,\n SidebarGroupContentProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn(\"dl-sidebar-group-content\", className)}\n {...props}\n />\n));\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"@/components/tooltip\";\nimport { useSidebar } from \"./sidebar-context\";\n\n/** Menu button variant styles. */\nexport const sidebarMenuButtonVariants = cva(\"dl-sidebar-menu-button\", {\n variants: {\n variant: {\n default: \"dl-sidebar-menu-button--default\",\n outline: \"dl-sidebar-menu-button--outline\",\n },\n size: {\n default: \"dl-sidebar-menu-button--md\",\n sm: \"dl-sidebar-menu-button--sm\",\n lg: \"dl-sidebar-menu-button--lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n});\n\n/** Props for `SidebarMenu`. */\nexport type SidebarMenuProps = React.ComponentProps<\"ul\">;\n\n/** Vertical list (`<ul>`) holding sidebar menu items. */\nexport const SidebarMenu = React.forwardRef<HTMLUListElement, SidebarMenuProps>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn(\"dl-sidebar-menu\", className)}\n {...props}\n />\n ),\n);\nSidebarMenu.displayName = \"SidebarMenu\";\n\n/** Props for `SidebarMenuItem`. */\nexport type SidebarMenuItemProps = React.ComponentProps<\"li\">;\n\n/** List item (`<li>`) wrapper for a sidebar navigation button or link. */\nexport const SidebarMenuItem = React.forwardRef<\n HTMLLIElement,\n SidebarMenuItemProps\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn(\"dl-sidebar-menu-item\", className)}\n {...props}\n />\n));\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\n\n/** Props for `SidebarMenuButton`. */\nexport type SidebarMenuButtonProps = React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>;\n\n/** Interactive navigation button inside a sidebar menu item, with automatic tooltip in collapsed icon mode. */\nexport const SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n SidebarMenuButtonProps\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : \"button\";\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-variant={variant}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n const tooltipProps =\n typeof tooltip === \"string\" ? { children: tooltip } : tooltip;\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltipProps}\n />\n </Tooltip>\n );\n },\n);\nSidebarMenuButton.displayName = \"SidebarMenuButton\";\n\n/** Props for `SidebarMenuAction`. */\nexport type SidebarMenuActionProps = React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n showOnHover?: boolean;\n};\n\n/** Secondary action button placed beside a sidebar menu button. */\nexport const SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n SidebarMenuActionProps\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n data-show-on-hover={showOnHover ? \"true\" : undefined}\n className={cn(\n \"dl-sidebar-menu-action\",\n showOnHover && \"dl-sidebar-menu-action--hover-only\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = \"SidebarMenuAction\";\n\n/** Props for `SidebarMenuBadge`. */\nexport type SidebarMenuBadgeProps = React.ComponentProps<\"div\">;\n\n/** Numeric or label badge placed on the right side of a sidebar menu button. */\nexport const SidebarMenuBadge = React.forwardRef<\n HTMLDivElement,\n SidebarMenuBadgeProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\"dl-sidebar-menu-badge\", className)}\n {...props}\n />\n));\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"@/lib/utils\";\nimport { Skeleton } from \"@/components/skeleton\";\n\n/** Props for `SidebarMenuSkeleton`. */\nexport type SidebarMenuSkeletonProps = React.ComponentProps<\"div\"> & {\n showIcon?: boolean;\n};\n\n/** Loading skeleton placeholder simulating a sidebar menu item. */\nexport const SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n SidebarMenuSkeletonProps\n>(({ className, showIcon = false, ...props }, ref) => {\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn(\"dl-sidebar-menu-skeleton\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"dl-sidebar-menu-skeleton-icon\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"dl-sidebar-menu-skeleton-text\"\n data-sidebar=\"menu-skeleton-text\"\n style={{ \"--skeleton-width\": width } as React.CSSProperties}\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\";\n\n/** Props for `SidebarMenuSub`. */\nexport type SidebarMenuSubProps = React.ComponentProps<\"ul\">;\n\n/** Nested sub-list container for hierarchical sidebar navigation. */\nexport const SidebarMenuSub = React.forwardRef<\n HTMLUListElement,\n SidebarMenuSubProps\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\"dl-sidebar-menu-sub\", className)}\n {...props}\n />\n));\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\n\n/** Props for `SidebarMenuSubItem`. */\nexport type SidebarMenuSubItemProps = React.ComponentProps<\"li\">;\n\n/** Nested item wrapper inside a `SidebarMenuSub`. */\nexport const SidebarMenuSubItem = React.forwardRef<\n HTMLLIElement,\n SidebarMenuSubItemProps\n>(({ ...props }, ref) => <li ref={ref} {...props} />);\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\n\n/** Props for `SidebarMenuSubButton`. */\nexport type SidebarMenuSubButtonProps = React.ComponentProps<\"a\"> & {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n};\n\n/** Navigation button/link inside a nested `SidebarMenuSub` tree. */\nexport const SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n SidebarMenuSubButtonProps\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"dl-sidebar-menu-sub-button\",\n size === \"sm\" && \"dl-sidebar-menu-sub-button--sm\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\";\n","import * as React from \"react\";\nimport { PanelLeft } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/button\";\nimport { Input } from \"@/components/input\";\nimport { Separator } from \"@/components/separator\";\nimport { useSidebar } from \"./sidebar-context\";\n\n/** Props for `SidebarTrigger`. */\nexport type SidebarTriggerProps = React.ComponentProps<typeof Button>;\n\n/**\n * Button trigger toggling sidebar collapsed/expanded state.\n */\nexport const SidebarTrigger = React.forwardRef<\n React.ComponentRef<typeof Button>,\n SidebarTriggerProps\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"dl-sidebar-trigger\", className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n});\nSidebarTrigger.displayName = \"SidebarTrigger\";\n\n/** Props for `SidebarSeparator`. */\nexport type SidebarSeparatorProps = React.ComponentProps<typeof Separator>;\n\n/**\n * Divider separating sidebar sections.\n */\nexport const SidebarSeparator = React.forwardRef<\n React.ComponentRef<typeof Separator>,\n SidebarSeparatorProps\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn(\"dl-sidebar-separator\", className)}\n {...props}\n />\n );\n});\nSidebarSeparator.displayName = \"SidebarSeparator\";\n\n/** Props for `SidebarInput`. */\nexport type SidebarInputProps = React.ComponentProps<typeof Input>;\n\n/**\n * Styled text input tailored for use inside a sidebar header or filter bar.\n */\nexport const SidebarInput = React.forwardRef<\n React.ComponentRef<typeof Input>,\n SidebarInputProps\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\"dl-sidebar-input\", className)}\n {...props}\n />\n );\n});\nSidebarInput.displayName = \"SidebarInput\";\n","import * as React from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { cn } from \"@/lib/utils\";\n\nexport type SliderProps = React.ComponentPropsWithoutRef<\n typeof SliderPrimitive.Root\n>;\n\n/**\n * Interactive slider component for selecting single numeric values or continuous ranges.\n * Built upon Radix UI Slider with scoped CSS track and thumb styling.\n *\n * @example\n * ```tsx\n * // Volume slider (0 - 100)\n * <Slider\n * value={[volume]}\n * onValueChange={([val]) => setVolume(val)}\n * max={100}\n * step={1}\n * />\n *\n * // Range slider (e.g. min & max price)\n * <Slider\n * value={priceRange}\n * onValueChange={setPriceRange}\n * min={0}\n * max={1000}\n * step={10}\n * />\n * ```\n */\nconst Slider = React.forwardRef<\n React.ComponentRef<typeof SliderPrimitive.Root>,\n SliderProps\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\"dl-slider\", className)}\n {...props}\n >\n <SliderPrimitive.Track className=\"dl-slider__track\">\n <SliderPrimitive.Range className=\"dl-slider__range\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"dl-slider__thumb\" />\n </SliderPrimitive.Root>\n));\nSlider.displayName = SliderPrimitive.Root.displayName;\n\nexport { Slider };\n","import React, { useEffect, useState } from \"react\";\nimport { Toaster as Sonner, toast } from \"sonner\";\nimport type { ThemeMode } from \"@/theme-provider\";\n\nexport type ToasterProps = React.ComponentProps<typeof Sonner>;\nexport type ToastTheme = ThemeMode;\n\n/**\n * Toast notification viewport container configured with `@yuva-devlab/ui` design tokens.\n * Automatically synchronizes Sonner theme with root document dark/light mode\n * when not explicitly provided.\n *\n * @example\n * ```tsx\n * // In your root layout:\n * <Toaster />\n *\n * // In any component:\n * toast.success(\"Configuration saved successfully!\");\n * toast.error(\"Failed to execute agent workflow.\");\n * ```\n */\nconst Toaster = ({\n theme: propTheme,\n position = \"bottom-right\",\n ...props\n}: ToasterProps) => {\n const [resolvedTheme, setResolvedTheme] = useState<ThemeMode>(\"system\");\n\n useEffect(() => {\n if (propTheme) return;\n const root = document.documentElement;\n const detect = () => {\n const isDark =\n root.classList.contains(\"dark\") ||\n (root.getAttribute(\"data-theme\")?.includes(\"dark\") ?? false);\n const isLight =\n root.classList.contains(\"light\") ||\n (root.getAttribute(\"data-theme\")?.includes(\"light\") ?? false);\n if (isDark) {\n setResolvedTheme(\"dark\");\n } else if (isLight) {\n setResolvedTheme(\"light\");\n } else {\n setResolvedTheme(\"system\");\n }\n };\n\n detect();\n const observer = new MutationObserver(detect);\n observer.observe(root, {\n attributes: true,\n attributeFilter: [\"class\", \"data-theme\"],\n });\n return () => observer.disconnect();\n }, [propTheme]);\n\n return (\n <Sonner\n theme={propTheme ?? resolvedTheme}\n position={position}\n className=\"dl-toaster\"\n toastOptions={{\n classNames: {\n toast: \"dl-toast\",\n description: \"dl-toast__desc\",\n actionButton: \"dl-toast__action\",\n cancelButton: \"dl-toast__cancel\",\n },\n }}\n {...props}\n />\n );\n};\n\nexport { Toaster, toast };\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nconst statusCategoryMap: Record<string, string> = {\n Completed: \"dl-status-badge--success\",\n COMPLETED: \"dl-status-badge--success\",\n Operational: \"dl-status-badge--success\",\n OPERATIONAL: \"dl-status-badge--success\",\n Active: \"dl-status-badge--success\",\n ACTIVE: \"dl-status-badge--success\",\n ONLINE: \"dl-status-badge--success\",\n \"In Progress\": \"dl-status-badge--info\",\n RUNNING: \"dl-status-badge--info\",\n \"Needs Approval\": \"dl-status-badge--warning\",\n Degraded: \"dl-status-badge--warning\",\n PAUSED: \"dl-status-badge--warning\",\n Failed: \"dl-status-badge--destructive\",\n FAILED: \"dl-status-badge--destructive\",\n Offline: \"dl-status-badge--muted\",\n DISABLED: \"dl-status-badge--muted\",\n IDLE: \"dl-status-badge--muted\",\n};\n\nexport interface StatusBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** The status string to display (e.g. \"Active\", \"Operational\", \"Failed\") */\n status: string;\n}\n\n/**\n * Visual status pill featuring a colored indicator dot and text label,\n * with automatic color mapping according to system status names.\n *\n * @example\n * ```tsx\n * <StatusBadge status=\"Active\" />\n * <StatusBadge status=\"Failed\" />\n * <StatusBadge status=\"In Progress\" />\n * ```\n */\nexport const StatusBadge = React.forwardRef<HTMLSpanElement, StatusBadgeProps>(\n ({ status, className, ...props }, ref) => {\n const normalizedStatus = status?.trim() ?? \"\";\n const colorClass =\n statusCategoryMap[normalizedStatus] ?? \"dl-status-badge--muted\";\n\n return (\n <span\n ref={ref}\n className={cn(\"dl-status-badge\", colorClass, className)}\n {...props}\n >\n <span className=\"dl-status-badge__dot\" />\n {normalizedStatus}\n </span>\n );\n },\n);\nStatusBadge.displayName = \"StatusBadge\";\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nconst statusToneMap: Record<string, string> = {\n active: \"dl-status-chip--primary\",\n running: \"dl-status-chip--primary\",\n completed: \"dl-status-chip--muted\",\n done: \"dl-status-chip--muted\",\n indexed: \"dl-status-chip--primary\",\n enabled: \"dl-status-chip--primary\",\n available: \"dl-status-chip--primary\",\n published: \"dl-status-chip--primary\",\n ok: \"dl-status-chip--primary\",\n waiting: \"dl-status-chip--warning\",\n paused: \"dl-status-chip--warning\",\n processing: \"dl-status-chip--warning\",\n degraded: \"dl-status-chip--warning\",\n warn: \"dl-status-chip--warning\",\n \"requires-approval\": \"dl-status-chip--warning\",\n draft: \"dl-status-chip--warning\",\n failed: \"dl-status-chip--destructive\",\n error: \"dl-status-chip--destructive\",\n offline: \"dl-status-chip--destructive\",\n};\n\nexport interface StatusChipProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** The lowercase machine or human status key (e.g. \"active\", \"processing\", \"failed\") */\n status: string;\n}\n\n/**\n * Compact chip indicator displaying lifecycle status states with a colored indicator dot.\n *\n * @example\n * ```tsx\n * <StatusChip status=\"running\" />\n * <StatusChip status=\"processing\" />\n * <StatusChip status=\"error\" />\n * ```\n */\nexport const StatusChip = React.forwardRef<HTMLSpanElement, StatusChipProps>(\n ({ status, className, ...props }, ref) => {\n const toneClass = statusToneMap[status] ?? \"dl-status-chip--muted\";\n\n return (\n <span\n ref={ref}\n className={cn(\"dl-status-chip\", toneClass, className)}\n {...props}\n >\n <span className=\"dl-status-chip__dot\" />\n {status}\n </span>\n );\n },\n);\nStatusChip.displayName = \"StatusChip\";\n","import * as React from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport { cn } from \"@/lib/utils\";\n\nexport type SwitchProps = React.ComponentPropsWithoutRef<\n typeof SwitchPrimitives.Root\n>;\n\n/**\n * Interactive toggle control that allows users to switch between on and off states.\n * Powered by Radix UI Switch primitive with scoped CSS transitions and token styling.\n *\n * @example\n * ```tsx\n * // Basic toggle switch\n * <div className=\"flex items-center justify-between\">\n * <Label htmlFor=\"airplane-mode\">Airplane Mode</Label>\n * <Switch id=\"airplane-mode\" checked={enabled} onCheckedChange={setEnabled} />\n * </div>\n *\n * // Disabled state\n * <Switch disabled checked={false} />\n * ```\n */\nconst Switch = React.forwardRef<\n React.ComponentRef<typeof SwitchPrimitives.Root>,\n SwitchProps\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\"dl-switch\", className)}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb className=\"dl-switch__thumb\" />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","import * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Root Tabs container organizing content into alternate views.\n *\n * @example\n * ```tsx\n * <Tabs defaultValue=\"account\">\n * <TabsList>\n * <TabsTrigger value=\"account\">Account</TabsTrigger>\n * <TabsTrigger value=\"password\">Password</TabsTrigger>\n * </TabsList>\n * <TabsContent value=\"account\">Account settings form...</TabsContent>\n * <TabsContent value=\"password\">Password change form...</TabsContent>\n * </Tabs>\n * ```\n */\nconst Tabs = TabsPrimitive.Root;\n\nexport type TabsListProps = React.ComponentPropsWithoutRef<\n typeof TabsPrimitive.List\n>;\n\n/**\n * Navigation strip containing tab trigger buttons.\n */\nconst TabsList = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.List>,\n TabsListProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\"dl-tabs-list\", className)}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nexport type TabsTriggerProps = React.ComponentPropsWithoutRef<\n typeof TabsPrimitive.Trigger\n>;\n\n/**\n * Tab button that activates its associated content pane.\n */\nconst TabsTrigger = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.Trigger>,\n TabsTriggerProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\"dl-tabs-trigger\", className)}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nexport type TabsContentProps = React.ComponentPropsWithoutRef<\n typeof TabsPrimitive.Content\n>;\n\n/**\n * Content container rendered when the matching tab trigger is active.\n */\nconst TabsContent = React.forwardRef<\n React.ComponentRef<typeof TabsPrimitive.Content>,\n TabsContentProps\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\"dl-tabs-content\", className)}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type TextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\n/**\n * Multi-line text field styled with design system tokens and scoped CSS.\n * Provides accessible focus states, vertical resizing, and clean error integration.\n *\n * @example\n * ```tsx\n * // Basic textarea\n * <Textarea placeholder=\"Type your message here...\" rows={4} />\n *\n * // Controlled textarea with character counter\n * <Textarea\n * value={notes}\n * onChange={(e) => setNotes(e.target.value)}\n * placeholder=\"Additional instructions...\"\n * disabled={isLoading}\n * />\n * ```\n */\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => (\n <textarea className={cn(\"dl-textarea\", className)} ref={ref} {...props} />\n ),\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n","import * as React from \"react\";\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst toggleVariants = cva(\"dl-toggle\", {\n variants: {\n variant: {\n default: \"dl-toggle--variant-default\",\n outline: \"dl-toggle--variant-outline\",\n },\n size: {\n default: \"dl-toggle--size-default\",\n sm: \"dl-toggle--size-sm\",\n lg: \"dl-toggle--size-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n});\n\nexport type ToggleProps = React.ComponentPropsWithoutRef<\n typeof TogglePrimitive.Root\n> &\n VariantProps<typeof toggleVariants>;\n\n/**\n * A two-state button that can be either on or off.\n *\n * @example\n * ```tsx\n * <Toggle aria-label=\"Toggle italic\">\n * <Italic />\n * </Toggle>\n * ```\n */\nconst Toggle = React.forwardRef<\n React.ComponentRef<typeof TogglePrimitive.Root>,\n ToggleProps\n>(({ className, variant, size, ...props }, ref) => (\n <TogglePrimitive.Root\n ref={ref}\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n));\n\nToggle.displayName = TogglePrimitive.Root.displayName;\n\nexport { Toggle, toggleVariants };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\";\nimport { type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\nimport { toggleVariants } from \"@/components/toggle\";\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants>\n>({\n size: \"default\",\n variant: \"default\",\n});\n\nexport type ToggleGroupProps = React.ComponentPropsWithoutRef<\n typeof ToggleGroupPrimitive.Root\n> &\n VariantProps<typeof toggleVariants>;\n\n/**\n * A set of two-state buttons that can be toggled on or off, supporting single or multiple selection.\n *\n * @example\n * ```tsx\n * <ToggleGroup type=\"multiple\">\n * <ToggleGroupItem value=\"bold\" aria-label=\"Toggle bold\">\n * <Bold />\n * </ToggleGroupItem>\n * <ToggleGroupItem value=\"italic\" aria-label=\"Toggle italic\">\n * <Italic />\n * </ToggleGroupItem>\n * </ToggleGroup>\n * ```\n */\nconst ToggleGroup = React.forwardRef<\n React.ComponentRef<typeof ToggleGroupPrimitive.Root>,\n ToggleGroupProps\n>(({ className, variant, size, children, ...props }, ref) => (\n <ToggleGroupPrimitive.Root\n ref={ref}\n className={cn(\"dl-toggle-group\", className)}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n));\n\nToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;\n\nexport type ToggleGroupItemProps = React.ComponentPropsWithoutRef<\n typeof ToggleGroupPrimitive.Item\n> &\n VariantProps<typeof toggleVariants>;\n\n/**\n * An individual toggle button within a `ToggleGroup`.\n */\nconst ToggleGroupItem = React.forwardRef<\n React.ComponentRef<typeof ToggleGroupPrimitive.Item>,\n ToggleGroupItemProps\n>(({ className, children, variant, size, ...props }, ref) => {\n const context = React.useContext(ToggleGroupContext);\n\n return (\n <ToggleGroupPrimitive.Item\n ref={ref}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className,\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n );\n});\n\nToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;\n\nexport { ToggleGroup, ToggleGroupItem };\n","import * as React from \"react\";\nimport {\n Wrench,\n ChevronDown,\n Loader2,\n CheckCircle2,\n AlertCircle,\n} from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { CodeBlock } from \"@/components/code-block\";\nimport {\n ToolCallProps,\n ToolCallHeaderProps,\n ToolCallArgsProps,\n ToolCallResultProps,\n ToolCallStatusType,\n} from \"./tool-call-types\";\n\nexport type {\n ToolCallProps,\n ToolCallHeaderProps,\n ToolCallArgsProps,\n ToolCallResultProps,\n ToolCallStatusType,\n};\n\nconst ToolCallContext = React.createContext<{\n open: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n}>({ open: false, setOpen: () => {} });\n\nexport const ToolCallHeader = React.forwardRef<\n HTMLButtonElement,\n ToolCallHeaderProps\n>(\n (\n {\n className,\n name,\n status = \"success\",\n icon,\n children: _children,\n ...props\n },\n ref,\n ) => {\n const { open, setOpen } = React.useContext(ToolCallContext);\n\n return (\n <button\n ref={ref}\n type=\"button\"\n onClick={() => setOpen((prev) => !prev)}\n aria-expanded={open}\n className={cn(\"dl-tool-call__header\", className)}\n {...props}\n >\n <div className=\"dl-tool-call__title-wrap\">\n <span className=\"dl-tool-call__icon\">\n {icon ?? <Wrench className=\"size-3.5\" />}\n </span>\n <span className=\"dl-tool-call__name\">{name}</span>\n </div>\n\n <div className=\"dl-tool-call__actions\">\n <span\n className={cn(\n \"dl-tool-call__status-badge\",\n `dl-tool-call__status-badge--${status}`,\n )}\n >\n {status === \"running\" && (\n <Loader2 className=\"size-3 animate-spin\" />\n )}\n {status === \"success\" && <CheckCircle2 className=\"size-3\" />}\n {status === \"error\" && <AlertCircle className=\"size-3\" />}\n <span>{status}</span>\n </span>\n <ChevronDown className=\"dl-tool-call__chevron\" />\n </div>\n </button>\n );\n },\n);\nToolCallHeader.displayName = \"ToolCallHeader\";\n\nexport const ToolCallArgs = React.forwardRef<HTMLDivElement, ToolCallArgsProps>(\n ({ className, args, ...props }, ref) => {\n const isObject = typeof args === \"object\" && args !== null;\n\n return (\n <div ref={ref} className={cn(\"dl-tool-call__args\", className)} {...props}>\n {isObject ? (\n Object.entries(args).map(([key, val]) => (\n <span key={key} className=\"dl-tool-call__arg-pill\">\n <strong>{key}:</strong> {String(val)}\n </span>\n ))\n ) : (\n <span className=\"dl-tool-call__arg-pill\">{args}</span>\n )}\n </div>\n );\n },\n);\nToolCallArgs.displayName = \"ToolCallArgs\";\n\nexport const ToolCallResult = React.forwardRef<\n HTMLDivElement,\n ToolCallResultProps\n>(({ className, result, language = \"json\", ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-tool-call__result\", className)} {...props}>\n <CodeBlock code={result} language={language} copyable lineNumbers={false} />\n </div>\n));\nToolCallResult.displayName = \"ToolCallResult\";\n\n/**\n * Visualizer card for agent tool executions, displaying tool name, parameter pills,\n * live execution status badge, and expandable return payloads.\n *\n * @example\n * ```tsx\n * <ToolCall\n * name=\"query_database\"\n * status=\"success\"\n * args={{ table: \"users\", limit: 5 }}\n * result='[{\"id\": 1, \"name\": \"Alice\"}]'\n * />\n * ```\n */\nexport function ToolCall({\n name,\n status = \"success\",\n icon,\n args,\n result,\n open: propOpen,\n defaultOpen = false,\n onOpenChange,\n className,\n children,\n ...props\n}: ToolCallProps) {\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen);\n const isOpen = propOpen !== undefined ? propOpen : internalOpen;\n\n const setOpen = React.useCallback(\n (action: React.SetStateAction<boolean>) => {\n const next = typeof action === \"function\" ? action(isOpen) : action;\n if (propOpen === undefined) {\n setInternalOpen(next);\n }\n onOpenChange?.(next);\n },\n [isOpen, propOpen, onOpenChange],\n );\n\n return (\n <ToolCallContext.Provider value={{ open: isOpen, setOpen }}>\n <div\n data-state={isOpen ? \"open\" : \"closed\"}\n className={cn(\"dl-tool-call\", className)}\n {...props}\n >\n <ToolCallHeader name={name} status={status} icon={icon} />\n {isOpen && (\n <div className=\"dl-tool-call__body\">\n {args && <ToolCallArgs args={args} />}\n {result && <ToolCallResult result={result} />}\n {children}\n </div>\n )}\n </div>\n </ToolCallContext.Provider>\n );\n}\n","import * as React from \"react\";\nimport { Loader2, CheckCircle2, AlertCircle, Circle } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n TraceStatus,\n TraceProps,\n TraceLineProps,\n TraceIconProps,\n TraceTitleProps,\n TraceContentProps,\n TraceCollapsibleProps,\n} from \"./trace-types\";\n\nexport type {\n TraceStatus,\n TraceProps,\n TraceLineProps,\n TraceIconProps,\n TraceTitleProps,\n TraceContentProps,\n TraceCollapsibleProps,\n};\n\nconst TraceCollapsibleContext = React.createContext<{\n open: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n}>({ open: false, setOpen: () => {} });\n\nexport const Trace = React.forwardRef<HTMLDivElement, TraceProps>(\n ({ className, variant = \"default\", ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"dl-trace\",\n variant === \"card\" && \"rounded-md border p-3 bg-card\",\n className,\n )}\n {...props}\n />\n ),\n);\nTrace.displayName = \"Trace\";\n\nexport const TraceLine = React.forwardRef<HTMLDivElement, TraceLineProps>(\n ({ className, status = \"default\", ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"dl-trace-line\", `dl-trace-line--${status}`, className)}\n {...props}\n />\n ),\n);\nTraceLine.displayName = \"TraceLine\";\n\nexport const TraceIcon = React.forwardRef<HTMLSpanElement, TraceIconProps>(\n ({ className, status = \"default\", children, ...props }, ref) => {\n let resolvedIcon = children;\n if (!resolvedIcon) {\n if (status === \"running\") resolvedIcon = <Loader2 className=\"size-3.5\" />;\n else if (status === \"success\")\n resolvedIcon = <CheckCircle2 className=\"size-3.5\" />;\n else if (status === \"error\")\n resolvedIcon = <AlertCircle className=\"size-3.5\" />;\n else resolvedIcon = <Circle className=\"size-2 fill-current\" />;\n }\n\n return (\n <span\n ref={ref}\n className={cn(\"dl-trace-icon\", `dl-trace-icon--${status}`, className)}\n {...props}\n >\n {resolvedIcon}\n </span>\n );\n },\n);\nTraceIcon.displayName = \"TraceIcon\";\n\nexport const TraceTitle = React.forwardRef<HTMLDivElement, TraceTitleProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-trace-title\", className)} {...props} />\n ),\n);\nTraceTitle.displayName = \"TraceTitle\";\n\nexport const TraceContent = React.forwardRef<HTMLDivElement, TraceContentProps>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-trace-content\", className)} {...props} />\n ),\n);\nTraceContent.displayName = \"TraceContent\";\n\nexport function TraceCollapsible({\n open: propOpen,\n defaultOpen = false,\n onOpenChange,\n className,\n children,\n ...props\n}: TraceCollapsibleProps) {\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen);\n const isOpen = propOpen !== undefined ? propOpen : internalOpen;\n\n const setOpen = React.useCallback(\n (action: React.SetStateAction<boolean>) => {\n const next = typeof action === \"function\" ? action(isOpen) : action;\n if (propOpen === undefined) {\n setInternalOpen(next);\n }\n onOpenChange?.(next);\n },\n [isOpen, propOpen, onOpenChange],\n );\n\n return (\n <TraceCollapsibleContext.Provider value={{ open: isOpen, setOpen }}>\n <div className={cn(\"dl-trace-collapsible\", className)} {...props}>\n {children}\n </div>\n </TraceCollapsibleContext.Provider>\n );\n}\n\nexport function TraceCollapsibleTrigger({\n className,\n children,\n ...props\n}: React.ButtonHTMLAttributes<HTMLButtonElement>) {\n const { open, setOpen } = React.useContext(TraceCollapsibleContext);\n\n return (\n <button\n type=\"button\"\n onClick={() => setOpen((prev) => !prev)}\n aria-expanded={open}\n className={cn(\"dl-trace-collapsible-trigger\", className)}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nexport function TraceCollapsibleContent({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const { open } = React.useContext(TraceCollapsibleContext);\n if (!open) return null;\n\n return (\n <div className={cn(\"dl-trace-collapsible-content\", className)} {...props}>\n {children}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { ArrowUp, Square, Paperclip, X, FileText } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n PromptInputProps,\n PromptInputAttachmentItem,\n} from \"./prompt-input-types\";\n\nexport type { PromptInputProps, PromptInputAttachmentItem };\n\n/**\n * Enterprise message composition field for conversational AI and agent commands.\n * Features auto-resize textarea, file attachments, model selector slot, and Enter submission.\n *\n * @example\n * ```tsx\n * <PromptInput\n * onSubmit={(val, files) => handleSendMessage(val, files)}\n * placeholder=\"Ask the agent to refactor code...\"\n * />\n * ```\n */\nexport const PromptInput = React.forwardRef<HTMLFormElement, PromptInputProps>(\n (\n {\n className,\n value: propValue,\n defaultValue = \"\",\n onValueChange,\n onSubmit,\n onStop,\n placeholder = \"Send a message or prompt...\",\n isGenerating = false,\n disabled = false,\n attachments: propAttachments,\n onAttachmentsChange,\n maxAttachments = 5,\n modelSelector,\n ...props\n },\n ref,\n ) => {\n const isControlled = propValue !== undefined;\n const [internalVal, setInternalVal] = React.useState(defaultValue);\n const text = isControlled ? propValue : internalVal;\n\n const [internalFiles, setInternalFiles] = React.useState<\n PromptInputAttachmentItem[]\n >([]);\n const files =\n propAttachments !== undefined ? propAttachments : internalFiles;\n\n const textareaRef = React.useRef<HTMLTextAreaElement>(null);\n const fileInputRef = React.useRef<HTMLInputElement>(null);\n\n const updateText = (next: string) => {\n if (!isControlled) setInternalVal(next);\n onValueChange?.(next);\n };\n\n const updateFiles = (next: PromptInputAttachmentItem[]) => {\n if (propAttachments === undefined) setInternalFiles(next);\n onAttachmentsChange?.(next);\n };\n\n const handleInput = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n updateText(e.target.value);\n // Auto-resize\n if (textareaRef.current) {\n textareaRef.current.style.height = \"auto\";\n textareaRef.current.style.height = `${Math.min(textareaRef.current.scrollHeight, 224)}px`;\n }\n };\n\n const handleFormSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n if (disabled) return;\n if (isGenerating) {\n onStop?.();\n return;\n }\n if (!text.trim() && files.length === 0) return;\n\n onSubmit?.(text, files);\n updateText(\"\");\n updateFiles([]);\n if (textareaRef.current) {\n textareaRef.current.style.height = \"auto\";\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n handleFormSubmit(e);\n }\n };\n\n const handleFileSelect = (e: React.ChangeEvent<HTMLInputElement>) => {\n const selected = e.target.files;\n if (!selected || selected.length === 0) return;\n\n const newItems: PromptInputAttachmentItem[] = Array.from(selected).map(\n (f) => ({\n id: `${Date.now()}-${f.name}`,\n name: f.name,\n size: f.size,\n type: f.type,\n }),\n );\n\n const combined = [...files, ...newItems].slice(0, maxAttachments);\n updateFiles(combined);\n e.target.value = \"\";\n };\n\n const handleRemoveFile = (id: string) => {\n updateFiles(files.filter((f) => f.id !== id));\n };\n\n const canSubmit = (text.trim().length > 0 || files.length > 0) && !disabled;\n\n return (\n <form\n ref={ref}\n onSubmit={handleFormSubmit}\n className={cn(\n \"dl-prompt-input\",\n disabled && \"dl-prompt-input--disabled\",\n className,\n )}\n {...props}\n >\n {/* Attachments preview row */}\n {files.length > 0 && (\n <div className=\"dl-prompt-input__attachments\">\n {files.map((file) => (\n <span key={file.id} className=\"dl-prompt-input__chip\">\n <FileText className=\"size-3 text-muted-foreground\" />\n <span className=\"dl-prompt-input__chip-name\">{file.name}</span>\n <button\n type=\"button\"\n onClick={() => handleRemoveFile(file.id)}\n aria-label={`Remove ${file.name}`}\n className=\"dl-prompt-input__chip-remove\"\n >\n <X className=\"size-3\" />\n </button>\n </span>\n ))}\n </div>\n )}\n\n {/* Textarea */}\n <textarea\n ref={textareaRef}\n value={text}\n onChange={handleInput}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n disabled={disabled}\n rows={1}\n className=\"dl-prompt-input__textarea\"\n />\n\n {/* Action Toolbar */}\n <div className=\"dl-prompt-input__toolbar\">\n <div className=\"dl-prompt-input__left-actions\">\n <input\n type=\"file\"\n ref={fileInputRef}\n onChange={handleFileSelect}\n multiple\n className=\"hidden\"\n />\n <button\n type=\"button\"\n onClick={() => fileInputRef.current?.click()}\n disabled={disabled || files.length >= maxAttachments}\n aria-label=\"Attach file\"\n className=\"dl-prompt-input__btn\"\n >\n <Paperclip className=\"size-3.5\" />\n </button>\n {modelSelector}\n </div>\n\n <div className=\"dl-prompt-input__right-actions\">\n {isGenerating ? (\n <button\n type=\"button\"\n onClick={onStop}\n aria-label=\"Stop generation\"\n className=\"dl-prompt-input__btn dl-prompt-input__btn--stop\"\n >\n <Square className=\"size-3 fill-current\" />\n </button>\n ) : (\n <button\n type=\"submit\"\n disabled={!canSubmit}\n aria-label=\"Send message\"\n className=\"dl-prompt-input__btn dl-prompt-input__btn--send\"\n >\n <ArrowUp className=\"size-3.5 stroke-[2.5]\" />\n </button>\n )}\n </div>\n </div>\n </form>\n );\n },\n);\n\nPromptInput.displayName = \"PromptInput\";\n","import * as React from \"react\";\nimport {\n Sparkles,\n Copy,\n Check,\n RotateCw,\n ThumbsUp,\n ThumbsDown,\n} from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n MessageProps,\n MessageAvatarProps,\n MessageContentProps,\n MessageActionsProps,\n MessageRole,\n} from \"./message-types\";\n\nexport type {\n MessageProps,\n MessageAvatarProps,\n MessageContentProps,\n MessageActionsProps,\n MessageRole,\n};\n\nexport const MessageAvatar = React.forwardRef<\n HTMLDivElement,\n MessageAvatarProps\n>(({ className, role = \"assistant\", src, fallback, ...props }, ref) => {\n let resolvedFallback = fallback;\n if (!resolvedFallback) {\n resolvedFallback =\n role === \"assistant\" ? <Sparkles className=\"size-3.5\" /> : \"U\";\n }\n\n return (\n <div ref={ref} className={cn(\"dl-message__avatar\", className)} {...props}>\n {src ? (\n <img\n src={src}\n alt=\"Avatar\"\n className=\"size-full rounded-full object-cover\"\n />\n ) : (\n resolvedFallback\n )}\n </div>\n );\n});\nMessageAvatar.displayName = \"MessageAvatar\";\n\nexport const MessageContent = React.forwardRef<\n HTMLDivElement,\n MessageContentProps\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"dl-message__content\", className)} {...props} />\n));\nMessageContent.displayName = \"MessageContent\";\n\nexport const MessageActions = React.forwardRef<\n HTMLDivElement,\n MessageActionsProps\n>(\n (\n {\n className,\n copyText,\n onCopy,\n onRetry,\n onThumbsUp,\n onThumbsDown,\n children,\n ...props\n },\n ref,\n ) => {\n const [copied, setCopied] = React.useState(false);\n\n const handleCopy = () => {\n onCopy?.();\n if (!copyText) return;\n navigator.clipboard?.writeText(copyText).then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n });\n };\n\n return (\n <div\n ref={ref}\n className={cn(\"dl-message__actions\", className)}\n {...props}\n >\n {copyText && (\n <button\n type=\"button\"\n onClick={handleCopy}\n aria-label={copied ? \"Copied\" : \"Copy message\"}\n className=\"dl-message__action-btn\"\n >\n {copied ? (\n <Check className=\"size-3 text-success\" />\n ) : (\n <Copy className=\"size-3\" />\n )}\n </button>\n )}\n {onRetry && (\n <button\n type=\"button\"\n onClick={onRetry}\n aria-label=\"Retry response\"\n className=\"dl-message__action-btn\"\n >\n <RotateCw className=\"size-3\" />\n </button>\n )}\n {onThumbsUp && (\n <button\n type=\"button\"\n onClick={onThumbsUp}\n aria-label=\"Good response\"\n className=\"dl-message__action-btn\"\n >\n <ThumbsUp className=\"size-3\" />\n </button>\n )}\n {onThumbsDown && (\n <button\n type=\"button\"\n onClick={onThumbsDown}\n aria-label=\"Bad response\"\n className=\"dl-message__action-btn\"\n >\n <ThumbsDown className=\"size-3\" />\n </button>\n )}\n {children}\n </div>\n );\n },\n);\nMessageActions.displayName = \"MessageActions\";\n\n/**\n * Conversational turn wrapper representing user or AI agent responses with\n * avatars, rich content blocks, and action toolbars.\n *\n * @example\n * ```tsx\n * <Message role=\"assistant\">\n * <MessageAvatar />\n * <div className=\"dl-message__body\">\n * <MessageContent>Here is the updated schema.</MessageContent>\n * <MessageActions copyText=\"Here is the updated schema.\" />\n * </div>\n * </Message>\n * ```\n */\nexport const Message = React.forwardRef<HTMLDivElement, MessageProps>(\n ({ className, role = \"assistant\", children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"dl-message\", `dl-message--${role}`, className)}\n {...props}\n >\n {children}\n </div>\n ),\n);\nMessage.displayName = \"Message\";\n","import * as React from \"react\";\nimport { Sparkles } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { SuggestionProps, SuggestionListProps } from \"./suggestion-types\";\n\nexport type { SuggestionProps, SuggestionListProps };\n\n/**\n * Clickable starter prompt or follow-up question pill.\n *\n * @example\n * ```tsx\n * <Suggestion label=\"Explain the error in audit-table.tsx\" />\n * ```\n */\nexport const Suggestion = React.forwardRef<HTMLButtonElement, SuggestionProps>(\n ({ className, icon, label, description, children, ...props }, ref) => {\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\"dl-suggestion\", className)}\n {...props}\n >\n <span className=\"dl-suggestion__icon\">\n {icon ?? <Sparkles className=\"size-3\" />}\n </span>\n <span>{label ?? children}</span>\n {description && (\n <span className=\"dl-suggestion__description\">· {description}</span>\n )}\n </button>\n );\n },\n);\nSuggestion.displayName = \"Suggestion\";\n\n/**\n * Row or scrollable list of suggestion pills.\n */\nexport const SuggestionList = React.forwardRef<\n HTMLDivElement,\n SuggestionListProps\n>(({ className, layout = \"wrap\", ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"dl-suggestion-list\",\n `dl-suggestion-list--${layout}`,\n className,\n )}\n role=\"list\"\n {...props}\n />\n));\nSuggestionList.displayName = \"SuggestionList\";\n","import * as React from \"react\";\nimport { Terminal as TerminalIcon, Copy, Check } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n TerminalProps,\n TerminalHeaderProps,\n TerminalOutputProps,\n} from \"./terminal-types\";\n\nexport type { TerminalProps, TerminalHeaderProps, TerminalOutputProps };\n\nexport const TerminalHeader = React.forwardRef<\n HTMLDivElement,\n TerminalHeaderProps\n>(\n (\n {\n className,\n command,\n windowControls = true,\n output = \"\",\n children,\n ...props\n },\n ref,\n ) => {\n const [copied, setCopied] = React.useState(false);\n\n const handleCopy = () => {\n if (!output && !command) return;\n navigator.clipboard?.writeText(output || command || \"\").then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n });\n };\n\n return (\n <div\n ref={ref}\n className={cn(\"dl-terminal__header\", className)}\n {...props}\n >\n <div className=\"flex items-center gap-2\">\n {windowControls && (\n <div className=\"dl-terminal__dots\" aria-hidden=\"true\">\n <span className=\"dl-terminal__dot\" />\n <span className=\"dl-terminal__dot\" />\n <span className=\"dl-terminal__dot\" />\n </div>\n )}\n <div className=\"dl-terminal__title\">\n <TerminalIcon className=\"size-3.5\" />\n <span>{command ?? \"Terminal\"}</span>\n </div>\n </div>\n <div className=\"flex items-center gap-1.5\">\n <button\n type=\"button\"\n onClick={handleCopy}\n aria-label={copied ? \"Copied\" : \"Copy output\"}\n className=\"dl-code-block__copy-btn\"\n >\n {copied ? (\n <Check className=\"size-3.5 text-success\" />\n ) : (\n <Copy className=\"size-3.5\" />\n )}\n </button>\n {children}\n </div>\n </div>\n );\n },\n);\nTerminalHeader.displayName = \"TerminalHeader\";\n\nexport const TerminalOutput = React.forwardRef<\n HTMLPreElement,\n TerminalOutputProps\n>(({ className, command, maxHeight = \"16rem\", children, ...props }, ref) => (\n <pre\n ref={ref}\n style={{ maxHeight }}\n className={cn(\"dl-terminal__output\", className)}\n {...props}\n >\n {command && <div className=\"dl-terminal__prompt-line\">$ {command}</div>}\n <code>{children}</code>\n </pre>\n));\nTerminalOutput.displayName = \"TerminalOutput\";\n\n/**\n * Shell command execution terminal container displaying CLI prompts and streaming logs.\n *\n * @example\n * ```tsx\n * <Terminal command=\"pnpm build\" output=\"✓ built in 941ms\" />\n * ```\n */\nexport const Terminal = React.forwardRef<HTMLDivElement, TerminalProps>(\n (\n {\n className,\n command,\n output,\n maxHeight = \"16rem\",\n windowControls = true,\n children,\n ...props\n },\n ref,\n ) => {\n return (\n <div ref={ref} className={cn(\"dl-terminal\", className)} {...props}>\n <TerminalHeader\n command={command}\n output={output}\n windowControls={windowControls}\n />\n <TerminalOutput command={command} maxHeight={maxHeight}>\n {output ?? children}\n </TerminalOutput>\n </div>\n );\n },\n);\nTerminal.displayName = \"Terminal\";\n","import * as React from \"react\";\nimport { Sparkles, ChevronDown, Check, Search, Bot } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { AIModel, ModelSelectorProps } from \"./model-selector-types\";\n\nexport type { AIModel, ModelSelectorProps };\n\nexport const DEFAULT_AI_MODELS: AIModel[] = [\n {\n id: \"claude-3-5-sonnet\",\n name: \"Claude 3.5 Sonnet\",\n provider: \"Anthropic\",\n description:\n \"State-of-the-art coding, agentic reasoning, and complex planning.\",\n tags: [\"Reasoning\", \"200k context\"],\n },\n {\n id: \"gpt-4o\",\n name: \"GPT-4o\",\n provider: \"OpenAI\",\n description: \"High-speed multimodal intelligence with structured outputs.\",\n tags: [\"Multimodal\", \"Fast\"],\n },\n {\n id: \"gemini-2-0-flash\",\n name: \"Gemini 2.0 Flash\",\n provider: \"Google\",\n description:\n \"Next-gen multimodal speed with massive 1M token context window.\",\n tags: [\"1M context\", \"Realtime\"],\n },\n {\n id: \"deepseek-r1\",\n name: \"DeepSeek R1\",\n provider: \"DeepSeek\",\n description:\n \"Open-weights reasoning model with verifiable chain of thought.\",\n tags: [\"Reasoning\", \"Open\"],\n },\n];\n\n/**\n * Model picker dropdown for LLMs and agent backends.\n * Features search filtering, capability tags, provider metadata, and custom trigger slots.\n *\n * @example\n * ```tsx\n * <ModelSelector\n * value={model}\n * onValueChange={setModel}\n * />\n * ```\n */\nexport const ModelSelector = React.forwardRef<\n HTMLDivElement,\n ModelSelectorProps\n>(\n (\n {\n className,\n models = DEFAULT_AI_MODELS,\n value: propValue,\n defaultValue = models[0]?.id,\n onValueChange,\n placeholder = \"Select model...\",\n size = \"md\",\n disabled = false,\n ...props\n },\n ref,\n ) => {\n const isControlled = propValue !== undefined;\n const [selectedId, setSelectedId] = React.useState<string>(\n isControlled ? propValue : defaultValue || \"\",\n );\n const [isOpen, setIsOpen] = React.useState(false);\n const [query, setQuery] = React.useState(\"\");\n const containerRef = React.useRef<HTMLDivElement>(null);\n\n React.useImperativeHandle(\n ref,\n () => containerRef.current as HTMLDivElement,\n );\n\n const activeId = isControlled ? propValue : selectedId;\n const currentModel = models.find((m) => m.id === activeId);\n\n const handleSelect = (modelId: string) => {\n if (!isControlled) setSelectedId(modelId);\n onValueChange?.(modelId);\n setIsOpen(false);\n setQuery(\"\");\n };\n\n // Close on outside click\n React.useEffect(() => {\n const handleOutsideClick = (e: MouseEvent) => {\n if (\n containerRef.current &&\n !containerRef.current.contains(e.target as Node)\n ) {\n setIsOpen(false);\n }\n };\n if (isOpen) {\n document.addEventListener(\"mousedown\", handleOutsideClick);\n }\n return () =>\n document.removeEventListener(\"mousedown\", handleOutsideClick);\n }, [isOpen]);\n\n const filteredModels = React.useMemo(() => {\n if (!query.trim()) return models;\n const lower = query.toLowerCase();\n return models.filter(\n (m) =>\n m.name.toLowerCase().includes(lower) ||\n m.provider.toLowerCase().includes(lower) ||\n m.tags?.some((t) => t.toLowerCase().includes(lower)),\n );\n }, [models, query]);\n\n return (\n <div\n ref={containerRef}\n className={cn(\"dl-model-selector\", className)}\n {...props}\n >\n <button\n type=\"button\"\n disabled={disabled}\n onClick={() => setIsOpen((prev) => !prev)}\n className={cn(\n \"dl-model-selector__trigger\",\n size === \"sm\" && \"dl-model-selector__trigger--sm\",\n )}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n >\n <div className=\"flex items-center gap-1.5\">\n {currentModel?.icon ?? <Bot className=\"size-3.5 text-primary\" />}\n <span className=\"font-semibold text-foreground\">\n {currentModel ? currentModel.name : placeholder}\n </span>\n </div>\n <ChevronDown\n className={cn(\n \"size-3 text-muted-foreground transition-transform duration-200\",\n isOpen && \"rotate-180\",\n )}\n />\n </button>\n\n {isOpen && (\n <div className=\"dl-model-selector__content\" role=\"listbox\">\n {models.length > 3 && (\n <div className=\"relative\">\n <Search className=\"absolute left-2 top-2.5 size-3 text-muted-foreground\" />\n <input\n type=\"text\"\n placeholder=\"Filter models...\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n className=\"dl-model-selector__search w-full pl-7\"\n autoFocus\n />\n </div>\n )}\n\n <div className=\"flex flex-col gap-0.5\">\n {filteredModels.length === 0 ? (\n <div className=\"p-3 text-center text-xs text-muted-foreground\">\n No matching models found\n </div>\n ) : (\n filteredModels.map((model) => {\n const isSelected = model.id === activeId;\n return (\n <div\n key={model.id}\n role=\"option\"\n aria-selected={isSelected}\n data-disabled={model.disabled}\n onClick={() => !model.disabled && handleSelect(model.id)}\n className={cn(\n \"dl-model-selector__item\",\n isSelected && \"dl-model-selector__item--active\",\n model.disabled && \"opacity-50 cursor-not-allowed\",\n )}\n >\n <div className=\"dl-model-selector__item-info\">\n <div className=\"dl-model-selector__item-title\">\n {model.icon ?? (\n <Sparkles className=\"size-3 text-primary\" />\n )}\n <span>{model.name}</span>\n <span className=\"text-xs text-muted-foreground font-normal\">\n ({model.provider})\n </span>\n </div>\n {model.description && (\n <div className=\"dl-model-selector__item-desc\">\n {model.description}\n </div>\n )}\n {model.tags && model.tags.length > 0 && (\n <div className=\"dl-model-selector__item-tags\">\n {model.tags.map((tag) => (\n <span\n key={tag}\n className=\"dl-model-selector__tag\"\n >\n {tag}\n </span>\n ))}\n </div>\n )}\n </div>\n {isSelected && (\n <Check className=\"size-4 text-primary shrink-0 mt-0.5\" />\n )}\n </div>\n );\n })\n )}\n </div>\n </div>\n )}\n </div>\n );\n },\n);\nModelSelector.displayName = \"ModelSelector\";\n","import * as React from \"react\";\nimport {\n CheckCircle2,\n Circle,\n Loader2,\n XCircle,\n ChevronRight,\n ListTodo,\n} from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n PlanProps,\n PlanHeaderProps,\n PlanTaskProps,\n TaskStatus,\n} from \"./plan-types\";\n\nexport type { PlanProps, PlanHeaderProps, PlanTaskProps, TaskStatus };\n\nexport const PlanHeader = React.forwardRef<HTMLDivElement, PlanHeaderProps>(\n (\n {\n className,\n title = \"Execution Plan\",\n status,\n progress,\n children,\n ...props\n },\n ref,\n ) => (\n <div ref={ref} className={cn(\"dl-plan__header\", className)} {...props}>\n <div className=\"dl-plan__header-title\">\n <ListTodo className=\"size-4 text-primary\" />\n <span>{title}</span>\n </div>\n <div className=\"dl-plan__header-meta\">\n {progress && <span>{progress}</span>}\n {status && (\n <span\n className={cn(\n \"px-2 py-0.5 rounded-full text-xs font-semibold uppercase tracking-wider\",\n status === \"completed\" && \"bg-success/15 text-success\",\n status === \"in-progress\" && \"bg-primary/15 text-primary\",\n status === \"failed\" && \"bg-destructive/15 text-destructive\",\n status === \"pending\" && \"bg-muted text-muted-foreground\",\n )}\n >\n {status}\n </span>\n )}\n {children}\n </div>\n </div>\n ),\n);\nPlanHeader.displayName = \"PlanHeader\";\n\nexport const PlanTask = React.forwardRef<HTMLDivElement, PlanTaskProps>(\n (\n {\n className,\n title,\n description,\n status = \"pending\",\n defaultExpanded = false,\n children,\n ...props\n },\n ref,\n ) => {\n const [expanded, setExpanded] = React.useState(defaultExpanded);\n const hasChildren = Boolean(children || description);\n\n const renderIcon = () => {\n switch (status) {\n case \"completed\":\n return <CheckCircle2 className=\"size-4 text-success\" />;\n case \"running\":\n return <Loader2 className=\"size-4 text-primary animate-spin\" />;\n case \"failed\":\n return <XCircle className=\"size-4 text-destructive\" />;\n case \"pending\":\n default:\n return <Circle className=\"size-4 text-muted-foreground\" />;\n }\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n \"dl-plan__task\",\n status === \"completed\" && \"dl-plan__task--completed\",\n className,\n )}\n {...props}\n >\n <div\n className=\"dl-plan__task-header\"\n onClick={() => hasChildren && setExpanded((prev) => !prev)}\n >\n <div className=\"dl-plan__task-icon\">{renderIcon()}</div>\n <div className=\"dl-plan__task-body\">\n <span className=\"dl-plan__task-title\">{title}</span>\n {description && !expanded && (\n <span className=\"dl-plan__task-desc line-clamp-1\">\n {description}\n </span>\n )}\n </div>\n {hasChildren && (\n <ChevronRight\n className={cn(\n \"size-3.5 text-muted-foreground transition-transform shrink-0 mt-0.5\",\n expanded && \"rotate-90\",\n )}\n />\n )}\n </div>\n {expanded && hasChildren && (\n <div className=\"dl-plan__task-details\">\n {description && (\n <div className=\"mb-2 leading-relaxed\">{description}</div>\n )}\n {children}\n </div>\n )}\n </div>\n );\n },\n);\nPlanTask.displayName = \"PlanTask\";\n\n/**\n * Agent task execution plan checklist container.\n * Displays overall plan status, progress counts, and granular step tasks.\n *\n * @example\n * ```tsx\n * <Plan title=\"Refactoring Architecture\" status=\"in-progress\">\n * <PlanHeader progress=\"2 of 4 steps\" status=\"in-progress\" />\n * <div className=\"dl-plan__tasks\">\n * <PlanTask title=\"Read schema\" status=\"completed\" />\n * <PlanTask title=\"Migrate columns\" status=\"running\" />\n * </div>\n * </Plan>\n * ```\n */\nexport const Plan = React.forwardRef<HTMLDivElement, PlanProps>(\n (\n {\n className,\n title = \"Execution Plan\",\n status = \"in-progress\",\n currentStep,\n totalSteps,\n children,\n ...props\n },\n ref,\n ) => {\n const progressText =\n currentStep && totalSteps\n ? `${currentStep} of ${totalSteps} completed`\n : undefined;\n\n return (\n <div ref={ref} className={cn(\"dl-plan\", className)} {...props}>\n {title && (\n <PlanHeader title={title} status={status} progress={progressText} />\n )}\n <div className=\"dl-plan__tasks\">{children}</div>\n </div>\n );\n },\n);\nPlan.displayName = \"Plan\";\n","import * as React from \"react\";\nimport { ExternalLink, Globe, BookOpen } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n SourceItem,\n InlineCitationProps,\n SourcesProps,\n SourceCardProps,\n} from \"./sources-types\";\n\nexport type { SourceItem, InlineCitationProps, SourcesProps, SourceCardProps };\n\n/**\n * Clickable citation reference badge embedded inline in AI-generated answers.\n *\n * @example\n * ```tsx\n * <span>According to PostgreSQL official docs <InlineCitation index={1} title=\"MVCC Concurrency\" /></span>\n * ```\n */\nexport const InlineCitation = React.forwardRef<\n HTMLButtonElement,\n InlineCitationProps\n>(\n (\n { className, index, title, url, snippet, onCitationClick, ...props },\n ref,\n ) => {\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n props.onClick?.(e);\n onCitationClick?.(index);\n if (!props.onClick && !onCitationClick && url) {\n window.open(url, \"_blank\", \"noopener,noreferrer\");\n }\n };\n\n const tooltipText = [title, snippet].filter(Boolean).join(\" — \");\n\n return (\n <button\n ref={ref}\n type=\"button\"\n title={tooltipText || `Source [${index}]`}\n onClick={handleClick}\n className={cn(\"dl-citation\", className)}\n {...props}\n >\n {index}\n </button>\n );\n },\n);\nInlineCitation.displayName = \"InlineCitation\";\n\n/**\n * Card representing an external referenced source or documentation link.\n */\nexport const SourceCard = React.forwardRef<HTMLAnchorElement, SourceCardProps>(\n ({ className, source, ...props }, ref) => {\n const domain =\n source.domain ||\n (() => {\n try {\n return new URL(source.url).hostname.replace(\"www.\", \"\");\n } catch {\n return \"external\";\n }\n })();\n\n return (\n <a\n ref={ref}\n href={source.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\"dl-source-card\", className)}\n {...props}\n >\n <div className=\"dl-source-card__meta\">\n <span className=\"dl-source-card__index\">{source.index}</span>\n <Globe className=\"size-3 text-muted-foreground shrink-0\" />\n <span className=\"dl-source-card__domain\">{domain}</span>\n <ExternalLink className=\"size-2.5 ml-auto text-muted-foreground shrink-0 opacity-70\" />\n </div>\n <div className=\"dl-source-card__title\" title={source.title}>\n {source.title}\n </div>\n </a>\n );\n },\n);\nSourceCard.displayName = \"SourceCard\";\n\n/**\n * Grid or card list displaying sources, citations, and ground-truth web search links.\n *\n * @example\n * ```tsx\n * <Sources sources={[{ id: \"1\", index: 1, title: \"Turborepo Docs\", url: \"https://turbo.build\" }]} />\n * ```\n */\nexport const Sources = React.forwardRef<HTMLDivElement, SourcesProps>(\n ({ className, sources = [], onSourceClick, ...props }, ref) => {\n if (sources.length === 0) return null;\n\n return (\n <div ref={ref} className={cn(\"dl-sources\", className)} {...props}>\n <div className=\"dl-sources__header\">\n <BookOpen className=\"size-3.5 text-primary\" />\n <span>Sources ({sources.length})</span>\n </div>\n <div className=\"dl-sources__grid\">\n {sources.map((src) => (\n <SourceCard\n key={src.id}\n source={src}\n onClick={() => onSourceClick?.(src)}\n />\n ))}\n </div>\n </div>\n );\n },\n);\nSources.displayName = \"Sources\";\n","import * as React from \"react\";\nimport {\n Folder,\n FolderOpen,\n FileCode,\n FileJson,\n FileText,\n File,\n ChevronRight,\n} from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n FileTreeItem,\n FileTreeProps,\n FileTreeNodeProps,\n} from \"./file-tree-types\";\n\nexport type { FileTreeItem, FileTreeProps, FileTreeNodeProps };\n\nconst getFileIcon = (name: string) => {\n if (\n name.endsWith(\".ts\") ||\n name.endsWith(\".tsx\") ||\n name.endsWith(\".js\") ||\n name.endsWith(\".jsx\")\n ) {\n return <FileCode className=\"size-3.5 text-primary\" />;\n }\n if (name.endsWith(\".json\")) {\n return <FileJson className=\"size-3.5 text-warning\" />;\n }\n if (name.endsWith(\".md\") || name.endsWith(\".mdx\")) {\n return <FileText className=\"size-3.5 text-info\" />;\n }\n return <File className=\"size-3.5 text-muted-foreground\" />;\n};\n\nexport const FileTreeNode = React.forwardRef<HTMLDivElement, FileTreeNodeProps>(\n ({ className, item, level = 0, selectedId, onSelect, ...props }, ref) => {\n const isFolder = item.type === \"folder\";\n const [isOpen, setIsOpen] = React.useState(item.defaultOpen ?? false);\n const isSelected = selectedId === item.id;\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n e.stopPropagation();\n if (isFolder) {\n setIsOpen((prev) => !prev);\n }\n onSelect?.(item);\n };\n\n return (\n <div ref={ref} className={cn(\"flex flex-col\", className)} {...props}>\n <div\n className={cn(\n \"dl-file-tree__node\",\n isSelected && \"dl-file-tree__node--active\",\n )}\n onClick={handleClick}\n >\n {isFolder && (\n <ChevronRight\n className={cn(\n \"size-3 text-muted-foreground transition-transform shrink-0\",\n isOpen && \"rotate-90\",\n )}\n />\n )}\n <span className=\"dl-file-tree__icon\">\n {isFolder ? (\n isOpen ? (\n <FolderOpen className=\"size-3.5 text-warning shrink-0\" />\n ) : (\n <Folder className=\"size-3.5 text-warning shrink-0\" />\n )\n ) : (\n getFileIcon(item.name)\n )}\n </span>\n <span className=\"dl-file-tree__name\">{item.name}</span>\n </div>\n\n {isFolder && isOpen && item.children && (\n <div className=\"dl-file-tree__children\">\n {item.children.map((child) => (\n <FileTreeNode\n key={child.id}\n item={child}\n level={level + 1}\n selectedId={selectedId}\n onSelect={onSelect}\n />\n ))}\n </div>\n )}\n </div>\n );\n },\n);\nFileTreeNode.displayName = \"FileTreeNode\";\n\n/**\n * Interactive workspace file and directory tree view for agent codebases.\n *\n * @example\n * ```tsx\n * <FileTree\n * data={[{ id: \"src\", name: \"src\", type: \"folder\", children: [...] }]}\n * onSelect={(file) => console.log(file)}\n * />\n * ```\n */\nexport const FileTree = React.forwardRef<HTMLDivElement, FileTreeProps>(\n (\n {\n className,\n data,\n selectedId: propSelectedId,\n defaultSelectedId,\n onSelect,\n ...props\n },\n ref,\n ) => {\n const isControlled = propSelectedId !== undefined;\n const [selected, setSelected] = React.useState<string | undefined>(\n isControlled ? propSelectedId : defaultSelectedId,\n );\n const activeSelectedId = isControlled ? propSelectedId : selected;\n\n const handleSelect = (item: FileTreeItem) => {\n if (!isControlled) setSelected(item.id);\n onSelect?.(item);\n };\n\n return (\n <div ref={ref} className={cn(\"dl-file-tree\", className)} {...props}>\n {data.map((item) => (\n <FileTreeNode\n key={item.id}\n item={item}\n selectedId={activeSelectedId}\n onSelect={handleSelect}\n />\n ))}\n </div>\n );\n },\n);\nFileTree.displayName = \"FileTree\";\n","import * as React from \"react\";\nimport { AlertCircle, Copy, Check, ChevronRight } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n StackFrameItem,\n StackTraceProps,\n StackFrameProps,\n} from \"./stack-trace-types\";\n\nexport type { StackFrameItem, StackTraceProps, StackFrameProps };\n\nexport const StackFrame = React.forwardRef<HTMLDivElement, StackFrameProps>(\n ({ className, frame, defaultExpanded = false, ...props }, ref) => {\n const [expanded, setExpanded] = React.useState(defaultExpanded);\n const hasSnippet = Boolean(frame.snippet);\n\n return (\n <div\n ref={ref}\n className={cn(\n \"dl-stack-frame\",\n frame.isInternal && \"dl-stack-frame--internal\",\n className,\n )}\n {...props}\n >\n <div\n className=\"dl-stack-frame__header\"\n onClick={() => hasSnippet && setExpanded((prev) => !prev)}\n >\n <div className=\"flex items-center gap-1.5 min-w-0\">\n {hasSnippet && (\n <ChevronRight\n className={cn(\n \"size-3 text-muted-foreground transition-transform shrink-0\",\n expanded && \"rotate-90\",\n )}\n />\n )}\n <span className=\"dl-stack-frame__fn\">\n {frame.functionName ?? \"anonymous\"}\n </span>\n </div>\n <span className=\"dl-stack-frame__location\">\n {frame.fileName}:{frame.lineNumber}\n {frame.columnNumber ? `:${frame.columnNumber}` : \"\"}\n </span>\n </div>\n {expanded && frame.snippet && (\n <pre className=\"dl-stack-frame__snippet\">\n <code>{frame.snippet}</code>\n </pre>\n )}\n </div>\n );\n },\n);\nStackFrame.displayName = \"StackFrame\";\n\n/**\n * Diagnostic stack trace viewer formatting error exceptions and code call frames.\n *\n * @example\n * ```tsx\n * <StackTrace\n * errorType=\"TypeError\"\n * message=\"Cannot read properties of undefined (reading 'map')\"\n * frames={frames}\n * />\n * ```\n */\nexport const StackTrace = React.forwardRef<HTMLDivElement, StackTraceProps>(\n (\n {\n className,\n errorType = \"Error\",\n message,\n frames = [],\n rawStack,\n copyable = true,\n children,\n ...props\n },\n ref,\n ) => {\n const [copied, setCopied] = React.useState(false);\n\n const handleCopy = () => {\n const fullText =\n rawStack ||\n `${errorType}: ${message}\\n` +\n frames\n .map(\n (f) =>\n ` at ${f.functionName || \"anonymous\"} (${f.fileName}:${f.lineNumber})`,\n )\n .join(\"\\n\");\n\n navigator.clipboard?.writeText(fullText).then(() => {\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n });\n };\n\n return (\n <div ref={ref} className={cn(\"dl-stack-trace\", className)} {...props}>\n <div className=\"dl-stack-trace__header\">\n <div className=\"flex items-start gap-2 min-w-0\">\n <AlertCircle className=\"size-4 text-destructive shrink-0 mt-0.5\" />\n <div className=\"dl-stack-trace__title\">\n <span className=\"dl-stack-trace__error-type\">{errorType}</span>\n <span className=\"dl-stack-trace__message\">{message}</span>\n </div>\n </div>\n {copyable && (\n <button\n type=\"button\"\n onClick={handleCopy}\n aria-label={copied ? \"Copied\" : \"Copy stack trace\"}\n className=\"dl-code-block__copy-btn shrink-0\"\n >\n {copied ? (\n <Check className=\"size-3.5 text-success\" />\n ) : (\n <Copy className=\"size-3.5\" />\n )}\n </button>\n )}\n </div>\n\n {frames.length > 0 && (\n <div className=\"dl-stack-trace__frames\">\n {frames.map((frame) => (\n <StackFrame key={frame.id} frame={frame} />\n ))}\n </div>\n )}\n\n {children}\n </div>\n );\n },\n);\nStackTrace.displayName = \"StackTrace\";\n","import * as React from \"react\";\nimport {\n Bot,\n ChevronRight,\n CheckCircle2,\n Loader2,\n XCircle,\n Circle,\n} from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { SubagentProps, SubagentStatus } from \"./subagent-types\";\n\nexport type { SubagentProps, SubagentStatus };\n\nconst getStatusBadge = (status: SubagentStatus) => {\n switch (status) {\n case \"running\":\n return (\n <span className=\"flex items-center gap-1 text-xs text-primary font-medium\">\n <Loader2 className=\"size-3 animate-spin\" />\n <span>Running</span>\n </span>\n );\n case \"completed\":\n return (\n <span className=\"flex items-center gap-1 text-xs text-success font-medium\">\n <CheckCircle2 className=\"size-3\" />\n <span>Done</span>\n </span>\n );\n case \"failed\":\n return (\n <span className=\"flex items-center gap-1 text-xs text-destructive font-medium\">\n <XCircle className=\"size-3\" />\n <span>Failed</span>\n </span>\n );\n case \"idle\":\n default:\n return (\n <span className=\"flex items-center gap-1 text-xs text-muted-foreground\">\n <Circle className=\"size-3\" />\n <span>Idle</span>\n </span>\n );\n }\n};\n\n/**\n * Subagent delegation card displaying autonomous agent lifecycle and messages.\n *\n * @example\n * ```tsx\n * <Subagent\n * name=\"Codebase Researcher\"\n * role=\"Repository Explorer\"\n * status=\"running\"\n * model=\"flash\"\n * />\n * ```\n */\nexport const Subagent = React.forwardRef<HTMLDivElement, SubagentProps>(\n (\n {\n className,\n name,\n role,\n status = \"idle\",\n model,\n conversationId,\n defaultOpen = false,\n children,\n ...props\n },\n ref,\n ) => {\n const [open, setOpen] = React.useState(defaultOpen);\n const hasChildren = Boolean(children);\n\n return (\n <div ref={ref} className={cn(\"dl-subagent\", className)} {...props}>\n <div\n className=\"dl-subagent__header\"\n onClick={() => hasChildren && setOpen((prev) => !prev)}\n >\n <div className=\"dl-subagent__title-area\">\n <div className=\"dl-subagent__avatar\">\n <Bot className=\"size-3.5\" />\n </div>\n <div className=\"dl-subagent__meta\">\n <span className=\"dl-subagent__name\">{name}</span>\n {role && <span className=\"dl-subagent__role\">{role}</span>}\n </div>\n </div>\n\n <div className=\"dl-subagent__badges\">\n {model && (\n <span className=\"px-1.5 py-0.5 rounded text-[10px] font-mono bg-muted text-muted-foreground border border-border\">\n {model}\n </span>\n )}\n {conversationId && (\n <span className=\"px-1.5 py-0.5 rounded text-[10px] font-mono bg-muted text-muted-foreground\">\n #{conversationId.slice(0, 6)}\n </span>\n )}\n {getStatusBadge(status)}\n {hasChildren && (\n <ChevronRight\n className={cn(\n \"size-3.5 text-muted-foreground transition-transform shrink-0 ml-1\",\n open && \"rotate-90\",\n )}\n />\n )}\n </div>\n </div>\n\n {open && hasChildren && (\n <div className=\"dl-subagent__content\">{children}</div>\n )}\n </div>\n );\n },\n);\nSubagent.displayName = \"Subagent\";\n","import * as React from \"react\";\nimport { Gauge } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { ContextUsageProps, TokenUsageBreakdown } from \"./context-types\";\n\nexport type { ContextUsageProps, TokenUsageBreakdown };\n\nconst formatNumber = (num: number) => {\n return new Intl.NumberFormat(\"en-US\").format(num);\n};\n\n/**\n * Context window token utilization gauge displaying consumption metrics and breakdown.\n *\n * @example\n * ```tsx\n * <ContextUsage\n * usedTokens={48200}\n * maxTokens={200000}\n * label=\"Claude 3.5 Sonnet\"\n * breakdown={{ inputTokens: 42000, outputTokens: 6200 }}\n * />\n * ```\n */\nexport const ContextUsage = React.forwardRef<HTMLDivElement, ContextUsageProps>(\n (\n {\n className,\n usedTokens,\n maxTokens,\n breakdown,\n label = \"Context Window\",\n size = \"md\",\n ...props\n },\n ref,\n ) => {\n const percentage = Math.min(\n 100,\n Math.round((usedTokens / maxTokens) * 100),\n );\n\n let fillStatusClass = \"\";\n if (percentage >= 90) {\n fillStatusClass = \"dl-context-usage__bar-fill--danger\";\n } else if (percentage >= 75) {\n fillStatusClass = \"dl-context-usage__bar-fill--warning\";\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n \"dl-context-usage\",\n size === \"sm\" && \"dl-context-usage--sm\",\n className,\n )}\n {...props}\n >\n <div className=\"dl-context-usage__header\">\n <div className=\"dl-context-usage__title\">\n <Gauge className=\"size-3.5 text-primary\" />\n <span>{label}</span>\n </div>\n <div className=\"dl-context-usage__fraction\">\n {formatNumber(usedTokens)} / {formatNumber(maxTokens)} ({percentage}\n %)\n </div>\n </div>\n\n <div className=\"dl-context-usage__bar-bg\">\n <div\n className={cn(\"dl-context-usage__bar-fill\", fillStatusClass)}\n style={{ width: `${percentage}%` }}\n />\n </div>\n\n {breakdown && (\n <div className=\"dl-context-usage__breakdown\">\n {breakdown.inputTokens !== undefined && (\n <span className=\"dl-context-usage__pill\">\n Input: <strong>{formatNumber(breakdown.inputTokens)}</strong>\n </span>\n )}\n {breakdown.outputTokens !== undefined && (\n <span className=\"dl-context-usage__pill\">\n Output: <strong>{formatNumber(breakdown.outputTokens)}</strong>\n </span>\n )}\n {breakdown.reasoningTokens !== undefined && (\n <span className=\"dl-context-usage__pill\">\n Reasoning:{\" \"}\n <strong>{formatNumber(breakdown.reasoningTokens)}</strong>\n </span>\n )}\n {breakdown.cachedTokens !== undefined && (\n <span className=\"dl-context-usage__pill\">\n Cached: <strong>{formatNumber(breakdown.cachedTokens)}</strong>\n </span>\n )}\n </div>\n )}\n </div>\n );\n },\n);\nContextUsage.displayName = \"ContextUsage\";\n","import * as React from \"react\";\nimport { ListOrdered, X, Clock, Loader2, Pause } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { QueueProps, QueueItemProps, QueueTask } from \"./queue-types\";\n\nexport type { QueueProps, QueueItemProps, QueueTask };\n\nexport const QueueItem = React.forwardRef<HTMLDivElement, QueueItemProps>(\n ({ className, task, index, onRemove, ...props }, ref) => {\n const renderStatusIcon = () => {\n switch (task.status) {\n case \"active\":\n return (\n <Loader2 className=\"size-3 text-primary animate-spin shrink-0\" />\n );\n case \"paused\":\n return <Pause className=\"size-3 text-warning shrink-0\" />;\n case \"waiting\":\n default:\n return <Clock className=\"size-3 text-muted-foreground shrink-0\" />;\n }\n };\n\n return (\n <div ref={ref} className={cn(\"dl-queue-item\", className)} {...props}>\n <div className=\"dl-queue-item__info\">\n <span className=\"dl-queue-item__index\">{index + 1}</span>\n {renderStatusIcon()}\n <span className=\"dl-queue-item__title\">{task.title}</span>\n </div>\n\n <div className=\"dl-queue-item__actions\">\n {task.priority && (\n <span\n className={cn(\n \"px-1.5 py-0.5 rounded text-[10px] font-semibold uppercase tracking-wider\",\n task.priority === \"high\" &&\n \"bg-destructive/15 text-destructive\",\n task.priority === \"normal\" && \"bg-primary/15 text-primary\",\n task.priority === \"low\" && \"bg-muted text-muted-foreground\",\n )}\n >\n {task.priority}\n </span>\n )}\n {task.estimatedDuration && (\n <span className=\"text-xs text-muted-foreground font-mono\">\n {task.estimatedDuration}\n </span>\n )}\n {onRemove && (\n <button\n type=\"button\"\n onClick={onRemove}\n aria-label=\"Remove task\"\n className=\"text-muted-foreground hover:text-foreground p-0.5 rounded\"\n >\n <X className=\"size-3.5\" />\n </button>\n )}\n </div>\n </div>\n );\n },\n);\nQueueItem.displayName = \"QueueItem\";\n\n/**\n * Agent task execution queue container tracking scheduled, running, and queued jobs.\n *\n * @example\n * ```tsx\n * <Queue\n * tasks={[\n * { id: \"1\", title: \"Index codebase\", priority: \"high\", status: \"active\" },\n * { id: \"2\", title: \"Generate tests\", priority: \"normal\", status: \"waiting\" }\n * ]}\n * />\n * ```\n */\nexport const Queue = React.forwardRef<HTMLDivElement, QueueProps>(\n (\n {\n className,\n tasks = [],\n title = \"Execution Queue\",\n onRemoveTask,\n children,\n ...props\n },\n ref,\n ) => {\n return (\n <div ref={ref} className={cn(\"dl-queue\", className)} {...props}>\n <div className=\"dl-queue__header\">\n <div className=\"flex items-center gap-1.5\">\n <ListOrdered className=\"size-4 text-primary\" />\n <span>{title}</span>\n </div>\n <span className=\"text-xs text-muted-foreground font-normal\">\n {tasks.length} item{tasks.length === 1 ? \"\" : \"s\"}\n </span>\n </div>\n\n <div className=\"dl-queue__list\">\n {tasks.map((task, idx) => (\n <QueueItem\n key={task.id}\n task={task}\n index={idx}\n onRemove={onRemoveTask ? () => onRemoveTask(task.id) : undefined}\n />\n ))}\n </div>\n\n {children}\n </div>\n );\n },\n);\nQueue.displayName = \"Queue\";\n","import * as React from \"react\";\nimport {\n CheckCircle2,\n XCircle,\n MinusCircle,\n ChevronRight,\n FlaskConical,\n} from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport {\n TestCaseItem,\n TestCaseStatus,\n TestResultsProps,\n TestCaseProps,\n} from \"./test-results-types\";\n\nexport type { TestCaseItem, TestCaseStatus, TestResultsProps, TestCaseProps };\n\nexport const TestCase = React.forwardRef<HTMLDivElement, TestCaseProps>(\n ({ className, test, defaultExpanded = false, ...props }, ref) => {\n const [expanded, setExpanded] = React.useState(defaultExpanded);\n const hasError = Boolean(test.errorMessage);\n\n const renderIcon = () => {\n switch (test.status) {\n case \"passed\":\n return <CheckCircle2 className=\"size-4 text-success shrink-0\" />;\n case \"failed\":\n return <XCircle className=\"size-4 text-destructive shrink-0\" />;\n case \"skipped\":\n default:\n return (\n <MinusCircle className=\"size-4 text-muted-foreground shrink-0\" />\n );\n }\n };\n\n return (\n <div ref={ref} className={cn(\"dl-test-case\", className)} {...props}>\n <div\n className={cn(\"dl-test-case__row\", hasError && \"cursor-pointer\")}\n onClick={() => hasError && setExpanded((prev) => !prev)}\n >\n <div className=\"dl-test-case__info\">\n {renderIcon()}\n <span className=\"dl-test-case__name\">{test.name}</span>\n </div>\n\n <div className=\"flex items-center gap-2\">\n {test.durationMs !== undefined && (\n <span className=\"dl-test-case__duration\">\n {test.durationMs}ms\n </span>\n )}\n {hasError && (\n <ChevronRight\n className={cn(\n \"size-3 text-muted-foreground transition-transform\",\n expanded && \"rotate-90\",\n )}\n />\n )}\n </div>\n </div>\n\n {expanded && test.errorMessage && (\n <div className=\"dl-test-case__error\">{test.errorMessage}</div>\n )}\n </div>\n );\n },\n);\nTestCase.displayName = \"TestCase\";\n\n/**\n * Test execution results dashboard visualizing passed, failed, and skipped unit or integration tests.\n *\n * @example\n * ```tsx\n * <TestResults\n * title=\"packages/ui Unit Tests\"\n * duration=\"1.2s\"\n * tests={[\n * { id: \"1\", name: \"renders button correctly\", status: \"passed\", durationMs: 4 },\n * { id: \"2\", name: \"validates zod schema\", status: \"failed\", errorMessage: \"Expected true, received false\" }\n * ]}\n * />\n * ```\n */\nexport const TestResults = React.forwardRef<HTMLDivElement, TestResultsProps>(\n (\n {\n className,\n title = \"Test Results\",\n duration,\n tests = [],\n children,\n ...props\n },\n ref,\n ) => {\n const passed = tests.filter((t) => t.status === \"passed\").length;\n const failed = tests.filter((t) => t.status === \"failed\").length;\n const skipped = tests.filter((t) => t.status === \"skipped\").length;\n\n return (\n <div ref={ref} className={cn(\"dl-test-results\", className)} {...props}>\n <div className=\"dl-test-results__header\">\n <div className=\"flex items-center gap-2\">\n <FlaskConical className=\"size-4 text-primary\" />\n <span className=\"font-semibold text-foreground\">{title}</span>\n {duration && (\n <span className=\"text-xs text-muted-foreground font-mono\">\n in {duration}\n </span>\n )}\n </div>\n\n <div className=\"dl-test-results__summary\">\n <span className=\"dl-test-results__badge dl-test-results__badge--passed\">\n {passed} passed\n </span>\n {failed > 0 && (\n <span className=\"dl-test-results__badge dl-test-results__badge--failed\">\n {failed} failed\n </span>\n )}\n {skipped > 0 && (\n <span className=\"dl-test-results__badge dl-test-results__badge--skipped\">\n {skipped} skipped\n </span>\n )}\n </div>\n </div>\n\n <div className=\"dl-test-results__list\">\n {tests.map((test) => (\n <TestCase key={test.id} test={test} />\n ))}\n </div>\n\n {children}\n </div>\n );\n },\n);\nTestResults.displayName = \"TestResults\";\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface MetricCardProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Label describing the metric */\n readonly label: string;\n /** Primary numeric or textual value */\n readonly value: React.ReactNode;\n /** Contextual note, subtitle, or percentage delta */\n readonly note?: string;\n /** Indicates positive trend (green highlight) */\n readonly positive?: boolean;\n /** Optional icon displayed next to the label */\n readonly icon?: React.ReactNode;\n}\n\n/**\n * MetricCard component displaying key statistical benchmarks with labels, values, and trends.\n *\n * @example\n * ```tsx\n * <MetricCard\n * label=\"Active services\"\n * value={5}\n * note=\"100% operational\"\n * positive={true}\n * />\n * ```\n */\nexport const MetricCard = React.forwardRef<HTMLDivElement, MetricCardProps>(\n ({ label, value, note, positive, icon, className, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(\"dl-metric-card\", className)} {...props}>\n <div className=\"dl-metric-card__header\">\n <span className=\"dl-metric-card__label\">{label}</span>\n {icon && <span className=\"dl-metric-card__icon\">{icon}</span>}\n </div>\n <div className=\"dl-metric-card__value-row\">\n <span className=\"dl-metric-card__value\">{value}</span>\n </div>\n {note && (\n <div\n className={cn(\n \"dl-metric-card__note\",\n positive === true && \"dl-metric-card__note--positive\",\n positive === false && \"dl-metric-card__note--negative\",\n )}\n >\n {note}\n </div>\n )}\n </div>\n );\n },\n);\nMetricCard.displayName = \"MetricCard\";\n\nexport interface MetricsGridProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Grid items */\n readonly children: React.ReactNode;\n}\n\n/**\n * Container component arranging MetricCards in a cohesive responsive grid layout.\n */\nexport const MetricsGrid = React.forwardRef<HTMLDivElement, MetricsGridProps>(\n ({ children, className, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(\"dl-metrics-grid\", className)} {...props}>\n {children}\n </div>\n );\n },\n);\nMetricsGrid.displayName = \"MetricsGrid\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Check, Copy } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface CopyButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Text content to write to user clipboard */\n readonly textToCopy: string;\n /** Label when in default idle state */\n readonly label?: string;\n /** Label shown upon successful copy */\n readonly copiedLabel?: string;\n /** Duration in milliseconds to maintain copied feedback (default 2000) */\n readonly resetTimeoutMs?: number;\n}\n\n/**\n * CopyButton component provides one-click clipboard copying with animated feedback.\n *\n * @example\n * ```tsx\n * <CopyButton textToCopy=\"dl_live_9a8f...bc01\" label=\"Copy Key\" />\n * ```\n */\nexport const CopyButton = React.forwardRef<HTMLButtonElement, CopyButtonProps>(\n (\n {\n textToCopy,\n label = \"Copy\",\n copiedLabel = \"Copied\",\n resetTimeoutMs = 2000,\n className,\n onClick,\n ...props\n },\n ref,\n ) => {\n const [isCopied, setIsCopied] = React.useState(false);\n\n const handleCopy = async (e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n\n try {\n await navigator.clipboard.writeText(textToCopy);\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), resetTimeoutMs);\n } catch {\n // Fallback for non-secure contexts if needed\n }\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n \"dl-copy-button\",\n isCopied && \"dl-copy-button--copied\",\n className,\n )}\n onClick={handleCopy}\n {...props}\n >\n {isCopied ? (\n <Check className=\"dl-copy-button__icon\" />\n ) : (\n <Copy className=\"dl-copy-button__icon\" />\n )}\n <span>{isCopied ? copiedLabel : label}</span>\n </button>\n );\n },\n);\nCopyButton.displayName = \"CopyButton\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { AlertTriangle } from \"lucide-react\";\nimport { CopyButton } from \"@/components/copy-button\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface SecretRevealCardProps extends React.HTMLAttributes<HTMLDivElement> {\n /** The sensitive secret or API key to reveal */\n readonly secret: string;\n /** Custom warning message (default informs about one-time reveal) */\n readonly warningMessage?: string;\n /** Label for copy button */\n readonly copyLabel?: string;\n}\n\n/**\n * SecretRevealCard component securely displays newly provisioned API keys and secrets\n * with copy capabilities and one-time retrieval warnings.\n *\n * @example\n * ```tsx\n * <SecretRevealCard\n * secret=\"dl_live_49f82bc9...\"\n * warningMessage=\"Copy this key now. It is hashed with SHA-256 and will never be shown again.\"\n * />\n * ```\n */\nexport const SecretRevealCard = React.forwardRef<\n HTMLDivElement,\n SecretRevealCardProps\n>(\n (\n {\n secret,\n warningMessage = \"One-time reveal. Please copy and store this credential securely before closing.\",\n copyLabel = \"Copy Secret\",\n className,\n ...props\n },\n ref,\n ) => {\n return (\n <div ref={ref} className={cn(\"dl-secret-reveal\", className)} {...props}>\n {warningMessage && (\n <div className=\"dl-secret-reveal__warning\">\n <AlertTriangle />\n <span>{warningMessage}</span>\n </div>\n )}\n <div className=\"dl-secret-reveal__code-wrap\">\n <code className=\"dl-secret-reveal__code\">{secret}</code>\n <CopyButton textToCopy={secret} label={copyLabel} />\n </div>\n </div>\n );\n },\n);\nSecretRevealCard.displayName = \"SecretRevealCard\";\n","/**\n * @file heading.tsx\n * @description Accessible heading primitive decoupling semantic hierarchy from visual presentation.\n */\n\nimport { forwardRef } from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport type { HeadingProps, HeadingTag } from \"./typography.types\";\n\n/**\n * Resolves the default HTML heading tag based on the visual size token.\n *\n * @param size - Visual size level\n * @returns Standard semantic heading tag\n */\nfunction resolveDefaultTag(size: string): HeadingTag {\n if (size === \"display\") return \"h1\";\n if (\n size === \"h1\" ||\n size === \"h2\" ||\n size === \"h3\" ||\n size === \"h4\" ||\n size === \"h5\" ||\n size === \"h6\"\n ) {\n return size;\n }\n return \"h2\";\n}\n\n/**\n * Heading primitive component.\n *\n * Allows developers to decouple semantic accessibility (`as=\"h1\"`) from visual\n * design styling (`size=\"h3\"`), ensuring 100% SEO/a11y compliance without breaking layouts.\n *\n * @example\n * ```tsx\n * // Visual h3 styling but semantic h1 tag in document outline\n * <Heading as=\"h1\" size=\"h3\">Financial Overview</Heading>\n *\n * // Standard display heading\n * <Heading size=\"display\" color=\"primary\">Hero Headline</Heading>\n * ```\n */\nexport const Heading = forwardRef<HTMLHeadingElement, HeadingProps>(\n function Heading(\n {\n as,\n size = \"h2\",\n color = \"default\",\n weight,\n align = \"left\",\n truncate = false,\n className,\n children,\n ...props\n },\n ref,\n ) {\n const Component = (as ?? resolveDefaultTag(size)) as HeadingTag;\n\n return (\n <Component\n ref={ref}\n className={cn(\"dl-heading\", `dl-${size}`, className)}\n data-typography-color={color !== \"default\" ? color : undefined}\n data-typography-align={align !== \"left\" ? align : undefined}\n data-typography-weight={weight}\n data-typography-truncate={truncate ? \"true\" : undefined}\n {...props}\n >\n {children}\n </Component>\n );\n },\n);\n\nHeading.displayName = \"Heading\";\n","/**\n * @file text.tsx\n * @description Accessible text primitive for body, captions, code, and metrics.\n */\n\nimport { forwardRef } from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport type { TextProps, TextTag } from \"./typography.types\";\n\n/**\n * Text primitive component.\n *\n * Provides standardized body, caption, code, and metric formatting consuming\n * centralized design tokens across all brands.\n *\n * @example\n * ```tsx\n * <Text variant=\"body-sm\" color=\"muted\">Updated 2 minutes ago</Text>\n * <Text as=\"span\" variant=\"metric\" color=\"success\">+18.4%</Text>\n * ```\n */\nexport const Text = forwardRef<HTMLElement, TextProps>(function Text(\n {\n as: Component = \"p\",\n variant = \"body\",\n color = \"default\",\n weight,\n align = \"left\",\n truncate = false,\n className,\n children,\n ...props\n },\n ref,\n) {\n const Element = Component as TextTag;\n\n return (\n <Element\n ref={ref as never}\n className={cn(\"dl-text\", `dl-${variant}`, className)}\n data-typography-color={color !== \"default\" ? color : undefined}\n data-typography-align={align !== \"left\" ? align : undefined}\n data-typography-weight={weight}\n data-typography-truncate={truncate ? \"true\" : undefined}\n {...props}\n >\n {children}\n </Element>\n );\n});\n\nText.displayName = \"Text\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Visual padding scale tokens mapped to semantic spacing CSS variables.\n */\nexport type BoxPadding =\n | \"0\"\n | \"1\"\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"8\"\n | \"10\"\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 8\n | 10;\n\n/**\n * Border radius scale tokens mapped to brand radius CSS variables.\n */\nexport type BoxRadius = \"none\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\n/**\n * Elevation shadow scale tokens.\n */\nexport type BoxShadow = \"none\" | \"sm\" | \"md\" | \"lg\" | \"glass\";\n\n/**\n * Props for the polymorphic Box layout primitive.\n */\nexport interface BoxProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * If true, delegates rendering to the direct child element via Radix Slot.\n * @default false\n */\n asChild?: boolean;\n /**\n * HTML element type to render.\n * @default \"div\"\n */\n as?: React.ElementType;\n /**\n * Internal padding token mapped to --space-* CSS variables.\n */\n p?: BoxPadding;\n /**\n * Horizontal padding token mapped to --space-* CSS variables.\n */\n px?: BoxPadding;\n /**\n * Vertical padding token mapped to --space-* CSS variables.\n */\n py?: BoxPadding;\n /**\n * Border radius token mapped to --radius-* CSS variables.\n */\n radius?: BoxRadius;\n /**\n * Elevation shadow token.\n */\n shadow?: BoxShadow;\n /**\n * Whether to render a default 1px border using var(--border).\n * @default false\n */\n border?: boolean;\n /**\n * Background surface token.\n */\n bg?:\n \"background\" | \"card\" | \"surface\" | \"surface-2\" | \"muted\" | \"transparent\";\n}\n\n/**\n * Primitive bounding Box component for structured spacing, borders, and surfaces.\n *\n * @example\n * ```tsx\n * <Box p=\"6\" bg=\"card\" border radius=\"lg\" shadow=\"md\">\n * <p>Card Content</p>\n * </Box>\n * ```\n */\nexport const Box = React.forwardRef<HTMLDivElement, BoxProps>(\n (\n {\n className,\n asChild = false,\n as,\n p,\n px,\n py,\n radius,\n shadow,\n border = false,\n bg,\n style,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : as || \"div\";\n\n const inlineStyles: React.CSSProperties = { ...style };\n if (p) inlineStyles.padding = `var(--space-${p})`;\n if (px) {\n inlineStyles.paddingLeft = `var(--space-${px})`;\n inlineStyles.paddingRight = `var(--space-${px})`;\n }\n if (py) {\n inlineStyles.paddingTop = `var(--space-${py})`;\n inlineStyles.paddingBottom = `var(--space-${py})`;\n }\n if (radius && radius !== \"none\") {\n inlineStyles.borderRadius = `var(--radius-${radius}, var(--radius))`;\n }\n if (border) {\n inlineStyles.border = \"1px solid var(--border)\";\n }\n if (bg) {\n inlineStyles.backgroundColor = `var(--${bg})`;\n }\n\n return (\n <Comp\n ref={ref}\n className={cn(\n \"dl-box\",\n shadow && shadow !== \"none\" && `dl-shadow-${shadow}`,\n className,\n )}\n style={inlineStyles}\n {...props}\n />\n );\n },\n);\n\nBox.displayName = \"Box\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Flexbox direction options.\n */\nexport type FlexDirection = \"row\" | \"row-reverse\" | \"col\" | \"col-reverse\";\n\n/**\n * Flexbox content alignment options along the main axis.\n */\nexport type FlexJustify =\n \"start\" | \"center\" | \"end\" | \"between\" | \"around\" | \"evenly\";\n\n/**\n * Flexbox item alignment options along the cross axis.\n */\nexport type FlexAlign = \"start\" | \"center\" | \"end\" | \"stretch\" | \"baseline\";\n\n/**\n * Spacing gap scale tokens mapped to --space-* CSS variables.\n */\nexport type LayoutGap =\n | \"0\"\n | \"1\"\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"8\"\n | \"10\"\n | 0\n | 1\n | 2\n | 3\n | 4\n | 5\n | 6\n | 8\n | 10;\n\n/**\n * Props for the Flex layout primitive.\n */\nexport interface FlexProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * If true, delegates rendering to the direct child element via Radix Slot.\n * @default false\n */\n asChild?: boolean;\n /**\n * HTML element type to render.\n * @default \"div\"\n */\n as?: React.ElementType;\n /**\n * Flex direction.\n * @default \"row\"\n */\n direction?: FlexDirection;\n /**\n * Main axis alignment (justify-content).\n */\n justify?: FlexJustify;\n /**\n * Cross axis alignment (align-items).\n */\n align?: FlexAlign;\n /**\n * Flex wrap behavior.\n * @default false\n */\n wrap?: boolean | \"wrap\" | \"nowrap\" | \"reverse\";\n /**\n * Gap spacing token mapped to --space-*.\n */\n gap?: LayoutGap;\n /**\n * Whether to display as inline-flex.\n * @default false\n */\n inline?: boolean;\n}\n\n/**\n * Polymorphic Flex container component for fluid 1-dimensional layouts.\n *\n * @example\n * ```tsx\n * <Flex justify=\"between\" align=\"center\" gap=\"4\">\n * <span>Title</span>\n * <Button size=\"sm\">Action</Button>\n * </Flex>\n * ```\n */\nexport const Flex = React.forwardRef<HTMLDivElement, FlexProps>(\n (\n {\n className,\n asChild = false,\n as,\n direction = \"row\",\n justify,\n align,\n wrap = false,\n gap,\n inline = false,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : as || \"div\";\n\n return (\n <Comp\n ref={ref}\n className={cn(\n \"dl-flex\",\n inline && \"dl-flex--inline\",\n direction && `dl-flex--${direction}`,\n justify && `dl-flex--justify-${justify}`,\n align && `dl-flex--align-${align}`,\n (wrap === true || wrap === \"wrap\") && \"dl-flex--wrap\",\n wrap === \"nowrap\" && \"dl-flex--nowrap\",\n wrap === \"reverse\" && \"dl-flex--wrap-reverse\",\n gap !== undefined && `dl-gap-${gap}`,\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nFlex.displayName = \"Flex\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"@/lib/utils\";\nimport type { LayoutGap } from \"./flex\";\n\n/**\n * Direction orientation for Stack flow.\n */\nexport type StackDirection = \"col\" | \"row\";\n\n/**\n * Alignment options for Stack items.\n */\nexport type StackAlign = \"start\" | \"center\" | \"end\" | \"stretch\" | \"baseline\";\n\n/**\n * Props for the Stack layout primitive.\n */\nexport interface StackProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * If true, delegates rendering to the direct child element via Radix Slot.\n * @default false\n */\n asChild?: boolean;\n /**\n * HTML element type to render.\n * @default \"div\"\n */\n as?: React.ElementType;\n /**\n * Flow orientation of the stack items.\n * @default \"col\"\n */\n direction?: StackDirection;\n /**\n * Spacing gap token mapped to --space-* CSS variables.\n * @default \"3\"\n */\n gap?: LayoutGap;\n /**\n * Alignment along the cross axis.\n * @default \"stretch\"\n */\n align?: StackAlign;\n}\n\n/**\n * High-velocity Stack layout primitive for structured vertical or horizontal flows.\n *\n * @example\n * ```tsx\n * <Stack direction=\"col\" gap=\"4\">\n * <Input label=\"Name\" />\n * <Input label=\"Email\" />\n * <Button>Submit</Button>\n * </Stack>\n * ```\n */\nexport const Stack = React.forwardRef<HTMLDivElement, StackProps>(\n (\n {\n className,\n asChild = false,\n as,\n direction = \"col\",\n gap = \"3\",\n align = \"stretch\",\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : as || \"div\";\n\n return (\n <Comp\n ref={ref}\n className={cn(\n \"dl-stack\",\n `dl-stack--${direction}`,\n `dl-flex--align-${align}`,\n gap !== undefined && `dl-gap-${gap}`,\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nStack.displayName = \"Stack\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"@/lib/utils\";\nimport type { LayoutGap } from \"./flex\";\n\n/**\n * Grid column counts (1 through 12).\n */\nexport type GridColumns = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\n/**\n * Props for the Grid layout primitive.\n */\nexport interface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * If true, delegates rendering to the direct child element via Radix Slot.\n * @default false\n */\n asChild?: boolean;\n /**\n * HTML element type to render.\n * @default \"div\"\n */\n as?: React.ElementType;\n /**\n * Number of uniform columns, or an auto-fit minItemWidth (e.g. \"280px\").\n * @default 1\n */\n cols?: GridColumns | string;\n /**\n * Alias for `cols`.\n */\n columns?: GridColumns | string;\n /**\n * Spacing gap token mapped to --space-* CSS variables.\n * @default \"4\"\n */\n gap?: LayoutGap;\n /**\n * Whether to display as inline-grid.\n * @default false\n */\n inline?: boolean;\n}\n\n/**\n * Responsive 2D Grid layout primitive.\n *\n * @example\n * ```tsx\n * <Grid cols={3} gap=\"4\">\n * <MetricCard title=\"A\" />\n * <MetricCard title=\"B\" />\n * <MetricCard title=\"C\" />\n * </Grid>\n * ```\n */\nexport const Grid = React.forwardRef<HTMLDivElement, GridProps>(\n (\n {\n className,\n asChild = false,\n as,\n cols,\n columns,\n gap = \"4\",\n inline = false,\n style,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : as || \"div\";\n const resolvedCols = cols ?? columns ?? 1;\n\n const inlineStyles: React.CSSProperties = { ...style };\n if (typeof resolvedCols === \"number\") {\n inlineStyles.gridTemplateColumns = `repeat(${resolvedCols}, minmax(0, 1fr))`;\n } else if (typeof resolvedCols === \"string\") {\n inlineStyles.gridTemplateColumns = `repeat(auto-fit, minmax(${resolvedCols}, 1fr))`;\n }\n\n return (\n <Comp\n ref={ref}\n className={cn(\n \"dl-grid\",\n inline && \"dl-grid--inline\",\n gap !== undefined && `dl-gap-${gap}`,\n className,\n )}\n style={inlineStyles}\n {...props}\n />\n );\n },\n);\n\nGrid.displayName = \"Grid\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Responsive maximum width constraint for the Container.\n */\nexport type ContainerSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"fluid\";\n\n/**\n * Props for the Container layout primitive.\n */\nexport interface ContainerProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * If true, delegates rendering to the direct child element via Radix Slot.\n * @default false\n */\n asChild?: boolean;\n /**\n * HTML element type to render.\n * @default \"div\"\n */\n as?: React.ElementType;\n /**\n * Maximum width threshold.\n * @default \"xl\"\n */\n size?: ContainerSize;\n}\n\n/**\n * Centered responsive max-width boundary component for page sections and layouts.\n *\n * @example\n * ```tsx\n * <Container size=\"xl\">\n * <Header />\n * <Main />\n * </Container>\n * ```\n */\nexport const Container = React.forwardRef<HTMLDivElement, ContainerProps>(\n ({ className, asChild = false, as, size = \"xl\", ...props }, ref) => {\n const Comp = asChild ? Slot : as || \"div\";\n\n return (\n <Comp\n ref={ref}\n className={cn(\"dl-container\", `dl-container--${size}`, className)}\n {...props}\n />\n );\n },\n);\n\nContainer.displayName = \"Container\";\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface LegalFooterProps extends React.HTMLAttributes<HTMLElement> {\n /** Optional application name (e.g., \"FinAI\", \"DevLab Portal\", \"OrchestrAI\", \"VitalAI\", \"DevLab Logs\") */\n readonly appName?: string;\n /** Optional semver or build tag (e.g., \"v1.0.0\") */\n readonly version?: string;\n /** Company or organization copyright holder (defaults to \"Yuva Devlab\") */\n readonly companyName?: string;\n /** Visual placement variant */\n readonly variant?: \"login\" | \"sidebar\" | \"settings\";\n /** Whether to render compliance and navigation links (Privacy, Terms, Security) */\n readonly showLinks?: boolean;\n /** Custom Terms URL */\n readonly termsHref?: string;\n /** Custom Privacy URL */\n readonly privacyHref?: string;\n /** Custom Security URL */\n readonly securityHref?: string;\n}\n\n/**\n * Universal enterprise legal and copyright footer.\n * Dynamically adapts to host theme tokens, typography, and dark mode.\n */\nexport const LegalFooter = React.forwardRef<HTMLElement, LegalFooterProps>(\n (\n {\n appName,\n version,\n companyName = \"Yuva Devlab\",\n variant = \"login\",\n showLinks = true,\n termsHref = \"#\",\n privacyHref = \"#\",\n securityHref = \"#\",\n className,\n ...props\n },\n ref,\n ) => {\n const currentYear = new Date().getFullYear();\n\n if (variant === \"sidebar\") {\n return (\n <div\n ref={ref as React.Ref<HTMLDivElement>}\n className={cn(\"dl-legal-footer dl-legal-footer--sidebar\", className)}\n {...props}\n >\n <span>\n {appName\n ? `${appName} ${version ?? \"\"}`.trim()\n : (version ?? \"v1.0.0\")}\n </span>\n <span>\n © {currentYear} {companyName}\n </span>\n </div>\n );\n }\n\n if (variant === \"settings\") {\n return (\n <div\n ref={ref as React.Ref<HTMLDivElement>}\n className={cn(\"dl-legal-footer dl-legal-footer--settings\", className)}\n {...props}\n >\n <div className=\"dl-legal-footer__meta-row\">\n <span>{appName ?? companyName}</span>\n {version && (\n <span className=\"dl-legal-footer__version-badge\">{version}</span>\n )}\n </div>\n <p className=\"dl-legal-footer__copyright\">\n © {currentYear} {companyName}. All rights reserved.\n </p>\n </div>\n );\n }\n\n // Default: \"login\" variant\n return (\n <footer\n ref={ref}\n className={cn(\"dl-legal-footer dl-legal-footer--login\", className)}\n {...props}\n >\n {showLinks && (\n <nav aria-label=\"Legal navigation\" className=\"dl-legal-footer__links\">\n {appName && (\n <span className=\"dl-legal-footer__app-name\">{appName}</span>\n )}\n {appName && (\n <span className=\"dl-legal-footer__divider\" aria-hidden=\"true\">\n •\n </span>\n )}\n <a href={privacyHref} className=\"dl-legal-footer__link\">\n Privacy\n </a>\n <span className=\"dl-legal-footer__divider\" aria-hidden=\"true\">\n •\n </span>\n <a href={termsHref} className=\"dl-legal-footer__link\">\n Terms\n </a>\n <span className=\"dl-legal-footer__divider\" aria-hidden=\"true\">\n •\n </span>\n <a href={securityHref} className=\"dl-legal-footer__link\">\n Security\n </a>\n </nav>\n )}\n <p className=\"dl-legal-footer__copyright\">\n © {currentYear} {companyName}. All rights reserved.\n </p>\n </footer>\n );\n },\n);\n\nLegalFooter.displayName = \"LegalFooter\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAAA;AAAA,EAAA,0BAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAAC;AAAA,EAAA;AA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","names":["CollapsibleContent","CollapsibleTrigger","Label","RadioGroup","Separator","Tooltip","React","React","import_jsx_runtime","React","import_jsx_runtime","React","React","import_class_variance_authority","import_jsx_runtime","import_jsx_runtime","React","import_jsx_runtime","import_class_variance_authority","import_jsx_runtime","React","import_react_slot","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","useEmblaCarousel","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","React","import_jsx_runtime","React","RechartsPrimitive","import_jsx_runtime","React","RechartsPrimitive","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","CollapsibleTrigger","CollapsibleContent","React","import_lucide_react","React","import_lucide_react","import_jsx_runtime","import_jsx_runtime","CommandPrimitive","import_jsx_runtime","React","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","ContextMenuPrimitive","import_lucide_react","import_jsx_runtime","React","import_lucide_react","React","import_jsx_runtime","React","import_jsx_runtime","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","React","import_lucide_react","React","import_jsx_runtime","import_jsx_runtime","CalendarIcon","React","import_jsx_runtime","DrawerPrimitive","React","import_lucide_react","import_jsx_runtime","React","DropdownMenuPrimitive","import_lucide_react","import_jsx_runtime","React","import_react_slot","React","import_class_variance_authority","import_jsx_runtime","Label","import_jsx_runtime","Label","React","import_jsx_runtime","React","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","formatNumber","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_jsx_runtime","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","MenubarPrimitive","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_class_variance_authority","import_lucide_react","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","RadioGroup","import_lucide_react","import_jsx_runtime","React","import_jsx_runtime","import_lucide_react","React","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_jsx_runtime","Separator","React","import_class_variance_authority","import_lucide_react","import_jsx_runtime","React","React","import_jsx_runtime","Tooltip","import_jsx_runtime","React","import_jsx_runtime","React","import_react_slot","import_jsx_runtime","React","import_react_slot","import_class_variance_authority","import_jsx_runtime","Tooltip","React","import_react_slot","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","Separator","React","import_jsx_runtime","import_react","import_jsx_runtime","Sonner","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_class_variance_authority","import_jsx_runtime","React","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","TerminalIcon","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","import_react","import_jsx_runtime","Heading","import_react","import_jsx_runtime","Text","React","import_react_slot","import_jsx_runtime","React","import_react_slot","import_jsx_runtime","React","import_react_slot","import_jsx_runtime","React","import_react_slot","import_jsx_runtime","React","import_react_slot","import_jsx_runtime","React","import_jsx_runtime"]}