@switch-to-eu/layout-ui
Version:
Modular UI design system for privacy-focused tools - React components with Tailwind CSS and theme customization
1 lines • 59.1 kB
Source Map (JSON)
{"version":3,"sources":["../src/lib/utils.ts","../src/components/ui/Button.tsx","../src/components/ui/Card.tsx","../src/components/ui/Input.tsx","../src/components/ui/Textarea.tsx","../src/components/ui/Label.tsx","../src/components/ui/Skeleton.tsx","../src/components/ui/Alert.tsx","../src/components/ui/Checkbox.tsx","../src/components/ui/LoadingButton.tsx","../src/components/ui/Select.tsx","../src/components/ui/Dialog.tsx","../src/components/ui/SectionCard.tsx","../src/components/ui/Header.tsx","../src/components/form/FormUtils.tsx","../src/components/form/FormInput.tsx","../src/components/form/FormTextarea.tsx","../src/lib/theme.ts"],"names":["React","React2","React3","React4","cva","React5","React6","React7","React8","React9","Check","React11","React12","React13","React14","React15"],"mappings":"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","file":"index.mjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Utility function to merge Tailwind CSS classes\n */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"gradient-purple-blue text-white shadow-xs hover:shadow-lg transition-all\",\n // Solid color variants\n primary:\n \"bg-primary text-white shadow-xs hover:opacity-90 focus-visible:ring-primary/20\",\n secondary:\n \"bg-secondary text-white shadow-xs hover:opacity-90 focus-visible:ring-secondary/20\",\n tertiary:\n \"bg-tertiary text-white shadow-xs hover:opacity-90 focus-visible:ring-tertiary/20\",\n quaternary:\n \"bg-quaternary text-white shadow-xs hover:opacity-90 focus-visible:ring-quaternary/20\",\n // Gradient variants\n \"gradient-primary\":\n \"gradient-primary text-white shadow-xs hover:opacity-90 hover:shadow-lg transition-all\",\n \"gradient-secondary\":\n \"gradient-secondary text-white shadow-xs hover:opacity-90 hover:shadow-lg transition-all\",\n \"gradient-tertiary\":\n \"gradient-tertiary text-white shadow-xs hover:opacity-90 hover:shadow-lg transition-all\",\n \"gradient-quaternary\":\n \"gradient-quaternary text-white shadow-xs hover:opacity-90 hover:shadow-lg transition-all\",\n // Status variants - solid\n success:\n \"bg-success text-white shadow-xs hover:opacity-90 focus-visible:ring-success/20\",\n warning:\n \"bg-warning text-white shadow-xs hover:opacity-90 focus-visible:ring-warning/20\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:opacity-90 focus-visible:ring-destructive/20\",\n // Utility variants\n neutral:\n \"border border-primary bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n ghost:\n \"shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n link:\n \"underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"gradient-primary\",\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 };","import * as React from \"react\";\n\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 data-slot=\"card\"\n className={cn(\n \"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border-primary border py-6 shadow-sm shadow-card\",\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 data-slot=\"card-header\"\n className={cn(\n \"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6\",\n className\n )}\n {...props}\n />\n));\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"card-title\"\n className={cn(\"leading-none font-semibold\", className)}\n {...props}\n />\n));\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"card-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n));\nCardDescription.displayName = \"CardDescription\";\n\nconst CardAction = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"card-action\"\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className\n )}\n {...props}\n />\n));\nCardAction.displayName = \"CardAction\";\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"card-content\"\n className={cn(\"px-6\", className)}\n {...props}\n />\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 data-slot=\"card-footer\"\n className={cn(\"flex items-center px-6 [.border-t]:pt-6\", className)}\n {...props}\n />\n));\nCardFooter.displayName = \"CardFooter\";\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent };","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement> { }\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n \"focus-visible:border-purple-400 focus-visible:ring-purple-100 focus-visible:ring-1\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nInput.displayName = \"Input\";\n\nexport { Input };","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> { }\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[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 className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };","\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };","import * as React from \"react\";\n\nimport { 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 };","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst alertVariants = cva(\n \"relative w-full p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground overflow-hidden shadow-card\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground border-t border-b border-primary sm:rounded-lg sm:border-l sm:border-r\",\n destructive: \"gradient-bg-destructive border-t border-b border-primary sm:rounded-lg sm:border-l sm:border-r text-gray-900 [&>svg]:text-warning\",\n primary: \"gradient-bg-primary border-t border-b border-primary sm:rounded-lg sm:border-l sm:border-r text-gray-900\",\n secondary: \"gradient-bg-secondary border-t border-b border-primary sm:rounded-lg sm:border-l sm:border-r text-gray-900\",\n tertiary: \"gradient-bg-tertiary border-t border-b border-primary sm:rounded-lg sm:border-l sm:border-r text-gray-900\",\n quaternary: \"gradient-bg-quaternary border-t border-b border-primary sm:rounded-lg sm:border-l sm:border-r text-gray-900\",\n neutral: \"bg-gray-50 border-t border-b border-primary sm:rounded-lg sm:border-l sm:border-r text-gray-900\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n));\nAlert.displayName = \"Alert\";\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n));\nAlertTitle.displayName = \"AlertTitle\";\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n));\nAlertDescription.displayName = \"AlertDescription\";\n\nexport { Alert, AlertTitle, AlertDescription };","\"use client\";\n\nimport * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\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 };","import * as React from \"react\";\nimport { Button, buttonVariants } from \"./Button\";\nimport type { VariantProps } from \"class-variance-authority\";\nimport { Loader2 } from \"lucide-react\";\n\nexport interface LoadingButtonProps\n extends React.ComponentProps<\"button\">,\n VariantProps<typeof buttonVariants> {\n loading?: boolean;\n loadingText?: string;\n asChild?: boolean;\n}\n\nconst LoadingButton = React.forwardRef<HTMLButtonElement, LoadingButtonProps>(\n ({ loading = false, loadingText, children, disabled, ...props }, ref) => {\n return (\n <Button\n ref={ref}\n disabled={disabled ?? loading}\n {...props}\n >\n {loading ? (\n <>\n <Loader2 className=\"mr-2 h-4 w-4 animate-spin\" />\n {loadingText ?? \"Loading...\"}\n </>\n ) : (\n children\n )}\n </Button>\n );\n }\n);\n\nLoadingButton.displayName = \"LoadingButton\";\n\nexport { LoadingButton };","\"use client\";\n\nimport * as React from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-md border border-primary bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <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(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border-primary bg-background 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 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-sm font-semibold\", 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 bg-background border-primary select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\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-muted\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n};","\"use client\";\n\nimport * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\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-background/80 backdrop-blur-sm 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 border-primary 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};","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface SectionCardProps {\n children: React.ReactNode;\n className?: string;\n}\n\nexport interface SectionHeaderProps {\n children?: React.ReactNode;\n icon?: React.ReactNode;\n title: string;\n description?: string;\n className?: string;\n variant?: \"primary\" | \"secondary\" | \"tertiary\" | \"quaternary\" | \"neutral\";\n}\n\nexport interface SectionContentProps {\n children: React.ReactNode;\n className?: string;\n}\n\nconst SectionCard = React.forwardRef<HTMLDivElement, SectionCardProps>(\n ({ children, className }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"overflow-hidden shadow-card\",\n // Mobile: only top/bottom borders, no left/right\n \"border-t border-b border-primary\",\n // Desktop: rounded corners and full border\n \"sm:rounded-lg sm:border-l sm:border-r\",\n className\n )}\n >\n {children}\n </div>\n )\n);\nSectionCard.displayName = \"SectionCard\";\n\nconst SectionHeader = React.forwardRef<HTMLDivElement, SectionHeaderProps>(\n ({ children, icon, title, description, className, variant = \"primary\" }, ref) => {\n const variantStyles = {\n primary: \"gradient-bg-primary border-b\",\n secondary: \"gradient-bg-secondary border-b\",\n tertiary: \"gradient-bg-tertiary border-b\",\n quaternary: \"gradient-bg-quaternary border-b\",\n neutral: \"bg-gray-50 border-b\",\n };\n\n const iconColors = {\n primary: \"text-brand-primary\",\n secondary: \"text-warning\",\n tertiary: \"text-success\",\n quaternary: \"text-warning\",\n neutral: \"text-gray-600\",\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n \"border-gray-200 px-6 py-4\",\n variantStyles[variant],\n className\n )}\n >\n <div className=\"flex items-center gap-2\">\n {icon && (\n <span className={iconColors[variant]}>{icon}</span>\n )}\n <h2 className=\"text-lg font-semibold text-gray-900\">{title}</h2>\n </div>\n {description && (\n <p className=\"mt-1 text-sm text-gray-600\">\n {description}\n </p>\n )}\n {children}\n </div>\n );\n }\n);\nSectionHeader.displayName = \"SectionHeader\";\n\nconst SectionContent = React.forwardRef<HTMLDivElement, SectionContentProps>(\n ({ children, className }, ref) => (\n <div ref={ref} className={cn(\"p-6 bg-white\", className)}>\n {children}\n </div>\n )\n);\nSectionContent.displayName = \"SectionContent\";\n\nexport { SectionCard, SectionHeader, SectionContent };","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../../lib/utils\";\n\nexport interface HeaderProps {\n children?: React.ReactNode;\n className?: string;\n sticky?: boolean;\n}\n\nexport interface HeaderBrandProps {\n children: React.ReactNode;\n href?: string;\n className?: string;\n onClick?: () => void;\n icon?: React.ReactNode;\n}\n\nexport interface HeaderNavProps {\n children: React.ReactNode;\n className?: string;\n align?: \"left\" | \"center\" | \"right\";\n}\n\nexport interface HeaderContentProps {\n children: React.ReactNode;\n className?: string;\n}\n\nconst Header = React.forwardRef<HTMLElement, HeaderProps>(\n ({ children, className, sticky = true }, ref) => (\n <header\n ref={ref}\n className={cn(\n \"max-w bg-background/95 supports-[backdrop-filter]:bg-background/60 backdrop-blur border-b border-primary\",\n sticky && \"sticky top-0 z-50\",\n className\n )}\n >\n {children}\n </header>\n )\n);\nHeader.displayName = \"Header\";\n\nconst HeaderContent = React.forwardRef<HTMLDivElement, HeaderContentProps>(\n ({ children, className }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"container mx-auto flex items-center justify-between py-3 sm:py-4\",\n className\n )}\n >\n {children}\n </div>\n )\n);\nHeaderContent.displayName = \"HeaderContent\";\n\nconst HeaderBrand = React.forwardRef<HTMLDivElement, HeaderBrandProps>(\n ({ children, href, className, onClick, icon }, ref) => {\n const brandContent = (\n <div\n ref={ref}\n className={cn(\n \"flex text-primary cursor-pointer items-center gap-2 text-lg font-black transition-opacity hover:opacity-80 sm:text-xl\",\n className\n )}\n onClick={onClick}\n >\n {icon && (\n <div className=\"relative text-primary h-3 w-3 flexitems-center justify-center rounded-sm bg-purple-600\">\n <div className=\"h-3 w-3 text-primary\">\n {icon}\n </div>\n </div>\n )}\n <span className=\"font-black tracking-wide uppercase\">\n {children}\n </span>\n </div>\n );\n\n if (href) {\n return (\n <a href={href} className=\"no-underline\">\n {brandContent}\n </a>\n );\n }\n\n return brandContent;\n }\n);\nHeaderBrand.displayName = \"HeaderBrand\";\n\nconst HeaderNav = React.forwardRef<HTMLDivElement, HeaderNavProps>(\n ({ children, className, align = \"right\" }, ref) => (\n <nav\n ref={ref}\n c