@webdevarif/dashui 0.1.8 → 0.1.9
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 +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/primitives/button.tsx","../src/lib/utils.ts","../src/components/primitives/badge.tsx","../src/components/primitives/card.tsx","../src/components/primitives/checkbox.tsx","../src/components/primitives/dialog.tsx","../src/components/primitives/dropdown-menu.tsx","../src/components/primitives/input.tsx","../src/components/primitives/label.tsx","../src/components/primitives/popover.tsx","../src/components/primitives/select.tsx","../src/components/primitives/separator.tsx","../src/components/primitives/skeleton.tsx","../src/components/primitives/switch.tsx","../src/components/primitives/tabs.tsx","../src/components/primitives/textarea.tsx","../src/components/primitives/tooltip.tsx","../src/components/layout/app-shell.tsx","../src/components/layout/sidebar.tsx","../src/components/layout/top-bar.tsx","../src/components/layout/page.tsx","../src/components/layout/page-section.tsx","../src/components/data/data-table.tsx","../src/components/data/empty-state.tsx","../src/components/data/pagination.tsx","../src/components/data/stats.tsx","../src/components/form/form-field.tsx","../src/components/form/form-layout.tsx","../src/components/form/form-section.tsx","../src/components/feedback/alert.tsx","../src/components/feedback/loading-spinner.tsx","../src/components/feedback/confirm-dialog.tsx","../src/hooks/index.ts","../src/components/auth/AuthShell.tsx","../src/components/auth/AuthCard.tsx","../src/components/auth/AuthLogo.tsx","../src/components/auth/AuthHeader.tsx","../src/components/auth/AuthField.tsx","../src/components/auth/AuthButton.tsx","../src/components/auth/AuthDivider.tsx","../src/components/auth/AuthFootnote.tsx","../src/components/Skeleton.tsx","../src/index.ts"],"sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-lg text-sm font-medium 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 variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\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-lg px-3\",\n lg: \"h-11 rounded-lg px-8\",\n icon: \"h-10 w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n }\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold 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-green-100 text-green-800 dark:bg-green-900 dark:text-green-100\",\n warning:\n \"border-transparent bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-100\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"text-2xl font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n","import * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border 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]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","import * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nconst Dialog = DialogPrimitive.Root;\nconst DialogTrigger = DialogPrimitive.Trigger;\nconst DialogClose = DialogPrimitive.Close;\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\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));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\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 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 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 right-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\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\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);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","import * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<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 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<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 rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 =\n DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<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 rounded-md border 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\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<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 flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<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 rounded-sm py-1.5 pl-8 pr-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 left-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));\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<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 rounded-sm py-1.5 pl-8 pr-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 left-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));\nDropdownMenuRadioItem.displayName =\n DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<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-semibold\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<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-px bg-muted\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName =\n DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n );\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n};\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n error?: boolean;\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, error, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-lg border border-input bg-background px-3 py-2 text-sm ring-offset-background\",\n \"file:border-0 file:bg-transparent file:text-sm file:font-medium\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n error && \"border-destructive focus-visible:ring-destructive\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","import * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cn } from \"../../lib/utils\";\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(\n \"block text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n className\n )}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","import * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { cn } from \"../../lib/utils\";\n\nconst Popover = PopoverPrimitive.Root;\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-md border 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\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverTrigger, PopoverContent };\n","import * 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 Select = SelectPrimitive.Root;\nconst SelectGroup = SelectPrimitive.Group;\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-lg border border-input bg-background px-3 py-2 text-sm\",\n \"ring-offset-background placeholder:text-muted-foreground\",\n \"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"[&>span]:line-clamp-1\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50 shrink-0\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n // explicit bg + border + shadow so it never relies on missing CSS vars\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden\",\n \"rounded-lg border border-border bg-white text-foreground shadow-lg\",\n \"dark:bg-zinc-900 dark:border-zinc-700\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2\",\n \"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 <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));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"py-1.5 pl-8 pr-2 text-xs font-semibold text-muted-foreground\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center\",\n \"rounded-md py-2 pl-9 pr-3 text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n {/* Checkmark — left aligned */}\n <span className=\"absolute left-2.5 flex h-4 w-4 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-3.5 w-3.5 text-primary\" strokeWidth={2.5} />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select, SelectGroup, SelectValue, SelectTrigger,\n SelectContent, SelectLabel, SelectItem,\n SelectSeparator, SelectScrollUpButton, SelectScrollDownButton,\n};\n","import * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport { cn } from \"../../lib/utils\";\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","import { cn } from \"../../lib/utils\";\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","import * as React from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport { cn } from \"../../lib/utils\";\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-[24px] w-[44px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","import * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { cn } from \"../../lib/utils\";\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm\",\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n error?: boolean;\n}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, error, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n error && \"border-destructive focus-visible:ring-destructive\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n","import * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"../../lib/utils\";\n\nconst TooltipProvider = TooltipPrimitive.Provider;\nconst Tooltip = TooltipPrimitive.Root;\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-md 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\",\n className\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface AppShellProps {\n sidebar: React.ReactNode;\n children: React.ReactNode;\n collapsed?: boolean;\n}\n\nexport function AppShell({ sidebar, children, collapsed }: AppShellProps) {\n return (\n <div className=\"flex h-screen overflow-hidden bg-background\">\n <aside\n className={cn(\n \"hidden border-r bg-card transition-all duration-300 md:block\",\n collapsed\n ? \"w-[var(--sidebar-collapsed-width)]\"\n : \"w-[var(--sidebar-width)]\"\n )}\n >\n {sidebar}\n </aside>\n <main className=\"flex flex-1 flex-col overflow-hidden\">{children}</main>\n </div>\n );\n}\n","import * as React from \"react\";\nimport { ChevronDown, ChevronsLeft, ChevronsRight } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface SidebarItem {\n label: string;\n href: string;\n icon?: React.ComponentType<{ className?: string }>;\n badge?: string | number;\n children?: SidebarItem[];\n active?: boolean;\n}\n\nexport interface SidebarProps {\n logo?: React.ReactNode;\n items: SidebarItem[];\n footer?: React.ReactNode;\n collapsed?: boolean;\n onCollapse?: (collapsed: boolean) => void;\n}\n\nfunction SidebarItemComponent({\n item,\n collapsed,\n depth = 0,\n}: {\n item: SidebarItem;\n collapsed?: boolean;\n depth?: number;\n}) {\n const [open, setOpen] = React.useState(\n item.active || item.children?.some((c) => c.active) || false\n );\n const Icon = item.icon;\n const hasChildren = item.children && item.children.length > 0;\n\n if (hasChildren) {\n return (\n <div>\n <button\n onClick={() => setOpen(!open)}\n className={cn(\n \"flex w-full items-center gap-3 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground\",\n item.active && \"bg-accent text-accent-foreground\",\n depth > 0 && \"pl-9\"\n )}\n >\n {Icon && <Icon className=\"h-4 w-4 shrink-0\" />}\n {!collapsed && (\n <>\n <span className=\"flex-1 text-left\">{item.label}</span>\n <ChevronDown\n className={cn(\n \"h-4 w-4 shrink-0 transition-transform\",\n open && \"rotate-180\"\n )}\n />\n </>\n )}\n </button>\n {open && !collapsed && (\n <div className=\"mt-1 space-y-1\">\n {item.children!.map((child) => (\n <SidebarItemComponent\n key={child.href}\n item={child}\n collapsed={collapsed}\n depth={depth + 1}\n />\n ))}\n </div>\n )}\n </div>\n );\n }\n\n return (\n <a\n href={item.href}\n className={cn(\n \"flex items-center gap-3 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground\",\n item.active && \"bg-accent text-accent-foreground\",\n depth > 0 && \"pl-9\"\n )}\n >\n {Icon && <Icon className=\"h-4 w-4 shrink-0\" />}\n {!collapsed && (\n <>\n <span className=\"flex-1\">{item.label}</span>\n {item.badge !== undefined && (\n <span className=\"ml-auto rounded-full bg-primary/10 px-2 py-0.5 text-xs font-medium text-primary\">\n {item.badge}\n </span>\n )}\n </>\n )}\n </a>\n );\n}\n\nexport function Sidebar({\n logo,\n items,\n footer,\n collapsed,\n onCollapse,\n}: SidebarProps) {\n return (\n <div className=\"flex h-full flex-col\">\n {logo && (\n <div className=\"flex h-14 items-center border-b px-4\">{logo}</div>\n )}\n <nav className=\"flex-1 space-y-1 overflow-y-auto p-3\">\n {items.map((item) => (\n <SidebarItemComponent\n key={item.href}\n item={item}\n collapsed={collapsed}\n />\n ))}\n </nav>\n <div className=\"border-t p-3\">\n {footer}\n {onCollapse && (\n <button\n onClick={() => onCollapse(!collapsed)}\n className=\"flex w-full items-center justify-center rounded-md p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground\"\n >\n {collapsed ? (\n <ChevronsRight className=\"h-4 w-4\" />\n ) : (\n <ChevronsLeft className=\"h-4 w-4\" />\n )}\n </button>\n )}\n </div>\n </div>\n );\n}\n","import * as React from \"react\";\nimport { Menu } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface TopBarProps {\n storeName?: string;\n user?: { name: string; email: string; avatar?: string };\n onMenuToggle?: () => void;\n actions?: React.ReactNode;\n className?: string;\n}\n\nexport function TopBar({\n storeName,\n user,\n onMenuToggle,\n actions,\n className,\n}: TopBarProps) {\n return (\n <header\n className={cn(\n \"flex h-14 items-center gap-4 border-b bg-card px-4 lg:px-6\",\n className\n )}\n >\n {onMenuToggle && (\n <button\n onClick={onMenuToggle}\n className=\"rounded-md p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground md:hidden\"\n >\n <Menu className=\"h-5 w-5\" />\n <span className=\"sr-only\">Toggle menu</span>\n </button>\n )}\n\n {storeName && (\n <div className=\"font-semibold text-foreground\">{storeName}</div>\n )}\n\n <div className=\"flex flex-1 items-center justify-end gap-4\">\n {actions}\n\n {user && (\n <div className=\"flex items-center gap-3\">\n <div className=\"hidden text-right text-sm md:block\">\n <div className=\"font-medium\">{user.name}</div>\n <div className=\"text-muted-foreground text-xs\">{user.email}</div>\n </div>\n <div className=\"flex h-8 w-8 items-center justify-center rounded-full bg-primary text-xs font-medium text-primary-foreground\">\n {user.avatar ? (\n <img\n src={user.avatar}\n alt={user.name}\n className=\"h-full w-full rounded-full object-cover\"\n />\n ) : (\n user.name\n .split(\" \")\n .map((n) => n[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2)\n )}\n </div>\n </div>\n )}\n </div>\n </header>\n );\n}\n","import * as React from \"react\";\nimport { ChevronRight } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface Breadcrumb {\n label: string;\n href?: string;\n}\n\nexport interface PageProps {\n title: string;\n subtitle?: string;\n actions?: React.ReactNode;\n breadcrumbs?: Breadcrumb[];\n children: React.ReactNode;\n fullWidth?: boolean;\n}\n\nexport function Page({\n title,\n subtitle,\n actions,\n breadcrumbs,\n children,\n fullWidth,\n}: PageProps) {\n return (\n <div className=\"flex-1 overflow-y-auto\">\n <div\n className={cn(\n \"mx-auto space-y-6 p-6\",\n !fullWidth && \"max-w-6xl\"\n )}\n >\n {breadcrumbs && breadcrumbs.length > 0 && (\n <nav className=\"flex items-center space-x-1 text-sm text-muted-foreground\">\n {breadcrumbs.map((crumb, index) => (\n <React.Fragment key={index}>\n {index > 0 && <ChevronRight className=\"h-4 w-4\" />}\n {crumb.href ? (\n <a\n href={crumb.href}\n className=\"hover:text-foreground transition-colors\"\n >\n {crumb.label}\n </a>\n ) : (\n <span className=\"text-foreground\">{crumb.label}</span>\n )}\n </React.Fragment>\n ))}\n </nav>\n )}\n\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-bold tracking-tight\">{title}</h1>\n {subtitle && (\n <p className=\"text-muted-foreground mt-1\">{subtitle}</p>\n )}\n </div>\n {actions && <div className=\"flex items-center gap-2\">{actions}</div>}\n </div>\n\n {children}\n </div>\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface PageSectionProps {\n title?: string;\n description?: string;\n children: React.ReactNode;\n actions?: React.ReactNode;\n className?: string;\n}\n\nexport function PageSection({\n title,\n description,\n children,\n actions,\n className,\n}: PageSectionProps) {\n return (\n <div\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className\n )}\n >\n {(title || description || actions) && (\n <div className=\"flex items-start justify-between border-b p-6\">\n <div>\n {title && <h2 className=\"text-lg font-semibold\">{title}</h2>}\n {description && (\n <p className=\"mt-1 text-sm text-muted-foreground\">\n {description}\n </p>\n )}\n </div>\n {actions && <div className=\"flex items-center gap-2\">{actions}</div>}\n </div>\n )}\n <div className=\"p-6\">{children}</div>\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Checkbox } from \"../primitives/checkbox\";\nimport { Skeleton } from \"../primitives/skeleton\";\n\nexport interface Column<T> {\n key: keyof T | string;\n header: string;\n cell?: (row: T) => React.ReactNode;\n sortable?: boolean;\n width?: string;\n}\n\nexport interface DataTableProps<T> {\n columns: Column<T>[];\n data: T[];\n loading?: boolean;\n pagination?: {\n page: number;\n pageSize: number;\n total: number;\n onPageChange: (page: number) => void;\n onPageSizeChange?: (size: number) => void;\n };\n selection?: {\n selected: string[];\n onSelect: (ids: string[]) => void;\n idKey?: keyof T;\n };\n onRowClick?: (row: T) => void;\n emptyState?: React.ReactNode;\n actions?: React.ReactNode;\n}\n\nexport function DataTable<T extends Record<string, unknown>>({\n columns,\n data,\n loading,\n pagination,\n selection,\n onRowClick,\n emptyState,\n actions,\n}: DataTableProps<T>) {\n const idKey = (selection?.idKey ?? \"id\") as string;\n\n const allSelected =\n selection && data.length > 0 && data.every((row) => selection.selected.includes(String(row[idKey])));\n\n const someSelected =\n selection && data.some((row) => selection.selected.includes(String(row[idKey]))) && !allSelected;\n\n function toggleAll() {\n if (!selection) return;\n if (allSelected) {\n selection.onSelect([]);\n } else {\n selection.onSelect(data.map((row) => String(row[idKey])));\n }\n }\n\n function toggleRow(row: T) {\n if (!selection) return;\n const id = String(row[idKey]);\n if (selection.selected.includes(id)) {\n selection.onSelect(selection.selected.filter((s) => s !== id));\n } else {\n selection.onSelect([...selection.selected, id]);\n }\n }\n\n const totalPages = pagination\n ? Math.ceil(pagination.total / pagination.pageSize)\n : 1;\n\n return (\n <div className=\"space-y-4\">\n {selection && selection.selected.length > 0 && actions && (\n <div className=\"flex items-center gap-2 rounded-md border bg-muted/50 p-2\">\n <span className=\"text-sm text-muted-foreground\">\n {selection.selected.length} selected\n </span>\n {actions}\n </div>\n )}\n\n <div className=\"rounded-md border\">\n <div className=\"overflow-x-auto\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b bg-muted/50\">\n {selection && (\n <th className=\"w-12 px-4 py-3\">\n <Checkbox\n checked={allSelected}\n ref={(el) => {\n if (el) {\n (el as unknown as HTMLInputElement).indeterminate =\n someSelected ?? false;\n }\n }}\n onCheckedChange={toggleAll}\n />\n </th>\n )}\n {columns.map((col) => (\n <th\n key={String(col.key)}\n className=\"px-4 py-3 text-left font-medium text-muted-foreground\"\n style={col.width ? { width: col.width } : undefined}\n >\n {col.header}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {loading\n ? Array.from({ length: 5 }).map((_, i) => (\n <tr key={i} className=\"border-b\">\n {selection && (\n <td className=\"px-4 py-3\">\n <Skeleton className=\"h-4 w-4\" />\n </td>\n )}\n {columns.map((col) => (\n <td key={String(col.key)} className=\"px-4 py-3\">\n <Skeleton className=\"h-4 w-24\" />\n </td>\n ))}\n </tr>\n ))\n : data.length === 0\n ? (\n <tr>\n <td\n colSpan={columns.length + (selection ? 1 : 0)}\n className=\"py-12 text-center\"\n >\n {emptyState || (\n <p className=\"text-muted-foreground\">No data found</p>\n )}\n </td>\n </tr>\n )\n : data.map((row, idx) => {\n const rowId = String(row[idKey] ?? idx);\n const isSelected = selection?.selected.includes(rowId);\n return (\n <tr\n key={rowId}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50\",\n isSelected && \"bg-muted/50\",\n onRowClick && \"cursor-pointer\"\n )}\n onClick={() => onRowClick?.(row)}\n >\n {selection && (\n <td\n className=\"px-4 py-3\"\n onClick={(e) => e.stopPropagation()}\n >\n <Checkbox\n checked={isSelected}\n onCheckedChange={() => toggleRow(row)}\n />\n </td>\n )}\n {columns.map((col) => (\n <td key={String(col.key)} className=\"px-4 py-3\">\n {col.cell\n ? col.cell(row)\n : String(row[col.key as keyof T] ?? \"\")}\n </td>\n ))}\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n </div>\n\n {pagination && totalPages > 1 && (\n <div className=\"flex items-center justify-between px-2\">\n <div className=\"text-sm text-muted-foreground\">\n Page {pagination.page} of {totalPages} ({pagination.total} total)\n </div>\n <div className=\"flex items-center gap-2\">\n <button\n className=\"rounded-md border px-3 py-1.5 text-sm disabled:opacity-50\"\n disabled={pagination.page <= 1}\n onClick={() => pagination.onPageChange(pagination.page - 1)}\n >\n Previous\n </button>\n <button\n className=\"rounded-md border px-3 py-1.5 text-sm disabled:opacity-50\"\n disabled={pagination.page >= totalPages}\n onClick={() => pagination.onPageChange(pagination.page + 1)}\n >\n Next\n </button>\n </div>\n </div>\n )}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface EmptyStateProps {\n icon?: React.ComponentType<{ className?: string }>;\n title: string;\n description?: string;\n action?: React.ReactNode;\n className?: string;\n}\n\nexport function EmptyState({\n icon: Icon,\n title,\n description,\n action,\n className,\n}: EmptyStateProps) {\n return (\n <div\n className={cn(\n \"flex flex-col items-center justify-center py-12 text-center\",\n className\n )}\n >\n {Icon && (\n <div className=\"mb-4 rounded-full bg-muted p-3\">\n <Icon className=\"h-6 w-6 text-muted-foreground\" />\n </div>\n )}\n <h3 className=\"text-lg font-semibold\">{title}</h3>\n {description && (\n <p className=\"mt-1 max-w-sm text-sm text-muted-foreground\">\n {description}\n </p>\n )}\n {action && <div className=\"mt-4\">{action}</div>}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface PaginationProps {\n page: number;\n totalPages: number;\n onPageChange: (page: number) => void;\n className?: string;\n}\n\nexport function Pagination({\n page,\n totalPages,\n onPageChange,\n className,\n}: PaginationProps) {\n const pages = React.useMemo(() => {\n const items: (number | \"ellipsis\")[] = [];\n if (totalPages <= 7) {\n for (let i = 1; i <= totalPages; i++) items.push(i);\n } else {\n items.push(1);\n if (page > 3) items.push(\"ellipsis\");\n const start = Math.max(2, page - 1);\n const end = Math.min(totalPages - 1, page + 1);\n for (let i = start; i <= end; i++) items.push(i);\n if (page < totalPages - 2) items.push(\"ellipsis\");\n items.push(totalPages);\n }\n return items;\n }, [page, totalPages]);\n\n if (totalPages <= 1) return null;\n\n return (\n <nav className={cn(\"flex items-center gap-1\", className)}>\n <button\n className=\"inline-flex h-9 w-9 items-center justify-center rounded-md border text-sm disabled:opacity-50\"\n disabled={page <= 1}\n onClick={() => onPageChange(page - 1)}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n </button>\n {pages.map((p, i) =>\n p === \"ellipsis\" ? (\n <span key={`e-${i}`} className=\"px-2 text-muted-foreground\">\n ...\n </span>\n ) : (\n <button\n key={p}\n className={cn(\n \"inline-flex h-9 w-9 items-center justify-center rounded-md border text-sm\",\n p === page && \"bg-primary text-primary-foreground\"\n )}\n onClick={() => onPageChange(p)}\n >\n {p}\n </button>\n )\n )}\n <button\n className=\"inline-flex h-9 w-9 items-center justify-center rounded-md border text-sm disabled:opacity-50\"\n disabled={page >= totalPages}\n onClick={() => onPageChange(page + 1)}\n >\n <ChevronRight className=\"h-4 w-4\" />\n </button>\n </nav>\n );\n}\n","import * as React from \"react\";\nimport { ArrowDown, ArrowUp } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface Stat {\n label: string;\n value: string | number;\n change?: { value: number; type: \"increase\" | \"decrease\" };\n icon?: React.ComponentType<{ className?: string }>;\n}\n\nexport interface StatsProps {\n stats: Stat[];\n columns?: 2 | 3 | 4;\n className?: string;\n}\n\nexport function Stats({ stats, columns = 4, className }: StatsProps) {\n return (\n <div\n className={cn(\n \"grid gap-4\",\n columns === 2 && \"grid-cols-1 sm:grid-cols-2\",\n columns === 3 && \"grid-cols-1 sm:grid-cols-2 lg:grid-cols-3\",\n columns === 4 && \"grid-cols-1 sm:grid-cols-2 lg:grid-cols-4\",\n className\n )}\n >\n {stats.map((stat, index) => {\n const Icon = stat.icon;\n return (\n <div\n key={index}\n className=\"rounded-lg border bg-card p-6 text-card-foreground shadow-sm\"\n >\n <div className=\"flex items-center justify-between\">\n <p className=\"text-sm font-medium text-muted-foreground\">\n {stat.label}\n </p>\n {Icon && <Icon className=\"h-4 w-4 text-muted-foreground\" />}\n </div>\n <div className=\"mt-2 flex items-baseline gap-2\">\n <p className=\"text-2xl font-bold\">{stat.value}</p>\n {stat.change && (\n <span\n className={cn(\n \"inline-flex items-center text-xs font-medium\",\n stat.change.type === \"increase\"\n ? \"text-green-600 dark:text-green-400\"\n : \"text-red-600 dark:text-red-400\"\n )}\n >\n {stat.change.type === \"increase\" ? (\n <ArrowUp className=\"mr-0.5 h-3 w-3\" />\n ) : (\n <ArrowDown className=\"mr-0.5 h-3 w-3\" />\n )}\n {stat.change.value}%\n </span>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Label } from \"../primitives/label\";\n\nexport interface FormFieldProps {\n label: string;\n error?: string;\n hint?: string;\n required?: boolean;\n children: React.ReactNode;\n className?: string;\n}\n\nexport function FormField({\n label,\n error,\n hint,\n required,\n children,\n className,\n}: FormFieldProps) {\n return (\n <div className={cn(\"space-y-2\", className)}>\n <Label>\n {label}\n {required && <span className=\"ml-1 text-destructive\">*</span>}\n </Label>\n {children}\n {hint && !error && (\n <p className=\"text-sm text-muted-foreground\">{hint}</p>\n )}\n {error && <p className=\"text-sm text-destructive\">{error}</p>}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface FormLayoutProps {\n title?: string;\n description?: string;\n children: React.ReactNode;\n actions?: React.ReactNode;\n className?: string;\n}\n\nexport function FormLayout({\n title,\n description,\n children,\n actions,\n className,\n}: FormLayoutProps) {\n return (\n <div\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className\n )}\n >\n {(title || description) && (\n <div className=\"border-b p-6\">\n {title && <h3 className=\"text-lg font-semibold\">{title}</h3>}\n {description && (\n <p className=\"mt-1 text-sm text-muted-foreground\">{description}</p>\n )}\n </div>\n )}\n <div className=\"space-y-6 p-6\">{children}</div>\n {actions && (\n <div className=\"flex items-center justify-end gap-2 border-t px-6 py-4\">\n {actions}\n </div>\n )}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface FormSectionProps {\n title: string;\n description?: string;\n children: React.ReactNode;\n className?: string;\n}\n\nexport function FormSection({\n title,\n description,\n children,\n className,\n}: FormSectionProps) {\n return (\n <div className={cn(\"space-y-4\", className)}>\n <div>\n <h4 className=\"text-sm font-medium\">{title}</h4>\n {description && (\n <p className=\"mt-1 text-sm text-muted-foreground\">{description}</p>\n )}\n </div>\n <div className=\"space-y-4\">{children}</div>\n </div>\n );\n}\n","import * as React from \"react\";\nimport { AlertCircle, CheckCircle2, Info, AlertTriangle, X } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface AlertProps {\n variant?: \"info\" | \"success\" | \"warning\" | \"error\";\n title?: string;\n children: React.ReactNode;\n dismissible?: boolean;\n onDismiss?: () => void;\n className?: string;\n}\n\nconst variantConfig = {\n info: {\n icon: Info,\n classes: \"border-blue-200 bg-blue-50 text-blue-900 dark:border-blue-800 dark:bg-blue-950 dark:text-blue-100\",\n },\n success: {\n icon: CheckCircle2,\n classes: \"border-green-200 bg-green-50 text-green-900 dark:border-green-800 dark:bg-green-950 dark:text-green-100\",\n },\n warning: {\n icon: AlertTriangle,\n classes: \"border-yellow-200 bg-yellow-50 text-yellow-900 dark:border-yellow-800 dark:bg-yellow-950 dark:text-yellow-100\",\n },\n error: {\n icon: AlertCircle,\n classes: \"border-red-200 bg-red-50 text-red-900 dark:border-red-800 dark:bg-red-950 dark:text-red-100\",\n },\n};\n\nexport function Alert({\n variant = \"info\",\n title,\n children,\n dismissible,\n onDismiss,\n className,\n}: AlertProps) {\n const config = variantConfig[variant];\n const Icon = config.icon;\n\n return (\n <div\n className={cn(\n \"relative flex gap-3 rounded-lg border p-4\",\n config.classes,\n className\n )}\n role=\"alert\"\n >\n <Icon className=\"mt-0.5 h-5 w-5 shrink-0\" />\n <div className=\"flex-1\">\n {title && <p className=\"font-medium\">{title}</p>}\n <div className={cn(\"text-sm\", title && \"mt-1\")}>{children}</div>\n </div>\n {dismissible && (\n <button\n onClick={onDismiss}\n className=\"absolute right-3 top-3 rounded-md p-1 opacity-70 hover:opacity-100\"\n >\n <X className=\"h-4 w-4\" />\n </button>\n )}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { Loader2 } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface LoadingSpinnerProps {\n size?: \"sm\" | \"md\" | \"lg\";\n className?: string;\n}\n\nconst sizeMap = {\n sm: \"h-4 w-4\",\n md: \"h-6 w-6\",\n lg: \"h-8 w-8\",\n};\n\nexport function LoadingSpinner({ size = \"md\", className }: LoadingSpinnerProps) {\n return (\n <Loader2\n className={cn(\"animate-spin text-muted-foreground\", sizeMap[size], className)}\n />\n );\n}\n","import * as React from \"react\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"../primitives/dialog\";\nimport { Button } from \"../primitives/button\";\nimport { LoadingSpinner } from \"./loading-spinner\";\n\nexport interface ConfirmDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title: string;\n description?: string;\n confirmLabel?: string;\n cancelLabel?: string;\n onConfirm: () => void;\n loading?: boolean;\n variant?: \"default\" | \"destructive\";\n}\n\nexport function ConfirmDialog({\n open,\n onOpenChange,\n title,\n description,\n confirmLabel = \"Confirm\",\n cancelLabel = \"Cancel\",\n onConfirm,\n loading,\n variant = \"default\",\n}: ConfirmDialogProps) {\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>{title}</DialogTitle>\n {description && (\n <DialogDescription>{description}</DialogDescription>\n )}\n </DialogHeader>\n <DialogFooter>\n <Button\n variant=\"outline\"\n onClick={() => onOpenChange(false)}\n disabled={loading}\n >\n {cancelLabel}\n </Button>\n <Button\n variant={variant === \"destructive\" ? \"destructive\" : \"default\"}\n onClick={onConfirm}\n disabled={loading}\n >\n {loading && <LoadingSpinner size=\"sm\" className=\"mr-2\" />}\n {confirmLabel}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n","import { useState } from \"react\";\n\nexport function useDisclosure(initial = false) {\n const [isOpen, setIsOpen] = useState(initial);\n return {\n isOpen,\n open: () => setIsOpen(true),\n close: () => setIsOpen(false),\n toggle: () => setIsOpen((prev) => !prev),\n onOpenChange: setIsOpen,\n };\n}\n\nexport function usePagination(total: number, pageSize = 20) {\n const [page, setPage] = useState(1);\n const totalPages = Math.ceil(total / pageSize);\n return { page, setPage, pageSize, total, totalPages };\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface AuthShellProps {\n children: React.ReactNode\n /** Optional background pattern — 'dots' | 'grid' | 'none' */\n pattern?: 'dots' | 'grid' | 'none'\n maxWidth?: string\n}\n\nexport function AuthShell({ children, pattern = 'dots', maxWidth = '520px' }: AuthShellProps) {\n return (\n <div\n style={{\n minHeight: '100vh',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '24px',\n background: 'var(--background)',\n position: 'relative',\n overflow: 'hidden',\n }}\n >\n {pattern === 'dots' && (\n <div\n aria-hidden\n style={{\n position: 'absolute',\n inset: 0,\n backgroundImage:\n 'radial-gradient(circle, var(--border) 1px, transparent 1px)',\n backgroundSize: '28px 28px',\n opacity: 0.5,\n pointerEvents: 'none',\n }}\n />\n )}\n {pattern === 'grid' && (\n <div\n aria-hidden\n style={{\n position: 'absolute',\n inset: 0,\n backgroundImage:\n 'linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px)',\n backgroundSize: '32px 32px',\n opacity: 0.4,\n pointerEvents: 'none',\n }}\n />\n )}\n <div style={{ position: 'relative', zIndex: 1, width: '100%', maxWidth }}>\n {children}\n </div>\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface AuthCardProps {\n children: React.ReactNode\n padding?: string\n}\n\nexport function AuthCard({ children, padding = '24px 28px' }: AuthCardProps) {\n return (\n <div\n style={{\n background: 'var(--card)',\n border: '1px solid var(--border)',\n borderRadius: 'calc(var(--radius, 0.5rem) * 1.5)',\n boxShadow: '0 4px 32px rgba(0,0,0,0.06), 0 1px 4px rgba(0,0,0,0.04)',\n padding,\n width: '100%',\n }}\n >\n {children}\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface AuthLogoProps {\n /** App name shown next to the logo mark */\n appName?: string\n /** Single letter shown inside the logo box (fallback when no imageUrl) */\n letter?: string\n /** Image URL — when provided, shows image instead of letter box */\n imageUrl?: string\n /** Image/logo size in px */\n size?: number\n}\n\nexport function AuthLogo({ appName = 'Builify CMS', letter = 'B', imageUrl, size = 36 }: AuthLogoProps) {\n return (\n <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px', marginBottom: '28px' }}>\n {imageUrl ? (\n <img\n src={imageUrl}\n alt={appName}\n width={size}\n height={size}\n style={{ borderRadius: 'calc(var(--radius, 0.5rem) * 1.2)', flexShrink: 0, display: 'block' }}\n />\n ) : (\n <div\n style={{\n width: size,\n height: size,\n background: 'var(--primary)',\n borderRadius: 'calc(var(--radius, 0.5rem) * 1.2)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'var(--primary-foreground)',\n fontWeight: 800,\n fontSize: `${size * 0.44}px`,\n flexShrink: 0,\n }}\n >\n {letter}\n </div>\n )}\n <span\n style={{\n fontWeight: 700,\n fontSize: '1.125rem',\n color: 'var(--foreground)',\n letterSpacing: '-0.02em',\n }}\n >\n {appName}\n </span>\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface AuthHeaderProps {\n title: string\n description?: string\n}\n\nexport function AuthHeader({ title, description }: AuthHeaderProps) {\n return (\n <div style={{ marginBottom: '24px', textAlign: 'center' }}>\n <h1\n style={{\n fontSize: '1.375rem',\n fontWeight: 700,\n color: 'var(--foreground)',\n margin: 0,\n letterSpacing: '-0.02em',\n }}\n >\n {title}\n </h1>\n {description && (\n <p\n style={{\n marginTop: '6px',\n fontSize: '0.875rem',\n color: 'var(--muted-foreground)',\n lineHeight: 1.5,\n }}\n >\n {description}\n </p>\n )}\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface AuthFieldProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label: string\n error?: string\n hint?: string\n rightLabel?: React.ReactNode\n}\n\nexport function AuthField({ label, error, hint, rightLabel, id, ...props }: AuthFieldProps) {\n const fieldId = id ?? label.toLowerCase().replace(/\\s+/g, '-')\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '6px' }}>\n <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>\n <label\n htmlFor={fieldId}\n style={{\n fontSize: '0.8125rem',\n fontWeight: 500,\n color: 'var(--foreground)',\n }}\n >\n {label}\n </label>\n {rightLabel && (\n <span style={{ fontSize: '0.8125rem' }}>{rightLabel}</span>\n )}\n </div>\n <input\n id={fieldId}\n style={{\n height: '40px',\n padding: '0 12px',\n background: 'var(--background)',\n border: `1px solid ${error ? 'var(--destructive)' : 'var(--border)'}`,\n borderRadius: 'var(--radius, 0.5rem)',\n color: 'var(--foreground)',\n fontSize: '0.875rem',\n outline: 'none',\n width: '100%',\n boxSizing: 'border-box',\n transition: 'border-color 0.15s, box-shadow 0.15s',\n }}\n onFocus={(e) => {\n e.currentTarget.style.borderColor = 'var(--ring)'\n e.currentTarget.style.boxShadow = '0 0 0 3px color-mix(in oklab, var(--ring) 20%, transparent)'\n props.onFocus?.(e)\n }}\n onBlur={(e) => {\n e.currentTarget.style.borderColor = error ? 'var(--destructive)' : 'var(--border)'\n e.currentTarget.style.boxShadow = 'none'\n props.onBlur?.(e)\n }}\n {...props}\n />\n {error && (\n <p style={{ fontSize: '0.8rem', color: 'var(--destructive)', margin: 0 }}>{error}</p>\n )}\n {hint && !error && (\n <p style={{ fontSize: '0.8rem', color: 'var(--muted-foreground)', margin: 0 }}>{hint}</p>\n )}\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface AuthButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n loading?: boolean\n variant?: 'primary' | 'outline' | 'ghost'\n fullWidth?: boolean\n}\n\nexport function AuthButton({\n loading,\n variant = 'primary',\n fullWidth = true,\n children,\n disabled,\n style,\n ...props\n}: AuthButtonProps) {\n const base: React.CSSProperties = {\n height: '42px',\n padding: '0 20px',\n borderRadius: 'var(--radius, 0.5rem)',\n fontSize: '0.875rem',\n fontWeight: 600,\n cursor: loading || disabled ? 'not-allowed' : 'pointer',\n opacity: loading || disabled ? 0.65 : 1,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '8px',\n border: 'none',\n outline: 'none',\n transition: 'opacity 0.15s, filter 0.15s',\n width: fullWidth ? '100%' : 'auto',\n ...style,\n }\n\n const variantStyles: Record<string, React.CSSProperties> = {\n primary: {\n background: 'var(--primary)',\n color: 'var(--primary-foreground)',\n },\n outline: {\n background: 'transparent',\n color: 'var(--foreground)',\n border: '1px solid var(--border)',\n },\n ghost: {\n background: 'transparent',\n color: 'var(--foreground)',\n },\n }\n\n return (\n <button\n disabled={loading || disabled}\n style={{ ...base, ...variantStyles[variant] }}\n onMouseEnter={(e) => {\n if (!loading && !disabled) e.currentTarget.style.filter = 'brightness(0.9)'\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.filter = 'none'\n }}\n {...props}\n >\n {loading ? (\n <>\n <span\n style={{\n width: 14,\n height: 14,\n border: '2px solid currentColor',\n borderTopColor: 'transparent',\n borderRadius: '50%',\n display: 'inline-block',\n animation: 'dashui-spin 0.7s linear infinite',\n }}\n />\n {children}\n </>\n ) : children}\n </button>\n )\n}\n","'use client'\n\nimport * as React from 'react'\n\nexport function AuthDivider({ label = 'or' }: { label?: string }) {\n return (\n <div style={{ display: 'flex', alignItems: 'center', gap: '12px', margin: '20px 0' }}>\n <div style={{ flex: 1, height: 1, background: 'var(--border)' }} />\n <span style={{ fontSize: '0.75rem', color: 'var(--muted-foreground)', userSelect: 'none' }}>\n {label}\n </span>\n <div style={{ flex: 1, height: 1, background: 'var(--border)' }} />\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface AuthFootnoteProps {\n text: string\n linkText: string\n linkHref: string\n}\n\nexport function AuthFootnote({ text, linkText, linkHref }: AuthFootnoteProps) {\n return (\n <p style={{\n textAlign: 'center',\n marginTop: '20px',\n fontSize: '0.8125rem',\n color: 'var(--muted-foreground)',\n }}>\n {text}{' '}\n <a\n href={linkHref}\n style={{\n color: 'var(--primary)',\n fontWeight: 600,\n textDecoration: 'none',\n }}\n onMouseEnter={(e) => e.currentTarget.style.textDecoration = 'underline'}\n onMouseLeave={(e) => e.currentTarget.style.textDecoration = 'none'}\n >\n {linkText}\n </a>\n </p>\n )\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface SkeletonProps {\n width?: string | number\n height?: string | number\n rounded?: string\n className?: string\n style?: React.CSSProperties\n}\n\nexport function Skeleton({ width = '100%', height = 16, rounded, style }: SkeletonProps) {\n return (\n <div\n style={{\n width,\n height,\n background: 'var(--muted, #e5e7eb)',\n borderRadius: rounded ?? 'var(--radius, 0.5rem)',\n overflow: 'hidden',\n position: 'relative',\n flexShrink: 0,\n ...style,\n }}\n >\n <div\n style={{\n position: 'absolute',\n inset: 0,\n background:\n 'linear-gradient(90deg, transparent 0%, color-mix(in oklab, var(--background, #fff) 40%, transparent) 50%, transparent 100%)',\n animation: 'dashui-shimmer 1.6s ease-in-out infinite',\n }}\n />\n </div>\n )\n}\n","// ─── Primitives ──────────────────────────────────────────────\nexport * from './components/primitives/button'\nexport * from './components/primitives/badge'\nexport * from './components/primitives/card'\nexport * from './components/primitives/checkbox'\nexport * from './components/primitives/dialog'\nexport * from './components/primitives/dropdown-menu'\nexport * from './components/primitives/input'\nexport * from './components/primitives/label'\nexport * from './components/primitives/popover'\nexport * from './components/primitives/select'\nexport * from './components/primitives/separator'\nexport * from './components/primitives/skeleton'\nexport * from './components/primitives/switch'\nexport * from './components/primitives/tabs'\nexport * from './components/primitives/textarea'\nexport * from './components/primitives/tooltip'\n\n// ─── Layout ──────────────────────────────────────────────────\nexport * from './components/layout/app-shell'\nexport * from './components/layout/sidebar'\nexport * from './components/layout/top-bar'\nexport * from './components/layout/page'\nexport * from './components/layout/page-section'\n\n// ─── Data Display ─────────────────────────────────────────────\nexport * from './components/data/data-table'\nexport * from './components/data/empty-state'\nexport * from './components/data/pagination'\nexport * from './components/data/stats'\n\n// ─── Form ─────────────────────────────────────────────────────\nexport * from './components/form/form-field'\nexport * from './components/form/form-layout'\nexport * from './components/form/form-section'\n\n// ─── Feedback ─────────────────────────────────────────────────\nexport * from './components/feedback/alert'\nexport * from './components/feedback/confirm-dialog'\nexport * from './components/feedback/loading-spinner'\n\n// ─── CMS-specific (coming soon) ───────────────────────────────\n// export * from './components/cms/resource-list'\n// export * from './components/cms/index-table'\n// export * from './components/cms/contextual-save-bar'\n// export * from './components/cms/color-scheme-picker'\n// export * from './components/cms/page-actions'\n\n// ─── Hooks ────────────────────────────────────────────────────\nexport * from './hooks'\n\n// ─── Utils ────────────────────────────────────────────────────\nexport * from './lib/utils'\n\n// ─── Auth Components ──────────────────────────────────────────\nexport * from './components/auth'\n\n// ─── Skeleton ─────────────────────────────────────────────────\nexport { Skeleton } from './components/Skeleton'\n\n// ─── Theme (next-themes re-export) ────────────────────────────\nexport { ThemeProvider, useTheme } from 'next-themes'\n"],"mappings":"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","names":["cva","jsx","cva","React","jsx","React","jsx","React","jsx","React","Check","jsx","jsxs","Check","React","jsx","React","jsx","Label","React","jsx","React","Check","jsx","jsxs","Check","React","jsx","Separator","jsx","React","jsx","React","jsx","React","jsx","React","jsx","jsx","jsxs","React","ChevronDown","jsx","jsxs","Icon","ChevronDown","jsx","jsxs","React","ChevronRight","jsx","jsxs","ChevronRight","jsx","jsxs","jsx","jsxs","jsx","jsxs","Icon","React","ChevronRight","jsx","jsxs","ChevronRight","jsx","jsxs","Icon","jsx","jsxs","Label","jsx","jsxs","jsx","jsxs","X","jsx","jsxs","Icon","X","jsx","jsx","jsxs","useState","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","Fragment","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","Skeleton"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/button.tsx","../src/lib/utils.ts","../src/components/primitives/badge.tsx","../src/components/primitives/card.tsx","../src/components/primitives/checkbox.tsx","../src/components/primitives/dialog.tsx","../src/components/primitives/dropdown-menu.tsx","../src/components/primitives/input.tsx","../src/components/primitives/label.tsx","../src/components/primitives/popover.tsx","../src/components/primitives/select.tsx","../src/components/primitives/separator.tsx","../src/components/primitives/skeleton.tsx","../src/components/primitives/switch.tsx","../src/components/primitives/tabs.tsx","../src/components/primitives/textarea.tsx","../src/components/primitives/tooltip.tsx","../src/components/layout/app-shell.tsx","../src/components/layout/sidebar.tsx","../src/components/layout/top-bar.tsx","../src/components/layout/page.tsx","../src/components/layout/page-section.tsx","../src/components/data/data-table.tsx","../src/components/data/empty-state.tsx","../src/components/data/pagination.tsx","../src/components/data/stats.tsx","../src/components/form/form-field.tsx","../src/components/form/form-layout.tsx","../src/components/form/form-section.tsx","../src/components/feedback/alert.tsx","../src/components/feedback/loading-spinner.tsx","../src/components/feedback/confirm-dialog.tsx","../src/hooks/index.ts","../src/components/auth/AuthShell.tsx","../src/components/auth/AuthCard.tsx","../src/components/auth/AuthLogo.tsx","../src/components/auth/AuthHeader.tsx","../src/components/auth/AuthField.tsx","../src/components/auth/AuthButton.tsx","../src/components/auth/AuthDivider.tsx","../src/components/auth/AuthFootnote.tsx","../src/components/Skeleton.tsx","../src/index.ts"],"sourcesContent":["import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-lg text-sm font-medium 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 variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\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-lg px-3\",\n lg: \"h-11 rounded-lg px-8\",\n icon: \"h-10 w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n }\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold 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-green-100 text-green-800 dark:bg-green-900 dark:text-green-100\",\n warning:\n \"border-transparent bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-100\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n );\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className\n )}\n {...props}\n />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"text-2xl font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n));\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n","import * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border 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]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","import * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nconst Dialog = DialogPrimitive.Root;\nconst DialogTrigger = DialogPrimitive.Trigger;\nconst DialogClose = DialogPrimitive.Close;\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\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));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\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 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 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 right-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\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\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);\nDialogFooter.displayName = \"DialogFooter\";\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","import * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<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 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<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 rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 =\n DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<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 rounded-md border 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\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<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 flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<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 rounded-sm py-1.5 pl-8 pr-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 left-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));\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<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 rounded-sm py-1.5 pl-8 pr-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 left-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));\nDropdownMenuRadioItem.displayName =\n DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<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-semibold\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<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-px bg-muted\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName =\n DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n );\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n};\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> {\n error?: boolean;\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, error, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-lg border border-input bg-background px-3 py-2 text-sm ring-offset-background\",\n \"file:border-0 file:bg-transparent file:text-sm file:font-medium\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n error && \"border-destructive focus-visible:ring-destructive\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","import * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cn } from \"../../lib/utils\";\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(\n \"block text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n className\n )}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","import * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { cn } from \"../../lib/utils\";\n\nconst Popover = PopoverPrimitive.Root;\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-md border 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\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverTrigger, PopoverContent };\n","import * 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 Select = SelectPrimitive.Root;\nconst SelectGroup = SelectPrimitive.Group;\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-lg border border-input bg-background px-3 py-2 text-sm\",\n \"ring-offset-background placeholder:text-muted-foreground\",\n \"focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"[&>span]:line-clamp-1\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50 shrink-0\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n style={{ background: '#ffffff', border: '1px solid #e5e7eb', borderRadius: 10, boxShadow: '0 8px 32px rgba(0,0,0,0.12)', zIndex: 9999, overflow: 'hidden' }}\n className={cn(\n \"relative max-h-96 min-w-[8rem] overflow-hidden\",\n \"rounded-lg border border-border bg-white text-foreground shadow-lg\",\n \"dark:bg-zinc-900 dark:border-zinc-700\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2\",\n \"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 <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));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"py-1.5 pl-8 pr-2 text-xs font-semibold text-muted-foreground\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center\",\n \"rounded-md py-2 pl-9 pr-3 text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n {/* Checkmark — left aligned */}\n <span className=\"absolute left-2.5 flex h-4 w-4 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-3.5 w-3.5 text-primary\" strokeWidth={2.5} />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select, SelectGroup, SelectValue, SelectTrigger,\n SelectContent, SelectLabel, SelectItem,\n SelectSeparator, SelectScrollUpButton, SelectScrollDownButton,\n};\n","import * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport { cn } from \"../../lib/utils\";\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","import { cn } from \"../../lib/utils\";\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","import * as React from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport { cn } from \"../../lib/utils\";\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-[24px] w-[44px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","import * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { cn } from \"../../lib/utils\";\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm\",\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n error?: boolean;\n}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, error, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n error && \"border-destructive focus-visible:ring-destructive\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n","import * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"../../lib/utils\";\n\nconst TooltipProvider = TooltipPrimitive.Provider;\nconst Tooltip = TooltipPrimitive.Root;\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-md 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\",\n className\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface AppShellProps {\n sidebar: React.ReactNode;\n children: React.ReactNode;\n collapsed?: boolean;\n}\n\nexport function AppShell({ sidebar, children, collapsed }: AppShellProps) {\n return (\n <div className=\"flex h-screen overflow-hidden bg-background\">\n <aside\n className={cn(\n \"hidden border-r bg-card transition-all duration-300 md:block\",\n collapsed\n ? \"w-[var(--sidebar-collapsed-width)]\"\n : \"w-[var(--sidebar-width)]\"\n )}\n >\n {sidebar}\n </aside>\n <main className=\"flex flex-1 flex-col overflow-hidden\">{children}</main>\n </div>\n );\n}\n","import * as React from \"react\";\nimport { ChevronDown, ChevronsLeft, ChevronsRight } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface SidebarItem {\n label: string;\n href: string;\n icon?: React.ComponentType<{ className?: string }>;\n badge?: string | number;\n children?: SidebarItem[];\n active?: boolean;\n}\n\nexport interface SidebarProps {\n logo?: React.ReactNode;\n items: SidebarItem[];\n footer?: React.ReactNode;\n collapsed?: boolean;\n onCollapse?: (collapsed: boolean) => void;\n}\n\nfunction SidebarItemComponent({\n item,\n collapsed,\n depth = 0,\n}: {\n item: SidebarItem;\n collapsed?: boolean;\n depth?: number;\n}) {\n const [open, setOpen] = React.useState(\n item.active || item.children?.some((c) => c.active) || false\n );\n const Icon = item.icon;\n const hasChildren = item.children && item.children.length > 0;\n\n if (hasChildren) {\n return (\n <div>\n <button\n onClick={() => setOpen(!open)}\n className={cn(\n \"flex w-full items-center gap-3 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground\",\n item.active && \"bg-accent text-accent-foreground\",\n depth > 0 && \"pl-9\"\n )}\n >\n {Icon && <Icon className=\"h-4 w-4 shrink-0\" />}\n {!collapsed && (\n <>\n <span className=\"flex-1 text-left\">{item.label}</span>\n <ChevronDown\n className={cn(\n \"h-4 w-4 shrink-0 transition-transform\",\n open && \"rotate-180\"\n )}\n />\n </>\n )}\n </button>\n {open && !collapsed && (\n <div className=\"mt-1 space-y-1\">\n {item.children!.map((child) => (\n <SidebarItemComponent\n key={child.href}\n item={child}\n collapsed={collapsed}\n depth={depth + 1}\n />\n ))}\n </div>\n )}\n </div>\n );\n }\n\n return (\n <a\n href={item.href}\n className={cn(\n \"flex items-center gap-3 rounded-md px-3 py-2 text-sm font-medium text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground\",\n item.active && \"bg-accent text-accent-foreground\",\n depth > 0 && \"pl-9\"\n )}\n >\n {Icon && <Icon className=\"h-4 w-4 shrink-0\" />}\n {!collapsed && (\n <>\n <span className=\"flex-1\">{item.label}</span>\n {item.badge !== undefined && (\n <span className=\"ml-auto rounded-full bg-primary/10 px-2 py-0.5 text-xs font-medium text-primary\">\n {item.badge}\n </span>\n )}\n </>\n )}\n </a>\n );\n}\n\nexport function Sidebar({\n logo,\n items,\n footer,\n collapsed,\n onCollapse,\n}: SidebarProps) {\n return (\n <div className=\"flex h-full flex-col\">\n {logo && (\n <div className=\"flex h-14 items-center border-b px-4\">{logo}</div>\n )}\n <nav className=\"flex-1 space-y-1 overflow-y-auto p-3\">\n {items.map((item) => (\n <SidebarItemComponent\n key={item.href}\n item={item}\n collapsed={collapsed}\n />\n ))}\n </nav>\n <div className=\"border-t p-3\">\n {footer}\n {onCollapse && (\n <button\n onClick={() => onCollapse(!collapsed)}\n className=\"flex w-full items-center justify-center rounded-md p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground\"\n >\n {collapsed ? (\n <ChevronsRight className=\"h-4 w-4\" />\n ) : (\n <ChevronsLeft className=\"h-4 w-4\" />\n )}\n </button>\n )}\n </div>\n </div>\n );\n}\n","import * as React from \"react\";\nimport { Menu } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface TopBarProps {\n storeName?: string;\n user?: { name: string; email: string; avatar?: string };\n onMenuToggle?: () => void;\n actions?: React.ReactNode;\n className?: string;\n}\n\nexport function TopBar({\n storeName,\n user,\n onMenuToggle,\n actions,\n className,\n}: TopBarProps) {\n return (\n <header\n className={cn(\n \"flex h-14 items-center gap-4 border-b bg-card px-4 lg:px-6\",\n className\n )}\n >\n {onMenuToggle && (\n <button\n onClick={onMenuToggle}\n className=\"rounded-md p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground md:hidden\"\n >\n <Menu className=\"h-5 w-5\" />\n <span className=\"sr-only\">Toggle menu</span>\n </button>\n )}\n\n {storeName && (\n <div className=\"font-semibold text-foreground\">{storeName}</div>\n )}\n\n <div className=\"flex flex-1 items-center justify-end gap-4\">\n {actions}\n\n {user && (\n <div className=\"flex items-center gap-3\">\n <div className=\"hidden text-right text-sm md:block\">\n <div className=\"font-medium\">{user.name}</div>\n <div className=\"text-muted-foreground text-xs\">{user.email}</div>\n </div>\n <div className=\"flex h-8 w-8 items-center justify-center rounded-full bg-primary text-xs font-medium text-primary-foreground\">\n {user.avatar ? (\n <img\n src={user.avatar}\n alt={user.name}\n className=\"h-full w-full rounded-full object-cover\"\n />\n ) : (\n user.name\n .split(\" \")\n .map((n) => n[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2)\n )}\n </div>\n </div>\n )}\n </div>\n </header>\n );\n}\n","import * as React from \"react\";\nimport { ChevronRight } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface Breadcrumb {\n label: string;\n href?: string;\n}\n\nexport interface PageProps {\n title: string;\n subtitle?: string;\n actions?: React.ReactNode;\n breadcrumbs?: Breadcrumb[];\n children: React.ReactNode;\n fullWidth?: boolean;\n}\n\nexport function Page({\n title,\n subtitle,\n actions,\n breadcrumbs,\n children,\n fullWidth,\n}: PageProps) {\n return (\n <div className=\"flex-1 overflow-y-auto\">\n <div\n className={cn(\n \"mx-auto space-y-6 p-6\",\n !fullWidth && \"max-w-6xl\"\n )}\n >\n {breadcrumbs && breadcrumbs.length > 0 && (\n <nav className=\"flex items-center space-x-1 text-sm text-muted-foreground\">\n {breadcrumbs.map((crumb, index) => (\n <React.Fragment key={index}>\n {index > 0 && <ChevronRight className=\"h-4 w-4\" />}\n {crumb.href ? (\n <a\n href={crumb.href}\n className=\"hover:text-foreground transition-colors\"\n >\n {crumb.label}\n </a>\n ) : (\n <span className=\"text-foreground\">{crumb.label}</span>\n )}\n </React.Fragment>\n ))}\n </nav>\n )}\n\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-bold tracking-tight\">{title}</h1>\n {subtitle && (\n <p className=\"text-muted-foreground mt-1\">{subtitle}</p>\n )}\n </div>\n {actions && <div className=\"flex items-center gap-2\">{actions}</div>}\n </div>\n\n {children}\n </div>\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface PageSectionProps {\n title?: string;\n description?: string;\n children: React.ReactNode;\n actions?: React.ReactNode;\n className?: string;\n}\n\nexport function PageSection({\n title,\n description,\n children,\n actions,\n className,\n}: PageSectionProps) {\n return (\n <div\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className\n )}\n >\n {(title || description || actions) && (\n <div className=\"flex items-start justify-between border-b p-6\">\n <div>\n {title && <h2 className=\"text-lg font-semibold\">{title}</h2>}\n {description && (\n <p className=\"mt-1 text-sm text-muted-foreground\">\n {description}\n </p>\n )}\n </div>\n {actions && <div className=\"flex items-center gap-2\">{actions}</div>}\n </div>\n )}\n <div className=\"p-6\">{children}</div>\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Checkbox } from \"../primitives/checkbox\";\nimport { Skeleton } from \"../primitives/skeleton\";\n\nexport interface Column<T> {\n key: keyof T | string;\n header: string;\n cell?: (row: T) => React.ReactNode;\n sortable?: boolean;\n width?: string;\n}\n\nexport interface DataTableProps<T> {\n columns: Column<T>[];\n data: T[];\n loading?: boolean;\n pagination?: {\n page: number;\n pageSize: number;\n total: number;\n onPageChange: (page: number) => void;\n onPageSizeChange?: (size: number) => void;\n };\n selection?: {\n selected: string[];\n onSelect: (ids: string[]) => void;\n idKey?: keyof T;\n };\n onRowClick?: (row: T) => void;\n emptyState?: React.ReactNode;\n actions?: React.ReactNode;\n}\n\nexport function DataTable<T extends Record<string, unknown>>({\n columns,\n data,\n loading,\n pagination,\n selection,\n onRowClick,\n emptyState,\n actions,\n}: DataTableProps<T>) {\n const idKey = (selection?.idKey ?? \"id\") as string;\n\n const allSelected =\n selection && data.length > 0 && data.every((row) => selection.selected.includes(String(row[idKey])));\n\n const someSelected =\n selection && data.some((row) => selection.selected.includes(String(row[idKey]))) && !allSelected;\n\n function toggleAll() {\n if (!selection) return;\n if (allSelected) {\n selection.onSelect([]);\n } else {\n selection.onSelect(data.map((row) => String(row[idKey])));\n }\n }\n\n function toggleRow(row: T) {\n if (!selection) return;\n const id = String(row[idKey]);\n if (selection.selected.includes(id)) {\n selection.onSelect(selection.selected.filter((s) => s !== id));\n } else {\n selection.onSelect([...selection.selected, id]);\n }\n }\n\n const totalPages = pagination\n ? Math.ceil(pagination.total / pagination.pageSize)\n : 1;\n\n return (\n <div className=\"space-y-4\">\n {selection && selection.selected.length > 0 && actions && (\n <div className=\"flex items-center gap-2 rounded-md border bg-muted/50 p-2\">\n <span className=\"text-sm text-muted-foreground\">\n {selection.selected.length} selected\n </span>\n {actions}\n </div>\n )}\n\n <div className=\"rounded-md border\">\n <div className=\"overflow-x-auto\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b bg-muted/50\">\n {selection && (\n <th className=\"w-12 px-4 py-3\">\n <Checkbox\n checked={allSelected}\n ref={(el) => {\n if (el) {\n (el as unknown as HTMLInputElement).indeterminate =\n someSelected ?? false;\n }\n }}\n onCheckedChange={toggleAll}\n />\n </th>\n )}\n {columns.map((col) => (\n <th\n key={String(col.key)}\n className=\"px-4 py-3 text-left font-medium text-muted-foreground\"\n style={col.width ? { width: col.width } : undefined}\n >\n {col.header}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {loading\n ? Array.from({ length: 5 }).map((_, i) => (\n <tr key={i} className=\"border-b\">\n {selection && (\n <td className=\"px-4 py-3\">\n <Skeleton className=\"h-4 w-4\" />\n </td>\n )}\n {columns.map((col) => (\n <td key={String(col.key)} className=\"px-4 py-3\">\n <Skeleton className=\"h-4 w-24\" />\n </td>\n ))}\n </tr>\n ))\n : data.length === 0\n ? (\n <tr>\n <td\n colSpan={columns.length + (selection ? 1 : 0)}\n className=\"py-12 text-center\"\n >\n {emptyState || (\n <p className=\"text-muted-foreground\">No data found</p>\n )}\n </td>\n </tr>\n )\n : data.map((row, idx) => {\n const rowId = String(row[idKey] ?? idx);\n const isSelected = selection?.selected.includes(rowId);\n return (\n <tr\n key={rowId}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50\",\n isSelected && \"bg-muted/50\",\n onRowClick && \"cursor-pointer\"\n )}\n onClick={() => onRowClick?.(row)}\n >\n {selection && (\n <td\n className=\"px-4 py-3\"\n onClick={(e) => e.stopPropagation()}\n >\n <Checkbox\n checked={isSelected}\n onCheckedChange={() => toggleRow(row)}\n />\n </td>\n )}\n {columns.map((col) => (\n <td key={String(col.key)} className=\"px-4 py-3\">\n {col.cell\n ? col.cell(row)\n : String(row[col.key as keyof T] ?? \"\")}\n </td>\n ))}\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n </div>\n\n {pagination && totalPages > 1 && (\n <div className=\"flex items-center justify-between px-2\">\n <div className=\"text-sm text-muted-foreground\">\n Page {pagination.page} of {totalPages} ({pagination.total} total)\n </div>\n <div className=\"flex items-center gap-2\">\n <button\n className=\"rounded-md border px-3 py-1.5 text-sm disabled:opacity-50\"\n disabled={pagination.page <= 1}\n onClick={() => pagination.onPageChange(pagination.page - 1)}\n >\n Previous\n </button>\n <button\n className=\"rounded-md border px-3 py-1.5 text-sm disabled:opacity-50\"\n disabled={pagination.page >= totalPages}\n onClick={() => pagination.onPageChange(pagination.page + 1)}\n >\n Next\n </button>\n </div>\n </div>\n )}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface EmptyStateProps {\n icon?: React.ComponentType<{ className?: string }>;\n title: string;\n description?: string;\n action?: React.ReactNode;\n className?: string;\n}\n\nexport function EmptyState({\n icon: Icon,\n title,\n description,\n action,\n className,\n}: EmptyStateProps) {\n return (\n <div\n className={cn(\n \"flex flex-col items-center justify-center py-12 text-center\",\n className\n )}\n >\n {Icon && (\n <div className=\"mb-4 rounded-full bg-muted p-3\">\n <Icon className=\"h-6 w-6 text-muted-foreground\" />\n </div>\n )}\n <h3 className=\"text-lg font-semibold\">{title}</h3>\n {description && (\n <p className=\"mt-1 max-w-sm text-sm text-muted-foreground\">\n {description}\n </p>\n )}\n {action && <div className=\"mt-4\">{action}</div>}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface PaginationProps {\n page: number;\n totalPages: number;\n onPageChange: (page: number) => void;\n className?: string;\n}\n\nexport function Pagination({\n page,\n totalPages,\n onPageChange,\n className,\n}: PaginationProps) {\n const pages = React.useMemo(() => {\n const items: (number | \"ellipsis\")[] = [];\n if (totalPages <= 7) {\n for (let i = 1; i <= totalPages; i++) items.push(i);\n } else {\n items.push(1);\n if (page > 3) items.push(\"ellipsis\");\n const start = Math.max(2, page - 1);\n const end = Math.min(totalPages - 1, page + 1);\n for (let i = start; i <= end; i++) items.push(i);\n if (page < totalPages - 2) items.push(\"ellipsis\");\n items.push(totalPages);\n }\n return items;\n }, [page, totalPages]);\n\n if (totalPages <= 1) return null;\n\n return (\n <nav className={cn(\"flex items-center gap-1\", className)}>\n <button\n className=\"inline-flex h-9 w-9 items-center justify-center rounded-md border text-sm disabled:opacity-50\"\n disabled={page <= 1}\n onClick={() => onPageChange(page - 1)}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n </button>\n {pages.map((p, i) =>\n p === \"ellipsis\" ? (\n <span key={`e-${i}`} className=\"px-2 text-muted-foreground\">\n ...\n </span>\n ) : (\n <button\n key={p}\n className={cn(\n \"inline-flex h-9 w-9 items-center justify-center rounded-md border text-sm\",\n p === page && \"bg-primary text-primary-foreground\"\n )}\n onClick={() => onPageChange(p)}\n >\n {p}\n </button>\n )\n )}\n <button\n className=\"inline-flex h-9 w-9 items-center justify-center rounded-md border text-sm disabled:opacity-50\"\n disabled={page >= totalPages}\n onClick={() => onPageChange(page + 1)}\n >\n <ChevronRight className=\"h-4 w-4\" />\n </button>\n </nav>\n );\n}\n","import * as React from \"react\";\nimport { ArrowDown, ArrowUp } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface Stat {\n label: string;\n value: string | number;\n change?: { value: number; type: \"increase\" | \"decrease\" };\n icon?: React.ComponentType<{ className?: string }>;\n}\n\nexport interface StatsProps {\n stats: Stat[];\n columns?: 2 | 3 | 4;\n className?: string;\n}\n\nexport function Stats({ stats, columns = 4, className }: StatsProps) {\n return (\n <div\n className={cn(\n \"grid gap-4\",\n columns === 2 && \"grid-cols-1 sm:grid-cols-2\",\n columns === 3 && \"grid-cols-1 sm:grid-cols-2 lg:grid-cols-3\",\n columns === 4 && \"grid-cols-1 sm:grid-cols-2 lg:grid-cols-4\",\n className\n )}\n >\n {stats.map((stat, index) => {\n const Icon = stat.icon;\n return (\n <div\n key={index}\n className=\"rounded-lg border bg-card p-6 text-card-foreground shadow-sm\"\n >\n <div className=\"flex items-center justify-between\">\n <p className=\"text-sm font-medium text-muted-foreground\">\n {stat.label}\n </p>\n {Icon && <Icon className=\"h-4 w-4 text-muted-foreground\" />}\n </div>\n <div className=\"mt-2 flex items-baseline gap-2\">\n <p className=\"text-2xl font-bold\">{stat.value}</p>\n {stat.change && (\n <span\n className={cn(\n \"inline-flex items-center text-xs font-medium\",\n stat.change.type === \"increase\"\n ? \"text-green-600 dark:text-green-400\"\n : \"text-red-600 dark:text-red-400\"\n )}\n >\n {stat.change.type === \"increase\" ? (\n <ArrowUp className=\"mr-0.5 h-3 w-3\" />\n ) : (\n <ArrowDown className=\"mr-0.5 h-3 w-3\" />\n )}\n {stat.change.value}%\n </span>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Label } from \"../primitives/label\";\n\nexport interface FormFieldProps {\n label: string;\n error?: string;\n hint?: string;\n required?: boolean;\n children: React.ReactNode;\n className?: string;\n}\n\nexport function FormField({\n label,\n error,\n hint,\n required,\n children,\n className,\n}: FormFieldProps) {\n return (\n <div className={cn(\"space-y-2\", className)}>\n <Label>\n {label}\n {required && <span className=\"ml-1 text-destructive\">*</span>}\n </Label>\n {children}\n {hint && !error && (\n <p className=\"text-sm text-muted-foreground\">{hint}</p>\n )}\n {error && <p className=\"text-sm text-destructive\">{error}</p>}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface FormLayoutProps {\n title?: string;\n description?: string;\n children: React.ReactNode;\n actions?: React.ReactNode;\n className?: string;\n}\n\nexport function FormLayout({\n title,\n description,\n children,\n actions,\n className,\n}: FormLayoutProps) {\n return (\n <div\n className={cn(\n \"rounded-lg border bg-card text-card-foreground shadow-sm\",\n className\n )}\n >\n {(title || description) && (\n <div className=\"border-b p-6\">\n {title && <h3 className=\"text-lg font-semibold\">{title}</h3>}\n {description && (\n <p className=\"mt-1 text-sm text-muted-foreground\">{description}</p>\n )}\n </div>\n )}\n <div className=\"space-y-6 p-6\">{children}</div>\n {actions && (\n <div className=\"flex items-center justify-end gap-2 border-t px-6 py-4\">\n {actions}\n </div>\n )}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface FormSectionProps {\n title: string;\n description?: string;\n children: React.ReactNode;\n className?: string;\n}\n\nexport function FormSection({\n title,\n description,\n children,\n className,\n}: FormSectionProps) {\n return (\n <div className={cn(\"space-y-4\", className)}>\n <div>\n <h4 className=\"text-sm font-medium\">{title}</h4>\n {description && (\n <p className=\"mt-1 text-sm text-muted-foreground\">{description}</p>\n )}\n </div>\n <div className=\"space-y-4\">{children}</div>\n </div>\n );\n}\n","import * as React from \"react\";\nimport { AlertCircle, CheckCircle2, Info, AlertTriangle, X } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface AlertProps {\n variant?: \"info\" | \"success\" | \"warning\" | \"error\";\n title?: string;\n children: React.ReactNode;\n dismissible?: boolean;\n onDismiss?: () => void;\n className?: string;\n}\n\nconst variantConfig = {\n info: {\n icon: Info,\n classes: \"border-blue-200 bg-blue-50 text-blue-900 dark:border-blue-800 dark:bg-blue-950 dark:text-blue-100\",\n },\n success: {\n icon: CheckCircle2,\n classes: \"border-green-200 bg-green-50 text-green-900 dark:border-green-800 dark:bg-green-950 dark:text-green-100\",\n },\n warning: {\n icon: AlertTriangle,\n classes: \"border-yellow-200 bg-yellow-50 text-yellow-900 dark:border-yellow-800 dark:bg-yellow-950 dark:text-yellow-100\",\n },\n error: {\n icon: AlertCircle,\n classes: \"border-red-200 bg-red-50 text-red-900 dark:border-red-800 dark:bg-red-950 dark:text-red-100\",\n },\n};\n\nexport function Alert({\n variant = \"info\",\n title,\n children,\n dismissible,\n onDismiss,\n className,\n}: AlertProps) {\n const config = variantConfig[variant];\n const Icon = config.icon;\n\n return (\n <div\n className={cn(\n \"relative flex gap-3 rounded-lg border p-4\",\n config.classes,\n className\n )}\n role=\"alert\"\n >\n <Icon className=\"mt-0.5 h-5 w-5 shrink-0\" />\n <div className=\"flex-1\">\n {title && <p className=\"font-medium\">{title}</p>}\n <div className={cn(\"text-sm\", title && \"mt-1\")}>{children}</div>\n </div>\n {dismissible && (\n <button\n onClick={onDismiss}\n className=\"absolute right-3 top-3 rounded-md p-1 opacity-70 hover:opacity-100\"\n >\n <X className=\"h-4 w-4\" />\n </button>\n )}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { Loader2 } from \"lucide-react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface LoadingSpinnerProps {\n size?: \"sm\" | \"md\" | \"lg\";\n className?: string;\n}\n\nconst sizeMap = {\n sm: \"h-4 w-4\",\n md: \"h-6 w-6\",\n lg: \"h-8 w-8\",\n};\n\nexport function LoadingSpinner({ size = \"md\", className }: LoadingSpinnerProps) {\n return (\n <Loader2\n className={cn(\"animate-spin text-muted-foreground\", sizeMap[size], className)}\n />\n );\n}\n","import * as React from \"react\";\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"../primitives/dialog\";\nimport { Button } from \"../primitives/button\";\nimport { LoadingSpinner } from \"./loading-spinner\";\n\nexport interface ConfirmDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title: string;\n description?: string;\n confirmLabel?: string;\n cancelLabel?: string;\n onConfirm: () => void;\n loading?: boolean;\n variant?: \"default\" | \"destructive\";\n}\n\nexport function ConfirmDialog({\n open,\n onOpenChange,\n title,\n description,\n confirmLabel = \"Confirm\",\n cancelLabel = \"Cancel\",\n onConfirm,\n loading,\n variant = \"default\",\n}: ConfirmDialogProps) {\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>{title}</DialogTitle>\n {description && (\n <DialogDescription>{description}</DialogDescription>\n )}\n </DialogHeader>\n <DialogFooter>\n <Button\n variant=\"outline\"\n onClick={() => onOpenChange(false)}\n disabled={loading}\n >\n {cancelLabel}\n </Button>\n <Button\n variant={variant === \"destructive\" ? \"destructive\" : \"default\"}\n onClick={onConfirm}\n disabled={loading}\n >\n {loading && <LoadingSpinner size=\"sm\" className=\"mr-2\" />}\n {confirmLabel}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n","import { useState } from \"react\";\n\nexport function useDisclosure(initial = false) {\n const [isOpen, setIsOpen] = useState(initial);\n return {\n isOpen,\n open: () => setIsOpen(true),\n close: () => setIsOpen(false),\n toggle: () => setIsOpen((prev) => !prev),\n onOpenChange: setIsOpen,\n };\n}\n\nexport function usePagination(total: number, pageSize = 20) {\n const [page, setPage] = useState(1);\n const totalPages = Math.ceil(total / pageSize);\n return { page, setPage, pageSize, total, totalPages };\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface AuthShellProps {\n children: React.ReactNode\n /** Optional background pattern — 'dots' | 'grid' | 'none' */\n pattern?: 'dots' | 'grid' | 'none'\n maxWidth?: string\n}\n\nexport function AuthShell({ children, pattern = 'dots', maxWidth = '520px' }: AuthShellProps) {\n return (\n <div\n style={{\n minHeight: '100vh',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '24px',\n background: 'var(--background)',\n position: 'relative',\n overflow: 'hidden',\n }}\n >\n {pattern === 'dots' && (\n <div\n aria-hidden\n style={{\n position: 'absolute',\n inset: 0,\n backgroundImage:\n 'radial-gradient(circle, var(--border) 1px, transparent 1px)',\n backgroundSize: '28px 28px',\n opacity: 0.5,\n pointerEvents: 'none',\n }}\n />\n )}\n {pattern === 'grid' && (\n <div\n aria-hidden\n style={{\n position: 'absolute',\n inset: 0,\n backgroundImage:\n 'linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px)',\n backgroundSize: '32px 32px',\n opacity: 0.4,\n pointerEvents: 'none',\n }}\n />\n )}\n <div style={{ position: 'relative', zIndex: 1, width: '100%', maxWidth }}>\n {children}\n </div>\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface AuthCardProps {\n children: React.ReactNode\n padding?: string\n}\n\nexport function AuthCard({ children, padding = '24px 28px' }: AuthCardProps) {\n return (\n <div\n style={{\n background: 'var(--card)',\n border: '1px solid var(--border)',\n borderRadius: 'calc(var(--radius, 0.5rem) * 1.5)',\n boxShadow: '0 4px 32px rgba(0,0,0,0.06), 0 1px 4px rgba(0,0,0,0.04)',\n padding,\n width: '100%',\n }}\n >\n {children}\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface AuthLogoProps {\n /** App name shown next to the logo mark */\n appName?: string\n /** Single letter shown inside the logo box (fallback when no imageUrl) */\n letter?: string\n /** Image URL — when provided, shows image instead of letter box */\n imageUrl?: string\n /** Image/logo size in px */\n size?: number\n}\n\nexport function AuthLogo({ appName = 'Builify CMS', letter = 'B', imageUrl, size = 36 }: AuthLogoProps) {\n return (\n <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '10px', marginBottom: '28px' }}>\n {imageUrl ? (\n <img\n src={imageUrl}\n alt={appName}\n width={size}\n height={size}\n style={{ borderRadius: 'calc(var(--radius, 0.5rem) * 1.2)', flexShrink: 0, display: 'block' }}\n />\n ) : (\n <div\n style={{\n width: size,\n height: size,\n background: 'var(--primary)',\n borderRadius: 'calc(var(--radius, 0.5rem) * 1.2)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'var(--primary-foreground)',\n fontWeight: 800,\n fontSize: `${size * 0.44}px`,\n flexShrink: 0,\n }}\n >\n {letter}\n </div>\n )}\n <span\n style={{\n fontWeight: 700,\n fontSize: '1.125rem',\n color: 'var(--foreground)',\n letterSpacing: '-0.02em',\n }}\n >\n {appName}\n </span>\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface AuthHeaderProps {\n title: string\n description?: string\n}\n\nexport function AuthHeader({ title, description }: AuthHeaderProps) {\n return (\n <div style={{ marginBottom: '24px', textAlign: 'center' }}>\n <h1\n style={{\n fontSize: '1.375rem',\n fontWeight: 700,\n color: 'var(--foreground)',\n margin: 0,\n letterSpacing: '-0.02em',\n }}\n >\n {title}\n </h1>\n {description && (\n <p\n style={{\n marginTop: '6px',\n fontSize: '0.875rem',\n color: 'var(--muted-foreground)',\n lineHeight: 1.5,\n }}\n >\n {description}\n </p>\n )}\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface AuthFieldProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label: string\n error?: string\n hint?: string\n rightLabel?: React.ReactNode\n}\n\nexport function AuthField({ label, error, hint, rightLabel, id, ...props }: AuthFieldProps) {\n const fieldId = id ?? label.toLowerCase().replace(/\\s+/g, '-')\n return (\n <div style={{ display: 'flex', flexDirection: 'column', gap: '6px' }}>\n <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}>\n <label\n htmlFor={fieldId}\n style={{\n fontSize: '0.8125rem',\n fontWeight: 500,\n color: 'var(--foreground)',\n }}\n >\n {label}\n </label>\n {rightLabel && (\n <span style={{ fontSize: '0.8125rem' }}>{rightLabel}</span>\n )}\n </div>\n <input\n id={fieldId}\n style={{\n height: '40px',\n padding: '0 12px',\n background: 'var(--background)',\n border: `1px solid ${error ? 'var(--destructive)' : 'var(--border)'}`,\n borderRadius: 'var(--radius, 0.5rem)',\n color: 'var(--foreground)',\n fontSize: '0.875rem',\n outline: 'none',\n width: '100%',\n boxSizing: 'border-box',\n transition: 'border-color 0.15s, box-shadow 0.15s',\n }}\n onFocus={(e) => {\n e.currentTarget.style.borderColor = 'var(--ring)'\n e.currentTarget.style.boxShadow = '0 0 0 3px color-mix(in oklab, var(--ring) 20%, transparent)'\n props.onFocus?.(e)\n }}\n onBlur={(e) => {\n e.currentTarget.style.borderColor = error ? 'var(--destructive)' : 'var(--border)'\n e.currentTarget.style.boxShadow = 'none'\n props.onBlur?.(e)\n }}\n {...props}\n />\n {error && (\n <p style={{ fontSize: '0.8rem', color: 'var(--destructive)', margin: 0 }}>{error}</p>\n )}\n {hint && !error && (\n <p style={{ fontSize: '0.8rem', color: 'var(--muted-foreground)', margin: 0 }}>{hint}</p>\n )}\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface AuthButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n loading?: boolean\n variant?: 'primary' | 'outline' | 'ghost'\n fullWidth?: boolean\n}\n\nexport function AuthButton({\n loading,\n variant = 'primary',\n fullWidth = true,\n children,\n disabled,\n style,\n ...props\n}: AuthButtonProps) {\n const base: React.CSSProperties = {\n height: '42px',\n padding: '0 20px',\n borderRadius: 'var(--radius, 0.5rem)',\n fontSize: '0.875rem',\n fontWeight: 600,\n cursor: loading || disabled ? 'not-allowed' : 'pointer',\n opacity: loading || disabled ? 0.65 : 1,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '8px',\n border: 'none',\n outline: 'none',\n transition: 'opacity 0.15s, filter 0.15s',\n width: fullWidth ? '100%' : 'auto',\n ...style,\n }\n\n const variantStyles: Record<string, React.CSSProperties> = {\n primary: {\n background: 'var(--primary)',\n color: 'var(--primary-foreground)',\n },\n outline: {\n background: 'transparent',\n color: 'var(--foreground)',\n border: '1px solid var(--border)',\n },\n ghost: {\n background: 'transparent',\n color: 'var(--foreground)',\n },\n }\n\n return (\n <button\n disabled={loading || disabled}\n style={{ ...base, ...variantStyles[variant] }}\n onMouseEnter={(e) => {\n if (!loading && !disabled) e.currentTarget.style.filter = 'brightness(0.9)'\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.filter = 'none'\n }}\n {...props}\n >\n {loading ? (\n <>\n <span\n style={{\n width: 14,\n height: 14,\n border: '2px solid currentColor',\n borderTopColor: 'transparent',\n borderRadius: '50%',\n display: 'inline-block',\n animation: 'dashui-spin 0.7s linear infinite',\n }}\n />\n {children}\n </>\n ) : children}\n </button>\n )\n}\n","'use client'\n\nimport * as React from 'react'\n\nexport function AuthDivider({ label = 'or' }: { label?: string }) {\n return (\n <div style={{ display: 'flex', alignItems: 'center', gap: '12px', margin: '20px 0' }}>\n <div style={{ flex: 1, height: 1, background: 'var(--border)' }} />\n <span style={{ fontSize: '0.75rem', color: 'var(--muted-foreground)', userSelect: 'none' }}>\n {label}\n </span>\n <div style={{ flex: 1, height: 1, background: 'var(--border)' }} />\n </div>\n )\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface AuthFootnoteProps {\n text: string\n linkText: string\n linkHref: string\n}\n\nexport function AuthFootnote({ text, linkText, linkHref }: AuthFootnoteProps) {\n return (\n <p style={{\n textAlign: 'center',\n marginTop: '20px',\n fontSize: '0.8125rem',\n color: 'var(--muted-foreground)',\n }}>\n {text}{' '}\n <a\n href={linkHref}\n style={{\n color: 'var(--primary)',\n fontWeight: 600,\n textDecoration: 'none',\n }}\n onMouseEnter={(e) => e.currentTarget.style.textDecoration = 'underline'}\n onMouseLeave={(e) => e.currentTarget.style.textDecoration = 'none'}\n >\n {linkText}\n </a>\n </p>\n )\n}\n","'use client'\n\nimport * as React from 'react'\n\ninterface SkeletonProps {\n width?: string | number\n height?: string | number\n rounded?: string\n className?: string\n style?: React.CSSProperties\n}\n\nexport function Skeleton({ width = '100%', height = 16, rounded, style }: SkeletonProps) {\n return (\n <div\n style={{\n width,\n height,\n background: 'var(--muted, #e5e7eb)',\n borderRadius: rounded ?? 'var(--radius, 0.5rem)',\n overflow: 'hidden',\n position: 'relative',\n flexShrink: 0,\n ...style,\n }}\n >\n <div\n style={{\n position: 'absolute',\n inset: 0,\n background:\n 'linear-gradient(90deg, transparent 0%, color-mix(in oklab, var(--background, #fff) 40%, transparent) 50%, transparent 100%)',\n animation: 'dashui-shimmer 1.6s ease-in-out infinite',\n }}\n />\n </div>\n )\n}\n","// ─── Primitives ──────────────────────────────────────────────\nexport * from './components/primitives/button'\nexport * from './components/primitives/badge'\nexport * from './components/primitives/card'\nexport * from './components/primitives/checkbox'\nexport * from './components/primitives/dialog'\nexport * from './components/primitives/dropdown-menu'\nexport * from './components/primitives/input'\nexport * from './components/primitives/label'\nexport * from './components/primitives/popover'\nexport * from './components/primitives/select'\nexport * from './components/primitives/separator'\nexport * from './components/primitives/skeleton'\nexport * from './components/primitives/switch'\nexport * from './components/primitives/tabs'\nexport * from './components/primitives/textarea'\nexport * from './components/primitives/tooltip'\n\n// ─── Layout ──────────────────────────────────────────────────\nexport * from './components/layout/app-shell'\nexport * from './components/layout/sidebar'\nexport * from './components/layout/top-bar'\nexport * from './components/layout/page'\nexport * from './components/layout/page-section'\n\n// ─── Data Display ─────────────────────────────────────────────\nexport * from './components/data/data-table'\nexport * from './components/data/empty-state'\nexport * from './components/data/pagination'\nexport * from './components/data/stats'\n\n// ─── Form ─────────────────────────────────────────────────────\nexport * from './components/form/form-field'\nexport * from './components/form/form-layout'\nexport * from './components/form/form-section'\n\n// ─── Feedback ─────────────────────────────────────────────────\nexport * from './components/feedback/alert'\nexport * from './components/feedback/confirm-dialog'\nexport * from './components/feedback/loading-spinner'\n\n// ─── CMS-specific (coming soon) ───────────────────────────────\n// export * from './components/cms/resource-list'\n// export * from './components/cms/index-table'\n// export * from './components/cms/contextual-save-bar'\n// export * from './components/cms/color-scheme-picker'\n// export * from './components/cms/page-actions'\n\n// ─── Hooks ────────────────────────────────────────────────────\nexport * from './hooks'\n\n// ─── Utils ────────────────────────────────────────────────────\nexport * from './lib/utils'\n\n// ─── Auth Components ──────────────────────────────────────────\nexport * from './components/auth'\n\n// ─── Skeleton ─────────────────────────────────────────────────\nexport { Skeleton } from './components/Skeleton'\n\n// ─── Theme (next-themes re-export) ────────────────────────────\nexport { ThemeProvider, useTheme } from 'next-themes'\n"],"mappings":"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","names":["cva","jsx","cva","React","jsx","React","jsx","React","jsx","React","Check","jsx","jsxs","Check","React","jsx","React","jsx","Label","React","jsx","React","Check","jsx","jsxs","Check","React","jsx","Separator","jsx","React","jsx","React","jsx","React","jsx","React","jsx","jsx","jsxs","React","ChevronDown","jsx","jsxs","Icon","ChevronDown","jsx","jsxs","React","ChevronRight","jsx","jsxs","ChevronRight","jsx","jsxs","jsx","jsxs","jsx","jsxs","Icon","React","ChevronRight","jsx","jsxs","ChevronRight","jsx","jsxs","Icon","jsx","jsxs","Label","jsx","jsxs","jsx","jsxs","X","jsx","jsxs","Icon","X","jsx","jsx","jsxs","useState","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","Fragment","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","Skeleton"]}
|