@yuva-devlab/ui 1.4.2 → 1.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/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.tsx","../src/components/chart/chart.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.tsx","../src/components/date-picker/date-picker.tsx","../src/components/popover/popover.tsx","../src/components/drawer/drawer.tsx","../src/components/dropdown-menu/dropdown-menu.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.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/select/select.tsx","../src/components/separator/separator.tsx","../src/components/sheet/sheet.tsx","../src/components/sidebar/sidebar.tsx","../src/components/tooltip/tooltip.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"],"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\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Merges multiple Tailwind class names and conditionally applied class definitions.\n * Combines clsx dynamic toggling with tailwind-merge collision deduplication.\n *\n * @param inputs - List of class names, conditional records, or arrays.\n * @returns Deduplicated, normalized CSS class string.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(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 className=\"size-4\" />\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 \"../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 * Pure CSS with zero runtime Tailwind dependencies.\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 \"../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 *\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 * className=\"rounded-md border\"\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(\n \"group/calendar p-3 [--cell-size:2rem] in-data-[slot=card-content]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className,\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"relative flex flex-col gap-4 md:flex-row\",\n defaultClassNames.months,\n ),\n month: cn(\"flex w-full flex-col gap-4\", defaultClassNames.month),\n nav: cn(\n \"absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1\",\n defaultClassNames.nav,\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"select-none p-0 aria-disabled:opacity-50 size-(--cell-size)\",\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"select-none p-0 aria-disabled:opacity-50 size-(--cell-size)\",\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n \"flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)\",\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\n \"flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium\",\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn(\n \"has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border\",\n defaultClassNames.dropdown_root,\n ),\n dropdown: cn(\n \"bg-popover absolute inset-0 opacity-0\",\n defaultClassNames.dropdown,\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5\",\n defaultClassNames.caption_label,\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal\",\n defaultClassNames.weekday,\n ),\n week: cn(\"mt-2 flex w-full\", defaultClassNames.week),\n week_number_header: cn(\n \"w-(--cell-size) select-none\",\n defaultClassNames.week_number_header,\n ),\n week_number: cn(\n \"text-muted-foreground select-none text-[0.8rem]\",\n defaultClassNames.week_number,\n ),\n day: cn(\n \"group/day relative aspect-square select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md size-full\",\n defaultClassNames.day,\n ),\n range_start: cn(\n \"bg-accent rounded-l-md\",\n defaultClassNames.range_start,\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"bg-accent rounded-r-md\", defaultClassNames.range_end),\n today: cn(\n \"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none\",\n defaultClassNames.today,\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside,\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled,\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n );\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n );\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n );\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n );\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n );\n },\n ...components,\n }}\n {...props}\n />\n );\n}\n\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=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers[\"selected\"] &&\n !modifiers[\"range_start\"] &&\n !modifiers[\"range_end\"] &&\n !modifiers[\"range_middle\"]\n }\n data-range-start={modifiers[\"range_start\"]}\n data-range-end={modifiers[\"range_end\"]}\n data-range-middle={modifiers[\"range_middle\"]}\n className={cn(\n \"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-(--cell-size) flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\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","import * as React from \"react\";\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../button\";\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\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\n/**\n * Accesses the parent Carousel context.\n */\nfunction 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 className=\"basis-1/3\">Slide 1</CarouselItem>\n * <CarouselItem className=\"basis-1/3\">Slide 2</CarouselItem>\n * <CarouselItem className=\"basis-1/3\">Slide 3</CarouselItem>\n * </CarouselContent>\n * <CarouselPrevious />\n * <CarouselNext />\n * </Carousel>\n * ```\n */\nconst 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\nexport type CarouselContentProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Viewport and track container holding all carousel slides.\n */\nconst CarouselContent = React.forwardRef<HTMLDivElement, 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 },\n);\nCarouselContent.displayName = \"CarouselContent\";\n\nexport type CarouselItemProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Individual slide element within a `CarouselContent` track.\n */\nconst 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 */\nconst 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 */\nconst CarouselNext = React.forwardRef<HTMLButtonElement, 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 },\n);\nCarouselNext.displayName = \"CarouselNext\";\n\nexport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n useCarousel,\n};\n","/* eslint-disable max-lines */\nimport * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\n\nimport { cn } from \"../../lib/utils\";\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const;\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n );\n};\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\");\n }\n\n return context;\n}\n\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 * Responsive wrapper for Recharts visualizations with CSS variable theming and unified legend/tooltip support.\n *\n * @example\n * ```tsx\n * const chartConfig = {\n * desktop: { label: \"Desktop\", color: \"var(--color-primary)\" },\n * mobile: { label: \"Mobile\", color: \"var(--color-muted)\" },\n * } satisfies ChartConfig;\n *\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 * <Bar dataKey=\"mobile\" fill=\"var(--color-mobile)\" radius={4} />\n * </BarChart>\n * </ChartContainer>\n * ```\n */\nconst ChartContainer = React.forwardRef<HTMLDivElement, 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 },\n);\nChartContainer.displayName = \"Chart\";\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme || config.color,\n );\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join(\"\\n\")}\n}\n`,\n )\n .join(\"\\n\"),\n }}\n />\n );\n};\n\n/**\n * Tooltip trigger component from Recharts.\n */\nconst 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 */\nconst 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(\"font-medium\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>;\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\";\n\n return (\n <div ref={ref} className={cn(\"dl-chart-tooltip\", className)}>\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || item.payload.fill || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"flex flex-wrap items-stretch gap-2 [&>svg]:text-muted-foreground [&>svg]:size-2.5\",\n indicator === \"dot\" && \"items-center\",\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0 rounded-xs border-border bg-(--color-bg)\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n },\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\",\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n);\nChartTooltipContent.displayName = \"ChartTooltip\";\n\n/**\n * Legend component from Recharts.\n */\nconst 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 */\nconst 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\" ? \"pb-3\" : \"pt-3\",\n className,\n )}\n >\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn(\n \"flex items-center gap-1.5 [&>svg]:text-muted-foreground [&>svg]:size-3\",\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"shrink-0 rounded-xs size-2\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n },\n);\nChartLegendContent.displayName = \"ChartLegend\";\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string,\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string;\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config];\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n};\n","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 * Pure CSS with zero runtime Tailwind dependencies.\n *\n * @example\n * ```tsx\n * // Basic checkbox with associated label\n * <div className=\"flex items-center gap-2\">\n * <Checkbox id=\"terms\" checked={agreed} onCheckedChange={setAgreed} />\n * <Label htmlFor=\"terms\">Accept terms and conditions</Label>\n * </div>\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=\"grid place-content-center text-current\">\n <Check style={{ width: \"0.75rem\", height: \"0.75rem\" }} />\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 \"../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 \"../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 * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\n/**\n * Root ContextMenu container.\n *\n * @example\n * ```tsx\n * <ContextMenu>\n * <ContextMenuTrigger className=\"flex h-[150px] w-[300px] items-center justify-center rounded-md border border-dashed text-sm\">\n * Right click here\n * </ContextMenuTrigger>\n * <ContextMenuContent>\n * <ContextMenuItem>Back</ContextMenuItem>\n * <ContextMenuItem>Forward</ContextMenuItem>\n * <ContextMenuItem>Reload</ContextMenuItem>\n * </ContextMenuContent>\n * </ContextMenu>\n * ```\n */\nconst ContextMenu = ContextMenuPrimitive.Root;\n\n/**\n * The area that triggers the context menu on right click or long press.\n */\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger;\n\n/**\n * Group of related context menu items.\n */\nconst ContextMenuGroup = ContextMenuPrimitive.Group;\n\n/**\n * Portal rendering the context menu in the document body.\n */\nconst ContextMenuPortal = ContextMenuPrimitive.Portal;\n\n/**\n * Submenu container within a context menu.\n */\nconst ContextMenuSub = ContextMenuPrimitive.Sub;\n\n/**\n * Radio group container for mutually exclusive context options.\n */\nconst 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 */\nconst 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 && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto size-4\" />\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 */\nconst 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 */\nconst 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\nexport type ContextMenuItemProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.Item\n> & {\n inset?: boolean;\n};\n\n/**\n * Selectable item within a context menu.\n */\nconst 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 && \"pl-8\", 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 */\nconst 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=\"size-4\" />\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 */\nconst 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=\"fill-current size-2\" />\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 */\nconst 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 && \"pl-8\", 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 */\nconst 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 */\nconst ContextMenuShortcut = ({\n className,\n ...props\n}: ContextMenuShortcutProps) => {\n return <span className={cn(\"dl-menu-shortcut\", className)} {...props} />;\n};\nContextMenuShortcut.displayName = \"ContextMenuShortcut\";\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n};\n","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 \"../button\";\nimport { Calendar } from \"../calendar\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../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 * Pure CSS with zero runtime Tailwind dependencies.\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 initialFocus\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\" className=\"w-80\">\n * <div className=\"grid gap-2\">\n * <h4 className=\"font-semibold text-sm\">Filter Results</h4>\n * <p className=\"text-xs text-muted-foreground\">Adjust display criteria.</p>\n * </div>\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 { Check, ChevronRight, Circle } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\n/**\n * Root DropdownMenu container managing open/closed state.\n *\n * @example\n * ```tsx\n * <DropdownMenu>\n * <DropdownMenuTrigger asChild>\n * <Button variant=\"outline\">Open Menu</Button>\n * </DropdownMenuTrigger>\n * <DropdownMenuContent>\n * <DropdownMenuLabel>My Account</DropdownMenuLabel>\n * <DropdownMenuSeparator />\n * <DropdownMenuItem>Profile</DropdownMenuItem>\n * <DropdownMenuItem>Settings</DropdownMenuItem>\n * <DropdownMenuSeparator />\n * <DropdownMenuItem>Logout</DropdownMenuItem>\n * </DropdownMenuContent>\n * </DropdownMenu>\n * ```\n */\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\n/**\n * The trigger button that toggles the dropdown menu.\n */\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\n/**\n * Group of related dropdown menu items.\n */\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\n/**\n * Portal rendering dropdown menus in the document body.\n */\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\n/**\n * Submenu container within a dropdown menu.\n */\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\n/**\n * Radio group container for mutually exclusive dropdown options.\n */\nconst 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 */\nconst 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 && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight\n style={{ marginLeft: \"auto\", width: \"1rem\", height: \"1rem\" }}\n />\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 */\nconst 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 */\nconst 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\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 */\nconst 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 && \"pl-8\", 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 */\nconst 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 style={{ width: \"1rem\", height: \"1rem\" }} />\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 */\nconst 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\n style={{ width: \"0.5rem\", height: \"0.5rem\", fill: \"currentColor\" }}\n />\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 */\nconst 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 && \"pl-8\", 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 */\nconst 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 */\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: DropdownMenuShortcutProps) => {\n return <span className={cn(\"dl-menu-shortcut\", className)} {...props} />;\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n};\n","import * as React from \"react\";\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 \"../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 * Zero Tailwind runtime dependencies.\n *\n * @example\n * ```tsx\n * // Associated with an Input via htmlFor\n * <div className=\"grid gap-1.5\">\n * <Label htmlFor=\"email\">Email address</Label>\n * <Input id=\"email\" type=\"email\" placeholder=\"name@company.com\" />\n * </div>\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 && (\n <span className=\"dl-label-required text-destructive ml-0.5\">*</span>\n )}\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 * Zero Tailwind runtime dependencies.\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 className=\"size-4\" />}\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 * Zero Tailwind runtime dependencies.\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 * <div className=\"flex items-center space-x-4\">\n * <Skeleton className=\"h-12 w-12 rounded-full\" />\n * <div className=\"space-y-2\">\n * <Skeleton className=\"h-4 w-[250px]\" />\n * <Skeleton className=\"h-4 w-[200px]\" />\n * </div>\n * </div>\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 \"../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 style={{ height: \"2rem\", width: \"33.333%\" }} />\n <div className=\"dl-loading-skeleton__list\">\n {Array.from({ length: rows }).map((_, i) => (\n <Skeleton\n key={i}\n style={{\n height: \"4rem\",\n width: \"100%\",\n borderRadius: \"var(--radius-lg, 0.75rem)\",\n }}\n />\n ))}\n </div>\n </div>\n );\n}\n","import * as React from \"react\";\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\n/**\n * Menu item wrapper component within a `Menubar`.\n */\nfunction MenubarMenu(\n props: React.ComponentProps<typeof MenubarPrimitive.Menu>,\n) {\n return <MenubarPrimitive.Menu {...props} />;\n}\n\n/**\n * Group wrapper within a `Menubar`.\n */\nfunction 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 */\nfunction 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 */\nfunction MenubarRadioGroup(\n props: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>,\n) {\n return <MenubarPrimitive.RadioGroup {...props} />;\n}\n\n/**\n * Submenu container within a `Menubar`.\n */\nfunction MenubarSub(props: React.ComponentProps<typeof MenubarPrimitive.Sub>) {\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 */\nconst 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 */\nconst 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 */\nconst 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 && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto size-4\" />\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 */\nconst 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 */\nconst 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\nexport type MenubarItemProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.Item\n> & {\n inset?: boolean;\n};\n\n/**\n * Selectable item within a Menubar menu.\n */\nconst 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 && \"pl-8\", 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 */\nconst 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=\"size-4\" />\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 */\nconst 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=\"fill-current size-2\" />\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 */\nconst 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 && \"pl-8\", 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 */\nconst 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 */\nconst MenubarShortcut = ({ className, ...props }: MenubarShortcutProps) => {\n return <span className={cn(\"dl-menu-shortcut\", className)} {...props} />;\n};\nMenubarShortcut.displayName = \"MenubarShortcut\";\n\nexport {\n Menubar,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarItem,\n MenubarSeparator,\n MenubarLabel,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarPortal,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarGroup,\n MenubarSub,\n MenubarShortcut,\n};\n","import * as React from \"react\";\nimport * 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 className=\"grid gap-3 p-6 md:w-[400px]\">\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 \"../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=\"size-4\" />\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=\"size-4\" />\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 * <div className=\"flex items-center gap-2\">\n * <RadioGroupItem value=\"monthly\" id=\"r1\" />\n * <Label htmlFor=\"r1\">Monthly Billing</Label>\n * </div>\n * <div className=\"flex items-center gap-2\">\n * <RadioGroupItem value=\"annual\" id=\"r2\" />\n * <Label htmlFor=\"r2\">Annual Billing (Save 20%)</Label>\n * </div>\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 direction=\"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 className=\"h-72 w-48 rounded-md border\">\n * <div className=\"p-4\">\n * {items.map((item) => (\n * <div key={item.id}>{item.name}</div>\n * ))}\n * </div>\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 \"../popover\";\nimport { Input } from \"../input\";\nimport { Button } from \"../button\";\nimport { cn } from \"../../lib/utils\";\n\n/**\n * Option item structure for `SearchableSelect`.\n */\nexport interface SearchableSelectOption {\n /** The human-readable text label */\n label: string;\n /** The unique value identifier */\n value: string;\n /** Optional grouping category */\n group?: string;\n /** Optional icon identifier */\n icon?: string;\n}\n\n/**\n * Props for `SearchableSelect`.\n */\nexport interface SearchableSelectProps {\n /** List of selectable options */\n options: SearchableSelectOption[];\n /** Currently selected value */\n value?: string;\n /** Callback fired when an option is selected */\n onChange?: (value: string) => void;\n /** Placeholder text when nothing is selected */\n placeholder?: string;\n /** Search input placeholder text */\n searchPlaceholder?: string;\n /** Callback fired when the user adds a new custom option */\n onAddNew?: (searchQuery: string) => void;\n /** Custom label for the add-new button */\n addNewLabel?: string;\n /** Whether the select dropdown is disabled */\n disabled?: boolean;\n /** Additional CSS class names */\n className?: string;\n /** Unique HTML id attribute */\n id?: string;\n}\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 [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 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 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 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=\"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=\"py-1\">\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=\"flex-1 truncate\">{option.label}</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=\"size-3.5 shrink-0\" />\n <span className=\"truncate\">\n {search.trim()\n ? `${addNewLabel} \"${search.trim()}\"`\n : addNewLabel}\n </span>\n </button>\n </div>\n )}\n </PopoverContent>\n </Popover>\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 style={{ opacity: 0.5, width: \"0.75rem\", height: \"0.75rem\" }}\n />\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 style={{ width: \"1rem\", height: \"1rem\" }} />\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 style={{ width: \"1rem\", height: \"1rem\" }} />\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 style={{ width: \"0.75rem\", height: \"0.75rem\" }} />\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>Radix Primitives</h4>\n * <p>An open-source UI component library.</p>\n * <Separator className=\"my-4\" />\n * <div className=\"flex h-5 items-center space-x-4\">\n * <div>Blog</div>\n * <Separator orientation=\"vertical\" />\n * <div>Docs</div>\n * </div>\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 * <div className=\"py-4\">Sheet navigation links...</div>\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 style={{ width: \"1rem\", height: \"1rem\" }} />\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","/* eslint-disable max-lines */\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { PanelLeft } from \"lucide-react\";\n\nimport { useIsMobile } from \"../../hooks/use-mobile\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../button\";\nimport { Input } from \"../input\";\nimport { Separator } from \"../separator\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"../sheet\";\nimport { Skeleton } from \"../skeleton\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../tooltip\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\n/**\n * Hook to access the parent Sidebar context state and controls.\n */\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n}\n\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>\n * <SidebarHeader>My App</SidebarHeader>\n * <SidebarContent>\n * <SidebarMenu>\n * <SidebarMenuItem>\n * <SidebarMenuButton>Dashboard</SidebarMenuButton>\n * </SidebarMenuItem>\n * </SidebarMenu>\n * </SidebarContent>\n * </Sidebar>\n * <SidebarInset>\n * <header><SidebarTrigger /></header>\n * <main>Main Page Content</main>\n * </SidebarInset>\n * </SidebarProvider>\n * ```\n */\nconst SidebarProvider = React.forwardRef<HTMLDivElement, SidebarProviderProps>(\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 // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile\n ? setOpenMobile((open) => !open)\n : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [\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(\n \"group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar\",\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n },\n);\nSidebarProvider.displayName = \"SidebarProvider\";\n\nexport type SidebarProps = React.ComponentProps<\"div\"> & {\n /** Side where the sidebar is positioned (default: \"left\") */\n side?: \"left\" | \"right\";\n /** Sidebar variant style (default: \"sidebar\") */\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n /** Collapse behavior when toggled (default: \"offcanvas\") */\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n};\n\n/**\n * Main collapsible navigation sidebar supporting floating, inset, desktop, and mobile sheet views.\n */\nconst 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(\n \"flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground\",\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex flex-col size-full\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n \"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n )}\n />\n <div\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:-left-(--sidebar-width)\"\n : \"right-0 group-data-[collapsible=offcanvas]:-right-(--sidebar-width)\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow size-full\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n },\n);\nSidebar.displayName = \"Sidebar\";\n\nexport type SidebarTriggerProps = React.ComponentProps<typeof Button>;\n\n/**\n * Button trigger toggling sidebar collapsed/expanded state.\n */\nconst 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(\"size-7\", className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n});\nSidebarTrigger.displayName = \"SidebarTrigger\";\n\nexport type SidebarRailProps = React.ComponentProps<\"button\">;\n\n/**\n * Hoverable/draggable rail divider on the edge of the sidebar for quick toggling.\n */\nconst SidebarRail = React.forwardRef<HTMLButtonElement, SidebarRailProps>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\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(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex\",\n \"in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarRail.displayName = \"SidebarRail\";\n\nexport type SidebarInsetProps = React.ComponentProps<\"main\">;\n\n/**\n * Main application container when paired with an inset or standard sidebar.\n */\nconst SidebarInset = React.forwardRef<HTMLDivElement, SidebarInsetProps>(\n ({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n \"relative flex w-full flex-1 flex-col bg-background\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarInset.displayName = \"SidebarInset\";\n\nexport type SidebarInputProps = React.ComponentProps<typeof Input>;\n\n/**\n * Styled text input tailored for use inside a sidebar header or filter bar.\n */\nconst 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\nexport type SidebarHeaderProps = React.ComponentProps<\"div\">;\n\n/**\n * Header section at the top of a sidebar.\n */\nconst SidebarHeader = React.forwardRef<HTMLDivElement, SidebarHeaderProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n },\n);\nSidebarHeader.displayName = \"SidebarHeader\";\n\nexport type SidebarFooterProps = React.ComponentProps<\"div\">;\n\n/**\n * Footer section pinned to the bottom of a sidebar.\n */\nconst SidebarFooter = React.forwardRef<HTMLDivElement, SidebarFooterProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n },\n);\nSidebarFooter.displayName = \"SidebarFooter\";\n\nexport type SidebarSeparatorProps = React.ComponentProps<typeof Separator>;\n\n/**\n * Divider separating sidebar sections.\n */\nconst 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(\"mx-2 w-auto bg-sidebar-border\", className)}\n {...props}\n />\n );\n});\nSidebarSeparator.displayName = \"SidebarSeparator\";\n\nexport type SidebarContentProps = React.ComponentProps<\"div\">;\n\n/**\n * Scrollable middle container holding sidebar navigation groups.\n */\nconst SidebarContent = React.forwardRef<HTMLDivElement, SidebarContentProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto\",\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarContent.displayName = \"SidebarContent\";\n\nexport type SidebarGroupProps = React.ComponentProps<\"div\">;\n\n/**\n * Section grouping related sidebar menu items.\n */\nconst SidebarGroup = React.forwardRef<HTMLDivElement, SidebarGroupProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n );\n },\n);\nSidebarGroup.displayName = \"SidebarGroup\";\n\nexport type SidebarGroupLabelProps = React.ComponentProps<\"div\"> & {\n asChild?: boolean;\n};\n\n/**\n * Text heading or label for a `SidebarGroup`.\n */\nconst 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(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\";\n\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 */\nconst 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(\n \"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring cursor-pointer transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarGroupAction.displayName = \"SidebarGroupAction\";\n\nexport type SidebarGroupContentProps = React.ComponentProps<\"div\">;\n\n/**\n * Content container rendered inside a `SidebarGroup`.\n */\nconst SidebarGroupContent = React.forwardRef<\n HTMLDivElement,\n SidebarGroupContentProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n));\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\n\nexport type SidebarMenuProps = React.ComponentProps<\"ul\">;\n\n/**\n * Vertical list (`<ul>`) holding sidebar menu items.\n */\nconst SidebarMenu = React.forwardRef<HTMLUListElement, SidebarMenuProps>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n ),\n);\nSidebarMenu.displayName = \"SidebarMenu\";\n\nexport type SidebarMenuItemProps = React.ComponentProps<\"li\">;\n\n/**\n * List item (`<li>`) wrapper for a sidebar navigation button or link.\n */\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, SidebarMenuItemProps>(\n ({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n ),\n);\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring cursor-pointer transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\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/**\n * Interactive navigation button inside a sidebar menu item, with automatic tooltip in collapsed icon mode.\n */\nconst 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-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n },\n);\nSidebarMenuButton.displayName = \"SidebarMenuButton\";\n\nexport type SidebarMenuActionProps = React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n showOnHover?: boolean;\n};\n\n/**\n * Secondary action button placed beside a sidebar menu button (e.g. \"...\" more options menu).\n */\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n SidebarMenuActionProps\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring cursor-pointer transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = \"SidebarMenuAction\";\n\nexport type SidebarMenuBadgeProps = React.ComponentProps<\"div\">;\n\n/**\n * Numeric or label badge placed on the right side of a sidebar menu button.\n */\nconst SidebarMenuBadge = React.forwardRef<\n HTMLDivElement,\n SidebarMenuBadgeProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n));\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\";\n\nexport type SidebarMenuSkeletonProps = React.ComponentProps<\"div\"> & {\n showIcon?: boolean;\n};\n\n/**\n * Loading skeleton placeholder simulating a sidebar menu item.\n */\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n SidebarMenuSkeletonProps\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\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(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\";\n\nexport type SidebarMenuSubProps = React.ComponentProps<\"ul\">;\n\n/**\n * Nested sub-list container for hierarchical sidebar navigation.\n */\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, SidebarMenuSubProps>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\n\nexport type SidebarMenuSubItemProps = React.ComponentProps<\"li\">;\n\n/**\n * Nested item wrapper inside a `SidebarMenuSub`.\n */\nconst SidebarMenuSubItem = React.forwardRef<\n HTMLLIElement,\n SidebarMenuSubItemProps\n>(({ ...props }, ref) => <li ref={ref} {...props} />);\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\n\nexport type SidebarMenuSubButtonProps = React.ComponentProps<\"a\"> & {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n};\n\n/**\n * Navigation button/link inside a nested `SidebarMenuSub` tree.\n */\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n SidebarMenuSubButtonProps\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\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 \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring cursor-pointer hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\";\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as 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 * 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 * Zero Tailwind runtime dependencies.\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 * Zero Tailwind runtime dependencies.\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 * Zero Tailwind runtime dependencies.\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 className=\"size-4\" />\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 \"../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 className=\"size-4\" />\n * </ToggleGroupItem>\n * <ToggleGroupItem value=\"italic\" aria-label=\"Toggle italic\">\n * <Italic className=\"size-4\" />\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 \"../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 className=\"shrink-0 size-4\" />\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"],"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,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,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,mBAAAC;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;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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","className","props","React","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","useEmblaCarousel","React","import_jsx_runtime","config","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","import_lucide_react","React","import_jsx_runtime","import_jsx_runtime","CalendarIcon","React","import_jsx_runtime","DrawerPrimitive","React","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","import_jsx_runtime","import_jsx_runtime","React","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","React","import_lucide_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","import_react_slot","import_class_variance_authority","import_lucide_react","React","import_jsx_runtime","Tooltip","import_jsx_runtime","open","Separator","Tooltip","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"]}
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.tsx","../src/components/chart/chart.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.tsx","../src/components/date-picker/date-picker.tsx","../src/components/popover/popover.tsx","../src/components/drawer/drawer.tsx","../src/components/dropdown-menu/dropdown-menu.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.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/select/select.tsx","../src/components/separator/separator.tsx","../src/components/sheet/sheet.tsx","../src/components/sidebar/sidebar.tsx","../src/components/tooltip/tooltip.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"],"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\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Merges multiple Tailwind class names and conditionally applied class definitions.\n * Combines clsx dynamic toggling with tailwind-merge collision deduplication.\n *\n * @param inputs - List of class names, conditional records, or arrays.\n * @returns Deduplicated, normalized CSS class string.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(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 className=\"size-4\" />\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 \"../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 * Pure CSS with zero runtime Tailwind dependencies.\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 \"../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 group/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 w-fit\", defaultClassNames.root),\n months: cn(\n \"relative flex flex-col gap-4 md:flex-row\",\n defaultClassNames.months,\n ),\n month: cn(\"flex w-full flex-col gap-4\", defaultClassNames.month),\n nav: cn(\n \"absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1\",\n defaultClassNames.nav,\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant, size: \"icon\" }),\n \"select-none p-0 aria-disabled:opacity-50\",\n defaultClassNames.button_previous,\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant, size: \"icon\" }),\n \"select-none p-0 aria-disabled:opacity-50\",\n defaultClassNames.button_next,\n ),\n month_caption: cn(\n \"flex w-full items-center justify-center\",\n defaultClassNames.month_caption,\n ),\n dropdowns: cn(\n \"flex w-full items-center justify-center gap-1.5 text-sm font-medium\",\n defaultClassNames.dropdowns,\n ),\n dropdown_root: cn(\n \"relative rounded-md border border-input shadow-xs\",\n defaultClassNames.dropdown_root,\n ),\n dropdown: cn(\n \"bg-popover absolute inset-0 opacity-0\",\n defaultClassNames.dropdown,\n ),\n caption_label: cn(\n \"select-none font-medium text-sm\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm\",\n defaultClassNames.caption_label,\n ),\n table: cn(\"w-full border-collapse\", defaultClassNames.month_grid),\n month_grid: cn(\"w-full border-collapse\", 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 if (orientation === \"left\") {\n return (\n <ChevronLeftIcon\n className={cn(\"size-4\", chevronClassName)}\n {...chevronProps}\n />\n );\n }\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", chevronClassName)}\n {...chevronProps}\n />\n );\n }\n return (\n <ChevronDownIcon\n className={cn(\"size-4\", chevronClassName)}\n {...chevronProps}\n />\n );\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...weekProps }) => (\n <td {...weekProps}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </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 flex aspect-square items-center justify-center font-normal leading-none\",\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","import * as React from \"react\";\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../button\";\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\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\n/**\n * Accesses the parent Carousel context.\n */\nfunction 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 className=\"basis-1/3\">Slide 1</CarouselItem>\n * <CarouselItem className=\"basis-1/3\">Slide 2</CarouselItem>\n * <CarouselItem className=\"basis-1/3\">Slide 3</CarouselItem>\n * </CarouselContent>\n * <CarouselPrevious />\n * <CarouselNext />\n * </Carousel>\n * ```\n */\nconst 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\nexport type CarouselContentProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Viewport and track container holding all carousel slides.\n */\nconst CarouselContent = React.forwardRef<HTMLDivElement, 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 },\n);\nCarouselContent.displayName = \"CarouselContent\";\n\nexport type CarouselItemProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Individual slide element within a `CarouselContent` track.\n */\nconst 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 */\nconst 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 */\nconst CarouselNext = React.forwardRef<HTMLButtonElement, 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 },\n);\nCarouselNext.displayName = \"CarouselNext\";\n\nexport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n useCarousel,\n};\n","/* eslint-disable max-lines */\nimport * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\n\nimport { cn } from \"../../lib/utils\";\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const;\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n );\n};\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\");\n }\n\n return context;\n}\n\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 * Responsive wrapper for Recharts visualizations with CSS variable theming and unified legend/tooltip support.\n *\n * @example\n * ```tsx\n * const chartConfig = {\n * desktop: { label: \"Desktop\", color: \"var(--color-primary)\" },\n * mobile: { label: \"Mobile\", color: \"var(--color-muted)\" },\n * } satisfies ChartConfig;\n *\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 * <Bar dataKey=\"mobile\" fill=\"var(--color-mobile)\" radius={4} />\n * </BarChart>\n * </ChartContainer>\n * ```\n */\nconst ChartContainer = React.forwardRef<HTMLDivElement, 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 },\n);\nChartContainer.displayName = \"Chart\";\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme || config.color,\n );\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join(\"\\n\")}\n}\n`,\n )\n .join(\"\\n\"),\n }}\n />\n );\n};\n\n/**\n * Tooltip trigger component from Recharts.\n */\nconst 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 */\nconst 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(\"font-medium\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>;\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\";\n\n return (\n <div ref={ref} className={cn(\"dl-chart-tooltip\", className)}>\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || item.payload.fill || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"flex flex-wrap items-stretch gap-2 [&>svg]:text-muted-foreground [&>svg]:size-2.5\",\n indicator === \"dot\" && \"items-center\",\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0 rounded-xs border-border bg-(--color-bg)\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n },\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\",\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n);\nChartTooltipContent.displayName = \"ChartTooltip\";\n\n/**\n * Legend component from Recharts.\n */\nconst 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 */\nconst 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\" ? \"pb-3\" : \"pt-3\",\n className,\n )}\n >\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn(\n \"flex items-center gap-1.5 [&>svg]:text-muted-foreground [&>svg]:size-3\",\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"shrink-0 rounded-xs size-2\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n },\n);\nChartLegendContent.displayName = \"ChartLegend\";\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string,\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string;\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config];\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n};\n","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 * Pure CSS with zero runtime Tailwind dependencies.\n *\n * @example\n * ```tsx\n * // Basic checkbox with associated label\n * <div className=\"flex items-center gap-2\">\n * <Checkbox id=\"terms\" checked={agreed} onCheckedChange={setAgreed} />\n * <Label htmlFor=\"terms\">Accept terms and conditions</Label>\n * </div>\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=\"grid place-content-center text-current\">\n <Check style={{ width: \"0.75rem\", height: \"0.75rem\" }} />\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 \"../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 \"../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 * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\n/**\n * Root ContextMenu container.\n *\n * @example\n * ```tsx\n * <ContextMenu>\n * <ContextMenuTrigger className=\"flex h-[150px] w-[300px] items-center justify-center rounded-md border border-dashed text-sm\">\n * Right click here\n * </ContextMenuTrigger>\n * <ContextMenuContent>\n * <ContextMenuItem>Back</ContextMenuItem>\n * <ContextMenuItem>Forward</ContextMenuItem>\n * <ContextMenuItem>Reload</ContextMenuItem>\n * </ContextMenuContent>\n * </ContextMenu>\n * ```\n */\nconst ContextMenu = ContextMenuPrimitive.Root;\n\n/**\n * The area that triggers the context menu on right click or long press.\n */\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger;\n\n/**\n * Group of related context menu items.\n */\nconst ContextMenuGroup = ContextMenuPrimitive.Group;\n\n/**\n * Portal rendering the context menu in the document body.\n */\nconst ContextMenuPortal = ContextMenuPrimitive.Portal;\n\n/**\n * Submenu container within a context menu.\n */\nconst ContextMenuSub = ContextMenuPrimitive.Sub;\n\n/**\n * Radio group container for mutually exclusive context options.\n */\nconst 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 */\nconst 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 && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto size-4\" />\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 */\nconst 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 */\nconst 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\nexport type ContextMenuItemProps = React.ComponentPropsWithoutRef<\n typeof ContextMenuPrimitive.Item\n> & {\n inset?: boolean;\n};\n\n/**\n * Selectable item within a context menu.\n */\nconst 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 && \"pl-8\", 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 */\nconst 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=\"size-4\" />\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 */\nconst 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=\"fill-current size-2\" />\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 */\nconst 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 && \"pl-8\", 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 */\nconst 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 */\nconst ContextMenuShortcut = ({\n className,\n ...props\n}: ContextMenuShortcutProps) => {\n return <span className={cn(\"dl-menu-shortcut\", className)} {...props} />;\n};\nContextMenuShortcut.displayName = \"ContextMenuShortcut\";\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n};\n","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 \"../button\";\nimport { Calendar } from \"../calendar\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../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 * Pure CSS with zero runtime Tailwind dependencies.\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\" className=\"w-80\">\n * <div className=\"grid gap-2\">\n * <h4 className=\"font-semibold text-sm\">Filter Results</h4>\n * <p className=\"text-xs text-muted-foreground\">Adjust display criteria.</p>\n * </div>\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 { Check, ChevronRight, Circle } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\n/**\n * Root DropdownMenu container managing open/closed state.\n *\n * @example\n * ```tsx\n * <DropdownMenu>\n * <DropdownMenuTrigger asChild>\n * <Button variant=\"outline\">Open Menu</Button>\n * </DropdownMenuTrigger>\n * <DropdownMenuContent>\n * <DropdownMenuLabel>My Account</DropdownMenuLabel>\n * <DropdownMenuSeparator />\n * <DropdownMenuItem>Profile</DropdownMenuItem>\n * <DropdownMenuItem>Settings</DropdownMenuItem>\n * <DropdownMenuSeparator />\n * <DropdownMenuItem>Logout</DropdownMenuItem>\n * </DropdownMenuContent>\n * </DropdownMenu>\n * ```\n */\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\n/**\n * The trigger button that toggles the dropdown menu.\n */\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\n/**\n * Group of related dropdown menu items.\n */\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\n/**\n * Portal rendering dropdown menus in the document body.\n */\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\n/**\n * Submenu container within a dropdown menu.\n */\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\n/**\n * Radio group container for mutually exclusive dropdown options.\n */\nconst 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 */\nconst 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 && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight\n style={{ marginLeft: \"auto\", width: \"1rem\", height: \"1rem\" }}\n />\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 */\nconst 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 */\nconst 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\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 */\nconst 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 && \"pl-8\", 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 */\nconst 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 style={{ width: \"1rem\", height: \"1rem\" }} />\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 */\nconst 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\n style={{ width: \"0.5rem\", height: \"0.5rem\", fill: \"currentColor\" }}\n />\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 */\nconst 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 && \"pl-8\", 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 */\nconst 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 */\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: DropdownMenuShortcutProps) => {\n return <span className={cn(\"dl-menu-shortcut\", className)} {...props} />;\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n};\n","import * as React from \"react\";\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 \"../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 * Zero Tailwind runtime dependencies.\n *\n * @example\n * ```tsx\n * // Associated with an Input via htmlFor\n * <div className=\"grid gap-1.5\">\n * <Label htmlFor=\"email\">Email address</Label>\n * <Input id=\"email\" type=\"email\" placeholder=\"name@company.com\" />\n * </div>\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 && (\n <span className=\"dl-label-required text-destructive ml-0.5\">*</span>\n )}\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 * Zero Tailwind runtime dependencies.\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 className=\"size-4\" />}\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 * Zero Tailwind runtime dependencies.\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 * <div className=\"flex items-center space-x-4\">\n * <Skeleton className=\"h-12 w-12 rounded-full\" />\n * <div className=\"space-y-2\">\n * <Skeleton className=\"h-4 w-[250px]\" />\n * <Skeleton className=\"h-4 w-[200px]\" />\n * </div>\n * </div>\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 \"../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 style={{ height: \"2rem\", width: \"33.333%\" }} />\n <div className=\"dl-loading-skeleton__list\">\n {Array.from({ length: rows }).map((_, i) => (\n <Skeleton\n key={i}\n style={{\n height: \"4rem\",\n width: \"100%\",\n borderRadius: \"var(--radius-lg, 0.75rem)\",\n }}\n />\n ))}\n </div>\n </div>\n );\n}\n","import * as React from \"react\";\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\n/**\n * Menu item wrapper component within a `Menubar`.\n */\nfunction MenubarMenu(\n props: React.ComponentProps<typeof MenubarPrimitive.Menu>,\n) {\n return <MenubarPrimitive.Menu {...props} />;\n}\n\n/**\n * Group wrapper within a `Menubar`.\n */\nfunction 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 */\nfunction 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 */\nfunction MenubarRadioGroup(\n props: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>,\n) {\n return <MenubarPrimitive.RadioGroup {...props} />;\n}\n\n/**\n * Submenu container within a `Menubar`.\n */\nfunction MenubarSub(props: React.ComponentProps<typeof MenubarPrimitive.Sub>) {\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 */\nconst 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 */\nconst 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 */\nconst 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 && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto size-4\" />\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 */\nconst 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 */\nconst 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\nexport type MenubarItemProps = React.ComponentPropsWithoutRef<\n typeof MenubarPrimitive.Item\n> & {\n inset?: boolean;\n};\n\n/**\n * Selectable item within a Menubar menu.\n */\nconst 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 && \"pl-8\", 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 */\nconst 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=\"size-4\" />\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 */\nconst 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=\"fill-current size-2\" />\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 */\nconst 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 && \"pl-8\", 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 */\nconst 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 */\nconst MenubarShortcut = ({ className, ...props }: MenubarShortcutProps) => {\n return <span className={cn(\"dl-menu-shortcut\", className)} {...props} />;\n};\nMenubarShortcut.displayName = \"MenubarShortcut\";\n\nexport {\n Menubar,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarItem,\n MenubarSeparator,\n MenubarLabel,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarPortal,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarGroup,\n MenubarSub,\n MenubarShortcut,\n};\n","import * as React from \"react\";\nimport * 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 className=\"grid gap-3 p-6 md:w-[400px]\">\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 \"../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=\"size-4\" />\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=\"size-4\" />\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 * <div className=\"flex items-center gap-2\">\n * <RadioGroupItem value=\"monthly\" id=\"r1\" />\n * <Label htmlFor=\"r1\">Monthly Billing</Label>\n * </div>\n * <div className=\"flex items-center gap-2\">\n * <RadioGroupItem value=\"annual\" id=\"r2\" />\n * <Label htmlFor=\"r2\">Annual Billing (Save 20%)</Label>\n * </div>\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 direction=\"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 className=\"h-72 w-48 rounded-md border\">\n * <div className=\"p-4\">\n * {items.map((item) => (\n * <div key={item.id}>{item.name}</div>\n * ))}\n * </div>\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 \"../popover\";\nimport { Input } from \"../input\";\nimport { Button } from \"../button\";\nimport { cn } from \"../../lib/utils\";\n\n/**\n * Option item structure for `SearchableSelect`.\n */\nexport interface SearchableSelectOption {\n /** The human-readable text label */\n label: string;\n /** The unique value identifier */\n value: string;\n /** Optional grouping category */\n group?: string;\n /** Optional icon identifier */\n icon?: string;\n}\n\n/**\n * Props for `SearchableSelect`.\n */\nexport interface SearchableSelectProps {\n /** List of selectable options */\n options: SearchableSelectOption[];\n /** Currently selected value */\n value?: string;\n /** Callback fired when an option is selected */\n onChange?: (value: string) => void;\n /** Placeholder text when nothing is selected */\n placeholder?: string;\n /** Search input placeholder text */\n searchPlaceholder?: string;\n /** Callback fired when the user adds a new custom option */\n onAddNew?: (searchQuery: string) => void;\n /** Custom label for the add-new button */\n addNewLabel?: string;\n /** Whether the select dropdown is disabled */\n disabled?: boolean;\n /** Additional CSS class names */\n className?: string;\n /** Unique HTML id attribute */\n id?: string;\n}\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 [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 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 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 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=\"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=\"py-1\">\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=\"flex-1 truncate\">{option.label}</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=\"size-3.5 shrink-0\" />\n <span className=\"truncate\">\n {search.trim()\n ? `${addNewLabel} \"${search.trim()}\"`\n : addNewLabel}\n </span>\n </button>\n </div>\n )}\n </PopoverContent>\n </Popover>\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 style={{ opacity: 0.5, width: \"1rem\", height: \"1rem\" }} />\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 style={{ width: \"1rem\", height: \"1rem\" }} />\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 style={{ width: \"1rem\", height: \"1rem\" }} />\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 style={{ width: \"0.75rem\", height: \"0.75rem\" }} />\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>Radix Primitives</h4>\n * <p>An open-source UI component library.</p>\n * <Separator className=\"my-4\" />\n * <div className=\"flex h-5 items-center space-x-4\">\n * <div>Blog</div>\n * <Separator orientation=\"vertical\" />\n * <div>Docs</div>\n * </div>\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 * <div className=\"py-4\">Sheet navigation links...</div>\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 style={{ width: \"1rem\", height: \"1rem\" }} />\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","/* eslint-disable max-lines */\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { PanelLeft } from \"lucide-react\";\n\nimport { useIsMobile } from \"../../hooks/use-mobile\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../button\";\nimport { Input } from \"../input\";\nimport { Separator } from \"../separator\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"../sheet\";\nimport { Skeleton } from \"../skeleton\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../tooltip\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\n/**\n * Hook to access the parent Sidebar context state and controls.\n */\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n}\n\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>\n * <SidebarHeader>My App</SidebarHeader>\n * <SidebarContent>\n * <SidebarMenu>\n * <SidebarMenuItem>\n * <SidebarMenuButton>Dashboard</SidebarMenuButton>\n * </SidebarMenuItem>\n * </SidebarMenu>\n * </SidebarContent>\n * </Sidebar>\n * <SidebarInset>\n * <header><SidebarTrigger /></header>\n * <main>Main Page Content</main>\n * </SidebarInset>\n * </SidebarProvider>\n * ```\n */\nconst SidebarProvider = React.forwardRef<HTMLDivElement, SidebarProviderProps>(\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 // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile\n ? setOpenMobile((open) => !open)\n : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [\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(\n \"group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar\",\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n },\n);\nSidebarProvider.displayName = \"SidebarProvider\";\n\nexport type SidebarProps = React.ComponentProps<\"div\"> & {\n /** Side where the sidebar is positioned (default: \"left\") */\n side?: \"left\" | \"right\";\n /** Sidebar variant style (default: \"sidebar\") */\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n /** Collapse behavior when toggled (default: \"offcanvas\") */\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n};\n\n/**\n * Main collapsible navigation sidebar supporting floating, inset, desktop, and mobile sheet views.\n */\nconst 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(\n \"flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground\",\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex flex-col size-full\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n \"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n )}\n />\n <div\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:-left-(--sidebar-width)\"\n : \"right-0 group-data-[collapsible=offcanvas]:-right-(--sidebar-width)\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow size-full\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n },\n);\nSidebar.displayName = \"Sidebar\";\n\nexport type SidebarTriggerProps = React.ComponentProps<typeof Button>;\n\n/**\n * Button trigger toggling sidebar collapsed/expanded state.\n */\nconst 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(\"size-7\", className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n});\nSidebarTrigger.displayName = \"SidebarTrigger\";\n\nexport type SidebarRailProps = React.ComponentProps<\"button\">;\n\n/**\n * Hoverable/draggable rail divider on the edge of the sidebar for quick toggling.\n */\nconst SidebarRail = React.forwardRef<HTMLButtonElement, SidebarRailProps>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\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(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex\",\n \"in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarRail.displayName = \"SidebarRail\";\n\nexport type SidebarInsetProps = React.ComponentProps<\"main\">;\n\n/**\n * Main application container when paired with an inset or standard sidebar.\n */\nconst SidebarInset = React.forwardRef<HTMLDivElement, SidebarInsetProps>(\n ({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n \"relative flex w-full flex-1 flex-col bg-background\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarInset.displayName = \"SidebarInset\";\n\nexport type SidebarInputProps = React.ComponentProps<typeof Input>;\n\n/**\n * Styled text input tailored for use inside a sidebar header or filter bar.\n */\nconst 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\nexport type SidebarHeaderProps = React.ComponentProps<\"div\">;\n\n/**\n * Header section at the top of a sidebar.\n */\nconst SidebarHeader = React.forwardRef<HTMLDivElement, SidebarHeaderProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n },\n);\nSidebarHeader.displayName = \"SidebarHeader\";\n\nexport type SidebarFooterProps = React.ComponentProps<\"div\">;\n\n/**\n * Footer section pinned to the bottom of a sidebar.\n */\nconst SidebarFooter = React.forwardRef<HTMLDivElement, SidebarFooterProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n },\n);\nSidebarFooter.displayName = \"SidebarFooter\";\n\nexport type SidebarSeparatorProps = React.ComponentProps<typeof Separator>;\n\n/**\n * Divider separating sidebar sections.\n */\nconst 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(\"mx-2 w-auto bg-sidebar-border\", className)}\n {...props}\n />\n );\n});\nSidebarSeparator.displayName = \"SidebarSeparator\";\n\nexport type SidebarContentProps = React.ComponentProps<\"div\">;\n\n/**\n * Scrollable middle container holding sidebar navigation groups.\n */\nconst SidebarContent = React.forwardRef<HTMLDivElement, SidebarContentProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto\",\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarContent.displayName = \"SidebarContent\";\n\nexport type SidebarGroupProps = React.ComponentProps<\"div\">;\n\n/**\n * Section grouping related sidebar menu items.\n */\nconst SidebarGroup = React.forwardRef<HTMLDivElement, SidebarGroupProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n );\n },\n);\nSidebarGroup.displayName = \"SidebarGroup\";\n\nexport type SidebarGroupLabelProps = React.ComponentProps<\"div\"> & {\n asChild?: boolean;\n};\n\n/**\n * Text heading or label for a `SidebarGroup`.\n */\nconst 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(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\";\n\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 */\nconst 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(\n \"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring cursor-pointer transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarGroupAction.displayName = \"SidebarGroupAction\";\n\nexport type SidebarGroupContentProps = React.ComponentProps<\"div\">;\n\n/**\n * Content container rendered inside a `SidebarGroup`.\n */\nconst SidebarGroupContent = React.forwardRef<\n HTMLDivElement,\n SidebarGroupContentProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n));\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\n\nexport type SidebarMenuProps = React.ComponentProps<\"ul\">;\n\n/**\n * Vertical list (`<ul>`) holding sidebar menu items.\n */\nconst SidebarMenu = React.forwardRef<HTMLUListElement, SidebarMenuProps>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n ),\n);\nSidebarMenu.displayName = \"SidebarMenu\";\n\nexport type SidebarMenuItemProps = React.ComponentProps<\"li\">;\n\n/**\n * List item (`<li>`) wrapper for a sidebar navigation button or link.\n */\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, SidebarMenuItemProps>(\n ({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n ),\n);\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring cursor-pointer transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\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/**\n * Interactive navigation button inside a sidebar menu item, with automatic tooltip in collapsed icon mode.\n */\nconst 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-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n },\n);\nSidebarMenuButton.displayName = \"SidebarMenuButton\";\n\nexport type SidebarMenuActionProps = React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n showOnHover?: boolean;\n};\n\n/**\n * Secondary action button placed beside a sidebar menu button (e.g. \"...\" more options menu).\n */\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n SidebarMenuActionProps\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring cursor-pointer transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = \"SidebarMenuAction\";\n\nexport type SidebarMenuBadgeProps = React.ComponentProps<\"div\">;\n\n/**\n * Numeric or label badge placed on the right side of a sidebar menu button.\n */\nconst SidebarMenuBadge = React.forwardRef<\n HTMLDivElement,\n SidebarMenuBadgeProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n));\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\";\n\nexport type SidebarMenuSkeletonProps = React.ComponentProps<\"div\"> & {\n showIcon?: boolean;\n};\n\n/**\n * Loading skeleton placeholder simulating a sidebar menu item.\n */\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n SidebarMenuSkeletonProps\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\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(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\";\n\nexport type SidebarMenuSubProps = React.ComponentProps<\"ul\">;\n\n/**\n * Nested sub-list container for hierarchical sidebar navigation.\n */\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, SidebarMenuSubProps>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\n\nexport type SidebarMenuSubItemProps = React.ComponentProps<\"li\">;\n\n/**\n * Nested item wrapper inside a `SidebarMenuSub`.\n */\nconst SidebarMenuSubItem = React.forwardRef<\n HTMLLIElement,\n SidebarMenuSubItemProps\n>(({ ...props }, ref) => <li ref={ref} {...props} />);\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\n\nexport type SidebarMenuSubButtonProps = React.ComponentProps<\"a\"> & {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n};\n\n/**\n * Navigation button/link inside a nested `SidebarMenuSub` tree.\n */\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n SidebarMenuSubButtonProps\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\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 \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring cursor-pointer hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\";\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as 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 * 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 * Zero Tailwind runtime dependencies.\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 * Zero Tailwind runtime dependencies.\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 * Zero Tailwind runtime dependencies.\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 className=\"size-4\" />\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 \"../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 className=\"size-4\" />\n * </ToggleGroupItem>\n * <ToggleGroupItem value=\"italic\" aria-label=\"Toggle italic\">\n * <Italic className=\"size-4\" />\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 \"../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 className=\"shrink-0 size-4\" />\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"],"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,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,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,mBAAAC;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;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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_lucide_react","import_jsx_runtime","useEmblaCarousel","React","import_jsx_runtime","config","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","import_lucide_react","React","import_jsx_runtime","import_jsx_runtime","CalendarIcon","React","import_jsx_runtime","DrawerPrimitive","React","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","import_jsx_runtime","import_jsx_runtime","React","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","React","import_lucide_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","import_react_slot","import_class_variance_authority","import_lucide_react","React","import_jsx_runtime","Tooltip","import_jsx_runtime","open","Separator","Tooltip","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"]}