@mikenotthepope/substrateui 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../lib/utils.ts","../components/ui/Button.tsx","../components/ui/Badge.tsx","../components/ui/Card.tsx","../components/ui/Menu.tsx","../components/ui/Drawer.tsx","../components/ui/Avatar.tsx","../components/ui/Tabs.tsx","../components/ui/Label.tsx","../components/ui/Input.tsx","../components/ui/Textarea.tsx","../components/ui/Checkbox.tsx","../components/ui/RadioGroup.tsx","../components/ui/Select.tsx","../components/ui/Switch.tsx","../components/ui/Slider.tsx","../components/ui/Text.tsx","../components/ui/FormLayout.tsx","../components/ui/Link.tsx","../components/ui/Alert.tsx","../components/ui/IconButton.tsx","../components/ui/Loader.tsx","../components/ui/Dialog.tsx","../components/ui/Divider.tsx","../components/ui/Stack.tsx","../components/ui/Flex.tsx","../components/ui/Grid.tsx","../components/ui/Container.tsx","../components/ui/Accordion.tsx","../components/ui/ScrollArea.tsx","../components/ui/Skeleton.tsx","../components/ui/Progress.tsx","../components/ui/Tooltip.tsx","../components/ui/Collapsible.tsx","../components/ui/HoverCard.tsx","../components/ui/Popover.tsx","../components/ui/ContextMenu.tsx","../components/ui/DropdownMenu.tsx","../components/ui/Table.tsx","../components/ui/Menubar.tsx","../components/ui/NavigationMenu.tsx","../components/ui/Resizable.tsx","../components/ui/Chart.tsx","../components/ui/Sonner.tsx","../components/ThemeProvider.tsx","../components/ui/Marquee.tsx","../components/ui/ImageCard.tsx","../components/ui/InputOTP.tsx","../components/ui/AlertDialog.tsx","../components/ui/Breadcrumb.tsx","../components/ui/Calendar.tsx","../components/ui/Carousel.tsx","../components/ui/Pagination.tsx","../components/ui/Sheet.tsx","../components/ui/Form.tsx","../components/ui/Command.tsx","../components/ui/Combobox.tsx","../components/ui/DataTable.tsx","../components/ui/Sidebar.tsx","../hooks/use-mobile.ts","../components/CardGrid/CardGrid.tsx","../components/NavBar/NavBar.tsx","../components/Page/Page.tsx","../components/SectionNav/SectionNav.tsx","../components/TwoColumnLayout/TwoColumnLayout.tsx","../components/ThemeToggle.tsx","../components/ColorThemeToggle.tsx","../lib/create-theme.ts","../components/landing/Hero.tsx","../components/landing/Section.tsx","../components/landing/Footer.tsx","../components/landing/PricingTable.tsx","../components/landing/FeatureSection.tsx","../components/landing/Testimonial.tsx","../components/landing/LogoCloud.tsx","../components/landing/CTABanner.tsx","../components/landing/FAQ.tsx","../components/landing/StatsBar.tsx","../components/landing/AnnouncementBanner.tsx","../components/landing/NewsletterSignup.tsx"],"sourcesContent":["// Core UI components\nexport {\n Button,\n buttonVariants,\n Badge,\n badgeVariants,\n Card,\n cardVariants,\n Menu,\n Drawer,\n Avatar,\n avatarVariants,\n Tabs,\n Label,\n Input,\n Textarea,\n Checkbox,\n RadioGroup,\n Select,\n Switch,\n Slider,\n Text,\n FormLayout,\n Link,\n linkVariants,\n Alert,\n alertVariants,\n IconButton,\n iconButtonVariants,\n Loader,\n loaderVariants,\n Dialog,\n dialogContentVariants,\n Divider,\n dividerVariants,\n Stack,\n stackVariants,\n Flex,\n flexVariants,\n Grid,\n gridVariants,\n Container,\n containerVariants,\n // New primitives\n Accordion,\n ScrollArea,\n Skeleton,\n Progress,\n Tooltip,\n Collapsible,\n HoverCard,\n Popover,\n ContextMenu,\n DropdownMenu,\n Table,\n Menubar,\n NavigationMenu,\n navigationMenuTriggerStyle,\n Resizable,\n Chart,\n useChart,\n Toaster,\n Marquee,\n ImageCard,\n InputOTP,\n // Level 2\n AlertDialog,\n Breadcrumb,\n Calendar,\n Carousel,\n useCarousel,\n Pagination,\n Sheet,\n sheetContentVariants,\n Form,\n useFormField,\n Command,\n // Compound\n Combobox,\n DataTable,\n Sidebar,\n useSidebar,\n sidebarMenuButtonVariants,\n} from \"@/components/ui\";\n\nexport type {\n IButtonProps,\n IBadgeProps,\n ICardProps,\n IInputProps,\n ITextareaProps,\n ICheckboxProps,\n IRadioGroupItemProps,\n IFormLayoutProps,\n IFormSectionProps,\n IFormFieldProps,\n IFormRowProps,\n IFormActionsProps,\n ILinkProps,\n IAlertProps,\n IIconButtonProps,\n ILoaderProps,\n IDialogContentProps,\n IDividerProps,\n IStackProps,\n IFlexProps,\n IGridProps,\n IContainerProps,\n // New types\n ISkeletonProps,\n IProgressProps,\n ChartConfig,\n IChartContainerProps,\n ISonnerProps,\n IMarqueeProps,\n IImageCardProps,\n IInputOTPProps,\n IAlertDialogContentProps,\n IBreadcrumbLinkProps,\n ICalendarProps,\n ICarouselProps,\n CarouselApi,\n IPaginationLinkProps,\n ISheetContentProps,\n IComboboxProps,\n IComboboxItem,\n IDataTableProps,\n AvatarShape,\n} from \"@/components/ui\";\n\n// Composite components\nexport { CardGrid } from \"@/components/CardGrid\";\nexport type { CardGridProps } from \"@/components/CardGrid\";\n\nexport { NavBar } from \"@/components/NavBar\";\nexport type {\n NavBarProps,\n NavLink,\n NavMenuItem,\n NavBrand,\n NavAuth,\n} from \"@/components/NavBar\";\n\nexport { SimplePage } from \"@/components/Page\";\nexport type { SimplePageProps } from \"@/components/Page\";\n\nexport { SectionNav } from \"@/components/SectionNav/SectionNav\";\nexport type {\n SectionNavItem,\n ISectionNavProps,\n} from \"@/components/SectionNav/SectionNav\";\n\nexport { TwoColumnLayout } from \"@/components/TwoColumnLayout/TwoColumnLayout\";\n\n// Theme\nexport { ThemeProvider, useTheme } from \"@/components/ThemeProvider\";\nexport type { ColorTheme } from \"@/components/ThemeProvider\";\nexport { ThemeToggle } from \"@/components/ThemeToggle\";\nexport type { ThemeToggleProps } from \"@/components/ThemeToggle\";\nexport { ColorThemeToggle } from \"@/components/ColorThemeToggle\";\nexport type { ColorThemeToggleProps } from \"@/components/ColorThemeToggle\";\n\nexport { createTheme } from \"@/lib/create-theme\";\nexport type { ThemeConfig } from \"@/lib/create-theme\";\n\n// Landing page components\nexport {\n Hero,\n Section,\n sectionVariants,\n Footer,\n PricingTable,\n FeatureSection,\n Testimonial,\n LogoCloud,\n CTABanner,\n FAQ,\n StatsBar,\n AnnouncementBanner,\n NewsletterSignup,\n} from \"@/components/landing\";\n\nexport type {\n HeroProps,\n SectionProps,\n FooterProps,\n FooterLinkGroup,\n PricingTableProps,\n PricingTier,\n PricingFeature,\n FeatureSectionProps,\n Feature,\n TestimonialProps,\n TestimonialItem,\n LogoCloudProps,\n CTABannerProps,\n FAQProps,\n FAQItem,\n StatsBarProps,\n Stat,\n AnnouncementBannerProps,\n NewsletterSignupProps,\n} from \"@/components/landing\";\n\n// Utilities\nexport { cn } from \"@/lib/utils\";\n","import clsx from \"clsx\";\nimport { ClassNameValue, twMerge } from \"tailwind-merge\";\n\nexport function cn(...classes: ClassNameValue[]) {\n return twMerge(clsx(classes));\n}\n","import { cn } from \"@/lib/utils\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport React, { ButtonHTMLAttributes } from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nexport const buttonVariants = cva(\n \"font-head transition-all rounded outline-hidden cursor-pointer duration-200 font-medium flex justify-center items-center disabled:opacity-60 disabled:cursor-not-allowed\",\n {\n variants: {\n variant: {\n default:\n \"shadow-md hover:shadow active:shadow-none bg-primary text-primary-foreground border-2 border-border transition hover:translate-y-1 active:translate-y-2 active:translate-x-1 hover:bg-primary-hover\",\n secondary:\n \"shadow-md hover:shadow active:shadow-none bg-secondary shadow-primary text-secondary-foreground border-2 border-border transition hover:translate-y-1 active:translate-y-2 active:translate-x-1 hover:bg-secondary-hover\",\n outline:\n \"shadow-md hover:shadow active:shadow-none bg-transparent border-2 transition hover:translate-y-1 active:translate-y-2 active:translate-x-1\",\n link: \"bg-transparent hover:underline\",\n ghost: \"bg-transparent hover:bg-accent\",\n },\n size: {\n sm: \"px-3 py-1 text-sm shadow hover:shadow-none\",\n md: \"px-4 py-1.5 text-base\",\n lg: \"px-6 lg:px-8 py-2 lg:py-3 text-md lg:text-lg\",\n icon: \"p-2\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n },\n);\n\nexport interface IButtonProps\n extends ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, IButtonProps>(\n (\n {\n children,\n size = \"md\",\n className = \"\",\n variant = \"default\",\n asChild = false,\n ...props\n }: IButtonProps,\n forwardedRef,\n ) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n ref={forwardedRef}\n className={cn(buttonVariants({ variant, size }), className)}\n {...props}\n >\n {children}\n </Comp>\n );\n },\n);\n\nButton.displayName = \"Button\";\n","import { cn } from \"@/lib/utils\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport React, { HTMLAttributes } from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nexport const badgeVariants = cva(\n \"font-head uppercase border-2 border-border inline-flex items-center\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground\",\n success: \"bg-success text-success-foreground\",\n warning: \"bg-warning text-warning-foreground\",\n destructive: \"bg-destructive text-destructive-foreground\",\n outline: \"bg-transparent text-foreground\",\n },\n size: {\n sm: \"px-1.5 py-0.5 text-xs\",\n md: \"px-2 py-0.5 text-xs\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nexport interface IBadgeProps\n extends HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {\n asChild?: boolean;\n}\n\nexport const Badge = React.forwardRef<HTMLSpanElement, IBadgeProps>(\n (\n {\n children,\n size = \"md\",\n className = \"\",\n variant = \"default\",\n asChild = false,\n ...props\n }: IBadgeProps,\n forwardedRef,\n ) => {\n const Comp = asChild ? Slot : \"span\";\n return (\n <Comp\n ref={forwardedRef}\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n >\n {children}\n </Comp>\n );\n },\n);\n\nBadge.displayName = \"Badge\";\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nexport const cardVariants = cva(\n \"bg-card text-card-foreground border-2 border-border\",\n {\n variants: {\n variant: {\n default: \"shadow-md\",\n outlined: \"shadow-none\",\n elevated: \"shadow-lg\",\n interactive:\n \"shadow-md hover:shadow active:shadow-none transition-all hover:translate-y-1 active:translate-y-2 active:translate-x-1 cursor-pointer\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nexport interface ICardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardVariants> {\n asChild?: boolean;\n}\n\nconst CardRoot = React.forwardRef<HTMLDivElement, ICardProps>(\n (\n {\n children,\n className = \"\",\n variant = \"default\",\n asChild = false,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : \"div\";\n return (\n <Comp\n ref={ref}\n className={cn(cardVariants({ variant }), className)}\n {...props}\n >\n {children}\n </Comp>\n );\n },\n);\nCardRoot.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(\"p-4 border-b-2 border-border\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"Card.Header\";\n\nconst CardBody = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-4\", className)} {...props} />\n));\nCardBody.displayName = \"Card.Body\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"p-4 border-t-2 border-border flex items-center gap-2\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"Card.Footer\";\n\nconst CardComponent = Object.assign(CardRoot, {\n Header: CardHeader,\n Body: CardBody,\n Footer: CardFooter,\n});\n\nexport { CardComponent as Card };\n","\"use client\";\n\nimport { cn } from \"@/lib/utils\";\nimport * as DropdownMenu from \"@radix-ui/react-dropdown-menu\";\nimport React, { ComponentPropsWithoutRef } from \"react\";\n\nconst Menu = DropdownMenu.Root;\nconst Trigger = DropdownMenu.Trigger;\n\ntype IMenuContent = ComponentPropsWithoutRef<typeof DropdownMenu.Content>;\n\nconst Content = ({ className, ...props }: IMenuContent) => (\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n side=\"bottom\"\n align=\"start\"\n className={cn(\n \"bg-card border-2 shadow-md absolute top-2 min-w-20\",\n className,\n )}\n {...props}\n />\n </DropdownMenu.Portal>\n);\n\nconst MenuItem = React.forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<typeof DropdownMenu.Item>\n>(({ className, ...props }, ref) => (\n <DropdownMenu.Item\n ref={ref}\n className={cn(\n \"relative text-card-foreground flex cursor-default select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden transition-colors hover:bg-primary focus:bg-primary data-disabled:pointer-events-none data-disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n));\nMenuItem.displayName = \"MenuItem\";\n\nconst MenuComponent = Object.assign(Menu, {\n Trigger,\n Content,\n Item: MenuItem,\n});\n\nexport { MenuComponent as Menu };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\nimport { cn } from \"@/lib/utils\";\n\nfunction Drawer({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return <DrawerPrimitive.Root data-slot=\"drawer\" {...props} />;\n}\n\nfunction DrawerTrigger({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />;\n}\n\nfunction DrawerPortal({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Portal>) {\n return <DrawerPrimitive.Portal data-slot=\"drawer-portal\" {...props} />;\n}\n\nfunction DrawerClose({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Close>) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />;\n}\n\nfunction DrawerOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {\n return (\n <DrawerPrimitive.Overlay\n data-slot=\"drawer-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-overlay\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Content>) {\n return (\n <DrawerPortal data-slot=\"drawer-portal\">\n <DrawerOverlay />\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(\n \"group/drawer-content bg-background fixed z-50 flex h-auto flex-col\",\n \"data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l-2 data-[vaul-drawer-direction=right]:sm:max-w-sm\",\n \"data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r-2 data-[vaul-drawer-direction=left]:sm:max-w-sm\",\n className,\n )}\n {...props}\n >\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n );\n}\n\nfunction DrawerHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\"flex flex-col gap-1.5 p-4\", className)}\n {...props}\n />\n );\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n );\n}\n\nfunction DrawerTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Title>) {\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn(\n \"text-foreground text-xl font-head font-medium\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Description>) {\n return (\n <DrawerPrimitive.Description\n data-slot=\"drawer-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n );\n}\n\nconst DrawerComponent = Object.assign(Drawer, {\n Trigger: DrawerTrigger,\n Portal: DrawerPortal,\n Overlay: DrawerOverlay,\n Close: DrawerClose,\n Content: DrawerContent,\n Header: DrawerHeader,\n Footer: DrawerFooter,\n Title: DrawerTitle,\n Description: DrawerDescription,\n});\n\nexport { DrawerComponent as Drawer };\n","import * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\nconst avatarVariants = cva(\n \"relative flex h-10 w-10 border-2 overflow-hidden\",\n {\n variants: {\n shape: {\n circle: \"rounded-full\",\n square: \"rounded-none\",\n rounded: \"rounded-lg\",\n hexagon:\n \"rounded-none border-0 [clip-path:polygon(50%_0%,100%_25%,100%_75%,50%_100%,0%_75%,0%_25%)]\",\n diamond:\n \"rounded-none rotate-45 border-2\",\n squircle:\n \"rounded-none border-0 [clip-path:url(#squircle)]\",\n shield:\n \"rounded-none border-0 [clip-path:polygon(50%_0%,100%_0%,100%_70%,50%_100%,0%_70%,0%_0%)]\",\n },\n },\n defaultVariants: {\n shape: \"circle\",\n },\n },\n);\n\nexport type AvatarShape = NonNullable<VariantProps<typeof avatarVariants>[\"shape\"]>;\n\ninterface AvatarProps\n extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>,\n VariantProps<typeof avatarVariants> {}\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n AvatarProps\n>(({ className, shape = \"circle\", children, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n data-shape={shape}\n className={cn(avatarVariants({ shape }), className)}\n {...props}\n >\n {shape === \"squircle\" && (\n <svg width=\"0\" height=\"0\" className=\"absolute\">\n <defs>\n <clipPath id=\"squircle\" clipPathUnits=\"objectBoundingBox\">\n <path d=\"M 0.5 0 C 0.9 0, 1 0.1, 1 0.5 C 1 0.9, 0.9 1, 0.5 1 C 0.1 1, 0 0.9, 0 0.5 C 0 0.1, 0.1 0, 0.5 0\" />\n </clipPath>\n </defs>\n </svg>\n )}\n {children}\n </AvatarPrimitive.Root>\n));\nAvatar.displayName = \"Avatar\";\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\n \"aspect-square h-full w-full [[data-shape=diamond]>&]:-rotate-45\",\n className,\n )}\n {...props}\n />\n));\nAvatarImage.displayName = \"Avatar.Image\";\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center bg-primary text-primary-foreground font-head text-sm\",\n \"[[data-shape=circle]>&]:rounded-full\",\n \"[[data-shape=rounded]>&]:rounded-lg\",\n \"[[data-shape=diamond]>&]:-rotate-45\",\n className,\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = \"Avatar.Fallback\";\n\nconst AvatarComponent = Object.assign(Avatar, {\n Image: AvatarImage,\n Fallback: AvatarFallback,\n});\n\nexport { AvatarComponent as Avatar, avatarVariants };\n","\"use client\";\n\nimport { cn } from \"@/lib/utils\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport * as DropdownMenu from \"@radix-ui/react-dropdown-menu\";\nimport { MoreHorizontal } from \"lucide-react\";\nimport React, {\n ComponentPropsWithoutRef,\n createContext,\n useContext,\n useState,\n} from \"react\";\n\n// Context to share value control between Tabs root and MoreItem\nconst TabsValueContext = createContext<{\n setValue: (value: string) => void;\n}>({ setValue: () => {} });\n\ninterface TabsProps\n extends Omit<\n ComponentPropsWithoutRef<typeof TabsPrimitive.Root>,\n \"value\" | \"onValueChange\"\n > {\n defaultValue?: string;\n value?: string;\n onValueChange?: (value: string) => void;\n}\n\nfunction TabsRoot({\n className,\n defaultValue,\n value: controlledValue,\n onValueChange,\n ...props\n}: TabsProps) {\n const [internalValue, setInternalValue] = useState(defaultValue ?? \"\");\n\n const isControlled = controlledValue !== undefined;\n const currentValue = isControlled ? controlledValue : internalValue;\n\n const setValue = (v: string) => {\n if (!isControlled) setInternalValue(v);\n onValueChange?.(v);\n };\n\n return (\n <TabsValueContext.Provider value={{ setValue }}>\n <TabsPrimitive.Root\n className={cn(\"flex flex-col\", className)}\n value={currentValue}\n onValueChange={setValue}\n {...props}\n />\n </TabsValueContext.Provider>\n );\n}\nTabsRoot.displayName = \"Tabs\";\n\nconst TabsList = React.forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"flex items-center gap-0 border-b-2 bg-background\",\n className,\n )}\n {...props}\n />\n));\nTabsList.displayName = \"TabsList\";\n\nconst TabsTrigger = React.forwardRef<\n HTMLButtonElement,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"font-head text-sm px-4 py-2 cursor-pointer transition-colors\",\n \"text-muted-foreground hover:text-foreground\",\n \"border-b-2 border-transparent -mb-0.5\",\n \"data-[state=active]:text-foreground data-[state=active]:border-primary\",\n \"outline-hidden focus-visible:ring-2 focus-visible:ring-primary\",\n className,\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = \"TabsTrigger\";\n\nconst TabsContent = React.forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\"pt-4 outline-hidden\", className)}\n {...props}\n />\n));\nTabsContent.displayName = \"TabsContent\";\n\ninterface TabsMoreProps {\n children: React.ReactNode;\n className?: string;\n label?: string;\n}\n\nfunction TabsMore({ children, className, label = \"More\" }: TabsMoreProps) {\n return (\n <DropdownMenu.Root>\n <DropdownMenu.Trigger\n className={cn(\n \"font-head text-sm px-4 py-2 cursor-pointer transition-colors\",\n \"text-muted-foreground hover:text-foreground\",\n \"border-b-2 border-transparent -mb-0.5\",\n \"outline-hidden focus-visible:ring-2 focus-visible:ring-primary\",\n \"flex items-center gap-1\",\n className,\n )}\n >\n {label}\n <MoreHorizontal className=\"size-4\" />\n </DropdownMenu.Trigger>\n <DropdownMenu.Portal>\n <DropdownMenu.Content\n side=\"bottom\"\n align=\"start\"\n className=\"bg-card border-2 shadow-md absolute top-2 min-w-20 z-50\"\n >\n {children}\n </DropdownMenu.Content>\n </DropdownMenu.Portal>\n </DropdownMenu.Root>\n );\n}\nTabsMore.displayName = \"TabsMore\";\n\ninterface TabsMoreItemProps {\n value: string;\n children: React.ReactNode;\n className?: string;\n}\n\nconst TabsMoreItem = React.forwardRef<HTMLDivElement, TabsMoreItemProps>(\n ({ value, children, className, ...props }, ref) => {\n const { setValue } = useContext(TabsValueContext);\n\n return (\n <DropdownMenu.Item\n ref={ref}\n className={cn(\n \"relative text-card-foreground flex cursor-default select-none items-center px-3 py-1.5 text-sm font-head outline-hidden transition-colors hover:bg-primary focus:bg-primary\",\n className,\n )}\n onSelect={() => setValue(value)}\n {...props}\n >\n {children}\n </DropdownMenu.Item>\n );\n },\n);\nTabsMoreItem.displayName = \"TabsMoreItem\";\n\nconst TabsComponent = Object.assign(TabsRoot, {\n List: TabsList,\n Trigger: TabsTrigger,\n Content: TabsContent,\n More: TabsMore,\n MoreItem: TabsMoreItem,\n});\n\nexport { TabsComponent as Tabs };\n","import * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cn } from \"@/lib/utils\";\n\nexport const Label = React.forwardRef<\n React.ComponentRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(\n \"font-sans text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n className,\n )}\n {...props}\n />\n));\nLabel.displayName = \"Label\";\n","import React, { InputHTMLAttributes } from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type IInputProps = InputHTMLAttributes<HTMLInputElement>;\n\nexport const Input = React.forwardRef<HTMLInputElement, IInputProps>(\n ({ type = \"text\", className, ...props }, ref) => (\n <input\n ref={ref}\n type={type}\n className={cn(\n \"flex h-10 w-full border-2 bg-input px-4 py-2 font-sans text-sm shadow-md transition placeholder:text-muted-foreground focus:outline-none focus:shadow-xs focus:ring-2 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50\",\n props[\"aria-invalid\"] &&\n \"border-destructive text-destructive shadow-xs shadow-destructive\",\n className,\n )}\n {...props}\n />\n ),\n);\nInput.displayName = \"Input\";\n","import React, { TextareaHTMLAttributes } from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type ITextareaProps = TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nexport const Textarea = React.forwardRef<HTMLTextAreaElement, ITextareaProps>(\n ({ className, ...props }, ref) => (\n <textarea\n ref={ref}\n rows={4}\n className={cn(\n \"flex w-full border-2 bg-background px-4 py-2 font-sans text-sm shadow-md transition placeholder:text-muted-foreground focus:outline-none focus:shadow-xs disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n ),\n);\nTextarea.displayName = \"Textarea\";\n","import * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport { Check } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\nconst checkboxVariants = cva(\"border-2 shrink-0 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50\", {\n variants: {\n variant: {\n default:\n \"data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n outline: \"\",\n solid:\n \"data-[state=checked]:bg-foreground data-[state=checked]:text-background\",\n },\n size: {\n sm: \"h-4 w-4\",\n md: \"h-5 w-5\",\n lg: \"h-6 w-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n});\n\nexport interface ICheckboxProps\n extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>,\n VariantProps<typeof checkboxVariants> {}\n\nexport const Checkbox = React.forwardRef<\n React.ComponentRef<typeof CheckboxPrimitive.Root>,\n ICheckboxProps\n>(({ className, size, variant, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(checkboxVariants({ size, variant }), className)}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center h-full w-full\">\n <Check className=\"h-full w-full\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = \"Checkbox\";\n","import * as React from \"react\";\nimport * as RadioPrimitive from \"@radix-ui/react-radio-group\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\nconst radioVariants = cva(\"border-2 border-border shrink-0 cursor-pointer disabled:cursor-not-allowed disabled:opacity-50\", {\n variants: {\n variant: {\n default: \"\",\n outline: \"\",\n solid: \"\",\n },\n size: {\n sm: \"h-4 w-4\",\n md: \"h-5 w-5\",\n lg: \"h-6 w-6\",\n },\n shape: {\n circle: \"rounded-full\",\n diamond: \"rotate-45\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n shape: \"circle\",\n },\n});\n\nconst radioIndicatorVariants = cva(\"flex\", {\n variants: {\n variant: {\n default: \"bg-primary border-2 border-border\",\n outline: \"border-2 border-border\",\n solid: \"bg-border\",\n },\n size: {\n sm: \"h-2.5 w-2.5\",\n md: \"h-3 w-3\",\n lg: \"h-4 w-4\",\n },\n shape: {\n circle: \"rounded-full\",\n diamond: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n shape: \"circle\",\n },\n});\n\nconst RadioGroupRoot = React.forwardRef<\n React.ComponentRef<typeof RadioPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <RadioPrimitive.Root\n ref={ref}\n className={cn(\"grid gap-2\", className)}\n {...props}\n />\n));\nRadioGroupRoot.displayName = \"RadioGroup\";\n\nexport interface IRadioGroupItemProps\n extends React.ComponentPropsWithoutRef<typeof RadioPrimitive.Item>,\n VariantProps<typeof radioVariants> {}\n\nconst RadioGroupItem = React.forwardRef<\n React.ComponentRef<typeof RadioPrimitive.Item>,\n IRadioGroupItemProps\n>(({ className, size, variant, shape, children, ...props }, ref) => (\n <RadioPrimitive.Item\n ref={ref}\n className={cn(radioVariants({ size, variant, shape }), className)}\n {...props}\n >\n <RadioPrimitive.Indicator className=\"flex justify-center items-center\">\n <span className={radioIndicatorVariants({ size, variant, shape })} />\n </RadioPrimitive.Indicator>\n {children}\n </RadioPrimitive.Item>\n));\nRadioGroupItem.displayName = \"RadioGroup.Item\";\n\nexport const RadioGroup = Object.assign(RadioGroupRoot, {\n Item: RadioGroupItem,\n});\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\nconst SelectRoot = SelectPrimitive.Root;\n\nconst SelectTrigger = React.forwardRef<\n React.ComponentRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 min-w-40 items-center justify-between border-2 bg-background px-4 py-2 font-sans text-sm shadow-md transition placeholder:text-muted-foreground focus:outline-none focus:shadow-xs disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"ml-2 h-4 w-4\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = \"Select.Trigger\";\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectContent = React.forwardRef<\n React.ComponentRef<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-50 min-w-[8rem] overflow-hidden border-2 bg-background text-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectPrimitive.ScrollUpButton className=\"flex cursor-default items-center justify-center py-1 text-muted-foreground\">\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n <SelectPrimitive.Viewport\n className={cn(\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectPrimitive.ScrollDownButton className=\"flex cursor-default items-center justify-center py-1 text-muted-foreground\">\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = \"Select.Content\";\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectItem = React.forwardRef<\n React.ComponentRef<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 py-1.5 px-2 outline-none data-[highlighted]:bg-primary data-[highlighted]:text-primary-foreground focus:bg-primary focus:text-primary-foreground data-disabled:pointer-events-none data-disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n <span className=\"absolute right-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.Item>\n));\nSelectItem.displayName = \"Select.Item\";\n\nconst SelectLabel = SelectPrimitive.Label;\nconst SelectSeparator = SelectPrimitive.Separator;\n\nexport const Select = Object.assign(SelectRoot, {\n Trigger: SelectTrigger,\n Value: SelectValue,\n Content: SelectContent,\n Group: SelectGroup,\n Item: SelectItem,\n Label: SelectLabel,\n Separator: SelectSeparator,\n});\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport { cn } from \"@/lib/utils\";\n\nexport const Switch = React.forwardRef<\n React.ComponentRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n ref={ref}\n className={cn(\n \"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center border-2 border-foreground disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary\",\n className,\n )}\n {...props}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-4 w-4 bg-primary border-2 mx-0.5 border-foreground ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0 data-[state=checked]:bg-background\",\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = \"Switch\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { cn } from \"@/lib/utils\";\n\nexport const Slider = React.forwardRef<\n React.ComponentRef<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-3 w-full grow overflow-hidden border-2 bg-background\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-4.5 w-4.5 border-2 bg-background shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n));\nSlider.displayName = \"Slider\";\n","import { ElementType, JSX, ComponentPropsWithoutRef } from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n// ─── Variant → default element mapping ───\n\nconst variantElements = {\n h1: \"h1\",\n h2: \"h2\",\n h3: \"h3\",\n h4: \"h4\",\n h5: \"h5\",\n h6: \"h6\",\n body: \"p\",\n small: \"p\",\n code: \"code\",\n} as const satisfies Record<string, keyof JSX.IntrinsicElements>;\n\n// ─── Variant → class mapping ───\n\nconst variantClasses: Record<keyof typeof variantElements, string> = {\n h1: \"font-head text-4xl lg:text-5xl\",\n h2: \"font-head text-3xl lg:text-4xl\",\n h3: \"font-head text-2xl\",\n h4: \"font-head text-xl\",\n h5: \"font-head text-lg\",\n h6: \"font-head text-base\",\n body: \"font-sans text-base\",\n small: \"font-sans text-sm text-muted-foreground\",\n code: \"font-mono text-sm bg-muted px-1.5 py-0.5 border\",\n};\n\n// ─── Types ───\n\ntype Variant = keyof typeof variantElements;\n\ntype TextProps<T extends ElementType = \"p\"> = {\n variant?: Variant;\n as?: T;\n className?: string;\n} & Omit<ComponentPropsWithoutRef<T>, \"className\">;\n\n// ─── Component ───\n\nexport function Text<T extends ElementType = \"p\">({\n variant = \"body\",\n as,\n className,\n ...props\n}: TextProps<T>) {\n const Tag = as ?? variantElements[variant];\n return <Tag className={cn(variantClasses[variant], className)} {...props} />;\n}\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { Label } from \"./Label\";\n\n/* ---------------------------------- Root ---------------------------------- */\n\ntype IFormLayoutProps = React.FormHTMLAttributes<HTMLFormElement>;\n\nconst FormLayoutRoot = React.forwardRef<HTMLFormElement, IFormLayoutProps>(\n ({ className, ...props }, ref) => (\n <form ref={ref} className={cn(\"space-y-8\", className)} {...props} />\n ),\n);\nFormLayoutRoot.displayName = \"FormLayout\";\n\n/* -------------------------------- Section --------------------------------- */\n\ninterface IFormSectionProps extends React.HTMLAttributes<HTMLFieldSetElement> {\n title?: string;\n description?: string;\n}\n\nconst FormSection = React.forwardRef<HTMLFieldSetElement, IFormSectionProps>(\n ({ className, title, description, children, ...props }, ref) => (\n <fieldset\n ref={ref}\n className={cn(\"space-y-6 border-0 p-0 m-0\", className)}\n {...props}\n >\n {(title || description) && (\n <div className=\"space-y-1 border-b-2 border-border pb-4\">\n {title && (\n <legend className=\"font-head text-lg font-normal\">\n {title}\n </legend>\n )}\n {description && (\n <p className=\"font-sans text-sm text-muted-foreground\">\n {description}\n </p>\n )}\n </div>\n )}\n <div className=\"space-y-4\">{children}</div>\n </fieldset>\n ),\n);\nFormSection.displayName = \"FormLayout.Section\";\n\n/* --------------------------------- Field ---------------------------------- */\n\ninterface IFormFieldProps extends React.HTMLAttributes<HTMLDivElement> {\n label?: string;\n htmlFor?: string;\n description?: string;\n error?: string;\n required?: boolean;\n}\n\nconst FormField = React.forwardRef<HTMLDivElement, IFormFieldProps>(\n (\n { className, label, htmlFor, description, error, required, children, ...props },\n ref,\n ) => (\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props}>\n {label && (\n <Label htmlFor={htmlFor}>\n {label}\n {required && (\n <span className=\"ml-0.5 text-destructive\" aria-hidden=\"true\">\n *\n </span>\n )}\n </Label>\n )}\n {children}\n {description && !error && (\n <p className=\"font-sans text-xs text-muted-foreground\">{description}</p>\n )}\n {error && (\n <p className=\"font-sans text-xs text-destructive\" role=\"alert\">\n {error}\n </p>\n )}\n </div>\n ),\n);\nFormField.displayName = \"FormLayout.Field\";\n\n/* --------------------------------- Row ------------------------------------ */\n\ntype IFormRowProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst FormRow = React.forwardRef<HTMLDivElement, IFormRowProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"grid grid-cols-1 gap-4 sm:grid-cols-2\", className)}\n {...props}\n />\n ),\n);\nFormRow.displayName = \"FormLayout.Row\";\n\n/* -------------------------------- Actions --------------------------------- */\n\ninterface IFormActionsProps extends React.HTMLAttributes<HTMLDivElement> {\n align?: \"left\" | \"right\" | \"center\" | \"between\";\n}\n\nconst alignMap = {\n left: \"justify-start\",\n right: \"justify-end\",\n center: \"justify-center\",\n between: \"justify-between\",\n} as const;\n\nconst FormActions = React.forwardRef<HTMLDivElement, IFormActionsProps>(\n ({ className, align = \"right\", ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"flex items-center gap-3 border-t-2 border-border mt-6 pt-6\",\n alignMap[align],\n className,\n )}\n {...props}\n />\n ),\n);\nFormActions.displayName = \"FormLayout.Actions\";\n\n/* -------------------------------- Export ---------------------------------- */\n\nconst FormLayout = Object.assign(FormLayoutRoot, {\n Section: FormSection,\n Field: FormField,\n Row: FormRow,\n Actions: FormActions,\n});\n\nexport { FormLayout };\nexport type {\n IFormLayoutProps,\n IFormSectionProps,\n IFormFieldProps,\n IFormRowProps,\n IFormActionsProps,\n};\n","import { cn } from \"@/lib/utils\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport React, { AnchorHTMLAttributes } from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nexport const linkVariants = cva(\n \"font-head inline-flex items-center gap-1 cursor-pointer transition-colors duration-200 underline-offset-4\",\n {\n variants: {\n variant: {\n default:\n \"text-primary-foreground underline decoration-primary hover:decoration-2\",\n muted:\n \"text-muted-foreground underline decoration-muted hover:text-foreground hover:decoration-foreground\",\n destructive:\n \"text-destructive underline decoration-destructive hover:decoration-2\",\n plain: \"text-foreground hover:underline\",\n },\n size: {\n sm: \"text-sm\",\n md: \"text-base\",\n lg: \"text-lg\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nexport interface ILinkProps\n extends AnchorHTMLAttributes<HTMLAnchorElement>,\n VariantProps<typeof linkVariants> {\n asChild?: boolean;\n}\n\nexport const Link = React.forwardRef<HTMLAnchorElement, ILinkProps>(\n (\n {\n children,\n className = \"\",\n variant = \"default\",\n size = \"md\",\n asChild = false,\n ...props\n }: ILinkProps,\n forwardedRef,\n ) => {\n const Comp = asChild ? Slot : \"a\";\n return (\n <Comp\n ref={forwardedRef}\n className={cn(linkVariants({ variant, size }), className)}\n {...props}\n >\n {children}\n </Comp>\n );\n },\n);\n\nLink.displayName = \"Link\";\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\nexport const alertVariants = cva(\n \"relative w-full border-2 border-border p-4\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n solid: \"bg-secondary text-secondary-foreground\",\n },\n status: {\n error: \"bg-error text-error-foreground border-error-foreground\",\n success: \"bg-success text-success-foreground border-success-foreground\",\n warning: \"bg-warning text-warning-foreground border-warning-foreground\",\n info: \"bg-info text-info-foreground border-info-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nexport interface IAlertProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof alertVariants> {}\n\nconst AlertRoot = React.forwardRef<HTMLDivElement, IAlertProps>(\n ({ className, variant, status, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant, status }), className)}\n {...props}\n />\n ),\n);\nAlertRoot.displayName = \"Alert\";\n\ntype IAlertTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\nconst AlertTitle = React.forwardRef<HTMLHeadingElement, IAlertTitleProps>(\n ({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"font-head text-base mb-1\", className)}\n {...props}\n />\n ),\n);\nAlertTitle.displayName = \"Alert.Title\";\n\ntype IAlertDescriptionProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst AlertDescription = React.forwardRef<\n HTMLDivElement,\n IAlertDescriptionProps\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"font-sans text-sm\", className)}\n {...props}\n />\n));\nAlertDescription.displayName = \"Alert.Description\";\n\nconst AlertComponent = Object.assign(AlertRoot, {\n Title: AlertTitle,\n Description: AlertDescription,\n});\n\nexport { AlertComponent as Alert };\n","import { cn } from \"@/lib/utils\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport React, { ButtonHTMLAttributes } from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nexport const iconButtonVariants = cva(\n \"font-head transition-all outline-hidden cursor-pointer duration-200 inline-flex justify-center items-center disabled:opacity-60 disabled:cursor-not-allowed border-2 border-border\",\n {\n variants: {\n variant: {\n default:\n \"shadow-md hover:shadow active:shadow-none bg-primary text-primary-foreground transition hover:translate-y-1 active:translate-y-2 active:translate-x-1 hover:bg-primary-hover\",\n secondary:\n \"shadow-md hover:shadow active:shadow-none bg-secondary text-secondary-foreground shadow-primary transition hover:translate-y-1 active:translate-y-2 active:translate-x-1\",\n outline:\n \"shadow-md hover:shadow active:shadow-none bg-transparent transition hover:translate-y-1 active:translate-y-2 active:translate-x-1\",\n ghost: \"bg-transparent hover:bg-accent border-transparent shadow-none\",\n },\n size: {\n sm: \"p-1.5 [&_svg]:size-4\",\n md: \"p-2 [&_svg]:size-5\",\n lg: \"p-3 [&_svg]:size-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n },\n);\n\nexport interface IIconButtonProps\n extends ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof iconButtonVariants> {\n asChild?: boolean;\n}\n\nexport const IconButton = React.forwardRef<HTMLButtonElement, IIconButtonProps>(\n (\n {\n children,\n className = \"\",\n variant = \"default\",\n size = \"md\",\n asChild = false,\n ...props\n }: IIconButtonProps,\n forwardedRef,\n ) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n ref={forwardedRef}\n className={cn(iconButtonVariants({ variant, size }), className)}\n {...props}\n >\n {children}\n </Comp>\n );\n },\n);\n\nIconButton.displayName = \"IconButton\";\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\nexport const loaderVariants = cva(\"flex gap-1\", {\n variants: {\n variant: {\n default: \"[&>div]:bg-primary [&>div]:border-border\",\n secondary: \"[&>div]:bg-secondary [&>div]:border-border\",\n outline: \"[&>div]:bg-transparent [&>div]:border-border\",\n },\n size: {\n sm: \"[&>div]:w-2 [&>div]:h-2\",\n md: \"[&>div]:w-3 [&>div]:h-3\",\n lg: \"[&>div]:w-4 [&>div]:h-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n});\n\nexport interface ILoaderProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"color\">,\n VariantProps<typeof loaderVariants> {\n count?: number;\n duration?: number;\n delayStep?: number;\n}\n\nexport const Loader = React.forwardRef<HTMLDivElement, ILoaderProps>(\n (\n {\n className,\n variant,\n size,\n count = 3,\n duration = 0.5,\n delayStep = 100,\n ...props\n },\n ref,\n ) => {\n return (\n <div\n className={cn(loaderVariants({ variant, size }), className)}\n ref={ref}\n role=\"status\"\n aria-label=\"Loading...\"\n {...props}\n >\n {Array.from({ length: count }).map((_, i) => (\n <div\n key={i}\n className=\"border-2 animate-bounce\"\n style={{\n animationDuration: `${duration}s`,\n animationIterationCount: \"infinite\",\n animationDelay: `${i * delayStep}ms`,\n }}\n />\n ))}\n </div>\n );\n },\n);\n\nLoader.displayName = \"Loader\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ReactDialog from \"@radix-ui/react-dialog\";\nimport { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\nimport { X } from \"lucide-react\";\n\nconst Dialog = ReactDialog.Root;\nconst DialogTrigger = ReactDialog.Trigger;\n\n/* ─── Overlay ─── */\n\nconst overlayVariants = cva(\n \"fixed inset-0 z-50 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0\",\n {\n variants: {\n variant: {\n default: \"bg-overlay\",\n none: \"bg-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\ninterface IDialogOverlayProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof overlayVariants> {}\n\nconst DialogOverlay = React.forwardRef<HTMLDivElement, IDialogOverlayProps>(\n ({ variant = \"default\", className, ...props }, ref) => (\n <ReactDialog.Overlay\n ref={ref}\n className={cn(overlayVariants({ variant }), className)}\n {...props}\n />\n ),\n);\nDialogOverlay.displayName = \"Dialog.Overlay\";\n\n/* ─── Content ─── */\n\nconst dialogContentVariants = cva(\n \"fixed left-[50%] top-[50%] z-50 grid w-full translate-x-[-50%] translate-y-[-50%] border-2 border-border bg-background shadow-lg duration-200 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n {\n variants: {\n size: {\n sm: \"max-w-sm\",\n md: \"max-w-md\",\n lg: \"max-w-lg\",\n xl: \"max-w-xl\",\n full: \"max-w-[90vw]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nexport interface IDialogContentProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof dialogContentVariants> {\n overlay?: IDialogOverlayProps;\n}\n\nconst DialogContent = React.forwardRef<HTMLDivElement, IDialogContentProps>(\n ({ children, size = \"md\", className, overlay, ...props }, ref) => (\n <ReactDialog.Portal>\n <DialogOverlay {...overlay} />\n <ReactDialog.Content\n ref={ref}\n className={cn(dialogContentVariants({ size }), className)}\n {...props}\n >\n <VisuallyHidden>\n <ReactDialog.Title />\n </VisuallyHidden>\n <div className=\"flex flex-col relative\">{children}</div>\n </ReactDialog.Content>\n </ReactDialog.Portal>\n ),\n);\nDialogContent.displayName = \"Dialog.Content\";\n\n/* ─── Header ─── */\n\nconst DialogHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ children, className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"flex items-center justify-between border-b-2 border-border bg-primary text-primary-foreground px-4 min-h-12\",\n className,\n )}\n {...props}\n >\n {children}\n <ReactDialog.Close className=\"cursor-pointer\" asChild>\n <X size={18} />\n </ReactDialog.Close>\n </div>\n));\nDialogHeader.displayName = \"Dialog.Header\";\n\n/* ─── Body ─── */\n\nconst DialogBody = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-4\", className)} {...props} />\n));\nDialogBody.displayName = \"Dialog.Body\";\n\n/* ─── Description ─── */\n\nconst DialogDescription = React.forwardRef<\n HTMLParagraphElement,\n React.ComponentPropsWithoutRef<typeof ReactDialog.Description>\n>(({ className, ...props }, ref) => (\n <ReactDialog.Description\n ref={ref}\n className={cn(\"font-sans text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = \"Dialog.Description\";\n\n/* ─── Footer ─── */\n\nconst DialogFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"flex items-center justify-end border-t-2 border-border px-4 py-2 gap-2\",\n className,\n )}\n {...props}\n />\n));\nDialogFooter.displayName = \"Dialog.Footer\";\n\n/* ─── Composite export ─── */\n\nconst DialogComponent = Object.assign(Dialog, {\n Trigger: DialogTrigger,\n Content: DialogContent,\n Header: DialogHeader,\n Body: DialogBody,\n Description: DialogDescription,\n Footer: DialogFooter,\n});\n\nexport { DialogComponent as Dialog, dialogContentVariants };\n","import * as React from \"react\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\nexport const dividerVariants = cva(\"border-border\", {\n variants: {\n orientation: {\n horizontal: \"w-full border-t-2\",\n vertical: \"h-full border-l-2 self-stretch\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n});\n\nexport interface IDividerProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof dividerVariants> {\n label?: React.ReactNode;\n}\n\nexport const Divider = React.forwardRef<HTMLDivElement, IDividerProps>(\n ({ className, orientation = \"horizontal\", label, ...props }, ref) => {\n if (label && orientation === \"horizontal\") {\n return (\n <div\n ref={ref}\n role=\"separator\"\n className={cn(\"flex items-center gap-3 w-full\", className)}\n {...props}\n >\n <div className=\"flex-1 border-t-2 border-border\" />\n <span className=\"font-sans text-sm text-muted-foreground shrink-0\">\n {label}\n </span>\n <div className=\"flex-1 border-t-2 border-border\" />\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n role=\"separator\"\n className={cn(dividerVariants({ orientation }), className)}\n {...props}\n />\n );\n },\n);\n\nDivider.displayName = \"Divider\";\n","import * as React from \"react\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\nexport const stackVariants = cva(\"flex\", {\n variants: {\n direction: {\n vertical: \"flex-col\",\n horizontal: \"flex-row\",\n },\n gap: {\n none: \"gap-0\",\n xs: \"gap-1\",\n sm: \"gap-2\",\n md: \"gap-4\",\n lg: \"gap-6\",\n xl: \"gap-8\",\n \"2xl\": \"gap-12\",\n },\n align: {\n start: \"items-start\",\n center: \"items-center\",\n end: \"items-end\",\n stretch: \"items-stretch\",\n baseline: \"items-baseline\",\n },\n justify: {\n start: \"justify-start\",\n center: \"justify-center\",\n end: \"justify-end\",\n between: \"justify-between\",\n around: \"justify-around\",\n evenly: \"justify-evenly\",\n },\n },\n defaultVariants: {\n direction: \"vertical\",\n gap: \"md\",\n },\n});\n\nexport interface IStackProps\n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof stackVariants> {\n as?: React.ElementType;\n}\n\nexport const Stack = React.forwardRef<HTMLElement, IStackProps>(\n (\n {\n children,\n className,\n direction = \"vertical\",\n gap = \"md\",\n align,\n justify,\n as: Comp = \"div\",\n ...props\n },\n ref,\n ) => {\n return (\n <Comp\n ref={ref}\n className={cn(stackVariants({ direction, gap, align, justify }), className)}\n {...props}\n >\n {children}\n </Comp>\n );\n },\n);\n\nStack.displayName = \"Stack\";\n","import * as React from \"react\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\nexport const flexVariants = cva(\"flex\", {\n variants: {\n direction: {\n row: \"flex-row\",\n \"row-reverse\": \"flex-row-reverse\",\n column: \"flex-col\",\n \"column-reverse\": \"flex-col-reverse\",\n },\n wrap: {\n nowrap: \"flex-nowrap\",\n wrap: \"flex-wrap\",\n \"wrap-reverse\": \"flex-wrap-reverse\",\n },\n gap: {\n none: \"gap-0\",\n xs: \"gap-1\",\n sm: \"gap-2\",\n md: \"gap-4\",\n lg: \"gap-6\",\n xl: \"gap-8\",\n \"2xl\": \"gap-12\",\n },\n align: {\n start: \"items-start\",\n center: \"items-center\",\n end: \"items-end\",\n stretch: \"items-stretch\",\n baseline: \"items-baseline\",\n },\n justify: {\n start: \"justify-start\",\n center: \"justify-center\",\n end: \"justify-end\",\n between: \"justify-between\",\n around: \"justify-around\",\n evenly: \"justify-evenly\",\n },\n },\n defaultVariants: {\n direction: \"row\",\n gap: \"md\",\n },\n});\n\nexport interface IFlexProps\n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof flexVariants> {\n as?: React.ElementType;\n}\n\nexport const Flex = React.forwardRef<HTMLElement, IFlexProps>(\n (\n {\n children,\n className,\n direction = \"row\",\n wrap,\n gap = \"md\",\n align,\n justify,\n as: Comp = \"div\",\n ...props\n },\n ref,\n ) => {\n return (\n <Comp\n ref={ref}\n className={cn(\n flexVariants({ direction, wrap, gap, align, justify }),\n className,\n )}\n {...props}\n >\n {children}\n </Comp>\n );\n },\n);\n\nFlex.displayName = \"Flex\";\n","import * as React from \"react\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\nexport const gridVariants = cva(\"grid\", {\n variants: {\n columns: {\n 1: \"grid-cols-1\",\n 2: \"grid-cols-2\",\n 3: \"grid-cols-3\",\n 4: \"grid-cols-4\",\n 5: \"grid-cols-5\",\n 6: \"grid-cols-6\",\n },\n gap: {\n none: \"gap-0\",\n xs: \"gap-1\",\n sm: \"gap-2\",\n md: \"gap-4\",\n lg: \"gap-6\",\n xl: \"gap-8\",\n \"2xl\": \"gap-12\",\n },\n },\n defaultVariants: {\n columns: 1,\n gap: \"md\",\n },\n});\n\ntype ColumnCount = 1 | 2 | 3 | 4 | 5 | 6;\n\nconst smColsMap: Record<number, string> = {\n 1: \"sm:grid-cols-1\", 2: \"sm:grid-cols-2\", 3: \"sm:grid-cols-3\",\n 4: \"sm:grid-cols-4\", 5: \"sm:grid-cols-5\", 6: \"sm:grid-cols-6\",\n};\nconst mdColsMap: Record<number, string> = {\n 1: \"md:grid-cols-1\", 2: \"md:grid-cols-2\", 3: \"md:grid-cols-3\",\n 4: \"md:grid-cols-4\", 5: \"md:grid-cols-5\", 6: \"md:grid-cols-6\",\n};\nconst lgColsMap: Record<number, string> = {\n 1: \"lg:grid-cols-1\", 2: \"lg:grid-cols-2\", 3: \"lg:grid-cols-3\",\n 4: \"lg:grid-cols-4\", 5: \"lg:grid-cols-5\", 6: \"lg:grid-cols-6\",\n};\n\nexport interface IGridProps\n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof gridVariants> {\n as?: React.ElementType;\n /** Column count at the `sm` breakpoint (640px+) */\n columnsSm?: ColumnCount;\n /** Column count at the `md` breakpoint (768px+) */\n columnsMd?: ColumnCount;\n /** Column count at the `lg` breakpoint (1024px+) */\n columnsLg?: ColumnCount;\n}\n\nexport const Grid = React.forwardRef<HTMLElement, IGridProps>(\n (\n {\n children,\n className,\n columns = 1,\n gap = \"md\",\n columnsSm,\n columnsMd,\n columnsLg,\n as: Comp = \"div\",\n ...props\n },\n ref,\n ) => {\n return (\n <Comp\n ref={ref}\n className={cn(\n gridVariants({ columns, gap }),\n columnsSm && smColsMap[columnsSm],\n columnsMd && mdColsMap[columnsMd],\n columnsLg && lgColsMap[columnsLg],\n className,\n )}\n {...props}\n >\n {children}\n </Comp>\n );\n },\n);\n\nGrid.displayName = \"Grid\";\n","import * as React from \"react\";\nimport { cva, VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\nexport const containerVariants = cva(\"mx-auto px-4 sm:px-6 lg:px-8\", {\n variants: {\n size: {\n sm: \"max-w-2xl\",\n md: \"max-w-4xl\",\n lg: \"max-w-6xl\",\n xl: \"max-w-7xl\",\n full: \"max-w-full\",\n },\n },\n defaultVariants: {\n size: \"lg\",\n },\n});\n\nexport interface IContainerProps\n extends React.HTMLAttributes<HTMLElement>,\n VariantProps<typeof containerVariants> {\n as?: React.ElementType;\n}\n\nexport const Container = React.forwardRef<HTMLElement, IContainerProps>(\n (\n {\n children,\n className,\n size = \"lg\",\n as: Comp = \"div\",\n ...props\n },\n ref,\n ) => {\n return (\n <Comp\n ref={ref}\n className={cn(containerVariants({ size }), className)}\n {...props}\n >\n {children}\n </Comp>\n );\n },\n);\n\nContainer.displayName = \"Container\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AccordionPrimitives from \"@radix-ui/react-accordion\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/* ─── Root ─── */\n\nconst AccordionRoot = React.forwardRef<\n React.ComponentRef<typeof AccordionPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitives.Root\n ref={ref}\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n />\n));\nAccordionRoot.displayName = \"Accordion\";\n\n/* ─── Item ─── */\n\nconst AccordionItem = React.forwardRef<\n React.ComponentRef<typeof AccordionPrimitives.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitives.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitives.Item\n ref={ref}\n className={cn(\n \"overflow-hidden border-2 border-border shadow-md\",\n className,\n )}\n {...props}\n />\n));\nAccordionItem.displayName = \"Accordion.Item\";\n\n/* ─── Trigger ─── */\n\nconst AccordionTrigger = React.forwardRef<\n React.ComponentRef<typeof AccordionPrimitives.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitives.Trigger>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitives.Header className=\"flex\">\n <AccordionPrimitives.Trigger\n ref={ref}\n className={cn(\n \"flex flex-1 items-center justify-between text-left text-base font-head\",\n \"bg-background text-foreground border-border p-4\",\n \"transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary\",\n \"[&[data-state=open]>svg]:rotate-180 data-[state=open]:border-b-2\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDown className=\"pointer-events-none size-5 shrink-0 transition-transform duration-200\" />\n </AccordionPrimitives.Trigger>\n </AccordionPrimitives.Header>\n));\nAccordionTrigger.displayName = \"Accordion.Trigger\";\n\n/* ─── Content ─── */\n\nconst AccordionContent = React.forwardRef<\n React.ComponentRef<typeof AccordionPrimitives.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitives.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitives.Content\n ref={ref}\n className=\"overflow-hidden bg-muted text-sm font-sans transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn(\"p-4\", className)}>{children}</div>\n </AccordionPrimitives.Content>\n));\nAccordionContent.displayName = \"Accordion.Content\";\n\n/* ─── Compound Export ─── */\n\nconst AccordionComponent = Object.assign(AccordionRoot, {\n Item: AccordionItem,\n Trigger: AccordionTrigger,\n Content: AccordionContent,\n});\n\nexport { AccordionComponent as Accordion };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ScrollAreaPrimitives from \"@radix-ui/react-scroll-area\";\nimport { cn } from \"@/lib/utils\";\n\n/* ─── ScrollBar ─── */\n\nconst ScrollBar = React.forwardRef<\n React.ComponentRef<typeof ScrollAreaPrimitives.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitives.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitives.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent p-px\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-px\",\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitives.ScrollAreaThumb className=\"relative flex-1 bg-border\" />\n </ScrollAreaPrimitives.ScrollAreaScrollbar>\n));\nScrollBar.displayName = \"ScrollArea.ScrollBar\";\n\n/* ─── Root ─── */\n\nconst ScrollAreaRoot = React.forwardRef<\n React.ComponentRef<typeof ScrollAreaPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitives.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitives.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitives.Viewport className=\"h-full w-full font-sans\">\n {children}\n </ScrollAreaPrimitives.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitives.Corner />\n </ScrollAreaPrimitives.Root>\n));\nScrollAreaRoot.displayName = \"ScrollArea\";\n\n/* ─── Compound Export ─── */\n\nconst ScrollAreaComponent = Object.assign(ScrollAreaRoot, {\n ScrollBar,\n});\n\nexport { ScrollAreaComponent as ScrollArea };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type ISkeletonProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst Skeleton = React.forwardRef<HTMLDivElement, ISkeletonProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"animate-pulse bg-muted border-2 border-border\",\n className,\n )}\n {...props}\n />\n ),\n);\nSkeleton.displayName = \"Skeleton\";\n\nexport { Skeleton };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ProgressPrimitives from \"@radix-ui/react-progress\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface IProgressProps\n extends React.ComponentPropsWithoutRef<typeof ProgressPrimitives.Root> {\n value?: number;\n}\n\nconst Progress = React.forwardRef<\n React.ComponentRef<typeof ProgressPrimitives.Root>,\n IProgressProps\n>(({ className, value, ...props }, ref) => (\n <ProgressPrimitives.Root\n ref={ref}\n className={cn(\n \"relative h-4 w-full overflow-hidden border-2 border-border bg-muted\",\n className,\n )}\n {...props}\n >\n <ProgressPrimitives.Indicator\n className=\"h-full w-full flex-1 border-r-2 border-border bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitives.Root>\n));\nProgress.displayName = \"Progress\";\n\nexport { Progress };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as TooltipPrimitives from \"@radix-ui/react-tooltip\";\nimport { cn } from \"@/lib/utils\";\n\n/* --- Provider --- */\n\ntype ITooltipProviderProps =\n React.ComponentPropsWithoutRef<typeof TooltipPrimitives.Provider>;\n\nconst TooltipProvider = ({\n delayDuration = 0,\n ...props\n}: ITooltipProviderProps) => (\n <TooltipPrimitives.Provider delayDuration={delayDuration} {...props} />\n);\nTooltipProvider.displayName = \"Tooltip.Provider\";\n\n/* --- Root --- */\n\nconst TooltipRoot = TooltipPrimitives.Root;\n\n/* --- Trigger --- */\n\nconst TooltipTrigger = React.forwardRef<\n React.ComponentRef<typeof TooltipPrimitives.Trigger>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitives.Trigger>\n>(({ className, ...props }, ref) => (\n <TooltipPrimitives.Trigger\n ref={ref}\n className={cn(className)}\n {...props}\n />\n));\nTooltipTrigger.displayName = \"Tooltip.Trigger\";\n\n/* --- Content --- */\n\ntype ITooltipContentProps =\n React.ComponentPropsWithoutRef<typeof TooltipPrimitives.Content>;\n\nconst TooltipContent = React.forwardRef<\n React.ComponentRef<typeof TooltipPrimitives.Content>,\n ITooltipContentProps\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitives.Portal>\n <TooltipPrimitives.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden border-2 border-border bg-background px-3 py-1.5 text-sm font-sans text-foreground shadow-md\",\n \"animate-in fade-in-0 zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n \"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 className,\n )}\n {...props}\n />\n </TooltipPrimitives.Portal>\n));\nTooltipContent.displayName = \"Tooltip.Content\";\n\n/* --- Composite export --- */\n\nconst TooltipComponent = Object.assign(TooltipRoot, {\n Provider: TooltipProvider,\n Trigger: TooltipTrigger,\n Content: TooltipContent,\n});\n\nexport { TooltipComponent as Tooltip };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as CollapsiblePrimitives from \"@radix-ui/react-collapsible\";\nimport { cn } from \"@/lib/utils\";\n\n/* --- Root --- */\n\nconst CollapsibleRoot = React.forwardRef<\n React.ComponentRef<typeof CollapsiblePrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof CollapsiblePrimitives.Root>\n>(({ className, ...props }, ref) => (\n <CollapsiblePrimitives.Root\n ref={ref}\n className={cn(className)}\n {...props}\n />\n));\nCollapsibleRoot.displayName = \"Collapsible\";\n\n/* --- Trigger --- */\n\nconst CollapsibleTrigger = React.forwardRef<\n React.ComponentRef<typeof CollapsiblePrimitives.CollapsibleTrigger>,\n React.ComponentPropsWithoutRef<typeof CollapsiblePrimitives.CollapsibleTrigger>\n>(({ className, ...props }, ref) => (\n <CollapsiblePrimitives.CollapsibleTrigger\n ref={ref}\n className={cn(\"cursor-pointer\", className)}\n {...props}\n />\n));\nCollapsibleTrigger.displayName = \"Collapsible.Trigger\";\n\n/* --- Content --- */\n\nconst CollapsibleContent = React.forwardRef<\n React.ComponentRef<typeof CollapsiblePrimitives.CollapsibleContent>,\n React.ComponentPropsWithoutRef<typeof CollapsiblePrimitives.CollapsibleContent>\n>(({ className, ...props }, ref) => (\n <CollapsiblePrimitives.CollapsibleContent\n ref={ref}\n className={cn(\n \"overflow-hidden data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0\",\n className,\n )}\n {...props}\n />\n));\nCollapsibleContent.displayName = \"Collapsible.Content\";\n\n/* --- Composite export --- */\n\nconst CollapsibleComponent = Object.assign(CollapsibleRoot, {\n Trigger: CollapsibleTrigger,\n Content: CollapsibleContent,\n});\n\nexport { CollapsibleComponent as Collapsible };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as HoverCardPrimitives from \"@radix-ui/react-hover-card\";\nimport { cn } from \"@/lib/utils\";\n\n/* --- Root --- */\n\nconst HoverCardRoot = HoverCardPrimitives.Root;\n\n/* --- Trigger --- */\n\nconst HoverCardTrigger = React.forwardRef<\n React.ComponentRef<typeof HoverCardPrimitives.Trigger>,\n React.ComponentPropsWithoutRef<typeof HoverCardPrimitives.Trigger>\n>(({ className, ...props }, ref) => (\n <HoverCardPrimitives.Trigger\n ref={ref}\n className={cn(className)}\n {...props}\n />\n));\nHoverCardTrigger.displayName = \"HoverCard.Trigger\";\n\n/* --- Content --- */\n\ntype IHoverCardContentProps =\n React.ComponentPropsWithoutRef<typeof HoverCardPrimitives.Content>;\n\nconst HoverCardContent = React.forwardRef<\n React.ComponentRef<typeof HoverCardPrimitives.Content>,\n IHoverCardContentProps\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <HoverCardPrimitives.Portal>\n <HoverCardPrimitives.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-64 border-2 border-border bg-background p-4 font-sans text-foreground shadow-md\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n \"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 className,\n )}\n {...props}\n />\n </HoverCardPrimitives.Portal>\n));\nHoverCardContent.displayName = \"HoverCard.Content\";\n\n/* --- Composite export --- */\n\nconst HoverCardComponent = Object.assign(HoverCardRoot, {\n Trigger: HoverCardTrigger,\n Content: HoverCardContent,\n});\n\nexport { HoverCardComponent as HoverCard };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as PopoverPrimitives from \"@radix-ui/react-popover\";\nimport { cn } from \"@/lib/utils\";\n\n/* --- Root --- */\n\nconst PopoverRoot = PopoverPrimitives.Root;\n\n/* --- Trigger --- */\n\nconst PopoverTrigger = React.forwardRef<\n React.ComponentRef<typeof PopoverPrimitives.Trigger>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitives.Trigger>\n>(({ className, ...props }, ref) => (\n <PopoverPrimitives.Trigger\n ref={ref}\n className={cn(className)}\n {...props}\n />\n));\nPopoverTrigger.displayName = \"Popover.Trigger\";\n\n/* --- Content --- */\n\ntype IPopoverContentProps =\n React.ComponentPropsWithoutRef<typeof PopoverPrimitives.Content>;\n\nconst PopoverContent = React.forwardRef<\n React.ComponentRef<typeof PopoverPrimitives.Content>,\n IPopoverContentProps\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitives.Portal>\n <PopoverPrimitives.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 border-2 border-border bg-background p-4 font-sans text-foreground shadow-md outline-hidden\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n \"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 className,\n )}\n {...props}\n />\n </PopoverPrimitives.Portal>\n));\nPopoverContent.displayName = \"Popover.Content\";\n\n/* --- Close --- */\n\nconst PopoverClose = React.forwardRef<\n React.ComponentRef<typeof PopoverPrimitives.Close>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitives.Close>\n>(({ className, ...props }, ref) => (\n <PopoverPrimitives.Close\n ref={ref}\n className={cn(className)}\n {...props}\n />\n));\nPopoverClose.displayName = \"Popover.Close\";\n\n/* --- Composite export --- */\n\nconst PopoverComponent = Object.assign(PopoverRoot, {\n Trigger: PopoverTrigger,\n Content: PopoverContent,\n Close: PopoverClose,\n});\n\nexport { PopoverComponent as Popover };\n","\"use client\";\n\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n/* ─── Root ─── */\n\nconst ContextMenuRoot = ContextMenuPrimitive.Root;\n\n/* ─── Trigger ─── */\n\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger;\n\n/* ─── Group ─── */\n\nconst ContextMenuGroup = ContextMenuPrimitive.Group;\n\n/* ─── Portal ─── */\n\nconst ContextMenuPortal = ContextMenuPrimitive.Portal;\n\n/* ─── Sub ─── */\n\nconst ContextMenuSub = ContextMenuPrimitive.Sub;\n\n/* ─── RadioGroup ─── */\n\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;\n\n/* ─── SubTrigger ─── */\n\nconst ContextMenuSubTrigger = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center border-2 border-transparent bg-background px-2 py-1.5 text-sm font-sans text-foreground outline-hidden data-[state=open]:border-border focus:border-border [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto\" />\n </ContextMenuPrimitive.SubTrigger>\n));\nContextMenuSubTrigger.displayName = \"ContextMenu.SubTrigger\";\n\n/* ─── SubContent ─── */\n\nconst ContextMenuSubContent = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden border-2 border-border bg-background p-1 font-sans text-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n));\nContextMenuSubContent.displayName = \"ContextMenu.SubContent\";\n\n/* ─── Content ─── */\n\nconst ContextMenuContent = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden border-2 border-border bg-background p-1 font-sans text-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n));\nContextMenuContent.displayName = \"ContextMenu.Content\";\n\n/* ─── Item ─── */\n\nconst ContextMenuItem = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center border-2 border-transparent px-2 py-1.5 gap-2 text-sm outline-hidden focus:border-border data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nContextMenuItem.displayName = \"ContextMenu.Item\";\n\n/* ─── CheckboxItem ─── */\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center border-2 border-transparent py-1.5 pl-8 pr-2 gap-2 text-sm font-sans text-foreground outline-hidden focus:border-border data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n));\nContextMenuCheckboxItem.displayName = \"ContextMenu.CheckboxItem\";\n\n/* ─── RadioItem ─── */\n\nconst ContextMenuRadioItem = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center border-2 border-transparent py-1.5 pl-8 pr-2 gap-2 text-sm font-sans text-foreground outline-hidden focus:border-border 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 <ContextMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n));\nContextMenuRadioItem.displayName = \"ContextMenu.RadioItem\";\n\n/* ─── Label ─── */\n\nconst ContextMenuLabel = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-head border-2 border-transparent text-foreground\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nContextMenuLabel.displayName = \"ContextMenu.Label\";\n\n/* ─── Separator ─── */\n\nconst ContextMenuSeparator = React.forwardRef<\n React.ComponentRef<typeof ContextMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-0.5 bg-border\", className)}\n {...props}\n />\n));\nContextMenuSeparator.displayName = \"ContextMenu.Separator\";\n\n/* ─── Shortcut ─── */\n\nconst ContextMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => (\n <span\n className={cn(\n \"ml-auto text-xs font-sans tracking-widest text-muted-foreground\",\n className,\n )}\n {...props}\n />\n);\nContextMenuShortcut.displayName = \"ContextMenu.Shortcut\";\n\n/* ─── Composite export ─── */\n\nconst ContextMenuComponent = Object.assign(ContextMenuRoot, {\n Trigger: ContextMenuTrigger,\n Content: ContextMenuContent,\n Item: ContextMenuItem,\n CheckboxItem: ContextMenuCheckboxItem,\n RadioItem: ContextMenuRadioItem,\n Label: ContextMenuLabel,\n Separator: ContextMenuSeparator,\n Shortcut: ContextMenuShortcut,\n Group: ContextMenuGroup,\n Portal: ContextMenuPortal,\n Sub: ContextMenuSub,\n SubContent: ContextMenuSubContent,\n SubTrigger: ContextMenuSubTrigger,\n RadioGroup: ContextMenuRadioGroup,\n});\n\nexport { ContextMenuComponent as ContextMenu };\n","\"use client\";\n\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n/* ─── Root ─── */\n\nconst DropdownMenuRoot = DropdownMenuPrimitive.Root;\n\n/* ─── Trigger ─── */\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\n/* ─── Group ─── */\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\n/* ─── Portal ─── */\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\n/* ─── Sub ─── */\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\n/* ─── RadioGroup ─── */\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\n/* ─── SubTrigger ─── */\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center border-2 border-transparent bg-background px-2 py-1.5 text-sm font-sans outline-hidden focus:border-border gap-2 [&_svg]:pointer-events-none [&_svg]:w-4 [&_svg]:h-4 [&_svg]:shrink-0\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName = \"DropdownMenu.SubTrigger\";\n\n/* ─── SubContent ─── */\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden border-2 border-border bg-background p-1 font-sans text-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuSubContent.displayName = \"DropdownMenu.SubContent\";\n\n/* ─── Content ─── */\n\nconst DropdownMenuContent = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden border-2 border-border bg-background p-1 font-sans text-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = \"DropdownMenu.Content\";\n\n/* ─── Item ─── */\n\nconst DropdownMenuItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative gap-2 [&_svg]:pointer-events-none [&_svg]:w-4 [&_svg]:h-4 [&_svg]:shrink-0 flex cursor-default select-none items-center border-2 border-transparent bg-background px-2 py-1.5 text-sm font-sans outline-hidden transition-colors focus:border-border data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = \"DropdownMenu.Item\";\n\n/* ─── CheckboxItem ─── */\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center border-2 border-transparent gap-2 py-1.5 pl-8 pr-2 text-sm font-sans text-foreground outline-hidden transition-colors focus:border-border data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName = \"DropdownMenu.CheckboxItem\";\n\n/* ─── RadioItem ─── */\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center border-2 border-transparent gap-2 py-1.5 pl-8 pr-2 text-sm font-sans outline-hidden transition-colors focus:border-border data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = \"DropdownMenu.RadioItem\";\n\n/* ─── Label ─── */\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-head\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = \"DropdownMenu.Label\";\n\n/* ─── Separator ─── */\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-0.5 bg-border\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = \"DropdownMenu.Separator\";\n\n/* ─── Shortcut ─── */\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => (\n <span\n className={cn(\n \"ml-auto text-xs font-sans tracking-widest text-muted-foreground\",\n className,\n )}\n {...props}\n />\n);\nDropdownMenuShortcut.displayName = \"DropdownMenu.Shortcut\";\n\n/* ─── Composite export ─── */\n\nconst DropdownMenuComponent = Object.assign(DropdownMenuRoot, {\n Trigger: DropdownMenuTrigger,\n Content: DropdownMenuContent,\n Item: DropdownMenuItem,\n CheckboxItem: DropdownMenuCheckboxItem,\n RadioItem: DropdownMenuRadioItem,\n Label: DropdownMenuLabel,\n Separator: DropdownMenuSeparator,\n Shortcut: DropdownMenuShortcut,\n Group: DropdownMenuGroup,\n Portal: DropdownMenuPortal,\n Sub: DropdownMenuSub,\n SubContent: DropdownMenuSubContent,\n SubTrigger: DropdownMenuSubTrigger,\n RadioGroup: DropdownMenuRadioGroup,\n});\n\nexport { DropdownMenuComponent as DropdownMenu };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n/* ─── Table ─── */\n\nconst TableRoot = 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(\n \"w-full caption-bottom border-2 border-border text-sm\",\n className,\n )}\n {...props}\n />\n </div>\n));\nTableRoot.displayName = \"Table\";\n\n/* ─── Header ─── */\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead\n ref={ref}\n className={cn(\"[&_tr]:border-b-2 [&_tr]:border-border\", className)}\n {...props}\n />\n));\nTableHeader.displayName = \"Table.Header\";\n\n/* ─── Body ─── */\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 = \"Table.Body\";\n\n/* ─── Footer ─── */\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-2 border-border bg-muted font-sans text-foreground last:[&>tr]:border-b-0\",\n className,\n )}\n {...props}\n />\n));\nTableFooter.displayName = \"Table.Footer\";\n\n/* ─── Row ─── */\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-2 border-border transition-colors text-foreground bg-background font-sans data-[state=selected]:bg-muted data-[state=selected]:text-foreground\",\n className,\n )}\n {...props}\n />\n));\nTableRow.displayName = \"Table.Row\";\n\n/* ─── Head ─── */\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-12 px-4 text-left align-middle font-head text-foreground [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = \"Table.Head\";\n\n/* ─── Cell ─── */\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 = \"Table.Cell\";\n\n/* ─── Caption ─── */\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 font-sans\", className)}\n {...props}\n />\n));\nTableCaption.displayName = \"Table.Caption\";\n\n/* ─── Composite export ─── */\n\nconst TableComponent = Object.assign(TableRoot, {\n Header: TableHeader,\n Body: TableBody,\n Footer: TableFooter,\n Row: TableRow,\n Head: TableHead,\n Cell: TableCell,\n Caption: TableCaption,\n});\n\nexport { TableComponent as Table };\n","\"use client\";\n\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n/* ─── Root ─── */\n\nconst MenubarRoot = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Root\n ref={ref}\n className={cn(\n \"flex h-11 items-center space-x-1 border-2 border-border bg-background p-1 font-sans\",\n className,\n )}\n {...props}\n />\n));\nMenubarRoot.displayName = \"Menubar\";\n\n/* ─── Menu ─── */\n\nconst MenubarMenu = MenubarPrimitive.Menu;\n\n/* ─── Trigger ─── */\n\nconst MenubarTrigger = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center text-foreground px-3 py-1.5 text-sm border-2 border-transparent font-head outline-hidden focus:border-border data-[state=open]:border-border\",\n className,\n )}\n {...props}\n />\n));\nMenubarTrigger.displayName = \"Menubar.Trigger\";\n\n/* ─── Content ─── */\n\nconst MenubarContent = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Content>\n>(({ className, align = \"start\", alignOffset = -4, sideOffset = 8, ...props }, ref) => (\n <MenubarPrimitive.Portal>\n <MenubarPrimitive.Content\n ref={ref}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[12rem] overflow-hidden border-2 border-border bg-background p-1 text-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n className,\n )}\n {...props}\n />\n </MenubarPrimitive.Portal>\n));\nMenubarContent.displayName = \"Menubar.Content\";\n\n/* ─── Group ─── */\n\nconst MenubarGroup = MenubarPrimitive.Group;\n\n/* ─── Portal ─── */\n\nconst MenubarPortal = MenubarPrimitive.Portal;\n\n/* ─── Sub ─── */\n\nconst MenubarSub = MenubarPrimitive.Sub;\n\n/* ─── RadioGroup ─── */\n\nconst MenubarRadioGroup = MenubarPrimitive.RadioGroup;\n\n/* ─── Item ─── */\n\nconst MenubarItem = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center border-2 border-transparent px-2 py-1.5 text-sm font-sans outline-hidden focus:border-border data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nMenubarItem.displayName = \"Menubar.Item\";\n\n/* ─── CheckboxItem ─── */\n\nconst MenubarCheckboxItem = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <MenubarPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center border-2 border-transparent py-1.5 pl-8 pr-2 text-sm font-sans outline-hidden focus:border-border data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Check className=\"size-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n));\nMenubarCheckboxItem.displayName = \"Menubar.CheckboxItem\";\n\n/* ─── RadioItem ─── */\n\nconst MenubarRadioItem = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <MenubarPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center border-2 border-transparent py-1.5 pl-8 pr-2 text-sm font-sans outline-hidden focus:border-border data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Circle className=\"size-2 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n));\nMenubarRadioItem.displayName = \"Menubar.RadioItem\";\n\n/* ─── Label ─── */\n\nconst MenubarLabel = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-head\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nMenubarLabel.displayName = \"Menubar.Label\";\n\n/* ─── Separator ─── */\n\nconst MenubarSeparator = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-0.5 bg-border\", className)}\n {...props}\n />\n));\nMenubarSeparator.displayName = \"Menubar.Separator\";\n\n/* ─── Shortcut ─── */\n\nconst MenubarShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className,\n )}\n {...props}\n />\n);\nMenubarShortcut.displayName = \"Menubar.Shortcut\";\n\n/* ─── SubTrigger ─── */\n\nconst MenubarSubTrigger = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <MenubarPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center border-2 border-transparent px-3 py-1.5 text-sm font-sans outline-hidden focus:border-border data-[state=open]:border-border\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto size-4\" />\n </MenubarPrimitive.SubTrigger>\n));\nMenubarSubTrigger.displayName = \"Menubar.SubTrigger\";\n\n/* ─── SubContent ─── */\n\nconst MenubarSubContent = React.forwardRef<\n React.ComponentRef<typeof MenubarPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden border-2 border-border bg-background p-1 font-sans text-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n));\nMenubarSubContent.displayName = \"Menubar.SubContent\";\n\n/* ─── Composite export ─── */\n\nconst MenubarComponent = Object.assign(MenubarRoot, {\n Menu: MenubarMenu,\n Trigger: MenubarTrigger,\n Content: MenubarContent,\n Item: MenubarItem,\n Separator: MenubarSeparator,\n Label: MenubarLabel,\n CheckboxItem: MenubarCheckboxItem,\n RadioGroup: MenubarRadioGroup,\n RadioItem: MenubarRadioItem,\n Portal: MenubarPortal,\n SubContent: MenubarSubContent,\n SubTrigger: MenubarSubTrigger,\n Group: MenubarGroup,\n Sub: MenubarSub,\n Shortcut: MenubarShortcut,\n});\n\nexport { MenubarComponent as Menubar };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\nimport { cva } from \"class-variance-authority\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/* ─── Root ─── */\n\ninterface INavigationMenuProps\n extends React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root> {\n viewport?: boolean;\n}\n\nconst NavigationMenuRoot = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Root>,\n INavigationMenuProps\n>(({ className, children, viewport = true, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn(\n \"group/navigation-menu relative z-10 flex max-w-max font-head border-2 border-border p-1 bg-background flex-1 items-center justify-center\",\n className,\n )}\n data-viewport={viewport}\n {...props}\n >\n {children}\n {viewport && <NavigationMenuViewport />}\n </NavigationMenuPrimitive.Root>\n));\nNavigationMenuRoot.displayName = \"NavigationMenu\";\n\n/* ─── List ─── */\n\nconst NavigationMenuList = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn(\n \"group flex flex-1 list-none items-center font-head justify-center space-x-1\",\n className,\n )}\n {...props}\n />\n));\nNavigationMenuList.displayName = \"NavigationMenu.List\";\n\n/* ─── Item ─── */\n\nconst NavigationMenuItem = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Item\n ref={ref}\n className={cn(\"relative\", className)}\n {...props}\n />\n));\nNavigationMenuItem.displayName = \"NavigationMenu.Item\";\n\n/* ─── Trigger Style ─── */\n\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-10 w-max items-center justify-center bg-background text-foreground px-4 py-2 text-sm font-head transition-colors hover:bg-muted focus:outline-none disabled:pointer-events-none disabled:opacity-50\",\n);\n\n/* ─── Trigger ─── */\n\nconst NavigationMenuTrigger = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDown\n className=\"relative top-[1px] ml-2 size-4 transition duration-200 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n));\nNavigationMenuTrigger.displayName = \"NavigationMenu.Trigger\";\n\n/* ─── Content ─── */\n\nconst NavigationMenuContent = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto\",\n className,\n )}\n {...props}\n />\n));\nNavigationMenuContent.displayName = \"NavigationMenu.Content\";\n\n/* ─── Link ─── */\n\nconst NavigationMenuLink = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Link>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Link>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Link\n ref={ref}\n className={cn(\n \"block select-none space-y-1 p-2 leading-none no-underline outline-none transition-colors hover:bg-muted focus-visible:ring-2 focus-visible:ring-primary focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n));\nNavigationMenuLink.displayName = \"NavigationMenu.Link\";\n\n/* ─── Viewport ─── */\n\nconst NavigationMenuViewport = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <div className=\"absolute top-full left-0 isolate z-50 flex justify-center\">\n <NavigationMenuPrimitive.Viewport\n ref={ref}\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden border-2 border-border bg-background text-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className,\n )}\n {...props}\n />\n </div>\n));\nNavigationMenuViewport.displayName = \"NavigationMenu.Viewport\";\n\n/* ─── Indicator ─── */\n\nconst NavigationMenuIndicator = React.forwardRef<\n React.ComponentRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end font-head justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in\",\n className,\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 bg-border\" />\n </NavigationMenuPrimitive.Indicator>\n));\nNavigationMenuIndicator.displayName = \"NavigationMenu.Indicator\";\n\n/* ─── Composite export ─── */\n\nconst NavigationMenuComponent = Object.assign(NavigationMenuRoot, {\n List: NavigationMenuList,\n Item: NavigationMenuItem,\n Trigger: NavigationMenuTrigger,\n Content: NavigationMenuContent,\n Link: NavigationMenuLink,\n Viewport: NavigationMenuViewport,\n Indicator: NavigationMenuIndicator,\n});\n\nexport {\n NavigationMenuComponent as NavigationMenu,\n navigationMenuTriggerStyle,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n Group,\n Panel,\n Separator,\n type GroupProps,\n type PanelProps,\n type SeparatorProps,\n} from \"react-resizable-panels\";\nimport { GripVertical } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/* ─── PanelGroup ─── */\n\ninterface ResizablePanelGroupProps extends GroupProps {\n /** Alias for `orientation` – kept for backward compatibility. */\n direction?: GroupProps[\"orientation\"];\n}\n\nconst ResizablePanelGroup = ({\n className,\n direction,\n orientation,\n ...props\n}: ResizablePanelGroupProps) => (\n <Group\n orientation={orientation ?? direction}\n className={cn(\n \"flex h-full w-full font-sans data-[panel-group-direction=vertical]:flex-col\",\n className,\n )}\n {...props}\n />\n);\nResizablePanelGroup.displayName = \"Resizable.PanelGroup\";\n\n/* ─── Panel ─── */\n\nconst ResizablePanel = ({\n className,\n ...props\n}: PanelProps) => (\n <Panel\n className={cn(className)}\n {...props}\n />\n);\nResizablePanel.displayName = \"Resizable.Panel\";\n\n/* ─── Handle ─── */\n\ninterface IResizableHandleProps extends SeparatorProps {\n withHandle?: boolean;\n}\n\nconst ResizableHandle = ({\n withHandle,\n className,\n ...props\n}: IResizableHandleProps) => (\n <Separator\n className={cn(\n \"relative flex w-0.5 items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-0.5 data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90\",\n className,\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"z-10 flex h-4 w-3 items-center justify-center border-2 border-border bg-muted\">\n <GripVertical className=\"size-2.5\" />\n </div>\n )}\n </Separator>\n);\nResizableHandle.displayName = \"Resizable.Handle\";\n\n/* ─── Composite export ─── */\n\nconst ResizableComponent = Object.assign(ResizablePanelGroup, {\n Panel: ResizablePanel,\n Handle: ResizableHandle,\n});\n\nexport { ResizableComponent as Resizable };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\nimport { cn } from \"@/lib/utils\";\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const;\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n );\n};\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error(\"useChart must be used within a <Chart.Container />\");\n }\n\n return context;\n}\n\nexport interface IChartContainerProps\n extends React.HTMLAttributes<HTMLDivElement> {\n config: ChartConfig;\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"];\n}\n\nconst ChartContainer = React.forwardRef<HTMLDivElement, IChartContainerProps>(\n ({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n ref={ref}\n data-chart={chartId}\n className={cn(\n \"flex aspect-video justify-center text-xs\",\n \"[&_.recharts-cartesian-axis-tick_text]:fill-foreground\",\n \"[&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border\",\n \"[&_.recharts-curve.recharts-tooltip-cursor]:stroke-border\",\n \"[&_.recharts-polar-grid_[stroke='#ccc']]:stroke-foreground\",\n \"[&_.recharts-reference-line_[stroke='#ccc']]:stroke-foreground\",\n \"[&_.recharts-dot[stroke='#fff']]:stroke-transparent\",\n \"[&_.recharts-sector]:outline-hidden\",\n \"[&_.recharts-sector[stroke='#fff']]:stroke-border\",\n \"[&_.recharts-surface]:outline-hidden\",\n \"[&_.recharts-layer_path]:[fill-opacity:1]\",\n \"[&_.recharts-layer_path]:[stroke-width:2]\",\n \"[&_.recharts-layer_path]:[stroke:var(--color-border)]\",\n className,\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n },\n);\nChartContainer.displayName = \"Chart.Container\";\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme || config.color,\n );\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join(\"\\n\")}\n}\n`,\n )\n .join(\"\\n\"),\n }}\n />\n );\n};\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nexport interface IChartTooltipContentProps\n extends React.HTMLAttributes<HTMLDivElement> {\n active?: boolean;\n payload?: Array<Record<string, unknown>>;\n label?: string;\n labelFormatter?: (value: unknown, payload: Array<Record<string, unknown>>) => React.ReactNode;\n labelClassName?: string;\n formatter?: (value: unknown, name: string, item: Record<string, unknown>, index: number, payload: unknown) => React.ReactNode;\n color?: string;\n hideLabel?: boolean;\n hideIndicator?: boolean;\n indicator?: \"line\" | \"dot\" | \"dashed\";\n nameKey?: string;\n labelKey?: string;\n}\n\nconst ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n IChartTooltipContentProps\n>(\n (\n {\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n },\n ref,\n ) => {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const item = payload[0] as Record<string, unknown>;\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-head\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return (\n <div className={cn(\"font-sans font-medium\", labelClassName)}>\n {value}\n </div>\n );\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\";\n\n return (\n <div\n ref={ref}\n className={cn(\n \"border-2 border-border bg-background grid min-w-[8rem] items-start gap-1.5 p-2.5 font-sans text-xs shadow-md\",\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload.map((item: Record<string, unknown>, index: number) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const itemPayload = item.payload as Record<string, unknown> | undefined;\n const indicatorColor = color || itemPayload?.fill || item.color;\n\n return (\n <div\n key={item.dataKey as string}\n className={cn(\n \"[&>svg]:text-muted-foreground flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5\",\n indicator === \"dot\" && \"items-center\",\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name as string, item, index, itemPayload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0\",\n indicator === \"dot\" && \"size-2.5 border-2 border-border\",\n indicator === \"line\" && \"w-1\",\n indicator === \"dashed\" && \"w-0 border-[1.5px] border-dashed bg-transparent\",\n nestLabel && indicator === \"dashed\" && \"my-0.5\",\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n backgroundColor: indicator !== \"dashed\" ? (indicatorColor as string) : undefined,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\",\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || (item.name as string)}\n </span>\n </div>\n {item.value != null && (\n <span className=\"font-mono font-medium text-foreground tabular-nums\">\n {String(item.value)}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n);\nChartTooltipContent.displayName = \"Chart.TooltipContent\";\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nexport interface IChartLegendContentProps\n extends React.HTMLAttributes<HTMLDivElement> {\n hideIcon?: boolean;\n nameKey?: string;\n payload?: Array<{ value?: string; color?: string; dataKey?: string }>;\n verticalAlign?: \"top\" | \"bottom\";\n}\n\nconst ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n IChartLegendContentProps\n>(\n (\n { className, hideIcon = false, payload, verticalAlign = \"bottom\", nameKey },\n ref,\n ) => {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex items-center justify-center gap-4 font-sans text-sm\",\n verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\n className,\n )}\n >\n {payload.map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn(\n \"[&>svg]:text-foreground flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3\",\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 border-2 border-border shrink-0\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n },\n);\nChartLegendContent.displayName = \"Chart.LegendContent\";\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string,\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string;\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config];\n}\n\nconst ChartRoot = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n (props, ref) => <div ref={ref} {...props} />,\n);\nChartRoot.displayName = \"Chart\";\n\nconst ChartComponent = Object.assign(ChartRoot, {\n Container: ChartContainer,\n Tooltip: ChartTooltip,\n TooltipContent: ChartTooltipContent,\n Legend: ChartLegend,\n LegendContent: ChartLegendContent,\n Style: ChartStyle,\n});\n\nexport { ChartComponent as Chart, useChart };\nexport type { ChartConfig as IChartConfig };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { useTheme } from \"@/components/ThemeProvider\";\nimport { Toaster as SonnerToaster, type ToasterProps } from \"sonner\";\n\nexport type ISonnerProps = ToasterProps;\n\nconst Toaster = React.forwardRef<HTMLDivElement, ISonnerProps>(\n ({ ...props }, _ref) => {\n const { theme = \"system\" } = useTheme() as { theme?: string };\n\n return (\n <SonnerToaster\n theme={theme as ToasterProps[\"theme\"]}\n style={{ fontFamily: \"inherit\", overflowWrap: \"anywhere\" }}\n toastOptions={{\n unstyled: true,\n classNames: {\n toast:\n \"bg-background text-foreground border-border border-2 font-head shadow-md text-[13px] flex items-center gap-2.5 p-4 w-[356px] [&:has(button)]:justify-between\",\n description: \"font-sans\",\n actionButton:\n \"font-sans border-2 text-[12px] h-6 px-2 bg-primary text-primary-foreground border-border shrink-0\",\n cancelButton:\n \"font-sans border-2 text-[12px] h-6 px-2 bg-muted text-foreground border-border shrink-0\",\n error: \"bg-error text-error-foreground border-error-foreground\",\n loading:\n \"[&[data-sonner-toast]_[data-icon]]:flex [&[data-sonner-toast]_[data-icon]]:size-4 [&[data-sonner-toast]_[data-icon]]:relative [&[data-sonner-toast]_[data-icon]]:justify-start [&[data-sonner-toast]_[data-icon]]:items-center [&[data-sonner-toast]_[data-icon]]:flex-shrink-0\",\n },\n }}\n {...props}\n />\n );\n },\n);\nToaster.displayName = \"Toaster\";\n\nexport { Toaster };\n","\"use client\";\n\nimport { createContext, useContext, useEffect, useState, useCallback, useMemo } from \"react\";\n\ntype Theme = \"light\" | \"dark\" | \"system\";\nexport type ColorTheme = \"blue\" | \"plum\" | \"plum-trio\";\n\nconst VALID_THEMES: Theme[] = [\"light\", \"dark\", \"system\"];\nconst COLOR_THEMES = [\"blue\", \"plum\", \"plum-trio\"] as const;\n\ninterface ThemeProviderState {\n theme: Theme;\n resolvedTheme: \"light\" | \"dark\";\n setTheme: (theme: Theme) => void;\n colorTheme: ColorTheme;\n setColorTheme: (colorTheme: ColorTheme) => void;\n colorThemes: readonly ColorTheme[];\n}\n\nconst ThemeContext = createContext<ThemeProviderState | undefined>(undefined);\n\nconst STORAGE_KEY = \"substrateui-theme\";\nconst COLOR_STORAGE_KEY = \"substrateui-color-theme\";\n\nfunction getSystemTheme(): \"light\" | \"dark\" {\n if (typeof window === \"undefined\") return \"light\";\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n}\n\nfunction readStoredTheme(key: string, fallback: Theme): Theme {\n if (typeof window === \"undefined\") return fallback;\n const stored = localStorage.getItem(key);\n return VALID_THEMES.includes(stored as Theme) ? (stored as Theme) : fallback;\n}\n\nfunction readStoredColorTheme(key: string, fallback: ColorTheme): ColorTheme {\n if (typeof window === \"undefined\") return fallback;\n const stored = localStorage.getItem(key);\n return (COLOR_THEMES as readonly string[]).includes(stored ?? \"\")\n ? (stored as ColorTheme)\n : fallback;\n}\n\nfunction applyClass(resolved: \"light\" | \"dark\") {\n document.documentElement.classList.remove(\"light\", \"dark\");\n document.documentElement.classList.add(resolved);\n}\n\nfunction applyColorTheme(colorTheme: ColorTheme) {\n for (const t of COLOR_THEMES) {\n document.documentElement.classList.remove(`theme-${t}`);\n }\n if (colorTheme !== \"blue\") {\n document.documentElement.classList.add(`theme-${colorTheme}`);\n }\n}\n\ninterface ThemeProviderProps {\n children: React.ReactNode;\n defaultTheme?: Theme;\n defaultColorTheme?: ColorTheme;\n storageKey?: string;\n colorStorageKey?: string;\n}\n\nexport function ThemeProvider({\n children,\n defaultTheme = \"system\",\n defaultColorTheme = \"blue\",\n storageKey = STORAGE_KEY,\n colorStorageKey = COLOR_STORAGE_KEY,\n}: ThemeProviderProps) {\n // Read localStorage in initializer — the blocking script in <head> ensures\n // the DOM classes already match before React hydrates, so there is no mismatch.\n const [theme, setThemeState] = useState<Theme>(() =>\n readStoredTheme(storageKey, defaultTheme),\n );\n const [colorTheme, setColorThemeState] = useState<ColorTheme>(() =>\n readStoredColorTheme(colorStorageKey, defaultColorTheme),\n );\n const [systemTheme, setSystemTheme] = useState<\"light\" | \"dark\">(getSystemTheme);\n\n const resolvedTheme = theme === \"system\" ? systemTheme : theme;\n\n // Sync the class on the document element whenever resolvedTheme changes\n useEffect(() => {\n applyClass(resolvedTheme);\n }, [resolvedTheme]);\n\n // Sync color theme class\n useEffect(() => {\n applyColorTheme(colorTheme);\n }, [colorTheme]);\n\n // Listen for OS theme changes\n useEffect(() => {\n const mq = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = (e: MediaQueryListEvent) => {\n setSystemTheme(e.matches ? \"dark\" : \"light\");\n };\n mq.addEventListener(\"change\", handler);\n return () => mq.removeEventListener(\"change\", handler);\n }, []);\n\n // Cross-tab synchronization via storage event\n useEffect(() => {\n const handler = (e: StorageEvent) => {\n if (e.key === storageKey) {\n setThemeState(\n VALID_THEMES.includes(e.newValue as Theme)\n ? (e.newValue as Theme)\n : defaultTheme,\n );\n }\n if (e.key === colorStorageKey) {\n setColorThemeState(\n (COLOR_THEMES as readonly string[]).includes(e.newValue ?? \"\")\n ? (e.newValue as ColorTheme)\n : defaultColorTheme,\n );\n }\n };\n window.addEventListener(\"storage\", handler);\n return () => window.removeEventListener(\"storage\", handler);\n }, [storageKey, colorStorageKey, defaultTheme, defaultColorTheme]);\n\n const setTheme = useCallback(\n (newTheme: Theme) => {\n localStorage.setItem(storageKey, newTheme);\n setThemeState(newTheme);\n },\n [storageKey],\n );\n\n const setColorTheme = useCallback(\n (newColorTheme: ColorTheme) => {\n localStorage.setItem(colorStorageKey, newColorTheme);\n setColorThemeState(newColorTheme);\n },\n [colorStorageKey],\n );\n\n const value = useMemo(\n () => ({ theme, resolvedTheme, setTheme, colorTheme, setColorTheme, colorThemes: COLOR_THEMES }),\n [theme, resolvedTheme, setTheme, colorTheme, setColorTheme],\n );\n\n return (\n <ThemeContext.Provider value={value}>\n {children}\n </ThemeContext.Provider>\n );\n}\n\nexport function useTheme() {\n const context = useContext(ThemeContext);\n if (!context) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n return context;\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n/* ─── Marquee ─── */\n\nexport interface IMarqueeProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Items to scroll across the marquee */\n items: string[];\n /** Speed of the animation in seconds (default: 20) */\n speed?: number;\n /** Pause on hover (default: false) */\n pauseOnHover?: boolean;\n /** Reverse direction (default: false) */\n reverse?: boolean;\n}\n\nconst Marquee = React.forwardRef<HTMLDivElement, IMarqueeProps>(\n (\n {\n items,\n speed = 20,\n pauseOnHover = false,\n reverse = false,\n className,\n ...props\n },\n ref,\n ) => {\n const direction = reverse ? \"reverse\" : \"normal\";\n\n return (\n <div\n ref={ref}\n className={cn(\n \"relative flex w-full overflow-x-hidden border-y-2 border-border bg-secondary text-secondary-foreground font-sans\",\n pauseOnHover && \"hover:[&>div]:animation-play-state-paused\",\n className,\n )}\n {...props}\n >\n <div\n className=\"flex whitespace-nowrap py-12 animate-marquee\"\n style={{\n animationDuration: `${speed}s`,\n animationDirection: direction,\n }}\n >\n {items.map((item, i) => (\n <span key={`${item}-${i}`} className=\"mx-4 text-4xl font-head\">\n {item}\n </span>\n ))}\n </div>\n\n <div\n className=\"flex absolute top-0 whitespace-nowrap py-12 animate-marquee2\"\n style={{\n animationDuration: `${speed}s`,\n animationDirection: direction,\n }}\n >\n {items.map((item, i) => (\n <span key={`${item}-${i}`} className=\"mx-4 text-4xl font-head\">\n {item}\n </span>\n ))}\n </div>\n </div>\n );\n },\n);\nMarquee.displayName = \"Marquee\";\n\nexport { Marquee };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n/* ─── ImageCard ─── */\n\nexport interface IImageCardProps extends React.HTMLAttributes<HTMLElement> {\n /** URL of the image to display */\n imageUrl: string;\n /** Caption text below the image */\n caption: string;\n /** Alt text for the image (defaults to caption) */\n alt?: string;\n}\n\nconst ImageCard = React.forwardRef<HTMLElement, IImageCardProps>(\n ({ imageUrl, caption, alt, className, ...props }, ref) => (\n <figure\n ref={ref}\n className={cn(\n \"w-[250px] overflow-hidden border-2 border-border bg-card text-card-foreground font-sans shadow-md\",\n className,\n )}\n {...props}\n >\n <img\n className=\"w-full aspect-4/3 object-cover\"\n src={imageUrl}\n alt={alt ?? caption}\n />\n <figcaption className=\"border-t-2 border-border p-4 font-head text-sm\">\n {caption}\n </figcaption>\n </figure>\n ),\n);\nImageCard.displayName = \"ImageCard\";\n\nexport { ImageCard };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { OTPInput, OTPInputContext, type OTPInputProps } from \"input-otp\";\nimport { Dot } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type IInputOTPProps = OTPInputProps & {\n containerClassName?: string;\n};\n\nconst InputOTPRoot = React.forwardRef<HTMLInputElement, IInputOTPProps>(\n ({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\n \"flex items-center gap-2 has-disabled:opacity-50\",\n containerClassName,\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n ),\n);\nInputOTPRoot.displayName = \"InputOTP\";\n\nexport type IInputOTPGroupProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst InputOTPGroup = React.forwardRef<HTMLDivElement, IInputOTPGroupProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center\", className)}\n {...props}\n />\n ),\n);\nInputOTPGroup.displayName = \"InputOTP.Group\";\n\nexport interface IInputOTPSlotProps\n extends React.HTMLAttributes<HTMLDivElement> {\n index: number;\n}\n\nconst InputOTPSlot = React.forwardRef<HTMLDivElement, IInputOTPSlotProps>(\n ({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } =\n inputOTPContext?.slots[index] ?? {};\n\n return (\n <div\n ref={ref}\n className={cn(\n \"relative flex size-10 items-center justify-center border-y-2 border-r-2 border-border bg-background font-sans text-sm text-foreground shadow-md transition-all first:border-l-2\",\n isActive && \"z-10 ring-2 ring-primary\",\n className,\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-px animate-caret-blink bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n );\n },\n);\nInputOTPSlot.displayName = \"InputOTP.Slot\";\n\nexport type IInputOTPSeparatorProps = React.HTMLAttributes<HTMLDivElement>;\n\nconst InputOTPSeparator = React.forwardRef<\n HTMLDivElement,\n IInputOTPSeparatorProps\n>(({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Dot className=\"size-4\" />\n </div>\n));\nInputOTPSeparator.displayName = \"InputOTP.Separator\";\n\nconst InputOTPComponent = Object.assign(InputOTPRoot, {\n Group: InputOTPGroup,\n Slot: InputOTPSlot,\n Separator: InputOTPSeparator,\n});\n\nexport { InputOTPComponent as InputOTP };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\nimport { cn } from \"@/lib/utils\";\nimport { buttonVariants } from \"./Button\";\n\n/* ─── Root ─── */\n\nconst AlertDialog = AlertDialogPrimitive.Root;\n\n/* ─── Trigger ─── */\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger;\n\n/* ─── Portal ─── */\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\n\n/* ─── Overlay ─── */\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-overlay data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n));\nAlertDialogOverlay.displayName = \"AlertDialog.Overlay\";\n\n/* ─── Content ─── */\n\nexport type IAlertDialogContentProps =\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>;\n\nconst AlertDialogContent = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Content>,\n IAlertDialogContentProps\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 border-2 border-border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:max-w-lg\",\n className,\n )}\n {...props}\n />\n </AlertDialogPortal>\n));\nAlertDialogContent.displayName = \"AlertDialog.Content\";\n\n/* ─── Header ─── */\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 text-center sm:text-left\", className)}\n {...props}\n />\n));\nAlertDialogHeader.displayName = \"AlertDialog.Header\";\n\n/* ─── Footer ─── */\n\nconst AlertDialogFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"flex flex-col-reverse gap-3 sm:flex-row sm:justify-end\",\n className,\n )}\n {...props}\n />\n));\nAlertDialogFooter.displayName = \"AlertDialog.Footer\";\n\n/* ─── Title ─── */\n\nconst AlertDialogTitle = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-head\", className)}\n {...props}\n />\n));\nAlertDialogTitle.displayName = \"AlertDialog.Title\";\n\n/* ─── Description ─── */\n\nconst AlertDialogDescription = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm font-sans text-foreground\", className)}\n {...props}\n />\n));\nAlertDialogDescription.displayName = \"AlertDialog.Description\";\n\n/* ─── Action ─── */\n\nconst AlertDialogAction = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...props}\n />\n));\nAlertDialogAction.displayName = \"AlertDialog.Action\";\n\n/* ─── Cancel ─── */\n\nconst AlertDialogCancel = React.forwardRef<\n React.ComponentRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(buttonVariants({ variant: \"secondary\" }), className)}\n {...props}\n />\n));\nAlertDialogCancel.displayName = \"AlertDialog.Cancel\";\n\n/* ─── Composite export ─── */\n\nconst AlertDialogComponent = Object.assign(AlertDialog, {\n Trigger: AlertDialogTrigger,\n Content: AlertDialogContent,\n Header: AlertDialogHeader,\n Footer: AlertDialogFooter,\n Title: AlertDialogTitle,\n Description: AlertDialogDescription,\n Action: AlertDialogAction,\n Cancel: AlertDialogCancel,\n});\n\nexport { AlertDialogComponent as AlertDialog };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/* ─── Root ─── */\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<\"nav\">\n>(({ ...props }, ref) => (\n <nav ref={ref} aria-label=\"breadcrumb\" {...props} />\n));\nBreadcrumb.displayName = \"Breadcrumb\";\n\n/* ─── List ─── */\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-1.5 text-sm font-sans break-words text-foreground sm:gap-2.5\",\n className,\n )}\n {...props}\n />\n));\nBreadcrumbList.displayName = \"Breadcrumb.List\";\n\n/* ─── Item ─── */\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-1.5\", className)}\n {...props}\n />\n));\nBreadcrumbItem.displayName = \"Breadcrumb.Item\";\n\n/* ─── Link ─── */\n\ninterface IBreadcrumbLinkProps\n extends React.ComponentPropsWithoutRef<\"a\"> {\n asChild?: boolean;\n}\n\nconst BreadcrumbLink = React.forwardRef<HTMLAnchorElement, IBreadcrumbLinkProps>(\n ({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n return (\n <Comp\n ref={ref}\n className={cn(\"hover:underline decoration-primary underline-offset-4\", className)}\n {...props}\n />\n );\n },\n);\nBreadcrumbLink.displayName = \"Breadcrumb.Link\";\n\n/* ─── Page ─── */\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(\"font-head\", className)}\n {...props}\n />\n));\nBreadcrumbPage.displayName = \"Breadcrumb.Page\";\n\n/* ─── Separator ─── */\n\nconst BreadcrumbSeparator = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<\"li\">\n>(({ children, className, ...props }, ref) => (\n <li\n ref={ref}\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n));\nBreadcrumbSeparator.displayName = \"Breadcrumb.Separator\";\n\n/* ─── Ellipsis ─── */\n\nconst BreadcrumbEllipsis = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n));\nBreadcrumbEllipsis.displayName = \"Breadcrumb.Ellipsis\";\n\n/* ─── Composite export ─── */\n\nconst BreadcrumbComponent = Object.assign(Breadcrumb, {\n List: BreadcrumbList,\n Item: BreadcrumbItem,\n Link: BreadcrumbLink,\n Page: BreadcrumbPage,\n Separator: BreadcrumbSeparator,\n Ellipsis: BreadcrumbEllipsis,\n});\n\nexport { BreadcrumbComponent as Breadcrumb };\nexport type { IBreadcrumbLinkProps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { DayPicker } from \"react-day-picker\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { buttonVariants } from \"./Button\";\n\nexport type ICalendarProps = React.ComponentProps<typeof DayPicker>;\n\nconst Calendar = React.forwardRef<HTMLDivElement, ICalendarProps>(\n ({ className, classNames, showOutsideDays = true, ...props }, ref) => (\n <div ref={ref}>\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"border-2 border-border bg-background p-3 font-head shadow-md\",\n className,\n )}\n classNames={{\n months: \"flex flex-col sm:flex-row gap-2\",\n month: \"flex flex-col gap-4\",\n month_caption:\n \"flex justify-center pt-1 relative items-center w-full text-foreground\",\n caption_label: \"text-sm font-head\",\n nav: \"gap-1 flex items-center\",\n button_previous: cn(\n buttonVariants({ variant: \"ghost\", size: \"icon\" }),\n \"size-7 bg-transparent p-0 absolute left-1\",\n ),\n button_next: cn(\n buttonVariants({ variant: \"ghost\", size: \"icon\" }),\n \"size-7 bg-transparent p-0 absolute right-1\",\n ),\n month_grid: \"w-full border-collapse space-y-1\",\n weekdays: \"flex\",\n weekday: \"text-muted-foreground w-9 font-sans text-[0.8rem]\",\n week: \"flex w-full mt-2\",\n day: \"relative p-0 text-center text-sm focus-within:relative focus-within:z-20\",\n day_button: cn(\n buttonVariants({ variant: \"ghost\", size: \"icon\" }),\n \"size-9 p-0 font-sans aria-selected:opacity-100\",\n ),\n selected: \"bg-primary text-primary-foreground!\",\n today: \"bg-muted text-foreground!\",\n outside: \"text-muted-foreground opacity-50\",\n disabled: \"text-muted-foreground opacity-50\",\n range_middle:\n \"aria-selected:bg-primary/50! aria-selected:text-primary-foreground\",\n range_start:\n \"aria-selected:bg-primary! aria-selected:text-primary-foreground\",\n range_end:\n \"aria-selected:bg-primary! aria-selected:text-primary-foreground\",\n hidden: \"invisible\",\n ...classNames,\n }}\n components={{\n Chevron: ({ orientation, className: chevronClassName, ...chevronProps }) => {\n const Icon = orientation === \"left\" ? ChevronLeft : ChevronRight;\n return (\n <Icon\n className={cn(\"size-4\", chevronClassName)}\n {...chevronProps}\n />\n );\n },\n }}\n {...props}\n />\n </div>\n ),\n);\nCalendar.displayName = \"Calendar\";\n\nexport { Calendar };\n","\"use client\";\n\nimport * as React from \"react\";\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"./Button\";\nimport type { IButtonProps } from \"./Button\";\n\n/* ─── Types ─── */\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\nexport interface ICarouselProps {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n plugins?: CarouselPlugin;\n} & ICarouselProps;\n\n/* ─── Context ─── */\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n return context;\n}\n\n/* ─── Root ─── */\n\nconst CarouselRoot = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & ICarouselProps\n>(\n (\n {\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins,\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((emblaApi: CarouselApi) => {\n if (!emblaApi) return;\n setCanScrollPrev(emblaApi.canScrollPrev());\n setCanScrollNext(emblaApi.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext],\n );\n\n React.useEffect(() => {\n if (!api || !setApi) return;\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) return;\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n },\n);\nCarouselRoot.displayName = \"Carousel\";\n\n/* ─── Content ─── */\n\nconst CarouselContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n ref={ref}\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className,\n )}\n {...props}\n />\n </div>\n );\n});\nCarouselContent.displayName = \"Carousel.Content\";\n\n/* ─── Item ─── */\n\nconst CarouselItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const { orientation } = useCarousel();\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className,\n )}\n {...props}\n />\n );\n});\nCarouselItem.displayName = \"Carousel.Item\";\n\n/* ─── Previous ─── */\n\nconst CarouselPrevious = React.forwardRef<HTMLButtonElement, IButtonProps>(\n ({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n \"absolute size-8\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n },\n);\nCarouselPrevious.displayName = \"Carousel.Previous\";\n\n/* ─── Next ─── */\n\nconst CarouselNext = React.forwardRef<HTMLButtonElement, IButtonProps>(\n ({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n \"absolute size-8\",\n orientation === \"horizontal\"\n ? \"-right-12 top-1/2 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n },\n);\nCarouselNext.displayName = \"Carousel.Next\";\n\n/* ─── Composite export ─── */\n\nconst CarouselComponent = Object.assign(CarouselRoot, {\n Content: CarouselContent,\n Item: CarouselItem,\n Previous: CarouselPrevious,\n Next: CarouselNext,\n});\n\nexport { CarouselComponent as Carousel, useCarousel };\nexport type { CarouselApi };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\";\nimport { buttonVariants } from \"@/components/ui/Button\";\nimport { cn } from \"@/lib/utils\";\n\n/* ─── Root ─── */\n\nconst PaginationRoot = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<\"nav\">\n>(({ className, ...props }, ref) => (\n <nav\n ref={ref}\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n));\nPaginationRoot.displayName = \"Pagination\";\n\n/* ─── Content ─── */\n\nconst PaginationContent = React.forwardRef<\n HTMLUListElement,\n React.ComponentPropsWithoutRef<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n className={cn(\"flex flex-row items-center gap-1\", className)}\n {...props}\n />\n));\nPaginationContent.displayName = \"Pagination.Content\";\n\n/* ─── Item ─── */\n\nconst PaginationItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<\"li\">\n>(({ className, ...props }, ref) => (\n <li ref={ref} className={cn(\"\", className)} {...props} />\n));\nPaginationItem.displayName = \"Pagination.Item\";\n\n/* ─── Link ─── */\n\ninterface IPaginationLinkProps\n extends React.ComponentPropsWithoutRef<\"a\"> {\n isActive?: boolean;\n size?: \"sm\" | \"md\" | \"lg\" | \"icon\";\n}\n\nconst PaginationLink = React.forwardRef<\n HTMLAnchorElement,\n IPaginationLinkProps\n>(({ className, isActive, size = \"icon\", ...props }, ref) => (\n <a\n ref={ref}\n aria-current={isActive ? \"page\" : undefined}\n className={cn(\n buttonVariants({\n variant: \"ghost\",\n size,\n }),\n \"border-2 border-border\",\n isActive && \"bg-primary text-primary-foreground\",\n className,\n )}\n {...props}\n />\n));\nPaginationLink.displayName = \"Pagination.Link\";\n\n/* ─── Previous ─── */\n\nconst PaginationPrevious = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<typeof PaginationLink>\n>(({ className, ...props }, ref) => (\n <PaginationLink\n ref={ref}\n aria-label=\"Go to previous page\"\n size=\"md\"\n className={cn(\"gap-1 pl-2.5\", className)}\n {...props}\n >\n <ChevronLeft className=\"size-4\" />\n <span>Previous</span>\n </PaginationLink>\n));\nPaginationPrevious.displayName = \"Pagination.Previous\";\n\n/* ─── Next ─── */\n\nconst PaginationNext = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<typeof PaginationLink>\n>(({ className, ...props }, ref) => (\n <PaginationLink\n ref={ref}\n aria-label=\"Go to next page\"\n size=\"md\"\n className={cn(\"gap-1 pr-2.5\", className)}\n {...props}\n >\n <span>Next</span>\n <ChevronRight className=\"size-4\" />\n </PaginationLink>\n));\nPaginationNext.displayName = \"Pagination.Next\";\n\n/* ─── Ellipsis ─── */\n\nconst PaginationEllipsis = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n aria-hidden\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n));\nPaginationEllipsis.displayName = \"Pagination.Ellipsis\";\n\n/* ─── Composite export ─── */\n\nconst Pagination = Object.assign(PaginationRoot, {\n Content: PaginationContent,\n Item: PaginationItem,\n Link: PaginationLink,\n Previous: PaginationPrevious,\n Next: PaginationNext,\n Ellipsis: PaginationEllipsis,\n});\n\nexport { Pagination };\nexport type { IPaginationLinkProps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\n/* ─── Root ─── */\n\nconst Sheet = SheetPrimitive.Root;\nconst SheetTrigger = SheetPrimitive.Trigger;\nconst SheetClose = SheetPrimitive.Close;\n\n/* ─── Overlay ─── */\n\nconst SheetOverlay = React.forwardRef<\n React.ComponentRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-overlay data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0\",\n className,\n )}\n {...props}\n />\n));\nSheetOverlay.displayName = \"Sheet.Overlay\";\n\n/* ─── Content ─── */\n\nconst sheetContentVariants = cva(\n \"fixed z-50 flex flex-col gap-4 border-2 border-border bg-background transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n {\n variants: {\n side: {\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l-2 sm:max-w-sm data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right\",\n left:\n \"inset-y-0 left-0 h-full w-3/4 border-r-2 sm:max-w-sm data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left\",\n top:\n \"inset-x-0 top-0 h-auto border-b-2 data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 h-auto border-t-2 data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n },\n);\n\nexport interface ISheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetContentVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ComponentRef<typeof SheetPrimitive.Content>,\n ISheetContentProps\n>(({ children, side = \"right\", className, ...props }, ref) => (\n <SheetPrimitive.Portal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetContentVariants({ side }), className)}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute right-4 top-4 cursor-pointer ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPrimitive.Portal>\n));\nSheetContent.displayName = \"Sheet.Content\";\n\n/* ─── Header ─── */\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-1.5 p-4\", className)}\n {...props}\n />\n));\nSheetHeader.displayName = \"Sheet.Header\";\n\n/* ─── Title ─── */\n\nconst SheetTitle = React.forwardRef<\n React.ComponentRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"font-head text-lg text-foreground\", className)}\n {...props}\n />\n));\nSheetTitle.displayName = \"Sheet.Title\";\n\n/* ─── Description ─── */\n\nconst SheetDescription = React.forwardRef<\n React.ComponentRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"font-sans text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nSheetDescription.displayName = \"Sheet.Description\";\n\n/* ─── Footer ─── */\n\nconst SheetFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"mt-auto flex flex-col gap-3 p-4 border-t-2 border-border\",\n className,\n )}\n {...props}\n />\n));\nSheetFooter.displayName = \"Sheet.Footer\";\n\n/* ─── Composite export ─── */\n\nconst SheetComponent = Object.assign(Sheet, {\n Trigger: SheetTrigger,\n Close: SheetClose,\n Content: SheetContent,\n Header: SheetHeader,\n Title: SheetTitle,\n Description: SheetDescription,\n Footer: SheetFooter,\n});\n\nexport { SheetComponent as Sheet, sheetContentVariants };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n Controller,\n FormProvider,\n useFormContext,\n useFormState,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from \"react-hook-form\";\nimport { Label } from \"@/components/ui/Label\";\nimport { cn } from \"@/lib/utils\";\n\n/* ─── Root ─── */\n\nconst Form = FormProvider;\n\n/* ─── Field context ─── */\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue,\n);\n\nfunction FormField<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({ ...props }: ControllerProps<TFieldValues, TName>) {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n}\nFormField.displayName = \"Form.Field\";\n\n/* ─── useFormField hook ─── */\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue,\n);\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <Form.Field>\");\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\n/* ─── Item ─── */\n\nconst FormItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div\n ref={ref}\n className={cn(\"grid gap-2\", className)}\n {...props}\n />\n </FormItemContext.Provider>\n );\n});\nFormItem.displayName = \"Form.Item\";\n\n/* ─── Label ─── */\n\nconst FormLabel = React.forwardRef<\n React.ComponentRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n ref={ref}\n data-error={!!error}\n className={cn(\"font-head\", className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n});\nFormLabel.displayName = \"Form.Label\";\n\n/* ─── Control ─── */\n\nconst FormControl = React.forwardRef<\n React.ComponentRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n});\nFormControl.displayName = \"Form.Control\";\n\n/* ─── Description ─── */\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn(\"font-sans text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n});\nFormDescription.displayName = \"Form.Description\";\n\n/* ─── Message ─── */\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? \"\") : children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn(\"font-sans text-sm text-red-500\", className)}\n {...props}\n >\n {body}\n </p>\n );\n});\nFormMessage.displayName = \"Form.Message\";\n\n/* ─── Composite export ─── */\n\nconst FormComponent = Object.assign(Form, {\n Field: FormField,\n Item: FormItem,\n Label: FormLabel,\n Control: FormControl,\n Description: FormDescription,\n Message: FormMessage,\n});\n\nexport { FormComponent as Form, useFormField };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { Search } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { Dialog } from \"./Dialog\";\n\n/* ─── Command ─── */\n\nconst CommandRoot = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden border-2 border-border bg-background font-sans text-foreground\",\n className,\n )}\n {...props}\n />\n));\nCommandRoot.displayName = \"Command\";\n\n/* ─── Dialog ─── */\n\ninterface ICommandDialogProps\n extends React.ComponentPropsWithoutRef<typeof Dialog> {\n title?: string;\n description?: string;\n}\n\nconst CommandDialog = ({\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n title = \"Command Palette\",\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n description = \"Search for a command to run...\",\n children,\n ...props\n}: ICommandDialogProps) => (\n <Dialog {...props}>\n <Dialog.Content className=\"overflow-hidden p-0 border-0\">\n <CommandRoot className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-head [&_[cmdk-group-heading]]:mb-1 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </CommandRoot>\n </Dialog.Content>\n </Dialog>\n);\nCommandDialog.displayName = \"Command.Dialog\";\n\n/* ─── Input ─── */\n\nconst CommandInput = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex h-9 gap-2 items-center border-b-2 border-border px-3\">\n <Search className=\"size-4 shrink-0\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-10 w-full bg-transparent py-3 text-sm outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n </div>\n));\nCommandInput.displayName = \"Command.Input\";\n\n/* ─── List ─── */\n\nconst CommandList = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\n \"max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto\",\n className,\n )}\n {...props}\n />\n));\nCommandList.displayName = \"Command.List\";\n\n/* ─── Empty ─── */\n\nconst CommandEmpty = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className={cn(\"py-6 text-center text-sm font-sans\", className)}\n {...props}\n />\n));\nCommandEmpty.displayName = \"Command.Empty\";\n\n/* ─── Group ─── */\n\nconst CommandGroup = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"text-foreground overflow-hidden p-2 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-base [&_[cmdk-group-heading]]:font-head\",\n className,\n )}\n {...props}\n />\n));\nCommandGroup.displayName = \"Command.Group\";\n\n/* ─── Separator ─── */\n\nconst CommandSeparator = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-0.5 bg-border\", className)}\n {...props}\n />\n));\nCommandSeparator.displayName = \"Command.Separator\";\n\n/* ─── Item ─── */\n\nconst CommandItem = React.forwardRef<\n React.ComponentRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center px-2 py-1.5 gap-2 text-sm text-foreground outline-border outline-0 aria-selected:outline-2 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n));\nCommandItem.displayName = \"Command.Item\";\n\n/* ─── Shortcut ─── */\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground font-sans\",\n className,\n )}\n {...props}\n />\n);\nCommandShortcut.displayName = \"Command.Shortcut\";\n\n/* ─── Composite export ─── */\n\nconst CommandComponent = Object.assign(CommandRoot, {\n Dialog: CommandDialog,\n Input: CommandInput,\n List: CommandList,\n Empty: CommandEmpty,\n Group: CommandGroup,\n Separator: CommandSeparator,\n Item: CommandItem,\n Shortcut: CommandShortcut,\n});\n\nexport { CommandComponent as Command };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Check, ChevronsUpDown } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"./Button\";\nimport { Command } from \"./Command\";\nimport { Popover } from \"./Popover\";\n\n/* ─── Types ─── */\n\nexport interface IComboboxItem {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface IComboboxProps {\n items: IComboboxItem[];\n value?: string;\n onValueChange?: (value: string) => void;\n placeholder?: string;\n searchPlaceholder?: string;\n emptyText?: string;\n className?: string;\n disabled?: boolean;\n}\n\n/* ─── Combobox ─── */\n\nconst ComboboxRoot = React.forwardRef<HTMLButtonElement, IComboboxProps>(\n (\n {\n items,\n value: controlledValue,\n onValueChange,\n placeholder = \"Select...\",\n searchPlaceholder = \"Search...\",\n emptyText = \"No results found.\",\n className,\n disabled = false,\n },\n ref,\n ) => {\n const [open, setOpen] = React.useState(false);\n const [internalValue, setInternalValue] = React.useState(\"\");\n\n const value = controlledValue ?? internalValue;\n const setValue = React.useCallback(\n (newValue: string) => {\n if (onValueChange) {\n onValueChange(newValue);\n } else {\n setInternalValue(newValue);\n }\n },\n [onValueChange],\n );\n\n const selectedItem = items.find((item) => item.value === value);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <Popover.Trigger asChild>\n <Button\n ref={ref}\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n className={cn(\"w-[200px] justify-between\", className)}\n >\n {selectedItem ? selectedItem.label : placeholder}\n <ChevronsUpDown className=\"ml-2 size-4 shrink-0 opacity-50\" />\n </Button>\n </Popover.Trigger>\n <Popover.Content className=\"w-[200px] border-0! p-0\">\n <Command>\n <Command.Input placeholder={searchPlaceholder} />\n <Command.List>\n <Command.Empty>{emptyText}</Command.Empty>\n <Command.Group>\n {items.map((item) => (\n <Command.Item\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n onSelect={(currentValue) => {\n setValue(currentValue === value ? \"\" : currentValue);\n setOpen(false);\n }}\n >\n <Check\n className={cn(\n \"mr-2 size-4\",\n value === item.value ? \"opacity-100\" : \"opacity-0\",\n )}\n />\n {item.label}\n </Command.Item>\n ))}\n </Command.Group>\n </Command.List>\n </Command>\n </Popover.Content>\n </Popover>\n );\n },\n);\nComboboxRoot.displayName = \"Combobox\";\n\n/* ─── Multi-Select Combobox ─── */\n\nexport interface IComboboxMultiProps {\n items: IComboboxItem[];\n values?: string[];\n onValuesChange?: (values: string[]) => void;\n placeholder?: string;\n searchPlaceholder?: string;\n emptyText?: string;\n className?: string;\n disabled?: boolean;\n}\n\nconst ComboboxMulti = React.forwardRef<HTMLButtonElement, IComboboxMultiProps>(\n (\n {\n items,\n values: controlledValues,\n onValuesChange,\n placeholder = \"Select...\",\n searchPlaceholder = \"Search...\",\n emptyText = \"No results found.\",\n className,\n disabled = false,\n },\n ref,\n ) => {\n const [open, setOpen] = React.useState(false);\n const [internalValues, setInternalValues] = React.useState<string[]>([]);\n\n const values = controlledValues ?? internalValues;\n const setValues = React.useCallback(\n (newValues: string[]) => {\n if (onValuesChange) {\n onValuesChange(newValues);\n } else {\n setInternalValues(newValues);\n }\n },\n [onValuesChange],\n );\n\n const selectedLabels = items\n .filter((item) => values.includes(item.value))\n .map((item) => item.label);\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <Popover.Trigger asChild>\n <Button\n ref={ref}\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n className={cn(\"w-[200px] justify-between\", className)}\n >\n <span className=\"truncate\">\n {selectedLabels.length > 0\n ? selectedLabels.join(\", \")\n : placeholder}\n </span>\n <ChevronsUpDown className=\"ml-2 size-4 shrink-0 opacity-50\" />\n </Button>\n </Popover.Trigger>\n <Popover.Content className=\"w-[200px] border-0! p-0\">\n <Command>\n <Command.Input placeholder={searchPlaceholder} />\n <Command.List>\n <Command.Empty>{emptyText}</Command.Empty>\n <Command.Group>\n {items.map((item) => (\n <Command.Item\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n onSelect={(currentValue) => {\n const newValues = values.includes(currentValue)\n ? values.filter((v) => v !== currentValue)\n : [...values, currentValue];\n setValues(newValues);\n }}\n >\n <Check\n className={cn(\n \"mr-2 size-4\",\n values.includes(item.value)\n ? \"opacity-100\"\n : \"opacity-0\",\n )}\n />\n {item.label}\n </Command.Item>\n ))}\n </Command.Group>\n </Command.List>\n </Command>\n </Popover.Content>\n </Popover>\n );\n },\n);\nComboboxMulti.displayName = \"Combobox.Multi\";\n\n/* ─── Composite export ─── */\n\nconst ComboboxComponent = Object.assign(ComboboxRoot, {\n Multi: ComboboxMulti,\n});\n\nexport { ComboboxComponent as Combobox };\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n type ColumnDef,\n type ColumnFiltersState,\n type SortingState,\n type VisibilityState,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport { ArrowUpDown, ChevronDown } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"./Button\";\nimport { Input } from \"./Input\";\nimport { Table } from \"./Table\";\nimport { DropdownMenu } from \"./DropdownMenu\";\n\n/* ─── Types ─── */\n\nexport interface IDataTableProps<TData, TValue> {\n columns: ColumnDef<TData, TValue>[];\n data: TData[];\n filterColumn?: string;\n filterPlaceholder?: string;\n showColumnToggle?: boolean;\n showPagination?: boolean;\n showSelectedCount?: boolean;\n className?: string;\n}\n\n/* ─── Toolbar ─── */\n\ninterface IDataTableToolbarProps {\n filterValue: string;\n onFilterChange: (value: string) => void;\n filterPlaceholder: string;\n showColumnToggle: boolean;\n columns: { id: string; getCanHide: () => boolean; getIsVisible: () => boolean; toggleVisibility: (value: boolean) => void }[];\n}\n\nconst DataTableToolbar = ({\n filterValue,\n onFilterChange,\n filterPlaceholder,\n showColumnToggle,\n columns,\n}: IDataTableToolbarProps) => (\n <div className=\"flex items-center py-4 gap-2\">\n <Input\n placeholder={filterPlaceholder}\n value={filterValue}\n onChange={(event) => onFilterChange(event.target.value)}\n className=\"max-w-sm\"\n />\n {showColumnToggle && (\n <DropdownMenu>\n <DropdownMenu.Trigger asChild>\n <Button variant=\"outline\" className=\"ml-auto\">\n Columns <ChevronDown className=\"ml-2 size-4\" />\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"end\">\n {columns\n .filter((column) => column.getCanHide())\n .map((column) => (\n <DropdownMenu.CheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(value) => column.toggleVisibility(!!value)}\n >\n {column.id}\n </DropdownMenu.CheckboxItem>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n )}\n </div>\n);\nDataTableToolbar.displayName = \"DataTable.Toolbar\";\n\n/* ─── Pagination ─── */\n\ninterface IDataTablePaginationProps {\n selectedCount: number;\n totalCount: number;\n showSelectedCount: boolean;\n canPreviousPage: boolean;\n canNextPage: boolean;\n onPreviousPage: () => void;\n onNextPage: () => void;\n}\n\nconst DataTablePagination = ({\n selectedCount,\n totalCount,\n showSelectedCount,\n canPreviousPage,\n canNextPage,\n onPreviousPage,\n onNextPage,\n}: IDataTablePaginationProps) => (\n <div className=\"flex items-center justify-end gap-2 py-4\">\n {showSelectedCount && (\n <div className=\"text-foreground flex-1 text-sm font-sans\">\n {selectedCount} of {totalCount} row(s) selected.\n </div>\n )}\n <div className=\"flex gap-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={onPreviousPage}\n disabled={!canPreviousPage}\n >\n Previous\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={onNextPage}\n disabled={!canNextPage}\n >\n Next\n </Button>\n </div>\n </div>\n);\nDataTablePagination.displayName = \"DataTable.Pagination\";\n\n/* ─── SortButton ─── */\n\ninterface IDataTableSortButtonProps {\n children: React.ReactNode;\n onClick: () => void;\n className?: string;\n}\n\nconst DataTableSortButton = ({\n children,\n onClick,\n className,\n}: IDataTableSortButtonProps) => (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={onClick}\n className={cn(className)}\n >\n {children}\n <ArrowUpDown className=\"ml-2 size-4\" />\n </Button>\n);\nDataTableSortButton.displayName = \"DataTable.SortButton\";\n\n/* ─── DataTable ─── */\n\nfunction DataTableRoot<TData, TValue>({\n columns,\n data,\n filterColumn,\n filterPlaceholder = \"Filter...\",\n showColumnToggle = true,\n showPagination = true,\n showSelectedCount = true,\n className,\n}: IDataTableProps<TData, TValue>) {\n const [sorting, setSorting] = React.useState<SortingState>([]);\n const [columnFilters, setColumnFilters] =\n React.useState<ColumnFiltersState>([]);\n const [columnVisibility, setColumnVisibility] =\n React.useState<VisibilityState>({});\n const [rowSelection, setRowSelection] = React.useState({});\n\n const table = useReactTable({\n data,\n columns,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection,\n },\n });\n\n return (\n <div className={cn(\"w-full font-sans text-foreground\", className)}>\n {filterColumn && (\n <DataTableToolbar\n filterValue={\n (table.getColumn(filterColumn)?.getFilterValue() as string) ?? \"\"\n }\n onFilterChange={(value) =>\n table.getColumn(filterColumn)?.setFilterValue(value)\n }\n filterPlaceholder={filterPlaceholder}\n showColumnToggle={showColumnToggle}\n columns={table.getAllColumns()}\n />\n )}\n <div>\n <Table>\n <Table.Header className=\"font-head\">\n {table.getHeaderGroups().map((headerGroup) => (\n <Table.Row\n className=\"bg-muted text-foreground\"\n key={headerGroup.id}\n >\n {headerGroup.headers.map((header) => (\n <Table.Head className=\"text-foreground\" key={header.id}>\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )}\n </Table.Head>\n ))}\n </Table.Row>\n ))}\n </Table.Header>\n <Table.Body>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <Table.Row\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n >\n {row.getVisibleCells().map((cell) => (\n <Table.Cell className=\"px-4 py-2\" key={cell.id}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )}\n </Table.Cell>\n ))}\n </Table.Row>\n ))\n ) : (\n <Table.Row>\n <Table.Cell\n colSpan={columns.length}\n className=\"h-24 text-center\"\n >\n No results.\n </Table.Cell>\n </Table.Row>\n )}\n </Table.Body>\n </Table>\n </div>\n {showPagination && (\n <DataTablePagination\n selectedCount={table.getFilteredSelectedRowModel().rows.length}\n totalCount={table.getFilteredRowModel().rows.length}\n showSelectedCount={showSelectedCount}\n canPreviousPage={table.getCanPreviousPage()}\n canNextPage={table.getCanNextPage()}\n onPreviousPage={() => table.previousPage()}\n onNextPage={() => table.nextPage()}\n />\n )}\n </div>\n );\n}\n\n/* ─── Composite export ─── */\n\nconst DataTableComponent = Object.assign(DataTableRoot, {\n SortButton: DataTableSortButton,\n});\n\nexport { DataTableComponent as DataTable, type ColumnDef, flexRender };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { PanelLeftIcon } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { useIsMobile } from \"@/hooks/use-mobile\";\nimport { Button } from \"./Button\";\nimport { Input } from \"./Input\";\nimport { Sheet } from \"./Sheet\";\nimport { Skeleton } from \"./Skeleton\";\nimport { Tooltip } from \"./Tooltip\";\n\n/* ─── Constants ─── */\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\n/* ─── Context ─── */\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a Sidebar.Provider.\");\n }\n return context;\n}\n\n/* ─── Provider ─── */\n\ninterface ISidebarProviderProps extends React.HTMLAttributes<HTMLDivElement> {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\n\nconst SidebarProvider = ({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: ISidebarProviderProps) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n const toggleSidebar = React.useCallback(() => {\n return isMobile\n ? setOpenMobile((open) => !open)\n : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <Tooltip.Provider delayDuration={0}>\n <div\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper has-data-[variant=inset]:bg-background flex min-h-svh w-full\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </Tooltip.Provider>\n </SidebarContext.Provider>\n );\n};\nSidebarProvider.displayName = \"Sidebar.Provider\";\n\n/* ─── Sidebar Root ─── */\n\ninterface ISidebarRootProps extends React.HTMLAttributes<HTMLDivElement> {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n}\n\nconst SidebarRoot = ({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n}: ISidebarRootProps) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <div\n className={cn(\n \"bg-background text-foreground flex h-full w-(--sidebar-width) flex-col border-r-2 border-border\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <Sheet.Content\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-background text-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <Sheet.Header className=\"sr-only\">\n <Sheet.Title>Sidebar</Sheet.Title>\n <Sheet.Description>Displays the mobile sidebar.</Sheet.Description>\n </Sheet.Header>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </Sheet.Content>\n </Sheet>\n );\n }\n\n return (\n <div\n className=\"group peer hidden md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n {/* Sidebar gap on desktop */}\n <div\n className={cn(\n \"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n )}\n />\n <div\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r-2 border-r-border group-data-[side=right]:border-l-2 border-l-border\",\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"bg-background flex h-full w-full flex-col\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n};\nSidebarRoot.displayName = \"Sidebar\";\n\n/* ─── Trigger ─── */\n\ntype ISidebarTriggerProps = React.ComponentPropsWithoutRef<typeof Button>;\n\nconst SidebarTrigger = React.forwardRef<\n HTMLButtonElement,\n ISidebarTriggerProps\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"size-7\", className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n});\nSidebarTrigger.displayName = \"Sidebar.Trigger\";\n\n/* ─── Rail ─── */\n\nconst SidebarRail = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"hover:group-data-[collapsible=offcanvas]:bg-muted group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarRail.displayName = \"Sidebar.Rail\";\n\n/* ─── Inset ─── */\n\nconst SidebarInset = React.forwardRef<\n HTMLElement,\n React.HTMLAttributes<HTMLElement>\n>(({ className, ...props }, ref) => (\n <main\n ref={ref}\n className={cn(\n \"bg-background relative flex w-full flex-1 flex-col\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n className,\n )}\n {...props}\n />\n));\nSidebarInset.displayName = \"Sidebar.Inset\";\n\n/* ─── Input ─── */\n\nconst SidebarInput = React.forwardRef<\n HTMLInputElement,\n React.ComponentPropsWithoutRef<typeof Input>\n>(({ className, ...props }, ref) => (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\"bg-background h-8 w-full shadow-none\", className)}\n {...props}\n />\n));\nSidebarInput.displayName = \"Sidebar.Input\";\n\n/* ─── Header ─── */\n\nconst SidebarHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn(\n \"flex flex-col gap-2 p-2 border-b-2 border-b-border\",\n className,\n )}\n {...props}\n />\n));\nSidebarHeader.displayName = \"Sidebar.Header\";\n\n/* ─── Footer ─── */\n\nconst SidebarFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn(\n \"flex flex-col gap-2 p-2 border-t-2 border-t-border\",\n className,\n )}\n {...props}\n />\n));\nSidebarFooter.displayName = \"Sidebar.Footer\";\n\n/* ─── Content ─── */\n\nconst SidebarContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className,\n )}\n {...props}\n />\n));\nSidebarContent.displayName = \"Sidebar.Content\";\n\n/* ─── Group ─── */\n\nconst SidebarGroup = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\n \"relative flex w-full min-w-0 flex-col p-2 border-b-2 border-b-border last:border-b-0\",\n className,\n )}\n {...props}\n />\n));\nSidebarGroup.displayName = \"Sidebar.Group\";\n\n/* ─── GroupLabel ─── */\n\ninterface ISidebarGroupLabelProps extends React.HTMLAttributes<HTMLDivElement> {\n asChild?: boolean;\n}\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n ISidebarGroupLabelProps\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"div\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n \"text-foreground ring-ring flex h-8 shrink-0 items-center px-2 text-sm font-head outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarGroupLabel.displayName = \"Sidebar.GroupLabel\";\n\n/* ─── GroupAction ─── */\n\ninterface ISidebarGroupActionProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n asChild?: boolean;\n}\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n ISidebarGroupActionProps\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarGroupAction.displayName = \"Sidebar.GroupAction\";\n\n/* ─── GroupContent ─── */\n\nconst SidebarGroupContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n));\nSidebarGroupContent.displayName = \"Sidebar.GroupContent\";\n\n/* ─── Menu ─── */\n\nconst SidebarMenu = React.forwardRef<\n HTMLUListElement,\n React.HTMLAttributes<HTMLUListElement>\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n));\nSidebarMenu.displayName = \"Sidebar.Menu\";\n\n/* ─── MenuItem ─── */\n\nconst SidebarMenuItem = React.forwardRef<\n HTMLLIElement,\n React.LiHTMLAttributes<HTMLLIElement>\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative font-sans\", className)}\n {...props}\n />\n));\nSidebarMenuItem.displayName = \"Sidebar.MenuItem\";\n\n/* ─── MenuButton ─── */\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden outline-2 outline-transparent p-2 text-left text-sm ring-ring transition-[width,height,padding] hover:bg-primary hover:text-primary-foreground hover:outline-border focus-visible:outline-border focus-visible:text-primary-foreground focus-visible:bg-primary disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n },\n);\n\ninterface ISidebarMenuButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof sidebarMenuButtonVariants> {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentPropsWithoutRef<typeof Tooltip.Content>;\n}\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n ISidebarMenuButtonProps\n>(\n (\n {\n asChild = false,\n isActive = false,\n size = \"default\",\n tooltip,\n className,\n ...props\n },\n ref,\n ) => {\n const Comp = asChild ? Slot : \"button\";\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n const tooltipProps =\n typeof tooltip === \"string\" ? { children: tooltip } : tooltip;\n\n return (\n <Tooltip>\n <Tooltip.Trigger asChild>{button}</Tooltip.Trigger>\n <Tooltip.Content\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltipProps}\n />\n </Tooltip>\n );\n },\n);\nSidebarMenuButton.displayName = \"Sidebar.MenuButton\";\n\n/* ─── MenuAction ─── */\n\ninterface ISidebarMenuActionProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n asChild?: boolean;\n showOnHover?: boolean;\n}\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n ISidebarMenuActionProps\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n \"[&_svg]:text-foreground hover:[&_svg]:text-primary-foreground text-primary-foreground hover:bg-primary hover:outline-border outline-transparent outline-2 absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center p-0 transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-primary-foreground md:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = \"Sidebar.MenuAction\";\n\n/* ─── MenuBadge ─── */\n\nconst SidebarMenuBadge = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n \"text-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center px-1 text-xs font-sans tabular-nums select-none\",\n \"peer-hover/menu-button:text-primary-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n));\nSidebarMenuBadge.displayName = \"Sidebar.MenuBadge\";\n\n/* ─── MenuSkeleton ─── */\n\ninterface ISidebarMenuSkeletonProps\n extends React.HTMLAttributes<HTMLDivElement> {\n showIcon?: boolean;\n}\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n ISidebarMenuSkeletonProps\n>(({ className, showIcon = false, ...props }, ref) => {\n const [width] = React.useState(\n () => `${Math.floor(Math.random() * 40) + 50}%`,\n );\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton className=\"size-4\" data-sidebar=\"menu-skeleton-icon\" />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = \"Sidebar.MenuSkeleton\";\n\n/* ─── MenuSub ─── */\n\nconst SidebarMenuSub = React.forwardRef<\n HTMLUListElement,\n React.HTMLAttributes<HTMLUListElement>\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n \"border-l-foreground/50 mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l-2 px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n));\nSidebarMenuSub.displayName = \"Sidebar.MenuSub\";\n\n/* ─── MenuSubItem ─── */\n\nconst SidebarMenuSubItem = React.forwardRef<\n HTMLLIElement,\n React.LiHTMLAttributes<HTMLLIElement>\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n));\nSidebarMenuSubItem.displayName = \"Sidebar.MenuSubItem\";\n\n/* ─── MenuSubButton ─── */\n\ninterface ISidebarMenuSubButtonProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n}\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n ISidebarMenuSubButtonProps\n>(({ asChild = false, size = \"md\", isActive = false, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"text-foreground hover:bg-primary hover:outline-border hover:text-primary-foreground active:bg-primary outline-transparent outline-2 [&>svg]:text-primary-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden px-2 focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n \"data-[active=true]:bg-primary data-[active=true]:outline-border\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = \"Sidebar.MenuSubButton\";\n\n/* ─── Composite export ─── */\n\nconst SidebarComponent = Object.assign(SidebarRoot, {\n Provider: SidebarProvider,\n Trigger: SidebarTrigger,\n Rail: SidebarRail,\n Inset: SidebarInset,\n Input: SidebarInput,\n Header: SidebarHeader,\n Footer: SidebarFooter,\n Content: SidebarContent,\n Group: SidebarGroup,\n GroupLabel: SidebarGroupLabel,\n GroupAction: SidebarGroupAction,\n GroupContent: SidebarGroupContent,\n Menu: SidebarMenu,\n MenuItem: SidebarMenuItem,\n MenuButton: SidebarMenuButton,\n MenuAction: SidebarMenuAction,\n MenuBadge: SidebarMenuBadge,\n MenuSkeleton: SidebarMenuSkeleton,\n MenuSub: SidebarMenuSub,\n MenuSubItem: SidebarMenuSubItem,\n MenuSubButton: SidebarMenuSubButton,\n});\n\nexport {\n SidebarComponent as Sidebar,\n useSidebar,\n sidebarMenuButtonVariants,\n};\n","\"use client\";\n\nimport * as React from \"react\";\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(\n undefined,\n );\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener(\"change\", onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener(\"change\", onChange);\n }, []);\n\n return !!isMobile;\n}\n","import React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n// ─── Types ───\n\nexport interface CardGridProps {\n children?: React.ReactNode;\n columns?: 2 | 3 | 4;\n className?: string;\n}\n\n// ─── Component ───\n\nconst columnClasses = {\n 2: \"grid gap-4 sm:grid-cols-2\",\n 3: \"grid gap-4 sm:grid-cols-2 lg:grid-cols-3\",\n 4: \"grid gap-4 sm:grid-cols-2 lg:grid-cols-4\",\n};\n\nexport function CardGrid({ children, columns = 3, className }: CardGridProps) {\n const isEmpty = React.Children.count(children) === 0;\n\n if (isEmpty) {\n return (\n <div\n className={cn(\n \"border-2 border-dashed border-border p-12 text-center\",\n className,\n )}\n >\n <p className=\"font-head text-lg text-muted-foreground\">\n Nothing here yet\n </p>\n </div>\n );\n }\n\n return (\n <div className={cn(columnClasses[columns], className)}>\n {children}\n </div>\n );\n}\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport { AlignJustify, X, ChevronDown } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/ui/Button\";\nimport { Menu } from \"@/components/ui/Menu\";\nimport { Drawer } from \"@/components/ui/Drawer\";\nimport { Avatar } from \"@/components/ui/Avatar\";\n\n// ─── Types ───\n\nexport interface NavLink {\n label: string;\n href: string;\n}\n\nexport interface NavMenuItem {\n label: string;\n href?: string;\n onClick?: () => void;\n}\n\nexport interface NavBrand {\n name: string;\n logo?: string;\n href?: string;\n}\n\nexport type NavAuth =\n | {\n state: \"signed-out\";\n href: string;\n label?: string;\n }\n | {\n state: \"signed-in\";\n user: {\n name: string;\n avatar?: string;\n };\n menuItems: NavMenuItem[];\n };\n\nexport interface NavBarProps {\n brand: NavBrand;\n links?: NavLink[];\n auth: NavAuth;\n /** Element used for navigation links. Defaults to `\"a\"`. Pass `Link` from `next/link` (or your router's equivalent) for client-side transitions. */\n linkComponent?: React.ElementType;\n className?: string;\n}\n\n// ─── Component ───\n\nexport function NavBar({ brand, links = [], auth, linkComponent: LinkComp = \"a\", className }: NavBarProps) {\n const [drawerOpen, setDrawerOpen] = useState(false);\n\n return (\n <nav\n className={cn(\n \"sticky top-0 z-40 w-full border-b-2 bg-background\",\n className,\n )}\n >\n <div className=\"mx-auto max-w-6xl px-4\">\n <div className=\"flex h-16 items-center justify-between\">\n {/* ─── Brand ─── */}\n <LinkComp\n href={brand.href ?? \"/\"}\n className=\"shrink-0 font-head text-2xl text-foreground\"\n >\n {brand.name}\n </LinkComp>\n\n {/* ─── Desktop Links (hidden below lg) ─── */}\n {links.length > 0 && (\n <div className=\"hidden lg:flex items-center gap-6\">\n {links.map((link) => (\n <LinkComp\n key={link.href}\n href={link.href}\n className=\"font-sans text-sm hover:underline decoration-primary underline-offset-4 transition-all\"\n >\n {link.label}\n </LinkComp>\n ))}\n </div>\n )}\n\n {/* ─── Desktop Auth (hidden below lg) ─── */}\n <div className=\"hidden lg:flex items-center gap-3\">\n {auth.state === \"signed-out\" ? (\n <SignedOutActions auth={auth} linkComponent={LinkComp} />\n ) : (\n <UserMenu auth={auth} linkComponent={LinkComp} />\n )}\n </div>\n\n {/* ─── Mobile: minimal actions + hamburger (visible below lg) ─── */}\n <div className=\"flex lg:hidden items-center gap-3\">\n {/* On tablet, show auth CTA inline */}\n {auth.state === \"signed-out\" && (\n <div className=\"hidden sm:flex items-center gap-2\">\n <SignedOutActions auth={auth} linkComponent={LinkComp} />\n </div>\n )}\n\n <Button\n size=\"icon\"\n variant=\"outline\"\n className=\"p-2 shadow-sm\"\n onClick={() => setDrawerOpen(true)}\n >\n <AlignJustify className=\"h-4 w-4\" />\n </Button>\n </div>\n </div>\n </div>\n\n {/* ─── Mobile Drawer ─── */}\n <Drawer\n direction=\"right\"\n open={drawerOpen}\n onOpenChange={setDrawerOpen}\n >\n <Drawer.Content>\n <Drawer.Header className=\"flex-row items-center justify-between\">\n <Drawer.Title>{brand.name}</Drawer.Title>\n <Drawer.Close asChild>\n <Button size=\"icon\" variant=\"ghost\" className=\"p-1\">\n <X className=\"h-5 w-5\" />\n </Button>\n </Drawer.Close>\n </Drawer.Header>\n\n <div className=\"flex flex-col gap-1 px-4\">\n {links.map((link) => (\n <LinkComp\n key={link.href}\n href={link.href}\n onClick={() => setDrawerOpen(false)}\n className=\"font-sans text-base py-2 px-2 hover:bg-accent transition-colors\"\n >\n {link.label}\n </LinkComp>\n ))}\n </div>\n\n <Drawer.Footer>\n {auth.state === \"signed-out\" ? (\n <Button asChild>\n <LinkComp href={auth.href}>\n {auth.label ?? \"Get Started\"}\n </LinkComp>\n </Button>\n ) : (\n <div className=\"flex flex-col gap-1 border-t-2 pt-4\">\n <div className=\"flex items-center gap-3 px-2 pb-3\">\n <Avatar className=\"h-8 w-8\">\n {auth.user.avatar ? (\n <Avatar.Image src={auth.user.avatar} alt={auth.user.name} />\n ) : (\n <Avatar.Fallback>\n {auth.user.name.charAt(0).toUpperCase()}\n </Avatar.Fallback>\n )}\n </Avatar>\n <span className=\"font-head text-sm\">{auth.user.name}</span>\n </div>\n {auth.menuItems.map((item) =>\n item.href ? (\n <LinkComp\n key={item.label}\n href={item.href}\n onClick={() => setDrawerOpen(false)}\n className=\"font-sans text-sm py-2 px-2 hover:bg-accent transition-colors\"\n >\n {item.label}\n </LinkComp>\n ) : (\n <button\n key={item.label}\n onClick={() => {\n item.onClick?.();\n setDrawerOpen(false);\n }}\n className=\"font-sans text-sm py-2 px-2 text-left hover:bg-accent transition-colors cursor-pointer\"\n >\n {item.label}\n </button>\n ),\n )}\n </div>\n )}\n </Drawer.Footer>\n </Drawer.Content>\n </Drawer>\n </nav>\n );\n}\n\n// ─── Sub-components ───\n\nfunction SignedOutActions({\n auth,\n linkComponent: LinkComp = \"a\",\n}: {\n auth: Extract<NavAuth, { state: \"signed-out\" }>;\n linkComponent?: React.ElementType;\n}) {\n return (\n <Button asChild size=\"sm\">\n <LinkComp href={auth.href}>{auth.label ?? \"Get Started\"}</LinkComp>\n </Button>\n );\n}\n\nfunction UserMenu({\n auth,\n linkComponent: LinkComp = \"a\",\n}: {\n auth: Extract<NavAuth, { state: \"signed-in\" }>;\n linkComponent?: React.ElementType;\n}) {\n return (\n <Menu>\n <Menu.Trigger asChild>\n <button className=\"flex items-center gap-2 cursor-pointer outline-hidden\">\n <Avatar className=\"h-8 w-8\">\n {auth.user.avatar ? (\n <Avatar.Image src={auth.user.avatar} alt={auth.user.name} />\n ) : (\n <Avatar.Fallback>\n {auth.user.name.charAt(0).toUpperCase()}\n </Avatar.Fallback>\n )}\n </Avatar>\n <ChevronDown className=\"h-3 w-3\" />\n </button>\n </Menu.Trigger>\n <Menu.Content align=\"end\" className=\"min-w-40\">\n {auth.menuItems.map((item) =>\n item.href ? (\n <Menu.Item key={item.label} asChild>\n <LinkComp href={item.href}>{item.label}</LinkComp>\n </Menu.Item>\n ) : (\n <Menu.Item key={item.label} onSelect={() => item.onClick?.()}>\n {item.label}\n </Menu.Item>\n ),\n )}\n </Menu.Content>\n </Menu>\n );\n}\n","import React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n// ─── Types ───\n\nexport interface SimplePageProps {\n title: string;\n subtitle?: string;\n actions?: React.ReactNode;\n children?: React.ReactNode;\n className?: string;\n}\n\n// ─── Component ───\n\nexport function SimplePage({\n title,\n subtitle,\n actions,\n children,\n className,\n}: SimplePageProps) {\n return (\n <div className={cn(\"min-h-screen\", className)}>\n <header className=\"border-b-2 bg-background\">\n <div className=\"mx-auto max-w-6xl px-4 py-8\">\n <div className=\"flex items-start justify-between gap-4\">\n <div>\n <h1 className=\"font-head text-4xl mb-2\">{title}</h1>\n {subtitle && (\n <p className=\"font-sans text-lg text-muted-foreground max-w-xl\">\n {subtitle}\n </p>\n )}\n </div>\n {actions && (\n <div className=\"shrink-0 flex items-center gap-2\">{actions}</div>\n )}\n </div>\n </div>\n </header>\n <main className=\"mx-auto max-w-6xl px-4 py-12 flex flex-col gap-12\">\n {children}\n </main>\n </div>\n );\n}\n","\"use client\";\n\nimport React, { useEffect, useState } from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport interface SectionNavItem {\n label: string;\n id: string;\n}\n\nexport interface ISectionNavProps {\n items: SectionNavItem[];\n className?: string;\n /** Offset from top in pixels (e.g. to stack below a sticky header) */\n offsetTop?: number;\n}\n\nexport function SectionNav({ items, className, offsetTop }: ISectionNavProps) {\n const [activeId, setActiveId] = useState<string>(items[0]?.id ?? \"\");\n\n useEffect(() => {\n const observers: IntersectionObserver[] = [];\n\n for (const item of items) {\n const el = document.getElementById(item.id);\n if (!el) continue;\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n setActiveId(item.id);\n }\n },\n { rootMargin: \"-80px 0px -60% 0px\", threshold: 0 },\n );\n\n observer.observe(el);\n observers.push(observer);\n }\n\n return () => {\n for (const observer of observers) {\n observer.disconnect();\n }\n };\n }, [items]);\n\n return (\n <nav\n aria-label=\"Section navigation\"\n className={cn(\n \"sticky z-30 bg-background text-foreground border-b-[4px] border-border\",\n className,\n )}\n style={{ top: offsetTop != null ? `${offsetTop}px` : 0 }}\n >\n <div className=\"mx-auto max-w-6xl px-4 flex items-center gap-1 overflow-x-auto\">\n {items.map((item) => (\n <a\n key={item.id}\n href={`#${item.id}`}\n aria-current={activeId === item.id ? \"location\" : undefined}\n className={cn(\n \"font-head text-sm px-4 py-3 shrink-0 transition-colors duration-200\",\n activeId === item.id\n ? \"bg-primary text-primary-foreground\"\n : \"text-muted-foreground hover:bg-primary hover:text-primary-foreground\",\n )}\n >\n {item.label}\n </a>\n ))}\n </div>\n </nav>\n );\n}\n","\"use client\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Drawer } from \"@/components/ui/Drawer\";\nimport { Button } from \"@/components/ui/Button\";\nimport { PanelRight } from \"lucide-react\";\nimport React, { useState } from \"react\";\n\ninterface TwoColumnLayoutProps {\n children: React.ReactNode;\n className?: string;\n drawerTitle?: string;\n}\n\nfunction TwoColumnLayout({\n children,\n className,\n drawerTitle = \"Details\",\n}: TwoColumnLayoutProps) {\n const [drawerOpen, setDrawerOpen] = useState(false);\n\n let leftContent: React.ReactNode = null;\n let rightContent: React.ReactNode = null;\n\n React.Children.forEach(children, (child) => {\n if (!React.isValidElement(child)) return;\n const type = child.type as { displayName?: string };\n if (type.displayName === \"TwoColumnLayout.Left\") leftContent = child;\n if (type.displayName === \"TwoColumnLayout.Right\") rightContent = child;\n });\n\n return (\n <div className={cn(\"flex flex-col md:flex-row gap-0 min-h-0\", className)}>\n {/* Left column — always visible */}\n <div className=\"flex-1 min-w-0 md:border-r-2\">{leftContent}</div>\n\n {/* Right column — visible on md+, hidden on mobile */}\n <div className=\"hidden md:block flex-1 min-w-0\">{rightContent}</div>\n\n {/* Mobile drawer trigger */}\n {rightContent && (\n <div className=\"fixed bottom-6 right-6 md:hidden z-40\">\n <Button\n variant=\"default\"\n size=\"icon\"\n onClick={() => setDrawerOpen(true)}\n aria-label=\"Open right panel\"\n >\n <PanelRight className=\"size-5\" />\n </Button>\n </div>\n )}\n\n {/* Mobile drawer */}\n <Drawer open={drawerOpen} onOpenChange={setDrawerOpen} direction=\"right\">\n <Drawer.Content>\n <Drawer.Header>\n <Drawer.Title>{drawerTitle}</Drawer.Title>\n </Drawer.Header>\n <div className=\"flex-1 overflow-y-auto p-4\">{rightContent}</div>\n </Drawer.Content>\n </Drawer>\n </div>\n );\n}\n\ninterface TwoColumnPanelProps {\n children: React.ReactNode;\n className?: string;\n}\n\nfunction TwoColumnLeft({ children, className }: TwoColumnPanelProps) {\n return <div className={cn(\"h-full\", className)}>{children}</div>;\n}\nTwoColumnLeft.displayName = \"TwoColumnLayout.Left\";\n\nfunction TwoColumnRight({ children, className }: TwoColumnPanelProps) {\n return <div className={cn(\"h-full\", className)}>{children}</div>;\n}\nTwoColumnRight.displayName = \"TwoColumnLayout.Right\";\n\nconst TwoColumnLayoutComponent = Object.assign(TwoColumnLayout, {\n Left: TwoColumnLeft,\n Right: TwoColumnRight,\n});\n\nexport { TwoColumnLayoutComponent as TwoColumnLayout };\n","\"use client\";\n\nimport { useSyncExternalStore } from \"react\";\nimport { useTheme } from \"@/components/ThemeProvider\";\nimport { IconButton } from \"@/components/ui/IconButton\";\nimport { cn } from \"@/lib/utils\";\nimport type { VariantProps } from \"class-variance-authority\";\nimport type { iconButtonVariants } from \"@/components/ui/IconButton\";\n\nconst subscribe = () => () => {};\nconst getSnapshot = () => true;\nconst getServerSnapshot = () => false;\n\nexport interface ThemeToggleProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"children\">,\n VariantProps<typeof iconButtonVariants> {}\n\nexport function ThemeToggle({\n variant = \"ghost\",\n size = \"md\",\n className,\n ...props\n}: ThemeToggleProps) {\n const { resolvedTheme, setTheme } = useTheme();\n const mounted = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n\n const opposite = resolvedTheme === \"dark\" ? \"light\" : \"dark\";\n\n return (\n <IconButton\n variant={variant}\n size={size}\n className={cn(className)}\n onClick={() => setTheme(opposite)}\n aria-label={mounted ? `Switch to ${opposite} mode` : \"Toggle theme\"}\n {...props}\n >\n {/* Sun icon — shown in dark mode */}\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"hidden dark:block\"\n aria-hidden=\"true\"\n >\n <circle cx={12} cy={12} r={5} />\n <line x1={12} y1={1} x2={12} y2={3} />\n <line x1={12} y1={21} x2={12} y2={23} />\n <line x1={4.22} y1={4.22} x2={5.64} y2={5.64} />\n <line x1={18.36} y1={18.36} x2={19.78} y2={19.78} />\n <line x1={1} y1={12} x2={3} y2={12} />\n <line x1={21} y1={12} x2={23} y2={12} />\n <line x1={4.22} y1={19.78} x2={5.64} y2={18.36} />\n <line x1={18.36} y1={5.64} x2={19.78} y2={4.22} />\n </svg>\n {/* Moon icon — shown in light mode */}\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"block dark:hidden\"\n aria-hidden=\"true\"\n >\n <path d=\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\" />\n </svg>\n </IconButton>\n );\n}\n","\"use client\";\n\nimport { useSyncExternalStore } from \"react\";\nimport { useTheme, type ColorTheme } from \"@/components/ThemeProvider\";\nimport { DropdownMenu } from \"@/components/ui/DropdownMenu\";\nimport { IconButton } from \"@/components/ui/IconButton\";\nimport type { VariantProps } from \"class-variance-authority\";\nimport type { iconButtonVariants } from \"@/components/ui/IconButton\";\n\nconst subscribe = () => () => {};\nconst getSnapshot = () => true;\nconst getServerSnapshot = () => false;\n\nconst COLOR_SWATCHES: Record<ColorTheme, string> = {\n blue: \"#5294FF\",\n plum: \"#B254CF\",\n \"plum-trio\": \"#B254CF\",\n};\n\nconst COLOR_LABELS: Record<ColorTheme, string> = {\n blue: \"Blue\",\n plum: \"Plum\",\n \"plum-trio\": \"Plum Trio\",\n};\n\nexport interface ColorThemeToggleProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"children\">,\n VariantProps<typeof iconButtonVariants> {}\n\nexport function ColorThemeToggle({\n variant = \"ghost\",\n size = \"md\",\n className,\n ...props\n}: ColorThemeToggleProps) {\n const { colorTheme, setColorTheme, colorThemes } = useTheme();\n const mounted = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n\n return (\n <DropdownMenu>\n <DropdownMenu.Trigger asChild>\n <IconButton\n variant={variant}\n size={size}\n className={className}\n aria-label={mounted ? `Color theme: ${colorTheme}` : \"Color theme\"}\n {...props}\n >\n <span\n className=\"block w-4 h-4 border-2 border-border\"\n style={{\n backgroundColor: mounted ? COLOR_SWATCHES[colorTheme] : undefined,\n borderRadius: \"var(--radius, 0)\",\n }}\n />\n </IconButton>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"end\">\n <DropdownMenu.Label>Color Theme</DropdownMenu.Label>\n <DropdownMenu.Separator />\n <DropdownMenu.RadioGroup\n value={colorTheme}\n onValueChange={(v) => setColorTheme(v as ColorTheme)}\n >\n {colorThemes.map((theme) => (\n <DropdownMenu.RadioItem key={theme} value={theme}>\n <span\n className=\"inline-block w-3 h-3 border border-border mr-1\"\n style={{\n backgroundColor: COLOR_SWATCHES[theme],\n borderRadius: \"var(--radius, 0)\",\n }}\n />\n {COLOR_LABELS[theme]}\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n","export interface ThemeConfig {\n /** Primary brand color and its foreground */\n primary?: string;\n primaryForeground?: string;\n /** Secondary color */\n secondary?: string;\n secondaryForeground?: string;\n /** Background and foreground */\n background?: string;\n foreground?: string;\n /** Card surface */\n card?: string;\n cardForeground?: string;\n /** Muted/subtle surface */\n muted?: string;\n mutedForeground?: string;\n /** Accent color */\n accent?: string;\n accentForeground?: string;\n /** Destructive/error */\n destructive?: string;\n destructiveForeground?: string;\n /** Success */\n success?: string;\n successForeground?: string;\n /** Warning */\n warning?: string;\n warningForeground?: string;\n /** Border color */\n border?: string;\n /** Input border */\n input?: string;\n /** Focus ring */\n ring?: string;\n /** Default border radius override */\n radius?: string;\n}\n\n/**\n * Generate a CSS class string with custom property overrides for a named theme.\n * Apply the returned CSS to your stylesheet, then add the class name to a container element.\n *\n * @example\n * const css = createTheme(\"brand\", { primary: \"#E63946\", background: \"#F1FAEE\" });\n * // Returns: \".theme-brand { --primary: #E63946; --background: #F1FAEE; }\"\n */\nexport function createTheme(name: string, config: ThemeConfig): string {\n const declarations: string[] = [];\n\n const tokenMap: Record<keyof ThemeConfig, string> = {\n primary: \"--primary\",\n primaryForeground: \"--primary-foreground\",\n secondary: \"--secondary\",\n secondaryForeground: \"--secondary-foreground\",\n background: \"--background\",\n foreground: \"--foreground\",\n card: \"--card\",\n cardForeground: \"--card-foreground\",\n muted: \"--muted\",\n mutedForeground: \"--muted-foreground\",\n accent: \"--accent\",\n accentForeground: \"--accent-foreground\",\n destructive: \"--destructive\",\n destructiveForeground: \"--destructive-foreground\",\n success: \"--success\",\n successForeground: \"--success-foreground\",\n warning: \"--warning\",\n warningForeground: \"--warning-foreground\",\n border: \"--border\",\n input: \"--input\",\n ring: \"--ring\",\n radius: \"--radius\",\n };\n\n for (const [key, value] of Object.entries(config)) {\n const token = tokenMap[key as keyof ThemeConfig];\n if (token && value) {\n declarations.push(` ${token}: ${value};`);\n }\n }\n\n if (declarations.length === 0) return \"\";\n\n return `.theme-${name} {\\n${declarations.join(\"\\n\")}\\n}`;\n}\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n// ─── Types ───\n\nexport interface HeroProps {\n badge?: React.ReactNode;\n title: React.ReactNode;\n subtitle?: React.ReactNode;\n actions?: React.ReactNode;\n children?: React.ReactNode;\n className?: string;\n align?: \"left\" | \"center\";\n}\n\n// ─── Component ───\n\nexport function Hero({\n badge,\n title,\n subtitle,\n actions,\n children,\n className,\n align = \"center\",\n}: HeroProps) {\n return (\n <section\n className={cn(\n \"w-full border-b-2 bg-background\",\n className,\n )}\n >\n <div\n className={cn(\n \"mx-auto max-w-6xl px-4 py-20 lg:py-28 flex flex-col gap-6\",\n align === \"center\" && \"items-center text-center\",\n align === \"left\" && \"items-start text-left\",\n )}\n >\n {badge && <div>{badge}</div>}\n\n <h1 className=\"font-head text-4xl sm:text-5xl lg:text-6xl max-w-4xl\">\n {title}\n </h1>\n\n {subtitle && (\n <p className=\"font-sans text-lg lg:text-xl text-muted-foreground max-w-2xl\">\n {subtitle}\n </p>\n )}\n\n {actions && (\n <div className=\"flex flex-wrap gap-3 mt-2\">{actions}</div>\n )}\n\n {children}\n </div>\n </section>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { cva, VariantProps } from \"class-variance-authority\";\n\n// ─── Variants ───\n\nexport const sectionVariants = cva(\"w-full py-16 lg:py-24 scroll-mt-[120px]\", {\n variants: {\n background: {\n default: \"bg-background\",\n muted: \"bg-muted/30\",\n card: \"bg-card border-y-2\",\n primary: \"bg-primary text-primary-foreground\",\n },\n },\n defaultVariants: {\n background: \"default\",\n },\n});\n\n// ─── Types ───\n\nexport interface SectionProps\n extends Omit<React.HTMLAttributes<HTMLElement>, \"title\">,\n VariantProps<typeof sectionVariants> {\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n align?: \"left\" | \"center\";\n}\n\n// ─── Component ───\n\nexport function Section({\n title,\n subtitle,\n children,\n className,\n background = \"default\",\n align = \"center\",\n ...props\n}: SectionProps) {\n return (\n <section\n className={cn(sectionVariants({ background }), className)}\n {...props}\n >\n <div className=\"mx-auto max-w-6xl px-4\">\n {(title || subtitle) && (\n <div\n className={cn(\n \"mb-12\",\n align === \"center\" && \"text-center\",\n align === \"left\" && \"text-left\",\n )}\n >\n {title && (\n <h2 className=\"font-head text-3xl lg:text-4xl mb-3\">{title}</h2>\n )}\n {subtitle && (\n <p className=\"font-sans text-lg text-muted-foreground max-w-2xl mx-auto\">\n {subtitle}\n </p>\n )}\n </div>\n )}\n {children}\n </div>\n </section>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n// ─── Types ───\n\nexport interface FooterLinkGroup {\n title: string;\n links: { label: string; href: string }[];\n}\n\nexport interface FooterProps {\n brand: React.ReactNode;\n tagline?: string;\n groups?: FooterLinkGroup[];\n bottom?: React.ReactNode;\n className?: string;\n}\n\n// ─── Component ───\n\nexport function Footer({\n brand,\n tagline,\n groups = [],\n bottom,\n className,\n}: FooterProps) {\n return (\n <footer className={cn(\"w-full border-t-2 bg-background\", className)}>\n <div className=\"mx-auto max-w-6xl px-4 py-12 lg:py-16\">\n <div className=\"grid gap-8 lg:grid-cols-[1.5fr_repeat(auto-fit,1fr)]\">\n {/* Brand column */}\n <div className=\"max-w-xs\">\n <div className=\"font-head text-2xl mb-2\">{brand}</div>\n {tagline && (\n <p className=\"font-sans text-sm text-muted-foreground\">\n {tagline}\n </p>\n )}\n </div>\n\n {/* Link groups */}\n {groups.length > 0 && (\n <div className=\"grid gap-8 sm:grid-cols-2 lg:grid-cols-3 col-span-full lg:col-span-1\">\n {groups.map((group) => (\n <div key={group.title}>\n <h4 className=\"font-head text-sm uppercase mb-3\">\n {group.title}\n </h4>\n <ul className=\"flex flex-col gap-2\">\n {group.links.map((link) => (\n <li key={link.label}>\n <a\n href={link.href}\n className=\"font-sans text-sm text-muted-foreground hover:text-foreground transition-colors\"\n >\n {link.label}\n </a>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n )}\n </div>\n\n {/* Bottom bar */}\n {bottom && (\n <div className=\"mt-12 pt-6 border-t-2 font-sans text-sm text-muted-foreground\">\n {bottom}\n </div>\n )}\n </div>\n </footer>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n// ─── Types ───\n\nexport interface PricingFeature {\n text: string;\n included: boolean;\n}\n\nexport interface PricingTier {\n name: string;\n price: React.ReactNode;\n description?: string;\n features: PricingFeature[];\n cta: React.ReactNode;\n highlighted?: boolean;\n badge?: React.ReactNode;\n}\n\nexport interface PricingTableProps {\n tiers: PricingTier[];\n className?: string;\n}\n\n// ─── Component ───\n\nexport function PricingTable({ tiers, className }: PricingTableProps) {\n return (\n <div\n className={cn(\n \"grid gap-6 sm:grid-cols-2 lg:grid-cols-3\",\n className,\n )}\n >\n {tiers.map((tier) => (\n <div\n key={tier.name}\n className={cn(\n \"border-2 flex flex-col bg-card\",\n tier.highlighted\n ? \"shadow-lg border-primary ring-2 ring-primary scale-[1.02]\"\n : \"shadow-md\",\n )}\n >\n {/* Header */}\n <div className=\"p-6 border-b-2\">\n <div className=\"flex items-center justify-between mb-2\">\n <h3 className=\"font-head text-xl\">{tier.name}</h3>\n {tier.badge}\n </div>\n <div className=\"font-head text-4xl mb-1\">{tier.price}</div>\n {tier.description && (\n <p className=\"font-sans text-sm text-muted-foreground\">\n {tier.description}\n </p>\n )}\n </div>\n\n {/* Features */}\n <div className=\"p-6 flex-1\">\n <ul className=\"flex flex-col gap-3\">\n {tier.features.map((feature) => (\n <li\n key={feature.text}\n className={cn(\n \"font-sans text-sm flex items-start gap-2\",\n !feature.included && \"text-muted-foreground line-through\",\n )}\n >\n <span\n className={cn(\n \"font-head text-xs mt-0.5 shrink-0\",\n feature.included\n ? \"text-primary-foreground\"\n : \"text-muted-foreground\",\n )}\n >\n {feature.included ? \"+\" : \"-\"}\n </span>\n {feature.text}\n </li>\n ))}\n </ul>\n </div>\n\n {/* CTA */}\n <div className=\"p-6 border-t-2\">{tier.cta}</div>\n </div>\n ))}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n// ─── Types ───\n\nexport interface Feature {\n icon?: React.ReactNode;\n title: string;\n description: string;\n}\n\nexport interface FeatureSectionProps {\n features: Feature[];\n columns?: 2 | 3 | 4;\n className?: string;\n}\n\n// ─── Component ───\n\nconst columnClasses = {\n 2: \"grid gap-6 sm:grid-cols-2\",\n 3: \"grid gap-6 sm:grid-cols-2 lg:grid-cols-3\",\n 4: \"grid gap-6 sm:grid-cols-2 lg:grid-cols-4\",\n};\n\nexport function FeatureSection({\n features,\n columns = 3,\n className,\n}: FeatureSectionProps) {\n return (\n <div className={cn(columnClasses[columns], className)}>\n {features.map((feature) => (\n <div\n key={feature.title}\n className=\"border-2 p-6 bg-card shadow-md\"\n >\n {feature.icon && (\n <div className=\"mb-4 inline-flex items-center justify-center h-12 w-12 border-2 bg-primary text-primary-foreground shadow-sm\">\n {feature.icon}\n </div>\n )}\n <h3 className=\"font-head text-lg mb-2\">{feature.title}</h3>\n <p className=\"font-sans text-sm text-muted-foreground\">\n {feature.description}\n </p>\n </div>\n ))}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n// ─── Types ───\n\nexport interface TestimonialItem {\n quote: string;\n name: string;\n role?: string;\n company?: string;\n avatar?: React.ReactNode;\n}\n\nexport interface TestimonialProps {\n testimonials: TestimonialItem[];\n columns?: 1 | 2 | 3;\n className?: string;\n}\n\n// ─── Component ───\n\nconst columnClasses = {\n 1: \"grid gap-6 max-w-2xl mx-auto\",\n 2: \"grid gap-6 sm:grid-cols-2\",\n 3: \"grid gap-6 sm:grid-cols-2 lg:grid-cols-3\",\n};\n\nexport function Testimonial({\n testimonials,\n columns = 3,\n className,\n}: TestimonialProps) {\n return (\n <div className={cn(columnClasses[columns], className)}>\n {testimonials.map((t) => (\n <div\n key={t.name}\n className=\"border-2 p-6 bg-card shadow-md flex flex-col\"\n >\n <blockquote className=\"font-sans text-sm leading-relaxed flex-1 mb-6\">\n &ldquo;{t.quote}&rdquo;\n </blockquote>\n <div className=\"flex items-center gap-3 border-t-2 pt-4\">\n {t.avatar && (\n <div className=\"h-10 w-10 shrink-0 border-2 overflow-hidden\">\n {t.avatar}\n </div>\n )}\n <div>\n <p className=\"font-head text-sm\">{t.name}</p>\n {(t.role || t.company) && (\n <p className=\"font-sans text-xs text-muted-foreground\">\n {[t.role, t.company].filter(Boolean).join(\", \")}\n </p>\n )}\n </div>\n </div>\n </div>\n ))}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n// ─── Types ───\n\nexport interface LogoCloudProps {\n children: React.ReactNode;\n className?: string;\n}\n\n// ─── Component ───\n\nexport function LogoCloud({ children, className }: LogoCloudProps) {\n return (\n <div\n className={cn(\n \"flex flex-wrap items-center justify-center gap-8 lg:gap-12\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n// ─── Types ───\n\nexport interface CTABannerProps {\n title: React.ReactNode;\n subtitle?: React.ReactNode;\n actions?: React.ReactNode;\n className?: string;\n}\n\n// ─── Component ───\n\nexport function CTABanner({\n title,\n subtitle,\n actions,\n className,\n}: CTABannerProps) {\n return (\n <section\n className={cn(\n \"w-full border-y-2 bg-primary text-primary-foreground\",\n className,\n )}\n >\n <div className=\"mx-auto max-w-6xl px-4 py-16 lg:py-20 flex flex-col items-center text-center gap-4\">\n <h2 className=\"font-head text-3xl lg:text-4xl\">{title}</h2>\n {subtitle && (\n <p className=\"font-sans text-lg max-w-xl\">{subtitle}</p>\n )}\n {actions && (\n <div className=\"flex flex-wrap gap-3 mt-2\">{actions}</div>\n )}\n </div>\n </section>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { ChevronDown } from \"lucide-react\";\n\n// ─── Types ───\n\nexport interface FAQItem {\n question: string;\n answer: React.ReactNode;\n}\n\nexport interface FAQProps {\n items: FAQItem[];\n className?: string;\n}\n\n// ─── Component ───\n\nexport function FAQ({ items, className }: FAQProps) {\n const [openIndex, setOpenIndex] = React.useState<number | null>(null);\n\n return (\n <div className={cn(\"w-full max-w-3xl mx-auto\", className)}>\n {items.map((item, i) => {\n const isOpen = openIndex === i;\n return (\n <div key={i} className=\"border-2 border-b-0 last:border-b-2\">\n <button\n onClick={() => setOpenIndex(isOpen ? null : i)}\n className=\"w-full flex items-center justify-between p-4 text-left cursor-pointer hover:bg-accent/30 transition-colors\"\n >\n <span className=\"font-head text-sm pr-4\">{item.question}</span>\n <ChevronDown\n className={cn(\n \"h-4 w-4 shrink-0 transition-transform duration-200\",\n isOpen && \"rotate-180\",\n )}\n />\n </button>\n {isOpen && (\n <div className=\"px-4 pb-4 font-sans text-sm text-muted-foreground\">\n {item.answer}\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n// ─── Types ───\n\nexport interface Stat {\n value: React.ReactNode;\n label: string;\n}\n\nexport interface StatsBarProps {\n stats: Stat[];\n className?: string;\n}\n\n// ─── Component ───\n\nexport function StatsBar({ stats, className }: StatsBarProps) {\n return (\n <div\n className={cn(\n \"w-full border-y-2 bg-card\",\n className,\n )}\n >\n <div className=\"mx-auto max-w-6xl px-4 py-10 grid grid-cols-2 lg:grid-cols-4 gap-8\">\n {stats.map((stat) => (\n <div key={stat.label} className=\"text-center\">\n <div className=\"font-head text-3xl lg:text-4xl mb-1\">\n {stat.value}\n </div>\n <div className=\"font-sans text-sm text-muted-foreground uppercase\">\n {stat.label}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { X } from \"lucide-react\";\n\n// ─── Types ───\n\nexport interface AnnouncementBannerProps {\n children: React.ReactNode;\n dismissible?: boolean;\n className?: string;\n}\n\n// ─── Component ───\n\nexport function AnnouncementBanner({\n children,\n dismissible = true,\n className,\n}: AnnouncementBannerProps) {\n const [visible, setVisible] = React.useState(true);\n\n React.useEffect(() => {\n if (sessionStorage.getItem(\"announcement-dismissed\") === \"true\") {\n setVisible(false);\n }\n }, []);\n\n const handleDismiss = () => {\n setVisible(false);\n sessionStorage.setItem(\"announcement-dismissed\", \"true\");\n };\n\n if (!visible) return null;\n\n return (\n <div\n className={cn(\n \"w-full bg-primary text-primary-foreground border-b-2\",\n className,\n )}\n >\n <div className=\"mx-auto max-w-6xl px-4 py-2 flex items-center justify-center gap-3\">\n <p className=\"font-sans text-sm text-center flex-1\">{children}</p>\n {dismissible && (\n <button\n onClick={handleDismiss}\n className=\"shrink-0 p-2 min-w-[44px] min-h-[44px] inline-flex items-center justify-center hover:bg-foreground/10 transition-colors cursor-pointer\"\n aria-label=\"Dismiss\"\n >\n <X className=\"h-4 w-4\" />\n </button>\n )}\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n// ─── Types ───\n\nexport interface NewsletterSignupProps {\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n inputPlaceholder?: string;\n buttonLabel?: React.ReactNode;\n className?: string;\n}\n\n// ─── Component ───\n\nexport function NewsletterSignup({\n title = \"Stay in the loop\",\n subtitle,\n inputPlaceholder = \"you@example.com\",\n buttonLabel = \"Subscribe\",\n className,\n}: NewsletterSignupProps) {\n return (\n <div className={cn(\"w-full max-w-md mx-auto\", className)}>\n {title && (\n <h3 className=\"font-head text-xl mb-2 text-center\">{title}</h3>\n )}\n {subtitle && (\n <p className=\"font-sans text-sm text-muted-foreground text-center mb-4\">\n {subtitle}\n </p>\n )}\n <form\n onSubmit={(e) => e.preventDefault()}\n className=\"flex gap-2\"\n >\n <input\n type=\"email\"\n placeholder={inputPlaceholder}\n className=\"flex-1 h-10 border-2 bg-background px-4 font-sans text-sm shadow-md transition placeholder:text-muted-foreground focus:outline-none focus:shadow-xs\"\n required\n />\n <button\n type=\"submit\"\n className=\"font-head px-4 h-10 border-2 bg-primary text-primary-foreground shadow-md hover:shadow active:shadow-none transition-all hover:translate-y-0.5 active:translate-y-1 cursor-pointer text-sm\"\n >\n {buttonLabel}\n </button>\n </form>\n </div>\n );\n}\n"],"mappings":"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","names":["clsx","React","import_class_variance_authority","import_react","import_react_slot","import_jsx_runtime","React","React","import_class_variance_authority","import_react_slot","import_jsx_runtime","import_react","import_jsx_runtime","Trigger","Content","React","import_jsx_runtime","DrawerPrimitive","React","import_class_variance_authority","import_jsx_runtime","DropdownMenu","import_react","import_jsx_runtime","React","React","import_jsx_runtime","import_react","import_jsx_runtime","React","import_react","import_jsx_runtime","React","React","import_class_variance_authority","import_lucide_react","import_jsx_runtime","React","import_class_variance_authority","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","import_jsx_runtime","React","import_jsx_runtime","import_class_variance_authority","import_react","import_react_slot","import_jsx_runtime","React","React","import_class_variance_authority","import_jsx_runtime","import_class_variance_authority","import_react","import_react_slot","import_jsx_runtime","React","React","import_class_variance_authority","import_jsx_runtime","React","import_class_variance_authority","import_lucide_react","import_jsx_runtime","React","import_class_variance_authority","import_jsx_runtime","React","import_class_variance_authority","import_jsx_runtime","React","import_class_variance_authority","import_jsx_runtime","React","import_class_variance_authority","import_jsx_runtime","React","import_class_variance_authority","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","CollapsibleTrigger","CollapsibleContent","React","import_jsx_runtime","React","import_jsx_runtime","import_lucide_react","React","import_jsx_runtime","import_lucide_react","React","import_jsx_runtime","React","import_jsx_runtime","import_lucide_react","React","import_jsx_runtime","React","import_class_variance_authority","import_lucide_react","import_jsx_runtime","import_lucide_react","import_jsx_runtime","React","import_jsx_runtime","config","React","import_react","import_jsx_runtime","import_jsx_runtime","SonnerToaster","React","import_jsx_runtime","React","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","_a","React","import_jsx_runtime","React","import_react_slot","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","_a","_b","Icon","React","import_lucide_react","import_jsx_runtime","useEmblaCarousel","React","import_lucide_react","import_jsx_runtime","React","import_class_variance_authority","import_lucide_react","import_jsx_runtime","React","import_react_slot","import_jsx_runtime","FormField","_a","React","import_lucide_react","import_jsx_runtime","CommandPrimitive","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","_a","React","import_react_slot","import_class_variance_authority","import_lucide_react","React","import_jsx_runtime","open","import_react","import_jsx_runtime","React","import_react","import_lucide_react","import_jsx_runtime","_a","import_jsx_runtime","import_react","import_jsx_runtime","import_lucide_react","import_react","import_jsx_runtime","React","import_react","import_jsx_runtime","import_react","import_jsx_runtime","subscribe","getSnapshot","getServerSnapshot","import_jsx_runtime","import_class_variance_authority","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","columnClasses","import_jsx_runtime","columnClasses","import_jsx_runtime","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../src/components/ui/accordion.tsx","../src/components/ui/alert.tsx","../src/components/ui/button.tsx","../src/components/ui/alert-dialog.tsx","../src/components/ui/aspect-ratio.tsx","../src/components/ui/avatar.tsx","../src/components/ui/badge.tsx","../src/components/ui/breadcrumb.tsx","../src/components/ui/button-group.tsx","../src/components/ui/calendar.tsx","../src/components/ui/carousel.tsx","../src/components/ui/chart.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/cluster.tsx","../src/components/ui/collapsible.tsx","../src/components/ui/dialog.tsx","../src/components/ui/command.tsx","../src/components/ui/popover.tsx","../src/components/ui/combobox.tsx","../src/components/ui/context-menu.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/ui/table.tsx","../src/components/ui/data-table.tsx","../src/components/ui/date-picker.tsx","../src/components/ui/direction.tsx","../src/components/ui/divider.tsx","../src/components/ui/drawer.tsx","../src/components/ui/empty.tsx","../src/components/ui/label.tsx","../src/components/ui/field.tsx","../src/components/ui/fieldset.tsx","../src/components/ui/form.tsx","../src/components/ui/form-actions.tsx","../src/components/ui/grid.tsx","../src/components/ui/form-section.tsx","../src/components/ui/hover-card.tsx","../src/components/ui/input.tsx","../src/components/ui/input-group.tsx","../src/components/ui/input-otp.tsx","../src/components/ui/item.tsx","../src/components/ui/kbd.tsx","../src/components/ui/menubar.tsx","../src/components/ui/native-select.tsx","../src/components/ui/navigation-menu.tsx","../src/components/ui/pagination.tsx","../src/components/ui/progress.tsx","../src/components/ui/radio-group.tsx","../src/components/ui/resizable.tsx","../src/components/ui/scroll-area.tsx","../src/components/ui/search-field.tsx","../src/components/ui/select.tsx","../src/components/ui/separator.tsx","../src/components/ui/sheet.tsx","../src/hooks/use-mobile.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/tooltip.tsx","../src/components/ui/sidebar.tsx","../src/components/ui/slider.tsx","../src/components/ui/sonner.tsx","../src/components/ui/spacer.tsx","../src/components/ui/spinner.tsx","../src/components/ui/switch.tsx","../src/components/ui/textarea.tsx","../src/components/ui/toggle.tsx","../src/components/ui/toggle-group.tsx","../src/components/ui/typography.tsx"],"names":["jsx","cva","jsxs","Slot","React","_a","_b","className","props","React2","api","React4","config","CollapsibleTrigger","CollapsibleContent","CommandPrimitive","React5","X","Check","ChevronRight","Circle","React6","RadixDirectionProvider","useRadixDirection","DrawerPrimitive","Label","React7","React8","gapMap","React9","Item","React10","ChevronDown","MoreHorizontal","RadioGroup","Group","Separator","Search","SheetPrimitive","React11","Tooltip","React12","open","Sonner","React13"],"mappings":"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","file":"index.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\"\nimport { ChevronDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root accordion container that manages expand/collapse state for its items. */\nconst Accordion = AccordionPrimitive.Root\n\n/** A single collapsible section within an Accordion. */\nfunction AccordionItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n ref={ref}\n data-slot=\"accordion-item\"\n className={cn(\"border-b-2\", className)}\n {...props}\n />\n )\n}\n\n/** Clickable header that toggles the visibility of its associated AccordionContent. */\nfunction AccordionTrigger({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n data-slot=\"accordion-trigger\"\n className={cn(\n \"flex flex-1 items-center justify-between py-4 font-medium transition-all active:translate-y-[1.5px] transition-transform hover:underline [&[data-state=open]>svg]:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDown className=\"h-4 w-4 shrink-0 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\n/** Animated collapsible content panel revealed by its sibling AccordionTrigger. */\nfunction AccordionContent({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n ref={ref}\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Alert style variants (default, destructive, success, warning). Use with cn(alertVariants({...})) for non-div elements. */\nconst alertVariants = cva(\n \"relative w-full rounded-lg border-2 p-4 [&>svg~*]:ps-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:start-4 [&>svg]:top-4 [&>svg]:text-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-status-error bg-status-error-surface text-status-error-text [&>svg]:text-status-error-text\",\n success:\n \"border-status-success bg-status-success-surface text-status-success-text [&>svg]:text-status-success-text\",\n warning:\n \"border-status-warning bg-status-warning-surface text-status-warning-text [&>svg]:text-status-warning-text\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n/**\n * Displays a callout message to attract user attention.\n *\n * @example\n * <Alert variant=\"destructive\"><AlertTitle>Error</AlertTitle></Alert>\n *\n * @prop variant - Visual style: \"default\" | \"destructive\" | \"success\" | \"warning\"\n */\nfunction Alert({\n className,\n variant,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n ref={ref}\n role=\"alert\"\n data-slot=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\n/** Heading rendered inside an Alert. */\nfunction AlertTitle({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"h5\">) {\n return (\n <h5\n ref={ref}\n data-slot=\"alert-title\"\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n )\n}\n\n/** Body text rendered inside an Alert. */\nfunction AlertDescription({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"alert-description\"\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n )\n}\n\nexport { Alert, AlertTitle, AlertDescription }\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Button style variants (variant + size). Use with cn(buttonVariants({...})) for non-button elements. */\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors active:translate-y-[1.5px] motion-reduce:active:translate-y-0 transition-transform motion-reduce:transition-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground border-2 border-transparent hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground border-2 border-transparent hover:bg-destructive/90\",\n outline:\n \"border-2 border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground border-2 border-transparent hover:bg-secondary/80\",\n amber:\n \"bg-amber-500 text-warm-900 border-2 border-amber-600 hover:bg-amber-400 dark:bg-amber-400 dark:text-warm-950 dark:border-amber-500 dark:hover:bg-amber-300\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\n/** Props accepted by the Button component. */\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\n/**\n * Interactive button with multiple visual variants and sizes.\n *\n * @example\n * <Button variant=\"outline\" size=\"sm\">Click me</Button>\n *\n * @prop variant - Visual style: \"default\" | \"destructive\" | \"outline\" | \"secondary\" | \"amber\" | \"ghost\" | \"link\"\n * @prop size - Dimensions: \"default\" | \"sm\" | \"lg\" | \"icon\"\n * @prop asChild - Merge props onto child element instead of rendering a button\n */\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ref,\n ...props\n}: ButtonProps & React.ComponentPropsWithRef<\"button\">) {\n const Comp = asChild ? Slot : \"button\"\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\n\nimport { cn } from \"@/lib/utils\"\nimport { buttonVariants } from \"@/components/ui/button\"\n\n/** Root component that manages alert dialog open/close state. */\nconst AlertDialog = AlertDialogPrimitive.Root\n\n/** Button that opens the alert dialog. */\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\n\n/** Portal that renders alert dialog content outside the DOM hierarchy. */\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\n\n/** Semi-transparent backdrop rendered behind the alert dialog. */\nfunction AlertDialogOverlay({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n data-slot=\"alert-dialog-overlay\"\n />\n )\n}\n\n/** Centered modal panel containing the alert dialog body. */\nfunction AlertDialogContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Content>) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n data-slot=\"alert-dialog-content\"\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border-2 bg-card text-card-foreground p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n )\n}\n\n/** Layout wrapper for the title and description at the top of the dialog. */\nfunction AlertDialogHeader({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-start\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Layout wrapper for action/cancel buttons at the bottom of the dialog. */\nfunction AlertDialogFooter({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Accessible title rendered inside the alert dialog header. */\nfunction AlertDialogTitle({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n ref={ref}\n data-slot=\"alert-dialog-title\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Accessible description text rendered inside the alert dialog header. */\nfunction AlertDialogDescription({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n ref={ref}\n data-slot=\"alert-dialog-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Primary confirmation button that closes the dialog on click. */\nfunction AlertDialogAction({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Action>) {\n return (\n <AlertDialogPrimitive.Action\n ref={ref}\n data-slot=\"alert-dialog-action\"\n className={cn(buttonVariants(), className)}\n {...props}\n />\n )\n}\n\n/** Secondary cancel button that dismisses the dialog. */\nfunction AlertDialogCancel({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AlertDialogPrimitive.Cancel>) {\n return (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n data-slot=\"alert-dialog-cancel\"\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n}\n","\"use client\"\n\nimport * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\"\n\n/**\n * Constrains its child to a given width-to-height ratio.\n *\n * @example\n * <AspectRatio ratio={16 / 9}><img src=\"/hero.jpg\" /></AspectRatio>\n */\nconst AspectRatio = AspectRatioPrimitive.Root\n\nexport { AspectRatio }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Circular container for a user profile image with fallback support.\n *\n * @example\n * <Avatar><AvatarImage src=\"/me.jpg\" /><AvatarFallback>CN</AvatarFallback></Avatar>\n */\nfunction Avatar({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n ref={ref}\n data-slot=\"avatar\"\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Image displayed inside an Avatar; hidden automatically when loading fails. */\nfunction AvatarImage({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n ref={ref}\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n )\n}\n\n/** Placeholder content shown while the avatar image loads or when it fails. */\nfunction AvatarFallback({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n ref={ref}\n data-slot=\"avatar-fallback\"\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full border-2 bg-muted\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Avatar, AvatarImage, AvatarFallback }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Badge style variants (default, secondary, destructive, outline, success, warning, error). Use with cn(badgeVariants({...})) for non-div elements. */\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border-2 px-2.5 py-0.5 font-mono uppercase tracking-wider text-[11px] transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n outline: \"text-foreground\",\n success:\n \"border-transparent bg-status-success-surface text-status-success-text\",\n warning:\n \"border-transparent bg-status-warning-surface text-status-warning-text\",\n error:\n \"border-transparent bg-status-error-surface text-status-error-text\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n/** Props accepted by the Badge component. */\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\n/**\n * Small label used to highlight status, category, or metadata.\n *\n * @example\n * <Badge variant=\"success\">Active</Badge>\n *\n * @prop variant - Visual style: \"default\" | \"secondary\" | \"destructive\" | \"outline\" | \"success\" | \"warning\" | \"error\"\n */\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div data-slot=\"badge\" className={cn(badgeVariants({ variant }), className)} {...props} />\n )\n}\n\nexport { Badge, badgeVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by Breadcrumb. All keys have English defaults. */\ninterface BreadcrumbLabels {\n breadcrumb?: string\n more?: string\n}\n\nconst defaultBreadcrumbLabels: Required<BreadcrumbLabels> = {\n breadcrumb: \"breadcrumb\",\n more: \"More\",\n}\n\n/**\n * Navigation component showing the user's location in a page hierarchy.\n *\n * @example\n * <Breadcrumb><BreadcrumbList><BreadcrumbItem><BreadcrumbLink href=\"/\">Home</BreadcrumbLink></BreadcrumbItem></BreadcrumbList></Breadcrumb>\n */\nfunction Breadcrumb({\n ref,\n \"aria-label\": ariaLabel,\n labels: labelsProp,\n ...props\n}: React.ComponentPropsWithRef<\"nav\"> & {\n separator?: React.ReactNode\n labels?: BreadcrumbLabels\n}) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultBreadcrumbLabels, ctx.breadcrumb, labelsProp)\n\n return <nav ref={ref} aria-label={ariaLabel ?? labels.breadcrumb} data-slot=\"breadcrumb\" {...props} />\n}\n\n/** Ordered list container for breadcrumb items. */\nfunction BreadcrumbList({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"ol\">) {\n return (\n <ol\n ref={ref}\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Individual breadcrumb entry wrapping a link or page indicator. */\nfunction BreadcrumbItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"li\">) {\n return (\n <li\n ref={ref}\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n )\n}\n\n/** Clickable link within a breadcrumb item; supports asChild for custom link components. */\nfunction BreadcrumbLink({\n asChild,\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"a\"> & {\n asChild?: boolean\n}) {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"breadcrumb-link\"\n className={cn(\"text-muted-foreground transition-colors hover:text-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Non-interactive label representing the current page in the breadcrumb trail. */\nfunction BreadcrumbPage({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"span\">) {\n return (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n data-slot=\"breadcrumb-page\"\n className={cn(\"font-medium text-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Visual divider between breadcrumb items; defaults to a chevron icon. */\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n data-slot=\"breadcrumb-separator\"\n className={cn(\"[&>svg]:w-3.5 [&>svg]:h-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n )\n}\n\n/** Ellipsis indicator used when breadcrumb items are collapsed. */\nfunction BreadcrumbEllipsis({\n className,\n label,\n labels: labelsProp,\n ...props\n}: React.ComponentProps<\"span\"> & {\n /** Screen-reader text for the ellipsis. @default \"More\" */\n label?: string\n labels?: BreadcrumbLabels\n}) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultBreadcrumbLabels, ctx.breadcrumb, labelsProp)\n const resolvedLabel = label ?? labels.more\n return (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n data-slot=\"breadcrumb-ellipsis\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">{resolvedLabel}</span>\n </span>\n )\n}\n\nexport {\n type BreadcrumbLabels,\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Groups multiple buttons into a single visual unit with shared borders.\n *\n * @example\n * <ButtonGroup><Button>Left</Button><Button>Right</Button></ButtonGroup>\n */\nfunction ButtonGroup({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const childArray = React.Children.toArray(children)\n\n return (\n <div\n data-slot=\"button-group\"\n className={cn(\"flex -space-x-[2px]\", className)}\n {...props}\n >\n {childArray.map((child, i) => {\n if (!React.isValidElement(child)) return child\n\n const isFirst = i === 0\n const isLast = i === childArray.length - 1\n\n return React.cloneElement(child as React.ReactElement<{ className?: string }>, {\n className: cn(\n (child as React.ReactElement<{ className?: string }>).props.className,\n !isFirst && \"rounded-s-none\",\n !isLast && \"rounded-e-none\"\n ),\n })\n })}\n </div>\n )\n}\n\nexport { ButtonGroup }\n","\"use client\"\n\nimport * as React from \"react\"\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\"\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button, buttonVariants } from \"@/components/ui/button\"\n\n/**\n * Date picker calendar built on react-day-picker with themed styling.\n *\n * @example\n * <Calendar mode=\"single\" selected={date} onSelect={setDate} />\n *\n * @prop buttonVariant - Button variant used for navigation arrows\n */\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"bg-background group/calendar p-3 [--cell-size:--spacing(7)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"relative flex flex-col gap-4 md:flex-row\",\n defaultClassNames.months\n ),\n month: cn(\"flex w-full flex-col gap-4\", defaultClassNames.month),\n nav: cn(\n \"absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) p-0 select-none aria-disabled:opacity-50\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) p-0 select-none aria-disabled:opacity-50\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"bg-popover absolute inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md ps-2 pe-1 text-sm [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"flex-1 rounded-md text-[0.8rem] font-normal text-muted-foreground select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"mt-2 flex w-full\", defaultClassNames.week),\n week_number_header: cn(\n \"w-(--cell-size) select-none\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-muted-foreground select-none text-[0.8rem]\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"group/day relative flex-1 aspect-square h-(--cell-size) min-w-(--cell-size) p-0 text-center select-none [&:first-child[data-selected=true]_button]:rounded-s-md [&:last-child[data-selected=true]_button]:rounded-e-md\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"bg-accent rounded-s-md\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"bg-accent rounded-e-md\", defaultClassNames.range_end),\n today: cn(\n \"border-2 border-primary rounded-md data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n )\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n )\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\n/** Individual day cell button used internally by Calendar. */\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef<HTMLButtonElement>(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-md data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:rounded-md data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n","\"use client\"\n\nimport * as React from \"react\"\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\"\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\nimport { Button } from \"@/components/ui/button\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by Carousel navigation buttons. All keys have English defaults. */\ninterface CarouselLabels {\n previousSlide?: string\n nextSlide?: string\n}\n\nconst defaultCarouselLabels: Required<CarouselLabels> = {\n previousSlide: \"Previous slide\",\n nextSlide: \"Next slide\",\n}\n\n/** Handle returned by Embla Carousel for programmatic control. */\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: \"horizontal\" | \"vertical\"\n setApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\n api: ReturnType<typeof useEmblaCarousel>[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\n/** Hook to access carousel context (scroll methods, state). Must be used inside a Carousel. */\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\")\n }\n\n return context\n}\n\n/**\n * Scrollable content carousel powered by Embla Carousel.\n *\n * @example\n * <Carousel><CarouselContent><CarouselItem>Slide 1</CarouselItem></CarouselContent><CarouselPrevious /><CarouselNext /></Carousel>\n *\n * @prop orientation - Scroll direction: \"horizontal\" | \"vertical\"\n */\nfunction Carousel({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & CarouselProps) {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n )\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return\n }\n\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev()\n }, [api])\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext()\n }, [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault()\n scrollPrev()\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault()\n scrollNext()\n }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return\n }\n\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) {\n return\n }\n\n onSelect(api)\n api.on(\"reInit\", onSelect)\n api.on(\"select\", onSelect)\n\n return () => {\n api?.off(\"select\", onSelect)\n }\n }, [api, onSelect])\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n data-slot=\"carousel\"\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n )\n}\n\n/** Scrollable track containing CarouselItem children. */\nfunction CarouselContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n const { carouselRef, orientation } = useCarousel()\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n ref={ref}\n data-slot=\"carousel-content\"\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ms-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n )\n}\n\n/** Individual slide within CarouselContent. */\nfunction CarouselItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n const { orientation } = useCarousel()\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n data-slot=\"carousel-item\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"ps-4\" : \"pt-4\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Button that scrolls the carousel to the previous slide. */\nfunction CarouselPrevious({\n className,\n variant = \"outline\",\n size = \"icon\",\n labels: labelsProp,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof Button> & { labels?: CarouselLabels }) {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n const ctx = useLabels()\n const labels = resolveLabels(defaultCarouselLabels, ctx.carousel, labelsProp)\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n data-slot=\"carousel-previous\"\n className={cn(\n \"absolute h-8 w-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"-start-12 top-1/2 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">{labels.previousSlide}</span>\n </Button>\n )\n}\n\n/** Button that scrolls the carousel to the next slide. */\nfunction CarouselNext({\n className,\n variant = \"outline\",\n size = \"icon\",\n labels: labelsProp,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof Button> & { labels?: CarouselLabels }) {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n const ctx = useLabels()\n const labels = resolveLabels(defaultCarouselLabels, ctx.carousel, labelsProp)\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n data-slot=\"carousel-next\"\n className={cn(\n \"absolute h-8 w-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"-end-12 top-1/2 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">{labels.nextSlide}</span>\n </Button>\n )\n}\n\nexport {\n type CarouselApi,\n type CarouselLabels,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as RechartsPrimitive from \"recharts\"\n\nimport { cn } from \"@/lib/utils\"\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const\n\n/** Configuration map defining labels, icons, and colors for each chart data series. */\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode\n icon?: React.ComponentType\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n )\n}\n\ntype ChartContextProps = {\n config: ChartConfig\n}\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null)\n\n/** Hook to access chart configuration context. Must be used inside a ChartContainer. */\nfunction useChart() {\n const context = React.useContext(ChartContext)\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\")\n }\n\n return context\n}\n\n/**\n * Wrapper that provides chart config context and a responsive container for Recharts charts.\n *\n * @example\n * <ChartContainer config={chartConfig}><BarChart data={data}>...</BarChart></ChartContainer>\n *\n * @prop config - ChartConfig mapping series keys to labels, icons, and colors\n */\nfunction ChartContainer({\n id,\n className,\n children,\n config,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & {\n config: ChartConfig\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"]\n}) {\n const uniqueId = React.useId()\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n data-slot=\"chart\"\n className={cn(\n \"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none\",\n className\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n )\n}\n\n/** Injects CSS custom properties for chart colors based on the active theme. */\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([, config]) => config.theme || config.color\n )\n\n if (!colorConfig.length) {\n return null\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color\n return color ? ` --color-${key}: ${color};` : null\n })\n .join(\"\\n\")}\n}\n`\n )\n .join(\"\\n\"),\n }}\n />\n )\n}\n\n/** Recharts Tooltip component, re-exported for convenience. */\nconst ChartTooltip = RechartsPrimitive.Tooltip\n\n/** Themed tooltip content renderer for use with ChartTooltip. */\nfunction ChartTooltipContent({\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n ref,\n}: React.ComponentPropsWithRef<\"div\"> &\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> & {\n hideLabel?: boolean\n hideIndicator?: boolean\n indicator?: \"line\" | \"dot\" | \"dashed\"\n nameKey?: string\n labelKey?: string\n }) {\n const { config } = useChart()\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null\n }\n\n const [item] = payload\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label\n\n if (labelFormatter) {\n return (\n <div className={cn(\"font-medium\", labelClassName)}>\n {labelFormatter(value, payload)}\n </div>\n )\n }\n\n if (!value) {\n return null\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ])\n\n if (!active || !payload?.length) {\n return null\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\"\n\n return (\n <div\n ref={ref}\n data-slot=\"chart-tooltip-content\"\n className={cn(\n \"grid min-w-[8rem] items-start gap-1.5 rounded-lg border-2 border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl\",\n className\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const indicatorColor = color || item.payload.fill || item.color\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground\",\n indicator === \"dot\" && \"items-center\"\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n \"shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]\",\n {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\":\n indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n }\n )}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\"\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n}\n\n/** Recharts Legend component, re-exported for convenience. */\nconst ChartLegend = RechartsPrimitive.Legend\n\n/** Themed legend content renderer for use with ChartLegend. */\nfunction ChartLegendContent({\n className,\n hideIcon = false,\n payload,\n verticalAlign = \"bottom\",\n nameKey,\n ref,\n}: React.ComponentPropsWithRef<\"div\"> &\n Pick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & {\n hideIcon?: boolean\n nameKey?: string\n }) {\n const { config } = useChart()\n\n if (!payload?.length) {\n return null\n }\n\n return (\n <div\n ref={ref}\n data-slot=\"chart-legend-content\"\n className={cn(\n \"flex items-center justify-center gap-4\",\n verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\",\n className\n )}\n >\n {payload\n .filter((item) => item.type !== \"none\")\n .map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n\n return (\n <div\n key={item.value}\n className={cn(\n \"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground\"\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n )\n })}\n </div>\n )\n}\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined\n\n let configLabelKey: string = key\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config]\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A toggleable checkbox input with checked/unchecked states.\n *\n * @example\n * <Checkbox checked={checked} onCheckedChange={setChecked} />\n */\nfunction Checkbox({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n ref={ref}\n data-slot=\"checkbox\"\n className={cn(\n \"grid place-content-center peer h-[18px] w-[18px] shrink-0 rounded border-2 border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=checked]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"grid place-content-center text-current\")}\n >\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst gapMap = {\n none: \"gap-0\",\n xs: \"gap-1\",\n sm: \"gap-2\",\n md: \"gap-4\",\n lg: \"gap-6\",\n xl: \"gap-8\",\n \"2xl\": \"gap-12\",\n} as const\n\nconst alignMap = {\n start: \"items-start\",\n center: \"items-center\",\n end: \"items-end\",\n baseline: \"items-baseline\",\n} as const\n\nconst justifyMap = {\n start: \"justify-start\",\n center: \"justify-center\",\n end: \"justify-end\",\n between: \"justify-between\",\n} as const\n\ntype Gap = keyof typeof gapMap\ntype Align = keyof typeof alignMap\ntype Justify = keyof typeof justifyMap\n\n/** Props accepted by the Cluster component. */\ninterface ClusterProps extends React.ComponentPropsWithRef<\"div\"> {\n gap?: Gap\n align?: Align\n justify?: Justify\n wrap?: boolean\n asChild?: boolean\n}\n\n/**\n * Flexbox layout primitive for horizontal grouping with configurable gap, alignment, and wrapping.\n *\n * @example\n * <Cluster gap=\"md\" justify=\"between\"><Badge>A</Badge><Badge>B</Badge></Cluster>\n *\n * @prop gap - Spacing between items: \"none\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\"\n * @prop align - Cross-axis alignment: \"start\" | \"center\" | \"end\" | \"baseline\"\n * @prop justify - Main-axis justification: \"start\" | \"center\" | \"end\" | \"between\"\n * @prop wrap - Enable flex-wrap (default true)\n * @prop asChild - Merge props onto child element instead of rendering a div\n */\nfunction Cluster({\n gap = \"sm\",\n align = \"center\",\n justify = \"start\",\n wrap = true,\n asChild = false,\n className,\n ref,\n ...props\n}: ClusterProps) {\n const Comp = asChild ? Slot : \"div\"\n return (\n <Comp\n data-slot=\"cluster\"\n className={cn(\n \"flex\",\n gapMap[gap],\n alignMap[align],\n justifyMap[justify],\n wrap && \"flex-wrap\",\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Cluster, type ClusterProps }\n","\"use client\"\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\n/** Root component that manages collapsible open/close state. */\nconst Collapsible = CollapsiblePrimitive.Root\n\n/** Button that toggles the collapsible content visibility. */\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\n\n/** Content panel that expands or collapses based on the Collapsible state. */\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by Dialog. All keys have English defaults. */\ninterface DialogLabels {\n close?: string\n}\n\nconst defaultDialogLabels: Required<DialogLabels> = {\n close: \"Close\",\n}\n\n/** Root dialog component that manages open/close state. */\nconst Dialog = DialogPrimitive.Root\n\n/** Button or element that opens the dialog when clicked. */\nconst DialogTrigger = DialogPrimitive.Trigger\n\n/** Portals dialog content into document body. */\nconst DialogPortal = DialogPrimitive.Portal\n\n/** Button or element that closes the dialog when clicked. */\nconst DialogClose = DialogPrimitive.Close\n\n/** Semi-transparent backdrop overlay behind the dialog. */\nfunction DialogOverlay({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n ref={ref}\n data-slot=\"dialog-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/**\n * Centered dialog panel with overlay, close button, and animated transitions.\n *\n * @example\n * <Dialog>\n * <DialogTrigger>Open</DialogTrigger>\n * <DialogContent><DialogHeader><DialogTitle>Title</DialogTitle></DialogHeader></DialogContent>\n * </Dialog>\n */\nfunction DialogContent({\n className,\n children,\n labels: labelsProp,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DialogPrimitive.Content> & { labels?: DialogLabels }) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultDialogLabels, ctx.dialog, labelsProp)\n\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n data-slot=\"dialog-content\"\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border-2 bg-card text-card-foreground p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">{labels.close}</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n )\n}\n\n/** Container for dialog title and description at the top of the dialog. */\nfunction DialogHeader({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-start\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Container for action buttons at the bottom of the dialog. */\nfunction DialogFooter({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Accessible title heading for the dialog. */\nfunction DialogTitle({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n ref={ref}\n data-slot=\"dialog-title\"\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Accessible description text displayed below the dialog title. */\nfunction DialogDescription({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n ref={ref}\n data-slot=\"dialog-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n type DialogLabels,\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { type DialogProps } from \"@radix-ui/react-dialog\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { Search } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Dialog, DialogContent } from \"@/components/ui/dialog\"\n\n/**\n * Command palette container with built-in search and keyboard navigation.\n *\n * @example\n * <Command><CommandInput /><CommandList><CommandItem>Action</CommandItem></CommandList></Command>\n */\nfunction Command({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n ref={ref}\n data-slot=\"command\"\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-lg border-2 bg-popover text-popover-foreground shadow-md\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Command palette rendered inside a modal dialog. */\nfunction CommandDialog({ children, ...props }: DialogProps) {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\n/** Search input field within a Command palette. */\nfunction CommandInput({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.Input>) {\n return (\n <div className=\"flex items-center border-b-2 px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"me-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n data-slot=\"command-input\"\n className={cn(\n \"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n )\n}\n\n/** Scrollable list container for command items and groups. */\nfunction CommandList({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n ref={ref}\n data-slot=\"command-list\"\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n )\n}\n\n/** Placeholder shown when no command items match the search query. */\nfunction CommandEmpty({\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n ref={ref}\n data-slot=\"command-empty\"\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n )\n}\n\n/** Labeled group of related command items. */\nfunction CommandGroup({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n ref={ref}\n data-slot=\"command-group\"\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Horizontal divider between command groups or items. */\nfunction CommandSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n ref={ref}\n data-slot=\"command-separator\"\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\n/** Selectable action item within a CommandList. */\nfunction CommandItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n ref={ref}\n data-slot=\"command-item\"\n className={cn(\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-surface-interactive data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Keyboard shortcut hint displayed alongside a CommandItem. */\nfunction CommandShortcut({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n \"ms-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root popover component that manages open/close state. */\nconst Popover = PopoverPrimitive.Root\n\n/** Element that toggles the popover open and closed. */\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\n/**\n * Animated floating content panel displayed when a popover is open.\n *\n * @example\n * <Popover>\n * <PopoverTrigger>Open</PopoverTrigger>\n * <PopoverContent>Content here</PopoverContent>\n * </Popover>\n */\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n data-slot=\"popover-content\"\n className={cn(\n \"z-50 w-72 rounded-lg border-2 bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nexport { Popover, PopoverTrigger, PopoverContent }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Check, ChevronsUpDown, X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\n\n/** A single selectable option in the Combobox dropdown. */\nexport interface ComboboxOption {\n value: string\n label: string\n}\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by Combobox. All keys have English defaults. */\ninterface ComboboxLabels {\n placeholder?: string\n searchPlaceholder?: string\n noResults?: string\n}\n\nconst defaultComboboxLabels: Required<ComboboxLabels> = {\n placeholder: \"Select...\",\n searchPlaceholder: \"Search...\",\n noResults: \"No results found.\",\n}\n\n\ninterface ComboboxBaseProps {\n options: ComboboxOption[]\n /** @deprecated Use `labels.placeholder` instead. */\n placeholder?: string\n /** @deprecated Use `labels.searchPlaceholder` instead. */\n searchPlaceholder?: string\n /** @deprecated Use `labels.noResults` instead. */\n emptyMessage?: string\n labels?: ComboboxLabels\n className?: string\n disabled?: boolean\n}\n\ninterface ComboboxSingleProps extends ComboboxBaseProps {\n multiple?: false\n value?: string\n onValueChange?: (value: string) => void\n}\n\ninterface ComboboxMultipleProps extends ComboboxBaseProps {\n multiple: true\n value?: string[]\n onValueChange?: (value: string[]) => void\n}\n\ntype ComboboxProps = ComboboxSingleProps | ComboboxMultipleProps\n\n/**\n * Searchable select dropdown supporting single or multi-select modes.\n *\n * @example\n * <Combobox options={[{ value: \"a\", label: \"Alpha\" }]} value={val} onValueChange={setVal} />\n *\n * @prop options - Array of selectable options\n * @prop multiple - Enable multi-select mode when true\n * @prop placeholder - Text shown when no value is selected\n */\nfunction Combobox({\n options,\n // These deprecated props are still accepted and forwarded into the labels\n // API below for backward compatibility (see ComboboxBaseProps).\n /* eslint-disable @typescript-eslint/no-deprecated */\n placeholder,\n searchPlaceholder,\n emptyMessage,\n /* eslint-enable @typescript-eslint/no-deprecated */\n labels: labelsProp,\n className,\n disabled,\n ...props\n}: ComboboxProps) {\n const ctx = useLabels()\n const mergedProp: ComboboxLabels = {\n ...labelsProp,\n ...(placeholder != null && { placeholder }),\n ...(searchPlaceholder != null && { searchPlaceholder }),\n ...(emptyMessage != null && { noResults: emptyMessage }),\n }\n const labels = resolveLabels(defaultComboboxLabels, ctx.combobox, mergedProp)\n const [open, setOpen] = React.useState(false)\n\n const isMultiple = props.multiple === true\n\n const selectedValues = isMultiple\n ? (props.value ?? [])\n : props.value\n ? [props.value]\n : []\n\n const handleSelect = (optionValue: string) => {\n if (isMultiple) {\n const current = props.value ?? []\n const next = current.includes(optionValue)\n ? current.filter((v) => v !== optionValue)\n : [...current, optionValue]\n props.onValueChange?.(next)\n } else {\n const next = optionValue === props.value ? \"\" : optionValue\n props.onValueChange?.(next)\n setOpen(false)\n }\n }\n\n const handleRemove = (optionValue: string, e: React.MouseEvent) => {\n e.stopPropagation()\n if (isMultiple) {\n const current = props.value ?? []\n props.onValueChange?.(current.filter((v) => v !== optionValue))\n }\n }\n\n const displayLabel = () => {\n if (isMultiple && selectedValues.length > 0) {\n return (\n <div className=\"flex flex-wrap gap-1\">\n {selectedValues.map((v) => {\n const opt = options.find((o) => o.value === v)\n return (\n <Badge key={v} variant=\"secondary\" className=\"text-xs px-1.5 py-0\">\n {opt?.label ?? v}\n <button\n type=\"button\"\n className=\"ms-1 rounded-full hover:bg-muted\"\n onClick={(e) => handleRemove(v, e)}\n >\n <X className=\"size-3\" />\n </button>\n </Badge>\n )\n })}\n </div>\n )\n }\n\n if (!isMultiple && props.value) {\n const opt = options.find((o) => o.value === props.value)\n return <span>{opt?.label ?? props.value}</span>\n }\n\n return <span className=\"text-muted-foreground\">{labels.placeholder}</span>\n }\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n data-slot=\"combobox\"\n className={cn(\n \"border-2 rounded-md h-auto min-h-10 px-3 w-full justify-between font-normal\",\n className\n )}\n >\n {displayLabel()}\n <ChevronsUpDown className=\"ms-2 size-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-[--radix-popover-trigger-width] p-0\">\n <Command>\n <CommandInput placeholder={labels.searchPlaceholder} />\n <CommandList>\n <CommandEmpty>{labels.noResults}</CommandEmpty>\n <CommandGroup>\n {options.map((option) => (\n <CommandItem\n key={option.value}\n value={option.value}\n keywords={[option.label]}\n onSelect={() => handleSelect(option.value)}\n >\n <Check\n className={cn(\n \"me-2 size-4\",\n selectedValues.includes(option.value)\n ? \"opacity-100\"\n : \"opacity-0\"\n )}\n />\n {option.label}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport { Combobox, type ComboboxLabels }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root component that manages context menu open/close state. */\nconst ContextMenu = ContextMenuPrimitive.Root\n\n/** Area that opens the context menu on right-click. */\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger\n\n/** Groups related context menu items together. */\nconst ContextMenuGroup = ContextMenuPrimitive.Group\n\n/** Portal that renders context menu content outside the DOM hierarchy. */\nconst ContextMenuPortal = ContextMenuPrimitive.Portal\n\n/** Root for a nested sub-menu within the context menu. */\nconst ContextMenuSub = ContextMenuPrimitive.Sub\n\n/** Groups mutually exclusive radio items in the context menu. */\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup\n\n/** Item that opens a nested sub-menu on hover. */\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\n data-slot=\"context-menu-sub-trigger\"\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto h-4 w-4\" />\n </ContextMenuPrimitive.SubTrigger>\n )\n}\n\n/** Dropdown panel for a nested sub-menu. */\nfunction ContextMenuSubContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.SubContent>) {\n return (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n data-slot=\"context-menu-sub-content\"\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-context-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Positioned dropdown panel containing the context menu items. */\nfunction ContextMenuContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.Content>) {\n return (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n data-slot=\"context-menu-content\"\n className={cn(\n \"z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-context-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n )\n}\n\n/** Clickable action item within the context menu. */\nfunction ContextMenuItem({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.Item\n ref={ref}\n data-slot=\"context-menu-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-surface-interactive focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Context menu item with a toggleable checkbox indicator. */\nfunction ContextMenuCheckboxItem({\n className,\n children,\n checked,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.CheckboxItem>) {\n return (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n data-slot=\"context-menu-checkbox-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n )\n}\n\n/** Context menu item with a radio indicator for single-select groups. */\nfunction ContextMenuRadioItem({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.RadioItem>) {\n return (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n data-slot=\"context-menu-radio-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n )\n}\n\n/** Non-interactive label used to title a group of context menu items. */\nfunction ContextMenuLabel({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.Label\n ref={ref}\n data-slot=\"context-menu-label\"\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold text-foreground\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Horizontal divider between context menu sections. */\nfunction ContextMenuSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ContextMenuPrimitive.Separator>) {\n return (\n <ContextMenuPrimitive.Separator\n ref={ref}\n data-slot=\"context-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\n/** Keyboard shortcut hint displayed alongside a context menu item. */\nfunction ContextMenuShortcut({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"context-menu-shortcut\"\n className={cn(\n \"ms-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root dropdown menu component that manages open/close state. */\nconst DropdownMenu = DropdownMenuPrimitive.Root\n\n/** Button or element that toggles the dropdown menu. */\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\n\n/** Groups related dropdown menu items together. */\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group\n\n/** Portals dropdown menu content into document body. */\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\n\n/** Root component for a nested submenu within a dropdown. */\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub\n\n/** Groups radio items so only one can be selected at a time. */\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup\n\n/** Menu item that opens a nested submenu on hover or focus. */\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n data-slot=\"dropdown-menu-sub-trigger\"\n className={cn(\n \"flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n )\n}\n\n/** Animated content panel for a nested submenu. */\nfunction DropdownMenuSubContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n )\n}\n\n/**\n * Animated popover panel containing the dropdown menu items.\n *\n * @example\n * <DropdownMenu>\n * <DropdownMenuTrigger>Open</DropdownMenuTrigger>\n * <DropdownMenuContent><DropdownMenuItem>Action</DropdownMenuItem></DropdownMenuContent>\n * </DropdownMenu>\n */\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n data-slot=\"dropdown-menu-content\"\n className={cn(\n \"z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n )\n}\n\n/** Clickable item within a dropdown menu. */\nfunction DropdownMenuItem({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.Item\n ref={ref}\n data-slot=\"dropdown-menu-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors hover:bg-surface-interactive focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Menu item with a checkbox indicator for toggling boolean options. */\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n )\n}\n\n/** Menu item with a radio indicator for single-select groups. */\nfunction DropdownMenuRadioItem({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n )\n}\n\n/** Non-interactive label used to title a group of menu items. */\nfunction DropdownMenuLabel({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuPrimitive.Label\n ref={ref}\n data-slot=\"dropdown-menu-label\"\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Horizontal divider line between groups of menu items. */\nfunction DropdownMenuSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\n/** Right-aligned keyboard shortcut hint displayed within a menu item. */\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\"ms-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Scrollable data table wrapper that renders a full-width HTML table.\n *\n * @example\n * <Table><TableHeader>...</TableHeader><TableBody>...</TableBody></Table>\n */\nfunction Table({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"table\">) {\n return (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n )\n}\n\n/** Table head section that applies a bottom border to its rows. */\nfunction TableHeader({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"thead\">) {\n return (\n <thead ref={ref} data-slot=\"table-header\" className={cn(\"[&_tr]:border-b-2\", className)} {...props} />\n )\n}\n\n/** Table body section that removes the border from the last row. */\nfunction TableBody({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"tbody\">) {\n return (\n <tbody\n ref={ref}\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n )\n}\n\n/** Table footer with a muted background and top border. */\nfunction TableFooter({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"tfoot\">) {\n return (\n <tfoot\n ref={ref}\n data-slot=\"table-footer\"\n className={cn(\n \"border-t-2 bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Table row with hover highlight and selected state styling. */\nfunction TableRow({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"tr\">) {\n return (\n <tr\n ref={ref}\n data-slot=\"table-row\"\n className={cn(\n \"border-b-2 last:border-b-0 transition-colors hover:bg-surface-interactive data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Table header cell with uppercase monospace label styling. */\nfunction TableHead({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"th\">) {\n return (\n <th\n ref={ref}\n data-slot=\"table-head\"\n className={cn(\n \"h-12 px-4 text-start align-middle bg-surface-sunken font-mono text-xs uppercase tracking-wider text-muted-foreground [&:has([role=checkbox])]:pe-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Standard table data cell with consistent padding. */\nfunction TableCell({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"td\">) {\n return (\n <td\n ref={ref}\n data-slot=\"table-cell\"\n className={cn(\"p-4 align-middle [&:has([role=checkbox])]:pe-0\", className)}\n {...props}\n />\n )\n}\n\n/** Table caption rendered below the table in muted text. */\nfunction TableCaption({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"caption\">) {\n return (\n <caption\n ref={ref}\n data-slot=\"table-caption\"\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport {\n type ColumnDef,\n type ColumnFiltersState,\n type SortingState,\n type VisibilityState,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\"\nimport { ArrowDown, ArrowUp, ArrowUpDown, Settings2 } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Checkbox } from \"@/components/ui/checkbox\"\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/ui/table\"\nimport { resolveLabels as resolveLabelsGeneric } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by DataTable sub-components. All keys have English defaults. */\ninterface DataTableLabels {\n previous?: string\n next?: string\n noResults?: string\n view?: string\n toggleColumns?: string\n selectAll?: string\n selectRow?: string\n rowsSelected?: (selected: number, total: number) => string\n pageOf?: (page: number, total: number) => string\n sortedAscending?: (title: string) => string\n sortedDescending?: (title: string) => string\n notSorted?: (title: string) => string\n}\n\nconst defaultLabels: Required<DataTableLabels> = {\n previous: \"Previous\",\n next: \"Next\",\n noResults: \"No results.\",\n view: \"View\",\n toggleColumns: \"Toggle columns\",\n selectAll: \"Select all\",\n selectRow: \"Select row\",\n rowsSelected: (selected, total) =>\n `${selected} of ${total} row(s) selected.`,\n pageOf: (page, total) => `Page ${page} of ${total}`,\n sortedAscending: (title) =>\n `${title}, sorted ascending. Click to sort descending.`,\n sortedDescending: (title) =>\n `${title}, sorted descending. Click to remove sort.`,\n notSorted: (title) =>\n `${title}, not sorted. Click to sort ascending.`,\n}\n\n\n// ─── DataTableColumnHeader ───────────────────────────────────────────\n\ninterface DataTableColumnHeaderProps<TData, TValue>\n extends React.HTMLAttributes<HTMLDivElement> {\n column: import(\"@tanstack/react-table\").Column<TData, TValue>\n title: string\n labels?: DataTableLabels\n}\n\n/**\n * Sortable column header button that toggles sort direction on click.\n *\n * @example\n * <DataTableColumnHeader column={column} title=\"Name\" />\n *\n * @prop column - TanStack Table column instance\n * @prop title - Display text for the header\n */\nfunction DataTableColumnHeader<TData, TValue>({\n column,\n title,\n className,\n labels: labelsProp,\n}: DataTableColumnHeaderProps<TData, TValue>) {\n const ctx = useLabels()\n const labels = resolveLabelsGeneric(defaultLabels, ctx.dataTable, labelsProp)\n\n if (!column.getCanSort()) {\n return <div className={cn(className)}>{title}</div>\n }\n\n const sorted = column.getIsSorted()\n\n return (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className={cn(\"-ms-3 h-8 font-mono text-xs\", className)}\n onClick={() => column.toggleSorting(sorted === \"asc\")}\n aria-label={\n sorted === \"asc\"\n ? labels.sortedAscending(title)\n : sorted === \"desc\"\n ? labels.sortedDescending(title)\n : labels.notSorted(title)\n }\n >\n {title}\n {sorted === \"asc\" ? (\n <ArrowUp className=\"ms-2 size-3.5\" aria-hidden=\"true\" />\n ) : sorted === \"desc\" ? (\n <ArrowDown className=\"ms-2 size-3.5\" aria-hidden=\"true\" />\n ) : (\n <ArrowUpDown className=\"ms-2 size-3.5\" aria-hidden=\"true\" />\n )}\n </Button>\n )\n}\n\n// ─── DataTableViewOptions ────────────────────────────────────────────\n\ninterface DataTableViewOptionsProps<TData> {\n table: import(\"@tanstack/react-table\").Table<TData>\n labels?: DataTableLabels\n}\n\n/**\n * Dropdown menu for toggling column visibility in a data table.\n *\n * @example\n * <DataTableViewOptions table={table} />\n *\n * @prop table - TanStack Table instance\n */\nfunction DataTableViewOptions<TData>({\n table,\n labels: labelsProp,\n}: DataTableViewOptionsProps<TData>) {\n const ctx = useLabels()\n const labels = resolveLabelsGeneric(defaultLabels, ctx.dataTable, labelsProp)\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\" size=\"sm\" className=\"ms-auto h-8 border-2\">\n <Settings2 className=\"me-2 size-4\" />\n <span className=\"font-mono text-xs\">{labels.view}</span>\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-40\">\n <DropdownMenuLabel className=\"font-mono text-xs\">\n {labels.toggleColumns}\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n {table\n .getAllColumns()\n .filter(\n (column) =>\n typeof column.accessorFn !== \"undefined\" && column.getCanHide()\n )\n .map((column) => (\n <DropdownMenuCheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(value) => column.toggleVisibility(!!value)}\n >\n {column.id}\n </DropdownMenuCheckboxItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\n// ─── DataTablePagination ─────────────────────────────────────────────\n\ninterface DataTablePaginationProps<TData> {\n table: import(\"@tanstack/react-table\").Table<TData>\n labels?: DataTableLabels\n}\n\n/**\n * Pagination controls displaying row selection count and page navigation.\n *\n * @example\n * <DataTablePagination table={table} />\n *\n * @prop table - TanStack Table instance\n */\nfunction DataTablePagination<TData>({\n table,\n labels: labelsProp,\n}: DataTablePaginationProps<TData>) {\n const ctx = useLabels()\n const labels = resolveLabelsGeneric(defaultLabels, ctx.dataTable, labelsProp)\n\n return (\n <div className=\"flex items-center justify-between px-2 py-4\">\n <div className=\"flex-1 font-mono text-xs text-muted-foreground\">\n {labels.rowsSelected(\n table.getFilteredSelectedRowModel().rows.length,\n table.getFilteredRowModel().rows.length\n )}\n </div>\n <div className=\"flex items-center gap-2\">\n <div className=\"font-mono text-xs text-muted-foreground\">\n {labels.pageOf(\n table.getState().pagination.pageIndex + 1,\n table.getPageCount()\n )}\n </div>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 border-2\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n aria-label={labels.previous}\n >\n {labels.previous}\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 border-2\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n aria-label={labels.next}\n >\n {labels.next}\n </Button>\n </div>\n </div>\n )\n}\n\n// ─── DataTableToolbar ────────────────────────────────────────────────\n\ninterface DataTableToolbarProps {\n children?: React.ReactNode\n className?: string\n}\n\n/**\n * Horizontal toolbar container for data table filters and actions.\n *\n * @example\n * <DataTableToolbar><Input placeholder=\"Filter...\" /></DataTableToolbar>\n */\nfunction DataTableToolbar({ children, className }: DataTableToolbarProps) {\n return (\n <div\n data-slot=\"data-table-toolbar\"\n className={cn(\"flex items-center justify-between py-4\", className)}\n >\n {children}\n </div>\n )\n}\n\n// ─── Selection column helper ─────────────────────────────────────────\n\n/**\n * Creates a checkbox selection column definition for use with TanStack Table.\n *\n * @example\n * const columns = [createSelectColumn<MyData>(), ...otherColumns]\n */\nfunction createSelectColumn<TData>(\n labels?: DataTableLabels\n): ColumnDef<TData> {\n const resolved = resolveLabelsGeneric(defaultLabels, undefined, labels)\n return {\n id: \"select\",\n header: ({ table }) => (\n <Checkbox\n checked={\n table.getIsAllPageRowsSelected() ||\n (table.getIsSomePageRowsSelected() && \"indeterminate\")\n }\n onCheckedChange={(value) => table.toggleAllPageRowsSelected(!!value)}\n aria-label={resolved.selectAll}\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n checked={row.getIsSelected()}\n onCheckedChange={(value) => row.toggleSelected(!!value)}\n aria-label={resolved.selectRow}\n />\n ),\n enableSorting: false,\n enableHiding: false,\n }\n}\n\n// ─── DataTable ───────────────────────────────────────────────────────\n\ninterface DataTableProps<TData, TValue> {\n columns: ColumnDef<TData, TValue>[]\n data: TData[]\n className?: string\n toolbar?: React.ReactNode\n /** Translatable strings for all DataTable sub-components. */\n labels?: DataTableLabels\n}\n\n/**\n * Full-featured data table with sorting, filtering, pagination, and row selection.\n *\n * @example\n * <DataTable columns={columns} data={data} toolbar={<DataTableToolbar>...</DataTableToolbar>} />\n *\n * @prop columns - TanStack Table column definitions\n * @prop data - Array of row data\n * @prop toolbar - Optional toolbar rendered above the table\n */\nfunction DataTable<TData, TValue>({\n columns,\n data,\n className,\n toolbar,\n labels: labelsProp,\n}: DataTableProps<TData, TValue>) {\n const ctx = useLabels()\n const labels = resolveLabelsGeneric(defaultLabels, ctx.dataTable, labelsProp)\n const [sorting, setSorting] = React.useState<SortingState>([])\n const [columnFilters, setColumnFilters] =\n React.useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] =\n React.useState<VisibilityState>({})\n const [rowSelection, setRowSelection] = React.useState({})\n\n // eslint-disable-next-line react-hooks/incompatible-library\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection,\n },\n })\n\n return (\n <div data-slot=\"data-table\" className={className}>\n {toolbar}\n <div className=\"border-2 rounded-lg overflow-hidden\">\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id} className=\"bg-surface-sunken\">\n {headerGroup.headers.map((header) => (\n <TableHead key={header.id}>\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow\n key={row.id}\n data-state={row.getIsSelected() && \"selected\"}\n className=\"data-[state=selected]:bg-accent\"\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={columns.length}\n className=\"h-24 text-center text-muted-foreground\"\n >\n {labels.noResults}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <DataTablePagination table={table} labels={labelsProp} />\n </div>\n )\n}\n\nexport {\n DataTable,\n DataTableColumnHeader,\n DataTablePagination,\n DataTableToolbar,\n DataTableViewOptions,\n createSelectColumn,\n}\n\nexport type { DataTableLabels }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { CalendarIcon } from \"lucide-react\"\nimport type { DateRange } from \"react-day-picker\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Calendar } from \"@/components/ui/calendar\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by DatePicker / DateRangePicker. All keys have English defaults. */\ninterface DatePickerLabels {\n placeholder?: string\n rangePlaceholder?: string\n locale?: string\n formatDate?: (date: Date) => string\n formatDateShort?: (date: Date) => string\n}\n\nfunction defaultFormatDate(date: Date, locale: string): string {\n return new Intl.DateTimeFormat(locale, {\n month: \"long\",\n day: \"numeric\",\n year: \"numeric\",\n }).format(date)\n}\n\nfunction defaultFormatDateShort(date: Date, locale: string): string {\n return new Intl.DateTimeFormat(locale, {\n month: \"short\",\n day: \"numeric\",\n year: \"numeric\",\n }).format(date)\n}\n\nconst defaultDatePickerLabels: Required<DatePickerLabels> = {\n placeholder: \"Pick a date\",\n rangePlaceholder: \"Pick a date range\",\n locale: \"en-US\",\n formatDate: (date) => defaultFormatDate(date, \"en-US\"),\n formatDateShort: (date) => defaultFormatDateShort(date, \"en-US\"),\n}\n\nfunction resolveDatePickerLabels(\n context?: Partial<DatePickerLabels>,\n prop?: Partial<DatePickerLabels>,\n): Required<DatePickerLabels> {\n const merged = resolveLabels(defaultDatePickerLabels, context, prop)\n const locale = merged.locale\n return {\n ...merged,\n formatDate: prop?.formatDate ?? context?.formatDate ?? ((date: Date) => defaultFormatDate(date, locale)),\n formatDateShort: prop?.formatDateShort ?? context?.formatDateShort ?? ((date: Date) => defaultFormatDateShort(date, locale)),\n }\n}\n\ninterface DatePickerProps {\n date?: Date\n onDateChange?: (date: Date | undefined) => void\n /** @deprecated Use `labels.placeholder` instead. */\n placeholder?: string\n labels?: DatePickerLabels\n className?: string\n disabled?: boolean\n}\n\n/**\n * Single-date picker with a popover calendar and formatted display.\n *\n * @example\n * <DatePicker date={date} onDateChange={setDate} placeholder=\"Select date\" />\n *\n * @prop date - Currently selected date\n * @prop onDateChange - Callback when a date is selected\n * @prop placeholder - Text shown when no date is selected\n */\nfunction DatePicker({\n date,\n onDateChange,\n // Deprecated; forwarded into the labels API below for backward compatibility.\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n placeholder,\n labels: labelsProp,\n className,\n disabled,\n}: DatePickerProps) {\n const ctx = useLabels()\n const mergedProp: DatePickerLabels = {\n ...labelsProp,\n ...(placeholder != null && { placeholder }),\n }\n const labels = resolveDatePickerLabels(ctx.datePicker, mergedProp)\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n disabled={disabled}\n data-slot=\"date-picker\"\n className={cn(\n \"border-2 rounded-md h-10 px-3 w-full justify-start gap-2 font-normal\",\n className\n )}\n >\n <CalendarIcon className=\"size-4 text-muted-foreground\" aria-hidden=\"true\" />\n {date ? (\n <span>{labels.formatDate(date)}</span>\n ) : (\n <span className=\"text-muted-foreground\">{labels.placeholder}</span>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n selected={date}\n onSelect={onDateChange}\n />\n </PopoverContent>\n </Popover>\n )\n}\n\ninterface DateRangePickerProps {\n dateRange?: DateRange\n onDateRangeChange?: (range: DateRange | undefined) => void\n /** @deprecated Use `labels.rangePlaceholder` instead. */\n placeholder?: string\n labels?: DatePickerLabels\n className?: string\n disabled?: boolean\n}\n\n/**\n * Date range picker with a two-month popover calendar.\n *\n * @example\n * <DateRangePicker dateRange={range} onDateRangeChange={setRange} />\n *\n * @prop dateRange - Currently selected date range\n * @prop onDateRangeChange - Callback when the range changes\n * @prop placeholder - Text shown when no range is selected\n */\nfunction DateRangePicker({\n dateRange,\n onDateRangeChange,\n // Deprecated; forwarded into the labels API below for backward compatibility.\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n placeholder,\n labels: labelsProp,\n className,\n disabled,\n}: DateRangePickerProps) {\n const ctx = useLabels()\n const mergedProp: DatePickerLabels = {\n ...labelsProp,\n ...(placeholder != null && { rangePlaceholder: placeholder }),\n }\n const labels = resolveDatePickerLabels(ctx.datePicker, mergedProp)\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n disabled={disabled}\n data-slot=\"date-range-picker\"\n className={cn(\n \"border-2 rounded-md h-10 px-3 w-full justify-start gap-2 font-normal\",\n className\n )}\n >\n <CalendarIcon className=\"size-4 text-muted-foreground\" aria-hidden=\"true\" />\n {dateRange?.from ? (\n <span>\n {labels.formatDateShort(dateRange.from)}\n {dateRange.to && ` – ${labels.formatDateShort(dateRange.to)}`}\n </span>\n ) : (\n <span className=\"text-muted-foreground\">{labels.rangePlaceholder}</span>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"range\"\n selected={dateRange}\n onSelect={onDateRangeChange}\n numberOfMonths={2}\n />\n </PopoverContent>\n </Popover>\n )\n}\n\nexport { DatePicker, DateRangePicker, type DatePickerLabels }\n","\"use client\"\n\nimport * as React from \"react\"\nimport {\n DirectionProvider as RadixDirectionProvider,\n useDirection as useRadixDirection,\n} from \"@radix-ui/react-direction\"\n\n/** Text direction, either left-to-right or right-to-left. */\ntype Direction = \"ltr\" | \"rtl\"\n\n/**\n * Context provider that sets the text direction for descendant components.\n * All Radix-based components in this library read from this provider automatically.\n *\n * @example\n * <DirectionProvider dir=\"rtl\">{children}</DirectionProvider>\n *\n * @prop dir - Text direction, defaults to \"ltr\"\n */\nfunction DirectionProvider({\n dir = \"ltr\",\n children,\n}: {\n dir?: Direction\n children: React.ReactNode\n}) {\n return (\n <RadixDirectionProvider dir={dir}>\n {children}\n </RadixDirectionProvider>\n )\n}\n\n/** Hook that returns the current text direction from DirectionProvider context. */\nfunction useDirection(): Direction {\n return useRadixDirection()\n}\n\nexport { DirectionProvider, useDirection }\nexport type { Direction }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface DividerProps extends React.ComponentPropsWithRef<\"div\"> {\n orientation?: \"horizontal\" | \"vertical\"\n label?: string\n}\n\n/**\n * Visual separator rendered as a horizontal rule, vertical line, or labeled divider.\n *\n * @example\n * <Divider />\n * <Divider label=\"OR\" />\n * <Divider orientation=\"vertical\" />\n *\n * @prop orientation - \"horizontal\" (default) or \"vertical\"\n * @prop label - Optional centered text within a horizontal divider\n */\nfunction Divider({\n orientation = \"horizontal\",\n label,\n className,\n ref,\n ...props\n}: DividerProps) {\n if (orientation === \"vertical\") {\n return (\n <div\n data-slot=\"divider\"\n role=\"separator\"\n aria-orientation=\"vertical\"\n className={cn(\"border-s-2 border-border self-stretch\", className)}\n ref={ref}\n {...props}\n />\n )\n }\n\n if (label) {\n return (\n <div\n data-slot=\"divider\"\n role=\"separator\"\n aria-orientation=\"horizontal\"\n className={cn(\"flex items-center w-full\", className)}\n ref={ref}\n {...props}\n >\n <div className=\"flex-1 border-t-2 border-border\" />\n <span className=\"text-xs text-muted-foreground font-mono uppercase tracking-wider px-3\">\n {label}\n </span>\n <div className=\"flex-1 border-t-2 border-border\" />\n </div>\n )\n }\n\n return (\n <hr\n data-slot=\"divider\"\n className={cn(\"border-t-2 border-border w-full\", className)}\n ref={ref as React.Ref<HTMLHRElement>}\n {...(props as React.ComponentPropsWithRef<\"hr\">)}\n />\n )\n}\n\nexport { Divider, type DividerProps }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Drawer as DrawerPrimitive } from \"vaul\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Root drawer component powered by Vaul, slides up from the bottom of the viewport.\n *\n * @example\n * <Drawer>\n * <DrawerTrigger>Open</DrawerTrigger>\n * <DrawerContent><DrawerHeader><DrawerTitle>Title</DrawerTitle></DrawerHeader></DrawerContent>\n * </Drawer>\n */\nfunction Drawer({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return (\n <DrawerPrimitive.Root\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n )\n}\n\n/** Button or element that opens the drawer when clicked. */\nconst DrawerTrigger = DrawerPrimitive.Trigger\n\n/** Portals drawer content into document body. */\nconst DrawerPortal = DrawerPrimitive.Portal\n\n/** Button or element that closes the drawer when clicked. */\nconst DrawerClose = DrawerPrimitive.Close\n\n/** Semi-transparent backdrop overlay behind the drawer. */\nfunction DrawerOverlay({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DrawerPrimitive.Overlay>) {\n return (\n <DrawerPrimitive.Overlay\n ref={ref}\n data-slot=\"drawer-overlay\"\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n {...props}\n />\n )\n}\n\n/** Drawer panel that slides up from the bottom with a drag handle. */\nfunction DrawerContent({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DrawerPrimitive.Content>) {\n return (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n data-slot=\"drawer-content\"\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border-2 border-b-0 bg-background\",\n className\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n )\n}\n\n/** Container for drawer title and description. */\nfunction DrawerHeader({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-start\", className)}\n {...props}\n />\n )\n}\n\n/** Container for action buttons at the bottom of the drawer. */\nfunction DrawerFooter({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n )\n}\n\n/** Accessible title heading for the drawer. */\nfunction DrawerTitle({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DrawerPrimitive.Title>) {\n return (\n <DrawerPrimitive.Title\n ref={ref}\n data-slot=\"drawer-title\"\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Accessible description text displayed below the drawer title. */\nfunction DrawerDescription({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof DrawerPrimitive.Description>) {\n return (\n <DrawerPrimitive.Description\n ref={ref}\n data-slot=\"drawer-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n}\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Centered empty state container for when no content is available.\n *\n * @example\n * <Empty>\n * <EmptyIcon><InboxIcon /></EmptyIcon>\n * <EmptyTitle>No results</EmptyTitle>\n * <EmptyDescription>Try adjusting your filters.</EmptyDescription>\n * <EmptyAction><Button>Reset</Button></EmptyAction>\n * </Empty>\n */\nfunction Empty({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n \"flex w-full flex-col items-center justify-center py-12 px-6 text-center\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Icon container displayed above the empty state title. */\nfunction EmptyIcon({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"empty-icon\"\n className={cn(\"text-muted-foreground mb-4 [&_svg]:size-12\", className)}\n {...props}\n >\n {children}\n </div>\n )\n}\n\n/** Heading text for the empty state. */\nfunction EmptyTitle({\n className,\n ...props\n}: React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3\n data-slot=\"empty-title\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Muted description text below the empty state title. */\nfunction EmptyDescription({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n data-slot=\"empty-description\"\n className={cn(\n \"text-sm text-muted-foreground max-w-sm mx-auto mt-1\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Container for a call-to-action button in the empty state. */\nfunction EmptyAction({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"empty-action\"\n className={cn(\"mt-4\", className)}\n {...props}\n />\n )\n}\n\nexport { Empty, EmptyIcon, EmptyTitle, EmptyDescription, EmptyAction }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Label text variants. Use with cn(labelVariants()) for non-label elements. */\nconst labelVariants = cva(\n \"text-sm font-semibold leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\n/**\n * Accessible label component built on Radix UI Label primitive.\n *\n * @example\n * <Label htmlFor=\"email\">Email</Label>\n */\nfunction Label({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>) {\n return (\n <LabelPrimitive.Root\n ref={ref}\n data-slot=\"label\"\n className={cn(labelVariants(), className)}\n {...props}\n />\n )\n}\n\nexport { Label }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Label } from \"@/components/ui/label\"\n\ninterface FieldContextValue {\n id: string\n hintId: string\n errorId: string\n error: boolean\n}\n\nconst FieldContext = React.createContext<FieldContextValue | null>(null)\n\n/** Hook that returns the current Field context (id, error state, aria IDs). */\nfunction useFieldContext() {\n return React.useContext(FieldContext)\n}\n\ninterface FieldProps extends React.HTMLAttributes<HTMLDivElement> {\n error?: boolean\n id?: string\n}\n\n/**\n * Form field wrapper that provides shared context for label, hint, and error linking.\n *\n * @example\n * <Field error={!!errors.name}>\n * <FieldLabel>Name</FieldLabel>\n * <Input />\n * <FieldError>{errors.name}</FieldError>\n * </Field>\n *\n * @prop error - Whether the field is in an error state\n */\nfunction Field({ className, error = false, id: idProp, children, ...props }: FieldProps) {\n const generatedId = React.useId()\n const id = idProp ?? generatedId\n\n const ctx = React.useMemo<FieldContextValue>(\n () => ({\n id,\n hintId: `${id}-hint`,\n errorId: `${id}-error`,\n error,\n }),\n [id, error]\n )\n\n return (\n <FieldContext.Provider value={ctx}>\n <div\n data-slot=\"field\"\n className={cn(\n \"space-y-2\",\n error &&\n \"[&_input]:border-status-error [&_textarea]:border-status-error\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n </FieldContext.Provider>\n )\n}\n\n/** Label automatically linked to the parent Field's input via htmlFor. */\nfunction FieldLabel({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<typeof Label>) {\n const ctx = useFieldContext()\n\n return (\n <Label\n data-slot=\"field-label\"\n htmlFor={ctx?.id}\n className={cn(\n \"text-sm font-semibold\",\n ctx?.error && \"text-status-error-text\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Muted helper text displayed below a field input. */\nfunction FieldHint({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n const ctx = useFieldContext()\n\n return (\n <p\n data-slot=\"field-hint\"\n id={ctx?.hintId}\n className={cn(\"text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Error message that renders only when children are provided, with role=\"alert\". */\nfunction FieldError({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n const ctx = useFieldContext()\n\n if (!children) return null\n\n return (\n <p\n data-slot=\"field-error\"\n id={ctx?.errorId}\n role=\"alert\"\n className={cn(\n \"text-xs text-status-error-text font-medium\",\n className\n )}\n {...props}\n >\n {children}\n </p>\n )\n}\n\nexport { Field, FieldLabel, FieldHint, FieldError, useFieldContext }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface FieldsetProps extends React.ComponentPropsWithRef<\"fieldset\"> {\n legend: string\n}\n\n/**\n * Accessible fieldset wrapper with a visible legend label.\n *\n * @example\n * <Fieldset legend=\"Personal Info\"><Input /><Input /></Fieldset>\n *\n * @prop legend - Text displayed as the fieldset legend\n */\nfunction Fieldset({\n legend,\n className,\n children,\n ref,\n ...props\n}: FieldsetProps) {\n return (\n <fieldset\n data-slot=\"fieldset\"\n className={cn(\"border-0 p-0 m-0 space-y-2\", className)}\n ref={ref}\n {...props}\n >\n <legend className=\"text-sm font-semibold mb-2\">{legend}</legend>\n {children}\n </fieldset>\n )\n}\n\nexport { Fieldset }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Stack } from \"./stack\"\n\ntype Gap = \"none\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\"\n\ninterface FormProps extends React.ComponentPropsWithRef<\"form\"> {\n gap?: Gap\n}\n\n/**\n * Form element with vertical stack layout and configurable gap spacing.\n *\n * @example\n * <Form gap=\"lg\" onSubmit={handleSubmit}><Field>...</Field></Form>\n *\n * @prop gap - Vertical spacing between children (default \"xl\")\n */\nfunction Form({\n gap = \"xl\",\n className,\n children,\n ref,\n ...props\n}: FormProps) {\n return (\n <form\n data-slot=\"form\"\n className={cn(className)}\n ref={ref}\n {...props}\n >\n <Stack gap={gap}>{children}</Stack>\n </form>\n )\n}\n\nexport { Form }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Cluster } from \"./cluster\"\n\n/**\n * Horizontal action bar for form submit/cancel buttons, separated by a top border.\n *\n * @example\n * <FormActions>\n * <Button variant=\"outline\">Cancel</Button>\n * <Button>Save</Button>\n * </FormActions>\n */\nfunction FormActions({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const childArray = React.Children.toArray(children)\n const hasSubComponents = childArray.some(\n (child) =>\n React.isValidElement(child) &&\n typeof child.type === \"function\" &&\n ((child.type as { name?: string }).name === \"FormActionsPrimary\" ||\n (child.type as { name?: string }).name === \"FormActionsSecondary\")\n )\n\n if (!hasSubComponents) {\n return (\n <div\n data-slot=\"form-actions\"\n className={cn(\n \"flex items-center justify-between border-t-2 pt-6 mt-6\",\n className\n )}\n {...props}\n >\n <Cluster gap=\"sm\" justify=\"end\" className=\"ml-auto\">\n {children}\n </Cluster>\n </div>\n )\n }\n\n return (\n <div\n data-slot=\"form-actions\"\n className={cn(\n \"flex items-center justify-between border-t-2 pt-6 mt-6\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\n/** Left-aligned container for secondary form actions (e.g., delete or reset). */\nfunction FormActionsSecondary({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"form-actions-secondary\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n )\n}\n\n/** Right-aligned container for primary form actions (e.g., submit). */\nfunction FormActionsPrimary({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"form-actions-primary\"\n className={cn(\"flex items-center gap-2 ml-auto\", className)}\n {...props}\n />\n )\n}\n\nexport { FormActions, FormActionsSecondary, FormActionsPrimary }\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst gapMap = {\n none: \"gap-0\",\n xs: \"gap-1\",\n sm: \"gap-2\",\n md: \"gap-4\",\n lg: \"gap-6\",\n xl: \"gap-8\",\n \"2xl\": \"gap-12\",\n} as const\n\nconst colsMap = {\n 1: \"grid-cols-1\",\n 2: \"grid-cols-2\",\n 3: \"grid-cols-3\",\n 4: \"grid-cols-4\",\n 5: \"grid-cols-5\",\n 6: \"grid-cols-6\",\n} as const\n\ntype Gap = keyof typeof gapMap\ntype Columns = 1 | 2 | 3 | 4 | 5 | 6 | \"auto-fill\" | \"auto-fit\"\n\ninterface GridProps extends React.ComponentPropsWithRef<\"div\"> {\n columns?: Columns\n gap?: Gap\n minChildWidth?: string\n asChild?: boolean\n}\n\n/**\n * CSS Grid layout component with configurable columns, gap, and auto-fill/auto-fit modes.\n *\n * @example\n * <Grid columns={3} gap=\"lg\"><Card /><Card /><Card /></Grid>\n * <Grid columns=\"auto-fill\" minChildWidth=\"200px\" gap=\"md\">...</Grid>\n *\n * @prop columns - Number of columns (1-6) or \"auto-fill\"/\"auto-fit\"\n * @prop gap - Gap size between grid items\n * @prop minChildWidth - Minimum child width for auto-fill/auto-fit columns\n * @prop asChild - Merge props onto child element via Slot\n */\nfunction Grid({\n columns = 1,\n gap = \"md\",\n minChildWidth,\n asChild = false,\n className,\n style,\n ref,\n ...props\n}: GridProps) {\n const Comp = asChild ? Slot : \"div\"\n\n const isAuto = columns === \"auto-fill\" || columns === \"auto-fit\"\n const colClass = isAuto\n ? columns === \"auto-fill\"\n ? \"grid-auto-fill\"\n : \"grid-auto-fit\"\n : colsMap[columns]\n\n return (\n <Comp\n data-slot=\"grid\"\n className={cn(\"grid\", colClass, gapMap[gap], className)}\n style={\n isAuto && minChildWidth\n ? { \"--grid-min\": minChildWidth, ...style } as React.CSSProperties\n : style\n }\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Grid, type GridProps }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Stack } from \"./stack\"\nimport { Grid } from \"./grid\"\n\n/**\n * Fieldset-based section for grouping related form fields with a header.\n *\n * @example\n * <FormSection>\n * <FormSectionHeader><FormSectionTitle>Account</FormSectionTitle></FormSectionHeader>\n * <FormSectionContent><Field>...</Field></FormSectionContent>\n * </FormSection>\n */\nfunction FormSection({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"fieldset\">) {\n return (\n <fieldset\n data-slot=\"form-section\"\n className={cn(\"space-y-6 border-0 p-0 m-0\", className)}\n ref={ref}\n {...props}\n />\n )\n}\n\n/** Container for the section title and description. */\nfunction FormSectionHeader({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"form-section-header\"\n className={cn(\"space-y-1\", className)}\n {...props}\n />\n )\n}\n\n/** Legend element used as the section heading. */\nfunction FormSectionTitle({\n className,\n ...props\n}: React.HTMLAttributes<HTMLLegendElement>) {\n return (\n <legend\n data-slot=\"form-section-title\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Muted paragraph describing the purpose of the form section. */\nfunction FormSectionDescription({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n data-slot=\"form-section-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\ninterface FormSectionContentProps extends React.ComponentPropsWithRef<\"div\"> {\n layout?: \"stack\" | \"grid\"\n}\n\n/**\n * Content area for form fields, rendered as a stack or two-column grid.\n *\n * @prop layout - \"stack\" (default) or \"grid\" for two-column layout\n */\nfunction FormSectionContent({\n layout = \"stack\",\n className,\n ref,\n children,\n ...props\n}: FormSectionContentProps) {\n if (layout === \"grid\") {\n return (\n <Grid\n data-slot=\"form-section-content\"\n columns={1}\n gap=\"md\"\n className={cn(\"md:grid-cols-2\", className)}\n ref={ref}\n {...props}\n >\n {children}\n </Grid>\n )\n }\n\n return (\n <Stack\n data-slot=\"form-section-content\"\n gap=\"md\"\n className={className}\n ref={ref}\n {...props}\n >\n {children}\n </Stack>\n )\n}\n\nexport {\n FormSection,\n FormSectionHeader,\n FormSectionTitle,\n FormSectionDescription,\n FormSectionContent,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root hover card component that manages open/close state on hover. */\nconst HoverCard = HoverCardPrimitive.Root\n\n/** Element that triggers the hover card on mouse enter. */\nconst HoverCardTrigger = HoverCardPrimitive.Trigger\n\n/**\n * Animated popover panel that appears on hover over the trigger.\n *\n * @example\n * <HoverCard>\n * <HoverCardTrigger>Hover me</HoverCardTrigger>\n * <HoverCardContent>Details here</HoverCardContent>\n * </HoverCard>\n */\nfunction HoverCardContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n data-slot=\"hover-card-content\"\n className={cn(\n \"z-50 w-64 rounded-lg border-2 bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-hover-card-content-transform-origin]\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Styled text input with focus ring, border, and disabled state support.\n *\n * @example\n * <Input type=\"email\" placeholder=\"you@example.com\" />\n */\nfunction Input({\n className,\n type,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"flex h-10 w-full rounded-md border-2 border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:border-e file:border-input file:bg-transparent file:pe-3 file:me-3 file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-surface-sunken md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Input }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Container that visually groups an Input with prefix/suffix addons sharing a single border.\n *\n * @example\n * <InputGroup>\n * <InputGroupPrefix>$</InputGroupPrefix>\n * <Input placeholder=\"0.00\" />\n * <InputGroupSuffix>USD</InputGroupSuffix>\n * </InputGroup>\n */\nfunction InputGroup({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"input-group\"\n className={cn(\n \"flex items-center border-2 rounded-md bg-background focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2\",\n \"[&_input]:border-0 [&_input]:focus-visible:ring-0 [&_input]:focus-visible:ring-offset-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Left-side addon content (icon, text) within an InputGroup. */\nfunction InputGroupPrefix({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"input-group-prefix\"\n className={cn(\"flex items-center ps-3 text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Right-side addon content (icon, text) within an InputGroup. */\nfunction InputGroupSuffix({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"input-group-suffix\"\n className={cn(\"flex items-center pe-3 text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport { InputGroup, InputGroupPrefix, InputGroupSuffix }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { OTPInput, OTPInputContext } from \"input-otp\"\nimport { Dot } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * One-time password input supporting configurable length and pattern validation.\n *\n * @example\n * <InputOTP maxLength={6}>\n * <InputOTPGroup><InputOTPSlot index={0} /><InputOTPSlot index={1} /></InputOTPGroup>\n * <InputOTPSeparator />\n * <InputOTPGroup><InputOTPSlot index={2} /><InputOTPSlot index={3} /></InputOTPGroup>\n * </InputOTP>\n */\nfunction InputOTP({\n className,\n containerClassName,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof OTPInput>) {\n return (\n <OTPInput\n ref={ref}\n data-slot=\"input-otp\"\n containerClassName={cn(\n \"flex items-center gap-2 has-[:disabled]:opacity-50\",\n containerClassName\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n )\n}\n\n/** Groups adjacent OTP slots together visually. */\nfunction InputOTPGroup({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div ref={ref} data-slot=\"input-otp-group\" className={cn(\"flex items-center\", className)} {...props} />\n )\n}\n\n/**\n * Individual character slot within an OTP input displaying a single digit.\n *\n * @prop index - Zero-based position of this slot in the OTP sequence\n */\nfunction InputOTPSlot({\n index,\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & { index: number }) {\n const inputOTPContext = React.useContext(OTPInputContext)\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index]\n\n return (\n <div\n ref={ref}\n data-slot=\"input-otp-slot\"\n className={cn(\n \"relative flex h-10 w-10 items-center justify-center border-2 rounded-md border-input text-sm transition-all\",\n isActive && \"z-10 border-ring ring-2 ring-ring ring-offset-background\",\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-px animate-caret-blink bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n )\n}\n\n/** Dot separator rendered between OTP slot groups. */\nfunction InputOTPSeparator({\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div ref={ref} role=\"separator\" data-slot=\"input-otp-separator\" {...props}>\n <Dot />\n </div>\n )\n}\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface ItemProps extends React.HTMLAttributes<HTMLDivElement> {\n active?: boolean\n disabled?: boolean\n}\n\n/**\n * Interactive list item with active and disabled states, commonly used in menus and lists.\n *\n * @example\n * <Item active onClick={handleClick}><ItemIcon><StarIcon /></ItemIcon><ItemLabel>Favorites</ItemLabel></Item>\n *\n * @prop active - Highlights the item as currently selected\n * @prop disabled - Dims the item and disables pointer events\n */\nfunction Item({ className, active, disabled, ...props }: ItemProps) {\n return (\n <div\n data-slot=\"item\"\n data-active={active ? \"true\" : undefined}\n data-disabled={disabled ? \"true\" : undefined}\n aria-disabled={disabled || undefined}\n className={cn(\n \"flex items-center gap-2 rounded-md px-3 py-2 text-sm cursor-pointer transition-colors\",\n \"hover:bg-surface-interactive\",\n \"data-[active=true]:bg-surface-interactive data-[active=true]:font-medium\",\n \"data-[disabled=true]:opacity-50 data-[disabled=true]:pointer-events-none\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Shrink-proof icon wrapper inside an Item. */\nfunction ItemIcon({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"item-icon\"\n className={cn(\"shrink-0 [&_svg]:size-4\", className)}\n {...props}\n />\n )\n}\n\n/** Truncating text label inside an Item. */\nfunction ItemLabel({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"item-label\"\n className={cn(\"truncate\", className)}\n {...props}\n />\n )\n}\n\nexport { Item, ItemIcon, ItemLabel }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface KbdProps extends React.HTMLAttributes<HTMLElement> {\n keys?: string | string[]\n}\n\n/**\n * Renders a keyboard key indicator, supporting single keys or key combinations.\n *\n * @example\n * <Kbd keys={[\"Ctrl\", \"S\"]} />\n * <Kbd>Enter</Kbd>\n *\n * @prop keys - A single key string or array of key strings to display as a combination.\n */\nfunction Kbd({ className, keys, children, ...props }: KbdProps) {\n const kbdClasses = cn(\n \"border-2 bg-surface-sunken font-mono text-[10px] rounded px-1.5 py-0.5 text-muted-foreground\",\n className\n )\n\n if (keys) {\n const keyArray = Array.isArray(keys) ? keys : [keys]\n\n return (\n <span data-slot=\"kbd-group\" className=\"inline-flex items-center gap-1\">\n {keyArray.map((key, i) => (\n <React.Fragment key={i}>\n {i > 0 && (\n <span className=\"text-[10px] text-muted-foreground\">+</span>\n )}\n <kbd className={kbdClasses} {...props}>\n {key}\n </kbd>\n </React.Fragment>\n ))}\n </span>\n )\n }\n\n return (\n <kbd data-slot=\"kbd\" className={kbdClasses} {...props}>\n {children}\n </kbd>\n )\n}\n\nexport { Kbd }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Wrapper for an individual menu within the menubar. */\nfunction MenubarMenu({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Menu>) {\n return <MenubarPrimitive.Menu data-slot=\"menubar-menu\" {...props} />\n}\n\n/** Groups related menubar items together. */\nfunction MenubarGroup({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Group>) {\n return <MenubarPrimitive.Group data-slot=\"menubar-group\" {...props} />\n}\n\n/** Portal for rendering menubar content outside the DOM hierarchy. */\nfunction MenubarPortal({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Portal>) {\n return <MenubarPrimitive.Portal {...props} />\n}\n\n/** Groups menubar radio items for single-selection behavior. */\nfunction MenubarRadioGroup({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {\n return <MenubarPrimitive.RadioGroup data-slot=\"menubar-radio-group\" {...props} />\n}\n\n/** Container for a nested submenu within the menubar. */\nfunction MenubarSub({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Sub>) {\n return <MenubarPrimitive.Sub data-slot=\"menubar-sub\" {...props} />\n}\n\n/**\n * Horizontal menubar root component built on Radix UI Menubar.\n *\n * @example\n * <Menubar>\n * <MenubarMenu>\n * <MenubarTrigger>File</MenubarTrigger>\n * <MenubarContent>\n * <MenubarItem>New</MenubarItem>\n * </MenubarContent>\n * </MenubarMenu>\n * </Menubar>\n */\nfunction Menubar({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Root>) {\n return (\n <MenubarPrimitive.Root\n ref={ref}\n data-slot=\"menubar\"\n className={cn(\n \"flex h-10 items-center space-x-1 rounded-md border-2 bg-background p-1\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Button that opens a menubar dropdown. */\nfunction MenubarTrigger({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Trigger>) {\n return (\n <MenubarPrimitive.Trigger\n ref={ref}\n data-slot=\"menubar-trigger\"\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Trigger that opens a nested submenu, displaying a chevron indicator. */\nfunction MenubarSubTrigger({\n className,\n inset,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.SubTrigger> & {\n inset?: boolean\n}) {\n return (\n <MenubarPrimitive.SubTrigger\n ref={ref}\n data-slot=\"menubar-sub-trigger\"\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto h-4 w-4\" />\n </MenubarPrimitive.SubTrigger>\n )\n}\n\n/** Animated dropdown content for a menubar submenu. */\nfunction MenubarSubContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.SubContent>) {\n return (\n <MenubarPrimitive.SubContent\n ref={ref}\n data-slot=\"menubar-sub-content\"\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-menubar-content-transform-origin]\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Animated dropdown content panel for a top-level menubar menu. */\nfunction MenubarContent({\n className,\n align = \"start\",\n alignOffset = -4,\n sideOffset = 8,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Content>) {\n return (\n <MenubarPrimitive.Portal>\n <MenubarPrimitive.Content\n ref={ref}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n data-slot=\"menubar-content\"\n className={cn(\n \"z-50 min-w-[12rem] overflow-hidden rounded-lg border-2 bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-menubar-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </MenubarPrimitive.Portal>\n )\n}\n\n/** An interactive item within a menubar dropdown. */\nfunction MenubarItem({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Item> & {\n inset?: boolean\n}) {\n return (\n <MenubarPrimitive.Item\n ref={ref}\n data-slot=\"menubar-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-surface-interactive focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A menubar item with a checkbox indicator for toggling options. */\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.CheckboxItem>) {\n return (\n <MenubarPrimitive.CheckboxItem\n ref={ref}\n data-slot=\"menubar-checkbox-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n )\n}\n\n/** A menubar item with a radio indicator for exclusive selection. */\nfunction MenubarRadioItem({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.RadioItem>) {\n return (\n <MenubarPrimitive.RadioItem\n ref={ref}\n data-slot=\"menubar-radio-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n )\n}\n\n/** Non-interactive label used to title a group of menubar items. */\nfunction MenubarLabel({\n className,\n inset,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Label> & {\n inset?: boolean\n}) {\n return (\n <MenubarPrimitive.Label\n ref={ref}\n data-slot=\"menubar-label\"\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Visual divider between groups of menubar items. */\nfunction MenubarSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof MenubarPrimitive.Separator>) {\n return (\n <MenubarPrimitive.Separator\n ref={ref}\n data-slot=\"menubar-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\n/** Displays a keyboard shortcut hint aligned to the right of a menubar item. */\nfunction MenubarShortcut({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"menubar-shortcut\"\n className={cn(\n \"ms-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Menubar,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarItem,\n MenubarSeparator,\n MenubarLabel,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarPortal,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarGroup,\n MenubarSub,\n MenubarShortcut,\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { ChevronDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Size variants for the native select element. Use with cn(nativeSelectVariants({...})) for non-select elements. */\nconst nativeSelectVariants = cva(\n \"w-full border-2 rounded-md bg-background px-3 text-sm appearance-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n size: {\n sm: \"h-9\",\n default: \"h-10\",\n lg: \"h-11\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\ninterface NativeSelectProps\n extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, \"size\">,\n VariantProps<typeof nativeSelectVariants> {}\n\n/**\n * Styled native HTML select element with a custom chevron indicator.\n *\n * @example\n * <NativeSelect size=\"default\">\n * <option value=\"a\">Option A</option>\n * </NativeSelect>\n *\n * @prop size - Controls the height of the select: \"sm\", \"default\", or \"lg\".\n */\nfunction NativeSelect({\n className,\n size,\n children,\n ...props\n}: NativeSelectProps) {\n return (\n <div data-slot=\"native-select\" className=\"relative\">\n <select\n className={cn(nativeSelectVariants({ size }), \"pe-8\", className)}\n {...props}\n >\n {children}\n </select>\n <ChevronDown className=\"pointer-events-none absolute end-2 top-1/2 size-4 -translate-y-1/2 text-muted-foreground\" />\n </div>\n )\n}\n\nexport { NativeSelect, nativeSelectVariants }\n","import * as React from \"react\"\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\"\nimport { cva } from \"class-variance-authority\"\nimport { ChevronDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Root navigation menu component built on Radix UI NavigationMenu.\n *\n * @example\n * <NavigationMenu>\n * <NavigationMenuList>\n * <NavigationMenuItem>\n * <NavigationMenuTrigger>Getting Started</NavigationMenuTrigger>\n * <NavigationMenuContent>...</NavigationMenuContent>\n * </NavigationMenuItem>\n * </NavigationMenuList>\n * </NavigationMenu>\n */\nfunction NavigationMenu({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Root>) {\n return (\n <NavigationMenuPrimitive.Root\n ref={ref}\n data-slot=\"navigation-menu\"\n className={cn(\n \"relative z-10 flex max-w-max flex-1 items-center justify-center\",\n className\n )}\n {...props}\n >\n {children}\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Root>\n )\n}\n\n/** Horizontal list container for navigation menu items. */\nfunction NavigationMenuList({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n ref={ref}\n data-slot=\"navigation-menu-list\"\n className={cn(\n \"group flex flex-1 list-none items-center justify-center space-x-1\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Individual item within a navigation menu list. */\nconst NavigationMenuItem = NavigationMenuPrimitive.Item\n\n/** Trigger button style variants. Use with cn(navigationMenuTriggerStyle()) for non-trigger elements. */\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-accent-foreground data-[state=open]:bg-accent/50 data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent\"\n)\n\n/** Button that toggles the visibility of a navigation menu content panel. */\nfunction NavigationMenuTrigger({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Trigger>) {\n return (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDown\n className=\"relative top-[1px] ms-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n )\n}\n\n/** Animated content panel revealed when a navigation menu trigger is activated. */\nfunction NavigationMenuContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Content>) {\n return (\n <NavigationMenuPrimitive.Content\n ref={ref}\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"start-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto \",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Accessible link element within a navigation menu. */\nconst NavigationMenuLink = NavigationMenuPrimitive.Link\n\n/** Viewport container that renders the active navigation menu content with animations. */\nfunction NavigationMenuViewport({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Viewport>) {\n return (\n <div className={cn(\"absolute start-0 top-full flex justify-center\")}>\n <NavigationMenuPrimitive.Viewport\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-lg border-2 bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className\n )}\n ref={ref}\n data-slot=\"navigation-menu-viewport\"\n {...props}\n />\n </div>\n )\n}\n\n/** Animated arrow indicator that tracks the active navigation menu item. */\nfunction NavigationMenuIndicator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Indicator>) {\n return (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in\",\n className\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-ss-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n )\n}\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\nimport { ButtonProps, buttonVariants } from \"@/components/ui/button\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by Pagination. All keys have English defaults. */\ninterface PaginationLabels {\n pagination?: string\n previous?: string\n next?: string\n morePages?: string\n}\n\nconst defaultPaginationLabels: Required<PaginationLabels> = {\n pagination: \"pagination\",\n previous: \"Previous\",\n next: \"Next\",\n morePages: \"More pages\",\n}\n\n/**\n * Navigation container for paginated content.\n *\n * @example\n * <Pagination>\n * <PaginationContent>\n * <PaginationItem><PaginationPrevious href=\"#\" /></PaginationItem>\n * <PaginationItem><PaginationLink href=\"#\">1</PaginationLink></PaginationItem>\n * <PaginationItem><PaginationNext href=\"#\" /></PaginationItem>\n * </PaginationContent>\n * </Pagination>\n */\nfunction Pagination({\n className,\n \"aria-label\": ariaLabel,\n labels: labelsProp,\n ...props\n}: React.ComponentProps<\"nav\"> & { labels?: PaginationLabels }) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultPaginationLabels, ctx.pagination, labelsProp)\n\n return (\n <nav\n role=\"navigation\"\n aria-label={ariaLabel ?? labels.pagination}\n data-slot=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n )\n}\n\n/** Flex row container for pagination items. */\nfunction PaginationContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"ul\">) {\n return (\n <ul\n ref={ref}\n data-slot=\"pagination-content\"\n className={cn(\"flex flex-row items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\n/** List item wrapper for a single pagination element. */\nfunction PaginationItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"li\">) {\n return (\n <li ref={ref} data-slot=\"pagination-item\" className={cn(\"\", className)} {...props} />\n )\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean\n} & Pick<ButtonProps, \"size\"> &\n React.ComponentProps<\"a\">\n\n/**\n * Styled anchor for an individual page number.\n *\n * @prop isActive - Highlights the link as the current page.\n * @prop size - Button size variant, defaults to \"icon\".\n */\nfunction PaginationLink({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) {\n return (\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n className={cn(\n buttonVariants({\n variant: isActive ? \"default\" : \"ghost\",\n size,\n }),\n className\n )}\n {...props}\n />\n )\n}\n\n/** \"Previous\" pagination link with a left chevron icon. */\nfunction PaginationPrevious({\n className,\n label,\n labels: labelsProp,\n ...props\n}: React.ComponentProps<typeof PaginationLink> & {\n /** Visible text label. @default \"Previous\" */\n label?: string\n labels?: PaginationLabels\n}) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultPaginationLabels, ctx.pagination, labelsProp)\n const resolvedLabel = label ?? labels.previous\n\n return (\n <PaginationLink\n aria-label={props[\"aria-label\"] ?? resolvedLabel}\n size=\"default\"\n data-slot=\"pagination-previous\"\n className={cn(\"gap-1 ps-2.5\", className)}\n {...props}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n <span>{resolvedLabel}</span>\n </PaginationLink>\n )\n}\n\n/** \"Next\" pagination link with a right chevron icon. */\nfunction PaginationNext({\n className,\n label,\n labels: labelsProp,\n ...props\n}: React.ComponentProps<typeof PaginationLink> & {\n /** Visible text label. @default \"Next\" */\n label?: string\n labels?: PaginationLabels\n}) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultPaginationLabels, ctx.pagination, labelsProp)\n const resolvedLabel = label ?? labels.next\n\n return (\n <PaginationLink\n aria-label={props[\"aria-label\"] ?? resolvedLabel}\n size=\"default\"\n data-slot=\"pagination-next\"\n className={cn(\"gap-1 pe-2.5\", className)}\n {...props}\n >\n <span>{resolvedLabel}</span>\n <ChevronRight className=\"h-4 w-4\" />\n </PaginationLink>\n )\n}\n\n/** Ellipsis indicator representing omitted page numbers. */\nfunction PaginationEllipsis({\n className,\n label,\n labels: labelsProp,\n ...props\n}: React.ComponentProps<\"span\"> & {\n /** Screen-reader text for the ellipsis. @default \"More pages\" */\n label?: string\n labels?: PaginationLabels\n}) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultPaginationLabels, ctx.pagination, labelsProp)\n const resolvedLabel = label ?? labels.morePages\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">{resolvedLabel}</span>\n </span>\n )\n}\n\nexport {\n type PaginationLabels,\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Horizontal progress bar indicating completion percentage.\n *\n * @example\n * <Progress value={60} />\n *\n * @prop value - Current progress from 0 to 100.\n */\nfunction Progress({\n className,\n value,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ProgressPrimitive.Root>) {\n return (\n <ProgressPrimitive.Root\n ref={ref}\n data-slot=\"progress\"\n className={cn(\n \"relative h-3 w-full overflow-hidden rounded-full border-2 bg-surface-sunken\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className=\"h-full w-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n )\n}\n\nexport { Progress }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A group of radio inputs where only one can be selected at a time.\n *\n * @example\n * <RadioGroup defaultValue=\"a\">\n * <RadioGroupItem value=\"a\" />\n * <RadioGroupItem value=\"b\" />\n * </RadioGroup>\n */\nfunction RadioGroup({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n data-slot=\"radio-group\"\n />\n )\n}\n\n/** An individual radio option within a RadioGroup. */\nfunction RadioGroupItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n data-slot=\"radio-group-item\"\n className={cn(\n \"aspect-square h-[18px] w-[18px] rounded-full border-2 border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n","\"use client\"\n\nimport { GripVertical } from \"lucide-react\"\nimport { Group, Panel, Separator } from \"react-resizable-panels\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A container that arranges resizable panels in a horizontal or vertical layout.\n *\n * @example\n * <ResizablePanelGroup direction=\"horizontal\">\n * <ResizablePanel>Left</ResizablePanel>\n * <ResizableHandle />\n * <ResizablePanel>Right</ResizablePanel>\n * </ResizablePanelGroup>\n */\nconst ResizablePanelGroup = ({\n className,\n ...props\n}: React.ComponentProps<typeof Group>) => (\n <Group\n className={cn(\n \"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\",\n className\n )}\n {...props}\n />\n)\n\n/** A single resizable panel within a ResizablePanelGroup. */\nconst ResizablePanel = Panel\n\n/**\n * A draggable handle between resizable panels for adjusting their sizes.\n *\n * @example\n * <ResizableHandle withHandle />\n *\n * @prop withHandle - Whether to show a visible grip icon on the handle.\n */\nconst ResizableHandle = ({\n withHandle,\n className,\n ...props\n}: React.ComponentProps<typeof Separator> & {\n withHandle?: boolean\n}) => (\n <Separator\n className={cn(\n \"relative flex w-px items-center justify-center bg-border hover:bg-primary transition-colors after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:start-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90\",\n className\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border\">\n <GripVertical className=\"h-2.5 w-2.5\" />\n </div>\n )}\n </Separator>\n)\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A scrollable area with custom styled scrollbars.\n *\n * @example\n * <ScrollArea className=\"h-72\">\n * <div>Scrollable content</div>\n * </ScrollArea>\n */\nfunction ScrollArea({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root\n ref={ref}\n data-slot=\"scroll-area\"\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\n/** A styled scrollbar track and thumb, used internally by ScrollArea. */\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n data-slot=\"scroll-bar\"\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-s border-s-transparent p-[1px]\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border hover:bg-muted-foreground\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n )\n}\n\nexport { ScrollArea, ScrollBar }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Search, X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\nimport { Input } from \"./input\"\nimport { InputGroup, InputGroupPrefix, InputGroupSuffix } from \"./input-group\"\nimport { Kbd } from \"./kbd\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by SearchField. All keys have English defaults. */\ninterface SearchFieldLabels {\n placeholder?: string\n clearSearch?: string\n}\n\nconst defaultSearchFieldLabels: Required<SearchFieldLabels> = {\n placeholder: \"Search...\",\n clearSearch: \"Clear search\",\n}\n\n/** Props for the SearchField component. */\ninterface SearchFieldProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n placeholder?: string\n shortcut?: string\n value: string\n onChange: (value: string) => void\n onClear?: () => void\n /** Accessible label for the clear button. @default \"Clear search\" */\n clearLabel?: string\n labels?: SearchFieldLabels\n}\n\n/**\n * A search input with a search icon, clearable value, and optional keyboard shortcut hint.\n *\n * @example\n * <SearchField value={query} onChange={setQuery} shortcut=\"/\" />\n *\n * @prop value - The current search string.\n * @prop onChange - Callback fired when the search value changes.\n * @prop shortcut - Optional keyboard shortcut label displayed when empty.\n * @prop onClear - Optional callback fired when the clear button is clicked.\n */\nfunction SearchField({\n placeholder,\n shortcut,\n value,\n onChange,\n onClear,\n clearLabel,\n labels: labelsProp,\n className,\n ...props\n}: SearchFieldProps) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultSearchFieldLabels, ctx.searchField, labelsProp)\n const resolvedPlaceholder = placeholder ?? labels.placeholder\n const resolvedClearLabel = clearLabel ?? labels.clearSearch\n\n return (\n <InputGroup\n data-slot=\"search-field\"\n role=\"search\"\n className={cn(className)}\n {...props}\n >\n <InputGroupPrefix>\n <Search className=\"size-4\" aria-hidden=\"true\" />\n </InputGroupPrefix>\n <Input\n type=\"search\"\n placeholder={resolvedPlaceholder}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n aria-label={resolvedPlaceholder}\n className=\"border-0 focus-visible:ring-0 focus-visible:ring-offset-0\"\n />\n {value ? (\n <InputGroupSuffix>\n <button\n type=\"button\"\n aria-label={resolvedClearLabel}\n onClick={() => {\n onChange(\"\")\n onClear?.()\n }}\n className=\"inline-flex items-center justify-center rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n >\n <X\n className=\"size-4 cursor-pointer hover:text-foreground transition-colors\"\n aria-hidden=\"true\"\n />\n </button>\n </InputGroupSuffix>\n ) : shortcut ? (\n <InputGroupSuffix>\n <Kbd>{shortcut}</Kbd>\n </InputGroupSuffix>\n ) : null}\n </InputGroup>\n )\n}\n\nexport { SearchField, type SearchFieldLabels }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root component that manages select state and context. */\nconst Select = SelectPrimitive.Root\n\n/** Groups related select items with an optional label. */\nconst SelectGroup = SelectPrimitive.Group\n\n/** Renders the currently selected value or placeholder text. */\nconst SelectValue = SelectPrimitive.Value\n\n/**\n * The button that toggles the select dropdown.\n *\n * @example\n * <Select>\n * <SelectTrigger><SelectValue placeholder=\"Pick one\" /></SelectTrigger>\n * <SelectContent>\n * <SelectItem value=\"a\">Option A</SelectItem>\n * </SelectContent>\n * </Select>\n */\nfunction SelectTrigger({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.Trigger>) {\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n data-slot=\"select-trigger\"\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-md border-2 border-input bg-background px-3 py-2 text-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n}\n\n/** A button shown at the top of the dropdown to scroll content upward. */\nfunction SelectScrollUpButton({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n )\n}\n\n/** A button shown at the bottom of the dropdown to scroll content downward. */\nfunction SelectScrollDownButton({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n )\n}\n\n/** The dropdown popover that contains selectable items. */\nfunction SelectContent({\n className,\n children,\n position = \"popper\",\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n data-slot=\"select-content\"\n className={cn(\n \"relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border-2 bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n}\n\n/** A non-interactive label for a group of select items. */\nfunction SelectLabel({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n ref={ref}\n data-slot=\"select-label\"\n className={cn(\"py-1.5 ps-8 pe-2 text-sm font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** A selectable option within the select dropdown. */\nfunction SelectItem({\n className,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n ref={ref}\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none hover:bg-surface-interactive focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n )\n}\n\n/** A visual divider between groups of select items. */\nfunction SelectSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n ref={ref}\n data-slot=\"select-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A visual divider that separates content horizontally or vertically.\n *\n * @example\n * <Separator orientation=\"horizontal\" />\n */\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n data-slot=\"separator\"\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by Sheet. All keys have English defaults. */\ninterface SheetLabels {\n close?: string\n}\n\nconst defaultSheetLabels: Required<SheetLabels> = {\n close: \"Close\",\n}\n\n/** Root component that manages sheet open/closed state. */\nconst Sheet = SheetPrimitive.Root\n\n/** A button or element that opens the sheet when clicked. */\nconst SheetTrigger = SheetPrimitive.Trigger\n\n/** A button or element that closes the sheet when clicked. */\nconst SheetClose = SheetPrimitive.Close\n\n/** Portals sheet content into the document body. */\nconst SheetPortal = SheetPrimitive.Portal\n\n/** A semi-transparent backdrop displayed behind the sheet content. */\nfunction SheetOverlay({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n data-slot=\"sheet-overlay\"\n />\n )\n}\n\n/** Sheet position variants for top/bottom/left/right sides. Use with cn(sheetVariants({...})) for non-sheet elements. */\nconst sheetVariants = cva(\n \"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b-2 data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t-2 data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 start-0 h-full w-3/4 border-e-2 data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right:\n \"inset-y-0 end-0 h-full w-3/4 border-s-2 data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\ninterface SheetContentProps\n extends React.ComponentPropsWithRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\n/**\n * The sliding panel content of the sheet, rendered from a specified side.\n *\n * @example\n * <Sheet>\n * <SheetTrigger>Open</SheetTrigger>\n * <SheetContent side=\"right\">Content here</SheetContent>\n * </Sheet>\n *\n * @prop side - Which edge the sheet slides in from (top, bottom, left, right).\n */\nfunction SheetContent({\n side = \"right\",\n className,\n children,\n labels: labelsProp,\n ref,\n ...props\n}: SheetContentProps & { labels?: SheetLabels }) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultSheetLabels, ctx.sheet, labelsProp)\n\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n data-slot=\"sheet-content\"\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">{labels.close}</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n}\n\n/** A layout container for the sheet's title and description at the top. */\nfunction SheetHeader({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-start\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A layout container for action buttons at the bottom of the sheet. */\nfunction SheetFooter({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** The accessible title heading for the sheet. */\nfunction SheetTitle({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n ref={ref}\n data-slot=\"sheet-title\"\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** An accessible description for the sheet content. */\nfunction SheetDescription({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n ref={ref}\n data-slot=\"sheet-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n type SheetLabels,\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import * as React from \"react\"\n\nconst MOBILE_BREAKPOINT = 768\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n }\n mql.addEventListener(\"change\", onChange)\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [])\n\n return !!isMobile\n}\n","import { cn } from \"@/lib/utils\"\n\n/**\n * A pulsing placeholder element used to indicate loading content.\n *\n * @example\n * <Skeleton className=\"h-4 w-48\" />\n */\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Global tooltip configuration provider (delay, skip-delay, etc.). */\nconst TooltipProvider = TooltipPrimitive.Provider\n\n/** Root tooltip wrapper that manages open state. */\nconst Tooltip = TooltipPrimitive.Root\n\n/** Element that triggers the tooltip on hover/focus. */\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\n/** Animated popover content displayed when the tooltip is open.\n *\n * @example\n * <Tooltip><TooltipTrigger>Hover me</TooltipTrigger><TooltipContent>Tip text</TooltipContent></Tooltip>\n */\nfunction TooltipContent({\n className,\n sideOffset = 4,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n data-slot=\"tooltip-content\"\n className={cn(\n \"z-50 overflow-hidden rounded-md border-2 border-border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { PanelLeft } from \"lucide-react\"\n\nimport { useIsMobile } from \"@/hooks/use-mobile\"\nimport { cn } from \"@/lib/utils\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"@/components/ui/sheet\"\nimport { Skeleton } from \"@/components/ui/skeleton\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/components/ui/tooltip\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by Sidebar. All keys have English defaults. */\ninterface SidebarLabels {\n toggleSidebar?: string\n mobileTitle?: string\n mobileDescription?: string\n}\n\nconst defaultSidebarLabels: Required<SidebarLabels> = {\n toggleSidebar: \"Toggle Sidebar\",\n mobileTitle: \"Sidebar\",\n mobileDescription: \"Displays the mobile sidebar.\",\n}\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\"\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\nconst SIDEBAR_WIDTH = \"16rem\"\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\"\nconst SIDEBAR_WIDTH_ICON = \"3rem\"\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\"\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\"\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null)\n\n/** Returns the sidebar context including open state, toggle, and mobile detection. */\nfunction useSidebar() {\n const context = React.useContext(SidebarContext)\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\")\n }\n\n return context\n}\n\n/**\n * Provides sidebar context and manages expand/collapse state, mobile sheet, and keyboard shortcut.\n *\n * @example\n * <SidebarProvider>\n * <Sidebar>...</Sidebar>\n * <SidebarInset>main content</SidebarInset>\n * </SidebarProvider>\n */\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n}) {\n const isMobile = useIsMobile()\n const [openMobile, setOpenMobile] = React.useState(false)\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n },\n [setOpenProp, open]\n )\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile\n ? setOpenMobile((open) => !open)\n : setOpen((open) => !open)\n }, [isMobile, setOpen, setOpenMobile])\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault()\n toggleSidebar()\n }\n }\n\n window.addEventListener(\"keydown\", handleKeyDown)\n return () => window.removeEventListener(\"keydown\", handleKeyDown)\n }, [toggleSidebar])\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\"\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-provider\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n )\n}\n\n/**\n * The main sidebar container that renders as a fixed panel on desktop or a sheet on mobile.\n *\n * @prop side - Which edge the sidebar appears on (left or right).\n * @prop variant - Visual variant (sidebar, floating, inset).\n * @prop collapsible - Collapse behavior (offcanvas, icon, none).\n */\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n mobileTitle,\n mobileDescription,\n labels: labelsProp,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\n /** Screen-reader title for the mobile sheet. @default \"Sidebar\" */\n mobileTitle?: string\n /** Screen-reader description for the mobile sheet. @default \"Displays the mobile sidebar.\" */\n mobileDescription?: string\n labels?: SidebarLabels\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n const ctx = useLabels()\n const labels = resolveLabels(defaultSidebarLabels, ctx.sidebar, labelsProp)\n const resolvedMobileTitle = mobileTitle ?? labels.mobileTitle\n const resolvedMobileDescription = mobileDescription ?? labels.mobileDescription\n\n if (collapsible === \"none\") {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n \"flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-slot=\"sidebar\"\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>{resolvedMobileTitle}</SheetTitle>\n <SheetDescription>{resolvedMobileDescription}</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n ref={ref}\n data-slot=\"sidebar\"\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n \"relative w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\"\n )}\n />\n <div\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"start-0 group-data-[collapsible=offcanvas]:start-[calc(var(--sidebar-width)*-1)]\"\n : \"end-0 group-data-[collapsible=offcanvas]:end-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-e-2 group-data-[side=right]:border-s-2\",\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n}\n\n/** A button that toggles the sidebar open/closed state. */\nfunction SidebarTrigger({\n className,\n onClick,\n label,\n labels: labelsProp,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof Button> & {\n /** Screen-reader label for the trigger button. @default \"Toggle Sidebar\" */\n label?: string\n labels?: SidebarLabels\n}) {\n const { toggleSidebar } = useSidebar()\n const ctx = useLabels()\n const labels = resolveLabels(defaultSidebarLabels, ctx.sidebar, labelsProp)\n const resolvedLabel = label ?? labels.toggleSidebar\n\n return (\n <Button\n ref={ref}\n data-slot=\"sidebar-trigger\"\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"h-7 w-7\", className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">{resolvedLabel}</span>\n </Button>\n )\n}\n\n/** A thin interactive rail at the sidebar edge for toggling via click or drag. */\nfunction SidebarRail({\n className,\n label,\n labels: labelsProp,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"button\"> & {\n /** Accessible label for the rail. @default \"Toggle Sidebar\" */\n label?: string\n labels?: SidebarLabels\n}) {\n const { toggleSidebar } = useSidebar()\n const ctx = useLabels()\n const labels = resolveLabels(defaultSidebarLabels, ctx.sidebar, labelsProp)\n const resolvedLabel = label ?? labels.toggleSidebar\n\n return (\n <button\n ref={ref}\n data-slot=\"sidebar-rail\"\n data-sidebar=\"rail\"\n aria-label={resolvedLabel}\n tabIndex={-1}\n onClick={toggleSidebar}\n title={resolvedLabel}\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:start-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-end-4 group-data-[side=right]:start-0 sm:flex\",\n \"[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:start-full group-data-[collapsible=offcanvas]:hover:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-end-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-start-2\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** The main content area adjacent to the sidebar. */\nfunction SidebarInset({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"main\">) {\n return (\n <main\n ref={ref}\n data-slot=\"sidebar-inset\"\n className={cn(\n \"relative flex w-full flex-1 flex-col bg-background\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ms-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A styled text input for use within the sidebar. */\nfunction SidebarInput({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof Input>) {\n return (\n <Input\n ref={ref}\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\n \"h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A container for content at the top of the sidebar. */\nfunction SidebarHeader({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n}\n\n/** A container for content at the bottom of the sidebar. */\nfunction SidebarFooter({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n )\n}\n\n/** A horizontal divider styled for the sidebar context. */\nfunction SidebarSeparator({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof Separator>) {\n return (\n <Separator\n ref={ref}\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\"mx-2 w-auto bg-sidebar-border\", className)}\n {...props}\n />\n )\n}\n\n/** The scrollable body area of the sidebar that holds groups and menus. */\nfunction SidebarContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A logical grouping of sidebar items, typically with a label. */\nfunction SidebarGroup({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n )\n}\n\n/** A small label heading for a SidebarGroup. */\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"div\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** An action button positioned at the top-right of a SidebarGroup. */\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"button\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute end-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A wrapper for the content within a SidebarGroup. */\nfunction SidebarGroupContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n )\n}\n\n/** A list container for sidebar menu items. */\nfunction SidebarMenu({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"ul\">) {\n return (\n <ul\n ref={ref}\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n )\n}\n\n/** A list item wrapper for a single sidebar menu entry. */\nfunction SidebarMenuItem({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"li\">) {\n return (\n <li\n ref={ref}\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n )\n}\n\n/** Sidebar menu button style variants. Use with cn(sidebarMenuButtonVariants({...})) for non-button elements. */\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-start text-sm outline-none ring-sidebar-ring transition-[width,height,padding] active:translate-y-[1.5px] transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pe-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\n/**\n * An interactive button within a sidebar menu item, with optional tooltip when collapsed.\n *\n * @prop isActive - Whether the item is currently active/selected.\n * @prop tooltip - Tooltip content shown when the sidebar is collapsed.\n */\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"button\"> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot : \"button\"\n const { isMobile, state } = useSidebar()\n\n const button = (\n <Comp\n ref={ref}\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n )\n\n if (!tooltip) {\n return button\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n }\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n )\n}\n\n/** A secondary action button (e.g. delete, edit) within a sidebar menu item. */\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"button\"> & {\n asChild?: boolean\n showOnHover?: boolean\n}) {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute end-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A badge displayed alongside a sidebar menu button, such as a count indicator. */\nfunction SidebarMenuBadge({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute end-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A loading placeholder skeleton for a sidebar menu item. */\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & {\n showIcon?: boolean\n}) {\n // Random width between 50 to 90%.\n const [width, setWidth] = React.useState(\"70%\")\n React.useEffect(() => {\n setWidth(`${Math.floor(Math.random() * 40) + 50}%`)\n }, [])\n\n return (\n <div\n ref={ref}\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n )\n}\n\n/** A nested sub-menu list within a sidebar menu item. */\nfunction SidebarMenuSub({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"ul\">) {\n return (\n <ul\n ref={ref}\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-s-2 border-sidebar-border px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** A list item wrapper for a single entry within a SidebarMenuSub. */\nfunction SidebarMenuSubItem({\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"li\">) {\n return <li ref={ref} data-slot=\"sidebar-menu-sub-item\" {...props} />\n}\n\n/** An interactive button within a sidebar sub-menu item. */\nfunction SidebarMenuSubButton({\n asChild = false,\n size = \"md\",\n isActive,\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"a\"> & {\n asChild?: boolean\n size?: \"sm\" | \"md\"\n isActive?: boolean\n}) {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n ref={ref}\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n type SidebarLabels,\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n sidebarMenuButtonVariants,\n useSidebar,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A range input that allows selecting a numeric value by dragging a thumb along a track.\n *\n * @example\n * <Slider defaultValue={[50]} max={100} step={1} />\n */\nfunction Slider({\n className,\n defaultValue,\n value,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SliderPrimitive.Root>) {\n const thumbCount = (value ?? defaultValue ?? [0]).length\n return (\n <SliderPrimitive.Root\n ref={ref}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-full border-2 bg-surface-sunken\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\n </SliderPrimitive.Track>\n {Array.from({ length: thumbCount }, (_, i) => (\n <SliderPrimitive.Thumb\n key={i}\n className=\"block size-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n","\"use client\"\n\nimport {\n CircleCheck,\n Info,\n LoaderCircle,\n OctagonX,\n TriangleAlert,\n} from \"lucide-react\"\nimport { useTheme } from \"next-themes\"\nimport { Toaster as Sonner } from \"sonner\"\n\n/** Props for the Toaster component. */\ntype ToasterProps = React.ComponentProps<typeof Sonner>\n\n/**\n * A theme-aware toast notification container powered by Sonner.\n *\n * @example\n * <Toaster />\n */\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = \"system\" } = useTheme()\n\n return (\n <Sonner\n theme={theme as ToasterProps[\"theme\"]}\n className=\"toaster group\"\n icons={{\n success: <CircleCheck className=\"h-4 w-4\" />,\n info: <Info className=\"h-4 w-4\" />,\n warning: <TriangleAlert className=\"h-4 w-4\" />,\n error: <OctagonX className=\"h-4 w-4\" />,\n loading: <LoaderCircle className=\"h-4 w-4 animate-spin\" />,\n }}\n toastOptions={{\n classNames: {\n toast:\n \"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-2 group-[.toaster]:border-border group-[.toaster]:shadow-lg\",\n description: \"group-[.toast]:text-muted-foreground\",\n actionButton:\n \"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground\",\n cancelButton:\n \"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground\",\n success:\n \"group-[.toaster]:!border-status-success group-[.toaster]:!bg-status-success-surface group-[.toaster]:!text-status-success-text\",\n error:\n \"group-[.toaster]:!border-status-error group-[.toaster]:!bg-status-error-surface group-[.toaster]:!text-status-error-text\",\n warning:\n \"group-[.toaster]:!border-status-warning group-[.toaster]:!bg-status-warning-surface group-[.toaster]:!text-status-warning-text\",\n },\n }}\n {...props}\n />\n )\n}\n\nexport { Toaster }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Map of size tokens to pixel values for the Spacer component. */\nconst sizeMap = {\n none: \"0px\",\n xs: \"4px\",\n sm: \"8px\",\n md: \"16px\",\n lg: \"24px\",\n xl: \"32px\",\n \"2xl\": \"48px\",\n} as const\n\ntype Size = keyof typeof sizeMap\n\ninterface SpacerProps extends React.ComponentPropsWithRef<\"div\"> {\n size?: Size\n axis?: \"horizontal\" | \"vertical\"\n}\n\n/**\n * A flexible spacing element that either fills available space or adds a fixed gap.\n *\n * @example\n * <Spacer size=\"md\" axis=\"vertical\" />\n *\n * @prop size - The spacing size token; omit to fill available flex space.\n * @prop axis - Whether spacing is applied horizontally or vertically.\n */\nfunction Spacer({\n size,\n axis = \"vertical\",\n className,\n style,\n ...props\n}: SpacerProps) {\n if (size === undefined) {\n return (\n <div\n data-slot=\"spacer\"\n className={cn(\"flex-1\", className)}\n {...props}\n />\n )\n }\n\n const dimension = sizeMap[size]\n const sizeStyle =\n axis === \"horizontal\"\n ? { width: dimension, minWidth: dimension }\n : { height: dimension, minHeight: dimension }\n\n return (\n <div\n data-slot=\"spacer\"\n className={className}\n style={{ ...sizeStyle, ...style }}\n {...props}\n />\n )\n}\n\nexport { Spacer, type SpacerProps }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { resolveLabels } from \"@/lib/resolve-labels\"\nimport { useLabels } from \"@/components/providers/labels-provider\"\n\n// ─── i18n labels ────────────────────────────────────────────────────\n\n/** Translatable strings used by Spinner. All keys have English defaults. */\ninterface SpinnerLabels {\n loading?: string\n}\n\nconst defaultSpinnerLabels: Required<SpinnerLabels> = {\n loading: \"Loading…\",\n}\n\n/** Spinner size variants. Use with cn(spinnerVariants({...})) for non-spinner elements. */\nconst spinnerVariants = cva(\n \"rounded-full border-2\",\n {\n variants: {\n size: {\n sm: \"size-4\",\n default: \"size-6\",\n lg: \"size-8\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/**\n * An animated loading spinner indicator.\n *\n * @example\n * <Spinner size=\"lg\" />\n *\n * @prop size - The spinner diameter (sm, default, lg).\n */\nfunction Spinner({\n className,\n size,\n labels: labelsProp,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof spinnerVariants> & { labels?: SpinnerLabels }) {\n const ctx = useLabels()\n const labels = resolveLabels(defaultSpinnerLabels, ctx.spinner, labelsProp)\n\n return (\n <div\n data-slot=\"spinner\"\n role=\"status\"\n className={cn(spinnerVariants({ size }), className)}\n {...props}\n >\n <span className=\"sr-only\">{labels.loading}</span>\n </div>\n )\n}\n\nexport { Spinner, spinnerVariants, type SpinnerLabels }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * A toggle switch for boolean on/off input.\n *\n * @example\n * <Switch checked={enabled} onCheckedChange={setEnabled} />\n */\nfunction Switch({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof SwitchPrimitives.Root>) {\n return (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-[26px] w-[44px] shrink-0 cursor-pointer items-center rounded-full border-2 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n className\n )}\n {...props}\n ref={ref}\n data-slot=\"switch\"\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block size-[20px] rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-[18px] data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n )\n}\n\nexport { Switch }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Multi-line text input with consistent border, focus ring, and disabled styles.\n *\n * @example\n * <Textarea placeholder=\"Enter description...\" rows={4} />\n */\nfunction Textarea({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border-2 border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-surface-sunken md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Toggle button style variants (default, outline) and sizes. Use with cn(toggleVariants({...})) for non-Toggle elements. */\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors active:translate-y-[1.5px] transition-transform hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border-2 border-input bg-transparent hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-10 px-3 min-w-10\",\n sm: \"h-9 px-2.5 min-w-9\",\n lg: \"h-11 px-5 min-w-11\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\n/** A two-state toggle button built on Radix Toggle.\n *\n * @example\n * <Toggle variant=\"outline\" size=\"sm\"><BoldIcon /></Toggle>\n *\n * @prop variant - Visual style: \"default\" or \"outline\".\n * @prop size - Button size: \"sm\", \"default\", or \"lg\".\n */\nfunction Toggle({\n className,\n variant,\n size,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n ref={ref}\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\"\nimport { type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { toggleVariants } from \"@/components/ui/toggle\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants>\n>({\n size: \"default\",\n variant: \"default\",\n})\n\n/** A group of toggle buttons that share variant and size context.\n *\n * @example\n * <ToggleGroup type=\"single\" variant=\"outline\"><ToggleGroupItem value=\"a\">A</ToggleGroupItem></ToggleGroup>\n *\n * @prop variant - Visual style applied to all child items.\n * @prop size - Size applied to all child items.\n */\nfunction ToggleGroup({\n className,\n variant,\n size,\n children,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <ToggleGroupPrimitive.Root\n ref={ref}\n data-slot=\"toggle-group\"\n className={cn(\"flex items-center justify-center gap-1\", className)}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n )\n}\n\n/** Individual toggle item within a ToggleGroup. */\nfunction ToggleGroupItem({\n className,\n children,\n variant,\n size,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <ToggleGroupPrimitive.Item\n ref={ref}\n data-slot=\"toggle-group-item\"\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Semantic h1 heading with bold, tight tracking at 4xl size. */\nfunction H1({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h1\n data-slot=\"h1\"\n className={cn(\"text-4xl font-bold tracking-tight\", className)}\n {...props}\n />\n )\n}\n\n/** Semantic h2 heading with semibold weight at 3xl size. */\nfunction H2({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h2\n data-slot=\"h2\"\n className={cn(\"text-3xl font-semibold tracking-tight\", className)}\n {...props}\n />\n )\n}\n\n/** Semantic h3 heading with semibold weight at 2xl size. */\nfunction H3({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h3\n data-slot=\"h3\"\n className={cn(\"text-2xl font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Semantic h4 heading with semibold weight at xl size. */\nfunction H4({ className, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n return (\n <h4\n data-slot=\"h4\"\n className={cn(\"text-xl font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Standard paragraph element with base size and relaxed leading. */\nfunction P({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n data-slot=\"p\"\n className={cn(\"text-base leading-7\", className)}\n {...props}\n />\n )\n}\n\n/** Lead paragraph rendered in xl muted text for introductory copy. */\nfunction Lead({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n data-slot=\"lead\"\n className={cn(\"text-xl text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Large semibold text block rendered as a div. */\nfunction Large({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n data-slot=\"large\"\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n )\n}\n\n/** Small text element with medium weight and tight leading. */\nfunction Small({\n className,\n ...props\n}: React.HTMLAttributes<HTMLElement>) {\n return (\n <small\n data-slot=\"small\"\n className={cn(\"text-sm font-medium leading-none\", className)}\n {...props}\n />\n )\n}\n\n/** Muted paragraph in small size for secondary or helper text. */\nfunction Muted({\n className,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement>) {\n return (\n <p\n data-slot=\"muted\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Inline code snippet with monospace font and sunken background. */\nfunction Code({\n className,\n ...props\n}: React.HTMLAttributes<HTMLElement>) {\n return (\n <code\n data-slot=\"code\"\n className={cn(\n \"font-mono text-sm bg-surface-sunken rounded px-[0.3rem] py-[0.2rem]\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Inline monospace span without background styling. */\nfunction Mono({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"mono\"\n className={cn(\"font-mono text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport { H1, H2, H3, H4, P, Lead, Large, Small, Muted, Code, Mono }\n"]}