@atxp/design-system 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1000 -92
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +340 -1
- package/dist/index.d.ts +340 -1
- package/dist/index.js +956 -93
- package/dist/index.js.map +1 -1
- package/package.json +13 -11
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Accordion/Accordion.tsx","../src/lib/utils.ts","../src/components/Alert/Alert.tsx","../src/components/AlertDialog/AlertDialog.tsx","../src/components/Avatar/Avatar.tsx","../src/components/Badge/Badge.tsx","../src/components/Breadcrumb/Breadcrumb.tsx","../src/components/Icon/Icon.tsx","../src/components/Icon/index.ts","../src/components/Button/Button.tsx","../src/components/ButtonGroup/ButtonGroup.tsx","../src/components/Card/Card.tsx","../src/components/Carousel/Carousel.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Dialog/Dialog.tsx","../src/components/Drawer/Drawer.tsx","../src/components/Header/Header.tsx","../src/components/Radio/Radio.tsx","../src/components/Select/Select.tsx","../src/components/Separator/Separator.tsx","../src/components/Sheet/Sheet.tsx","../src/components/Skeleton/Skeleton.tsx","../src/components/Slider/Slider.tsx","../src/components/Switch/Switch.tsx","../src/components/Table/Table.tsx","../src/components/Tabs/Tabs.tsx","../src/components/Textarea/Textarea.tsx","../src/components/Toast/Toast.tsx","../src/components/Toggle/Toggle.tsx","../src/lib/theme.tsx"],"sourcesContent":["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 * Accordion Component\n *\n * A vertically stacked set of interactive headings that each reveal a section of content.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2643:1487\n *\n * @see https://ui.shadcn.com/docs/components/accordion\n * @see https://www.radix-ui.com/docs/primitives/components/accordion\n *\n * @example\n * ```tsx\n * <Accordion type=\"single\" collapsible>\n * <AccordionItem value=\"item-1\">\n * <AccordionTrigger>What is a micro-interaction?</AccordionTrigger>\n * <AccordionContent>\n * Micro-interactions are events which have one main task — a single purpose — and they are found all over your device and within apps.\n * </AccordionContent>\n * </AccordionItem>\n * </Accordion>\n * ```\n */\nconst Accordion = AccordionPrimitive.Root;\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn('border-b border-border', className)}\n {...props}\n />\n));\nAccordionItem.displayName = 'AccordionItem';\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex flex-1 items-center justify-between py-4 text-base font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180',\n className\n )}\n {...props}\n >\n {children}\n <ChevronDown className=\"h-4 w-4 shrink-0 text-foreground transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn('pb-4 pt-0', className)}>{children}</div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","import { clsx, type ClassValue } from 'clsx';\n\n/**\n * Utility function to merge class names\n * Combines clsx for conditional classes\n */\nexport function cn(...inputs: ClassValue[]) {\n return clsx(inputs);\n}\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\n\n/**\n * Alert variants using class-variance-authority\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=628:2411\n */\nconst alertVariants = cva(\n 'relative w-full rounded-lg border p-4 flex gap-3 items-start',\n {\n variants: {\n variant: {\n default: 'bg-background text-foreground border-border',\n destructive:\n 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\n/**\n * Alert Component\n *\n * Displays a callout for user attention.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=628:2411\n *\n * @see https://ui.shadcn.com/docs/components/alert\n *\n * @example\n * ```tsx\n * <Alert>\n * <AlertTitle>Heads up!</AlertTitle>\n * <AlertDescription>\n * You can add components to your app using the cli.\n * </AlertDescription>\n * </Alert>\n * ```\n */\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n));\nAlert.displayName = 'Alert';\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn('mb-1 font-medium leading-6 tracking-normal', className)}\n {...props}\n />\n));\nAlertTitle.displayName = 'AlertTitle';\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('text-sm leading-5 [&_p]:leading-relaxed', className)}\n {...props}\n />\n));\nAlertDescription.displayName = 'AlertDescription';\n\nexport { Alert, AlertTitle, AlertDescription };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * AlertDialog Component\n *\n * A modal dialog that interrupts the user with important content and expects a response.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2673-1596\n *\n * @see https://ui.shadcn.com/docs/components/alert-dialog\n *\n * @example\n * ```tsx\n * <AlertDialog open={isOpen} onOpenChange={setIsOpen}>\n * <AlertDialogContent>\n * <AlertDialogHeader>\n * <AlertDialogTitle>Delete Account?</AlertDialogTitle>\n * <AlertDialogDescription>\n * Deleting your account is irreversible and will erase all your data.\n * </AlertDialogDescription>\n * </AlertDialogHeader>\n * <AlertDialogFooter>\n * <AlertDialogCancel>Cancel</AlertDialogCancel>\n * <AlertDialogAction>Continue</AlertDialogAction>\n * </AlertDialogFooter>\n * </AlertDialogContent>\n * </AlertDialog>\n * ```\n */\n\nexport interface AlertDialogProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nconst AlertDialog = ({ open, onOpenChange, children }: AlertDialogProps) => {\n React.useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && open) {\n onOpenChange?.(false);\n }\n };\n\n if (open) {\n document.addEventListener('keydown', handleEscape);\n document.body.style.overflow = 'hidden';\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.body.style.overflow = '';\n };\n }, [open, onOpenChange]);\n\n if (!open) return null;\n\n return (\n <>\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return React.cloneElement(child as any, { onOpenChange });\n }\n return child;\n })}\n </>\n );\n};\nAlertDialog.displayName = 'AlertDialog';\n\ninterface AlertDialogContentProps extends React.HTMLAttributes<HTMLDivElement> {\n onOpenChange?: (open: boolean) => void;\n}\n\nconst AlertDialogContent = React.forwardRef<\n HTMLDivElement,\n AlertDialogContentProps\n>(({ className, children, onOpenChange, ...props }, ref) => (\n <div\n className=\"fixed inset-0 z-50 flex items-center justify-center\"\n onClick={() => onOpenChange?.(false)}\n >\n {/* Overlay */}\n <div className=\"fixed inset-0 bg-black/50\" aria-hidden=\"true\" />\n\n {/* Dialog */}\n <div\n ref={ref}\n role=\"alertdialog\"\n aria-modal=\"true\"\n className={cn(\n 'relative z-50 flex w-[512px] flex-col gap-4 rounded-lg border border-border bg-background p-6',\n className\n )}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n {children}\n </div>\n </div>\n));\nAlertDialogContent.displayName = 'AlertDialogContent';\n\nconst AlertDialogHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n));\nAlertDialogHeader.displayName = 'AlertDialogHeader';\n\nconst AlertDialogTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h2\n ref={ref}\n className={cn('text-lg font-semibold leading-7 text-foreground', className)}\n {...props}\n />\n));\nAlertDialogTitle.displayName = 'AlertDialogTitle';\n\nconst AlertDialogDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm leading-5 text-muted-foreground', className)}\n {...props}\n />\n));\nAlertDialogDescription.displayName = 'AlertDialogDescription';\n\nconst AlertDialogFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center justify-end gap-2', className)}\n {...props}\n />\n));\nAlertDialogFooter.displayName = 'AlertDialogFooter';\n\nconst AlertDialogCancel = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n 'flex h-9 items-center justify-center rounded-lg border-2 border-border bg-background px-4 py-2 text-sm font-medium leading-5 text-accent-foreground shadow-[0px_1px_2px_0px_rgba(0,0,0,0.05)] transition-colors hover:bg-muted',\n className\n )}\n {...props}\n />\n));\nAlertDialogCancel.displayName = 'AlertDialogCancel';\n\nconst AlertDialogAction = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n 'flex h-9 items-center justify-center rounded-lg bg-primary px-4 py-2 text-sm font-medium leading-5 text-primary-foreground transition-colors hover:bg-primary/90',\n className\n )}\n {...props}\n />\n));\nAlertDialogAction.displayName = 'AlertDialogAction';\n\nexport {\n AlertDialog,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogCancel,\n AlertDialogAction,\n};\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Avatar Component\n *\n * An image element with a fallback for representing the user.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2673-1641\n *\n * @see https://ui.shadcn.com/docs/components/avatar\n *\n * @example\n * ```tsx\n * <Avatar>\n * <AvatarImage src=\"https://example.com/avatar.jpg\" alt=\"User\" />\n * <AvatarFallback>UN</AvatarFallback>\n * </Avatar>\n * ```\n */\n\nconst Avatar = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full',\n className\n )}\n {...props}\n />\n));\nAvatar.displayName = 'Avatar';\n\nconst AvatarImage = React.forwardRef<\n HTMLImageElement,\n React.ImgHTMLAttributes<HTMLImageElement>\n>(({ className, ...props }, ref) => (\n <img\n ref={ref}\n className={cn('aspect-square h-full w-full object-cover', className)}\n {...props}\n />\n));\nAvatarImage.displayName = 'AvatarImage';\n\nconst AvatarFallback = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'flex h-full w-full items-center justify-center rounded-full bg-muted text-sm font-semibold leading-5 text-foreground',\n className\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = 'AvatarFallback';\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 variants using class-variance-authority\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=620:965\n */\nconst badgeVariants = cva(\n 'inline-flex items-center justify-center rounded-lg border transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2',\n {\n variants: {\n variant: {\n default:\n 'border-primary bg-primary text-primary-foreground hover:bg-primary/80',\n secondary:\n 'border-secondary bg-secondary text-secondary-foreground hover:brightness-95',\n destructive:\n 'border-destructive bg-destructive text-destructive-foreground hover:bg-destructive/80',\n outline:\n 'border-border bg-transparent text-foreground hover:bg-muted',\n success:\n 'border-success bg-success-background text-foreground hover:brightness-95',\n },\n size: {\n sm: 'px-2 py-0.5 text-xs font-semibold',\n md: 'px-2 py-0.5 text-sm font-medium',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'sm',\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\n/**\n * Badge Component\n *\n * Displays a badge or a component that looks like a badge.\n *\n * @see https://ui.shadcn.com/docs/components/badge\n *\n * @example\n * ```tsx\n * <Badge>Default</Badge>\n * <Badge variant=\"secondary\">Secondary</Badge>\n * <Badge variant=\"destructive\">Error</Badge>\n * <Badge variant=\"outline\">Outline</Badge>\n * <Badge variant=\"success\">Success</Badge>\n * <Badge size=\"md\">Larger Badge</Badge>\n * ```\n */\nfunction Badge({ className, variant, size, ...props }: BadgeProps) {\n return (\n <div\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { Icon, ChevronRight, MoreHorizontal } from '@/components/Icon';\n\n/**\n * Breadcrumb Component\n *\n * Displays the path to the current resource using a hierarchy of links.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2673-1696\n *\n * @see https://ui.shadcn.com/docs/components/breadcrumb\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=\"/docs\">Docs</BreadcrumbLink>\n * </BreadcrumbItem>\n * <BreadcrumbSeparator />\n * <BreadcrumbItem>\n * <BreadcrumbPage>Current</BreadcrumbPage>\n * </BreadcrumbItem>\n * </BreadcrumbList>\n * </Breadcrumb>\n * ```\n */\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<'nav'> & {\n separator?: React.ReactNode;\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />);\nBreadcrumb.displayName = 'Breadcrumb';\n\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.ComponentPropsWithoutRef<'ol'>\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n 'flex flex-wrap items-center gap-2 break-words text-sm text-muted-foreground',\n className\n )}\n {...props}\n />\n));\nBreadcrumbList.displayName = 'BreadcrumbList';\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<'li'>\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n className={cn('inline-flex items-center gap-2', className)}\n {...props}\n />\n));\nBreadcrumbItem.displayName = 'BreadcrumbItem';\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<'a'>\n>(({ className, ...props }, ref) => (\n <a\n ref={ref}\n className={cn(\n 'text-sm font-normal leading-5 transition-colors hover:text-foreground',\n className\n )}\n {...props}\n />\n));\nBreadcrumbLink.displayName = 'BreadcrumbLink';\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<'span'>\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('text-sm font-normal leading-5 text-foreground', className)}\n {...props}\n />\n));\nBreadcrumbPage.displayName = 'BreadcrumbPage';\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentProps<'li'>) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex h-5 w-5 items-center justify-center', className)}\n {...props}\n >\n {children ?? <Icon icon={ChevronRight} size={14} />}\n </li>\n);\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<'span'>) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex h-5 w-5 items-center justify-center', className)}\n {...props}\n >\n <Icon icon={MoreHorizontal} size={16} />\n <span className=\"sr-only\">More</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = 'BreadcrumbElipssis';\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n","import * as React from 'react';\nimport { type LucideIcon } from 'lucide-react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Icon Component\n *\n * A wrapper around lucide-react icons to ensure consistent styling across the design system.\n * All icons are 24x24px by default to match the Figma design system.\n *\n * @see https://lucide.dev/icons\n *\n * @example\n * ```tsx\n * import { Icon } from '@circuitandchisel/design-system';\n * import { AlertCircle } from 'lucide-react';\n *\n * <Icon icon={AlertCircle} />\n * <Icon icon={AlertCircle} size={16} />\n * <Icon icon={AlertCircle} className=\"text-destructive\" />\n * ```\n */\nexport interface IconProps extends Omit<React.SVGProps<SVGSVGElement>, 'ref'> {\n /** The lucide icon component to render */\n icon: LucideIcon;\n /** Size of the icon in pixels. Defaults to 24 */\n size?: number;\n}\n\nexport const Icon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ icon: IconComponent, size = 24, className, ...props }, ref) => {\n return (\n <IconComponent\n ref={ref}\n size={size}\n className={cn('shrink-0', className)}\n {...props}\n />\n );\n }\n);\n\nIcon.displayName = 'Icon';\n","export { Icon } from './Icon';\n\n// Re-export commonly used lucide-react icons for convenience\n// Users can import directly from lucide-react for the full icon set\n\n// Navigation & Arrows\nexport {\n ArrowLeft,\n ArrowRight,\n ArrowUp,\n ArrowDown,\n ChevronLeft,\n ChevronRight,\n ChevronUp,\n ChevronDown,\n ChevronsLeft,\n ChevronsRight,\n ChevronsUp,\n ChevronsDown,\n} from 'lucide-react';\n\n// Actions\nexport {\n Plus,\n Minus,\n X,\n Check,\n Copy,\n Edit,\n Edit2,\n Edit3,\n Trash,\n Trash2,\n Save,\n Download,\n Upload,\n Share,\n Share2,\n Send,\n RefreshCw,\n RotateCw,\n RotateCcw,\n} from 'lucide-react';\n\n// Status & Feedback\nexport {\n AlertCircle,\n AlertTriangle,\n Info,\n CheckCircle,\n CheckCircle2,\n XCircle,\n HelpCircle,\n Loader,\n Loader2,\n} from 'lucide-react';\n\n// Files & Folders\nexport {\n File,\n FileText,\n Folder,\n FolderOpen,\n FilePlus,\n FolderPlus,\n Image,\n FileImage,\n} from 'lucide-react';\n\n// Communication\nexport {\n Mail,\n MessageCircle,\n MessageSquare,\n Phone,\n PhoneCall,\n PhoneOff,\n Video,\n VideoOff,\n Mic,\n MicOff,\n Bell,\n BellOff,\n} from 'lucide-react';\n\n// User & Account\nexport {\n User,\n Users,\n UserPlus,\n UserMinus,\n UserCheck,\n UserX,\n Settings,\n LogIn,\n LogOut,\n Lock,\n Unlock,\n Key,\n Shield,\n ShieldCheck,\n Eye,\n EyeOff,\n} from 'lucide-react';\n\n// Media\nexport {\n Play,\n Pause,\n Square,\n SkipForward,\n SkipBack,\n Volume,\n Volume1,\n Volume2,\n VolumeX,\n Music,\n Camera,\n CameraOff,\n} from 'lucide-react';\n\n// Layout\nexport {\n Menu,\n MoreVertical,\n MoreHorizontal,\n Grid,\n List,\n Columns,\n Sidebar,\n PanelLeft,\n PanelRight,\n Layout,\n LayoutGrid,\n LayoutList,\n Maximize,\n Minimize,\n Maximize2,\n Minimize2,\n} from 'lucide-react';\n\n// Commerce\nexport {\n ShoppingCart,\n ShoppingBag,\n CreditCard,\n DollarSign,\n Tag,\n Package,\n Gift,\n} from 'lucide-react';\n\n// Time & Calendar\nexport {\n Calendar,\n Clock,\n CalendarDays,\n CalendarPlus,\n CalendarMinus,\n CalendarCheck,\n CalendarX,\n} from 'lucide-react';\n\n// Weather\nexport {\n Sun,\n Moon,\n Cloud,\n CloudRain,\n CloudSnow,\n CloudDrizzle,\n CloudLightning,\n Wind,\n} from 'lucide-react';\n\n// Devices\nexport {\n Monitor,\n Smartphone,\n Tablet,\n Laptop,\n Tv,\n Watch,\n Bluetooth,\n Wifi,\n WifiOff,\n Battery,\n BatteryCharging,\n BatteryLow,\n BatteryFull,\n} from 'lucide-react';\n\n// Maps & Location\nexport {\n MapPin,\n Map,\n Navigation,\n Navigation2,\n Compass,\n Globe,\n Home,\n Building,\n Building2,\n Store,\n} from 'lucide-react';\n\n// Social & Brands\nexport {\n Github,\n Twitter,\n Facebook,\n Instagram,\n Linkedin,\n Youtube,\n Twitch,\n Figma,\n} from 'lucide-react';\n\n// Development\nexport {\n Code,\n Code2,\n Terminal,\n Bug,\n Cpu,\n Database,\n Server,\n GitBranch,\n GitCommit,\n GitMerge,\n GitPullRequest,\n} from 'lucide-react';\n\n// Misc\nexport {\n Search,\n Filter,\n Star,\n Heart,\n Bookmark,\n Flag,\n Link,\n Link2,\n ExternalLink,\n Paperclip,\n Zap,\n Award,\n TrendingUp,\n TrendingDown,\n Activity,\n BarChart,\n BarChart2,\n PieChart,\n LineChart,\n BookOpen,\n Pen,\n Cog,\n CheckCircle as CheckWaves, // Alias for indicator component\n MoreHorizontal as Dots, // Alias for pagination ellipsis\n} from 'lucide-react';\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\n\n/**\n * Button variants using class-variance-authority\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2674-1721\n */\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-1.5 whitespace-nowrap rounded-lg text-sm font-medium leading-5 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive:\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n 'destructive-subtle':\n 'bg-destructive-background text-destructive hover:bg-destructive-background/80',\n outline:\n 'border-2 border-border bg-background text-accent-foreground shadow-[0px_1px_2px_0px_rgba(0,0,0,0.05)] hover:bg-muted',\n 'secondary-outline':\n 'border border-border bg-background text-foreground hover:bg-muted',\n secondary: 'bg-secondary text-secondary-foreground hover:brightness-95',\n ghost: 'text-foreground hover:bg-muted',\n link: 'text-primary underline-offset-4 hover:underline',\n success: 'bg-success text-success-foreground hover:bg-success/90',\n 'side-panel':\n 'justify-start gap-2 rounded-md bg-transparent text-foreground hover:bg-muted data-[state=selected]:bg-muted',\n },\n size: {\n default: 'h-9 px-4 py-2',\n sm: 'h-8 px-4 py-2',\n lg: 'h-10 px-4 py-2',\n icon: 'h-10 w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, ...props }, ref) => {\n return (\n <button\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 React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Button Group Component\n *\n * A container for grouping multiple buttons together with consistent spacing.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=4720-4795\n *\n * @example\n * ```tsx\n * <ButtonGroup>\n * <Button variant=\"outline\">Cancel</Button>\n * <Button>Save</Button>\n * </ButtonGroup>\n * ```\n *\n * @example\n * ```tsx\n * <ButtonGroup orientation=\"vertical\">\n * <Button>First</Button>\n * <Button>Second</Button>\n * <Button>Third</Button>\n * </ButtonGroup>\n * ```\n */\n\nexport interface ButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The orientation of the button group\n * @default \"horizontal\"\n */\n orientation?: 'horizontal' | 'vertical';\n}\n\nconst ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n ({ className, orientation = 'horizontal', children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center',\n orientation === 'horizontal' ? 'flex-row gap-3' : 'flex-col gap-2',\n className\n )}\n role=\"group\"\n {...props}\n >\n {children}\n </div>\n );\n }\n);\nButtonGroup.displayName = 'ButtonGroup';\n\nexport { ButtonGroup };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Card Component\n *\n * Displays a card with header, content, and footer.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2778-1195\n *\n * @see https://ui.shadcn.com/docs/components/card\n *\n * @example\n * ```tsx\n * <Card>\n * <CardHeader>\n * <CardTitle>Card Title</CardTitle>\n * <CardDescription>Card Description</CardDescription>\n * </CardHeader>\n * <CardContent>\n * <p>Card Content</p>\n * </CardContent>\n * <CardFooter>\n * <Button>Action</Button>\n * </CardFooter>\n * </Card>\n * ```\n */\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'rounded-lg border border-border bg-card text-card-foreground shadow-[0px_1px_2px_0px_rgba(0,0,0,0.05)]',\n className\n )}\n {...props}\n />\n));\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col gap-1 p-6', className)}\n {...props}\n />\n));\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n 'text-xl font-semibold leading-7 tracking-normal text-card-foreground',\n className\n )}\n {...props}\n />\n));\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm font-normal leading-5 text-muted-foreground', className)}\n {...props}\n />\n));\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('px-6 pb-6 pt-0', className)} {...props} />\n));\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center justify-end gap-2 px-6 pb-6 pt-0', className)}\n {...props}\n />\n));\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { Icon, ArrowLeft, ArrowRight } from '@/components/Icon';\n\n/**\n * Carousel Component\n *\n * A carousel optimizes screen space by displaying only a subset of images\n * from a collection of images in a cyclic view.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2813-1109\n *\n * @see https://ui.shadcn.com/docs/components/carousel\n *\n * @example\n * ```tsx\n * <Carousel>\n * <CarouselContent>\n * <CarouselItem>Slide 1</CarouselItem>\n * <CarouselItem>Slide 2</CarouselItem>\n * <CarouselItem>Slide 3</CarouselItem>\n * </CarouselContent>\n * <CarouselPrevious />\n * <CarouselNext />\n * </Carousel>\n * ```\n */\n\ninterface CarouselContextValue {\n currentIndex: number;\n totalItems: number;\n goToSlide: (index: number) => void;\n nextSlide: () => void;\n previousSlide: () => void;\n}\n\nconst CarouselContext = React.createContext<CarouselContextValue | undefined>(\n undefined\n);\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\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(\n ({ className, children, ...props }, ref) => {\n const [currentIndex, setCurrentIndex] = React.useState(0);\n const [totalItems, setTotalItems] = React.useState(0);\n\n const goToSlide = React.useCallback((index: number) => {\n setCurrentIndex(index);\n }, []);\n\n const nextSlide = React.useCallback(() => {\n setCurrentIndex((prev) => (prev + 1) % totalItems);\n }, [totalItems]);\n\n const previousSlide = React.useCallback(() => {\n setCurrentIndex((prev) => (prev - 1 + totalItems) % totalItems);\n }, [totalItems]);\n\n const value = React.useMemo(\n () => ({\n currentIndex,\n totalItems,\n goToSlide,\n nextSlide,\n previousSlide,\n }),\n [currentIndex, totalItems, goToSlide, nextSlide, previousSlide]\n );\n\n return (\n <CarouselContext.Provider value={value}>\n <div\n ref={ref}\n className={cn('flex items-center justify-center gap-6', className)}\n {...props}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return React.cloneElement(child as any, { setTotalItems });\n }\n return child;\n })}\n </div>\n </CarouselContext.Provider>\n );\n }\n);\nCarousel.displayName = 'Carousel';\n\ninterface CarouselContentProps extends React.HTMLAttributes<HTMLDivElement> {\n setTotalItems?: (count: number) => void;\n}\n\nconst CarouselContent = React.forwardRef<HTMLDivElement, CarouselContentProps>(\n ({ className, children, setTotalItems, ...props }, ref) => {\n const { currentIndex } = useCarousel();\n const childrenArray = React.Children.toArray(children);\n\n React.useEffect(() => {\n setTotalItems?.(childrenArray.length);\n }, [childrenArray.length, setTotalItems]);\n\n return (\n <div\n ref={ref}\n className={cn(\n 'relative w-96 h-96 overflow-hidden rounded-md border-2 border-border bg-card shadow-sm',\n className\n )}\n {...props}\n >\n <div\n className=\"flex h-full transition-transform duration-300 ease-in-out\"\n style={{\n transform: `translateX(-${currentIndex * 100}%)`,\n }}\n >\n {childrenArray}\n </div>\n </div>\n );\n }\n);\nCarouselContent.displayName = 'CarouselContent';\n\nconst CarouselItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'min-w-full flex items-center justify-center',\n className\n )}\n {...props}\n />\n));\nCarouselItem.displayName = 'CarouselItem';\n\nconst CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => {\n const { previousSlide, currentIndex } = useCarousel();\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n 'flex h-10 w-10 items-center justify-center rounded-full border-2 border-border bg-background shadow-sm transition-opacity hover:opacity-100',\n currentIndex === 0 ? 'opacity-50' : 'opacity-100',\n className\n )}\n onClick={previousSlide}\n aria-label=\"Previous slide\"\n {...props}\n >\n <Icon icon={ArrowLeft} size={20} />\n </button>\n );\n});\nCarouselPrevious.displayName = 'CarouselPrevious';\n\nconst CarouselNext = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => {\n const { nextSlide, currentIndex, totalItems } = useCarousel();\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n 'flex h-10 w-10 items-center justify-center rounded-full border-2 border-border bg-background shadow-sm transition-opacity hover:opacity-100',\n currentIndex === totalItems - 1 ? 'opacity-50' : 'opacity-100',\n className\n )}\n onClick={nextSlide}\n aria-label=\"Next slide\"\n {...props}\n >\n <Icon icon={ArrowRight} size={20} />\n </button>\n );\n});\nCarouselNext.displayName = 'CarouselNext';\n\nexport { Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { Icon, Check } from '@/components/Icon';\n\n/**\n * Checkbox Component\n *\n * A control that allows the user to toggle between checked and not checked.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2674-1733\n *\n * @see https://ui.shadcn.com/docs/components/checkbox\n *\n * @example\n * ```tsx\n * <Checkbox id=\"terms\" />\n * <label htmlFor=\"terms\">Accept terms and conditions</label>\n * ```\n */\n\nexport interface CheckboxProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {\n onCheckedChange?: (checked: boolean) => void;\n}\n\nconst Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n ({ className, onCheckedChange, onChange, ...props }, ref) => {\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e);\n onCheckedChange?.(e.target.checked);\n };\n\n return (\n <div className=\"relative inline-flex items-center\">\n <input\n type=\"checkbox\"\n className=\"peer sr-only\"\n ref={ref}\n onChange={handleChange}\n {...props}\n />\n <div\n className={cn(\n 'flex h-4 w-4 shrink-0 items-center justify-center rounded-sm border border-primary transition-colors',\n 'peer-checked:bg-primary peer-checked:text-primary-foreground',\n 'peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2',\n 'peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className\n )}\n >\n <Icon\n icon={Check}\n size={12}\n className=\"hidden peer-checked:block\"\n />\n </div>\n </div>\n );\n }\n);\nCheckbox.displayName = 'Checkbox';\n\nexport { Checkbox };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { Icon, X } from '@/components/Icon';\n\n/**\n * Dialog Component\n *\n * A window overlaid on either the primary window or another dialog window.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2730-1719\n *\n * @see https://ui.shadcn.com/docs/components/dialog\n *\n * @example\n * ```tsx\n * <Dialog open={isOpen} onOpenChange={setIsOpen}>\n * <DialogContent>\n * <DialogHeader>\n * <DialogTitle>Dialog Title</DialogTitle>\n * <DialogDescription>Dialog Description</DialogDescription>\n * </DialogHeader>\n * <div>Main content</div>\n * <DialogFooter>\n * <Button>Action</Button>\n * </DialogFooter>\n * </DialogContent>\n * </Dialog>\n * ```\n */\n\nexport interface DialogProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nconst Dialog = ({ open, onOpenChange, children }: DialogProps) => {\n React.useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && open) {\n onOpenChange?.(false);\n }\n };\n\n if (open) {\n document.addEventListener('keydown', handleEscape);\n document.body.style.overflow = 'hidden';\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.body.style.overflow = '';\n };\n }, [open, onOpenChange]);\n\n if (!open) return null;\n\n return (\n <>\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return React.cloneElement(child as any, { onOpenChange });\n }\n return child;\n })}\n </>\n );\n};\nDialog.displayName = 'Dialog';\n\ninterface DialogContentProps extends React.HTMLAttributes<HTMLDivElement> {\n onOpenChange?: (open: boolean) => void;\n}\n\nconst DialogContent = React.forwardRef<HTMLDivElement, DialogContentProps>(\n ({ className, children, onOpenChange, ...props }, ref) => (\n <div\n className=\"fixed inset-0 z-50 flex items-center justify-center\"\n onClick={() => onOpenChange?.(false)}\n >\n {/* Overlay */}\n <div className=\"fixed inset-0 bg-black/80\" aria-hidden=\"true\" />\n\n {/* Dialog */}\n <div\n ref={ref}\n role=\"dialog\"\n aria-modal=\"true\"\n className={cn(\n 'relative z-50 flex w-[512px] flex-col gap-4 overflow-hidden rounded-lg border border-border bg-background p-6 shadow-[0px_10px_15px_-3px_rgba(0,0,0,0.1),0px_4px_6px_-2px_rgba(0,0,0,0.05)]',\n className\n )}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n <button\n onClick={() => onOpenChange?.(false)}\n className=\"absolute right-[15px] top-[15px] rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\"\n aria-label=\"Close\"\n >\n <Icon icon={X} size={16} />\n </button>\n {children}\n </div>\n </div>\n )\n);\nDialogContent.displayName = 'DialogContent';\n\nconst DialogHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col gap-1.5', className)}\n {...props}\n />\n));\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h2\n ref={ref}\n className={cn('text-lg font-semibold leading-7 text-foreground', className)}\n {...props}\n />\n));\nDialogTitle.displayName = 'DialogTitle';\n\nconst DialogDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm leading-5 text-muted-foreground', className)}\n {...props}\n />\n));\nDialogDescription.displayName = 'DialogDescription';\n\nconst DialogFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center justify-end gap-2', className)}\n {...props}\n />\n));\nDialogFooter.displayName = 'DialogFooter';\n\nexport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n DialogFooter,\n};\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { Icon, X } from '@/components/Icon';\n\n/**\n * Drawer Component\n *\n * A window overlaid on either the primary window or another dialog window,\n * rendering the content underneath inert. Slides up from the bottom of the screen.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2786-829\n *\n * @see https://ui.shadcn.com/docs/components/drawer\n *\n * @example\n * ```tsx\n * <Drawer open={isOpen} onOpenChange={setIsOpen}>\n * <DrawerContent>\n * <DrawerHeader>\n * <DrawerTitle>Drawer Title</DrawerTitle>\n * <DrawerDescription>Drawer Description</DrawerDescription>\n * </DrawerHeader>\n * <div>Main content</div>\n * <DrawerFooter>\n * <Button>Action</Button>\n * </DrawerFooter>\n * </DrawerContent>\n * </Drawer>\n * ```\n */\n\nexport interface DrawerProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nconst Drawer = ({ open, onOpenChange, children }: DrawerProps) => {\n React.useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && open) {\n onOpenChange?.(false);\n }\n };\n\n if (open) {\n document.addEventListener('keydown', handleEscape);\n document.body.style.overflow = 'hidden';\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.body.style.overflow = '';\n };\n }, [open, onOpenChange]);\n\n if (!open) return null;\n\n return (\n <>\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return React.cloneElement(child as any, { onOpenChange });\n }\n return child;\n })}\n </>\n );\n};\nDrawer.displayName = 'Drawer';\n\ninterface DrawerContentProps extends React.HTMLAttributes<HTMLDivElement> {\n onOpenChange?: (open: boolean) => void;\n}\n\nconst DrawerContent = React.forwardRef<HTMLDivElement, DrawerContentProps>(\n ({ className, children, onOpenChange, ...props }, ref) => (\n <div\n className=\"fixed inset-0 z-50 flex items-end justify-center\"\n onClick={() => onOpenChange?.(false)}\n >\n {/* Overlay */}\n <div className=\"fixed inset-0 bg-black/80\" aria-hidden=\"true\" />\n\n {/* Drawer */}\n <div\n ref={ref}\n role=\"dialog\"\n aria-modal=\"true\"\n className={cn(\n 'relative z-50 flex w-[320px] flex-col gap-4 overflow-hidden rounded-t-lg border-t border-x border-border bg-background p-6 shadow-[0px_10px_15px_-3px_rgba(0,0,0,0.1),0px_4px_6px_-2px_rgba(0,0,0,0.05)]',\n className\n )}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n {/* Drag Handle */}\n <div className=\"absolute left-1/2 top-4 h-2 w-[100px] -translate-x-1/2 rounded-full bg-muted\" />\n\n <button\n onClick={() => onOpenChange?.(false)}\n className=\"absolute right-[15px] top-[15px] rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\"\n aria-label=\"Close\"\n >\n <Icon icon={X} size={16} />\n </button>\n {children}\n </div>\n </div>\n )\n);\nDrawerContent.displayName = 'DrawerContent';\n\nconst DrawerHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col gap-1 pt-4 text-center', className)}\n {...props}\n />\n));\nDrawerHeader.displayName = 'DrawerHeader';\n\nconst DrawerTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h2\n ref={ref}\n className={cn('text-lg font-semibold leading-7 text-foreground', className)}\n {...props}\n />\n));\nDrawerTitle.displayName = 'DrawerTitle';\n\nconst DrawerDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm leading-5 text-muted-foreground', className)}\n {...props}\n />\n));\nDrawerDescription.displayName = 'DrawerDescription';\n\nconst DrawerFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n));\nDrawerFooter.displayName = 'DrawerFooter';\n\nexport {\n Drawer,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerDescription,\n DrawerFooter,\n};\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Header Component\n *\n * A page header component that combines breadcrumbs, title, actions, and supporting text.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=4741-3916\n *\n * @example\n * ```tsx\n * <Header>\n * <HeaderBreadcrumbs>\n * <Breadcrumb>\n * <BreadcrumbList>\n * <BreadcrumbItem>\n * <BreadcrumbLink href=\"/\">Home</BreadcrumbLink>\n * </BreadcrumbItem>\n * <BreadcrumbSeparator />\n * <BreadcrumbItem>\n * <BreadcrumbPage>Current Page</BreadcrumbPage>\n * </BreadcrumbItem>\n * </BreadcrumbList>\n * </Breadcrumb>\n * </HeaderBreadcrumbs>\n * <HeaderContent>\n * <HeaderTitle>Page Title</HeaderTitle>\n * <HeaderActions>\n * <Button>Action</Button>\n * </HeaderActions>\n * </HeaderContent>\n * <HeaderDescription>Supporting text goes here</HeaderDescription>\n * </Header>\n * ```\n */\n\nconst Header = React.forwardRef<\n HTMLElement,\n React.HTMLAttributes<HTMLElement>\n>(({ className, ...props }, ref) => (\n <header\n ref={ref}\n className={cn(\n 'flex flex-col gap-2 border-b-2 border-accent bg-background px-6 pb-4 pt-6',\n className\n )}\n {...props}\n />\n));\nHeader.displayName = 'Header';\n\nconst HeaderBreadcrumbs = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center gap-2.5 w-full', className)}\n {...props}\n />\n));\nHeaderBreadcrumbs.displayName = 'HeaderBreadcrumbs';\n\nconst HeaderContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center justify-between w-full', className)}\n {...props}\n />\n));\nHeaderContent.displayName = 'HeaderContent';\n\nconst HeaderTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h1\n ref={ref}\n className={cn(\n 'text-2xl font-medium leading-8 text-foreground',\n className\n )}\n {...props}\n />\n));\nHeaderTitle.displayName = 'HeaderTitle';\n\nconst HeaderActions = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center gap-3', className)}\n {...props}\n />\n));\nHeaderActions.displayName = 'HeaderActions';\n\nconst HeaderDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\n 'text-base leading-6 text-muted-foreground',\n className\n )}\n {...props}\n />\n));\nHeaderDescription.displayName = 'HeaderDescription';\n\nexport {\n Header,\n HeaderBreadcrumbs,\n HeaderContent,\n HeaderTitle,\n HeaderActions,\n HeaderDescription,\n};\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Radio Component\n *\n * A set of checkable buttons—known as radio buttons—where no more than one of the buttons can be checked at a time.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2674-2166\n *\n * @see https://ui.shadcn.com/docs/components/radio-group\n *\n * @example\n * ```tsx\n * <Radio name=\"notify\" id=\"notify-yes\" value=\"yes\" />\n * <label htmlFor=\"notify-yes\">Notify me</label>\n * ```\n */\n\nexport interface RadioProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {\n onCheckedChange?: (checked: boolean) => void;\n}\n\nconst Radio = React.forwardRef<HTMLInputElement, RadioProps>(\n ({ className, onCheckedChange, onChange, ...props }, ref) => {\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e);\n onCheckedChange?.(e.target.checked);\n };\n\n return (\n <div className=\"relative inline-flex items-center\">\n <input\n type=\"radio\"\n className=\"peer sr-only\"\n ref={ref}\n onChange={handleChange}\n {...props}\n />\n <div\n className={cn(\n 'relative flex h-4 w-4 shrink-0 items-center justify-center rounded-full border border-primary bg-background transition-colors',\n 'peer-checked:border-primary',\n 'peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2',\n 'peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n 'after:absolute after:inset-0 after:m-auto after:h-2 after:w-2 after:rounded-full after:bg-primary after:scale-0 after:transition-transform',\n 'peer-checked:after:scale-100',\n className\n )}\n />\n </div>\n );\n }\n);\nRadio.displayName = 'Radio';\n\nexport { Radio };\n","import * as React from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { Check, ChevronDown } from 'lucide-react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Select Component\n *\n * Displays a list of options for the user to pick from—triggered by a button.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2695-404\n *\n * @see https://ui.shadcn.com/docs/components/select\n * @see https://www.radix-ui.com/docs/primitives/components/select\n *\n * @example\n * ```tsx\n * <Select>\n * <SelectTrigger className=\"w-[220px]\">\n * <SelectValue placeholder=\"Select option\" />\n * </SelectTrigger>\n * <SelectContent>\n * <SelectGroup>\n * <SelectLabel>Fruits</SelectLabel>\n * <SelectItem value=\"apple\">Apple</SelectItem>\n * <SelectItem value=\"banana\">Banana</SelectItem>\n * <SelectItem value=\"blueberry\">Blueberry</SelectItem>\n * </SelectGroup>\n * <SelectSeparator />\n * <SelectGroup>\n * <SelectItem value=\"grapes\">Grapes</SelectItem>\n * <SelectItem value=\"pineapple\">Pineapple</SelectItem>\n * </SelectGroup>\n * </SelectContent>\n * </Select>\n * ```\n */\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n 'relative z-10 flex h-10 w-full items-center justify-between gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground transition-colors',\n 'hover:border-border-hover',\n 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n '[&>span]:line-clamp-1',\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-3 w-3 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4 rotate-180\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = 'popper', ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n 'relative z-[100] max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className\n )}\n position={position}\n sideOffset={4}\n collisionPadding={8}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n 'w-full min-w-[var(--radix-select-trigger-width)]'\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\n 'px-8 py-1.5 text-sm font-semibold text-popover-foreground',\n className\n )}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm text-popover-foreground outline-none',\n 'focus:bg-accent focus:text-accent-foreground',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn('mx-1 my-1 h-px bg-border', 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\n/**\n * Separator Component\n *\n * Visually or semantically separates content.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2723-432\n *\n * @see https://ui.shadcn.com/docs/components/separator\n * @see https://www.radix-ui.com/docs/primitives/components/separator\n *\n * @example\n * ```tsx\n * <div>\n * <p>Item 1</p>\n * <Separator />\n * <p>Item 2</p>\n * </div>\n * ```\n *\n * @example\n * ```tsx\n * <div className=\"flex h-5 items-center\">\n * <span>Link 1</span>\n * <Separator orientation=\"vertical\" />\n * <span>Link 2</span>\n * </div>\n * ```\n */\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\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(\n 'shrink-0 bg-border',\n orientation === 'horizontal' ? 'h-px w-full' : 'h-full w-px',\n className\n )}\n {...props}\n />\n )\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { Icon, X } from '@/components/Icon';\n\n/**\n * Sheet Component\n *\n * Extends Dialog to display content that complements the main content of the screen.\n * A slide-in panel that can appear from any side of the screen.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2774-707\n *\n * @see https://ui.shadcn.com/docs/components/sheet\n *\n * @example\n * ```tsx\n * <Sheet open={isOpen} onOpenChange={setIsOpen}>\n * <SheetContent>\n * <SheetHeader>\n * <SheetTitle>Sheet Title</SheetTitle>\n * <SheetDescription>Sheet Description</SheetDescription>\n * </SheetHeader>\n * <div>Main content</div>\n * <SheetFooter>\n * <Button>Action</Button>\n * </SheetFooter>\n * </SheetContent>\n * </Sheet>\n * ```\n */\n\nexport interface SheetProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nconst Sheet = ({ open, onOpenChange, children }: SheetProps) => {\n React.useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && open) {\n onOpenChange?.(false);\n }\n };\n\n if (open) {\n document.addEventListener('keydown', handleEscape);\n document.body.style.overflow = 'hidden';\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.body.style.overflow = '';\n };\n }, [open, onOpenChange]);\n\n if (!open) return null;\n\n return (\n <>\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return React.cloneElement(child as any, { onOpenChange });\n }\n return child;\n })}\n </>\n );\n};\nSheet.displayName = 'Sheet';\n\ntype SheetSide = 'top' | 'right' | 'bottom' | 'left';\n\ninterface SheetContentProps extends React.HTMLAttributes<HTMLDivElement> {\n onOpenChange?: (open: boolean) => void;\n side?: SheetSide;\n}\n\nconst sheetVariants: Record<SheetSide, string> = {\n top: 'inset-x-0 top-0 border-b',\n bottom: 'inset-x-0 bottom-0 border-t',\n left: 'inset-y-0 left-0 h-full w-[448px] border-r',\n right: 'inset-y-0 right-0 h-full w-[448px] border-l',\n};\n\nconst SheetContent = React.forwardRef<HTMLDivElement, SheetContentProps>(\n ({ className, children, onOpenChange, side = 'right', ...props }, ref) => (\n <div\n className=\"fixed inset-0 z-50\"\n onClick={() => onOpenChange?.(false)}\n >\n {/* Overlay */}\n <div className=\"fixed inset-0 bg-black/80\" aria-hidden=\"true\" />\n\n {/* Sheet */}\n <div\n ref={ref}\n role=\"dialog\"\n aria-modal=\"true\"\n className={cn(\n 'fixed z-50 flex flex-col gap-4 bg-background p-6 shadow-lg transition-transform duration-300',\n sheetVariants[side],\n className\n )}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n <button\n onClick={() => onOpenChange?.(false)}\n className=\"absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\"\n aria-label=\"Close\"\n >\n <Icon icon={X} size={16} />\n </button>\n {children}\n </div>\n </div>\n )\n);\nSheetContent.displayName = 'SheetContent';\n\nconst SheetHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n {...props}\n />\n));\nSheetHeader.displayName = 'SheetHeader';\n\nconst SheetTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h2\n ref={ref}\n className={cn('text-lg font-semibold text-foreground', className)}\n {...props}\n />\n));\nSheetTitle.displayName = 'SheetTitle';\n\nconst SheetDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nSheetDescription.displayName = 'SheetDescription';\n\nconst SheetFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)}\n {...props}\n />\n));\nSheetFooter.displayName = 'SheetFooter';\n\nconst SheetClose = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & {\n onOpenChange?: (open: boolean) => void;\n }\n>(({ className, onOpenChange, ...props }, ref) => (\n <button\n ref={ref}\n onClick={() => onOpenChange?.(false)}\n className={cn(\n 'rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none',\n className\n )}\n {...props}\n />\n));\nSheetClose.displayName = 'SheetClose';\n\nexport {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n SheetDescription,\n SheetFooter,\n SheetClose,\n};\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Skeleton Component\n *\n * Display a placeholder preview of content before the data loads.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2824-2174\n *\n * @see https://ui.shadcn.com/docs/components/skeleton\n *\n * @example\n * ```tsx\n * <div className=\"flex flex-col gap-2\">\n * <Skeleton className=\"h-32 w-60\" />\n * <Skeleton className=\"h-4 w-60\" />\n * <Skeleton className=\"h-4 w-48\" />\n * </div>\n * ```\n *\n * @example\n * ```tsx\n * // Circle skeleton for avatars\n * <Skeleton className=\"h-10 w-10 rounded-full\" />\n * ```\n */\nconst Skeleton = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'animate-pulse rounded-md bg-muted',\n className\n )}\n {...props}\n />\n));\nSkeleton.displayName = 'Skeleton';\n\nexport { Skeleton };\n","import * as React from 'react';\nimport * as SliderPrimitive from '@radix-ui/react-slider';\nimport { cn } from '@/lib/utils';\n\n/**\n * Slider Component\n *\n * An input where the user selects a value from within a given range.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2674-2172\n *\n * @see https://ui.shadcn.com/docs/components/slider\n * @see https://www.radix-ui.com/docs/primitives/components/slider\n *\n * @example\n * ```tsx\n * <Slider defaultValue={[50]} max={100} step={1} />\n * ```\n *\n * @example\n * ```tsx\n * // Range slider with multiple values\n * <Slider defaultValue={[25, 75]} max={100} step={1} />\n * ```\n */\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\n 'relative flex w-full touch-none select-none items-center',\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n));\nSlider.displayName = SliderPrimitive.Root.displayName;\n\nexport { Slider };\n","import * as React from 'react';\nimport * as SwitchPrimitives from '@radix-ui/react-switch';\nimport { cn } from '@/lib/utils';\n\n/**\n * Switch Component\n *\n * A control that allows the user to toggle between checked and not checked.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2674-2178\n *\n * @see https://ui.shadcn.com/docs/components/switch\n * @see https://www.radix-ui.com/docs/primitives/components/switch\n *\n * @example\n * ```tsx\n * <Switch />\n * ```\n *\n * @example\n * ```tsx\n * <div className=\"flex items-center gap-2\">\n * <Switch id=\"airplane-mode\" />\n * <label htmlFor=\"airplane-mode\">Airplane Mode</label>\n * </div>\n * ```\n */\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n 'peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent bg-input p-0.5 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input',\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n 'pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0'\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Table Component\n *\n * A responsive table component with semantic HTML.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2814-1241\n *\n * @see https://ui.shadcn.com/docs/components/table\n *\n * @example\n * ```tsx\n * <Table>\n * <TableHeader>\n * <TableRow>\n * <TableHead>Name</TableHead>\n * <TableHead>Status</TableHead>\n * </TableRow>\n * </TableHeader>\n * <TableBody>\n * <TableRow>\n * <TableCell>John Doe</TableCell>\n * <TableCell>Active</TableCell>\n * </TableRow>\n * </TableBody>\n * </Table>\n * ```\n */\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n />\n </div>\n));\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n));\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n 'border-t bg-muted/50 font-medium [&>tr]:last:border-b-0',\n className\n )}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted',\n className\n )}\n {...props}\n />\n));\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-11 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n 'p-4 align-middle [&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn('mt-4 text-sm text-muted-foreground', 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 * Tabs Component\n *\n * A set of layered sections of content—known as tab panels—that are displayed one at a time.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2737-489\n *\n * @see https://ui.shadcn.com/docs/components/tabs\n * @see https://www.radix-ui.com/docs/primitives/components/tabs\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 content</TabsContent>\n * <TabsContent value=\"password\">Password content</TabsContent>\n * </Tabs>\n * ```\n */\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n 'inline-flex h-auto items-center justify-start gap-0 text-muted-foreground',\n className\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-xs px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm data-[state=active]:font-semibold data-[state=inactive]:text-muted-foreground',\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n className\n )}\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\n/**\n * Textarea Component\n *\n * Displays a form textarea or a component that looks like a textarea.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2674-2219\n *\n * @see https://ui.shadcn.com/docs/components/textarea\n *\n * @example\n * ```tsx\n * <Textarea placeholder=\"Type your message here.\" />\n * ```\n */\nexport type TextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n 'flex min-h-[82px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n","import * as React from 'react';\nimport { Toaster as Sonner } from 'sonner';\n\n/**\n * Toast Component\n *\n * A succinct message that is displayed temporarily.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2806-824\n *\n * @see https://ui.shadcn.com/docs/components/sonner\n * @see https://sonner.emilkowal.ski/\n *\n * @example\n * ```tsx\n * import { Toaster, toast } from '@/components/Toast';\n *\n * // Add Toaster to your app root\n * <Toaster />\n *\n * // Show toasts\n * toast('Event has been created')\n * toast.success('Event has been created')\n * toast.error('Event creation failed')\n * ```\n */\ntype ToasterProps = React.ComponentProps<typeof Sonner>;\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n return (\n <Sonner\n className=\"toaster group\"\n toastOptions={{\n classNames: {\n toast:\n 'group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg',\n description: 'group-[.toast]:text-muted-foreground',\n actionButton:\n 'group-[.toast]:bg-primary group-[.toast]:text-primary-foreground',\n cancelButton:\n 'group-[.toast]:bg-muted group-[.toast]:text-muted-foreground',\n },\n }}\n {...props}\n />\n );\n};\n\nexport { Toaster, toast } from 'sonner';\nexport { Toaster as Toast };\n","import * as React from 'react';\nimport * as TogglePrimitive from '@radix-ui/react-toggle';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\n\n/**\n * Toggle Component\n *\n * A two-state button that can be either on or off.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2775-856\n *\n * @see https://ui.shadcn.com/docs/components/toggle\n * @see https://www.radix-ui.com/docs/primitives/components/toggle\n *\n * @example\n * ```tsx\n * <Toggle aria-label=\"Toggle bold\">\n * <Bold className=\"h-4 w-4\" />\n * </Toggle>\n * ```\n */\n\nconst toggleVariants = cva(\n 'inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-muted data-[state=on]:text-foreground',\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n outline:\n 'border border-input bg-transparent hover:bg-accent hover:text-accent-foreground',\n },\n size: {\n default: 'h-10 px-3',\n sm: 'h-9 px-2.5',\n lg: 'h-11 px-5',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nexport interface ToggleProps\n extends React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root>,\n VariantProps<typeof toggleVariants> {}\n\nconst Toggle = React.forwardRef<\n React.ElementRef<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","import * as React from 'react';\n\n/**\n * Available theme options\n */\nexport type Theme = 'light' | 'dark' | 'atxp' | 'dbg' | 'auto';\n\n/**\n * Theme context value\n */\ninterface ThemeContextValue {\n theme: Theme;\n setTheme: (theme: Theme) => void;\n actualTheme: 'light' | 'dark' | 'atxp' | 'dbg';\n}\n\nconst ThemeContext = React.createContext<ThemeContextValue | undefined>(undefined);\n\n/**\n * Props for ThemeProvider component\n */\nexport interface ThemeProviderProps {\n children: React.ReactNode;\n /**\n * Default theme to use\n * @default 'auto'\n */\n defaultTheme?: Theme;\n /**\n * Storage key for persisting theme preference\n * @default 'cc-theme'\n */\n storageKey?: string;\n /**\n * Enable localStorage persistence\n * @default true\n */\n enablePersistence?: boolean;\n}\n\n/**\n * ThemeProvider Component\n *\n * Provides theme context and manages theme switching for the application.\n *\n * @example\n * ```tsx\n * import { ThemeProvider } from '@circuitandchisel/design-system';\n *\n * function App() {\n * return (\n * <ThemeProvider defaultTheme=\"auto\" enablePersistence>\n * <YourApp />\n * </ThemeProvider>\n * );\n * }\n * ```\n */\nexport function ThemeProvider({\n children,\n defaultTheme = 'auto',\n storageKey = 'cc-theme',\n enablePersistence = true,\n}: ThemeProviderProps) {\n const [theme, setThemeState] = React.useState<Theme>(() => {\n if (typeof window === 'undefined') return defaultTheme;\n\n if (enablePersistence) {\n const stored = window.localStorage.getItem(storageKey);\n if (stored && isValidTheme(stored)) {\n return stored as Theme;\n }\n }\n\n return defaultTheme;\n });\n\n const [actualTheme, setActualTheme] = React.useState<'light' | 'dark' | 'atxp' | 'dbg'>(() => {\n if (theme === 'auto') {\n return typeof window !== 'undefined' &&\n window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light';\n }\n return theme;\n });\n\n // Update data-theme attribute on document element\n React.useEffect(() => {\n const root = window.document.documentElement;\n\n if (theme === 'auto') {\n // Remove data-theme to let CSS media query handle it\n root.removeAttribute('data-theme');\n } else {\n root.setAttribute('data-theme', theme);\n }\n }, [theme]);\n\n // Listen for system theme changes when in auto mode\n React.useEffect(() => {\n if (theme !== 'auto') {\n setActualTheme(theme);\n return;\n }\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n\n const handleChange = (e: MediaQueryListEvent | MediaQueryList) => {\n setActualTheme(e.matches ? 'dark' : 'light');\n };\n\n // Initial check\n handleChange(mediaQuery);\n\n // Listen for changes\n mediaQuery.addEventListener('change', handleChange);\n\n return () => {\n mediaQuery.removeEventListener('change', handleChange);\n };\n }, [theme]);\n\n const setTheme = React.useCallback(\n (newTheme: Theme) => {\n setThemeState(newTheme);\n\n if (enablePersistence && typeof window !== 'undefined') {\n try {\n window.localStorage.setItem(storageKey, newTheme);\n } catch (error) {\n console.warn('Failed to persist theme preference:', error);\n }\n }\n },\n [enablePersistence, storageKey]\n );\n\n const value = React.useMemo(\n () => ({\n theme,\n setTheme,\n actualTheme,\n }),\n [theme, setTheme, actualTheme]\n );\n\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n}\n\n/**\n * useTheme Hook\n *\n * Access and control the current theme from any component.\n *\n * @example\n * ```tsx\n * function ThemeToggle() {\n * const { theme, setTheme, actualTheme } = useTheme();\n *\n * return (\n * <button onClick={() => setTheme(theme === 'dark' ? 'light' : 'dark')}>\n * Current theme: {actualTheme}\n * </button>\n * );\n * }\n * ```\n */\nexport function useTheme() {\n const context = React.useContext(ThemeContext);\n\n if (context === undefined) {\n throw new Error('useTheme must be used within a ThemeProvider');\n }\n\n return context;\n}\n\n/**\n * Type guard to check if a string is a valid theme\n */\nfunction isValidTheme(value: string): value is Theme {\n return ['light', 'dark', 'atxp', 'dbg', 'auto'].includes(value);\n}\n"],"mappings":"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ACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;A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","names":["React","jsx","React","jsx","jsxs","React","jsx","cva","jsx","cva","React","React","jsx","ChevronDown","CheckCircle","MoreHorizontal","jsx","jsxs","React","cva","jsx","cva","React","jsx","React","jsx","React","jsx","React","jsx","jsxs","React","Fragment","jsx","jsxs","React","Fragment","jsx","jsxs","React","jsx","Header","React","jsx","jsxs","React","Check","ChevronDown","jsx","jsxs","ChevronDown","Check","React","jsx","Separator","React","Fragment","jsx","jsxs","React","jsx","React","jsx","jsxs","React","jsx","React","jsx","React","jsx","React","jsx","jsx","Toaster","React","cva","jsx","cva","React","jsx"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Accordion/Accordion.tsx","../src/lib/utils.ts","../src/components/Alert/Alert.tsx","../src/components/AlertDialog/AlertDialog.tsx","../src/components/Avatar/Avatar.tsx","../src/components/Badge/Badge.tsx","../src/components/Breadcrumb/Breadcrumb.tsx","../src/components/Icon/Icon.tsx","../src/components/Icon/index.ts","../src/components/Button/Button.tsx","../src/components/ButtonGroup/ButtonGroup.tsx","../src/components/Card/Card.tsx","../src/components/Carousel/Carousel.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Dialog/Dialog.tsx","../src/components/Drawer/Drawer.tsx","../src/components/Header/Header.tsx","../src/components/HoverCard/HoverCard.tsx","../src/components/Indicators/Indicators.tsx","../src/components/Input/Input.tsx","../src/components/InputGroup/InputGroup.tsx","../src/components/Label/Label.tsx","../src/components/Menubar/Menubar.tsx","../src/components/NavHeader/NavHeader.tsx","../src/components/NavSidePanel/NavSidePanel.tsx","../src/components/Pagination/Pagination.tsx","../src/components/Popover/Popover.tsx","../src/components/Progress/Progress.tsx","../src/components/Radio/Radio.tsx","../src/components/Select/Select.tsx","../src/components/Separator/Separator.tsx","../src/components/Sheet/Sheet.tsx","../src/components/Skeleton/Skeleton.tsx","../src/components/Slider/Slider.tsx","../src/components/Switch/Switch.tsx","../src/components/Table/Table.tsx","../src/components/Tabs/Tabs.tsx","../src/components/Textarea/Textarea.tsx","../src/components/Toast/Toast.tsx","../src/components/Toggle/Toggle.tsx","../src/lib/theme.tsx"],"sourcesContent":["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 * Accordion Component\n *\n * A vertically stacked set of interactive headings that each reveal a section of content.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2643:1487\n *\n * @see https://ui.shadcn.com/docs/components/accordion\n * @see https://www.radix-ui.com/docs/primitives/components/accordion\n *\n * @example\n * ```tsx\n * <Accordion type=\"single\" collapsible>\n * <AccordionItem value=\"item-1\">\n * <AccordionTrigger>What is a micro-interaction?</AccordionTrigger>\n * <AccordionContent>\n * Micro-interactions are events which have one main task — a single purpose — and they are found all over your device and within apps.\n * </AccordionContent>\n * </AccordionItem>\n * </Accordion>\n * ```\n */\nconst Accordion = AccordionPrimitive.Root;\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn('border-b border-border', className)}\n {...props}\n />\n));\nAccordionItem.displayName = 'AccordionItem';\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex flex-1 items-center justify-between py-4 text-base font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180',\n className\n )}\n {...props}\n >\n {children}\n <ChevronDown className=\"h-4 w-4 shrink-0 text-foreground transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn('pb-4 pt-0', className)}>{children}</div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","import { clsx, type ClassValue } from 'clsx';\n\n/**\n * Utility function to merge class names\n * Combines clsx for conditional classes\n */\nexport function cn(...inputs: ClassValue[]) {\n return clsx(inputs);\n}\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\n\n/**\n * Alert variants using class-variance-authority\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=628:2411\n */\nconst alertVariants = cva(\n 'relative w-full rounded-lg border p-4 flex gap-3 items-start',\n {\n variants: {\n variant: {\n default: 'bg-background text-foreground border-border',\n destructive:\n 'border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\n/**\n * Alert Component\n *\n * Displays a callout for user attention.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=628:2411\n *\n * @see https://ui.shadcn.com/docs/components/alert\n *\n * @example\n * ```tsx\n * <Alert>\n * <AlertTitle>Heads up!</AlertTitle>\n * <AlertDescription>\n * You can add components to your app using the cli.\n * </AlertDescription>\n * </Alert>\n * ```\n */\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n));\nAlert.displayName = 'Alert';\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn('mb-1 font-medium leading-6 tracking-normal', className)}\n {...props}\n />\n));\nAlertTitle.displayName = 'AlertTitle';\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('text-sm leading-5 [&_p]:leading-relaxed', className)}\n {...props}\n />\n));\nAlertDescription.displayName = 'AlertDescription';\n\nexport { Alert, AlertTitle, AlertDescription };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * AlertDialog Component\n *\n * A modal dialog that interrupts the user with important content and expects a response.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2673-1596\n *\n * @see https://ui.shadcn.com/docs/components/alert-dialog\n *\n * @example\n * ```tsx\n * <AlertDialog open={isOpen} onOpenChange={setIsOpen}>\n * <AlertDialogContent>\n * <AlertDialogHeader>\n * <AlertDialogTitle>Delete Account?</AlertDialogTitle>\n * <AlertDialogDescription>\n * Deleting your account is irreversible and will erase all your data.\n * </AlertDialogDescription>\n * </AlertDialogHeader>\n * <AlertDialogFooter>\n * <AlertDialogCancel>Cancel</AlertDialogCancel>\n * <AlertDialogAction>Continue</AlertDialogAction>\n * </AlertDialogFooter>\n * </AlertDialogContent>\n * </AlertDialog>\n * ```\n */\n\nexport interface AlertDialogProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nconst AlertDialog = ({ open, onOpenChange, children }: AlertDialogProps) => {\n React.useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && open) {\n onOpenChange?.(false);\n }\n };\n\n if (open) {\n document.addEventListener('keydown', handleEscape);\n document.body.style.overflow = 'hidden';\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.body.style.overflow = '';\n };\n }, [open, onOpenChange]);\n\n if (!open) return null;\n\n return (\n <>\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return React.cloneElement(child as any, { onOpenChange });\n }\n return child;\n })}\n </>\n );\n};\nAlertDialog.displayName = 'AlertDialog';\n\ninterface AlertDialogContentProps extends React.HTMLAttributes<HTMLDivElement> {\n onOpenChange?: (open: boolean) => void;\n}\n\nconst AlertDialogContent = React.forwardRef<\n HTMLDivElement,\n AlertDialogContentProps\n>(({ className, children, onOpenChange, ...props }, ref) => (\n <div\n className=\"fixed inset-0 z-50 flex items-center justify-center\"\n onClick={() => onOpenChange?.(false)}\n >\n {/* Overlay */}\n <div className=\"fixed inset-0 bg-black/50\" aria-hidden=\"true\" />\n\n {/* Dialog */}\n <div\n ref={ref}\n role=\"alertdialog\"\n aria-modal=\"true\"\n className={cn(\n 'relative z-50 flex w-[512px] flex-col gap-4 rounded-lg border border-border bg-background p-6',\n className\n )}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n {children}\n </div>\n </div>\n));\nAlertDialogContent.displayName = 'AlertDialogContent';\n\nconst AlertDialogHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n));\nAlertDialogHeader.displayName = 'AlertDialogHeader';\n\nconst AlertDialogTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h2\n ref={ref}\n className={cn('text-lg font-semibold leading-7 text-foreground', className)}\n {...props}\n />\n));\nAlertDialogTitle.displayName = 'AlertDialogTitle';\n\nconst AlertDialogDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm leading-5 text-muted-foreground', className)}\n {...props}\n />\n));\nAlertDialogDescription.displayName = 'AlertDialogDescription';\n\nconst AlertDialogFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center justify-end gap-2', className)}\n {...props}\n />\n));\nAlertDialogFooter.displayName = 'AlertDialogFooter';\n\nconst AlertDialogCancel = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n 'flex h-9 items-center justify-center rounded-lg border-2 border-border bg-background px-4 py-2 text-sm font-medium leading-5 text-accent-foreground shadow-[0px_1px_2px_0px_rgba(0,0,0,0.05)] transition-colors hover:bg-muted',\n className\n )}\n {...props}\n />\n));\nAlertDialogCancel.displayName = 'AlertDialogCancel';\n\nconst AlertDialogAction = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n 'flex h-9 items-center justify-center rounded-lg bg-primary px-4 py-2 text-sm font-medium leading-5 text-primary-foreground transition-colors hover:bg-primary/90',\n className\n )}\n {...props}\n />\n));\nAlertDialogAction.displayName = 'AlertDialogAction';\n\nexport {\n AlertDialog,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogCancel,\n AlertDialogAction,\n};\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Avatar Component\n *\n * An image element with a fallback for representing the user.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2673-1641\n *\n * @see https://ui.shadcn.com/docs/components/avatar\n *\n * @example\n * ```tsx\n * <Avatar>\n * <AvatarImage src=\"https://example.com/avatar.jpg\" alt=\"User\" />\n * <AvatarFallback>UN</AvatarFallback>\n * </Avatar>\n * ```\n */\n\nconst Avatar = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full',\n className\n )}\n {...props}\n />\n));\nAvatar.displayName = 'Avatar';\n\nconst AvatarImage = React.forwardRef<\n HTMLImageElement,\n React.ImgHTMLAttributes<HTMLImageElement>\n>(({ className, ...props }, ref) => (\n <img\n ref={ref}\n className={cn('aspect-square h-full w-full object-cover', className)}\n {...props}\n />\n));\nAvatarImage.displayName = 'AvatarImage';\n\nconst AvatarFallback = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'flex h-full w-full items-center justify-center rounded-full bg-muted text-sm font-semibold leading-5 text-foreground',\n className\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = 'AvatarFallback';\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 variants using class-variance-authority\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=620:965\n */\nconst badgeVariants = cva(\n 'inline-flex items-center justify-center rounded-lg border transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2',\n {\n variants: {\n variant: {\n default:\n 'border-primary bg-primary text-primary-foreground hover:bg-primary/80',\n secondary:\n 'border-secondary bg-secondary text-secondary-foreground hover:brightness-95',\n destructive:\n 'border-destructive bg-destructive text-destructive-foreground hover:bg-destructive/80',\n outline:\n 'border-border bg-transparent text-foreground hover:bg-muted',\n success:\n 'border-success bg-success-background text-foreground hover:brightness-95',\n },\n size: {\n sm: 'px-2 py-0.5 text-xs font-semibold',\n md: 'px-2 py-0.5 text-sm font-medium',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'sm',\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\n/**\n * Badge Component\n *\n * Displays a badge or a component that looks like a badge.\n *\n * @see https://ui.shadcn.com/docs/components/badge\n *\n * @example\n * ```tsx\n * <Badge>Default</Badge>\n * <Badge variant=\"secondary\">Secondary</Badge>\n * <Badge variant=\"destructive\">Error</Badge>\n * <Badge variant=\"outline\">Outline</Badge>\n * <Badge variant=\"success\">Success</Badge>\n * <Badge size=\"md\">Larger Badge</Badge>\n * ```\n */\nfunction Badge({ className, variant, size, ...props }: BadgeProps) {\n return (\n <div\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { Icon, ChevronRight, MoreHorizontal } from '@/components/Icon';\n\n/**\n * Breadcrumb Component\n *\n * Displays the path to the current resource using a hierarchy of links.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2673-1696\n *\n * @see https://ui.shadcn.com/docs/components/breadcrumb\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=\"/docs\">Docs</BreadcrumbLink>\n * </BreadcrumbItem>\n * <BreadcrumbSeparator />\n * <BreadcrumbItem>\n * <BreadcrumbPage>Current</BreadcrumbPage>\n * </BreadcrumbItem>\n * </BreadcrumbList>\n * </Breadcrumb>\n * ```\n */\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<'nav'> & {\n separator?: React.ReactNode;\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />);\nBreadcrumb.displayName = 'Breadcrumb';\n\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.ComponentPropsWithoutRef<'ol'>\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n 'flex flex-wrap items-center gap-2 break-words text-sm text-muted-foreground',\n className\n )}\n {...props}\n />\n));\nBreadcrumbList.displayName = 'BreadcrumbList';\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<'li'>\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n className={cn('inline-flex items-center gap-2', className)}\n {...props}\n />\n));\nBreadcrumbItem.displayName = 'BreadcrumbItem';\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<'a'>\n>(({ className, ...props }, ref) => (\n <a\n ref={ref}\n className={cn(\n 'text-sm font-normal leading-5 transition-colors hover:text-foreground',\n className\n )}\n {...props}\n />\n));\nBreadcrumbLink.displayName = 'BreadcrumbLink';\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<'span'>\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn('text-sm font-normal leading-5 text-foreground', className)}\n {...props}\n />\n));\nBreadcrumbPage.displayName = 'BreadcrumbPage';\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentProps<'li'>) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex h-5 w-5 items-center justify-center', className)}\n {...props}\n >\n {children ?? <Icon icon={ChevronRight} size={14} />}\n </li>\n);\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<'span'>) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn('flex h-5 w-5 items-center justify-center', className)}\n {...props}\n >\n <Icon icon={MoreHorizontal} size={16} />\n <span className=\"sr-only\">More</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = 'BreadcrumbElipssis';\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n","import * as React from 'react';\nimport { type LucideIcon } from 'lucide-react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Icon Component\n *\n * A wrapper around lucide-react icons to ensure consistent styling across the design system.\n * All icons are 24x24px by default to match the Figma design system.\n *\n * @see https://lucide.dev/icons\n *\n * @example\n * ```tsx\n * import { Icon } from '@circuitandchisel/design-system';\n * import { AlertCircle } from 'lucide-react';\n *\n * <Icon icon={AlertCircle} />\n * <Icon icon={AlertCircle} size={16} />\n * <Icon icon={AlertCircle} className=\"text-destructive\" />\n * ```\n */\nexport interface IconProps extends Omit<React.SVGProps<SVGSVGElement>, 'ref'> {\n /** The lucide icon component to render */\n icon: LucideIcon;\n /** Size of the icon in pixels. Defaults to 24 */\n size?: number;\n}\n\nexport const Icon = React.forwardRef<SVGSVGElement, IconProps>(\n ({ icon: IconComponent, size = 24, className, ...props }, ref) => {\n return (\n <IconComponent\n ref={ref}\n size={size}\n className={cn('shrink-0', className)}\n {...props}\n />\n );\n }\n);\n\nIcon.displayName = 'Icon';\n","export { Icon } from './Icon';\n\n// Re-export commonly used lucide-react icons for convenience\n// Users can import directly from lucide-react for the full icon set\n\n// Navigation & Arrows\nexport {\n ArrowLeft,\n ArrowRight,\n ArrowUp,\n ArrowDown,\n ChevronLeft,\n ChevronRight,\n ChevronUp,\n ChevronDown,\n ChevronsLeft,\n ChevronsRight,\n ChevronsUp,\n ChevronsDown,\n} from 'lucide-react';\n\n// Actions\nexport {\n Plus,\n Minus,\n X,\n Check,\n Copy,\n Edit,\n Edit2,\n Edit3,\n Trash,\n Trash2,\n Save,\n Download,\n Upload,\n Share,\n Share2,\n Send,\n RefreshCw,\n RotateCw,\n RotateCcw,\n} from 'lucide-react';\n\n// Status & Feedback\nexport {\n AlertCircle,\n AlertTriangle,\n Info,\n CheckCircle,\n CheckCircle2,\n XCircle,\n HelpCircle,\n Loader,\n Loader2,\n} from 'lucide-react';\n\n// Files & Folders\nexport {\n File,\n FileText,\n Folder,\n FolderOpen,\n FilePlus,\n FolderPlus,\n Image,\n FileImage,\n} from 'lucide-react';\n\n// Communication\nexport {\n Mail,\n MessageCircle,\n MessageSquare,\n Phone,\n PhoneCall,\n PhoneOff,\n Video,\n VideoOff,\n Mic,\n MicOff,\n Bell,\n BellOff,\n} from 'lucide-react';\n\n// User & Account\nexport {\n User,\n Users,\n UserPlus,\n UserMinus,\n UserCheck,\n UserX,\n Settings,\n LogIn,\n LogOut,\n Lock,\n Unlock,\n Key,\n Shield,\n ShieldCheck,\n Eye,\n EyeOff,\n} from 'lucide-react';\n\n// Media\nexport {\n Play,\n Pause,\n Square,\n SkipForward,\n SkipBack,\n Volume,\n Volume1,\n Volume2,\n VolumeX,\n Music,\n Camera,\n CameraOff,\n} from 'lucide-react';\n\n// Layout\nexport {\n Menu,\n MoreVertical,\n MoreHorizontal,\n Grid,\n List,\n Columns,\n Sidebar,\n PanelLeft,\n PanelRight,\n Layout,\n LayoutGrid,\n LayoutList,\n Maximize,\n Minimize,\n Maximize2,\n Minimize2,\n} from 'lucide-react';\n\n// Commerce\nexport {\n ShoppingCart,\n ShoppingBag,\n CreditCard,\n DollarSign,\n Tag,\n Package,\n Gift,\n} from 'lucide-react';\n\n// Time & Calendar\nexport {\n Calendar,\n Clock,\n CalendarDays,\n CalendarPlus,\n CalendarMinus,\n CalendarCheck,\n CalendarX,\n} from 'lucide-react';\n\n// Weather\nexport {\n Sun,\n Moon,\n Cloud,\n CloudRain,\n CloudSnow,\n CloudDrizzle,\n CloudLightning,\n Wind,\n} from 'lucide-react';\n\n// Devices\nexport {\n Monitor,\n Smartphone,\n Tablet,\n Laptop,\n Tv,\n Watch,\n Bluetooth,\n Wifi,\n WifiOff,\n Battery,\n BatteryCharging,\n BatteryLow,\n BatteryFull,\n} from 'lucide-react';\n\n// Maps & Location\nexport {\n MapPin,\n Map,\n Navigation,\n Navigation2,\n Compass,\n Globe,\n Home,\n Building,\n Building2,\n Store,\n} from 'lucide-react';\n\n// Social & Brands\nexport {\n Github,\n Twitter,\n Facebook,\n Instagram,\n Linkedin,\n Youtube,\n Twitch,\n Figma,\n} from 'lucide-react';\n\n// Development\nexport {\n Code,\n Code2,\n Terminal,\n Bug,\n Cpu,\n Database,\n Server,\n GitBranch,\n GitCommit,\n GitMerge,\n GitPullRequest,\n} from 'lucide-react';\n\n// Misc\nexport {\n Search,\n Filter,\n Star,\n Heart,\n Bookmark,\n Flag,\n Link,\n Link2,\n ExternalLink,\n Paperclip,\n Zap,\n Award,\n TrendingUp,\n TrendingDown,\n Activity,\n BarChart,\n BarChart2,\n PieChart,\n LineChart,\n BookOpen,\n Pen,\n Cog,\n CheckCircle as CheckWaves, // Alias for indicator component\n MoreHorizontal as Dots, // Alias for pagination ellipsis\n} from 'lucide-react';\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\n\n/**\n * Button variants using class-variance-authority\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2674-1721\n */\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-1.5 whitespace-nowrap rounded-lg text-sm font-medium leading-5 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive:\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n 'destructive-subtle':\n 'bg-destructive-background text-destructive hover:bg-destructive-background/80',\n outline:\n 'border-2 border-border bg-background text-accent-foreground shadow-[0px_1px_2px_0px_rgba(0,0,0,0.05)] hover:bg-muted',\n 'secondary-outline':\n 'border border-border bg-background text-foreground hover:bg-muted',\n secondary: 'bg-secondary text-secondary-foreground hover:brightness-95',\n ghost: 'text-foreground hover:bg-muted',\n link: 'text-primary underline-offset-4 hover:underline',\n success: 'bg-success text-success-foreground hover:bg-success/90',\n 'side-panel':\n 'justify-start gap-2 rounded-md bg-transparent text-foreground hover:bg-muted data-[state=selected]:bg-muted',\n },\n size: {\n default: 'h-9 px-4 py-2',\n sm: 'h-8 px-4 py-2',\n lg: 'h-10 px-4 py-2',\n icon: 'h-10 w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, ...props }, ref) => {\n return (\n <button\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 React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Button Group Component\n *\n * A container for grouping multiple buttons together with consistent spacing.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=4720-4795\n *\n * @example\n * ```tsx\n * <ButtonGroup>\n * <Button variant=\"outline\">Cancel</Button>\n * <Button>Save</Button>\n * </ButtonGroup>\n * ```\n *\n * @example\n * ```tsx\n * <ButtonGroup orientation=\"vertical\">\n * <Button>First</Button>\n * <Button>Second</Button>\n * <Button>Third</Button>\n * </ButtonGroup>\n * ```\n */\n\nexport interface ButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The orientation of the button group\n * @default \"horizontal\"\n */\n orientation?: 'horizontal' | 'vertical';\n}\n\nconst ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n ({ className, orientation = 'horizontal', children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center',\n orientation === 'horizontal' ? 'flex-row gap-3' : 'flex-col gap-2',\n className\n )}\n role=\"group\"\n {...props}\n >\n {children}\n </div>\n );\n }\n);\nButtonGroup.displayName = 'ButtonGroup';\n\nexport { ButtonGroup };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Card Component\n *\n * Displays a card with header, content, and footer.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2778-1195\n *\n * @see https://ui.shadcn.com/docs/components/card\n *\n * @example\n * ```tsx\n * <Card>\n * <CardHeader>\n * <CardTitle>Card Title</CardTitle>\n * <CardDescription>Card Description</CardDescription>\n * </CardHeader>\n * <CardContent>\n * <p>Card Content</p>\n * </CardContent>\n * <CardFooter>\n * <Button>Action</Button>\n * </CardFooter>\n * </Card>\n * ```\n */\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'rounded-lg border border-border bg-card text-card-foreground shadow-[0px_1px_2px_0px_rgba(0,0,0,0.05)]',\n className\n )}\n {...props}\n />\n));\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col gap-1 p-6', className)}\n {...props}\n />\n));\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n 'text-xl font-semibold leading-7 tracking-normal text-card-foreground',\n className\n )}\n {...props}\n />\n));\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm font-normal leading-5 text-muted-foreground', className)}\n {...props}\n />\n));\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('px-6 pb-6 pt-0', className)} {...props} />\n));\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center justify-end gap-2 px-6 pb-6 pt-0', className)}\n {...props}\n />\n));\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { Icon, ArrowLeft, ArrowRight } from '@/components/Icon';\n\n/**\n * Carousel Component\n *\n * A carousel optimizes screen space by displaying only a subset of images\n * from a collection of images in a cyclic view.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2813-1109\n *\n * @see https://ui.shadcn.com/docs/components/carousel\n *\n * @example\n * ```tsx\n * <Carousel>\n * <CarouselContent>\n * <CarouselItem>Slide 1</CarouselItem>\n * <CarouselItem>Slide 2</CarouselItem>\n * <CarouselItem>Slide 3</CarouselItem>\n * </CarouselContent>\n * <CarouselPrevious />\n * <CarouselNext />\n * </Carousel>\n * ```\n */\n\ninterface CarouselContextValue {\n currentIndex: number;\n totalItems: number;\n goToSlide: (index: number) => void;\n nextSlide: () => void;\n previousSlide: () => void;\n}\n\nconst CarouselContext = React.createContext<CarouselContextValue | undefined>(\n undefined\n);\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\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(\n ({ className, children, ...props }, ref) => {\n const [currentIndex, setCurrentIndex] = React.useState(0);\n const [totalItems, setTotalItems] = React.useState(0);\n\n const goToSlide = React.useCallback((index: number) => {\n setCurrentIndex(index);\n }, []);\n\n const nextSlide = React.useCallback(() => {\n setCurrentIndex((prev) => (prev + 1) % totalItems);\n }, [totalItems]);\n\n const previousSlide = React.useCallback(() => {\n setCurrentIndex((prev) => (prev - 1 + totalItems) % totalItems);\n }, [totalItems]);\n\n const value = React.useMemo(\n () => ({\n currentIndex,\n totalItems,\n goToSlide,\n nextSlide,\n previousSlide,\n }),\n [currentIndex, totalItems, goToSlide, nextSlide, previousSlide]\n );\n\n return (\n <CarouselContext.Provider value={value}>\n <div\n ref={ref}\n className={cn('flex items-center justify-center gap-6', className)}\n {...props}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return React.cloneElement(child as any, { setTotalItems });\n }\n return child;\n })}\n </div>\n </CarouselContext.Provider>\n );\n }\n);\nCarousel.displayName = 'Carousel';\n\ninterface CarouselContentProps extends React.HTMLAttributes<HTMLDivElement> {\n setTotalItems?: (count: number) => void;\n}\n\nconst CarouselContent = React.forwardRef<HTMLDivElement, CarouselContentProps>(\n ({ className, children, setTotalItems, ...props }, ref) => {\n const { currentIndex } = useCarousel();\n const childrenArray = React.Children.toArray(children);\n\n React.useEffect(() => {\n setTotalItems?.(childrenArray.length);\n }, [childrenArray.length, setTotalItems]);\n\n return (\n <div\n ref={ref}\n className={cn(\n 'relative w-96 h-96 overflow-hidden rounded-md border-2 border-border bg-card shadow-sm',\n className\n )}\n {...props}\n >\n <div\n className=\"flex h-full transition-transform duration-300 ease-in-out\"\n style={{\n transform: `translateX(-${currentIndex * 100}%)`,\n }}\n >\n {childrenArray}\n </div>\n </div>\n );\n }\n);\nCarouselContent.displayName = 'CarouselContent';\n\nconst CarouselItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'min-w-full flex items-center justify-center',\n className\n )}\n {...props}\n />\n));\nCarouselItem.displayName = 'CarouselItem';\n\nconst CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => {\n const { previousSlide, currentIndex } = useCarousel();\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n 'flex h-10 w-10 items-center justify-center rounded-full border-2 border-border bg-background shadow-sm transition-opacity hover:opacity-100',\n currentIndex === 0 ? 'opacity-50' : 'opacity-100',\n className\n )}\n onClick={previousSlide}\n aria-label=\"Previous slide\"\n {...props}\n >\n <Icon icon={ArrowLeft} size={20} />\n </button>\n );\n});\nCarouselPrevious.displayName = 'CarouselPrevious';\n\nconst CarouselNext = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => {\n const { nextSlide, currentIndex, totalItems } = useCarousel();\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n 'flex h-10 w-10 items-center justify-center rounded-full border-2 border-border bg-background shadow-sm transition-opacity hover:opacity-100',\n currentIndex === totalItems - 1 ? 'opacity-50' : 'opacity-100',\n className\n )}\n onClick={nextSlide}\n aria-label=\"Next slide\"\n {...props}\n >\n <Icon icon={ArrowRight} size={20} />\n </button>\n );\n});\nCarouselNext.displayName = 'CarouselNext';\n\nexport { Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { Icon, Check } from '@/components/Icon';\n\n/**\n * Checkbox Component\n *\n * A control that allows the user to toggle between checked and not checked.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2674-1733\n *\n * @see https://ui.shadcn.com/docs/components/checkbox\n *\n * @example\n * ```tsx\n * <Checkbox id=\"terms\" />\n * <label htmlFor=\"terms\">Accept terms and conditions</label>\n * ```\n */\n\nexport interface CheckboxProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {\n onCheckedChange?: (checked: boolean) => void;\n}\n\nconst Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n ({ className, onCheckedChange, onChange, ...props }, ref) => {\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e);\n onCheckedChange?.(e.target.checked);\n };\n\n return (\n <div className=\"relative inline-flex items-center\">\n <input\n type=\"checkbox\"\n className=\"peer sr-only\"\n ref={ref}\n onChange={handleChange}\n {...props}\n />\n <div\n className={cn(\n 'flex h-4 w-4 shrink-0 items-center justify-center rounded-sm border border-primary transition-colors',\n 'peer-checked:bg-primary peer-checked:text-primary-foreground',\n 'peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2',\n 'peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className\n )}\n >\n <Icon\n icon={Check}\n size={12}\n className=\"hidden peer-checked:block\"\n />\n </div>\n </div>\n );\n }\n);\nCheckbox.displayName = 'Checkbox';\n\nexport { Checkbox };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { Icon, X } from '@/components/Icon';\n\n/**\n * Dialog Component\n *\n * A window overlaid on either the primary window or another dialog window.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2730-1719\n *\n * @see https://ui.shadcn.com/docs/components/dialog\n *\n * @example\n * ```tsx\n * <Dialog open={isOpen} onOpenChange={setIsOpen}>\n * <DialogContent>\n * <DialogHeader>\n * <DialogTitle>Dialog Title</DialogTitle>\n * <DialogDescription>Dialog Description</DialogDescription>\n * </DialogHeader>\n * <div>Main content</div>\n * <DialogFooter>\n * <Button>Action</Button>\n * </DialogFooter>\n * </DialogContent>\n * </Dialog>\n * ```\n */\n\nexport interface DialogProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nconst Dialog = ({ open, onOpenChange, children }: DialogProps) => {\n React.useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && open) {\n onOpenChange?.(false);\n }\n };\n\n if (open) {\n document.addEventListener('keydown', handleEscape);\n document.body.style.overflow = 'hidden';\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.body.style.overflow = '';\n };\n }, [open, onOpenChange]);\n\n if (!open) return null;\n\n return (\n <>\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return React.cloneElement(child as any, { onOpenChange });\n }\n return child;\n })}\n </>\n );\n};\nDialog.displayName = 'Dialog';\n\ninterface DialogContentProps extends React.HTMLAttributes<HTMLDivElement> {\n onOpenChange?: (open: boolean) => void;\n}\n\nconst DialogContent = React.forwardRef<HTMLDivElement, DialogContentProps>(\n ({ className, children, onOpenChange, ...props }, ref) => (\n <div\n className=\"fixed inset-0 z-50 flex items-center justify-center\"\n onClick={() => onOpenChange?.(false)}\n >\n {/* Overlay */}\n <div className=\"fixed inset-0 bg-black/80\" aria-hidden=\"true\" />\n\n {/* Dialog */}\n <div\n ref={ref}\n role=\"dialog\"\n aria-modal=\"true\"\n className={cn(\n 'relative z-50 flex w-[512px] flex-col gap-4 overflow-hidden rounded-lg border border-border bg-background p-6 shadow-[0px_10px_15px_-3px_rgba(0,0,0,0.1),0px_4px_6px_-2px_rgba(0,0,0,0.05)]',\n className\n )}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n <button\n onClick={() => onOpenChange?.(false)}\n className=\"absolute right-[15px] top-[15px] rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\"\n aria-label=\"Close\"\n >\n <Icon icon={X} size={16} />\n </button>\n {children}\n </div>\n </div>\n )\n);\nDialogContent.displayName = 'DialogContent';\n\nconst DialogHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col gap-1.5', className)}\n {...props}\n />\n));\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h2\n ref={ref}\n className={cn('text-lg font-semibold leading-7 text-foreground', className)}\n {...props}\n />\n));\nDialogTitle.displayName = 'DialogTitle';\n\nconst DialogDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm leading-5 text-muted-foreground', className)}\n {...props}\n />\n));\nDialogDescription.displayName = 'DialogDescription';\n\nconst DialogFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center justify-end gap-2', className)}\n {...props}\n />\n));\nDialogFooter.displayName = 'DialogFooter';\n\nexport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogDescription,\n DialogFooter,\n};\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { Icon, X } from '@/components/Icon';\n\n/**\n * Drawer Component\n *\n * A window overlaid on either the primary window or another dialog window,\n * rendering the content underneath inert. Slides up from the bottom of the screen.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2786-829\n *\n * @see https://ui.shadcn.com/docs/components/drawer\n *\n * @example\n * ```tsx\n * <Drawer open={isOpen} onOpenChange={setIsOpen}>\n * <DrawerContent>\n * <DrawerHeader>\n * <DrawerTitle>Drawer Title</DrawerTitle>\n * <DrawerDescription>Drawer Description</DrawerDescription>\n * </DrawerHeader>\n * <div>Main content</div>\n * <DrawerFooter>\n * <Button>Action</Button>\n * </DrawerFooter>\n * </DrawerContent>\n * </Drawer>\n * ```\n */\n\nexport interface DrawerProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nconst Drawer = ({ open, onOpenChange, children }: DrawerProps) => {\n React.useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && open) {\n onOpenChange?.(false);\n }\n };\n\n if (open) {\n document.addEventListener('keydown', handleEscape);\n document.body.style.overflow = 'hidden';\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.body.style.overflow = '';\n };\n }, [open, onOpenChange]);\n\n if (!open) return null;\n\n return (\n <>\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return React.cloneElement(child as any, { onOpenChange });\n }\n return child;\n })}\n </>\n );\n};\nDrawer.displayName = 'Drawer';\n\ninterface DrawerContentProps extends React.HTMLAttributes<HTMLDivElement> {\n onOpenChange?: (open: boolean) => void;\n}\n\nconst DrawerContent = React.forwardRef<HTMLDivElement, DrawerContentProps>(\n ({ className, children, onOpenChange, ...props }, ref) => (\n <div\n className=\"fixed inset-0 z-50 flex items-end justify-center\"\n onClick={() => onOpenChange?.(false)}\n >\n {/* Overlay */}\n <div className=\"fixed inset-0 bg-black/80\" aria-hidden=\"true\" />\n\n {/* Drawer */}\n <div\n ref={ref}\n role=\"dialog\"\n aria-modal=\"true\"\n className={cn(\n 'relative z-50 flex w-[320px] flex-col gap-4 overflow-hidden rounded-t-lg border-t border-x border-border bg-background p-6 shadow-[0px_10px_15px_-3px_rgba(0,0,0,0.1),0px_4px_6px_-2px_rgba(0,0,0,0.05)]',\n className\n )}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n {/* Drag Handle */}\n <div className=\"absolute left-1/2 top-4 h-2 w-[100px] -translate-x-1/2 rounded-full bg-muted\" />\n\n <button\n onClick={() => onOpenChange?.(false)}\n className=\"absolute right-[15px] top-[15px] rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\"\n aria-label=\"Close\"\n >\n <Icon icon={X} size={16} />\n </button>\n {children}\n </div>\n </div>\n )\n);\nDrawerContent.displayName = 'DrawerContent';\n\nconst DrawerHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col gap-1 pt-4 text-center', className)}\n {...props}\n />\n));\nDrawerHeader.displayName = 'DrawerHeader';\n\nconst DrawerTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h2\n ref={ref}\n className={cn('text-lg font-semibold leading-7 text-foreground', className)}\n {...props}\n />\n));\nDrawerTitle.displayName = 'DrawerTitle';\n\nconst DrawerDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm leading-5 text-muted-foreground', className)}\n {...props}\n />\n));\nDrawerDescription.displayName = 'DrawerDescription';\n\nconst DrawerFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n));\nDrawerFooter.displayName = 'DrawerFooter';\n\nexport {\n Drawer,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerDescription,\n DrawerFooter,\n};\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Header Component\n *\n * A page header component that combines breadcrumbs, title, actions, and supporting text.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=4741-3916\n *\n * @example\n * ```tsx\n * <Header>\n * <HeaderBreadcrumbs>\n * <Breadcrumb>\n * <BreadcrumbList>\n * <BreadcrumbItem>\n * <BreadcrumbLink href=\"/\">Home</BreadcrumbLink>\n * </BreadcrumbItem>\n * <BreadcrumbSeparator />\n * <BreadcrumbItem>\n * <BreadcrumbPage>Current Page</BreadcrumbPage>\n * </BreadcrumbItem>\n * </BreadcrumbList>\n * </Breadcrumb>\n * </HeaderBreadcrumbs>\n * <HeaderContent>\n * <HeaderTitle>Page Title</HeaderTitle>\n * <HeaderActions>\n * <Button>Action</Button>\n * </HeaderActions>\n * </HeaderContent>\n * <HeaderDescription>Supporting text goes here</HeaderDescription>\n * </Header>\n * ```\n */\n\nconst Header = React.forwardRef<\n HTMLElement,\n React.HTMLAttributes<HTMLElement>\n>(({ className, ...props }, ref) => (\n <header\n ref={ref}\n className={cn(\n 'flex flex-col gap-2 border-b-2 border-accent bg-background px-6 pb-4 pt-6',\n className\n )}\n {...props}\n />\n));\nHeader.displayName = 'Header';\n\nconst HeaderBreadcrumbs = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center gap-2.5 w-full', className)}\n {...props}\n />\n));\nHeaderBreadcrumbs.displayName = 'HeaderBreadcrumbs';\n\nconst HeaderContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center justify-between w-full', className)}\n {...props}\n />\n));\nHeaderContent.displayName = 'HeaderContent';\n\nconst HeaderTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h1\n ref={ref}\n className={cn(\n 'text-2xl font-medium leading-8 text-foreground',\n className\n )}\n {...props}\n />\n));\nHeaderTitle.displayName = 'HeaderTitle';\n\nconst HeaderActions = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center gap-3', className)}\n {...props}\n />\n));\nHeaderActions.displayName = 'HeaderActions';\n\nconst HeaderDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\n 'text-base leading-6 text-muted-foreground',\n className\n )}\n {...props}\n />\n));\nHeaderDescription.displayName = 'HeaderDescription';\n\nexport {\n Header,\n HeaderBreadcrumbs,\n HeaderContent,\n HeaderTitle,\n HeaderActions,\n HeaderDescription,\n};\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * HoverCard Component\n *\n * For sighted users to preview content available behind a link.\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2785-828\n *\n * @see https://ui.shadcn.com/docs/components/hover-card\n *\n * @example\n * ```tsx\n * <HoverCard>\n * <HoverCardHeader>\n * <HoverCardTitle>Hover Card Title</HoverCardTitle>\n * <HoverCardDescription>Hover Card Description</HoverCardDescription>\n * </HoverCardHeader>\n * <div>Main content goes here</div>\n * </HoverCard>\n * ```\n */\n\nexport type HoverCardProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst HoverCard = React.forwardRef<HTMLDivElement, HoverCardProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'flex w-64 flex-col gap-4 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md',\n className\n )}\n {...props}\n />\n );\n }\n);\nHoverCard.displayName = 'HoverCard';\n\nexport type HoverCardHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst HoverCardHeader = React.forwardRef<HTMLDivElement, HoverCardHeaderProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('flex flex-col gap-1', className)}\n {...props}\n />\n );\n }\n);\nHoverCardHeader.displayName = 'HoverCardHeader';\n\nexport type HoverCardTitleProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nconst HoverCardTitle = React.forwardRef<\n HTMLParagraphElement,\n HoverCardTitleProps\n>(({ className, ...props }, ref) => {\n return (\n <p\n ref={ref}\n className={cn(\n 'text-base font-medium leading-6 text-popover-foreground',\n className\n )}\n {...props}\n />\n );\n});\nHoverCardTitle.displayName = 'HoverCardTitle';\n\nexport type HoverCardDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nconst HoverCardDescription = React.forwardRef<\n HTMLParagraphElement,\n HoverCardDescriptionProps\n>(({ className, ...props }, ref) => {\n return (\n <p\n ref={ref}\n className={cn('text-sm font-normal leading-5 text-muted-foreground', className)}\n {...props}\n />\n );\n});\nHoverCardDescription.displayName = 'HoverCardDescription';\n\nexport { HoverCard, HoverCardHeader, HoverCardTitle, HoverCardDescription };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\nimport { Icon, Check } from '@/components/Icon';\n\n/**\n * Indicator variants using class-variance-authority\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=4717-4109\n */\n\n// Indicator Dot Component\nconst indicatorDotVariants = cva('h-2.5 w-2.5 rounded-full', {\n variants: {\n status: {\n high: 'bg-warning',\n medium: 'bg-warning-alt',\n low: 'bg-success',\n info: 'bg-warning',\n },\n },\n defaultVariants: {\n status: 'high',\n },\n});\n\nexport interface IndicatorDotProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof indicatorDotVariants> {}\n\n/**\n * IndicatorDot Component\n *\n * Displays a small colored dot indicator for status visualization.\n *\n * @example\n * ```tsx\n * <IndicatorDot status=\"high\" />\n * <IndicatorDot status=\"medium\" />\n * <IndicatorDot status=\"low\" />\n * ```\n */\nconst IndicatorDot = React.forwardRef<HTMLDivElement, IndicatorDotProps>(\n ({ className, status, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(indicatorDotVariants({ status }), className)}\n {...props}\n />\n );\n }\n);\nIndicatorDot.displayName = 'IndicatorDot';\n\n// Indicator Circle Component\nconst indicatorCircleVariants = cva('relative h-5 w-5', {\n variants: {\n status: {\n complete: '',\n partial: '',\n minimal: '',\n },\n },\n defaultVariants: {\n status: 'complete',\n },\n});\n\nexport interface IndicatorCircleProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof indicatorCircleVariants> {}\n\n/**\n * IndicatorCircle Component\n *\n * Displays a circular progress indicator.\n *\n * @example\n * ```tsx\n * <IndicatorCircle status=\"complete\" />\n * <IndicatorCircle status=\"partial\" />\n * <IndicatorCircle status=\"minimal\" />\n * ```\n */\nconst IndicatorCircle = React.forwardRef<HTMLDivElement, IndicatorCircleProps>(\n ({ className, status = 'complete', ...props }, ref) => {\n const isComplete = status === 'complete';\n const isPartial = status === 'partial';\n\n return (\n <div\n ref={ref}\n className={cn(indicatorCircleVariants({ status }), className)}\n {...props}\n >\n {isComplete && (\n <Icon\n icon={Check}\n size={20}\n className=\"text-info\"\n strokeWidth={2}\n />\n )}\n {isPartial && (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"absolute inset-0\"\n >\n <circle\n cx=\"10\"\n cy=\"10\"\n r=\"6.5\"\n stroke=\"var(--theme-muted-foreground)\"\n strokeWidth=\"1.5\"\n />\n <path\n d=\"M 10,3.5 A 6.5,6.5 0 0,1 16.5,10\"\n stroke=\"var(--theme-info)\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n fill=\"none\"\n />\n </svg>\n )}\n {!isComplete && !isPartial && (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"absolute inset-0\"\n >\n <circle\n cx=\"10\"\n cy=\"10\"\n r=\"6.5\"\n stroke=\"var(--theme-muted-foreground)\"\n strokeWidth=\"1.5\"\n />\n </svg>\n )}\n </div>\n );\n }\n);\nIndicatorCircle.displayName = 'IndicatorCircle';\n\nexport { IndicatorDot, IndicatorCircle, indicatorDotVariants, indicatorCircleVariants };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Input Component\n *\n * Displays a form input field or a component that looks like an input field.\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2630-194\n *\n * @see https://ui.shadcn.com/docs/components/input\n *\n * @example\n * ```tsx\n * <Input type=\"email\" placeholder=\"Email\" />\n * <Input type=\"password\" placeholder=\"Password\" disabled />\n * ```\n */\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n /**\n * Optional icon to display at the end of the input\n */\n icon?: React.ReactNode;\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, icon, ...props }, ref) => {\n const WrapperComponent = icon ? 'div' : React.Fragment;\n const wrapperProps = icon\n ? {\n className: cn(\n 'flex h-10 w-full items-center gap-2 rounded-md border border-input bg-background px-3 py-2',\n 'focus-within:outline-none focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2',\n className\n ),\n }\n : {};\n\n const inputElement = (\n <input\n type={type}\n className={cn(\n 'flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm leading-5 text-foreground',\n 'file:border-0 file:bg-transparent file:text-sm file:font-medium',\n 'placeholder:text-muted-foreground',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n icon && 'flex-1 border-0 p-0 focus-visible:ring-0 focus-visible:ring-offset-0',\n !icon && className\n )}\n ref={ref}\n {...props}\n />\n );\n\n if (icon) {\n return (\n <WrapperComponent {...wrapperProps}>\n {inputElement}\n {icon}\n </WrapperComponent>\n );\n }\n\n return inputElement;\n }\n);\nInput.displayName = 'Input';\n\nexport { Input };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * InputGroup Component\n *\n * Groups form inputs with labels and optional help text.\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2818-1785\n *\n * @example\n * ```tsx\n * <InputGroup>\n * <InputGroupLabel>Email</InputGroupLabel>\n * <Input type=\"email\" placeholder=\"Enter email\" />\n * <InputGroupHelpText>We'll never share your email.</InputGroupHelpText>\n * </InputGroup>\n * ```\n */\n\nexport type InputGroupProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst InputGroup = React.forwardRef<HTMLDivElement, InputGroupProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n );\n }\n);\nInputGroup.displayName = 'InputGroup';\n\nexport type InputGroupLabelProps = React.LabelHTMLAttributes<HTMLLabelElement>;\n\nconst InputGroupLabel = React.forwardRef<\n HTMLLabelElement,\n InputGroupLabelProps\n>(({ className, ...props }, ref) => {\n return (\n <label\n ref={ref}\n className={cn(\n 'text-sm font-medium leading-5 text-foreground',\n className\n )}\n {...props}\n />\n );\n});\nInputGroupLabel.displayName = 'InputGroupLabel';\n\nexport type InputGroupHelpTextProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nconst InputGroupHelpText = React.forwardRef<\n HTMLParagraphElement,\n InputGroupHelpTextProps\n>(({ className, ...props }, ref) => {\n return (\n <p\n ref={ref}\n className={cn(\n 'text-sm font-normal leading-5 text-muted-foreground',\n className\n )}\n {...props}\n />\n );\n});\nInputGroupHelpText.displayName = 'InputGroupHelpText';\n\nexport { InputGroup, InputGroupLabel, InputGroupHelpText };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Label Component\n *\n * Renders an accessible label associated with controls.\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2604-4202\n *\n * @see https://ui.shadcn.com/docs/components/label\n *\n * @example\n * ```tsx\n * <Label htmlFor=\"email\">Email</Label>\n * <Input id=\"email\" type=\"email\" />\n * ```\n */\n\nexport type LabelProps = React.LabelHTMLAttributes<HTMLLabelElement>;\n\nconst Label = React.forwardRef<HTMLLabelElement, LabelProps>(\n ({ className, ...props }, ref) => {\n return (\n <label\n ref={ref}\n className={cn(\n 'text-sm font-medium leading-5 text-foreground',\n 'peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n className\n )}\n {...props}\n />\n );\n }\n);\nLabel.displayName = 'Label';\n\nexport { Label };\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\nimport { Icon, Check, ChevronRight } from '@/components/Icon';\n\n/**\n * Menubar Component\n *\n * A visually persistent menu common in desktop applications that provides\n * quick access to a consistent set of commands.\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2760-2489\n *\n * @see https://ui.shadcn.com/docs/components/menubar\n */\n\nexport type MenubarProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst Menubar = React.forwardRef<HTMLDivElement, MenubarProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'flex h-10 items-center gap-1 rounded-md border border-border bg-background p-1',\n className\n )}\n {...props}\n />\n );\n }\n);\nMenubar.displayName = 'Menubar';\n\nconst menubarTriggerVariants = cva(\n 'inline-flex items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium leading-5 transition-colors',\n {\n variants: {\n selected: {\n true: 'bg-accent text-accent-foreground',\n false: 'text-foreground hover:bg-accent hover:text-accent-foreground',\n },\n },\n defaultVariants: {\n selected: false,\n },\n }\n);\n\nexport interface MenubarTriggerProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof menubarTriggerVariants> {}\n\nconst MenubarTrigger = React.forwardRef<HTMLButtonElement, MenubarTriggerProps>(\n ({ className, selected, ...props }, ref) => {\n return (\n <button\n ref={ref}\n className={cn(menubarTriggerVariants({ selected }), className)}\n {...props}\n />\n );\n }\n);\nMenubarTrigger.displayName = 'MenubarTrigger';\n\nexport type MenubarDropdownProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst MenubarDropdown = React.forwardRef<HTMLDivElement, MenubarDropdownProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'flex w-56 flex-col gap-0 rounded-md border border-border bg-popover p-1 shadow-md',\n className\n )}\n {...props}\n />\n );\n }\n);\nMenubarDropdown.displayName = 'MenubarDropdown';\n\nconst menubarItemVariants = cva(\n 'flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm font-normal leading-5 transition-colors',\n {\n variants: {\n disabled: {\n true: 'cursor-not-allowed opacity-50',\n false: 'cursor-pointer text-popover-foreground hover:bg-accent hover:text-accent-foreground',\n },\n },\n defaultVariants: {\n disabled: false,\n },\n }\n);\n\nexport interface MenubarItemProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'disabled'>,\n VariantProps<typeof menubarItemVariants> {\n /**\n * Optional keyboard shortcut to display\n */\n shortcut?: string;\n /**\n * Whether to show a checkmark\n */\n checked?: boolean;\n /**\n * Whether this item has a submenu\n */\n hasSubmenu?: boolean;\n}\n\nconst MenubarItem = React.forwardRef<HTMLButtonElement, MenubarItemProps>(\n (\n {\n className,\n disabled = false,\n shortcut,\n checked,\n hasSubmenu,\n children,\n ...props\n },\n ref\n ) => {\n const isDisabled = Boolean(disabled);\n return (\n <button\n ref={ref}\n disabled={isDisabled}\n className={cn(menubarItemVariants({ disabled: isDisabled }), className)}\n {...props}\n >\n {checked && (\n <Icon icon={Check} size={16} className=\"shrink-0\" />\n )}\n {!checked && <div className=\"w-4 shrink-0\" />}\n <span className=\"flex-1 text-left\">{children}</span>\n {shortcut && (\n <span className=\"ml-auto text-xs leading-4 opacity-60\">\n {shortcut}\n </span>\n )}\n {hasSubmenu && (\n <Icon icon={ChevronRight} size={10.67} className=\"ml-auto opacity-60\" />\n )}\n </button>\n );\n }\n);\nMenubarItem.displayName = 'MenubarItem';\n\nexport type MenubarSeparatorProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst MenubarSeparator = React.forwardRef<HTMLDivElement, MenubarSeparatorProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('my-1 h-px w-full bg-border', className)}\n {...props}\n />\n );\n }\n);\nMenubarSeparator.displayName = 'MenubarSeparator';\n\nexport type MenubarLabelProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst MenubarLabel = React.forwardRef<HTMLDivElement, MenubarLabelProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'px-2 py-1.5 text-sm font-semibold leading-5 text-popover-foreground',\n className\n )}\n {...props}\n />\n );\n }\n);\nMenubarLabel.displayName = 'MenubarLabel';\n\nexport {\n Menubar,\n MenubarTrigger,\n MenubarDropdown,\n MenubarItem,\n MenubarSeparator,\n MenubarLabel,\n menubarTriggerVariants,\n menubarItemVariants,\n};\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\n\n/**\n * NavHeader Component\n *\n * A horizontal navigation header for application navigation.\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=4722-5662\n *\n * @example\n * ```tsx\n * <NavHeader>\n * <NavHeaderBrand>My App</NavHeaderBrand>\n * <NavHeaderNav>\n * <NavHeaderItem selected>Dashboard</NavHeaderItem>\n * <NavHeaderItem>Settings</NavHeaderItem>\n * </NavHeaderNav>\n * </NavHeader>\n * ```\n */\n\nexport type NavHeaderProps = React.HTMLAttributes<HTMLElement>;\n\nconst NavHeader = React.forwardRef<HTMLElement, NavHeaderProps>(\n ({ className, ...props }, ref) => {\n return (\n <header\n ref={ref}\n className={cn(\n 'flex w-full items-center justify-between border-b border-slate-200 bg-background p-4',\n className\n )}\n {...props}\n />\n );\n }\n);\nNavHeader.displayName = 'NavHeader';\n\nexport type NavHeaderBrandProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst NavHeaderBrand = React.forwardRef<HTMLDivElement, NavHeaderBrandProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('flex items-center', className)}\n {...props}\n />\n );\n }\n);\nNavHeaderBrand.displayName = 'NavHeaderBrand';\n\nexport type NavHeaderNavProps = React.HTMLAttributes<HTMLElement>;\n\nconst NavHeaderNav = React.forwardRef<HTMLElement, NavHeaderNavProps>(\n ({ className, ...props }, ref) => {\n return (\n <nav\n ref={ref}\n className={cn('flex items-center gap-4', className)}\n {...props}\n />\n );\n }\n);\nNavHeaderNav.displayName = 'NavHeaderNav';\n\nconst navHeaderItemVariants = cva(\n 'inline-flex h-9 items-center justify-center gap-1.5 rounded-lg px-4 py-2 text-sm font-medium leading-5 transition-colors',\n {\n variants: {\n variant: {\n default: 'text-foreground hover:bg-muted',\n selected: 'bg-accent text-secondary-foreground font-bold',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface NavHeaderItemProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof navHeaderItemVariants> {\n /**\n * Whether this item is currently selected\n */\n selected?: boolean;\n /**\n * Optional icon to display\n */\n icon?: React.ReactNode;\n}\n\nconst NavHeaderItem = React.forwardRef<HTMLButtonElement, NavHeaderItemProps>(\n ({ className, variant, selected, icon, children, ...props }, ref) => {\n return (\n <button\n ref={ref}\n className={cn(\n navHeaderItemVariants({\n variant: selected ? 'selected' : variant,\n }),\n className\n )}\n {...props}\n >\n {icon}\n {children}\n </button>\n );\n }\n);\nNavHeaderItem.displayName = 'NavHeaderItem';\n\nexport type NavHeaderDividerProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst NavHeaderDivider = React.forwardRef<\n HTMLDivElement,\n NavHeaderDividerProps\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('text-base font-normal leading-6 text-input', className)}\n {...props}\n >\n |\n </div>\n );\n});\nNavHeaderDivider.displayName = 'NavHeaderDivider';\n\nexport {\n NavHeader,\n NavHeaderBrand,\n NavHeaderNav,\n NavHeaderItem,\n NavHeaderDivider,\n navHeaderItemVariants,\n};\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\n\n/**\n * NavSidePanel Component\n *\n * A vertical side navigation panel for application navigation.\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=4722-5838\n *\n * @example\n * ```tsx\n * <NavSidePanel>\n * <NavSidePanelHeader>My App</NavSidePanelHeader>\n * <NavSidePanelNav>\n * <NavSidePanelItem selected icon={<Icon />}>Dashboard</NavSidePanelItem>\n * <NavSidePanelItem icon={<Icon />}>Settings</NavSidePanelItem>\n * </NavSidePanelNav>\n * </NavSidePanel>\n * ```\n */\n\nexport type NavSidePanelProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst NavSidePanel = React.forwardRef<HTMLDivElement, NavSidePanelProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'flex w-[180px] flex-col justify-between overflow-hidden bg-sidebar-background',\n className\n )}\n {...props}\n />\n );\n }\n);\nNavSidePanel.displayName = 'NavSidePanel';\n\nexport type NavSidePanelHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst NavSidePanelHeader = React.forwardRef<\n HTMLDivElement,\n NavSidePanelHeaderProps\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('flex flex-col gap-3.5 px-4 pt-6', className)}\n {...props}\n />\n );\n});\nNavSidePanelHeader.displayName = 'NavSidePanelHeader';\n\nexport type NavSidePanelBrandProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst NavSidePanelBrand = React.forwardRef<\n HTMLDivElement,\n NavSidePanelBrandProps\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'flex justify-center text-xl font-extrabold leading-7 text-black',\n className\n )}\n {...props}\n />\n );\n});\nNavSidePanelBrand.displayName = 'NavSidePanelBrand';\n\nexport type NavSidePanelSeparatorProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst NavSidePanelSeparator = React.forwardRef<\n HTMLDivElement,\n NavSidePanelSeparatorProps\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('h-px w-full bg-accent-muted', className)}\n {...props}\n />\n );\n});\nNavSidePanelSeparator.displayName = 'NavSidePanelSeparator';\n\nexport type NavSidePanelNavProps = React.HTMLAttributes<HTMLElement>;\n\nconst NavSidePanelNav = React.forwardRef<HTMLElement, NavSidePanelNavProps>(\n ({ className, ...props }, ref) => {\n return (\n <nav\n ref={ref}\n className={cn('flex flex-1 flex-col gap-0 px-4', className)}\n {...props}\n />\n );\n }\n);\nNavSidePanelNav.displayName = 'NavSidePanelNav';\n\nconst navSidePanelItemVariants = cva(\n 'flex h-10 w-full items-center gap-1.5 rounded-sm bg-secondary px-4 py-0 shadow-xs transition-colors',\n {\n variants: {\n selected: {\n true: 'border-r-4 border-primary bg-accent',\n false: 'hover:bg-accent',\n },\n },\n defaultVariants: {\n selected: false,\n },\n }\n);\n\nexport interface NavSidePanelItemProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof navSidePanelItemVariants> {\n /**\n * Optional icon to display\n */\n icon?: React.ReactNode;\n}\n\nconst NavSidePanelItem = React.forwardRef<\n HTMLButtonElement,\n NavSidePanelItemProps\n>(({ className, selected, icon, children, ...props }, ref) => {\n return (\n <button\n ref={ref}\n className={cn(navSidePanelItemVariants({ selected }), className)}\n {...props}\n >\n {icon}\n <span className=\"text-sm font-medium leading-5 text-accent-foreground\">\n {children}\n </span>\n </button>\n );\n});\nNavSidePanelItem.displayName = 'NavSidePanelItem';\n\nexport type NavSidePanelFooterProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst NavSidePanelFooter = React.forwardRef<\n HTMLDivElement,\n NavSidePanelFooterProps\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('flex flex-col gap-0 px-4 pb-4', className)}\n {...props}\n />\n );\n});\nNavSidePanelFooter.displayName = 'NavSidePanelFooter';\n\nexport {\n NavSidePanel,\n NavSidePanelHeader,\n NavSidePanelBrand,\n NavSidePanelSeparator,\n NavSidePanelNav,\n NavSidePanelItem,\n NavSidePanelFooter,\n navSidePanelItemVariants,\n};\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\nimport { Icon, ChevronLeft, ChevronRight, Dots } from '@/components/Icon';\n\n/**\n * Pagination Component\n *\n * Pagination with page navigation, next and previous links.\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2648-223\n *\n * @see https://ui.shadcn.com/docs/components/pagination\n */\n\nexport type PaginationProps = React.HTMLAttributes<HTMLElement>;\n\nconst Pagination = React.forwardRef<HTMLElement, PaginationProps>(\n ({ className, ...props }, ref) => {\n return (\n <nav\n ref={ref}\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn('flex items-center justify-center gap-2', className)}\n {...props}\n />\n );\n }\n);\nPagination.displayName = 'Pagination';\n\nconst paginationItemVariants = cva(\n 'inline-flex items-center justify-center rounded-md text-sm font-medium leading-5 transition-colors',\n {\n variants: {\n variant: {\n default: 'hover:bg-muted',\n active:\n 'border border-border bg-background hover:bg-muted',\n },\n size: {\n default: 'h-10 w-10',\n sm: 'h-9 w-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nexport interface PaginationItemProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof paginationItemVariants> {\n /**\n * Whether this page is currently active\n */\n isActive?: boolean;\n}\n\nconst PaginationItem = React.forwardRef<HTMLButtonElement, PaginationItemProps>(\n ({ className, variant, size, isActive, ...props }, ref) => {\n return (\n <button\n ref={ref}\n className={cn(\n paginationItemVariants({\n variant: isActive ? 'active' : variant,\n size,\n }),\n className\n )}\n aria-current={isActive ? 'page' : undefined}\n {...props}\n />\n );\n }\n);\nPaginationItem.displayName = 'PaginationItem';\n\nexport interface PaginationLinkProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Direction of the link\n */\n direction?: 'previous' | 'next';\n}\n\nconst PaginationLink = React.forwardRef<HTMLButtonElement, PaginationLinkProps>(\n ({ className, direction = 'next', children, ...props }, ref) => {\n const isPrevious = direction === 'previous';\n const isNext = direction === 'next';\n\n return (\n <button\n ref={ref}\n className={cn(\n 'inline-flex h-10 items-center justify-center gap-1 rounded-md px-3 text-sm font-medium leading-5 transition-colors hover:bg-muted',\n className\n )}\n {...props}\n >\n {isPrevious && <Icon icon={ChevronLeft} size={16} />}\n {children || (isPrevious ? 'Previous' : 'Next')}\n {isNext && <Icon icon={ChevronRight} size={16} />}\n </button>\n );\n }\n);\nPaginationLink.displayName = 'PaginationLink';\n\nexport type PaginationEllipsisProps = React.HTMLAttributes<HTMLSpanElement>;\n\nconst PaginationEllipsis = React.forwardRef<\n HTMLSpanElement,\n PaginationEllipsisProps\n>(({ className, ...props }, ref) => {\n return (\n <span\n ref={ref}\n aria-hidden\n className={cn(\n 'flex h-9 w-9 items-center justify-center',\n className\n )}\n {...props}\n >\n <Icon icon={Dots} size={24} />\n </span>\n );\n});\nPaginationEllipsis.displayName = 'PaginationEllipsis';\n\nexport {\n Pagination,\n PaginationItem,\n PaginationLink,\n PaginationEllipsis,\n paginationItemVariants,\n};\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Popover Component\n *\n * Displays rich content in a portal, triggered by a button.\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2782-1741\n *\n * @see https://ui.shadcn.com/docs/components/popover\n *\n * @example\n * ```tsx\n * <Popover>\n * <PopoverHeader>\n * <PopoverTitle>Popover Title</PopoverTitle>\n * <PopoverDescription>Popover Description</PopoverDescription>\n * </PopoverHeader>\n * <div>Content goes here</div>\n * </Popover>\n * ```\n */\n\nexport type PopoverProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst Popover = React.forwardRef<HTMLDivElement, PopoverProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'w-72 flex flex-col gap-4 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md',\n className\n )}\n {...props}\n />\n );\n }\n);\nPopover.displayName = 'Popover';\n\nexport type PopoverHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst PopoverHeader = React.forwardRef<HTMLDivElement, PopoverHeaderProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('flex flex-col gap-1', className)}\n {...props}\n />\n );\n }\n);\nPopoverHeader.displayName = 'PopoverHeader';\n\nexport type PopoverTitleProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nconst PopoverTitle = React.forwardRef<\n HTMLParagraphElement,\n PopoverTitleProps\n>(({ className, ...props }, ref) => {\n return (\n <p\n ref={ref}\n className={cn(\n 'text-base font-medium leading-6 text-popover-foreground',\n className\n )}\n {...props}\n />\n );\n});\nPopoverTitle.displayName = 'PopoverTitle';\n\nexport type PopoverDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nconst PopoverDescription = React.forwardRef<\n HTMLParagraphElement,\n PopoverDescriptionProps\n>(({ className, ...props }, ref) => {\n return (\n <p\n ref={ref}\n className={cn('text-sm font-normal leading-5 text-muted-foreground', className)}\n {...props}\n />\n );\n});\nPopoverDescription.displayName = 'PopoverDescription';\n\nexport { Popover, PopoverHeader, PopoverTitle, PopoverDescription };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Progress Component\n *\n * Displays an indicator showing the completion progress of a task,\n * typically displayed as a progress bar.\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2641-182\n *\n * @see https://ui.shadcn.com/docs/components/progress\n *\n * @example\n * ```tsx\n * <Progress value={33} />\n * <Progress value={66} />\n * <Progress value={100} />\n * ```\n */\n\nexport interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The progress value (0-100)\n */\n value?: number;\n /**\n * Optional max value (defaults to 100)\n */\n max?: number;\n}\n\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value = 0, max = 100, ...props }, ref) => {\n const percentage = Math.min(Math.max((value / max) * 100, 0), 100);\n\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={max}\n aria-valuenow={value}\n className={cn(\n 'relative h-4 w-full overflow-hidden rounded-full bg-secondary',\n className\n )}\n {...props}\n >\n <div\n className=\"h-full bg-primary transition-all duration-300 ease-in-out\"\n style={{ width: `${percentage}%` }}\n />\n </div>\n );\n }\n);\nProgress.displayName = 'Progress';\n\nexport { Progress };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Radio Component\n *\n * A set of checkable buttons—known as radio buttons—where no more than one of the buttons can be checked at a time.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2674-2166\n *\n * @see https://ui.shadcn.com/docs/components/radio-group\n *\n * @example\n * ```tsx\n * <Radio name=\"notify\" id=\"notify-yes\" value=\"yes\" />\n * <label htmlFor=\"notify-yes\">Notify me</label>\n * ```\n */\n\nexport interface RadioProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {\n onCheckedChange?: (checked: boolean) => void;\n}\n\nconst Radio = React.forwardRef<HTMLInputElement, RadioProps>(\n ({ className, onCheckedChange, onChange, ...props }, ref) => {\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e);\n onCheckedChange?.(e.target.checked);\n };\n\n return (\n <div className=\"relative inline-flex items-center\">\n <input\n type=\"radio\"\n className=\"peer sr-only\"\n ref={ref}\n onChange={handleChange}\n {...props}\n />\n <div\n className={cn(\n 'relative flex h-4 w-4 shrink-0 items-center justify-center rounded-full border border-primary bg-background transition-colors',\n 'peer-checked:border-primary',\n 'peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2',\n 'peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n 'after:absolute after:inset-0 after:m-auto after:h-2 after:w-2 after:rounded-full after:bg-primary after:scale-0 after:transition-transform',\n 'peer-checked:after:scale-100',\n className\n )}\n />\n </div>\n );\n }\n);\nRadio.displayName = 'Radio';\n\nexport { Radio };\n","import * as React from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { Check, ChevronDown } from 'lucide-react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Select Component\n *\n * Displays a list of options for the user to pick from—triggered by a button.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2695-404\n *\n * @see https://ui.shadcn.com/docs/components/select\n * @see https://www.radix-ui.com/docs/primitives/components/select\n *\n * @example\n * ```tsx\n * <Select>\n * <SelectTrigger className=\"w-[220px]\">\n * <SelectValue placeholder=\"Select option\" />\n * </SelectTrigger>\n * <SelectContent>\n * <SelectGroup>\n * <SelectLabel>Fruits</SelectLabel>\n * <SelectItem value=\"apple\">Apple</SelectItem>\n * <SelectItem value=\"banana\">Banana</SelectItem>\n * <SelectItem value=\"blueberry\">Blueberry</SelectItem>\n * </SelectGroup>\n * <SelectSeparator />\n * <SelectGroup>\n * <SelectItem value=\"grapes\">Grapes</SelectItem>\n * <SelectItem value=\"pineapple\">Pineapple</SelectItem>\n * </SelectGroup>\n * </SelectContent>\n * </Select>\n * ```\n */\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n 'relative z-10 flex h-10 w-full items-center justify-between gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground transition-colors',\n 'hover:border-border-hover',\n 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n '[&>span]:line-clamp-1',\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-3 w-3 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4 rotate-180\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = 'popper', ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n 'relative z-[100] max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className\n )}\n position={position}\n sideOffset={4}\n collisionPadding={8}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n 'w-full min-w-[var(--radix-select-trigger-width)]'\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\n 'px-8 py-1.5 text-sm font-semibold text-popover-foreground',\n className\n )}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm text-popover-foreground outline-none',\n 'focus:bg-accent focus:text-accent-foreground',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn('mx-1 my-1 h-px bg-border', 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\n/**\n * Separator Component\n *\n * Visually or semantically separates content.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2723-432\n *\n * @see https://ui.shadcn.com/docs/components/separator\n * @see https://www.radix-ui.com/docs/primitives/components/separator\n *\n * @example\n * ```tsx\n * <div>\n * <p>Item 1</p>\n * <Separator />\n * <p>Item 2</p>\n * </div>\n * ```\n *\n * @example\n * ```tsx\n * <div className=\"flex h-5 items-center\">\n * <span>Link 1</span>\n * <Separator orientation=\"vertical\" />\n * <span>Link 2</span>\n * </div>\n * ```\n */\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\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(\n 'shrink-0 bg-border',\n orientation === 'horizontal' ? 'h-px w-full' : 'h-full w-px',\n className\n )}\n {...props}\n />\n )\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { Icon, X } from '@/components/Icon';\n\n/**\n * Sheet Component\n *\n * Extends Dialog to display content that complements the main content of the screen.\n * A slide-in panel that can appear from any side of the screen.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2774-707\n *\n * @see https://ui.shadcn.com/docs/components/sheet\n *\n * @example\n * ```tsx\n * <Sheet open={isOpen} onOpenChange={setIsOpen}>\n * <SheetContent>\n * <SheetHeader>\n * <SheetTitle>Sheet Title</SheetTitle>\n * <SheetDescription>Sheet Description</SheetDescription>\n * </SheetHeader>\n * <div>Main content</div>\n * <SheetFooter>\n * <Button>Action</Button>\n * </SheetFooter>\n * </SheetContent>\n * </Sheet>\n * ```\n */\n\nexport interface SheetProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nconst Sheet = ({ open, onOpenChange, children }: SheetProps) => {\n React.useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && open) {\n onOpenChange?.(false);\n }\n };\n\n if (open) {\n document.addEventListener('keydown', handleEscape);\n document.body.style.overflow = 'hidden';\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.body.style.overflow = '';\n };\n }, [open, onOpenChange]);\n\n if (!open) return null;\n\n return (\n <>\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return React.cloneElement(child as any, { onOpenChange });\n }\n return child;\n })}\n </>\n );\n};\nSheet.displayName = 'Sheet';\n\ntype SheetSide = 'top' | 'right' | 'bottom' | 'left';\n\ninterface SheetContentProps extends React.HTMLAttributes<HTMLDivElement> {\n onOpenChange?: (open: boolean) => void;\n side?: SheetSide;\n}\n\nconst sheetVariants: Record<SheetSide, string> = {\n top: 'inset-x-0 top-0 border-b',\n bottom: 'inset-x-0 bottom-0 border-t',\n left: 'inset-y-0 left-0 h-full w-[448px] border-r',\n right: 'inset-y-0 right-0 h-full w-[448px] border-l',\n};\n\nconst SheetContent = React.forwardRef<HTMLDivElement, SheetContentProps>(\n ({ className, children, onOpenChange, side = 'right', ...props }, ref) => (\n <div\n className=\"fixed inset-0 z-50\"\n onClick={() => onOpenChange?.(false)}\n >\n {/* Overlay */}\n <div className=\"fixed inset-0 bg-black/80\" aria-hidden=\"true\" />\n\n {/* Sheet */}\n <div\n ref={ref}\n role=\"dialog\"\n aria-modal=\"true\"\n className={cn(\n 'fixed z-50 flex flex-col gap-4 bg-background p-6 shadow-lg transition-transform duration-300',\n sheetVariants[side],\n className\n )}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n <button\n onClick={() => onOpenChange?.(false)}\n className=\"absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\"\n aria-label=\"Close\"\n >\n <Icon icon={X} size={16} />\n </button>\n {children}\n </div>\n </div>\n )\n);\nSheetContent.displayName = 'SheetContent';\n\nconst SheetHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n {...props}\n />\n));\nSheetHeader.displayName = 'SheetHeader';\n\nconst SheetTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h2\n ref={ref}\n className={cn('text-lg font-semibold text-foreground', className)}\n {...props}\n />\n));\nSheetTitle.displayName = 'SheetTitle';\n\nconst SheetDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nSheetDescription.displayName = 'SheetDescription';\n\nconst SheetFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)}\n {...props}\n />\n));\nSheetFooter.displayName = 'SheetFooter';\n\nconst SheetClose = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & {\n onOpenChange?: (open: boolean) => void;\n }\n>(({ className, onOpenChange, ...props }, ref) => (\n <button\n ref={ref}\n onClick={() => onOpenChange?.(false)}\n className={cn(\n 'rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none',\n className\n )}\n {...props}\n />\n));\nSheetClose.displayName = 'SheetClose';\n\nexport {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n SheetDescription,\n SheetFooter,\n SheetClose,\n};\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Skeleton Component\n *\n * Display a placeholder preview of content before the data loads.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2824-2174\n *\n * @see https://ui.shadcn.com/docs/components/skeleton\n *\n * @example\n * ```tsx\n * <div className=\"flex flex-col gap-2\">\n * <Skeleton className=\"h-32 w-60\" />\n * <Skeleton className=\"h-4 w-60\" />\n * <Skeleton className=\"h-4 w-48\" />\n * </div>\n * ```\n *\n * @example\n * ```tsx\n * // Circle skeleton for avatars\n * <Skeleton className=\"h-10 w-10 rounded-full\" />\n * ```\n */\nconst Skeleton = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'animate-pulse rounded-md bg-muted',\n className\n )}\n {...props}\n />\n));\nSkeleton.displayName = 'Skeleton';\n\nexport { Skeleton };\n","import * as React from 'react';\nimport * as SliderPrimitive from '@radix-ui/react-slider';\nimport { cn } from '@/lib/utils';\n\n/**\n * Slider Component\n *\n * An input where the user selects a value from within a given range.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2674-2172\n *\n * @see https://ui.shadcn.com/docs/components/slider\n * @see https://www.radix-ui.com/docs/primitives/components/slider\n *\n * @example\n * ```tsx\n * <Slider defaultValue={[50]} max={100} step={1} />\n * ```\n *\n * @example\n * ```tsx\n * // Range slider with multiple values\n * <Slider defaultValue={[25, 75]} max={100} step={1} />\n * ```\n */\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\n 'relative flex w-full touch-none select-none items-center',\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n));\nSlider.displayName = SliderPrimitive.Root.displayName;\n\nexport { Slider };\n","import * as React from 'react';\nimport * as SwitchPrimitives from '@radix-ui/react-switch';\nimport { cn } from '@/lib/utils';\n\n/**\n * Switch Component\n *\n * A control that allows the user to toggle between checked and not checked.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2674-2178\n *\n * @see https://ui.shadcn.com/docs/components/switch\n * @see https://www.radix-ui.com/docs/primitives/components/switch\n *\n * @example\n * ```tsx\n * <Switch />\n * ```\n *\n * @example\n * ```tsx\n * <div className=\"flex items-center gap-2\">\n * <Switch id=\"airplane-mode\" />\n * <label htmlFor=\"airplane-mode\">Airplane Mode</label>\n * </div>\n * ```\n */\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n 'peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent bg-input p-0.5 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input',\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n 'pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0'\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Table Component\n *\n * A responsive table component with semantic HTML.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2814-1241\n *\n * @see https://ui.shadcn.com/docs/components/table\n *\n * @example\n * ```tsx\n * <Table>\n * <TableHeader>\n * <TableRow>\n * <TableHead>Name</TableHead>\n * <TableHead>Status</TableHead>\n * </TableRow>\n * </TableHeader>\n * <TableBody>\n * <TableRow>\n * <TableCell>John Doe</TableCell>\n * <TableCell>Active</TableCell>\n * </TableRow>\n * </TableBody>\n * </Table>\n * ```\n */\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n />\n </div>\n));\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n));\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n 'border-t bg-muted/50 font-medium [&>tr]:last:border-b-0',\n className\n )}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted',\n className\n )}\n {...props}\n />\n));\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-11 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n 'p-4 align-middle [&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn('mt-4 text-sm text-muted-foreground', 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 * Tabs Component\n *\n * A set of layered sections of content—known as tab panels—that are displayed one at a time.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2737-489\n *\n * @see https://ui.shadcn.com/docs/components/tabs\n * @see https://www.radix-ui.com/docs/primitives/components/tabs\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 content</TabsContent>\n * <TabsContent value=\"password\">Password content</TabsContent>\n * </Tabs>\n * ```\n */\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n 'inline-flex h-auto items-center justify-start gap-0 text-muted-foreground',\n className\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-xs px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm data-[state=active]:font-semibold data-[state=inactive]:text-muted-foreground',\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n 'mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n className\n )}\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\n/**\n * Textarea Component\n *\n * Displays a form textarea or a component that looks like a textarea.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2674-2219\n *\n * @see https://ui.shadcn.com/docs/components/textarea\n *\n * @example\n * ```tsx\n * <Textarea placeholder=\"Type your message here.\" />\n * ```\n */\nexport type TextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n 'flex min-h-[82px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n","import * as React from 'react';\nimport { Toaster as Sonner } from 'sonner';\n\n/**\n * Toast Component\n *\n * A succinct message that is displayed temporarily.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2806-824\n *\n * @see https://ui.shadcn.com/docs/components/sonner\n * @see https://sonner.emilkowal.ski/\n *\n * @example\n * ```tsx\n * import { Toaster, toast } from '@/components/Toast';\n *\n * // Add Toaster to your app root\n * <Toaster />\n *\n * // Show toasts\n * toast('Event has been created')\n * toast.success('Event has been created')\n * toast.error('Event creation failed')\n * ```\n */\ntype ToasterProps = React.ComponentProps<typeof Sonner>;\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n return (\n <Sonner\n className=\"toaster group\"\n toastOptions={{\n classNames: {\n toast:\n 'group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg',\n description: 'group-[.toast]:text-muted-foreground',\n actionButton:\n 'group-[.toast]:bg-primary group-[.toast]:text-primary-foreground',\n cancelButton:\n 'group-[.toast]:bg-muted group-[.toast]:text-muted-foreground',\n },\n }}\n {...props}\n />\n );\n};\n\nexport { Toaster, toast } from 'sonner';\nexport { Toaster as Toast };\n","import * as React from 'react';\nimport * as TogglePrimitive from '@radix-ui/react-toggle';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@/lib/utils';\n\n/**\n * Toggle Component\n *\n * A two-state button that can be either on or off.\n *\n * Based on Figma component: https://www.figma.com/design/nadcKNlrnZUHbbLwm9GdK4?node-id=2775-856\n *\n * @see https://ui.shadcn.com/docs/components/toggle\n * @see https://www.radix-ui.com/docs/primitives/components/toggle\n *\n * @example\n * ```tsx\n * <Toggle aria-label=\"Toggle bold\">\n * <Bold className=\"h-4 w-4\" />\n * </Toggle>\n * ```\n */\n\nconst toggleVariants = cva(\n 'inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-muted data-[state=on]:text-foreground',\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n outline:\n 'border border-input bg-transparent hover:bg-accent hover:text-accent-foreground',\n },\n size: {\n default: 'h-10 px-3',\n sm: 'h-9 px-2.5',\n lg: 'h-11 px-5',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nexport interface ToggleProps\n extends React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root>,\n VariantProps<typeof toggleVariants> {}\n\nconst Toggle = React.forwardRef<\n React.ElementRef<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","import * as React from 'react';\n\n/**\n * Available theme options\n */\nexport type Theme = 'light' | 'dark' | 'atxp' | 'dbg' | 'auto';\n\n/**\n * Theme context value\n */\ninterface ThemeContextValue {\n theme: Theme;\n setTheme: (theme: Theme) => void;\n actualTheme: 'light' | 'dark' | 'atxp' | 'dbg';\n}\n\nconst ThemeContext = React.createContext<ThemeContextValue | undefined>(undefined);\n\n/**\n * Props for ThemeProvider component\n */\nexport interface ThemeProviderProps {\n children: React.ReactNode;\n /**\n * Default theme to use\n * @default 'auto'\n */\n defaultTheme?: Theme;\n /**\n * Storage key for persisting theme preference\n * @default 'cc-theme'\n */\n storageKey?: string;\n /**\n * Enable localStorage persistence\n * @default true\n */\n enablePersistence?: boolean;\n}\n\n/**\n * ThemeProvider Component\n *\n * Provides theme context and manages theme switching for the application.\n *\n * @example\n * ```tsx\n * import { ThemeProvider } from '@circuitandchisel/design-system';\n *\n * function App() {\n * return (\n * <ThemeProvider defaultTheme=\"auto\" enablePersistence>\n * <YourApp />\n * </ThemeProvider>\n * );\n * }\n * ```\n */\nexport function ThemeProvider({\n children,\n defaultTheme = 'auto',\n storageKey = 'cc-theme',\n enablePersistence = true,\n}: ThemeProviderProps) {\n const [theme, setThemeState] = React.useState<Theme>(() => {\n if (typeof window === 'undefined') return defaultTheme;\n\n if (enablePersistence) {\n const stored = window.localStorage.getItem(storageKey);\n if (stored && isValidTheme(stored)) {\n return stored as Theme;\n }\n }\n\n return defaultTheme;\n });\n\n const [actualTheme, setActualTheme] = React.useState<'light' | 'dark' | 'atxp' | 'dbg'>(() => {\n if (theme === 'auto') {\n return typeof window !== 'undefined' &&\n window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light';\n }\n return theme;\n });\n\n // Update data-theme attribute on document element\n React.useEffect(() => {\n const root = window.document.documentElement;\n\n if (theme === 'auto') {\n // Remove data-theme to let CSS media query handle it\n root.removeAttribute('data-theme');\n } else {\n root.setAttribute('data-theme', theme);\n }\n }, [theme]);\n\n // Listen for system theme changes when in auto mode\n React.useEffect(() => {\n if (theme !== 'auto') {\n setActualTheme(theme);\n return;\n }\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n\n const handleChange = (e: MediaQueryListEvent | MediaQueryList) => {\n setActualTheme(e.matches ? 'dark' : 'light');\n };\n\n // Initial check\n handleChange(mediaQuery);\n\n // Listen for changes\n mediaQuery.addEventListener('change', handleChange);\n\n return () => {\n mediaQuery.removeEventListener('change', handleChange);\n };\n }, [theme]);\n\n const setTheme = React.useCallback(\n (newTheme: Theme) => {\n setThemeState(newTheme);\n\n if (enablePersistence && typeof window !== 'undefined') {\n try {\n window.localStorage.setItem(storageKey, newTheme);\n } catch (error) {\n console.warn('Failed to persist theme preference:', error);\n }\n }\n },\n [enablePersistence, storageKey]\n );\n\n const value = React.useMemo(\n () => ({\n theme,\n setTheme,\n actualTheme,\n }),\n [theme, setTheme, actualTheme]\n );\n\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n}\n\n/**\n * useTheme Hook\n *\n * Access and control the current theme from any component.\n *\n * @example\n * ```tsx\n * function ThemeToggle() {\n * const { theme, setTheme, actualTheme } = useTheme();\n *\n * return (\n * <button onClick={() => setTheme(theme === 'dark' ? 'light' : 'dark')}>\n * Current theme: {actualTheme}\n * </button>\n * );\n * }\n * ```\n */\nexport function useTheme() {\n const context = React.useContext(ThemeContext);\n\n if (context === undefined) {\n throw new Error('useTheme must be used within a ThemeProvider');\n }\n\n return context;\n}\n\n/**\n * Type guard to check if a string is a valid theme\n */\nfunction isValidTheme(value: string): value is Theme {\n return ['light', 'dark', 'atxp', 'dbg', 'auto'].includes(value);\n}\n"],"mappings":"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ACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;A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","names":["React","jsx","React","jsx","jsxs","React","jsx","cva","jsx","cva","React","React","jsx","ChevronDown","CheckCircle","MoreHorizontal","jsx","jsxs","React","cva","jsx","cva","React","jsx","React","jsx","React","jsx","React","jsx","jsxs","React","Fragment","jsx","jsxs","React","Fragment","jsx","jsxs","React","jsx","Header","React","jsx","React","cva","jsx","jsxs","cva","React","jsx","jsxs","React","jsx","React","jsx","React","cva","jsx","jsxs","cva","React","cva","jsx","jsxs","cva","React","cva","jsx","jsxs","cva","React","cva","jsx","jsxs","cva","MoreHorizontal","React","jsx","React","jsx","React","jsx","jsxs","React","Check","ChevronDown","jsx","jsxs","ChevronDown","Check","React","jsx","Separator","React","Fragment","jsx","jsxs","React","jsx","React","jsx","jsxs","React","jsx","React","jsx","React","jsx","React","jsx","jsx","Toaster","React","cva","jsx","cva","React","jsx"]}
|