acai-ui-library 0.1.13 → 0.1.15
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/components/alert.cjs +3 -2
- package/dist/components/alert.cjs.map +1 -1
- package/dist/components/alert.js +3 -2
- package/dist/components/alert.js.map +1 -1
- package/dist/components/card.cjs +1 -1
- package/dist/components/card.cjs.map +1 -1
- package/dist/components/card.js +1 -1
- package/dist/components/card.js.map +1 -1
- package/dist/components/checkbox.cjs +2 -1
- package/dist/components/checkbox.cjs.map +1 -1
- package/dist/components/checkbox.js +2 -1
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/data-table.cjs +2 -1
- package/dist/components/data-table.cjs.map +1 -1
- package/dist/components/data-table.js +2 -1
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/date-picker.cjs.map +1 -1
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dropdown-menu.cjs +2 -2
- package/dist/components/dropdown-menu.cjs.map +1 -1
- package/dist/components/dropdown-menu.js +2 -2
- package/dist/components/dropdown-menu.js.map +1 -1
- package/dist/components/impersonation-banner.cjs +137 -0
- package/dist/components/impersonation-banner.cjs.map +1 -0
- package/dist/components/impersonation-banner.d.cts +36 -0
- package/dist/components/impersonation-banner.d.ts +36 -0
- package/dist/components/impersonation-banner.js +101 -0
- package/dist/components/impersonation-banner.js.map +1 -0
- package/dist/components/input.cjs +2 -1
- package/dist/components/input.cjs.map +1 -1
- package/dist/components/input.js +2 -1
- package/dist/components/input.js.map +1 -1
- package/dist/components/item.cjs +1 -2
- package/dist/components/item.cjs.map +1 -1
- package/dist/components/item.js +1 -2
- package/dist/components/item.js.map +1 -1
- package/dist/components/pagination.cjs +3 -1
- package/dist/components/pagination.cjs.map +1 -1
- package/dist/components/pagination.d.cts +1 -1
- package/dist/components/pagination.d.ts +1 -1
- package/dist/components/pagination.js +3 -1
- package/dist/components/pagination.js.map +1 -1
- package/dist/components/read-only-guard.cjs +103 -0
- package/dist/components/read-only-guard.cjs.map +1 -0
- package/dist/components/read-only-guard.d.cts +40 -0
- package/dist/components/read-only-guard.d.ts +40 -0
- package/dist/components/read-only-guard.js +64 -0
- package/dist/components/read-only-guard.js.map +1 -0
- package/dist/components/stepper.cjs.map +1 -1
- package/dist/components/stepper.js.map +1 -1
- package/dist/components/switch.cjs +2 -2
- package/dist/components/switch.cjs.map +1 -1
- package/dist/components/switch.js +2 -2
- package/dist/components/switch.js.map +1 -1
- package/dist/components/typography.cjs +4 -4
- package/dist/components/typography.cjs.map +1 -1
- package/dist/components/typography.js +4 -4
- package/dist/components/typography.js.map +1 -1
- package/dist/index.cjs +240 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +228 -16
- package/dist/index.js.map +1 -1
- package/dist/lib/impersonation.cjs +127 -0
- package/dist/lib/impersonation.cjs.map +1 -0
- package/dist/lib/impersonation.d.cts +45 -0
- package/dist/lib/impersonation.d.ts +45 -0
- package/dist/lib/impersonation.js +86 -0
- package/dist/lib/impersonation.js.map +1 -0
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts","../src/components/button.tsx","../src/components/input.tsx","../src/components/file-input.tsx","../src/components/textarea.tsx","../src/components/label.tsx","../src/components/tooltip.tsx","../src/components/checkbox.tsx","../src/components/radio-group.tsx","../src/components/switch.tsx","../src/components/slider.tsx","../src/components/toggle.tsx","../src/components/toggle-group.tsx","../src/components/select.tsx","../src/components/form.tsx","../src/components/input-otp.tsx","../src/components/badge.tsx","../src/components/icon/success-icon.tsx","../src/components/avatar.tsx","../src/components/alert.tsx","../src/components/progress.tsx","../src/components/skeleton.tsx","../src/components/spinner.tsx","../src/components/separator.tsx","../src/components/scroll-area.tsx","../src/components/aspect-ratio.tsx","../src/components/empty-state.tsx","../src/components/input-group.tsx","../src/components/item.tsx","../src/components/dialog.tsx","../src/components/alert-dialog.tsx","../src/components/sheet.tsx","../src/components/drawer.tsx","../src/components/popover.tsx","../src/components/hover-card.tsx","../src/components/context-menu.tsx","../src/components/dropdown-menu.tsx","../src/components/tabs.tsx","../src/components/accordion.tsx","../src/components/collapsible.tsx","../src/components/navigation-menu.tsx","../src/components/breadcrumb.tsx","../src/components/menubar.tsx","../src/components/sidebar.tsx","../src/components/card.tsx","../src/components/resizable.tsx","../src/components/stepper.tsx","../src/components/table.tsx","../src/components/data-table.tsx","../src/components/pagination.tsx","../src/components/calendar.tsx","../src/components/date-picker.tsx","../src/components/command.tsx","../src/components/carousel.tsx","../src/components/chart.tsx","../src/components/dashboard-header.tsx","../src/components/app-header.tsx","../src/components/icon/bell-icon.tsx","../src/components/icon/icon-info-line-icon.tsx","../src/components/sonner.tsx","../src/components/typography.tsx","../src/components/theme-provider.tsx","../src/components/banner.tsx"],"sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","\nimport * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Loader2 } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap 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 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:size-4\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground hover:bg-primary-hover\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive-hover\",\n outline:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary-hover\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground\",\n link:\n \"text-primary underline-offset-4 hover:underline\",\n success:\n \"bg-success text-success-foreground hover:bg-success-hover\",\n },\n size: {\n xs: \"h-7 px-2.5 text-xs\",\n sm: \"h-9 px-3\",\n default: \"h-10 px-4 py-2\",\n lg: \"h-11 px-8\",\n icon: \"h-10 w-10\",\n \"icon-sm\": \"h-8 w-8\",\n },\n shape: {\n default: \"rounded-md\",\n rounded: \"rounded-lg\",\n pill: \"rounded-full\",\n square: \"rounded-none\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n shape: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n loading?: boolean\n prefixIcon?: React.ReactNode\n suffixIcon?: React.ReactNode\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n shape,\n asChild = false,\n loading = false,\n prefixIcon,\n suffixIcon,\n children,\n disabled,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\"\n const isDisabled = disabled || loading\n\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, shape, className }))}\n ref={ref}\n disabled={isDisabled}\n {...props}\n >\n {loading && <Loader2 className=\"animate-spin\" />}\n {!loading && prefixIcon}\n {children}\n {suffixIcon}\n </Comp>\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Eye, EyeOff, X } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nconst inputVariants = cva(\n \"flex w-full rounded-md border bg-background transition-[color,border-color,box-shadow] duration-150 file:border-0 file:bg-transparent file:font-medium file:text-foreground placeholder:text-muted-foreground focus-within:outline-none disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n variant: {\n default:\n \"border-input hover:border-muted-foreground focus-within:border-[var(--hc-primary-500)] focus-within:ring-[3px] focus-within:ring-[color-mix(in_srgb,var(--hc-primary-500)_22%,transparent)]\",\n error:\n \"border-[var(--hc-color-destructive)] focus-within:border-[var(--hc-color-destructive)] focus-within:ring-[3px] focus-within:ring-[color-mix(in_srgb,var(--hc-color-destructive)_22%,transparent)]\",\n success:\n \"border-[var(--hc-color-success)] focus-within:border-[var(--hc-color-success)] focus-within:ring-[3px] focus-within:ring-[color-mix(in_srgb,var(--hc-color-success)_22%,transparent)]\",\n },\n inputSize: {\n default: \"h-10 px-3 py-2 text-sm\",\n sm: \"h-8 px-2.5 py-1.5 text-xs\",\n lg: \"h-12 px-4 py-3 text-base\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n inputSize: \"default\",\n },\n }\n)\n\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\">,\n VariantProps<typeof inputVariants> {\n label?: string\n hint?: string\n leadingIcon?: React.ReactNode\n trailingIcon?: React.ReactNode\n clearable?: boolean\n onClear?: () => void\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n (\n {\n className,\n type,\n label,\n hint,\n variant = \"default\",\n inputSize = \"default\",\n leadingIcon,\n trailingIcon,\n clearable,\n onClear,\n disabled,\n id,\n value,\n defaultValue,\n onChange,\n ...props\n },\n ref\n ) => {\n const inputId = id || React.useId()\n const isControlled = value !== undefined\n const [internalValue, setInternalValue] = React.useState<\n string | number | readonly string[] | undefined\n >(defaultValue)\n const innerRef = React.useRef<HTMLInputElement | null>(null)\n\n React.useImperativeHandle(\n ref,\n () => innerRef.current as HTMLInputElement,\n []\n )\n\n const currentValue = isControlled ? value : internalValue\n const hasValue =\n currentValue !== undefined &&\n currentValue !== null &&\n String(currentValue).length > 0\n\n const isPassword = type === \"password\"\n const [showPassword, setShowPassword] = React.useState(false)\n const resolvedType = isPassword ? (showPassword ? \"text\" : \"password\") : type\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalValue(e.target.value)\n }\n onChange?.(e)\n }\n\n const handleClear = () => {\n if (!isControlled) {\n setInternalValue(\"\")\n }\n // Fire a synthetic input event so consumers relying on onChange receive it.\n const input = innerRef.current\n if (input) {\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n window.HTMLInputElement.prototype,\n \"value\"\n )?.set\n nativeInputValueSetter?.call(input, \"\")\n const event = new Event(\"input\", { bubbles: true })\n input.dispatchEvent(event)\n input.focus()\n }\n onClear?.()\n }\n\n const showClearButton = clearable && hasValue && !isPassword && !disabled\n const showPasswordToggle = isPassword && !disabled\n\n const trailingSlots = [\n showClearButton ? 1 : 0,\n showPasswordToggle ? 1 : 0,\n trailingIcon ? 1 : 0,\n ].reduce((a, b) => a + b, 0)\n\n const inputPaddingEnd =\n trailingSlots >= 2 ? \"pe-14\" : trailingSlots === 1 ? \"pe-8\" : undefined\n\n return (\n <div className=\"flex flex-col gap-1.5\" data-slot=\"input-root\">\n {label && (\n <label\n htmlFor={inputId}\n className={cn(\n \"text-sm font-medium text-foreground\",\n disabled && \"text-muted-foreground\"\n )}\n >\n {label}\n </label>\n )}\n <div\n data-slot=\"input-wrapper\"\n className={cn(\n inputVariants({ variant, inputSize }),\n \"relative flex items-center gap-2\",\n disabled && \"cursor-not-allowed opacity-50\",\n className\n )}\n >\n {leadingIcon && (\n <span className=\"shrink-0 text-muted-foreground\">\n {leadingIcon}\n </span>\n )}\n <input\n id={inputId}\n type={resolvedType}\n disabled={disabled}\n className={cn(\n \"flex-1 min-w-0 bg-transparent outline-none text-inherit placeholder:text-muted-foreground disabled:cursor-not-allowed\",\n inputPaddingEnd\n )}\n ref={innerRef}\n value={isControlled ? value : internalValue}\n defaultValue={isControlled ? undefined : undefined}\n onChange={handleChange}\n {...props}\n />\n {(showClearButton || showPasswordToggle) && (\n <span\n className=\"pointer-events-none absolute end-2 top-1/2 -translate-y-1/2 flex items-center gap-1\"\n >\n {showClearButton && (\n <button\n type=\"button\"\n aria-label=\"Clear\"\n onClick={handleClear}\n tabIndex={-1}\n className=\"pointer-events-auto inline-flex size-4 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background\"\n >\n <X className=\"size-4\" aria-hidden=\"true\" />\n </button>\n )}\n {showPasswordToggle && (\n <button\n type=\"button\"\n aria-label={showPassword ? \"Hide password\" : \"Show password\"}\n onClick={() => setShowPassword((s) => !s)}\n tabIndex={-1}\n className=\"pointer-events-auto inline-flex size-4 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background\"\n >\n {showPassword ? (\n <EyeOff className=\"size-4\" aria-hidden=\"true\" />\n ) : (\n <Eye className=\"size-4\" aria-hidden=\"true\" />\n )}\n </button>\n )}\n </span>\n )}\n {trailingIcon && !showClearButton && !showPasswordToggle && (\n <span className=\"shrink-0 text-muted-foreground\">\n {trailingIcon}\n </span>\n )}\n </div>\n {hint && (\n <p\n className={cn(\n \"text-xs\",\n variant === \"default\" && \"text-muted-foreground\",\n variant === \"error\" && \"text-destructive\",\n variant === \"success\" && \"text-success\"\n )}\n >\n {hint}\n </p>\n )}\n </div>\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input, inputVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { CloudUpload } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nexport interface FileInputProps {\n accept?: string\n maxSize?: number // MB\n onFileSelect?: (files: File[]) => void\n multiple?: boolean\n disabled?: boolean\n className?: string\n}\n\nconst FileInput = React.forwardRef<HTMLDivElement, FileInputProps>(\n ({ accept, maxSize = 15, onFileSelect, multiple = false, disabled = false, className, ...props }, ref) => {\n const [isDragOver, setIsDragOver] = React.useState(false)\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault()\n if (!disabled) setIsDragOver(true)\n }\n\n const handleDragLeave = () => setIsDragOver(false)\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault()\n setIsDragOver(false)\n if (disabled) return\n const files = Array.from(e.dataTransfer.files)\n onFileSelect?.(files)\n }\n\n const handleClick = () => {\n if (!disabled) inputRef.current?.click()\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (disabled) return\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n inputRef.current?.click()\n }\n }\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const files = Array.from(e.target.files || [])\n onFileSelect?.(files)\n }\n\n return (\n <div\n ref={ref}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-label=\"File upload area\"\n aria-disabled={disabled || undefined}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n className={cn(\n \"flex flex-col items-center justify-center gap-[14px] rounded-[6px] bg-white p-[22px] cursor-pointer transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)]\",\n isDragOver && \"border-2 border-dashed border-[var(--hc-primary-500)] bg-[var(--hc-primary-100)]\",\n !isDragOver && \"border-2 border-dashed border-[var(--hc-color-border-subtle)]\",\n disabled && \"opacity-50 cursor-not-allowed\",\n className\n )}\n {...props}\n >\n <CloudUpload className=\"size-6 text-[var(--hc-primary-500)]\" />\n <p className=\"text-[12px] leading-[16px] text-[var(--hc-grey-200)] text-center\">\n PNG, JPG or PDF, smaller than {maxSize}MB\n </p>\n <p className=\"text-[14px] leading-[20px] font-medium text-[var(--hc-grey-300)] text-center\">\n Drag and Drop your file here or{\" \"}\n <span className=\"text-[var(--hc-primary-500)] hover:underline\">Browse file</span>\n </p>\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n onChange={handleChange}\n className=\"hidden\"\n tabIndex={-1}\n aria-hidden=\"true\"\n />\n </div>\n )\n }\n)\nFileInput.displayName = \"FileInput\"\n\nexport { FileInput }\n","import * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n error?: boolean\n maxCharacters?: number\n}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, error, maxCharacters, value, onChange, ...props }, ref) => {\n const [charCount, setCharCount] = React.useState(\n typeof value === \"string\" ? value.length : 0\n )\n\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setCharCount(e.target.value.length)\n onChange?.(e)\n }\n\n return (\n <div className=\"relative\">\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 placeholder:text-muted-foreground focus:outline-none focus:border-ring disabled:cursor-not-allowed disabled:opacity-50\",\n error && \"border-destructive focus:border-destructive\",\n className\n )}\n ref={ref}\n value={value}\n onChange={handleChange}\n {...props}\n />\n {maxCharacters && (\n <span className=\"absolute bottom-2 end-3 text-xs text-muted-foreground\">\n {charCount}/{maxCharacters}\n </span>\n )}\n </div>\n )\n }\n)\nTextarea.displayName = \"Textarea\"\n\nexport { Textarea }\n","import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Info } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"./tooltip\"\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\nexport interface LabelProps\n extends React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>,\n VariantProps<typeof labelVariants> {\n required?: boolean\n helperText?: string\n tooltip?: string\n}\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n LabelProps\n>(({ className, required, helperText, tooltip, children, ...props }, ref) => {\n const tooltipIcon = tooltip ? (\n <TooltipProvider delayDuration={200}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n role=\"button\"\n tabIndex={0}\n aria-label=\"More information\"\n className=\"ms-1 inline-flex align-middle text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background rounded-sm\"\n >\n <Info className=\"size-3.5\" aria-hidden=\"true\" />\n </span>\n </TooltipTrigger>\n <TooltipContent>{tooltip}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n ) : null\n\n if (helperText || tooltip) {\n return (\n <span className=\"flex flex-col\">\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n >\n {children}\n {required && <span className=\"ms-1 text-destructive\">*</span>}\n {tooltipIcon}\n </LabelPrimitive.Root>\n {helperText && (\n <span className=\"mt-1 text-xs text-muted-foreground\">\n {helperText}\n </span>\n )}\n </span>\n )\n }\n\n return (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n >\n {children}\n {required && <span className=\"ms-1 text-destructive\">*</span>}\n </LabelPrimitive.Root>\n )\n})\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }\n","import * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\nimport { cn } from \"../lib/utils\"\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = TooltipPrimitive.Root\n\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 * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\nconst checkboxVariants = cva(\n \"peer shrink-0 border 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]:border-0 data-[state=indeterminate]:border-0\",\n {\n variants: {\n variant: {\n default:\n \"border-input hover:border-muted-foreground data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground\",\n destructive:\n \"border-input hover:border-muted-foreground data-[state=checked]:bg-destructive data-[state=checked]:text-destructive-foreground data-[state=indeterminate]:bg-destructive data-[state=indeterminate]:text-destructive-foreground\",\n success:\n \"border-input hover:border-muted-foreground data-[state=checked]:bg-success data-[state=checked]:text-success-foreground data-[state=indeterminate]:bg-success data-[state=indeterminate]:text-success-foreground\",\n },\n size: {\n sm: \"size-3.5 rounded-sm\",\n default: \"size-4 rounded-sm\",\n lg: \"size-5 rounded\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst checkboxIconSize = {\n sm: \"size-2.5\",\n default: \"size-3\",\n lg: \"size-4\",\n} as const\n\nexport interface CheckboxProps\n extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>,\n VariantProps<typeof checkboxVariants> {\n label?: string\n}\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n CheckboxProps\n>(({ className, label, id, variant, size = \"default\", ...props }, ref) => {\n const checkboxId = id || React.useId()\n return (\n <div className=\"inline-flex items-center gap-2\">\n <CheckboxPrimitive.Root\n ref={ref}\n id={checkboxId}\n className={cn(checkboxVariants({ variant, size, className }))}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center text-current\">\n <Check className={checkboxIconSize[size ?? \"default\"]} />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n {label && (\n <label\n htmlFor={checkboxId}\n className=\"text-sm leading-none text-foreground select-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50\"\n >\n {label}\n </label>\n )}\n </div>\n )\n})\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox, checkboxVariants }\n","import * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { Circle } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n />\n )\n})\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n})\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\n\nexport { RadioGroup, RadioGroupItem }\n","import * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\ntype SwitchSize = \"sm\" | \"default\" | \"lg\"\n\nconst switchVariants = cva(\n \"peer inline-flex 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 ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=unchecked]:bg-[var(--hc-grey-200)] aria-[invalid=true]:ring-2 aria-[invalid=true]:ring-destructive aria-[invalid=true]:ring-offset-2\",\n {\n variants: {\n variant: {\n default: \"data-[state=checked]:bg-[var(--hc-primary-600)]\",\n destructive: \"data-[state=checked]:bg-destructive\",\n success: \"data-[state=checked]:bg-success\",\n },\n size: {\n sm: \"h-5 w-9\",\n default: \"h-[28px] w-[52px]\",\n lg: \"h-[36px] w-[64px]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst thumbStyles: Record<SwitchSize, string> = {\n sm: \"h-3.5 w-3.5 data-[state=unchecked]:translate-x-[3px] data-[state=checked]:translate-x-[15px]\",\n default:\n \"h-[22px] w-[22px] data-[state=unchecked]:translate-x-[3px] data-[state=checked]:translate-x-[23px]\",\n lg: \"h-[26px] w-[26px] data-[state=unchecked]:translate-x-[4px] data-[state=checked]:translate-x-[30px]\",\n}\n\nexport interface SwitchProps\n extends React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>,\n VariantProps<typeof switchVariants> {}\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n SwitchProps\n>(({ className, variant, size = \"default\", ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(switchVariants({ variant, size }), className)}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block rounded-full bg-white shadow-lg ring-0 transition-transform duration-200 [[disabled]_&]:bg-[var(--hc-grey-300)]\",\n thumbStyles[(size ?? \"default\") as SwitchSize]\n )}\n />\n </SwitchPrimitives.Root>\n))\nSwitch.displayName = SwitchPrimitives.Root.displayName\n\nexport { Switch, switchVariants }\n","import * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\nimport { cn } from \"../lib/utils\"\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const values = (props.value ?? props.defaultValue ?? [0]) as number[]\n return (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex w-full touch-none select-none items-center data-[orientation=vertical]:h-full data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-full bg-muted data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary data-[orientation=vertical]:w-full\" />\n </SliderPrimitive.Track>\n {values.map((_, i) => (\n <SliderPrimitive.Thumb\n key={i}\n className=\"block h-5 w-5 rounded-full border-2 border-primary bg-background shadow-sm transition-colors focus-visible:outline-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 disabled:pointer-events-none\"\n />\n ))}\n </SliderPrimitive.Root>\n )\n})\nSlider.displayName = SliderPrimitive.Root.displayName\n\nexport { Slider }\n","import * as React from \"react\"\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary data-[state=on]:text-primary-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border border-input bg-transparent hover:bg-muted hover:text-foreground\",\n },\n size: {\n sm: \"h-9 px-2.5\",\n md: \"h-10 px-3\",\n lg: \"h-11 px-5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\nexport interface ToggleProps\n extends React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root>,\n VariantProps<typeof toggleVariants> {}\n\nconst Toggle = React.forwardRef<\n React.ElementRef<typeof TogglePrimitive.Root>,\n ToggleProps\n>(({ className, variant, size, ...props }, ref) => (\n <TogglePrimitive.Root\n ref={ref}\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n))\nToggle.displayName = TogglePrimitive.Root.displayName\n\nexport { Toggle, toggleVariants }\n","import * as React from \"react\"\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\"\nimport { type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\nimport { toggleVariants } from \"./toggle\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants>\n>({\n size: \"md\",\n variant: \"default\",\n})\n\nconst ToggleGroup = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants>\n>(({ className, variant, size, children, ...props }, ref) => (\n <ToggleGroupPrimitive.Root\n ref={ref}\n className={cn(\"flex items-center justify-center gap-1\", className)}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n))\nToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName\n\nconst ToggleGroupItem = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>\n>(({ className, children, variant, size, ...props }, ref) => {\n const context = React.useContext(ToggleGroupContext)\n return (\n <ToggleGroupPrimitive.Item\n ref={ref}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n})\nToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName\n\nexport { ToggleGroup, ToggleGroupItem }\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 gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:border-ring disabled:cursor-not-allowed disabled:opacity-50 aria-[invalid=true]:border-destructive aria-[invalid=true]:focus:border-destructive data-[placeholder]:text-muted-foreground [&>span]:line-clamp-1 [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-muted-foreground\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-70\" />\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 \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\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(\"px-2 py-1.5 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 gap-2 rounded-sm py-1.5 pe-2 ps-8 text-sm text-foreground outline-none focus:bg-primary focus:text-primary-foreground data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <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}\n","import * as React from \"react\"\nimport type * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport {\n Controller,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n FormProvider,\n useFormContext,\n} from \"react-hook-form\"\nimport { cn } from \"../lib/utils\"\nimport { Label } from \"./label\"\n\nconst Form = FormProvider\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName\n}\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n)\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n )\n}\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext)\n const itemContext = React.useContext(FormItemContext)\n const { getFieldState, formState } = useFormContext()\n const fieldState = getFieldState(fieldContext.name, formState)\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\")\n }\n const { id } = itemContext\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n }\n}\n\ntype FormItemContextValue = {\n id: string\n orientation: \"vertical\" | \"horizontal\"\n}\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n)\n\nexport interface FormItemProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: \"vertical\" | \"horizontal\"\n}\n\nconst FormItem = React.forwardRef<HTMLDivElement, FormItemProps>(\n ({ className, orientation = \"vertical\", ...props }, ref) => {\n const id = React.useId()\n return (\n <FormItemContext.Provider value={{ id, orientation }}>\n <div\n ref={ref}\n className={cn(\n orientation === \"horizontal\"\n ? \"flex items-start gap-4\"\n : \"space-y-2\",\n className\n )}\n {...props}\n />\n </FormItemContext.Provider>\n )\n }\n)\nFormItem.displayName = \"FormItem\"\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof Label>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField()\n const itemContext = React.useContext(FormItemContext)\n return (\n <Label\n ref={ref}\n className={cn(\n error && \"text-destructive\",\n itemContext.orientation === \"horizontal\" && \"w-32 shrink-0 pt-2\",\n className\n )}\n htmlFor={formItemId}\n {...props}\n />\n )\n})\nFormLabel.displayName = \"FormLabel\"\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField()\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n )\n})\nFormControl.displayName = \"FormControl\"\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField()\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n})\nFormDescription.displayName = \"FormDescription\"\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField()\n const body = error ? String(error?.message) : children\n if (!body) {\n return null\n }\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn(\"text-sm font-medium text-destructive\", className)}\n {...props}\n >\n {body}\n </p>\n )\n})\nFormMessage.displayName = \"FormMessage\"\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n}\n","import * as React from \"react\"\nimport { OTPInput, OTPInputContext } from \"input-otp\"\nimport { Dot } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\ntype OTPGroupVariant = \"joined\" | \"separated\"\nconst InputOTPGroupContext = React.createContext<OTPGroupVariant>(\"joined\")\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\n \"flex items-center gap-2 has-[:disabled]:opacity-50\",\n containerClassName\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n))\nInputOTP.displayName = \"InputOTP\"\n\nconst InputOTPGroup = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\"> & { variant?: OTPGroupVariant }\n>(({ className, variant = \"joined\", ...props }, ref) => (\n <InputOTPGroupContext.Provider value={variant}>\n <div\n ref={ref}\n data-variant={variant}\n className={cn(\n \"flex items-center\",\n variant === \"separated\" && \"gap-2\",\n className\n )}\n {...props}\n />\n </InputOTPGroupContext.Provider>\n))\nInputOTPGroup.displayName = \"InputOTPGroup\"\n\nconst InputOTPSlot = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\"> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext)\n const variant = React.useContext(InputOTPGroupContext)\n const slot = inputOTPContext.slots[index]\n if (!slot) return null\n const { char, hasFakeCaret, isActive } = slot\n\n return (\n <div\n ref={ref}\n role=\"textbox\"\n aria-label={`Digit ${index + 1}`}\n data-slot-index={index}\n className={cn(\n \"relative flex size-10 items-center justify-center border border-input bg-background text-base font-medium transition-[color,border-color,box-shadow] duration-150\",\n variant === \"joined\" &&\n \"border-y border-e border-s-0 first:rounded-s-md first:border-s last:rounded-e-md\",\n variant === \"separated\" && \"rounded-md\",\n isActive &&\n \"z-10 border-[var(--hc-primary-500)] ring-[3px] ring-[color-mix(in_srgb,var(--hc-primary-500)_22%,transparent)]\",\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-5 w-px animate-caret-blink bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n )\n})\nInputOTPSlot.displayName = \"InputOTPSlot\"\n\nconst InputOTPSeparator = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n role=\"separator\"\n className={cn(\"text-muted-foreground\", className)}\n {...props}\n >\n <Dot />\n </div>\n))\nInputOTPSeparator.displayName = \"InputOTPSeparator\"\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }\n","import * as React from \"react\"\nimport { AlertTriangle, Loader2, Sparkles } from \"lucide-react\"\nimport { SuccessIcon } from \"./icon/success-icon\"\nimport { cn } from \"../lib/utils\"\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLDivElement> {\n variant: \"severity\" | \"status\" | \"pill\" | \"icon\" | \"designation\" | \"spinner\"\n severity?: \"critical\" | \"high\" | \"medium\" | \"low\"\n status?: \"pending\" | \"in-progress\" | \"under-review\" | \"resolved\"\n pill?: \"error\" | \"warning\" | \"success\" | \"primary\"\n iconType?: \"warning\" | \"complete\" | \"ai-generated\"\n spinnerTone?: \"primary\" | \"neutral\" | \"success\" | \"warning\"\n dot?: boolean\n}\n\nconst severityStyles: Record<string, string> = {\n critical: \"bg-[var(--hc-color-destructive)] text-white border-t border-t-black/20\",\n high: \"bg-[var(--hc-badge-severity-high)] text-white border-t border-t-black/20\",\n medium: \"bg-[var(--hc-badge-severity-medium)] text-white border-t border-t-black/20\",\n low: \"bg-[var(--hc-badge-severity-low)] text-white border-t border-t-black/20\",\n}\n\nconst statusStyles: Record<string, string> = {\n pending: \"bg-[var(--hc-badge-pending-bg)] border border-[var(--hc-badge-pending-border)] text-[var(--hc-badge-pending-text)]\",\n \"in-progress\": \"bg-[var(--hc-badge-in-progress-bg)] border border-[var(--hc-badge-in-progress-border)] text-[var(--hc-badge-in-progress-text)]\",\n \"under-review\": \"bg-[var(--hc-badge-under-review-bg)] border border-[var(--hc-badge-under-review-border)] text-[var(--hc-badge-under-review-text)]\",\n resolved: \"bg-[var(--hc-badge-resolved-bg)] border border-[var(--hc-badge-resolved-border)] text-[var(--hc-badge-resolved-text)]\",\n}\n\nconst pillStyles: Record<string, string> = {\n error: \"bg-[var(--hc-color-destructive)] text-white border-t border-t-black/20\",\n warning: \"bg-[var(--hc-badge-severity-high)] text-white border-t border-t-black/20\",\n success: \"bg-[var(--hc-badge-pill-success)] text-white border-t border-t-black/20\",\n primary: \"bg-[var(--hc-primary-600)] text-white border-t border-t-black/20\",\n}\n\nconst iconStyles: Record<string, string> = {\n warning: \"bg-[var(--hc-badge-severity-high)] text-white border-t border-t-black/20 gap-[6px]\",\n complete: \"bg-[var(--hc-badge-pill-success)] text-white border-t border-t-black/20 gap-[6px]\",\n \"ai-generated\": \"bg-[var(--hc-primary-600)] text-white border-t border-t-black/20 gap-[6px]\",\n}\n\nconst designationStyles = \"bg-[var(--hc-badge-designation-bg)] text-[var(--hc-badge-designation-text)] font-normal\"\n\nconst spinnerStyles: Record<string, string> = {\n primary: \"bg-[var(--hc-primary-100)] text-[var(--hc-primary-700)] border border-[var(--hc-primary-200)] gap-1.5\",\n neutral: \"bg-muted text-muted-foreground border border-[var(--hc-color-border-subtle)] gap-1.5\",\n success: \"bg-[var(--hc-banner-success-bg)] text-[var(--hc-color-success)] border border-[var(--hc-banner-success-border)] gap-1.5\",\n warning: \"bg-[var(--hc-banner-warning-bg)] text-[var(--hc-badge-severity-high)] border border-[var(--hc-banner-warning-border)] gap-1.5\",\n}\n\nconst iconMap: Record<string, React.ElementType> = {\n warning: AlertTriangle,\n complete: SuccessIcon,\n \"ai-generated\": Sparkles,\n}\n\nfunction Badge({\n className,\n variant,\n severity,\n status,\n pill,\n iconType,\n spinnerTone = \"primary\",\n dot,\n children,\n ...props\n}: BadgeProps) {\n const base =\n \"inline-flex items-center h-[22px] rounded-[6px] px-2 py-0.5 text-xs font-medium gap-1\"\n\n let variantClasses = \"\"\n\n if (variant === \"severity\" && severity) {\n variantClasses = severityStyles[severity] ?? \"\"\n } else if (variant === \"status\" && status) {\n variantClasses = statusStyles[status] ?? \"\"\n } else if (variant === \"pill\" && pill) {\n variantClasses = pillStyles[pill] ?? \"\"\n } else if (variant === \"icon\" && iconType) {\n variantClasses = iconStyles[iconType] ?? \"\"\n } else if (variant === \"designation\") {\n variantClasses = designationStyles\n } else if (variant === \"spinner\") {\n variantClasses = spinnerStyles[spinnerTone] ?? spinnerStyles.primary\n }\n\n const IconComponent =\n variant === \"icon\" && iconType ? iconMap[iconType] : null\n\n return (\n <div className={cn(base, variantClasses, className)} {...props}>\n {variant === \"spinner\" && (\n <Loader2 aria-hidden className=\"size-3 shrink-0 animate-spin\" />\n )}\n {IconComponent && <IconComponent className=\"size-3 shrink-0\" />}\n {dot && (\n <span className=\"size-1.5 shrink-0 rounded-full bg-current\" />\n )}\n {children}\n </div>\n )\n}\n\nexport { Badge }\n","import { LibraryIconProps } from \"./library-icon-props\";\n\nfunction SuccessIcon({ size = 16, width, height, fill, title, ...props }: LibraryIconProps) {\n return (\n <svg viewBox=\"0 0 16 16\" width={width ?? size} height={height ?? size} fill={fill ?? \"none\"} aria-hidden={title ? undefined : true} role={title ? \"img\" : \"presentation\"} {...props}>\n <path d=\"M11.4 6.85C11.4911 6.7557 11.5415 6.6294 11.5403 6.4983C11.5392 6.3672 11.4866 6.2418 11.3939 6.14909C11.3012 6.05639 11.1758 6.00381 11.0447 6.00267C10.9136 6.00153 10.7873 6.05192 10.693 6.143L7.04301 9.793L5.39301 8.143C5.29871 8.05192 5.17241 8.00153 5.04131 8.00267C4.91021 8.0038 4.7848 8.05639 4.6921 8.14909C4.5994 8.2418 4.54681 8.3672 4.54567 8.4983C4.54453 8.6294 4.59493 8.7557 4.68601 8.85L6.68601 10.85C6.77977 10.9437 6.90693 10.9964 7.03951 10.9964C7.17209 10.9964 7.29925 10.9437 7.39301 10.85L11.393 6.85H11.4Z\" fill=\"black\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8C0 12.42 3.58 16 8 16C12.42 16 16 12.42 16 8C16 3.58 12.42 0 8 0ZM1 8C1 4.13 4.13 1 8 1C11.87 1 15 4.13 15 8C15 11.87 11.87 15 8 15C4.13 15 1 11.87 1 8Z\" fill=\"black\"/>\n {title ? <title>{title}</title> : null}\n </svg>\n );\n}\n\nexport { SuccessIcon };\n","import * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\ntype AvatarSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\"\n\nconst avatarVariants = cva(\n \"relative flex shrink-0 overflow-hidden rounded-full bg-[var(--hc-primary-600)] text-white\",\n {\n variants: {\n size: {\n xs: \"size-6 text-[10px] leading-[14px]\",\n sm: \"size-8 text-sm leading-5\",\n md: \"size-10 text-base leading-6\",\n lg: \"size-[52px] text-xl leading-7\",\n xl: \"size-16 text-2xl leading-8\",\n },\n bordered: {\n true: \"ring-2 ring-background\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n bordered: false,\n },\n }\n)\n\nconst statusToneClass: Record<string, string> = {\n online: \"bg-[var(--hc-color-success)]\",\n offline: \"bg-[var(--hc-grey-400)]\",\n away: \"bg-[var(--hc-badge-severity-medium,#F59E0B)]\",\n busy: \"bg-[var(--hc-color-destructive)]\",\n}\n\nconst statusSizeClass: Record<AvatarSize, string> = {\n xs: \"size-2\",\n sm: \"size-2.5\",\n md: \"size-3\",\n lg: \"size-3.5\",\n xl: \"size-4\",\n}\n\nexport interface AvatarProps\n extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>,\n VariantProps<typeof avatarVariants> {\n status?: \"online\" | \"offline\" | \"away\" | \"busy\"\n}\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n AvatarProps\n>(({ className, size = \"md\", bordered, status, children, onClick, ...props }, ref) => {\n const isInteractive = typeof onClick === \"function\"\n return (\n <span className=\"relative inline-flex\">\n <AvatarPrimitive.Root\n ref={ref}\n onClick={onClick}\n className={cn(\n avatarVariants({ size, bordered }),\n isInteractive &&\n \"cursor-pointer outline-none transition-shadow focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-2 focus-visible:ring-offset-background hover:opacity-90\",\n className\n )}\n {...props}\n >\n {children}\n </AvatarPrimitive.Root>\n {status && (\n <span\n aria-hidden\n className={cn(\n \"absolute bottom-0 end-0 block rounded-full ring-2 ring-background\",\n statusSizeClass[(size ?? \"md\") as AvatarSize],\n statusToneClass[status]\n )}\n />\n )}\n </span>\n )\n})\nAvatar.displayName = AvatarPrimitive.Root.displayName\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full object-cover\", className)}\n {...props}\n />\n))\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\"flex h-full w-full items-center justify-center font-semibold\", className)}\n {...props}\n />\n))\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\n\ninterface AvatarGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n max?: number\n size?: AvatarSize\n}\n\nconst overlapClass: Record<AvatarSize, string> = {\n xs: \"-ms-1.5\",\n sm: \"-ms-2\",\n md: \"-ms-2.5\",\n lg: \"-ms-3\",\n xl: \"-ms-3.5\",\n}\n\nconst AvatarGroup = React.forwardRef<HTMLDivElement, AvatarGroupProps>(\n ({ children, max, size = \"md\", className, ...props }, ref) => {\n const childArray = React.Children.toArray(children).filter(React.isValidElement)\n const visibleChildren = max ? childArray.slice(0, max) : childArray\n const overflowCount = max ? childArray.length - max : 0\n\n return (\n <div ref={ref} className={cn(\"flex items-center\", className)} {...props}>\n {visibleChildren.map((child, index) => (\n <div\n key={index}\n className={cn(\"relative\", index > 0 && overlapClass[size])}\n style={{ zIndex: visibleChildren.length - index }}\n >\n {React.isValidElement(child)\n ? React.cloneElement(child as React.ReactElement<AvatarProps>, {\n size: ((child as React.ReactElement<AvatarProps>).props.size ?? size),\n bordered: true,\n })\n : child}\n </div>\n ))}\n {overflowCount > 0 && (\n <div className={cn(\"relative\", overlapClass[size])}>\n <Avatar size={size} bordered>\n <AvatarFallback>+{overflowCount}</AvatarFallback>\n </Avatar>\n </div>\n )}\n </div>\n )\n }\n)\nAvatarGroup.displayName = \"AvatarGroup\"\n\nexport { Avatar, AvatarImage, AvatarFallback, AvatarGroup }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border p-4 [&>svg~*]:ps-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:start-4 [&>svg]:top-4 [&>svg]:text-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive: \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n success: \"border-success/50 text-success [&>svg]:text-success\",\n warning: \"border-warning/50 text-warning-foreground bg-warning/10 [&>svg]:text-warning\",\n info: \"border-primary/50 text-primary [&>svg]:text-primary\",\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\nconst AlertAction = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"mt-3 flex flex-wrap items-center gap-2 [&>button]:h-8 [&>button]:px-3 [&>button]:text-xs\",\n className\n )}\n {...props}\n />\n))\nAlertAction.displayName = \"AlertAction\"\n\nexport { Alert, AlertTitle, AlertDescription, AlertAction, alertVariants }\n","import * as React from \"react\"\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\nconst progressVariants = cva(\n \"relative w-full overflow-hidden rounded-full bg-muted\",\n {\n variants: {\n size: {\n sm: \"h-2\",\n md: \"h-3\",\n lg: \"h-4\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport interface ProgressProps\n extends Omit<\n React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>,\n \"value\"\n >,\n VariantProps<typeof progressVariants> {\n value?: number\n indeterminate?: boolean\n showLabel?: boolean\n segments?: number\n}\n\nconst Progress = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n ProgressProps\n>(\n (\n {\n className,\n value = 0,\n size,\n indeterminate,\n showLabel,\n segments,\n ...props\n },\n ref\n ) => {\n const safeValue = Math.max(0, Math.min(100, value))\n\n const ariaProps = indeterminate\n ? { \"aria-busy\": true as const, \"aria-valuemin\": 0, \"aria-valuemax\": 100 }\n : {\n \"aria-valuenow\": safeValue,\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n }\n\n // Segmented variant\n if (segments && segments > 0 && !indeterminate) {\n const filled = Math.ceil((safeValue / 100) * segments)\n return (\n <div className=\"flex items-center gap-2\">\n <div\n role=\"progressbar\"\n {...ariaProps}\n className={cn(\n \"grid w-full gap-1\",\n className\n )}\n style={{\n gridTemplateColumns: `repeat(${segments}, minmax(0, 1fr))`,\n }}\n >\n {Array.from({ length: segments }).map((_, i) => (\n <div\n key={i}\n className={cn(\n \"rounded-full transition-colors\",\n size === \"sm\" ? \"h-2\" : size === \"lg\" ? \"h-4\" : \"h-3\",\n i < filled ? \"bg-primary\" : \"bg-muted\"\n )}\n />\n ))}\n </div>\n {showLabel && (\n <span className=\"text-xs font-medium text-foreground tabular-nums\">\n {safeValue}%\n </span>\n )}\n </div>\n )\n }\n\n const labelNode = showLabel ? (\n <span className=\"text-xs font-medium text-foreground tabular-nums shrink-0\">\n {indeterminate ? \"Loading...\" : `${safeValue}%`}\n </span>\n ) : null\n\n const bar = (\n <ProgressPrimitive.Root\n ref={ref}\n {...ariaProps}\n {...props}\n value={indeterminate ? null : safeValue}\n className={cn(progressVariants({ size }), className)}\n >\n {indeterminate ? (\n <div\n className=\"h-full w-1/3 rounded-full bg-gradient-to-r from-transparent via-primary to-transparent animate-[progress-indeterminate_1.2s_ease-in-out_infinite]\"\n />\n ) : (\n <ProgressPrimitive.Indicator\n className=\"h-full w-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - safeValue}%)` }}\n />\n )}\n </ProgressPrimitive.Root>\n )\n\n if (labelNode) {\n return (\n <div className=\"flex items-center gap-2\">\n {bar}\n {labelNode}\n </div>\n )\n }\n\n return bar\n }\n)\nProgress.displayName = ProgressPrimitive.Root.displayName\n\nexport { Progress }\n","import * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n shape?: \"text\" | \"circle\" | \"rect\"\n}\n\nfunction Skeleton({ className, shape = \"rect\", ...props }: SkeletonProps) {\n return (\n <div\n className={cn(\n \"animate-pulse bg-muted\",\n shape === \"circle\" && \"rounded-full\",\n shape === \"text\" && \"h-4 w-full rounded-md\",\n shape === \"rect\" && \"rounded-md\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\nconst spinnerVariants = cva(\"animate-spin\", {\n variants: {\n size: {\n sm: \"h-4 w-4\",\n md: \"h-6 w-6\",\n lg: \"h-8 w-8\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n})\n\nexport interface SpinnerProps\n extends React.SVGAttributes<SVGSVGElement>,\n VariantProps<typeof spinnerVariants> {}\n\nconst Spinner = React.forwardRef<SVGSVGElement, SpinnerProps>(\n ({ className, size, ...props }, ref) => (\n <svg\n ref={ref}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(spinnerVariants({ size }), className)}\n {...props}\n >\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n )\n)\nSpinner.displayName = \"Spinner\"\n\nexport { Spinner, spinnerVariants }\n","import * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\nimport { cn } from \"../lib/utils\"\n\nexport interface SeparatorProps\n extends React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root> {\n label?: string\n}\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n SeparatorProps\n>(({ className, orientation = \"horizontal\", decorative = true, label, ...props }, ref) => {\n if (label) {\n return (\n <div\n ref={ref as React.Ref<HTMLDivElement>}\n role={decorative ? \"none\" : \"separator\"}\n aria-orientation=\"horizontal\"\n className={cn(\"flex w-full items-center\", className)}\n >\n <span aria-hidden className=\"h-px flex-1 bg-border\" />\n <span className=\"mx-3 shrink-0 text-xs text-muted-foreground\">{label}</span>\n <span aria-hidden className=\"h-px flex-1 bg-border\" />\n </div>\n )\n }\n\n return (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-px w-full\" : \"h-full w-px\",\n className\n )}\n {...props}\n />\n )\n})\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }\n","import * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\nimport { cn } from \"../lib/utils\"\n\ntype ScrollAreaOrientation = \"vertical\" | \"horizontal\" | \"both\"\n\ninterface ScrollAreaProps\n extends React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> {\n orientation?: ScrollAreaOrientation\n}\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n ScrollAreaProps\n>(({ className, children, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n {(orientation === \"vertical\" || orientation === \"both\") && (\n <ScrollBar orientation=\"vertical\" />\n )}\n {(orientation === \"horizontal\" || orientation === \"both\") && (\n <ScrollBar orientation=\"horizontal\" />\n )}\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n))\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none p-px transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border transition-colors hover:bg-muted-foreground/50\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nexport { ScrollArea, ScrollBar }\n","import * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\"\n\nconst AspectRatio = AspectRatioPrimitive.Root\n\nexport { AspectRatio }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\nconst emptyStateVariants = cva(\"text-center\", {\n variants: {\n variant: {\n muted: \"bg-transparent text-muted-foreground p-10\",\n card: \"rounded-lg border border-[var(--hc-color-border-subtle)] bg-background p-10\",\n gradient:\n \"rounded-lg bg-gradient-to-br from-[var(--hc-primary-100)] to-background p-10 border border-[var(--hc-primary-200)]\",\n },\n },\n defaultVariants: {\n variant: \"muted\",\n },\n})\n\nexport interface EmptyStateProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof emptyStateVariants> {\n /** Optional icon rendered in a circular container above the title */\n icon?: React.ReactNode\n /** Primary heading */\n title: string\n /** Supporting description text */\n description?: string\n}\n\nconst EmptyState = React.forwardRef<HTMLDivElement, EmptyStateProps>(\n ({ className, variant, icon, title, description, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(emptyStateVariants({ variant }), className)}\n {...props}\n >\n {icon && (\n <div className=\"mx-auto mb-4 flex size-14 items-center justify-center rounded-full bg-muted text-muted-foreground [&>svg]:size-6\">\n {icon}\n </div>\n )}\n <h3 className=\"text-lg font-semibold text-foreground\">{title}</h3>\n {description && (\n <p className=\"mt-1 text-sm text-muted-foreground max-w-md mx-auto\">\n {description}\n </p>\n )}\n {children}\n </div>\n )\n)\nEmptyState.displayName = \"EmptyState\"\n\nconst EmptyStateActions = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"mt-6 flex items-center justify-center gap-2 flex-wrap\", className)}\n {...props}\n />\n))\nEmptyStateActions.displayName = \"EmptyStateActions\"\n\nexport { EmptyState, EmptyStateActions, emptyStateVariants }\n","import * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nexport interface InputGroupProps extends React.HTMLAttributes<HTMLDivElement> {}\n\n/**\n * InputGroup renders an input with leading/trailing addons sharing a single\n * rounded border and a unified focus ring. Works with both native `<input>`\n * elements and the library's `<Input>` — the group aggressively flattens\n * nested wrappers, strips inner borders/rings/rounds, and owns all container\n * styling itself.\n */\nconst InputGroup = React.forwardRef<HTMLDivElement, InputGroupProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"input-group\"\n className={cn(\n // container — full height row, shared border + glow ring\n \"relative flex h-10 w-full items-stretch rounded-md border border-input bg-background text-sm transition-[color,border-color,box-shadow] duration-150 overflow-hidden\",\n \"focus-within:border-[var(--hc-primary-500)] focus-within:ring-[3px] focus-within:ring-[color-mix(in_srgb,var(--hc-primary-500)_22%,transparent)]\",\n\n // Flatten the lib Input's outer wrapper so horizontal flow works\n \"[&_[data-slot=input-root]]:h-full [&_[data-slot=input-root]]:flex-1 [&_[data-slot=input-root]]:flex-row [&_[data-slot=input-root]]:gap-0 [&_[data-slot=input-root]]:min-w-0\",\n // Hide any label/hint the user accidentally passed via the lib Input\n \"[&_[data-slot=input-root]>label]:hidden [&_[data-slot=input-root]>p]:hidden\",\n\n // Flatten the lib Input's inner wrapper (remove border, ring, round, padding, bg)\n \"[&_[data-slot=input-wrapper]]:h-full [&_[data-slot=input-wrapper]]:w-full [&_[data-slot=input-wrapper]]:flex-1 [&_[data-slot=input-wrapper]]:border-0 [&_[data-slot=input-wrapper]]:rounded-none [&_[data-slot=input-wrapper]]:bg-transparent [&_[data-slot=input-wrapper]]:shadow-none [&_[data-slot=input-wrapper]]:ring-0 [&_[data-slot=input-wrapper]]:px-0 [&_[data-slot=input-wrapper]]:py-0 [&_[data-slot=input-wrapper]]:focus-within:ring-0 [&_[data-slot=input-wrapper]]:focus-within:border-transparent\",\n\n // Native <input> styling inside the group\n \"[&_input]:h-full [&_input]:flex-1 [&_input]:min-w-0 [&_input]:bg-transparent [&_input]:px-3 [&_input]:text-sm [&_input]:outline-none [&_input]:placeholder:text-muted-foreground\",\n \"[&_input]:border-0 [&_input]:rounded-none [&_input]:shadow-none [&_input]:ring-0\",\n \"[&_input:focus]:ring-0 [&_input:focus-visible]:ring-0 [&_input:focus-within]:ring-0\",\n\n // Buttons inside the group fill height + shed own borders/rings\n \"[&>button]:h-full [&>button]:rounded-none [&>button]:border-0 [&>button]:shadow-none [&>button]:ring-0 [&>button:focus]:ring-0 [&>button:focus-visible]:ring-0\",\n\n className\n )}\n {...props}\n />\n )\n)\nInputGroup.displayName = \"InputGroup\"\n\nexport interface InputAddonProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst InputAddon = React.forwardRef<HTMLDivElement, InputAddonProps>(\n ({ className, children, ...props }, ref) => {\n const containsButton = React.Children.toArray(children).some(\n (c) =>\n React.isValidElement(c) &&\n (c.type === \"button\" ||\n (typeof c.type !== \"string\" &&\n (c.type as any)?.displayName?.includes?.(\"Button\")))\n )\n return (\n <div\n ref={ref}\n data-slot=\"input-addon\"\n className={cn(\n \"flex shrink-0 items-center justify-center whitespace-nowrap text-sm font-medium text-muted-foreground select-none\",\n // plain-content addon: subtle muted fill with a divider that matches the container border\n !containsButton &&\n \"bg-[var(--hc-grey-100)] px-3 border-e border-[var(--hc-color-border-subtle)] last:border-e-0 last:border-s\",\n // button addon: transparent slot, button fills the area and has proper padding\n containsButton &&\n \"p-0 bg-transparent border-e border-[var(--hc-color-border-subtle)] last:border-e-0 last:border-s [&>button]:h-full [&>button]:px-3 [&>button]:gap-2 [&>button]:rounded-none\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n }\n)\nInputAddon.displayName = \"InputAddon\"\n\nexport { InputGroup, InputAddon }\n","import * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nexport interface ItemProps extends React.HTMLAttributes<HTMLElement> {\n /** When true, renders as a focusable button with hover/focus styles */\n clickable?: boolean\n /** Click handler; works for both clickable and non-clickable items */\n onClick?: React.MouseEventHandler<HTMLElement>\n}\n\nconst Item = React.forwardRef<HTMLElement, ItemProps>(\n ({ className, clickable, onClick, children, ...props }, ref) => {\n const baseClasses = \"flex items-center gap-3 px-4 py-3 rounded-md\"\n const interactiveClasses =\n \"cursor-pointer transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] w-full text-start\"\n\n if (clickable) {\n return (\n <button\n type=\"button\"\n ref={ref as React.Ref<HTMLButtonElement>}\n onClick={onClick}\n className={cn(baseClasses, interactiveClasses, className)}\n {...(props as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n >\n {children}\n </button>\n )\n }\n\n return (\n <div\n ref={ref as React.Ref<HTMLDivElement>}\n onClick={onClick as React.MouseEventHandler<HTMLDivElement>}\n className={cn(baseClasses, className)}\n {...(props as React.HTMLAttributes<HTMLDivElement>)}\n >\n {children}\n </div>\n )\n }\n)\nItem.displayName = \"Item\"\n\nconst ItemMedia = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"shrink-0 flex items-center\", className)}\n {...props}\n />\n))\nItemMedia.displayName = \"ItemMedia\"\n\nconst ItemContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex-1 min-w-0 flex flex-col gap-0.5\", className)}\n {...props}\n />\n))\nItemContent.displayName = \"ItemContent\"\n\nconst ItemTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm font-medium text-foreground truncate\", className)}\n {...props}\n />\n))\nItemTitle.displayName = \"ItemTitle\"\n\nconst ItemDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-xs text-muted-foreground truncate\", className)}\n {...props}\n />\n))\nItemDescription.displayName = \"ItemDescription\"\n\nconst ItemActions = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"shrink-0 flex items-center gap-1 ms-auto\", className)}\n {...props}\n />\n))\nItemActions.displayName = \"ItemActions\"\n\nconst ItemGroup = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"flex flex-col divide-y divide-[var(--hc-color-border-subtle)] rounded-md border border-[var(--hc-color-border-subtle)] bg-background overflow-hidden\",\n className\n )}\n {...props}\n />\n))\nItemGroup.displayName = \"ItemGroup\"\n\nexport {\n Item,\n ItemMedia,\n ItemContent,\n ItemTitle,\n ItemDescription,\n ItemActions,\n ItemGroup,\n}\n","import * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\nfunction useIsMobile(breakpoint = 768) {\n const [isMobile, setIsMobile] = React.useState(false)\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${breakpoint}px)`)\n const onChange = () => setIsMobile(mql.matches)\n onChange()\n mql.addEventListener(\"change\", onChange)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [breakpoint])\n return isMobile\n}\n\nconst dialogContentVariants = cva(\n \"fixed left-[50%] top-[50%] z-50 grid w-full 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 {\n variants: {\n size: {\n sm: \"max-w-sm\",\n default: \"max-w-lg\",\n lg: \"max-w-2xl\",\n xl: \"max-w-4xl\",\n fullscreen:\n \"max-w-none w-screen h-screen rounded-none m-0 inset-0 start-0 top-0 translate-x-0 translate-y-0 sm:rounded-none\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\nconst Dialog = DialogPrimitive.Root\nconst DialogTrigger = DialogPrimitive.Trigger\nconst DialogPortal = DialogPrimitive.Portal\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-black/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\nexport interface DialogContentProps\n extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>,\n VariantProps<typeof dialogContentVariants> {\n /**\n * When true and the viewport is <=768px, the dialog renders as a bottom-drawer-style\n * sheet (slides up from the bottom, full-width, rounded top corners). Desktop renders\n * as a regular centered dialog.\n */\n mobileDrawer?: boolean\n}\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n DialogContentProps\n>(({ className, children, size, mobileDrawer = false, ...props }, ref) => {\n const isMobile = useIsMobile()\n const asDrawer = mobileDrawer && isMobile\n\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n asDrawer\n ? \"fixed inset-x-0 bottom-0 z-50 grid w-full max-w-none gap-4 rounded-t-[10px] 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]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\"\n : dialogContentVariants({ size }),\n className\n )}\n {...props}\n >\n {asDrawer && (\n <div className=\"mx-auto -mt-2 mb-2 h-2 w-[100px] rounded-full bg-muted\" />\n )}\n {children}\n <DialogPrimitive.Close className=\"absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-muted 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 )\n})\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"flex flex-col gap-2 text-center sm:text-start\", className)} {...props} />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end sm:space-x-0 sm:[&>button]:min-w-[96px]\",\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(\"text-lg font-semibold leading-tight tracking-tight text-foreground\", className)}\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 leading-relaxed 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 AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\nimport { cn } from \"../lib/utils\"\nimport { buttonVariants } from \"./button\"\n\ntype AlertDialogSize = \"default\" | \"sm\"\n\nconst AlertDialogSizeContext = React.createContext<AlertDialogSize>(\"default\")\n\nconst AlertDialog = AlertDialogPrimitive.Root\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/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 ref={ref}\n />\n))\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content> & {\n size?: AlertDialogSize\n }\n>(({ className, size = \"default\", ...props }, ref) => (\n <AlertDialogSizeContext.Provider value={size}>\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n className={cn(\n \"group/alert-dialog-content fixed left-[50%] top-[50%] z-50 grid w-full translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background 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 size === \"sm\" ? \"max-w-sm p-5\" : \"max-w-lg p-6\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n </AlertDialogSizeContext.Provider>\n))\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\n\nconst AlertDialogMedia = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n tone?: \"primary\" | \"destructive\" | \"success\" | \"warning\" | \"muted\"\n }\n>(({ className, tone = \"primary\", children, ...props }, ref) => {\n const size = React.useContext(AlertDialogSizeContext)\n const tones: Record<NonNullable<typeof tone>, string> = {\n primary: \"bg-[var(--hc-primary-100)] text-[var(--hc-primary-600)]\",\n destructive: \"bg-[color-mix(in_srgb,var(--hc-color-destructive)_12%,transparent)] text-[var(--hc-color-destructive)]\",\n success: \"bg-[var(--hc-banner-success-bg)] text-[var(--hc-color-success)]\",\n warning: \"bg-[var(--hc-banner-warning-bg)] text-[var(--hc-color-warning)]\",\n muted: \"bg-muted text-foreground\",\n }\n return (\n <div\n ref={ref}\n data-slot=\"media\"\n className={cn(\n \"flex shrink-0 items-center justify-center self-center rounded-full\",\n size === \"sm\" ? \"h-9 w-9 [&>svg]:size-[18px]\" : \"h-10 w-10 [&>svg]:size-5\",\n tones[tone],\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n})\nAlertDialogMedia.displayName = \"AlertDialogMedia\"\n\nconst AlertDialogHeader = ({ className, children, ...props }: React.HTMLAttributes<HTMLDivElement>) => {\n const size = React.useContext(AlertDialogSizeContext)\n const hasMedia = React.Children.toArray(children).some(\n (c) => React.isValidElement(c) && (c.type as any)?.displayName === \"AlertDialogMedia\"\n )\n return (\n <div\n className={cn(\n \"flex flex-col gap-2\",\n hasMedia || size === \"sm\" ? \"items-center text-center\" : \"text-center sm:text-left\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\nAlertDialogHeader.displayName = \"AlertDialogHeader\"\n\nconst AlertDialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => {\n const size = React.useContext(AlertDialogSizeContext)\n return (\n <div\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:space-x-0 sm:[&>button]:min-w-[96px]\",\n // Center if small or when the Content has a media slot\n size === \"sm\"\n ? \"sm:justify-center\"\n : \"sm:justify-end group-has-[[data-slot=media]]/alert-dialog-content:sm:justify-center\",\n className\n )}\n {...props}\n />\n )\n}\nAlertDialogFooter.displayName = \"AlertDialogFooter\"\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold leading-tight tracking-tight text-foreground\", className)}\n {...props}\n />\n))\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm leading-relaxed text-muted-foreground\", className)}\n {...props}\n />\n))\nAlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action> & {\n variant?: \"default\" | \"destructive\"\n }\n>(({ className, variant = \"default\", ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(\n buttonVariants({ variant: variant === \"destructive\" ? \"destructive\" : \"default\" }),\n className\n )}\n {...props}\n />\n))\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(buttonVariants({ variant: \"outline\" }), \"mt-2 sm:mt-0\", className)}\n {...props}\n />\n))\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogMedia,\n}\n","import * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nconst Sheet = SheetPrimitive.Root\nconst SheetTrigger = SheetPrimitive.Trigger\nconst SheetClose = SheetPrimitive.Close\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/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 ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n \"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom: \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 start-0 h-full border-e ltr:data-[state=closed]:slide-out-to-left ltr:data-[state=open]:slide-in-from-left rtl:data-[state=closed]:slide-out-to-right rtl:data-[state=open]:slide-in-from-right\",\n right: \"inset-y-0 end-0 h-full border-s ltr:data-[state=closed]:slide-out-to-right ltr:data-[state=open]:slide-in-from-right rtl:data-[state=closed]:slide-out-to-left rtl:data-[state=open]:slide-in-from-left\",\n },\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n full: \"\",\n },\n },\n compoundVariants: [\n { side: \"left\", size: \"sm\", className: \"w-3/4 max-w-sm\" },\n { side: \"left\", size: \"md\", className: \"w-3/4 max-w-md\" },\n { side: \"left\", size: \"lg\", className: \"w-3/4 max-w-lg\" },\n { side: \"left\", size: \"full\", className: \"w-full\" },\n { side: \"right\", size: \"sm\", className: \"w-3/4 max-w-sm\" },\n { side: \"right\", size: \"md\", className: \"w-3/4 max-w-md\" },\n { side: \"right\", size: \"lg\", className: \"w-3/4 max-w-lg\" },\n { side: \"right\", size: \"full\", className: \"w-full\" },\n ],\n defaultVariants: {\n side: \"right\",\n size: \"md\",\n },\n }\n)\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", size = \"md\", className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side, size }), className)}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n))\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"flex flex-col space-y-2 text-center sm:text-start\", className)} {...props} />\n)\nSheetHeader.displayName = \"SheetHeader\"\n\nconst SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className)} {...props} />\n)\nSheetFooter.displayName = \"SheetFooter\"\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import * as React from \"react\"\nimport { Drawer as DrawerPrimitive } from \"vaul\"\nimport { cn } from \"../lib/utils\"\n\ntype DrawerSide = \"top\" | \"right\" | \"bottom\" | \"left\"\n\nconst DrawerSideContext = React.createContext<DrawerSide>(\"bottom\")\n\ntype DrawerProps = Omit<\n React.ComponentProps<typeof DrawerPrimitive.Root>,\n \"direction\"\n> & {\n /** Side the drawer slides in from. Defaults to \"bottom\". */\n side?: DrawerSide\n}\n\nconst Drawer = ({\n shouldScaleBackground = true,\n side = \"bottom\",\n ...props\n}: DrawerProps) => {\n const rootProps = {\n shouldScaleBackground,\n direction: side,\n ...props,\n } as React.ComponentProps<typeof DrawerPrimitive.Root>\n return (\n <DrawerSideContext.Provider value={side}>\n <DrawerPrimitive.Root {...rootProps} />\n </DrawerSideContext.Provider>\n )\n}\nDrawer.displayName = \"Drawer\"\n\nconst DrawerTrigger = DrawerPrimitive.Trigger\nconst DrawerPortal = DrawerPrimitive.Portal\nconst DrawerClose = DrawerPrimitive.Close\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n {...props}\n />\n))\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName\n\nconst sideClasses: Record<DrawerSide, string> = {\n bottom: \"inset-x-0 bottom-0 mt-24 h-auto rounded-t-[10px] border shadow-lg\",\n top: \"inset-x-0 top-0 mb-24 h-auto rounded-b-[10px] border shadow-lg\",\n left: \"inset-y-0 start-0 w-[22rem] max-w-[85vw] border-e shadow-lg\",\n right: \"inset-y-0 end-0 w-[22rem] max-w-[85vw] border-s shadow-lg\",\n}\n\nconst handleClasses: Record<DrawerSide, string> = {\n bottom: \"mx-auto mt-4 mb-2 h-1.5 w-[80px] rounded-full bg-[var(--hc-color-border-subtle)]\",\n top: \"mx-auto mb-4 mt-2 h-1.5 w-[80px] rounded-full bg-[var(--hc-color-border-subtle)]\",\n left: \"hidden\",\n right: \"hidden\",\n}\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => {\n const side = React.useContext(DrawerSideContext)\n return (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed z-50 flex flex-col bg-background\",\n sideClasses[side],\n className\n )}\n {...props}\n >\n <div className={handleClasses[side]} />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n )\n})\nDrawerContent.displayName = \"DrawerContent\"\n\nconst DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"grid gap-1.5 px-6 pt-5 pb-4 text-start border-b border-[var(--hc-color-border-subtle)]\",\n className\n )}\n {...props}\n />\n)\nDrawerHeader.displayName = \"DrawerHeader\"\n\nconst DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"mt-auto flex flex-col-reverse gap-2 px-6 py-4 border-t border-[var(--hc-color-border-subtle)] sm:flex-row sm:justify-end sm:[&>button]:min-w-[88px]\",\n className\n )}\n {...props}\n />\n)\nDrawerFooter.displayName = \"DrawerFooter\"\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold leading-tight tracking-tight text-foreground\", className)}\n {...props}\n />\n))\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-sm leading-relaxed text-muted-foreground\", className)}\n {...props}\n />\n))\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName\n\nconst DrawerBody = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex-1 overflow-y-auto px-6 py-4 text-sm text-foreground\", className)}\n {...props}\n />\n )\n)\nDrawerBody.displayName = \"DrawerBody\"\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerBody,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n}\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 HoverCardPrimitive from \"@radix-ui/react-hover-card\"\nimport { cn } from \"../lib/utils\"\n\nconst HoverCard = HoverCardPrimitive.Root\nconst HoverCardTrigger = HoverCardPrimitive.Trigger\n\nconst HoverCardContent = React.forwardRef<\n React.ElementRef<typeof HoverCardPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-64 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))\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n","import * as React from \"react\"\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nconst ContextMenu = ContextMenuPrimitive.Root\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger\nconst ContextMenuGroup = ContextMenuPrimitive.Group\nconst ContextMenuPortal = ContextMenuPrimitive.Portal\nconst ContextMenuSub = ContextMenuPrimitive.Sub\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup\n\nconst ContextMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & { inset?: boolean }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.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-muted focus:text-foreground data-[state=open]:bg-muted data-[state=open]:text-foreground\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto h-4 w-4\" />\n </ContextMenuPrimitive.SubTrigger>\n))\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName\n\nconst ContextMenuSubContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden 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))\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName\n\nconst ContextMenuContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n))\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName\n\nconst ContextMenuItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.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 focus:bg-muted focus:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n))\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-muted focus:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n))\nContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName\n\nconst ContextMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-muted focus:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n))\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName\n\nconst ContextMenuLabel = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Label\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold text-foreground\", inset && \"ps-8\", className)}\n {...props}\n />\n))\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName\n\nconst ContextMenuSeparator = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n))\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName\n\nconst ContextMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => (\n <span className={cn(\"ms-auto text-xs tracking-widest text-muted-foreground\", className)} {...props} />\n)\nContextMenuShortcut.displayName = \"ContextMenuShortcut\"\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n}\n","import * as React from \"react\"\nimport * 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> & { inset?: boolean }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-[6px] px-[12px] py-[6px] text-[14px] leading-[20px] font-normal text-[var(--hc-grey-700)] outline-none focus:bg-[var(--hc-primary-100)] data-[state=open]:bg-[var(--hc-primary-100)]\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto h-4 w-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n))\nDropdownMenuSubTrigger.displayName = 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-[6px] border border-[var(--hc-color-border-subtle)] bg-popover p-1 text-popover-foreground shadow-sm 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 = 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-[6px] border border-[var(--hc-color-border-subtle)] bg-popover p-1 text-popover-foreground shadow-sm 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> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-[6px] px-[12px] py-[6px] text-[14px] leading-[20px] font-normal text-[var(--hc-grey-700)] outline-none transition-colors focus:bg-[var(--hc-primary-100)] data-[highlighted]:bg-[var(--hc-primary-600)] data-[highlighted]:text-white data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"ps-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 ps-8 pe-2 text-sm outline-none transition-colors focus:bg-muted focus:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n))\nDropdownMenuCheckboxItem.displayName = 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 ps-8 pe-2 text-sm outline-none transition-colors focus:bg-muted focus:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n))\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\"px-[12px] py-[6px] text-[14px] font-semibold\", inset && \"ps-8\", className)}\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-[var(--hc-color-border-subtle)]\", className)}\n {...props}\n />\n))\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName\n\nconst DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => (\n <span className={cn(\"ms-auto text-xs tracking-widest opacity-60\", className)} {...props} />\n)\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\"\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n","import * as React from \"react\"\nimport * as 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 items-center rounded-md bg-muted p-1 gap-0.5\",\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-md px-2 py-1.5 text-sm leading-5 font-normal gap-1.5 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 text-foreground [&_svg]:text-foreground data-[state=active]:bg-background data-[state=active]:text-primary data-[state=active]:shadow-sm [&_svg]:size-4 data-[state=active]:[&_svg]:text-primary\",\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 * as AccordionPrimitive from \"@radix-ui/react-accordion\"\nimport { ChevronDown } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\ntype AccordionVariant = \"default\" | \"bordered\" | \"ghost\" | \"separated\"\n\nconst AccordionVariantContext = React.createContext<AccordionVariant>(\"default\")\n\n/* ---------------------------------- Root ---------------------------------- */\n\ntype AccordionProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Root> & {\n variant?: AccordionVariant\n}\n\nconst Accordion = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Root>,\n AccordionProps\n>(({ variant = \"default\", className, ...props }, ref) => (\n <AccordionVariantContext.Provider value={variant}>\n <AccordionPrimitive.Root\n ref={ref}\n className={cn(\n variant === \"bordered\" && \"space-y-2\",\n variant === \"separated\" && \"space-y-3\",\n className\n )}\n {...props}\n />\n </AccordionVariantContext.Provider>\n))\nAccordion.displayName = \"Accordion\"\n\n/* ---------------------------------- Item ---------------------------------- */\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => {\n const variant = React.useContext(AccordionVariantContext)\n return (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(\n variant === \"default\" && \"border-b\",\n variant === \"bordered\" && \"border rounded-md\",\n variant === \"ghost\" && \"\",\n variant === \"separated\" && \"border rounded-lg bg-card\",\n className\n )}\n {...props}\n />\n )\n})\nAccordionItem.displayName = \"AccordionItem\"\n\n/* -------------------------------- Trigger -------------------------------- */\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => {\n const variant = React.useContext(AccordionVariantContext)\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex flex-1 items-center justify-between text-sm font-medium transition-all [&[data-state=open]>svg]:rotate-180\",\n variant === \"default\" && \"py-4 hover:underline\",\n variant === \"bordered\" && \"px-4 py-4 hover:underline\",\n variant === \"ghost\" && \"py-3 px-3 rounded-md hover:bg-accent\",\n variant === \"separated\" && \"px-4 py-3\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDown className=\"size-4 shrink-0 text-muted-foreground transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n})\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\n\n/* -------------------------------- Content -------------------------------- */\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => {\n const variant = React.useContext(AccordionVariantContext)\n return (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div\n className={cn(\n \"pb-4 pt-0\",\n (variant === \"bordered\" || variant === \"separated\") && \"px-4\",\n variant === \"ghost\" && \"px-3\",\n className\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Content>\n )\n})\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\n\nexport {\n Accordion,\n AccordionItem,\n AccordionTrigger,\n AccordionContent,\n type AccordionProps,\n type AccordionVariant,\n}\n","import * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nconst Collapsible = CollapsiblePrimitive.Root\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","import * as React from \"react\"\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\"\nimport { cva } from \"class-variance-authority\"\nimport { ChevronDown } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nconst NavigationMenu = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn(\"relative z-10 flex max-w-max flex-1 items-center justify-center\", className)}\n {...props}\n >\n {children}\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Root>\n))\nNavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName\n\nconst NavigationMenuList = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn(\"group flex flex-1 list-none items-center justify-center space-x-1\", className)}\n {...props}\n />\n))\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item\n\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground focus:outline-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-muted/50 data-[state=open]:bg-muted/50\"\n)\n\nconst NavigationMenuTrigger = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDown\n className=\"relative top-[1px] ms-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n))\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName\n\nconst NavigationMenuContent = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"start-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto\",\n className\n )}\n {...props}\n />\n))\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName\n\nconst NavigationMenuLink = NavigationMenuPrimitive.Link\n\nconst NavigationMenuViewport = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <div className={cn(\"absolute start-0 top-full flex justify-center\")}>\n <NavigationMenuPrimitive.Viewport\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className\n )}\n ref={ref}\n {...props}\n />\n </div>\n))\nNavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName\n\nconst NavigationMenuIndicator = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in\",\n className\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n))\nNavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n}\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<\"nav\"> & { separator?: React.ReactNode }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\nBreadcrumb.displayName = \"Breadcrumb\"\n\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.ComponentPropsWithoutRef<\"ol\">\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\",\n className\n )}\n {...props}\n />\n))\nBreadcrumbList.displayName = \"BreadcrumbList\"\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n))\nBreadcrumbItem.displayName = \"BreadcrumbItem\"\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<\"a\"> & { asChild?: boolean }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\"\n return (\n <Comp\n ref={ref}\n className={cn(\"transition-colors hover:text-foreground\", className)}\n {...props}\n />\n )\n})\nBreadcrumbLink.displayName = \"BreadcrumbLink\"\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n))\nBreadcrumbPage.displayName = \"BreadcrumbPage\"\n\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<\"li\">) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n)\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\"\n\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n)\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\"\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n","import * as React from \"react\"\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nconst MenubarMenu: typeof MenubarPrimitive.Menu = MenubarPrimitive.Menu\nconst MenubarGroup: typeof MenubarPrimitive.Group = MenubarPrimitive.Group\nconst MenubarPortal: typeof MenubarPrimitive.Portal = MenubarPrimitive.Portal\nconst MenubarSub: typeof MenubarPrimitive.Sub = MenubarPrimitive.Sub\nconst MenubarRadioGroup: typeof MenubarPrimitive.RadioGroup = MenubarPrimitive.RadioGroup\n\nconst Menubar = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Root\n ref={ref}\n className={cn(\"flex h-10 items-center space-x-1 rounded-md border bg-background p-1\", className)}\n {...props}\n />\n))\nMenubar.displayName = MenubarPrimitive.Root.displayName\n\nconst MenubarTrigger = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none focus:bg-muted focus:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background data-[state=open]:bg-muted data-[state=open]:text-foreground\",\n className\n )}\n {...props}\n />\n))\nMenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName\n\nconst MenubarSubTrigger = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubTrigger> & { inset?: boolean }\n>(({ className, inset, children, ...props }, ref) => (\n <MenubarPrimitive.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-muted focus:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background data-[state=open]:bg-muted data-[state=open]:text-foreground\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto h-4 w-4\" />\n </MenubarPrimitive.SubTrigger>\n))\nMenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName\n\nconst MenubarSubContent = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n))\nMenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName\n\nconst MenubarContent = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Content>\n>(({ className, align = \"start\", alignOffset = -4, sideOffset = 8, ...props }, ref) => (\n <MenubarPrimitive.Portal>\n <MenubarPrimitive.Content\n ref={ref}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </MenubarPrimitive.Portal>\n))\nMenubarContent.displayName = MenubarPrimitive.Content.displayName\n\nconst MenubarItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Item> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.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 focus:bg-muted focus:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n))\nMenubarItem.displayName = MenubarPrimitive.Item.displayName\n\nconst MenubarCheckboxItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <MenubarPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-muted focus:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n))\nMenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName\n\nconst MenubarRadioItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <MenubarPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-muted focus:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n))\nMenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName\n\nconst MenubarLabel = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Label> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.Label\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold\", inset && \"ps-8\", className)}\n {...props}\n />\n))\nMenubarLabel.displayName = MenubarPrimitive.Label.displayName\n\nconst MenubarSeparator = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nMenubarSeparator.displayName = MenubarPrimitive.Separator.displayName\n\nconst MenubarShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => (\n <span className={cn(\"ms-auto text-xs tracking-widest text-muted-foreground\", className)} {...props} />\n)\nMenubarShortcut.displayName = \"MenubarShortcut\"\n\nexport {\n Menubar,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarItem,\n MenubarSeparator,\n MenubarLabel,\n MenubarCheckboxItem,\n MenubarRadioItem,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarGroup,\n MenubarPortal,\n MenubarSub,\n MenubarRadioGroup,\n MenubarShortcut,\n}\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { PanelLeft } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\nimport { Sheet, SheetContent } from \"./sheet\"\n\nconst SIDEBAR_WIDTH = \"239px\"\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\"\nconst SIDEBAR_WIDTH_ICON = \"3rem\"\n\ntype SidebarContext = {\n state: \"expanded\" | \"collapsed\"\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null)\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext)\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\")\n }\n return context\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n }\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\n const [openMobile, setOpenMobile] = React.useState(false)\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n },\n [setOpenProp, open]\n )\n\n const [isMobile, setIsMobile] = React.useState(false)\n React.useEffect(() => {\n const mql = window.matchMedia(\"(max-width: 768px)\")\n const onChange = () => setIsMobile(mql.matches)\n onChange()\n mql.addEventListener(\"change\", onChange)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [])\n\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((o) => !o) : setOpen((o) => !o)\n }, [isMobile, setOpen, setOpenMobile])\n\n const state = open ? \"expanded\" : \"collapsed\"\n\n const contextValue = React.useMemo<SidebarContext>(\n () => ({ state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <div\n ref={ref}\n style={{ \"--sidebar-width\": SIDEBAR_WIDTH, \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON, ...style } as React.CSSProperties}\n className={cn(\"group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-muted\", className)}\n {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n )\n})\nSidebarProvider.displayName = \"SidebarProvider\"\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\n }\n>(({ side = \"left\", variant = \"sidebar\", collapsible = \"offcanvas\", className, children, ...props }, ref) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === \"none\") {\n return (\n <div\n className={cn(\n \"flex h-full w-[--sidebar-width] flex-col border-r border-border bg-background text-foreground\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-[--sidebar-width] bg-background p-0 text-foreground [&>button]:hidden\"\n style={{ \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE } as React.CSSProperties}\n side={side}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden md:block text-foreground\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n <div\n className={cn(\n \"duration-200 relative h-svh w-[--sidebar-width] bg-transparent transition-[width] ease-out\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\"\n )}\n />\n <div\n // top/height set via inline style, not Tailwind arbitrary-value\n // classes (`top-[var(--app-top-offset,0px)]` / `h-[calc(100svh_-_...)]`):\n // caught live in a Tailwind v4 consumer (Connect/crm-frontend) where\n // those exact classes compiled into the CSS bundle correctly (verified\n // in the built output) but never actually applied at runtime — top\n // stayed 0px regardless of --app-top-offset's live value, for reasons\n // that didn't reproduce in this same library's Tailwind v3 consumers\n // (tenant-app-frontend). Inline styles resolve CSS custom properties\n // natively, with no dependency on Tailwind's JIT generation, content\n // scanning, or cascade-layer ordering — the one part of this offset\n // mechanism now guaranteed to work identically in every consumer\n // regardless of their own Tailwind major version.\n //\n // NOTE: a consumer that passes its own `style` prop to <Sidebar>\n // will silently wipe this object out via the {...props} spread below\n // ({...props} replaces the whole `style` key, it doesn't merge it).\n // That's a real footgun, but the fix belongs in the consumer, not\n // here — see crm-frontend's app-sidebar.tsx, which used to pass\n // style={{'--background': ...}} directly to this component and now\n // sets that custom property on a wrapping element instead (it\n // inherits down through the cascade the same way).\n style={{\n top: \"var(--app-top-offset, 0px)\",\n height: \"calc(100svh - var(--app-top-offset, 0px))\",\n }}\n className={cn(\n \"duration-200 fixed bottom-0 z-10 hidden w-[--sidebar-width] transition-[left,right,width,top,height] ease-out md:flex\",\n side === \"left\"\n ? \"start-0 group-data-[collapsible=offcanvas]:start-[calc(var(--sidebar-width)*-1)]\"\n : \"end-0 group-data-[collapsible=offcanvas]:end-[calc(var(--sidebar-width)*-1)]\",\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\",\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col justify-between border-border bg-background group-data-[side=left]:border-e group-data-[side=right]:border-s group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n})\nSidebar.displayName = \"Sidebar\"\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 border-b border-border p-3\", className)}\n {...props}\n />\n )\n)\nSidebarHeader.displayName = \"SidebarHeader\"\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 border-t border-border p-2\", className)}\n {...props}\n />\n )\n)\nSidebarFooter.displayName = \"SidebarFooter\"\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto overflow-x-hidden group-data-[collapsible=icon]:overflow-hidden\",\n \"[scrollbar-width:none] [&::-webkit-scrollbar]:hidden\",\n className\n )}\n {...props}\n />\n )\n)\nSidebarContent.displayName = \"SidebarContent\"\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n )\n)\nSidebarGroup.displayName = \"SidebarGroup\"\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\"> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"div\"\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n \"duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-muted-foreground outline-none ring-ring transition-[margin,opacity] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className\n )}\n {...props}\n />\n )\n }\n)\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\"\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div ref={ref} data-sidebar=\"group-content\" className={cn(\"w-full text-sm\", className)} {...props} />\n )\n)\nSidebarGroupContent.displayName = \"SidebarGroupContent\"\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(\n ({ className, ...props }, ref) => (\n <ul ref={ref} data-sidebar=\"menu\" className={cn(\"w-full gap-1 flex flex-col\", className)} {...props} />\n )\n)\nSidebarMenu.displayName = \"SidebarMenu\"\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(\n ({ className, ...props }, ref) => (\n <li ref={ref} data-sidebar=\"menu-item\" className={cn(\"group/menu-item relative\", className)} {...props} />\n )\n)\nSidebarMenuItem.displayName = \"SidebarMenuItem\"\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<\"div\">\n }\n>(({ asChild = false, isActive = false, className, tooltip, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-active={isActive}\n className={cn(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-start text-sm font-medium outline-none ring-ring transition-[width,height,padding,background-color,color] duration-200 ease-out focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pe-8 aria-disabled:pointer-events-none aria-disabled:opacity-50\",\n \"text-foreground hover:bg-muted hover:text-foreground\",\n \"data-[active=true]:bg-primary data-[active=true]:text-primary-foreground data-[active=true]:font-semibold data-[active=true]:hover:bg-primary data-[active=true]:hover:text-primary-foreground\",\n \"data-[state=open]:hover:bg-muted\",\n \"group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2\",\n \"[&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n className\n )}\n {...props}\n />\n )\n return button\n})\nSidebarMenuButton.displayName = \"SidebarMenuButton\"\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<\"main\">>(\n ({ className, ...props }, ref) => (\n <main\n ref={ref}\n className={cn(\n \"relative flex min-h-svh flex-1 flex-col bg-background\",\n \"peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ms-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\n className\n )}\n {...props}\n />\n )\n)\nSidebarInset.displayName = \"SidebarInset\"\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"h-7 w-7\", className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n})\nSidebarTrigger.displayName = \"SidebarTrigger\"\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n SidebarTrigger,\n useSidebar,\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\nconst cardVariants = cva(\"rounded-lg text-card-foreground\", {\n variants: {\n variant: {\n default: \"border bg-card shadow-sm\",\n outline: \"border bg-transparent\",\n elevated: \"bg-card shadow-md hover:shadow-lg transition-shadow\",\n ghost: \"bg-transparent\",\n warning: \"border border-[var(--hc-color-warning)] bg-card shadow-sm\",\n info: \"border border-[var(--hc-color-primary)] bg-card shadow-sm\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n})\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardVariants> {\n /** Optional image/media slot rendered above the CardHeader with rounded top corners */\n image?: React.ReactNode\n}\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant, image, children, ...props }, ref) => (\n <div ref={ref} className={cn(cardVariants({ variant }), image && \"overflow-hidden\", className)} {...props}>\n {image && (\n <div className=\"rounded-t-lg overflow-hidden\">\n {image}\n </div>\n )}\n {children}\n </div>\n )\n)\nCard.displayName = \"Card\"\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex flex-col space-y-1.5 p-6\", className)} {...props} />\n )\n)\nCardHeader.displayName = \"CardHeader\"\n\nconst CardTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3 ref={ref} className={cn(\"text-2xl font-semibold leading-none tracking-tight\", className)} {...props} />\n )\n)\nCardTitle.displayName = \"CardTitle\"\n\nconst CardDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-sm text-muted-foreground\", className)} {...props} />\n )\n)\nCardDescription.displayName = \"CardDescription\"\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n )\n)\nCardContent.displayName = \"CardContent\"\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex items-center p-6 pt-0\", className)} {...props} />\n )\n)\nCardFooter.displayName = \"CardFooter\"\n\nexport interface CardKPIProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Icon element rendered inside the icon box */\n icon?: React.ReactNode\n /** Background color for the icon box. Defaults to var(--hc-banner-success-bg). */\n iconBg?: string\n /** KPI label text (e.g. \"Open Cases\") */\n label: string\n /** KPI number value */\n value: string | number\n /** Change / trend text (e.g. \"+6 from last week\") */\n changeText?: string\n /** Color for the change text (e.g. var(--hc-color-success), var(--hc-color-destructive)) */\n changeColor?: string\n}\n\nconst CardKPI = React.forwardRef<HTMLDivElement, CardKPIProps>(\n ({ icon, iconBg = \"var(--hc-banner-success-bg)\", label, value, changeText, changeColor, className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"grid min-h-[140px] grid-rows-[auto_1fr_auto] gap-4 rounded-lg border border-[var(--hc-color-border-subtle)] bg-background p-5\",\n className\n )}\n {...props}\n >\n {/* Top row: label + icon — icon stays put even when changeText is missing */}\n <div className=\"flex items-start justify-between gap-3\">\n <span className=\"text-sm leading-5 font-medium text-muted-foreground\">{label}</span>\n {icon && (\n <div\n className=\"flex size-10 shrink-0 items-center justify-center rounded-md [&>svg]:size-5\"\n style={{ backgroundColor: iconBg }}\n >\n {icon}\n </div>\n )}\n </div>\n {/* Middle: value (anchored to bottom via grid-row) */}\n <div className=\"flex items-end\">\n <span className=\"text-3xl leading-none font-semibold text-foreground tracking-tight\">{value}</span>\n </div>\n {/* Bottom: change text — always rendered (as spacer when missing) to keep layout stable */}\n <div className=\"min-h-[20px]\">\n {changeText && (\n <span\n className=\"text-sm leading-5 font-medium\"\n style={changeColor ? { color: changeColor } : undefined}\n >\n {changeText}\n </span>\n )}\n </div>\n </div>\n )\n)\nCardKPI.displayName = \"CardKPI\"\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent, CardKPI }\n","import * as React from \"react\"\nimport { GripVertical } from \"lucide-react\"\nimport * as ResizablePrimitive from \"react-resizable-panels\"\nimport { cn } from \"../lib/utils\"\n\ntype ResizablePanelGroupProps = React.ComponentProps<\n typeof ResizablePrimitive.PanelGroup\n> & {\n /**\n * When provided, panel sizes persist to localStorage under this key\n * (wires through to react-resizable-panels' `autoSaveId`).\n */\n storageKey?: string\n}\n\nconst ResizablePanelGroup = ({\n className,\n storageKey,\n autoSaveId,\n ...props\n}: ResizablePanelGroupProps) => (\n <ResizablePrimitive.PanelGroup\n autoSaveId={storageKey ?? autoSaveId}\n className={cn(\"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\", className)}\n {...props}\n />\n)\n\nconst ResizablePanel = ResizablePrimitive.Panel\n\nconst ResizableHandle = ({\n withHandle,\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & { withHandle?: boolean }) => (\n <ResizablePrimitive.PanelResizeHandle\n className={cn(\n \"relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90\",\n className\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border\">\n <GripVertical className=\"h-2.5 w-2.5\" />\n </div>\n )}\n </ResizablePrimitive.PanelResizeHandle>\n)\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle }\n","import * as React from \"react\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\n/* ---------------------------------- Types --------------------------------- */\n\nexport interface StepperProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Zero-indexed active step */\n activeStep: number\n /** When true, each step's circle+label is rendered inside a button. */\n clickable?: boolean\n /** Called when a clickable step is activated (click or Enter/Space). */\n onStepChange?: (index: number) => void\n}\n\nexport interface StepperItemProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Label displayed below the step circle */\n label: string\n}\n\n/* ----------------------------- Internal context ---------------------------- */\n\ninterface StepperContextValue {\n activeStep: number\n totalSteps: number\n clickable: boolean\n onStepChange?: (index: number) => void\n registerButton: (index: number, el: HTMLButtonElement | null) => void\n}\n\nconst StepperContext = React.createContext<StepperContextValue>({\n activeStep: 0,\n totalSteps: 0,\n clickable: false,\n registerButton: () => {},\n})\n\n/* --------------------------------- Stepper -------------------------------- */\n\nconst Stepper = React.forwardRef<HTMLDivElement, StepperProps>(\n (\n {\n activeStep,\n clickable = false,\n onStepChange,\n className,\n children,\n onKeyDown,\n ...props\n },\n ref\n ) => {\n const steps = React.Children.toArray(children)\n const buttonRefs = React.useRef<Array<HTMLButtonElement | null>>([])\n\n const registerButton = React.useCallback(\n (index: number, el: HTMLButtonElement | null) => {\n buttonRefs.current[index] = el\n },\n []\n )\n\n const focusButton = (index: number) => {\n const btn = buttonRefs.current[index]\n if (btn && !btn.disabled) btn.focus()\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(e)\n if (!clickable) return\n if (e.key !== \"ArrowLeft\" && e.key !== \"ArrowRight\") return\n\n const current = buttonRefs.current.findIndex(\n (b) => b === document.activeElement\n )\n if (current === -1) return\n\n const dir = e.key === \"ArrowRight\" ? 1 : -1\n const last = steps.length - 1\n let next = current + dir\n // Skip disabled (upcoming) buttons.\n while (next >= 0 && next <= last) {\n const btn = buttonRefs.current[next]\n if (btn && !btn.disabled) {\n e.preventDefault()\n focusButton(next)\n return\n }\n next += dir\n }\n }\n\n return (\n <StepperContext.Provider\n value={{\n activeStep,\n totalSteps: steps.length,\n clickable,\n onStepChange,\n registerButton,\n }}\n >\n <div\n ref={ref}\n className={cn(\"flex w-full items-start\", className)}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {steps.map((child, index) => (\n <React.Fragment key={index}>\n {/* Render the StepperItem with injected index */}\n {React.isValidElement<StepperItemProps & { _index?: number }>(child)\n ? React.cloneElement(child, { _index: index } as any)\n : child}\n\n {/* Connecting line between steps */}\n {index < steps.length - 1 && (\n <div className=\"flex flex-1 items-center pt-[16px] px-2\">\n <div\n className={cn(\n \"h-[2px] w-full transition-colors duration-300 ease-out\",\n index < activeStep\n ? \"bg-[var(--hc-primary-600)]\"\n : \"bg-[var(--hc-grey-200)]\"\n )}\n />\n </div>\n )}\n </React.Fragment>\n ))}\n </div>\n </StepperContext.Provider>\n )\n }\n)\nStepper.displayName = \"Stepper\"\n\n/* ------------------------------- StepperItem ------------------------------ */\n\nconst StepperItem = React.forwardRef<\n HTMLDivElement,\n StepperItemProps & { _index?: number }\n>(({ label, className, _index = 0, ...props }, ref) => {\n const { activeStep, clickable, onStepChange, registerButton } =\n React.useContext(StepperContext)\n\n const status: \"completed\" | \"active\" | \"upcoming\" =\n _index < activeStep\n ? \"completed\"\n : _index === activeStep\n ? \"active\"\n : \"upcoming\"\n\n const circle = (\n <div\n className={cn(\n \"flex h-[32px] w-[32px] shrink-0 items-center justify-center rounded-full text-[14px] transition-colors duration-300 ease-out\",\n status === \"upcoming\" &&\n \"border-[2px] border-[var(--hc-grey-200)] bg-white text-[var(--hc-grey-400)]\",\n status === \"active\" &&\n \"bg-[var(--hc-primary-600)] font-semibold text-white\",\n status === \"completed\" && \"bg-[var(--hc-primary-600)] text-white\"\n )}\n >\n {status === \"completed\" ? (\n <Check className=\"h-[14px] w-[14px]\" />\n ) : (\n _index + 1\n )}\n </div>\n )\n\n const labelEl = (\n <span className=\"mt-[8px] text-center text-[12px] text-foreground\">\n {label}\n </span>\n )\n\n if (clickable) {\n const disabled = _index > activeStep\n return (\n <div\n ref={ref}\n className={cn(\"flex flex-col items-center\", className)}\n {...props}\n >\n <button\n type=\"button\"\n ref={(el) => registerButton(_index, el)}\n disabled={disabled}\n tabIndex={status === \"active\" ? 0 : -1}\n onClick={() => !disabled && onStepChange?.(_index)}\n className={cn(\n \"flex flex-col items-center rounded-[4px] outline-none\",\n \"focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-600)] focus-visible:ring-offset-2\",\n disabled ? \"cursor-default\" : \"cursor-pointer\"\n )}\n aria-current={status === \"active\" ? \"step\" : undefined}\n >\n {circle}\n {labelEl}\n </button>\n </div>\n )\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"flex flex-col items-center\", className)}\n {...props}\n >\n {circle}\n {labelEl}\n </div>\n )\n})\nStepperItem.displayName = \"StepperItem\"\n\nexport { Stepper, StepperItem }\n","import * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table ref={ref} className={cn(\"w-full caption-bottom text-sm\", className)} {...props} />\n </div>\n )\n)\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b [&_tr]:border-[var(--hc-color-border-subtle)] [&_tr:hover]:bg-transparent\", className)} {...props} />\n )\n)\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn(\"[&_tr:last-child]:border-0\", className)} {...props} />\n )\n)\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => (\n <tfoot ref={ref} className={cn(\"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\", className)} {...props} />\n )\n)\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr ref={ref} className={cn(\"border-b border-[var(--hc-color-border-subtle)] transition-colors hover:bg-muted/60 data-[state=selected]:bg-muted\", className)} {...props} />\n )\n)\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<HTMLTableCellElement, React.ThHTMLAttributes<HTMLTableCellElement>>(\n ({ className, ...props }, ref) => (\n <th ref={ref} className={cn(\"h-12 px-4 text-xs font-semibold uppercase tracking-wider text-muted-foreground text-start align-middle [&:has([role=checkbox])]:pe-0\", className)} {...props} />\n )\n)\nTableHead.displayName = \"TableHead\"\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, React.TdHTMLAttributes<HTMLTableCellElement>>(\n ({ className, ...props }, ref) => (\n <td ref={ref} className={cn(\"px-4 py-3 text-sm text-foreground align-middle [&:has([role=checkbox])]:pe-0\", className)} {...props} />\n )\n)\nTableCell.displayName = \"TableCell\"\n\nconst TableCaption = React.forwardRef<HTMLTableCaptionElement, React.HTMLAttributes<HTMLTableCaptionElement>>(\n ({ className, ...props }, ref) => (\n <caption ref={ref} className={cn(\"mt-4 text-sm text-muted-foreground\", className)} {...props} />\n )\n)\nTableCaption.displayName = \"TableCaption\"\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption }\n","import * as React from \"react\"\nimport {\n type ColumnDef,\n type ColumnFiltersState,\n type SortingState,\n type VisibilityState,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\"\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from \"./table\"\nimport { Button } from \"./button\"\nimport { Input } from \"./input\"\nimport { Skeleton } from \"./skeleton\"\n\ninterface DataTableProps<TData, TValue> {\n columns: ColumnDef<TData, TValue>[]\n data: TData[]\n searchKey?: string\n searchPlaceholder?: string\n loading?: boolean\n emptyState?: React.ReactNode\n pageSize?: number\n}\n\nfunction DataTable<TData, TValue>({\n columns,\n data,\n searchKey,\n searchPlaceholder = \"Filter...\",\n loading = false,\n emptyState,\n pageSize,\n}: DataTableProps<TData, TValue>) {\n const [sorting, setSorting] = React.useState<SortingState>([])\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] = React.useState<VisibilityState>({})\n const [rowSelection, setRowSelection] = React.useState({})\n\n const table = useReactTable({\n data,\n columns,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n state: { sorting, columnFilters, columnVisibility, rowSelection },\n ...(pageSize ? { initialState: { pagination: { pageSize, pageIndex: 0 } } } : {}),\n })\n\n const skeletonRowCount = pageSize ?? 5\n\n return (\n <div className=\"w-full\">\n {searchKey && (\n <div className=\"flex items-center py-4\">\n <Input\n placeholder={searchPlaceholder}\n value={(table.getColumn(searchKey)?.getFilterValue() as string) ?? \"\"}\n onChange={(event) => table.getColumn(searchKey)?.setFilterValue(event.target.value)}\n className=\"max-w-sm\"\n />\n </div>\n )}\n <div className=\"rounded-md border\">\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead key={header.id}>\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {loading ? (\n Array.from({ length: skeletonRowCount }).map((_, rowIdx) => (\n <TableRow key={`skeleton-${rowIdx}`}>\n {columns.map((_col, colIdx) => (\n <TableCell key={`skeleton-cell-${rowIdx}-${colIdx}`}>\n <Skeleton className=\"h-4 w-full\" />\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow key={row.id} data-state={row.getIsSelected() && \"selected\"}>\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>{flexRender(cell.column.columnDef.cell, cell.getContext())}</TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className=\"text-center\">\n {emptyState ?? (\n <div className=\"flex flex-col items-center justify-center gap-1 py-10 text-muted-foreground\">\n <span className=\"text-sm font-medium\">No results found.</span>\n <span className=\"text-xs\">Try adjusting your filters or search.</span>\n </div>\n )}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <div className=\"flex items-center justify-end space-x-2 py-4\">\n <div className=\"flex-1 text-sm text-muted-foreground\">\n {table.getFilteredSelectedRowModel().rows.length} of{\" \"}\n {table.getFilteredRowModel().rows.length} row(s) selected.\n </div>\n <div className=\"space-x-2\">\n <Button variant=\"outline\" size=\"sm\" onClick={() => table.previousPage()} disabled={!table.getCanPreviousPage()}>\n Previous\n </Button>\n <Button variant=\"outline\" size=\"sm\" onClick={() => table.nextPage()} disabled={!table.getCanNextPage()}>\n Next\n </Button>\n </div>\n </div>\n </div>\n )\n}\n\nexport { DataTable, type DataTableProps }\n","import * as React from \"react\"\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\nimport { buttonVariants, type ButtonProps } from \"./button\"\n\n/* ----------------------------------- Nav ---------------------------------- */\n\nconst Pagination = ({ className, ...props }: React.ComponentProps<\"nav\">) => (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n)\nPagination.displayName = \"Pagination\"\n\n/* --------------------------------- Content -------------------------------- */\n\nconst PaginationContent = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n className={cn(\"flex flex-row items-center gap-1\", className)}\n {...props}\n />\n))\nPaginationContent.displayName = \"PaginationContent\"\n\n/* ---------------------------------- Item ---------------------------------- */\n\nconst PaginationItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ className, ...props }, ref) => (\n <li ref={ref} className={cn(\"\", className)} {...props} />\n))\nPaginationItem.displayName = \"PaginationItem\"\n\n/* ---------------------------------- Link ---------------------------------- */\n\ntype PaginationLinkProps = {\n isActive?: boolean\n size?: ButtonProps[\"size\"]\n} & React.ComponentProps<\"a\">\n\nconst PaginationLink = ({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) => (\n <a\n aria-current={isActive ? \"page\" : undefined}\n className={cn(\n buttonVariants({\n variant: isActive ? \"default\" : \"ghost\",\n size,\n }),\n className\n )}\n {...props}\n />\n)\nPaginationLink.displayName = \"PaginationLink\"\n\n/* -------------------------------- Previous -------------------------------- */\n\nconst PaginationPrevious = ({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"gap-1 px-2.5\", className)}\n {...props}\n >\n <ChevronLeft className=\"size-4\" />\n <span className=\"hidden sm:block\">Previous</span>\n </PaginationLink>\n)\nPaginationPrevious.displayName = \"PaginationPrevious\"\n\n/* ---------------------------------- Next ---------------------------------- */\n\nconst PaginationNext = ({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"gap-1 px-2.5\", className)}\n {...props}\n >\n <span className=\"hidden sm:block\">Next</span>\n <ChevronRight className=\"size-4\" />\n </PaginationLink>\n)\nPaginationNext.displayName = \"PaginationNext\"\n\n/* -------------------------------- Ellipsis -------------------------------- */\n\nconst PaginationEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n aria-hidden\n className={cn(\"flex size-10 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n)\nPaginationEllipsis.displayName = \"PaginationEllipsis\"\n\n/* ---------------------------------- Info ---------------------------------- */\n\ninterface PaginationInfoProps extends React.ComponentProps<\"div\"> {\n currentPage: number\n totalPages: number\n formatPage?: (page: number) => string\n}\n\nconst PaginationInfo = ({\n currentPage,\n totalPages,\n formatPage = (p) => String(p).padStart(2, \"0\"),\n className,\n ...props\n}: PaginationInfoProps) => (\n <div\n className={cn(\"inline-flex items-center gap-1.5 text-sm\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Page</span>\n <span className=\"font-medium text-foreground\">{formatPage(currentPage)}</span>\n <span className=\"text-muted-foreground\">of</span>\n <span className=\"font-medium text-foreground\">{formatPage(totalPages)}</span>\n </div>\n)\nPaginationInfo.displayName = \"PaginationInfo\"\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n PaginationInfo,\n type PaginationLinkProps,\n type PaginationInfoProps,\n}\n","import * as React from \"react\"\nimport { DayPicker } from \"react-day-picker\"\nimport { ChevronLeft, ChevronRight } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>\n\nfunction Calendar({ className, classNames, showOutsideDays = true, captionLayout = \"dropdown\", ...props }: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\"w-[260px] rounded-lg p-3\", className)}\n classNames={{\n months: \"flex flex-col\",\n month: \"space-y-3\",\n month_caption: \"relative flex h-8 items-center justify-center\",\n caption_label: \"text-sm font-medium hidden\",\n nav: \"flex items-center\",\n button_previous: cn(\n \"absolute start-0 inline-flex size-7 items-center justify-center rounded-md bg-transparent p-0 text-muted-foreground hover:bg-[var(--hc-color-border-subtle)] hover:text-foreground transition-colors cursor-pointer border-none\"\n ),\n button_next: cn(\n \"absolute end-0 inline-flex size-7 items-center justify-center rounded-md bg-transparent p-0 text-muted-foreground hover:bg-[var(--hc-color-border-subtle)] hover:text-foreground transition-colors cursor-pointer border-none\"\n ),\n month_grid: \"w-full border-collapse\",\n weekdays: \"flex w-full\",\n weekday:\n \"flex-1 h-8 flex items-center justify-center text-[11px] font-medium text-muted-foreground uppercase tracking-wider\",\n week: \"flex w-full mt-1\",\n day: \"flex-1 h-8 p-0 relative focus-within:z-20 flex items-center justify-center text-sm\",\n day_button: cn(\n \"inline-flex size-8 items-center justify-center rounded-md bg-transparent text-sm font-normal cursor-pointer border-none hover:bg-[var(--hc-color-border-subtle)] transition-colors\"\n ),\n range_end: \"day-range-end\",\n selected:\n \"[&>button]:bg-[var(--hc-primary-600)] [&>button]:text-white [&>button]:hover:bg-[var(--hc-primary-600)] [&>button]:hover:text-white [&>button]:font-medium\",\n today: \"[&>button]:font-semibold [&>button]:text-[var(--hc-primary-600)]\",\n outside:\n \"day-outside [&>button]:bg-transparent [&>button]:text-[var(--hc-grey-200)]\",\n disabled: \"[&>button]:text-[var(--hc-grey-200)] [&>button]:opacity-50 [&>button]:cursor-default\",\n range_middle:\n \"[&>button]:bg-[var(--hc-primary-100)] [&>button]:text-foreground [&>button]:rounded-none\",\n range_start: \"[&>button]:rounded-e-none\",\n dropdowns: \"flex items-center gap-1.5 justify-center [&>select]:flex-1\",\n dropdown:\n \"h-7 w-[88px] rounded-md border border-[var(--hc-color-border-subtle)] bg-background px-2 text-xs font-medium text-foreground cursor-pointer outline-none accent-[var(--hc-primary-600)] focus:border-[var(--hc-primary-500)] focus:ring-[2px] focus:ring-[var(--hc-primary-500)]/20 [&>option:checked]:bg-[var(--hc-primary-600)] [&>option:checked]:text-white [&>option]:py-1\",\n hidden: \"invisible\",\n ...classNames,\n }}\n captionLayout={captionLayout}\n components={{\n Chevron: ({ orientation }) => {\n const Icon = orientation === \"left\" ? ChevronLeft : ChevronRight\n return <Icon className=\"size-4\" />\n },\n }}\n {...props}\n />\n )\n}\nCalendar.displayName = \"Calendar\"\n\nexport { Calendar }\n","import * as React from \"react\"\nimport { CalendarIcon } from \"lucide-react\"\nimport type { DateRange, Matcher } from \"react-day-picker\"\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\nimport { Calendar } from \"./calendar\"\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover\"\n\nexport type DatePickerPreset =\n | { label: string; value: Date }\n | { label: string; value: { from: Date; to: Date } }\n\nexport interface DatePickerProps {\n /** Selected value. For `mode=\"single\"` this is a Date, for `mode=\"range\"` this is a range object. */\n date?: Date | DateRange\n /** Called with the new selection. */\n onDateChange?: (date: Date | DateRange | undefined) => void\n /** Selection mode. Defaults to \"single\". */\n mode?: \"single\" | \"range\"\n /** Placeholder for the trigger when no date is picked. */\n placeholder?: string\n /** Classname applied to the trigger button. */\n className?: string\n /** Optional date format string — reserved for future use. */\n formatStr?: string\n /** Optional preset list rendered in a sidebar to the left of the calendar. */\n presets?: DatePickerPreset[]\n /** Passed through to the underlying Calendar. */\n disabled?: Matcher | Matcher[]\n}\n\nfunction formatDate(d: Date): string {\n return d.toLocaleDateString()\n}\n\nfunction DatePicker({\n date,\n onDateChange,\n mode = \"single\",\n placeholder = \"Pick a date\",\n className,\n presets,\n disabled,\n}: DatePickerProps) {\n const label = React.useMemo(() => {\n if (!date) return <span>{placeholder}</span>\n if (mode === \"range\") {\n const range = date as DateRange\n if (range.from && range.to) {\n return `${formatDate(range.from)} – ${formatDate(range.to)}`\n }\n if (range.from) return formatDate(range.from)\n return <span>{placeholder}</span>\n }\n return (date as Date).toLocaleDateString()\n }, [date, mode, placeholder])\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n className={cn(\n \"w-[280px] justify-start text-left font-normal\",\n !date && \"text-muted-foreground\",\n className\n )}\n >\n <CalendarIcon className=\"me-2 h-4 w-4\" />\n {label}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <div className=\"flex\">\n {presets && presets.length > 0 && (\n <div className=\"flex flex-col gap-1 border-e p-2 min-w-[140px]\">\n {presets.map((preset) => (\n <Button\n key={preset.label}\n variant=\"ghost\"\n size=\"sm\"\n className=\"justify-start font-normal\"\n onClick={() => onDateChange?.(preset.value as Date | DateRange)}\n >\n {preset.label}\n </Button>\n ))}\n </div>\n )}\n <div>\n {mode === \"range\" ? (\n <Calendar\n mode=\"range\"\n selected={date as DateRange | undefined}\n onSelect={(value) => onDateChange?.(value)}\n disabled={disabled}\n autoFocus\n />\n ) : (\n <Calendar\n mode=\"single\"\n selected={date as Date | undefined}\n onSelect={(value) => onDateChange?.(value)}\n disabled={disabled}\n autoFocus\n />\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport { DatePicker }\n","import * as React from \"react\"\nimport { type DialogProps } from \"@radix-ui/react-dialog\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { Search } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\nimport { Dialog, DialogContent } from \"./dialog\"\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\ninterface CommandDialogProps extends DialogProps {}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"me-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n))\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n))\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />\n))\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator ref={ref} className={cn(\"-mx-1 h-px bg-border\", className)} {...props} />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-muted data-[selected=true]:text-foreground data-[disabled=true]:opacity-50\",\n className\n )}\n {...props}\n />\n))\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => (\n <span className={cn(\"ms-auto text-xs tracking-widest text-muted-foreground\", className)} {...props} />\n)\nCommandShortcut.displayName = \"CommandShortcut\"\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n","import * as React from \"react\"\nimport useEmblaCarousel, { type UseEmblaCarouselType } from \"embla-carousel-react\"\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\n\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: \"horizontal\" | \"vertical\"\n setApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\n api: ReturnType<typeof useEmblaCarousel>[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n if (!context) throw new Error(\"useCarousel must be used within a <Carousel />\")\n return context\n}\n\nconst Carousel = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement> & CarouselProps>(\n ({ orientation = \"horizontal\", opts, setApi, plugins, className, children, ...props }, ref) => {\n const [carouselRef, api] = useEmblaCarousel({ ...opts, axis: orientation === \"horizontal\" ? \"x\" : \"y\" }, plugins)\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => api?.scrollPrev(), [api])\n const scrollNext = React.useCallback(() => api?.scrollNext(), [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") { event.preventDefault(); scrollPrev() }\n else if (event.key === \"ArrowRight\") { event.preventDefault(); scrollNext() }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) return\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) return\n onSelect(api)\n api.on(\"reInit\", onSelect)\n api.on(\"select\", onSelect)\n return () => { api?.off(\"select\", onSelect) }\n }, [api, onSelect])\n\n return (\n <CarouselContext.Provider value={{ carouselRef, api, opts, orientation: orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"), scrollPrev, scrollNext, canScrollPrev, canScrollNext }}>\n <div ref={ref} onKeyDownCapture={handleKeyDown} className={cn(\"relative\", className)} role=\"region\" aria-roledescription=\"carousel\" {...props}>\n {children}\n </div>\n </CarouselContext.Provider>\n )\n }\n)\nCarousel.displayName = \"Carousel\"\n\nconst CarouselContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel()\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div ref={ref} className={cn(\"flex\", orientation === \"horizontal\" ? \"-ms-4\" : \"-mt-4 flex-col\", className)} {...props} />\n </div>\n )\n }\n)\nCarouselContent.displayName = \"CarouselContent\"\n\nconst CarouselItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { orientation } = useCarousel()\n return (\n <div ref={ref} role=\"group\" aria-roledescription=\"slide\" className={cn(\"min-w-0 shrink-0 grow-0 basis-full\", orientation === \"horizontal\" ? \"ps-4\" : \"pt-4\", className)} {...props} />\n )\n }\n)\nCarouselItem.displayName = \"CarouselItem\"\n\nconst CarouselPrevious = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\n ({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n return (\n <Button ref={ref} variant={variant} size={size} className={cn(\"absolute h-8 w-8 rounded-full\", orientation === \"horizontal\" ? \"-start-12 top-1/2 -translate-y-1/2\" : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\", className)} disabled={!canScrollPrev} onClick={scrollPrev} {...props}>\n <ArrowLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n )\n }\n)\nCarouselPrevious.displayName = \"CarouselPrevious\"\n\nconst CarouselNext = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\n ({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n return (\n <Button ref={ref} variant={variant} size={size} className={cn(\"absolute h-8 w-8 rounded-full\", orientation === \"horizontal\" ? \"-end-12 top-1/2 -translate-y-1/2\" : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\", className)} disabled={!canScrollNext} onClick={scrollNext} {...props}>\n <ArrowRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n )\n }\n)\nCarouselNext.displayName = \"CarouselNext\"\n\nexport { type CarouselApi, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext }\n","import * as React from \"react\"\nimport * as RechartsPrimitive from \"recharts\"\nimport { cn } from \"../lib/utils\"\n\nconst THEMES = { light: \"\", dark: \".dark\" } as const\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode\n icon?: React.ComponentType\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n )\n}\n\ntype ChartContextProps = {\n config: ChartConfig\n}\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null)\n\nfunction useChart() {\n const context = React.useContext(ChartContext)\n if (!context) throw new Error(\"useChart must be used within a <ChartContainer />\")\n return context\n}\n\nconst ChartContainer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n config: ChartConfig\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>[\"children\"]\n }\n>(({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId()\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n className={cn(\n \"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none\",\n className\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n )\n})\nChartContainer.displayName = \"ChartContainer\"\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(([_, cfg]) => cfg.theme || cfg.color)\n if (!colorConfig.length) return null\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color = itemConfig.theme?.[theme as keyof typeof THEMES] || itemConfig.color\n return color ? ` --color-${key}: ${color};` : null\n })\n .join(\"\\n\")}\n}`\n )\n .join(\"\\n\"),\n }}\n />\n )\n}\n\nconst ChartTooltip = RechartsPrimitive.Tooltip\n\nconst ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<\"div\"> & {\n hideLabel?: boolean\n hideIndicator?: boolean\n indicator?: \"line\" | \"dot\" | \"dashed\"\n nameKey?: string\n labelKey?: string\n }\n>(\n (\n { active, payload, className, indicator = \"dot\", hideLabel = false, hideIndicator = false, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey },\n ref\n ) => {\n const { config } = useChart()\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) return null\n const item = payload[0]\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const value = !labelKey && typeof label === \"string\" ? (itemConfig?.label || label) : label\n if (labelFormatter) {\n return <div className={cn(\"font-medium\", labelClassName)}>{labelFormatter(value, payload)}</div>\n }\n if (!value) return null\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey])\n\n if (!active || !payload?.length) return null\n\n return (\n <div ref={ref} className={cn(\"grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl\", className)}>\n {tooltipLabel}\n <div className=\"grid gap-1.5\">\n {payload.map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const indicatorColor = color || (item.payload as Record<string, string>)?.fill || item.color\n\n return (\n <div key={item.dataKey} className={cn(\"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground\", indicator === \"dot\" && \"items-center\")}>\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload as Record<string, unknown>[])\n ) : (\n <>\n {!hideIndicator && (\n <div\n className={cn(\"shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]\", {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\": indicator === \"dashed\",\n \"my-0.5\": indicator === \"dashed\" || indicator === \"line\",\n })}\n style={{ \"--color-bg\": indicatorColor, \"--color-border\": indicatorColor } as React.CSSProperties}\n />\n )}\n <div className={cn(\"flex flex-1 justify-between leading-none\", hideIndicator ? \"gap-2\" : \"gap-2\")}>\n <div className=\"grid gap-1.5\">\n <span className=\"text-muted-foreground\">{itemConfig?.label || item.name}</span>\n </div>\n {item.value !== undefined && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n }\n)\nChartTooltipContent.displayName = \"ChartTooltipContent\"\n\nconst ChartLegend = RechartsPrimitive.Legend\n\nconst ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> &\n Pick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & { hideIcon?: boolean; nameKey?: string }\n>(({ className, hideIcon = false, payload, verticalAlign = \"bottom\", nameKey }, ref) => {\n const { config } = useChart()\n if (!payload?.length) return null\n\n return (\n <div ref={ref} className={cn(\"flex items-center justify-center gap-4\", verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\", className)}>\n {payload.map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n return (\n <div key={item.value} className={cn(\"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground\")}>\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div className=\"h-2 w-2 shrink-0 rounded-[2px]\" style={{ backgroundColor: item.color }} />\n )}\n {itemConfig?.label}\n </div>\n )\n })}\n </div>\n )\n})\nChartLegendContent.displayName = \"ChartLegendContent\"\n\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n if (typeof payload !== \"object\" || payload === null) return undefined\n const payloadPayload = \"payload\" in payload && typeof payload.payload === \"object\" && payload.payload !== null ? payload.payload : undefined\n let configLabelKey: string = key\n if (key in config) {\n configLabelKey = key\n } else if (payloadPayload && key in (payloadPayload as Record<string, unknown>)) {\n configLabelKey = (payloadPayload as Record<string, string>)[key]\n }\n return configLabelKey in config ? config[configLabelKey] : config[key]\n}\n\nexport { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, ChartStyle }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Search, Bell } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nexport interface DashboardHeaderProps extends React.HTMLAttributes<HTMLElement> {\n title?: string\n onSearch?: (query: string) => void\n notificationCount?: number\n user?: {\n name: string\n role: string\n avatar?: string\n initials?: string\n }\n}\n\nconst DashboardHeader = React.forwardRef<HTMLElement, DashboardHeaderProps>(\n ({ title, onSearch, notificationCount, user, className, ...props }, ref) => {\n const [searchQuery, setSearchQuery] = React.useState(\"\")\n\n return (\n <header\n ref={ref}\n className={cn(\n \"flex h-16 w-full items-center justify-between gap-4 border-b border-[var(--hc-color-border-subtle)] bg-background px-6\",\n className\n )}\n {...props}\n >\n {/* Left: Page title */}\n {title && (\n <h1 className=\"truncate text-base font-semibold text-foreground\">\n {title}\n </h1>\n )}\n\n {/* Right side */}\n <div className=\"flex items-center gap-3\">\n {/* Search */}\n {onSearch && (\n <div className=\"flex h-9 w-[260px] items-center gap-2 rounded-md border border-input bg-background px-3 transition-[border-color,box-shadow] duration-150 focus-within:border-[var(--hc-primary-500)] focus-within:ring-[3px] focus-within:ring-[color-mix(in_srgb,var(--hc-primary-500)_22%,transparent)]\">\n <Search className=\"size-4 shrink-0 text-muted-foreground\" />\n <input\n type=\"text\"\n placeholder=\"Search...\"\n value={searchQuery}\n onChange={(e) => {\n setSearchQuery(e.target.value)\n onSearch(e.target.value)\n }}\n className=\"w-full bg-transparent text-sm text-foreground placeholder:text-muted-foreground outline-none\"\n aria-label=\"Search\"\n />\n </div>\n )}\n\n {/* Notification bell */}\n <div className=\"relative\">\n <button\n type=\"button\"\n aria-label={\n notificationCount && notificationCount > 0\n ? `Notifications, ${notificationCount} unread`\n : \"Notifications\"\n }\n className=\"inline-flex size-9 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n >\n <Bell className=\"size-[18px]\" />\n </button>\n {notificationCount && notificationCount > 0 && (\n <span\n aria-label={`${notificationCount} notifications`}\n className=\"absolute -top-0.5 -end-0.5 flex min-w-[18px] items-center justify-center rounded-full bg-[var(--hc-color-destructive)] px-1 text-[10px] font-semibold leading-none text-white h-[18px] ring-2 ring-background\"\n >\n {notificationCount > 9 ? \"9+\" : notificationCount}\n </span>\n )}\n </div>\n\n {/* User profile */}\n {user && (\n <div className=\"flex items-center gap-3 ps-3 border-s border-[var(--hc-color-border-subtle)]\">\n <div className=\"text-end leading-tight\">\n <p className=\"text-sm font-semibold text-foreground\">{user.name}</p>\n <p className=\"text-xs text-muted-foreground\">{user.role}</p>\n </div>\n <div className=\"flex size-9 shrink-0 items-center justify-center rounded-full bg-[var(--hc-primary-600)] text-sm font-semibold text-white\">\n {user.initials ||\n user.name\n .split(\" \")\n .map((n) => n[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2)}\n </div>\n </div>\n )}\n </div>\n </header>\n )\n }\n)\nDashboardHeader.displayName = \"DashboardHeader\"\n\nexport { DashboardHeader }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Search, Bell, Moon } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nexport interface AppHeaderProps extends React.HTMLAttributes<HTMLElement> {\n onSearch?: (query: string) => void\n searchPlaceholder?: string\n showThemeToggle?: boolean\n onThemeToggle?: () => void\n hasNotifications?: boolean\n onNotificationClick?: () => void\n user?: {\n name: string\n email: string\n avatar?: string\n initials?: string\n }\n}\n\nconst AppHeader = React.forwardRef<HTMLElement, AppHeaderProps>(\n (\n {\n onSearch,\n searchPlaceholder = \"Search cases, employees...\",\n showThemeToggle = true,\n onThemeToggle,\n hasNotifications = false,\n onNotificationClick,\n user,\n className,\n ...props\n },\n ref\n ) => {\n const [searchQuery, setSearchQuery] = React.useState(\"\")\n\n return (\n <header\n ref={ref}\n className={cn(\n \"flex h-16 w-full items-center justify-between gap-4 border-b border-[var(--hc-color-border-subtle)] bg-background px-6\",\n className\n )}\n {...props}\n >\n {/* Left: Search */}\n {onSearch && (\n <div className=\"flex h-9 w-[300px] items-center gap-2 rounded-md border border-input bg-background px-3 transition-[border-color,box-shadow] duration-150 focus-within:border-[var(--hc-primary-500)] focus-within:ring-[3px] focus-within:ring-[color-mix(in_srgb,var(--hc-primary-500)_22%,transparent)]\">\n <Search className=\"size-4 shrink-0 text-muted-foreground\" />\n <input\n type=\"text\"\n placeholder={searchPlaceholder}\n value={searchQuery}\n onChange={(e) => {\n setSearchQuery(e.target.value)\n onSearch(e.target.value)\n }}\n className=\"w-full bg-transparent text-sm text-foreground placeholder:text-muted-foreground outline-none\"\n aria-label={searchPlaceholder}\n />\n </div>\n )}\n\n {/* Right side */}\n <div className=\"flex items-center gap-2\">\n {/* Theme toggle */}\n {showThemeToggle && (\n <button\n type=\"button\"\n onClick={onThemeToggle}\n aria-label=\"Toggle theme\"\n className=\"inline-flex size-9 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n >\n <Moon className=\"size-[18px]\" />\n </button>\n )}\n\n {/* Notification bell */}\n <button\n type=\"button\"\n onClick={onNotificationClick}\n aria-label={hasNotifications ? \"Notifications (unread)\" : \"Notifications\"}\n className=\"relative inline-flex size-9 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n >\n <Bell className=\"size-[18px]\" />\n {hasNotifications && (\n <span\n aria-hidden=\"true\"\n className=\"absolute top-[8px] end-[8px] size-2 rounded-full bg-[var(--hc-color-destructive)] ring-2 ring-background\"\n />\n )}\n </button>\n\n {/* User profile */}\n {user && (\n <div className=\"ms-1 flex items-center gap-3 ps-3 border-s border-[var(--hc-color-border-subtle)]\">\n <div className=\"text-end leading-tight\">\n <p className=\"text-sm font-semibold text-foreground\">\n {user.name}\n </p>\n <p className=\"text-xs text-muted-foreground truncate max-w-[160px]\">\n {user.email}\n </p>\n </div>\n <div className=\"flex size-9 shrink-0 items-center justify-center rounded-full bg-[var(--hc-primary-600)] text-sm font-semibold text-white\">\n {user.initials ||\n user.name\n .split(\" \")\n .map((n) => n[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2)}\n </div>\n </div>\n )}\n </div>\n </header>\n )\n }\n)\nAppHeader.displayName = \"AppHeader\"\n\nexport { AppHeader }\n","import * as React from \"react\";\n\nexport interface BellIconProps extends React.SVGProps<SVGSVGElement> {\n size?: number;\n}\n\nfunction BellIcon({\n size = 20,\n width,\n height,\n fill = \"none\",\n ...props\n}: BellIconProps) {\n return (\n <svg\n viewBox=\"0 0 20 20\"\n width={width ?? size}\n height={height ?? size}\n fill={fill}\n aria-hidden=\"true\"\n {...props}\n >\n <path\n d=\"M10 2.75a3.5 3.5 0 0 0-3.5 3.5v1.137c0 .647-.215 1.276-.611 1.788l-.82 1.062A2.25 2.25 0 0 0 6.85 13.75h6.3a2.25 2.25 0 0 0 1.781-3.513l-.82-1.062A2.935 2.935 0 0 1 13.5 7.387V6.25A3.5 3.5 0 0 0 10 2.75Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M8.25 15.25a1.75 1.75 0 0 0 3.5 0\"\n stroke=\"currentColor\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nexport { BellIcon };\n","import { LibraryIconProps } from \"./library-icon-props\";\n\nfunction IconInfoLineIcon({ size = 16, width, height, fill, title, ...props }: LibraryIconProps) {\n return (\n <svg viewBox=\"0 0 16 16\" width={width ?? size} height={height ?? size} fill={fill ?? \"none\"} aria-hidden={title ? undefined : true} role={title ? \"img\" : \"presentation\"} {...props}>\n <path d=\"M7.99992 5.33333H8.00525M7.99992 10.6667V7.33333M14.6666 8C14.6666 11.682 11.6819 14.6667 7.99992 14.6667C4.31792 14.6667 1.33325 11.682 1.33325 8C1.33325 4.318 4.31792 1.33333 7.99992 1.33333C11.6819 1.33333 14.6666 4.318 14.6666 8Z\" stroke=\"black\" strokeMiterlimit=\"10\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n {title ? <title>{title}</title> : null}\n </svg>\n );\n}\n\nexport { IconInfoLineIcon };\n","import { useTheme } from \"next-themes\"\nimport { Toaster as Sonner, toast } from \"sonner\"\nimport { cn } from \"../lib/utils\"\n\ntype ToasterProps = React.ComponentProps<typeof Sonner>\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = \"system\" } = useTheme()\n\n return (\n <Sonner\n theme={theme as ToasterProps[\"theme\"]}\n className=\"toaster group\"\n toastOptions={{\n classNames: {\n toast:\n \"group toast group-[.toaster]:!bg-white group-[.toaster]:!rounded-[6px] group-[.toaster]:!shadow-lg group-[.toaster]:!border group-[.toaster]:!border-[rgba(0,0,0,0.08)] group-[.toaster]:!p-4 group-[.toaster]:!font-[Inter]\",\n title:\n \"group-[.toast]:!text-sm group-[.toast]:!leading-[24px] group-[.toast]:!font-medium group-[.toast]:!text-[var(--hc-grey-600)]\",\n description:\n \"group-[.toast]:!text-xs group-[.toast]:!leading-[18px] group-[.toast]:!text-[var(--hc-grey-600)] group-[.toast]:!font-normal\",\n actionButton:\n \"group-[.toast]:!text-sm group-[.toast]:!leading-[18px] group-[.toast]:!font-medium group-[.toast]:!text-[var(--hc-primary-600)] group-[.toast]:!bg-transparent group-[.toast]:!p-0\",\n cancelButton:\n \"group-[.toast]:!bg-transparent group-[.toast]:!text-foreground group-[.toast]:!text-sm group-[.toast]:!font-medium group-[.toast]:!p-0\",\n closeButton:\n \"group-[.toast]:!text-[var(--hc-grey-300)]\",\n },\n }}\n {...props}\n />\n )\n}\n\nexport { Toaster, toast }\n","import * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nexport type TypographyWeight = \"extrabold\" | \"bold\" | \"semibold\" | \"medium\" | \"regular\" | \"light\"\n\nexport type TypographyColor =\n | \"default\"\n | \"secondary\"\n | \"foreground\"\n | \"muted\"\n | \"success\"\n | \"warning\"\n | \"destructive\"\n | \"inherit\"\n\nconst weightMap: Record<TypographyWeight, string> = {\n extrabold: \"font-extrabold\",\n bold: \"font-bold\",\n semibold: \"font-semibold\",\n medium: \"font-medium\",\n regular: \"font-normal\",\n light: \"font-light\",\n}\n\nconst colorMap: Record<Exclude<TypographyColor, \"default\">, string> = {\n secondary: \"text-muted-foreground\",\n foreground: \"text-[var(--hc-color-foreground)]\",\n muted: \"text-muted-foreground\",\n success: \"text-[var(--hc-color-success)]\",\n warning: \"text-[var(--hc-color-warning)]\",\n destructive: \"text-[var(--hc-color-destructive)]\",\n inherit: \"text-inherit\",\n}\n\ninterface TypographyHeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {\n weight?: TypographyWeight\n color?: TypographyColor\n}\n\ninterface TypographyParagraphProps extends React.HTMLAttributes<HTMLParagraphElement> {\n weight?: TypographyWeight\n color?: TypographyColor\n}\n\nfunction resolveColor(color: TypographyColor | undefined, defaultColorClass: string): string {\n if (!color || color === \"default\") return defaultColorClass\n return colorMap[color]\n}\n\nconst H1 = React.forwardRef<HTMLHeadingElement, TypographyHeadingProps>(\n ({ className, weight = \"semibold\", color, ...props }, ref) => (\n <h1 ref={ref} className={cn(\"scroll-m-20 text-3xl tracking-tight\", resolveColor(color, \"text-foreground\"), weightMap[weight], className)} {...props} />\n )\n)\nH1.displayName = \"H1\"\n\nconst H2 = React.forwardRef<HTMLHeadingElement, TypographyHeadingProps>(\n ({ className, weight = \"semibold\", color, ...props }, ref) => (\n <h2 ref={ref} className={cn(\"scroll-m-20 text-2xl tracking-tight\", resolveColor(color, \"text-foreground\"), weightMap[weight], className)} {...props} />\n )\n)\nH2.displayName = \"H2\"\n\nconst H3 = React.forwardRef<HTMLHeadingElement, TypographyHeadingProps>(\n ({ className, weight = \"semibold\", color, ...props }, ref) => (\n <h3 ref={ref} className={cn(\"scroll-m-20 text-xl tracking-tight\", resolveColor(color, \"text-foreground\"), weightMap[weight], className)} {...props} />\n )\n)\nH3.displayName = \"H3\"\n\nconst H4 = React.forwardRef<HTMLHeadingElement, TypographyHeadingProps>(\n ({ className, weight = \"semibold\", color, ...props }, ref) => (\n <h4 ref={ref} className={cn(\"scroll-m-20 text-lg tracking-tight\", resolveColor(color, \"text-foreground\"), weightMap[weight], className)} {...props} />\n )\n)\nH4.displayName = \"H4\"\n\nconst Body = React.forwardRef<HTMLParagraphElement, TypographyParagraphProps>(\n ({ className, weight = \"regular\", color, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-base leading-7\", resolveColor(color, \"text-foreground\"), weightMap[weight], className)} {...props} />\n )\n)\nBody.displayName = \"Body\"\n\nconst Small = React.forwardRef<HTMLParagraphElement, TypographyParagraphProps>(\n ({ className, weight = \"regular\", color, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-sm\", resolveColor(color, \"text-muted-foreground\"), weightMap[weight], className)} {...props} />\n )\n)\nSmall.displayName = \"Small\"\n\nconst Caption = React.forwardRef<HTMLParagraphElement, TypographyParagraphProps>(\n ({ className, weight = \"regular\", color, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-xs\", resolveColor(color, \"text-muted-foreground\"), weightMap[weight], className)} {...props} />\n )\n)\nCaption.displayName = \"Caption\"\n\nconst Lead = React.forwardRef<HTMLParagraphElement, TypographyParagraphProps>(\n ({ className, weight = \"medium\", color, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-lg\", resolveColor(color, \"text-foreground\"), weightMap[weight], className)} {...props} />\n )\n)\nLead.displayName = \"Lead\"\n\nconst Muted = React.forwardRef<HTMLParagraphElement, TypographyParagraphProps>(\n ({ className, weight = \"regular\", color, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-sm\", resolveColor(color, \"text-muted-foreground\"), weightMap[weight], className)} {...props} />\n )\n)\nMuted.displayName = \"Muted\"\n\nconst Code = React.forwardRef<HTMLElement, React.HTMLAttributes<HTMLElement>>(\n ({ className, ...props }, ref) => (\n <code\n ref={ref}\n className={cn(\n \"relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold\",\n className\n )}\n {...props}\n />\n )\n)\nCode.displayName = \"Code\"\n\nexport { H1, H2, H3, H4, Body, Small, Caption, Lead, Muted, Code }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { ThemeProvider as NextThemesProvider, type ThemeProviderProps } from \"next-themes\"\n\nfunction ThemeProvider({ children, ...props }: ThemeProviderProps) {\n return <NextThemesProvider {...props}>{children}</NextThemesProvider>\n}\n\nexport { ThemeProvider, type ThemeProviderProps }\nexport { useTheme } from \"next-themes\"\n","import * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nexport interface BannerProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: \"primary\" | \"muted\" | \"success\" | \"warning\" | \"destructive\"\n icon?: React.ReactNode\n title?: string\n description?: string\n action?: React.ReactNode\n}\n\nconst variantStyles: Record<NonNullable<BannerProps[\"variant\"]>, string> = {\n primary: \"bg-[var(--hc-banner-primary-bg)] border border-[var(--hc-primary-200)]\",\n muted: \"bg-[var(--hc-color-muted)] border border-[var(--hc-color-border)]\",\n success: \"bg-[var(--hc-banner-success-bg)] border border-[var(--hc-banner-success-border)]\",\n warning: \"bg-[var(--hc-banner-warning-bg)] border border-[var(--hc-banner-warning-border)]\",\n destructive: \"bg-[var(--hc-banner-destructive-bg)] border border-[var(--hc-banner-destructive-border)]\",\n}\n\nconst iconBgStyles: Record<NonNullable<BannerProps[\"variant\"]>, string> = {\n primary: \"bg-[var(--hc-primary-500)]\",\n muted: \"bg-[var(--hc-color-border)]\",\n success: \"bg-[var(--hc-color-success)]\",\n warning: \"bg-[var(--hc-color-warning)]\",\n destructive: \"bg-[var(--hc-color-destructive)]\",\n}\n\nconst Banner = React.forwardRef<HTMLDivElement, BannerProps>(\n ({ variant = \"primary\", icon, title, description, action, className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"rounded-lg px-6 py-5\", variantStyles[variant], className)}\n {...props}\n >\n <div className=\"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4\">\n <div className=\"flex items-center gap-3\">\n {icon && (\n <div className={cn(\"h-10 w-10 rounded-full flex items-center justify-center shrink-0 text-white\", iconBgStyles[variant])}>\n {icon}\n </div>\n )}\n <div>\n {title && (\n <p className=\"text-sm font-bold text-foreground\">\n {title}\n </p>\n )}\n {description && (\n <p className=\"text-xs mt-0.5 text-muted-foreground\">\n {description}\n </p>\n )}\n {children}\n </div>\n </div>\n {action && <div className=\"shrink-0\">{action}</div>}\n </div>\n </div>\n )\n)\nBanner.displayName = \"Banner\"\n\nexport { Banner }\n"],"mappings":"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","names":["React","cva","jsx","jsxs","cva","React","jsx","jsxs","React","jsx","jsxs","React","cva","React","jsx","jsx","jsxs","cva","React","cva","jsx","jsxs","cva","React","jsx","React","cva","jsx","cva","React","jsx","jsxs","React","cva","jsx","cva","React","jsx","React","Check","jsx","jsxs","Check","React","Slot","jsx","Slot","React","jsx","jsxs","Loader2","jsx","jsxs","jsx","jsxs","Loader2","React","cva","jsx","jsxs","cva","React","cva","jsx","cva","React","cva","jsx","jsxs","cva","jsx","React","cva","jsx","cva","React","jsx","jsxs","Separator","React","jsx","jsxs","React","cva","jsx","jsxs","cva","React","jsx","React","jsx","Item","React","cva","X","jsx","jsxs","cva","X","React","jsx","jsxs","React","cva","X","jsx","jsxs","cva","X","React","jsx","jsxs","React","jsx","React","jsx","React","Check","Circle","jsx","jsxs","Check","Circle","React","Check","ChevronRight","Circle","jsx","jsxs","ChevronRight","Check","Circle","React","jsx","React","ChevronDown","jsx","jsxs","ChevronDown","CollapsibleTrigger","CollapsibleContent","React","cva","ChevronDown","jsx","jsxs","cva","ChevronDown","React","Slot","ChevronRight","jsx","jsxs","Slot","ChevronRight","React","Check","ChevronRight","Circle","jsx","jsxs","ChevronRight","Check","Circle","React","Slot","jsx","jsxs","Slot","React","cva","jsx","jsxs","cva","jsx","React","Check","jsx","jsxs","Check","React","jsx","React","jsx","jsxs","React","ChevronRight","MoreHorizontal","jsx","jsxs","ChevronRight","MoreHorizontal","ChevronLeft","ChevronRight","jsx","Icon","ChevronLeft","ChevronRight","React","jsx","jsxs","React","jsx","jsxs","React","jsx","jsxs","api","React","Fragment","jsx","jsxs","React","Search","jsx","jsxs","Search","React","Search","Bell","jsx","jsxs","Search","Bell","jsx","jsxs","jsx","jsxs","jsx","React","jsx","useTheme","jsx","React","jsx","jsxs"]}
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/components/button.tsx","../src/components/input.tsx","../src/components/file-input.tsx","../src/components/textarea.tsx","../src/components/label.tsx","../src/components/tooltip.tsx","../src/components/checkbox.tsx","../src/components/radio-group.tsx","../src/components/switch.tsx","../src/components/slider.tsx","../src/components/toggle.tsx","../src/components/toggle-group.tsx","../src/components/select.tsx","../src/components/form.tsx","../src/components/input-otp.tsx","../src/components/badge.tsx","../src/components/icon/success-icon.tsx","../src/components/avatar.tsx","../src/components/alert.tsx","../src/components/progress.tsx","../src/components/skeleton.tsx","../src/components/spinner.tsx","../src/components/separator.tsx","../src/components/scroll-area.tsx","../src/components/aspect-ratio.tsx","../src/components/empty-state.tsx","../src/components/input-group.tsx","../src/components/item.tsx","../src/components/dialog.tsx","../src/components/alert-dialog.tsx","../src/components/sheet.tsx","../src/components/drawer.tsx","../src/components/popover.tsx","../src/components/hover-card.tsx","../src/components/context-menu.tsx","../src/components/dropdown-menu.tsx","../src/components/tabs.tsx","../src/components/accordion.tsx","../src/components/collapsible.tsx","../src/components/navigation-menu.tsx","../src/components/breadcrumb.tsx","../src/components/menubar.tsx","../src/components/sidebar.tsx","../src/components/card.tsx","../src/components/resizable.tsx","../src/components/stepper.tsx","../src/components/table.tsx","../src/components/data-table.tsx","../src/components/pagination.tsx","../src/components/calendar.tsx","../src/components/date-picker.tsx","../src/components/command.tsx","../src/components/carousel.tsx","../src/components/chart.tsx","../src/components/dashboard-header.tsx","../src/components/app-header.tsx","../src/components/icon/bell-icon.tsx","../src/components/icon/icon-info-line-icon.tsx","../src/components/sonner.tsx","../src/components/typography.tsx","../src/components/theme-provider.tsx","../src/components/banner.tsx","../src/components/impersonation-banner.tsx","../src/components/read-only-guard.tsx","../src/lib/impersonation.ts"],"sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","\nimport * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Loader2 } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap 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 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:size-4\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground hover:bg-primary-hover\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive-hover\",\n outline:\n \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary-hover\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground\",\n link:\n \"text-primary underline-offset-4 hover:underline\",\n success:\n \"bg-success text-success-foreground hover:bg-success-hover\",\n },\n size: {\n xs: \"h-7 px-2.5 text-xs\",\n sm: \"h-9 px-3\",\n default: \"h-10 px-4 py-2\",\n lg: \"h-11 px-8\",\n icon: \"h-10 w-10\",\n \"icon-sm\": \"h-8 w-8\",\n },\n shape: {\n default: \"rounded-md\",\n rounded: \"rounded-lg\",\n pill: \"rounded-full\",\n square: \"rounded-none\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n shape: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n loading?: boolean\n prefixIcon?: React.ReactNode\n suffixIcon?: React.ReactNode\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n shape,\n asChild = false,\n loading = false,\n prefixIcon,\n suffixIcon,\n children,\n disabled,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\"\n const isDisabled = disabled || loading\n\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, shape, className }))}\n ref={ref}\n disabled={isDisabled}\n {...props}\n >\n {loading && <Loader2 className=\"animate-spin\" />}\n {!loading && prefixIcon}\n {children}\n {suffixIcon}\n </Comp>\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Eye, EyeOff, X } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nconst inputVariants = cva(\n \"flex w-full rounded-md border bg-background transition-[color,border-color,box-shadow] duration-150 file:border-0 file:bg-transparent file:font-medium file:text-foreground placeholder:text-muted-foreground focus-within:outline-none disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n variant: {\n default:\n \"border-input hover:border-muted-foreground focus-within:border-[var(--hc-primary-500)] focus-within:ring-[3px] focus-within:ring-[color-mix(in_srgb,var(--hc-primary-500)_22%,transparent)]\",\n error:\n \"border-[var(--hc-color-destructive)] focus-within:border-[var(--hc-color-destructive)] focus-within:ring-[3px] focus-within:ring-[color-mix(in_srgb,var(--hc-color-destructive)_22%,transparent)]\",\n success:\n \"border-[var(--hc-color-success)] focus-within:border-[var(--hc-color-success)] focus-within:ring-[3px] focus-within:ring-[color-mix(in_srgb,var(--hc-color-success)_22%,transparent)]\",\n },\n inputSize: {\n default: \"h-10 px-3 py-2 text-sm\",\n sm: \"h-8 px-2.5 py-1.5 text-xs\",\n lg: \"h-12 px-4 py-3 text-base\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n inputSize: \"default\",\n },\n }\n)\n\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\">,\n VariantProps<typeof inputVariants> {\n label?: string\n hint?: string\n leadingIcon?: React.ReactNode\n trailingIcon?: React.ReactNode\n clearable?: boolean\n onClear?: () => void\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n (\n {\n className,\n type,\n label,\n hint,\n variant = \"default\",\n inputSize = \"default\",\n leadingIcon,\n trailingIcon,\n clearable,\n onClear,\n disabled,\n id,\n value,\n defaultValue,\n onChange,\n ...props\n },\n ref\n ) => {\n const generatedId = React.useId()\n const inputId = id || generatedId\n const isControlled = value !== undefined\n const [internalValue, setInternalValue] = React.useState<\n string | number | readonly string[] | undefined\n >(defaultValue)\n const innerRef = React.useRef<HTMLInputElement | null>(null)\n\n React.useImperativeHandle(\n ref,\n () => innerRef.current as HTMLInputElement,\n []\n )\n\n const currentValue = isControlled ? value : internalValue\n const hasValue =\n currentValue !== undefined &&\n currentValue !== null &&\n String(currentValue).length > 0\n\n const isPassword = type === \"password\"\n const [showPassword, setShowPassword] = React.useState(false)\n const resolvedType = isPassword ? (showPassword ? \"text\" : \"password\") : type\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalValue(e.target.value)\n }\n onChange?.(e)\n }\n\n const handleClear = () => {\n if (!isControlled) {\n setInternalValue(\"\")\n }\n // Fire a synthetic input event so consumers relying on onChange receive it.\n const input = innerRef.current\n if (input) {\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n window.HTMLInputElement.prototype,\n \"value\"\n )?.set\n nativeInputValueSetter?.call(input, \"\")\n const event = new Event(\"input\", { bubbles: true })\n input.dispatchEvent(event)\n input.focus()\n }\n onClear?.()\n }\n\n const showClearButton = clearable && hasValue && !isPassword && !disabled\n const showPasswordToggle = isPassword && !disabled\n\n const trailingSlots = [\n showClearButton ? 1 : 0,\n showPasswordToggle ? 1 : 0,\n trailingIcon ? 1 : 0,\n ].reduce((a, b) => a + b, 0)\n\n const inputPaddingEnd =\n trailingSlots >= 2 ? \"pe-14\" : trailingSlots === 1 ? \"pe-8\" : undefined\n\n return (\n <div className=\"flex flex-col gap-1.5\" data-slot=\"input-root\">\n {label && (\n <label\n htmlFor={inputId}\n className={cn(\n \"text-sm font-medium text-foreground\",\n disabled && \"text-muted-foreground\"\n )}\n >\n {label}\n </label>\n )}\n <div\n data-slot=\"input-wrapper\"\n className={cn(\n inputVariants({ variant, inputSize }),\n \"relative flex items-center gap-2\",\n disabled && \"cursor-not-allowed opacity-50\",\n className\n )}\n >\n {leadingIcon && (\n <span className=\"shrink-0 text-muted-foreground\">\n {leadingIcon}\n </span>\n )}\n <input\n id={inputId}\n type={resolvedType}\n disabled={disabled}\n className={cn(\n \"flex-1 min-w-0 bg-transparent outline-none text-inherit placeholder:text-muted-foreground disabled:cursor-not-allowed\",\n inputPaddingEnd\n )}\n ref={innerRef}\n value={isControlled ? value : internalValue}\n defaultValue={isControlled ? undefined : undefined}\n onChange={handleChange}\n {...props}\n />\n {(showClearButton || showPasswordToggle) && (\n <span\n className=\"pointer-events-none absolute end-2 top-1/2 -translate-y-1/2 flex items-center gap-1\"\n >\n {showClearButton && (\n <button\n type=\"button\"\n aria-label=\"Clear\"\n onClick={handleClear}\n tabIndex={-1}\n className=\"pointer-events-auto inline-flex size-4 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background\"\n >\n <X className=\"size-4\" aria-hidden=\"true\" />\n </button>\n )}\n {showPasswordToggle && (\n <button\n type=\"button\"\n aria-label={showPassword ? \"Hide password\" : \"Show password\"}\n onClick={() => setShowPassword((s) => !s)}\n tabIndex={-1}\n className=\"pointer-events-auto inline-flex size-4 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background\"\n >\n {showPassword ? (\n <EyeOff className=\"size-4\" aria-hidden=\"true\" />\n ) : (\n <Eye className=\"size-4\" aria-hidden=\"true\" />\n )}\n </button>\n )}\n </span>\n )}\n {trailingIcon && !showClearButton && !showPasswordToggle && (\n <span className=\"shrink-0 text-muted-foreground\">\n {trailingIcon}\n </span>\n )}\n </div>\n {hint && (\n <p\n className={cn(\n \"text-xs\",\n variant === \"default\" && \"text-muted-foreground\",\n variant === \"error\" && \"text-destructive\",\n variant === \"success\" && \"text-success\"\n )}\n >\n {hint}\n </p>\n )}\n </div>\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input, inputVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { CloudUpload } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nexport interface FileInputProps {\n accept?: string\n maxSize?: number // MB\n onFileSelect?: (files: File[]) => void\n multiple?: boolean\n disabled?: boolean\n className?: string\n}\n\nconst FileInput = React.forwardRef<HTMLDivElement, FileInputProps>(\n ({ accept, maxSize = 15, onFileSelect, multiple = false, disabled = false, className, ...props }, ref) => {\n const [isDragOver, setIsDragOver] = React.useState(false)\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault()\n if (!disabled) setIsDragOver(true)\n }\n\n const handleDragLeave = () => setIsDragOver(false)\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault()\n setIsDragOver(false)\n if (disabled) return\n const files = Array.from(e.dataTransfer.files)\n onFileSelect?.(files)\n }\n\n const handleClick = () => {\n if (!disabled) inputRef.current?.click()\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (disabled) return\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n inputRef.current?.click()\n }\n }\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const files = Array.from(e.target.files || [])\n onFileSelect?.(files)\n }\n\n return (\n <div\n ref={ref}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-label=\"File upload area\"\n aria-disabled={disabled || undefined}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n className={cn(\n \"flex flex-col items-center justify-center gap-[14px] rounded-[6px] bg-white p-[22px] cursor-pointer transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)]\",\n isDragOver && \"border-2 border-dashed border-[var(--hc-primary-500)] bg-[var(--hc-primary-100)]\",\n !isDragOver && \"border-2 border-dashed border-[var(--hc-color-border-subtle)]\",\n disabled && \"opacity-50 cursor-not-allowed\",\n className\n )}\n {...props}\n >\n <CloudUpload className=\"size-6 text-[var(--hc-primary-500)]\" />\n <p className=\"text-[12px] leading-[16px] text-[var(--hc-grey-200)] text-center\">\n PNG, JPG or PDF, smaller than {maxSize}MB\n </p>\n <p className=\"text-[14px] leading-[20px] font-medium text-[var(--hc-grey-300)] text-center\">\n Drag and Drop your file here or{\" \"}\n <span className=\"text-[var(--hc-primary-500)] hover:underline\">Browse file</span>\n </p>\n <input\n ref={inputRef}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n onChange={handleChange}\n className=\"hidden\"\n tabIndex={-1}\n aria-hidden=\"true\"\n />\n </div>\n )\n }\n)\nFileInput.displayName = \"FileInput\"\n\nexport { FileInput }\n","import * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n error?: boolean\n maxCharacters?: number\n}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, error, maxCharacters, value, onChange, ...props }, ref) => {\n const [charCount, setCharCount] = React.useState(\n typeof value === \"string\" ? value.length : 0\n )\n\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setCharCount(e.target.value.length)\n onChange?.(e)\n }\n\n return (\n <div className=\"relative\">\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 placeholder:text-muted-foreground focus:outline-none focus:border-ring disabled:cursor-not-allowed disabled:opacity-50\",\n error && \"border-destructive focus:border-destructive\",\n className\n )}\n ref={ref}\n value={value}\n onChange={handleChange}\n {...props}\n />\n {maxCharacters && (\n <span className=\"absolute bottom-2 end-3 text-xs text-muted-foreground\">\n {charCount}/{maxCharacters}\n </span>\n )}\n </div>\n )\n }\n)\nTextarea.displayName = \"Textarea\"\n\nexport { Textarea }\n","import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Info } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"./tooltip\"\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\nexport interface LabelProps\n extends React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>,\n VariantProps<typeof labelVariants> {\n required?: boolean\n helperText?: string\n tooltip?: string\n}\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n LabelProps\n>(({ className, required, helperText, tooltip, children, ...props }, ref) => {\n const tooltipIcon = tooltip ? (\n <TooltipProvider delayDuration={200}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n role=\"button\"\n tabIndex={0}\n aria-label=\"More information\"\n className=\"ms-1 inline-flex align-middle text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background rounded-sm\"\n >\n <Info className=\"size-3.5\" aria-hidden=\"true\" />\n </span>\n </TooltipTrigger>\n <TooltipContent>{tooltip}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n ) : null\n\n if (helperText || tooltip) {\n return (\n <span className=\"flex flex-col\">\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n >\n {children}\n {required && <span className=\"ms-1 text-destructive\">*</span>}\n {tooltipIcon}\n </LabelPrimitive.Root>\n {helperText && (\n <span className=\"mt-1 text-xs text-muted-foreground\">\n {helperText}\n </span>\n )}\n </span>\n )\n }\n\n return (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n >\n {children}\n {required && <span className=\"ms-1 text-destructive\">*</span>}\n </LabelPrimitive.Root>\n )\n})\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }\n","import * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\nimport { cn } from \"../lib/utils\"\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = TooltipPrimitive.Root\n\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 * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\nconst checkboxVariants = cva(\n \"peer shrink-0 border 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]:border-0 data-[state=indeterminate]:border-0\",\n {\n variants: {\n variant: {\n default:\n \"border-input hover:border-muted-foreground data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground\",\n destructive:\n \"border-input hover:border-muted-foreground data-[state=checked]:bg-destructive data-[state=checked]:text-destructive-foreground data-[state=indeterminate]:bg-destructive data-[state=indeterminate]:text-destructive-foreground\",\n success:\n \"border-input hover:border-muted-foreground data-[state=checked]:bg-success data-[state=checked]:text-success-foreground data-[state=indeterminate]:bg-success data-[state=indeterminate]:text-success-foreground\",\n },\n size: {\n sm: \"size-3.5 rounded-sm\",\n default: \"size-4 rounded-sm\",\n lg: \"size-5 rounded\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst checkboxIconSize = {\n sm: \"size-2.5\",\n default: \"size-3\",\n lg: \"size-4\",\n} as const\n\nexport interface CheckboxProps\n extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>,\n VariantProps<typeof checkboxVariants> {\n label?: string\n}\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n CheckboxProps\n>(({ className, label, id, variant, size = \"default\", ...props }, ref) => {\n const generatedId = React.useId()\n const checkboxId = id || generatedId\n return (\n <div className=\"inline-flex items-center gap-2\">\n <CheckboxPrimitive.Root\n ref={ref}\n id={checkboxId}\n className={cn(checkboxVariants({ variant, size, className }))}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center text-current\">\n <Check className={checkboxIconSize[size ?? \"default\"]} />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n {label && (\n <label\n htmlFor={checkboxId}\n className=\"text-sm leading-none text-foreground select-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50\"\n >\n {label}\n </label>\n )}\n </div>\n )\n})\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox, checkboxVariants }\n","import * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { Circle } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n />\n )\n})\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n})\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\n\nexport { RadioGroup, RadioGroupItem }\n","import * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\ntype SwitchSize = \"sm\" | \"default\" | \"lg\"\n\n// Unchecked track: grey-400 (>=3:1 on white and on dark surfaces); the fallback covers apps that do not load the library tokens.\nconst switchVariants = cva(\n \"peer inline-flex 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 ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=unchecked]:bg-[var(--hc-grey-400,#7C7C83)] aria-[invalid=true]:ring-2 aria-[invalid=true]:ring-destructive aria-[invalid=true]:ring-offset-2\",\n {\n variants: {\n variant: {\n default: \"data-[state=checked]:bg-[var(--hc-primary-600)]\",\n destructive: \"data-[state=checked]:bg-destructive\",\n success: \"data-[state=checked]:bg-success\",\n },\n size: {\n sm: \"h-5 w-9\",\n default: \"h-[28px] w-[52px]\",\n lg: \"h-[36px] w-[64px]\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst thumbStyles: Record<SwitchSize, string> = {\n sm: \"h-3.5 w-3.5 data-[state=unchecked]:translate-x-[3px] data-[state=checked]:translate-x-[15px]\",\n default:\n \"h-[22px] w-[22px] data-[state=unchecked]:translate-x-[3px] data-[state=checked]:translate-x-[23px]\",\n lg: \"h-[26px] w-[26px] data-[state=unchecked]:translate-x-[4px] data-[state=checked]:translate-x-[30px]\",\n}\n\nexport interface SwitchProps\n extends React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>,\n VariantProps<typeof switchVariants> {}\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n SwitchProps\n>(({ className, variant, size = \"default\", ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(switchVariants({ variant, size }), className)}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block rounded-full bg-white shadow-lg ring-0 transition-transform duration-200 [[disabled]_&]:bg-[var(--hc-grey-300,#A2A2A6)]\",\n thumbStyles[(size ?? \"default\") as SwitchSize]\n )}\n />\n </SwitchPrimitives.Root>\n))\nSwitch.displayName = SwitchPrimitives.Root.displayName\n\nexport { Switch, switchVariants }\n","import * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\nimport { cn } from \"../lib/utils\"\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const values = (props.value ?? props.defaultValue ?? [0]) as number[]\n return (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex w-full touch-none select-none items-center data-[orientation=vertical]:h-full data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-full bg-muted data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary data-[orientation=vertical]:w-full\" />\n </SliderPrimitive.Track>\n {values.map((_, i) => (\n <SliderPrimitive.Thumb\n key={i}\n className=\"block h-5 w-5 rounded-full border-2 border-primary bg-background shadow-sm transition-colors focus-visible:outline-none focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 disabled:pointer-events-none\"\n />\n ))}\n </SliderPrimitive.Root>\n )\n})\nSlider.displayName = SliderPrimitive.Root.displayName\n\nexport { Slider }\n","import * as React from \"react\"\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-primary data-[state=on]:text-primary-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border border-input bg-transparent hover:bg-muted hover:text-foreground\",\n },\n size: {\n sm: \"h-9 px-2.5\",\n md: \"h-10 px-3\",\n lg: \"h-11 px-5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n)\n\nexport interface ToggleProps\n extends React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root>,\n VariantProps<typeof toggleVariants> {}\n\nconst Toggle = React.forwardRef<\n React.ElementRef<typeof TogglePrimitive.Root>,\n ToggleProps\n>(({ className, variant, size, ...props }, ref) => (\n <TogglePrimitive.Root\n ref={ref}\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n))\nToggle.displayName = TogglePrimitive.Root.displayName\n\nexport { Toggle, toggleVariants }\n","import * as React from \"react\"\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\"\nimport { type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\nimport { toggleVariants } from \"./toggle\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants>\n>({\n size: \"md\",\n variant: \"default\",\n})\n\nconst ToggleGroup = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants>\n>(({ className, variant, size, children, ...props }, ref) => (\n <ToggleGroupPrimitive.Root\n ref={ref}\n className={cn(\"flex items-center justify-center gap-1\", className)}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n))\nToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName\n\nconst ToggleGroupItem = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>\n>(({ className, children, variant, size, ...props }, ref) => {\n const context = React.useContext(ToggleGroupContext)\n return (\n <ToggleGroupPrimitive.Item\n ref={ref}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n})\nToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName\n\nexport { ToggleGroup, ToggleGroupItem }\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 gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:border-ring disabled:cursor-not-allowed disabled:opacity-50 aria-[invalid=true]:border-destructive aria-[invalid=true]:focus:border-destructive data-[placeholder]:text-muted-foreground [&>span]:line-clamp-1 [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-muted-foreground\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-70\" />\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 \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\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(\"px-2 py-1.5 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 gap-2 rounded-sm py-1.5 pe-2 ps-8 text-sm text-foreground outline-none focus:bg-primary focus:text-primary-foreground data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <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}\n","import * as React from \"react\"\nimport type * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport {\n Controller,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n FormProvider,\n useFormContext,\n} from \"react-hook-form\"\nimport { cn } from \"../lib/utils\"\nimport { Label } from \"./label\"\n\nconst Form = FormProvider\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName\n}\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n)\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n )\n}\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext)\n const itemContext = React.useContext(FormItemContext)\n const { getFieldState, formState } = useFormContext()\n const fieldState = getFieldState(fieldContext.name, formState)\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\")\n }\n const { id } = itemContext\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n }\n}\n\ntype FormItemContextValue = {\n id: string\n orientation: \"vertical\" | \"horizontal\"\n}\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n)\n\nexport interface FormItemProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: \"vertical\" | \"horizontal\"\n}\n\nconst FormItem = React.forwardRef<HTMLDivElement, FormItemProps>(\n ({ className, orientation = \"vertical\", ...props }, ref) => {\n const id = React.useId()\n return (\n <FormItemContext.Provider value={{ id, orientation }}>\n <div\n ref={ref}\n className={cn(\n orientation === \"horizontal\"\n ? \"flex items-start gap-4\"\n : \"space-y-2\",\n className\n )}\n {...props}\n />\n </FormItemContext.Provider>\n )\n }\n)\nFormItem.displayName = \"FormItem\"\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof Label>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField()\n const itemContext = React.useContext(FormItemContext)\n return (\n <Label\n ref={ref}\n className={cn(\n error && \"text-destructive\",\n itemContext.orientation === \"horizontal\" && \"w-32 shrink-0 pt-2\",\n className\n )}\n htmlFor={formItemId}\n {...props}\n />\n )\n})\nFormLabel.displayName = \"FormLabel\"\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField()\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n )\n})\nFormControl.displayName = \"FormControl\"\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField()\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n})\nFormDescription.displayName = \"FormDescription\"\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField()\n const body = error ? String(error?.message) : children\n if (!body) {\n return null\n }\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn(\"text-sm font-medium text-destructive\", className)}\n {...props}\n >\n {body}\n </p>\n )\n})\nFormMessage.displayName = \"FormMessage\"\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n}\n","import * as React from \"react\"\nimport { OTPInput, OTPInputContext } from \"input-otp\"\nimport { Dot } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\ntype OTPGroupVariant = \"joined\" | \"separated\"\nconst InputOTPGroupContext = React.createContext<OTPGroupVariant>(\"joined\")\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\n \"flex items-center gap-2 has-[:disabled]:opacity-50\",\n containerClassName\n )}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n))\nInputOTP.displayName = \"InputOTP\"\n\nconst InputOTPGroup = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\"> & { variant?: OTPGroupVariant }\n>(({ className, variant = \"joined\", ...props }, ref) => (\n <InputOTPGroupContext.Provider value={variant}>\n <div\n ref={ref}\n data-variant={variant}\n className={cn(\n \"flex items-center\",\n variant === \"separated\" && \"gap-2\",\n className\n )}\n {...props}\n />\n </InputOTPGroupContext.Provider>\n))\nInputOTPGroup.displayName = \"InputOTPGroup\"\n\nconst InputOTPSlot = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\"> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext)\n const variant = React.useContext(InputOTPGroupContext)\n const slot = inputOTPContext.slots[index]\n if (!slot) return null\n const { char, hasFakeCaret, isActive } = slot\n\n return (\n <div\n ref={ref}\n role=\"textbox\"\n aria-label={`Digit ${index + 1}`}\n data-slot-index={index}\n className={cn(\n \"relative flex size-10 items-center justify-center border border-input bg-background text-base font-medium transition-[color,border-color,box-shadow] duration-150\",\n variant === \"joined\" &&\n \"border-y border-e border-s-0 first:rounded-s-md first:border-s last:rounded-e-md\",\n variant === \"separated\" && \"rounded-md\",\n isActive &&\n \"z-10 border-[var(--hc-primary-500)] ring-[3px] ring-[color-mix(in_srgb,var(--hc-primary-500)_22%,transparent)]\",\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-5 w-px animate-caret-blink bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n )\n})\nInputOTPSlot.displayName = \"InputOTPSlot\"\n\nconst InputOTPSeparator = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n role=\"separator\"\n className={cn(\"text-muted-foreground\", className)}\n {...props}\n >\n <Dot />\n </div>\n))\nInputOTPSeparator.displayName = \"InputOTPSeparator\"\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }\n","import * as React from \"react\"\nimport { AlertTriangle, Loader2, Sparkles } from \"lucide-react\"\nimport { SuccessIcon } from \"./icon/success-icon\"\nimport { cn } from \"../lib/utils\"\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLDivElement> {\n variant: \"severity\" | \"status\" | \"pill\" | \"icon\" | \"designation\" | \"spinner\"\n severity?: \"critical\" | \"high\" | \"medium\" | \"low\"\n status?: \"pending\" | \"in-progress\" | \"under-review\" | \"resolved\"\n pill?: \"error\" | \"warning\" | \"success\" | \"primary\"\n iconType?: \"warning\" | \"complete\" | \"ai-generated\"\n spinnerTone?: \"primary\" | \"neutral\" | \"success\" | \"warning\"\n dot?: boolean\n}\n\nconst severityStyles: Record<string, string> = {\n critical: \"bg-[var(--hc-color-destructive)] text-white border-t border-t-black/20\",\n high: \"bg-[var(--hc-badge-severity-high)] text-white border-t border-t-black/20\",\n medium: \"bg-[var(--hc-badge-severity-medium)] text-white border-t border-t-black/20\",\n low: \"bg-[var(--hc-badge-severity-low)] text-white border-t border-t-black/20\",\n}\n\nconst statusStyles: Record<string, string> = {\n pending: \"bg-[var(--hc-badge-pending-bg)] border border-[var(--hc-badge-pending-border)] text-[var(--hc-badge-pending-text)]\",\n \"in-progress\": \"bg-[var(--hc-badge-in-progress-bg)] border border-[var(--hc-badge-in-progress-border)] text-[var(--hc-badge-in-progress-text)]\",\n \"under-review\": \"bg-[var(--hc-badge-under-review-bg)] border border-[var(--hc-badge-under-review-border)] text-[var(--hc-badge-under-review-text)]\",\n resolved: \"bg-[var(--hc-badge-resolved-bg)] border border-[var(--hc-badge-resolved-border)] text-[var(--hc-badge-resolved-text)]\",\n}\n\nconst pillStyles: Record<string, string> = {\n error: \"bg-[var(--hc-color-destructive)] text-white border-t border-t-black/20\",\n warning: \"bg-[var(--hc-badge-severity-high)] text-white border-t border-t-black/20\",\n success: \"bg-[var(--hc-badge-pill-success)] text-white border-t border-t-black/20\",\n primary: \"bg-[var(--hc-primary-600)] text-white border-t border-t-black/20\",\n}\n\nconst iconStyles: Record<string, string> = {\n warning: \"bg-[var(--hc-badge-severity-high)] text-white border-t border-t-black/20 gap-[6px]\",\n complete: \"bg-[var(--hc-badge-pill-success)] text-white border-t border-t-black/20 gap-[6px]\",\n \"ai-generated\": \"bg-[var(--hc-primary-600)] text-white border-t border-t-black/20 gap-[6px]\",\n}\n\nconst designationStyles = \"bg-[var(--hc-badge-designation-bg)] text-[var(--hc-badge-designation-text)] font-normal\"\n\nconst spinnerStyles: Record<string, string> = {\n primary: \"bg-[var(--hc-primary-100)] text-[var(--hc-primary-700)] border border-[var(--hc-primary-200)] gap-1.5\",\n neutral: \"bg-muted text-muted-foreground border border-[var(--hc-color-border-subtle)] gap-1.5\",\n success: \"bg-[var(--hc-banner-success-bg)] text-[var(--hc-color-success)] border border-[var(--hc-banner-success-border)] gap-1.5\",\n warning: \"bg-[var(--hc-banner-warning-bg)] text-[var(--hc-badge-severity-high)] border border-[var(--hc-banner-warning-border)] gap-1.5\",\n}\n\nconst iconMap: Record<string, React.ElementType> = {\n warning: AlertTriangle,\n complete: SuccessIcon,\n \"ai-generated\": Sparkles,\n}\n\nfunction Badge({\n className,\n variant,\n severity,\n status,\n pill,\n iconType,\n spinnerTone = \"primary\",\n dot,\n children,\n ...props\n}: BadgeProps) {\n const base =\n \"inline-flex items-center h-[22px] rounded-[6px] px-2 py-0.5 text-xs font-medium gap-1\"\n\n let variantClasses = \"\"\n\n if (variant === \"severity\" && severity) {\n variantClasses = severityStyles[severity] ?? \"\"\n } else if (variant === \"status\" && status) {\n variantClasses = statusStyles[status] ?? \"\"\n } else if (variant === \"pill\" && pill) {\n variantClasses = pillStyles[pill] ?? \"\"\n } else if (variant === \"icon\" && iconType) {\n variantClasses = iconStyles[iconType] ?? \"\"\n } else if (variant === \"designation\") {\n variantClasses = designationStyles\n } else if (variant === \"spinner\") {\n variantClasses = spinnerStyles[spinnerTone] ?? spinnerStyles.primary\n }\n\n const IconComponent =\n variant === \"icon\" && iconType ? iconMap[iconType] : null\n\n return (\n <div className={cn(base, variantClasses, className)} {...props}>\n {variant === \"spinner\" && (\n <Loader2 aria-hidden className=\"size-3 shrink-0 animate-spin\" />\n )}\n {IconComponent && <IconComponent className=\"size-3 shrink-0\" />}\n {dot && (\n <span className=\"size-1.5 shrink-0 rounded-full bg-current\" />\n )}\n {children}\n </div>\n )\n}\n\nexport { Badge }\n","import { LibraryIconProps } from \"./library-icon-props\";\n\nfunction SuccessIcon({ size = 16, width, height, fill, title, ...props }: LibraryIconProps) {\n return (\n <svg viewBox=\"0 0 16 16\" width={width ?? size} height={height ?? size} fill={fill ?? \"none\"} aria-hidden={title ? undefined : true} role={title ? \"img\" : \"presentation\"} {...props}>\n <path d=\"M11.4 6.85C11.4911 6.7557 11.5415 6.6294 11.5403 6.4983C11.5392 6.3672 11.4866 6.2418 11.3939 6.14909C11.3012 6.05639 11.1758 6.00381 11.0447 6.00267C10.9136 6.00153 10.7873 6.05192 10.693 6.143L7.04301 9.793L5.39301 8.143C5.29871 8.05192 5.17241 8.00153 5.04131 8.00267C4.91021 8.0038 4.7848 8.05639 4.6921 8.14909C4.5994 8.2418 4.54681 8.3672 4.54567 8.4983C4.54453 8.6294 4.59493 8.7557 4.68601 8.85L6.68601 10.85C6.77977 10.9437 6.90693 10.9964 7.03951 10.9964C7.17209 10.9964 7.29925 10.9437 7.39301 10.85L11.393 6.85H11.4Z\" fill=\"black\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M8 0C3.58 0 0 3.58 0 8C0 12.42 3.58 16 8 16C12.42 16 16 12.42 16 8C16 3.58 12.42 0 8 0ZM1 8C1 4.13 4.13 1 8 1C11.87 1 15 4.13 15 8C15 11.87 11.87 15 8 15C4.13 15 1 11.87 1 8Z\" fill=\"black\"/>\n {title ? <title>{title}</title> : null}\n </svg>\n );\n}\n\nexport { SuccessIcon };\n","import * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\ntype AvatarSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\"\n\nconst avatarVariants = cva(\n \"relative flex shrink-0 overflow-hidden rounded-full bg-[var(--hc-primary-600)] text-white\",\n {\n variants: {\n size: {\n xs: \"size-6 text-[10px] leading-[14px]\",\n sm: \"size-8 text-sm leading-5\",\n md: \"size-10 text-base leading-6\",\n lg: \"size-[52px] text-xl leading-7\",\n xl: \"size-16 text-2xl leading-8\",\n },\n bordered: {\n true: \"ring-2 ring-background\",\n false: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n bordered: false,\n },\n }\n)\n\nconst statusToneClass: Record<string, string> = {\n online: \"bg-[var(--hc-color-success)]\",\n offline: \"bg-[var(--hc-grey-400)]\",\n away: \"bg-[var(--hc-badge-severity-medium,#F59E0B)]\",\n busy: \"bg-[var(--hc-color-destructive)]\",\n}\n\nconst statusSizeClass: Record<AvatarSize, string> = {\n xs: \"size-2\",\n sm: \"size-2.5\",\n md: \"size-3\",\n lg: \"size-3.5\",\n xl: \"size-4\",\n}\n\nexport interface AvatarProps\n extends React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>,\n VariantProps<typeof avatarVariants> {\n status?: \"online\" | \"offline\" | \"away\" | \"busy\"\n}\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n AvatarProps\n>(({ className, size = \"md\", bordered, status, children, onClick, ...props }, ref) => {\n const isInteractive = typeof onClick === \"function\"\n return (\n <span className=\"relative inline-flex\">\n <AvatarPrimitive.Root\n ref={ref}\n onClick={onClick}\n className={cn(\n avatarVariants({ size, bordered }),\n isInteractive &&\n \"cursor-pointer outline-none transition-shadow focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-2 focus-visible:ring-offset-background hover:opacity-90\",\n className\n )}\n {...props}\n >\n {children}\n </AvatarPrimitive.Root>\n {status && (\n <span\n aria-hidden\n className={cn(\n \"absolute bottom-0 end-0 block rounded-full ring-2 ring-background\",\n statusSizeClass[(size ?? \"md\") as AvatarSize],\n statusToneClass[status]\n )}\n />\n )}\n </span>\n )\n})\nAvatar.displayName = AvatarPrimitive.Root.displayName\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full object-cover\", className)}\n {...props}\n />\n))\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\"flex h-full w-full items-center justify-center font-semibold\", className)}\n {...props}\n />\n))\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\n\ninterface AvatarGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n max?: number\n size?: AvatarSize\n}\n\nconst overlapClass: Record<AvatarSize, string> = {\n xs: \"-ms-1.5\",\n sm: \"-ms-2\",\n md: \"-ms-2.5\",\n lg: \"-ms-3\",\n xl: \"-ms-3.5\",\n}\n\nconst AvatarGroup = React.forwardRef<HTMLDivElement, AvatarGroupProps>(\n ({ children, max, size = \"md\", className, ...props }, ref) => {\n const childArray = React.Children.toArray(children).filter(React.isValidElement)\n const visibleChildren = max ? childArray.slice(0, max) : childArray\n const overflowCount = max ? childArray.length - max : 0\n\n return (\n <div ref={ref} className={cn(\"flex items-center\", className)} {...props}>\n {visibleChildren.map((child, index) => (\n <div\n key={index}\n className={cn(\"relative\", index > 0 && overlapClass[size])}\n style={{ zIndex: visibleChildren.length - index }}\n >\n {React.isValidElement(child)\n ? React.cloneElement(child as React.ReactElement<AvatarProps>, {\n size: ((child as React.ReactElement<AvatarProps>).props.size ?? size),\n bordered: true,\n })\n : child}\n </div>\n ))}\n {overflowCount > 0 && (\n <div className={cn(\"relative\", overlapClass[size])}>\n <Avatar size={size} bordered>\n <AvatarFallback>+{overflowCount}</AvatarFallback>\n </Avatar>\n </div>\n )}\n </div>\n )\n }\n)\nAvatarGroup.displayName = \"AvatarGroup\"\n\nexport { Avatar, AvatarImage, AvatarFallback, AvatarGroup }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border p-4 [&>svg~*]:ps-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:start-4 [&>svg]:top-4 [&>svg]:text-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive: \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n success: \"border-success/50 text-success [&>svg]:text-success\",\n warning: \"border-warning/50 text-warning-foreground bg-warning/10 [&>svg]:text-warning\",\n info: \"border-primary/50 text-primary [&>svg]:text-primary\",\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, children, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n >\n {children}\n </h5>\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\nconst AlertAction = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"mt-3 flex flex-wrap items-center gap-2 [&>button]:h-8 [&>button]:px-3 [&>button]:text-xs\",\n className\n )}\n {...props}\n />\n))\nAlertAction.displayName = \"AlertAction\"\n\nexport { Alert, AlertTitle, AlertDescription, AlertAction, alertVariants }\n","import * as React from \"react\"\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\nconst progressVariants = cva(\n \"relative w-full overflow-hidden rounded-full bg-muted\",\n {\n variants: {\n size: {\n sm: \"h-2\",\n md: \"h-3\",\n lg: \"h-4\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport interface ProgressProps\n extends Omit<\n React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>,\n \"value\"\n >,\n VariantProps<typeof progressVariants> {\n value?: number\n indeterminate?: boolean\n showLabel?: boolean\n segments?: number\n}\n\nconst Progress = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n ProgressProps\n>(\n (\n {\n className,\n value = 0,\n size,\n indeterminate,\n showLabel,\n segments,\n ...props\n },\n ref\n ) => {\n const safeValue = Math.max(0, Math.min(100, value))\n\n const ariaProps = indeterminate\n ? { \"aria-busy\": true as const, \"aria-valuemin\": 0, \"aria-valuemax\": 100 }\n : {\n \"aria-valuenow\": safeValue,\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n }\n\n // Segmented variant\n if (segments && segments > 0 && !indeterminate) {\n const filled = Math.ceil((safeValue / 100) * segments)\n return (\n <div className=\"flex items-center gap-2\">\n <div\n role=\"progressbar\"\n {...ariaProps}\n className={cn(\n \"grid w-full gap-1\",\n className\n )}\n style={{\n gridTemplateColumns: `repeat(${segments}, minmax(0, 1fr))`,\n }}\n >\n {Array.from({ length: segments }).map((_, i) => (\n <div\n key={i}\n className={cn(\n \"rounded-full transition-colors\",\n size === \"sm\" ? \"h-2\" : size === \"lg\" ? \"h-4\" : \"h-3\",\n i < filled ? \"bg-primary\" : \"bg-muted\"\n )}\n />\n ))}\n </div>\n {showLabel && (\n <span className=\"text-xs font-medium text-foreground tabular-nums\">\n {safeValue}%\n </span>\n )}\n </div>\n )\n }\n\n const labelNode = showLabel ? (\n <span className=\"text-xs font-medium text-foreground tabular-nums shrink-0\">\n {indeterminate ? \"Loading...\" : `${safeValue}%`}\n </span>\n ) : null\n\n const bar = (\n <ProgressPrimitive.Root\n ref={ref}\n {...ariaProps}\n {...props}\n value={indeterminate ? null : safeValue}\n className={cn(progressVariants({ size }), className)}\n >\n {indeterminate ? (\n <div\n className=\"h-full w-1/3 rounded-full bg-gradient-to-r from-transparent via-primary to-transparent animate-[progress-indeterminate_1.2s_ease-in-out_infinite]\"\n />\n ) : (\n <ProgressPrimitive.Indicator\n className=\"h-full w-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - safeValue}%)` }}\n />\n )}\n </ProgressPrimitive.Root>\n )\n\n if (labelNode) {\n return (\n <div className=\"flex items-center gap-2\">\n {bar}\n {labelNode}\n </div>\n )\n }\n\n return bar\n }\n)\nProgress.displayName = ProgressPrimitive.Root.displayName\n\nexport { Progress }\n","import * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n shape?: \"text\" | \"circle\" | \"rect\"\n}\n\nfunction Skeleton({ className, shape = \"rect\", ...props }: SkeletonProps) {\n return (\n <div\n className={cn(\n \"animate-pulse bg-muted\",\n shape === \"circle\" && \"rounded-full\",\n shape === \"text\" && \"h-4 w-full rounded-md\",\n shape === \"rect\" && \"rounded-md\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\nconst spinnerVariants = cva(\"animate-spin\", {\n variants: {\n size: {\n sm: \"h-4 w-4\",\n md: \"h-6 w-6\",\n lg: \"h-8 w-8\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n})\n\nexport interface SpinnerProps\n extends React.SVGAttributes<SVGSVGElement>,\n VariantProps<typeof spinnerVariants> {}\n\nconst Spinner = React.forwardRef<SVGSVGElement, SpinnerProps>(\n ({ className, size, ...props }, ref) => (\n <svg\n ref={ref}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(spinnerVariants({ size }), className)}\n {...props}\n >\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n )\n)\nSpinner.displayName = \"Spinner\"\n\nexport { Spinner, spinnerVariants }\n","import * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\nimport { cn } from \"../lib/utils\"\n\nexport interface SeparatorProps\n extends React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root> {\n label?: string\n}\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n SeparatorProps\n>(({ className, orientation = \"horizontal\", decorative = true, label, ...props }, ref) => {\n if (label) {\n return (\n <div\n ref={ref as React.Ref<HTMLDivElement>}\n role={decorative ? \"none\" : \"separator\"}\n aria-orientation=\"horizontal\"\n className={cn(\"flex w-full items-center\", className)}\n >\n <span aria-hidden className=\"h-px flex-1 bg-border\" />\n <span className=\"mx-3 shrink-0 text-xs text-muted-foreground\">{label}</span>\n <span aria-hidden className=\"h-px flex-1 bg-border\" />\n </div>\n )\n }\n\n return (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-px w-full\" : \"h-full w-px\",\n className\n )}\n {...props}\n />\n )\n})\nSeparator.displayName = SeparatorPrimitive.Root.displayName\n\nexport { Separator }\n","import * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\nimport { cn } from \"../lib/utils\"\n\ntype ScrollAreaOrientation = \"vertical\" | \"horizontal\" | \"both\"\n\ninterface ScrollAreaProps\n extends React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> {\n orientation?: ScrollAreaOrientation\n}\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n ScrollAreaProps\n>(({ className, children, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n {(orientation === \"vertical\" || orientation === \"both\") && (\n <ScrollBar orientation=\"vertical\" />\n )}\n {(orientation === \"horizontal\" || orientation === \"both\") && (\n <ScrollBar orientation=\"horizontal\" />\n )}\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n))\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none p-px transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border transition-colors hover:bg-muted-foreground/50\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nexport { ScrollArea, ScrollBar }\n","import * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\"\n\nconst AspectRatio = AspectRatioPrimitive.Root\n\nexport { AspectRatio }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\nconst emptyStateVariants = cva(\"text-center\", {\n variants: {\n variant: {\n muted: \"bg-transparent text-muted-foreground p-10\",\n card: \"rounded-lg border border-[var(--hc-color-border-subtle)] bg-background p-10\",\n gradient:\n \"rounded-lg bg-gradient-to-br from-[var(--hc-primary-100)] to-background p-10 border border-[var(--hc-primary-200)]\",\n },\n },\n defaultVariants: {\n variant: \"muted\",\n },\n})\n\nexport interface EmptyStateProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof emptyStateVariants> {\n /** Optional icon rendered in a circular container above the title */\n icon?: React.ReactNode\n /** Primary heading */\n title: string\n /** Supporting description text */\n description?: string\n}\n\nconst EmptyState = React.forwardRef<HTMLDivElement, EmptyStateProps>(\n ({ className, variant, icon, title, description, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(emptyStateVariants({ variant }), className)}\n {...props}\n >\n {icon && (\n <div className=\"mx-auto mb-4 flex size-14 items-center justify-center rounded-full bg-muted text-muted-foreground [&>svg]:size-6\">\n {icon}\n </div>\n )}\n <h3 className=\"text-lg font-semibold text-foreground\">{title}</h3>\n {description && (\n <p className=\"mt-1 text-sm text-muted-foreground max-w-md mx-auto\">\n {description}\n </p>\n )}\n {children}\n </div>\n )\n)\nEmptyState.displayName = \"EmptyState\"\n\nconst EmptyStateActions = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"mt-6 flex items-center justify-center gap-2 flex-wrap\", className)}\n {...props}\n />\n))\nEmptyStateActions.displayName = \"EmptyStateActions\"\n\nexport { EmptyState, EmptyStateActions, emptyStateVariants }\n","import * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nexport interface InputGroupProps extends React.HTMLAttributes<HTMLDivElement> {}\n\n/**\n * InputGroup renders an input with leading/trailing addons sharing a single\n * rounded border and a unified focus ring. Works with both native `<input>`\n * elements and the library's `<Input>` — the group aggressively flattens\n * nested wrappers, strips inner borders/rings/rounds, and owns all container\n * styling itself.\n */\nconst InputGroup = React.forwardRef<HTMLDivElement, InputGroupProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-slot=\"input-group\"\n className={cn(\n // container — full height row, shared border + glow ring\n \"relative flex h-10 w-full items-stretch rounded-md border border-input bg-background text-sm transition-[color,border-color,box-shadow] duration-150 overflow-hidden\",\n \"focus-within:border-[var(--hc-primary-500)] focus-within:ring-[3px] focus-within:ring-[color-mix(in_srgb,var(--hc-primary-500)_22%,transparent)]\",\n\n // Flatten the lib Input's outer wrapper so horizontal flow works\n \"[&_[data-slot=input-root]]:h-full [&_[data-slot=input-root]]:flex-1 [&_[data-slot=input-root]]:flex-row [&_[data-slot=input-root]]:gap-0 [&_[data-slot=input-root]]:min-w-0\",\n // Hide any label/hint the user accidentally passed via the lib Input\n \"[&_[data-slot=input-root]>label]:hidden [&_[data-slot=input-root]>p]:hidden\",\n\n // Flatten the lib Input's inner wrapper (remove border, ring, round, padding, bg)\n \"[&_[data-slot=input-wrapper]]:h-full [&_[data-slot=input-wrapper]]:w-full [&_[data-slot=input-wrapper]]:flex-1 [&_[data-slot=input-wrapper]]:border-0 [&_[data-slot=input-wrapper]]:rounded-none [&_[data-slot=input-wrapper]]:bg-transparent [&_[data-slot=input-wrapper]]:shadow-none [&_[data-slot=input-wrapper]]:ring-0 [&_[data-slot=input-wrapper]]:px-0 [&_[data-slot=input-wrapper]]:py-0 [&_[data-slot=input-wrapper]]:focus-within:ring-0 [&_[data-slot=input-wrapper]]:focus-within:border-transparent\",\n\n // Native <input> styling inside the group\n \"[&_input]:h-full [&_input]:flex-1 [&_input]:min-w-0 [&_input]:bg-transparent [&_input]:px-3 [&_input]:text-sm [&_input]:outline-none [&_input]:placeholder:text-muted-foreground\",\n \"[&_input]:border-0 [&_input]:rounded-none [&_input]:shadow-none [&_input]:ring-0\",\n \"[&_input:focus]:ring-0 [&_input:focus-visible]:ring-0 [&_input:focus-within]:ring-0\",\n\n // Buttons inside the group fill height + shed own borders/rings\n \"[&>button]:h-full [&>button]:rounded-none [&>button]:border-0 [&>button]:shadow-none [&>button]:ring-0 [&>button:focus]:ring-0 [&>button:focus-visible]:ring-0\",\n\n className\n )}\n {...props}\n />\n )\n)\nInputGroup.displayName = \"InputGroup\"\n\nexport interface InputAddonProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst InputAddon = React.forwardRef<HTMLDivElement, InputAddonProps>(\n ({ className, children, ...props }, ref) => {\n const containsButton = React.Children.toArray(children).some(\n (c) =>\n React.isValidElement(c) &&\n (c.type === \"button\" ||\n (typeof c.type !== \"string\" &&\n (c.type as any)?.displayName?.includes?.(\"Button\")))\n )\n return (\n <div\n ref={ref}\n data-slot=\"input-addon\"\n className={cn(\n \"flex shrink-0 items-center justify-center whitespace-nowrap text-sm font-medium text-muted-foreground select-none\",\n // plain-content addon: subtle muted fill with a divider that matches the container border\n !containsButton &&\n \"bg-[var(--hc-grey-100)] px-3 border-e border-[var(--hc-color-border-subtle)] last:border-e-0 last:border-s\",\n // button addon: transparent slot, button fills the area and has proper padding\n containsButton &&\n \"p-0 bg-transparent border-e border-[var(--hc-color-border-subtle)] last:border-e-0 last:border-s [&>button]:h-full [&>button]:px-3 [&>button]:gap-2 [&>button]:rounded-none\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n }\n)\nInputAddon.displayName = \"InputAddon\"\n\nexport { InputGroup, InputAddon }\n","import * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nexport interface ItemProps extends React.HTMLAttributes<HTMLElement> {\n /** When true, renders as a focusable button with hover/focus styles */\n clickable?: boolean\n /** Click handler; works for both clickable and non-clickable items */\n onClick?: React.MouseEventHandler<HTMLElement>\n}\n\nconst Item = React.forwardRef<HTMLElement, ItemProps>(\n ({ className, clickable, onClick, children, ...props }, ref) => {\n const baseClasses = \"flex items-center gap-3 px-4 py-3 rounded-md\"\n const interactiveClasses =\n \"cursor-pointer transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] w-full text-start\"\n\n if (clickable || onClick) {\n return (\n <button\n type=\"button\"\n ref={ref as React.Ref<HTMLButtonElement>}\n onClick={onClick}\n className={cn(baseClasses, interactiveClasses, className)}\n {...(props as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n >\n {children}\n </button>\n )\n }\n\n return (\n <div\n ref={ref as React.Ref<HTMLDivElement>}\n className={cn(baseClasses, className)}\n {...(props as React.HTMLAttributes<HTMLDivElement>)}\n >\n {children}\n </div>\n )\n }\n)\nItem.displayName = \"Item\"\n\nconst ItemMedia = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"shrink-0 flex items-center\", className)}\n {...props}\n />\n))\nItemMedia.displayName = \"ItemMedia\"\n\nconst ItemContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex-1 min-w-0 flex flex-col gap-0.5\", className)}\n {...props}\n />\n))\nItemContent.displayName = \"ItemContent\"\n\nconst ItemTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm font-medium text-foreground truncate\", className)}\n {...props}\n />\n))\nItemTitle.displayName = \"ItemTitle\"\n\nconst ItemDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-xs text-muted-foreground truncate\", className)}\n {...props}\n />\n))\nItemDescription.displayName = \"ItemDescription\"\n\nconst ItemActions = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"shrink-0 flex items-center gap-1 ms-auto\", className)}\n {...props}\n />\n))\nItemActions.displayName = \"ItemActions\"\n\nconst ItemGroup = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"flex flex-col divide-y divide-[var(--hc-color-border-subtle)] rounded-md border border-[var(--hc-color-border-subtle)] bg-background overflow-hidden\",\n className\n )}\n {...props}\n />\n))\nItemGroup.displayName = \"ItemGroup\"\n\nexport {\n Item,\n ItemMedia,\n ItemContent,\n ItemTitle,\n ItemDescription,\n ItemActions,\n ItemGroup,\n}\n","import * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\nfunction useIsMobile(breakpoint = 768) {\n const [isMobile, setIsMobile] = React.useState(false)\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${breakpoint}px)`)\n const onChange = () => setIsMobile(mql.matches)\n onChange()\n mql.addEventListener(\"change\", onChange)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [breakpoint])\n return isMobile\n}\n\nconst dialogContentVariants = cva(\n \"fixed left-[50%] top-[50%] z-50 grid w-full 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 {\n variants: {\n size: {\n sm: \"max-w-sm\",\n default: \"max-w-lg\",\n lg: \"max-w-2xl\",\n xl: \"max-w-4xl\",\n fullscreen:\n \"max-w-none w-screen h-screen rounded-none m-0 inset-0 start-0 top-0 translate-x-0 translate-y-0 sm:rounded-none\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\nconst Dialog = DialogPrimitive.Root\nconst DialogTrigger = DialogPrimitive.Trigger\nconst DialogPortal = DialogPrimitive.Portal\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-black/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\nexport interface DialogContentProps\n extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>,\n VariantProps<typeof dialogContentVariants> {\n /**\n * When true and the viewport is <=768px, the dialog renders as a bottom-drawer-style\n * sheet (slides up from the bottom, full-width, rounded top corners). Desktop renders\n * as a regular centered dialog.\n */\n mobileDrawer?: boolean\n}\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n DialogContentProps\n>(({ className, children, size, mobileDrawer = false, ...props }, ref) => {\n const isMobile = useIsMobile()\n const asDrawer = mobileDrawer && isMobile\n\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n asDrawer\n ? \"fixed inset-x-0 bottom-0 z-50 grid w-full max-w-none gap-4 rounded-t-[10px] 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]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\"\n : dialogContentVariants({ size }),\n className\n )}\n {...props}\n >\n {asDrawer && (\n <div className=\"mx-auto -mt-2 mb-2 h-2 w-[100px] rounded-full bg-muted\" />\n )}\n {children}\n <DialogPrimitive.Close className=\"absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-muted 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 )\n})\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"flex flex-col gap-2 text-center sm:text-start\", className)} {...props} />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end sm:space-x-0 sm:[&>button]:min-w-[96px]\",\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(\"text-lg font-semibold leading-tight tracking-tight text-foreground\", className)}\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 leading-relaxed 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 AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\nimport { cn } from \"../lib/utils\"\nimport { buttonVariants } from \"./button\"\n\ntype AlertDialogSize = \"default\" | \"sm\"\n\nconst AlertDialogSizeContext = React.createContext<AlertDialogSize>(\"default\")\n\nconst AlertDialog = AlertDialogPrimitive.Root\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/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 ref={ref}\n />\n))\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content> & {\n size?: AlertDialogSize\n }\n>(({ className, size = \"default\", ...props }, ref) => (\n <AlertDialogSizeContext.Provider value={size}>\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n className={cn(\n \"group/alert-dialog-content fixed left-[50%] top-[50%] z-50 grid w-full translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background 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 size === \"sm\" ? \"max-w-sm p-5\" : \"max-w-lg p-6\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n </AlertDialogSizeContext.Provider>\n))\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\n\nconst AlertDialogMedia = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n tone?: \"primary\" | \"destructive\" | \"success\" | \"warning\" | \"muted\"\n }\n>(({ className, tone = \"primary\", children, ...props }, ref) => {\n const size = React.useContext(AlertDialogSizeContext)\n const tones: Record<NonNullable<typeof tone>, string> = {\n primary: \"bg-[var(--hc-primary-100)] text-[var(--hc-primary-600)]\",\n destructive: \"bg-[color-mix(in_srgb,var(--hc-color-destructive)_12%,transparent)] text-[var(--hc-color-destructive)]\",\n success: \"bg-[var(--hc-banner-success-bg)] text-[var(--hc-color-success)]\",\n warning: \"bg-[var(--hc-banner-warning-bg)] text-[var(--hc-color-warning)]\",\n muted: \"bg-muted text-foreground\",\n }\n return (\n <div\n ref={ref}\n data-slot=\"media\"\n className={cn(\n \"flex shrink-0 items-center justify-center self-center rounded-full\",\n size === \"sm\" ? \"h-9 w-9 [&>svg]:size-[18px]\" : \"h-10 w-10 [&>svg]:size-5\",\n tones[tone],\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n})\nAlertDialogMedia.displayName = \"AlertDialogMedia\"\n\nconst AlertDialogHeader = ({ className, children, ...props }: React.HTMLAttributes<HTMLDivElement>) => {\n const size = React.useContext(AlertDialogSizeContext)\n const hasMedia = React.Children.toArray(children).some(\n (c) => React.isValidElement(c) && (c.type as any)?.displayName === \"AlertDialogMedia\"\n )\n return (\n <div\n className={cn(\n \"flex flex-col gap-2\",\n hasMedia || size === \"sm\" ? \"items-center text-center\" : \"text-center sm:text-left\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\nAlertDialogHeader.displayName = \"AlertDialogHeader\"\n\nconst AlertDialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => {\n const size = React.useContext(AlertDialogSizeContext)\n return (\n <div\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:space-x-0 sm:[&>button]:min-w-[96px]\",\n // Center if small or when the Content has a media slot\n size === \"sm\"\n ? \"sm:justify-center\"\n : \"sm:justify-end group-has-[[data-slot=media]]/alert-dialog-content:sm:justify-center\",\n className\n )}\n {...props}\n />\n )\n}\nAlertDialogFooter.displayName = \"AlertDialogFooter\"\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold leading-tight tracking-tight text-foreground\", className)}\n {...props}\n />\n))\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm leading-relaxed text-muted-foreground\", className)}\n {...props}\n />\n))\nAlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action> & {\n variant?: \"default\" | \"destructive\"\n }\n>(({ className, variant = \"default\", ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(\n buttonVariants({ variant: variant === \"destructive\" ? \"destructive\" : \"default\" }),\n className\n )}\n {...props}\n />\n))\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(buttonVariants({ variant: \"outline\" }), \"mt-2 sm:mt-0\", className)}\n {...props}\n />\n))\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogMedia,\n}\n","import * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nconst Sheet = SheetPrimitive.Root\nconst SheetTrigger = SheetPrimitive.Trigger\nconst SheetClose = SheetPrimitive.Close\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/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 ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n \"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom: \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 start-0 h-full border-e ltr:data-[state=closed]:slide-out-to-left ltr:data-[state=open]:slide-in-from-left rtl:data-[state=closed]:slide-out-to-right rtl:data-[state=open]:slide-in-from-right\",\n right: \"inset-y-0 end-0 h-full border-s ltr:data-[state=closed]:slide-out-to-right ltr:data-[state=open]:slide-in-from-right rtl:data-[state=closed]:slide-out-to-left rtl:data-[state=open]:slide-in-from-left\",\n },\n size: {\n sm: \"\",\n md: \"\",\n lg: \"\",\n full: \"\",\n },\n },\n compoundVariants: [\n { side: \"left\", size: \"sm\", className: \"w-3/4 max-w-sm\" },\n { side: \"left\", size: \"md\", className: \"w-3/4 max-w-md\" },\n { side: \"left\", size: \"lg\", className: \"w-3/4 max-w-lg\" },\n { side: \"left\", size: \"full\", className: \"w-full\" },\n { side: \"right\", size: \"sm\", className: \"w-3/4 max-w-sm\" },\n { side: \"right\", size: \"md\", className: \"w-3/4 max-w-md\" },\n { side: \"right\", size: \"lg\", className: \"w-3/4 max-w-lg\" },\n { side: \"right\", size: \"full\", className: \"w-full\" },\n ],\n defaultVariants: {\n side: \"right\",\n size: \"md\",\n },\n }\n)\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", size = \"md\", className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side, size }), className)}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n))\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"flex flex-col space-y-2 text-center sm:text-start\", className)} {...props} />\n)\nSheetHeader.displayName = \"SheetHeader\"\n\nconst SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className)} {...props} />\n)\nSheetFooter.displayName = \"SheetFooter\"\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import * as React from \"react\"\nimport { Drawer as DrawerPrimitive } from \"vaul\"\nimport { cn } from \"../lib/utils\"\n\ntype DrawerSide = \"top\" | \"right\" | \"bottom\" | \"left\"\n\nconst DrawerSideContext = React.createContext<DrawerSide>(\"bottom\")\n\ntype DrawerProps = Omit<\n React.ComponentProps<typeof DrawerPrimitive.Root>,\n \"direction\"\n> & {\n /** Side the drawer slides in from. Defaults to \"bottom\". */\n side?: DrawerSide\n}\n\nconst Drawer = ({\n shouldScaleBackground = true,\n side = \"bottom\",\n ...props\n}: DrawerProps) => {\n const rootProps = {\n shouldScaleBackground,\n direction: side,\n ...props,\n } as React.ComponentProps<typeof DrawerPrimitive.Root>\n return (\n <DrawerSideContext.Provider value={side}>\n <DrawerPrimitive.Root {...rootProps} />\n </DrawerSideContext.Provider>\n )\n}\nDrawer.displayName = \"Drawer\"\n\nconst DrawerTrigger = DrawerPrimitive.Trigger\nconst DrawerPortal = DrawerPrimitive.Portal\nconst DrawerClose = DrawerPrimitive.Close\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n {...props}\n />\n))\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName\n\nconst sideClasses: Record<DrawerSide, string> = {\n bottom: \"inset-x-0 bottom-0 mt-24 h-auto rounded-t-[10px] border shadow-lg\",\n top: \"inset-x-0 top-0 mb-24 h-auto rounded-b-[10px] border shadow-lg\",\n left: \"inset-y-0 start-0 w-[22rem] max-w-[85vw] border-e shadow-lg\",\n right: \"inset-y-0 end-0 w-[22rem] max-w-[85vw] border-s shadow-lg\",\n}\n\nconst handleClasses: Record<DrawerSide, string> = {\n bottom: \"mx-auto mt-4 mb-2 h-1.5 w-[80px] rounded-full bg-[var(--hc-color-border-subtle)]\",\n top: \"mx-auto mb-4 mt-2 h-1.5 w-[80px] rounded-full bg-[var(--hc-color-border-subtle)]\",\n left: \"hidden\",\n right: \"hidden\",\n}\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => {\n const side = React.useContext(DrawerSideContext)\n return (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed z-50 flex flex-col bg-background\",\n sideClasses[side],\n className\n )}\n {...props}\n >\n <div className={handleClasses[side]} />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n )\n})\nDrawerContent.displayName = \"DrawerContent\"\n\nconst DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"grid gap-1.5 px-6 pt-5 pb-4 text-start border-b border-[var(--hc-color-border-subtle)]\",\n className\n )}\n {...props}\n />\n)\nDrawerHeader.displayName = \"DrawerHeader\"\n\nconst DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"mt-auto flex flex-col-reverse gap-2 px-6 py-4 border-t border-[var(--hc-color-border-subtle)] sm:flex-row sm:justify-end sm:[&>button]:min-w-[88px]\",\n className\n )}\n {...props}\n />\n)\nDrawerFooter.displayName = \"DrawerFooter\"\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold leading-tight tracking-tight text-foreground\", className)}\n {...props}\n />\n))\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-sm leading-relaxed text-muted-foreground\", className)}\n {...props}\n />\n))\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName\n\nconst DrawerBody = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex-1 overflow-y-auto px-6 py-4 text-sm text-foreground\", className)}\n {...props}\n />\n )\n)\nDrawerBody.displayName = \"DrawerBody\"\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerBody,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n}\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 HoverCardPrimitive from \"@radix-ui/react-hover-card\"\nimport { cn } from \"../lib/utils\"\n\nconst HoverCard = HoverCardPrimitive.Root\nconst HoverCardTrigger = HoverCardPrimitive.Trigger\n\nconst HoverCardContent = React.forwardRef<\n React.ElementRef<typeof HoverCardPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-64 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))\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n","import * as React from \"react\"\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nconst ContextMenu = ContextMenuPrimitive.Root\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger\nconst ContextMenuGroup = ContextMenuPrimitive.Group\nconst ContextMenuPortal = ContextMenuPrimitive.Portal\nconst ContextMenuSub = ContextMenuPrimitive.Sub\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup\n\nconst ContextMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & { inset?: boolean }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.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-muted focus:text-foreground data-[state=open]:bg-muted data-[state=open]:text-foreground\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto h-4 w-4\" />\n </ContextMenuPrimitive.SubTrigger>\n))\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName\n\nconst ContextMenuSubContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden 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))\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName\n\nconst ContextMenuContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n))\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName\n\nconst ContextMenuItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.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 focus:bg-muted focus:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n))\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-muted focus:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n))\nContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName\n\nconst ContextMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-muted focus:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n))\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName\n\nconst ContextMenuLabel = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Label\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold text-foreground\", inset && \"ps-8\", className)}\n {...props}\n />\n))\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName\n\nconst ContextMenuSeparator = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n))\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName\n\nconst ContextMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => (\n <span className={cn(\"ms-auto text-xs tracking-widest text-muted-foreground\", className)} {...props} />\n)\nContextMenuShortcut.displayName = \"ContextMenuShortcut\"\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n}\n","import * as React from \"react\"\nimport * 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> & { inset?: boolean }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-[6px] px-[12px] py-[6px] text-[14px] leading-[20px] font-normal text-[var(--hc-grey-700)] outline-none focus:bg-[var(--hc-primary-100)] data-[state=open]:bg-[var(--hc-primary-100)]\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto h-4 w-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n))\nDropdownMenuSubTrigger.displayName = 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-[6px] border border-[var(--hc-color-border-subtle)] bg-popover p-1 text-popover-foreground shadow-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:pointer-events-none 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 = 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-[6px] border border-[var(--hc-color-border-subtle)] bg-popover p-1 text-popover-foreground shadow-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:pointer-events-none 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> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-[6px] px-[12px] py-[6px] text-[14px] leading-[20px] font-normal text-[var(--hc-grey-700)] outline-none transition-colors focus:bg-[var(--hc-primary-100)] data-[highlighted]:bg-[var(--hc-primary-600)] data-[highlighted]:text-white data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"ps-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 ps-8 pe-2 text-sm outline-none transition-colors focus:bg-muted focus:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n))\nDropdownMenuCheckboxItem.displayName = 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 ps-8 pe-2 text-sm outline-none transition-colors focus:bg-muted focus:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n))\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\"px-[12px] py-[6px] text-[14px] font-semibold\", inset && \"ps-8\", className)}\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-[var(--hc-color-border-subtle)]\", className)}\n {...props}\n />\n))\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName\n\nconst DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => (\n <span className={cn(\"ms-auto text-xs tracking-widest opacity-60\", className)} {...props} />\n)\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\"\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n","import * as React from \"react\"\nimport * as 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 items-center rounded-md bg-muted p-1 gap-0.5\",\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-md px-2 py-1.5 text-sm leading-5 font-normal gap-1.5 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 text-foreground [&_svg]:text-foreground data-[state=active]:bg-background data-[state=active]:text-primary data-[state=active]:shadow-sm [&_svg]:size-4 data-[state=active]:[&_svg]:text-primary\",\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 * as AccordionPrimitive from \"@radix-ui/react-accordion\"\nimport { ChevronDown } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\ntype AccordionVariant = \"default\" | \"bordered\" | \"ghost\" | \"separated\"\n\nconst AccordionVariantContext = React.createContext<AccordionVariant>(\"default\")\n\n/* ---------------------------------- Root ---------------------------------- */\n\ntype AccordionProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Root> & {\n variant?: AccordionVariant\n}\n\nconst Accordion = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Root>,\n AccordionProps\n>(({ variant = \"default\", className, ...props }, ref) => (\n <AccordionVariantContext.Provider value={variant}>\n <AccordionPrimitive.Root\n ref={ref}\n className={cn(\n variant === \"bordered\" && \"space-y-2\",\n variant === \"separated\" && \"space-y-3\",\n className\n )}\n {...props}\n />\n </AccordionVariantContext.Provider>\n))\nAccordion.displayName = \"Accordion\"\n\n/* ---------------------------------- Item ---------------------------------- */\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => {\n const variant = React.useContext(AccordionVariantContext)\n return (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(\n variant === \"default\" && \"border-b\",\n variant === \"bordered\" && \"border rounded-md\",\n variant === \"ghost\" && \"\",\n variant === \"separated\" && \"border rounded-lg bg-card\",\n className\n )}\n {...props}\n />\n )\n})\nAccordionItem.displayName = \"AccordionItem\"\n\n/* -------------------------------- Trigger -------------------------------- */\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => {\n const variant = React.useContext(AccordionVariantContext)\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex flex-1 items-center justify-between text-sm font-medium transition-all [&[data-state=open]>svg]:rotate-180\",\n variant === \"default\" && \"py-4 hover:underline\",\n variant === \"bordered\" && \"px-4 py-4 hover:underline\",\n variant === \"ghost\" && \"py-3 px-3 rounded-md hover:bg-accent\",\n variant === \"separated\" && \"px-4 py-3\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDown className=\"size-4 shrink-0 text-muted-foreground transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n})\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\n\n/* -------------------------------- Content -------------------------------- */\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => {\n const variant = React.useContext(AccordionVariantContext)\n return (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div\n className={cn(\n \"pb-4 pt-0\",\n (variant === \"bordered\" || variant === \"separated\") && \"px-4\",\n variant === \"ghost\" && \"px-3\",\n className\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Content>\n )\n})\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\n\nexport {\n Accordion,\n AccordionItem,\n AccordionTrigger,\n AccordionContent,\n type AccordionProps,\n type AccordionVariant,\n}\n","import * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nconst Collapsible = CollapsiblePrimitive.Root\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","import * as React from \"react\"\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\"\nimport { cva } from \"class-variance-authority\"\nimport { ChevronDown } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nconst NavigationMenu = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn(\"relative z-10 flex max-w-max flex-1 items-center justify-center\", className)}\n {...props}\n >\n {children}\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Root>\n))\nNavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName\n\nconst NavigationMenuList = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn(\"group flex flex-1 list-none items-center justify-center space-x-1\", className)}\n {...props}\n />\n))\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item\n\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground focus:outline-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-muted/50 data-[state=open]:bg-muted/50\"\n)\n\nconst NavigationMenuTrigger = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDown\n className=\"relative top-[1px] ms-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n))\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName\n\nconst NavigationMenuContent = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"start-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto\",\n className\n )}\n {...props}\n />\n))\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName\n\nconst NavigationMenuLink = NavigationMenuPrimitive.Link\n\nconst NavigationMenuViewport = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <div className={cn(\"absolute start-0 top-full flex justify-center\")}>\n <NavigationMenuPrimitive.Viewport\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className\n )}\n ref={ref}\n {...props}\n />\n </div>\n))\nNavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName\n\nconst NavigationMenuIndicator = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in\",\n className\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n))\nNavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n}\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<\"nav\"> & { separator?: React.ReactNode }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\nBreadcrumb.displayName = \"Breadcrumb\"\n\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.ComponentPropsWithoutRef<\"ol\">\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\",\n className\n )}\n {...props}\n />\n))\nBreadcrumbList.displayName = \"BreadcrumbList\"\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n))\nBreadcrumbItem.displayName = \"BreadcrumbItem\"\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<\"a\"> & { asChild?: boolean }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\"\n return (\n <Comp\n ref={ref}\n className={cn(\"transition-colors hover:text-foreground\", className)}\n {...props}\n />\n )\n})\nBreadcrumbLink.displayName = \"BreadcrumbLink\"\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n))\nBreadcrumbPage.displayName = \"BreadcrumbPage\"\n\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<\"li\">) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n)\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\"\n\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n)\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\"\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n","import * as React from \"react\"\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nconst MenubarMenu: typeof MenubarPrimitive.Menu = MenubarPrimitive.Menu\nconst MenubarGroup: typeof MenubarPrimitive.Group = MenubarPrimitive.Group\nconst MenubarPortal: typeof MenubarPrimitive.Portal = MenubarPrimitive.Portal\nconst MenubarSub: typeof MenubarPrimitive.Sub = MenubarPrimitive.Sub\nconst MenubarRadioGroup: typeof MenubarPrimitive.RadioGroup = MenubarPrimitive.RadioGroup\n\nconst Menubar = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Root\n ref={ref}\n className={cn(\"flex h-10 items-center space-x-1 rounded-md border bg-background p-1\", className)}\n {...props}\n />\n))\nMenubar.displayName = MenubarPrimitive.Root.displayName\n\nconst MenubarTrigger = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none focus:bg-muted focus:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background data-[state=open]:bg-muted data-[state=open]:text-foreground\",\n className\n )}\n {...props}\n />\n))\nMenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName\n\nconst MenubarSubTrigger = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubTrigger> & { inset?: boolean }\n>(({ className, inset, children, ...props }, ref) => (\n <MenubarPrimitive.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-muted focus:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background data-[state=open]:bg-muted data-[state=open]:text-foreground\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ms-auto h-4 w-4\" />\n </MenubarPrimitive.SubTrigger>\n))\nMenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName\n\nconst MenubarSubContent = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n))\nMenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName\n\nconst MenubarContent = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Content>\n>(({ className, align = \"start\", alignOffset = -4, sideOffset = 8, ...props }, ref) => (\n <MenubarPrimitive.Portal>\n <MenubarPrimitive.Content\n ref={ref}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </MenubarPrimitive.Portal>\n))\nMenubarContent.displayName = MenubarPrimitive.Content.displayName\n\nconst MenubarItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Item> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.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 focus:bg-muted focus:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n inset && \"ps-8\",\n className\n )}\n {...props}\n />\n))\nMenubarItem.displayName = MenubarPrimitive.Item.displayName\n\nconst MenubarCheckboxItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <MenubarPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-muted focus:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n))\nMenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName\n\nconst MenubarRadioItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <MenubarPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-muted focus:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-1 focus-visible:ring-offset-background data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute start-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n))\nMenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName\n\nconst MenubarLabel = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Label> & { inset?: boolean }\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.Label\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold\", inset && \"ps-8\", className)}\n {...props}\n />\n))\nMenubarLabel.displayName = MenubarPrimitive.Label.displayName\n\nconst MenubarSeparator = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nMenubarSeparator.displayName = MenubarPrimitive.Separator.displayName\n\nconst MenubarShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => (\n <span className={cn(\"ms-auto text-xs tracking-widest text-muted-foreground\", className)} {...props} />\n)\nMenubarShortcut.displayName = \"MenubarShortcut\"\n\nexport {\n Menubar,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarItem,\n MenubarSeparator,\n MenubarLabel,\n MenubarCheckboxItem,\n MenubarRadioItem,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarGroup,\n MenubarPortal,\n MenubarSub,\n MenubarRadioGroup,\n MenubarShortcut,\n}\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { PanelLeft } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\nimport { Sheet, SheetContent } from \"./sheet\"\n\nconst SIDEBAR_WIDTH = \"239px\"\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\"\nconst SIDEBAR_WIDTH_ICON = \"3rem\"\n\ntype SidebarContext = {\n state: \"expanded\" | \"collapsed\"\n open: boolean\n setOpen: (open: boolean) => void\n openMobile: boolean\n setOpenMobile: (open: boolean) => void\n isMobile: boolean\n toggleSidebar: () => void\n}\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null)\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext)\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\")\n }\n return context\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean\n open?: boolean\n onOpenChange?: (open: boolean) => void\n }\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\n const [openMobile, setOpenMobile] = React.useState(false)\n const [_open, _setOpen] = React.useState(defaultOpen)\n const open = openProp ?? _open\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value\n if (setOpenProp) {\n setOpenProp(openState)\n } else {\n _setOpen(openState)\n }\n },\n [setOpenProp, open]\n )\n\n const [isMobile, setIsMobile] = React.useState(false)\n React.useEffect(() => {\n const mql = window.matchMedia(\"(max-width: 768px)\")\n const onChange = () => setIsMobile(mql.matches)\n onChange()\n mql.addEventListener(\"change\", onChange)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [])\n\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((o) => !o) : setOpen((o) => !o)\n }, [isMobile, setOpen, setOpenMobile])\n\n const state = open ? \"expanded\" : \"collapsed\"\n\n const contextValue = React.useMemo<SidebarContext>(\n () => ({ state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n )\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <div\n ref={ref}\n style={{ \"--sidebar-width\": SIDEBAR_WIDTH, \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON, ...style } as React.CSSProperties}\n className={cn(\"group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-muted\", className)}\n {...props}\n >\n {children}\n </div>\n </SidebarContext.Provider>\n )\n})\nSidebarProvider.displayName = \"SidebarProvider\"\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\n }\n>(({ side = \"left\", variant = \"sidebar\", collapsible = \"offcanvas\", className, children, ...props }, ref) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === \"none\") {\n return (\n <div\n className={cn(\n \"flex h-full w-[--sidebar-width] flex-col border-r border-border bg-background text-foreground\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n )\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-[--sidebar-width] bg-background p-0 text-foreground [&>button]:hidden\"\n style={{ \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE } as React.CSSProperties}\n side={side}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n )\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden md:block text-foreground\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n <div\n className={cn(\n \"duration-200 relative h-svh w-[--sidebar-width] bg-transparent transition-[width] ease-out\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\"\n )}\n />\n <div\n // top/height set via inline style, not Tailwind arbitrary-value\n // classes (`top-[var(--app-top-offset,0px)]` / `h-[calc(100svh_-_...)]`):\n // caught live in a Tailwind v4 consumer (Connect/crm-frontend) where\n // those exact classes compiled into the CSS bundle correctly (verified\n // in the built output) but never actually applied at runtime — top\n // stayed 0px regardless of --app-top-offset's live value, for reasons\n // that didn't reproduce in this same library's Tailwind v3 consumers\n // (tenant-app-frontend). Inline styles resolve CSS custom properties\n // natively, with no dependency on Tailwind's JIT generation, content\n // scanning, or cascade-layer ordering — the one part of this offset\n // mechanism now guaranteed to work identically in every consumer\n // regardless of their own Tailwind major version.\n //\n // NOTE: a consumer that passes its own `style` prop to <Sidebar>\n // will silently wipe this object out via the {...props} spread below\n // ({...props} replaces the whole `style` key, it doesn't merge it).\n // That's a real footgun, but the fix belongs in the consumer, not\n // here — see crm-frontend's app-sidebar.tsx, which used to pass\n // style={{'--background': ...}} directly to this component and now\n // sets that custom property on a wrapping element instead (it\n // inherits down through the cascade the same way).\n style={{\n top: \"var(--app-top-offset, 0px)\",\n height: \"calc(100svh - var(--app-top-offset, 0px))\",\n }}\n className={cn(\n \"duration-200 fixed bottom-0 z-10 hidden w-[--sidebar-width] transition-[left,right,width,top,height] ease-out md:flex\",\n side === \"left\"\n ? \"start-0 group-data-[collapsible=offcanvas]:start-[calc(var(--sidebar-width)*-1)]\"\n : \"end-0 group-data-[collapsible=offcanvas]:end-[calc(var(--sidebar-width)*-1)]\",\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\",\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col justify-between border-border bg-background group-data-[side=left]:border-e group-data-[side=right]:border-s group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n )\n})\nSidebar.displayName = \"Sidebar\"\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 border-b border-border p-3\", className)}\n {...props}\n />\n )\n)\nSidebarHeader.displayName = \"SidebarHeader\"\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 border-t border-border p-2\", className)}\n {...props}\n />\n )\n)\nSidebarFooter.displayName = \"SidebarFooter\"\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-y-auto overflow-x-hidden group-data-[collapsible=icon]:overflow-hidden\",\n \"[scrollbar-width:none] [&::-webkit-scrollbar]:hidden\",\n className\n )}\n {...props}\n />\n )\n)\nSidebarContent.displayName = \"SidebarContent\"\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n )\n)\nSidebarGroup.displayName = \"SidebarGroup\"\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\"> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"div\"\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n \"duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-muted-foreground outline-none ring-ring transition-[margin,opacity] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className\n )}\n {...props}\n />\n )\n }\n)\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\"\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div ref={ref} data-sidebar=\"group-content\" className={cn(\"w-full text-sm\", className)} {...props} />\n )\n)\nSidebarGroupContent.displayName = \"SidebarGroupContent\"\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(\n ({ className, ...props }, ref) => (\n <ul ref={ref} data-sidebar=\"menu\" className={cn(\"w-full gap-1 flex flex-col\", className)} {...props} />\n )\n)\nSidebarMenu.displayName = \"SidebarMenu\"\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(\n ({ className, ...props }, ref) => (\n <li ref={ref} data-sidebar=\"menu-item\" className={cn(\"group/menu-item relative\", className)} {...props} />\n )\n)\nSidebarMenuItem.displayName = \"SidebarMenuItem\"\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean\n isActive?: boolean\n tooltip?: string | React.ComponentProps<\"div\">\n }\n>(({ asChild = false, isActive = false, className, tooltip, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-active={isActive}\n className={cn(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-start text-sm font-medium outline-none ring-ring transition-[width,height,padding,background-color,color] duration-200 ease-out focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pe-8 aria-disabled:pointer-events-none aria-disabled:opacity-50\",\n \"text-foreground hover:bg-muted hover:text-foreground\",\n \"data-[active=true]:bg-primary data-[active=true]:text-primary-foreground data-[active=true]:font-semibold data-[active=true]:hover:bg-primary data-[active=true]:hover:text-primary-foreground\",\n \"data-[state=open]:hover:bg-muted\",\n \"group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2\",\n \"[&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n className\n )}\n {...props}\n />\n )\n return button\n})\nSidebarMenuButton.displayName = \"SidebarMenuButton\"\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<\"main\">>(\n ({ className, ...props }, ref) => (\n <main\n ref={ref}\n className={cn(\n \"relative flex min-h-svh flex-1 flex-col bg-background\",\n \"peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ms-2 md:peer-data-[variant=inset]:ms-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\n className\n )}\n {...props}\n />\n )\n)\nSidebarInset.displayName = \"SidebarInset\"\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"h-7 w-7\", className)}\n onClick={(event) => {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n )\n})\nSidebarTrigger.displayName = \"SidebarTrigger\"\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n SidebarTrigger,\n useSidebar,\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../lib/utils\"\n\nconst cardVariants = cva(\"rounded-lg text-card-foreground\", {\n variants: {\n variant: {\n default: \"border bg-card shadow-sm\",\n outline: \"border bg-transparent\",\n elevated: \"bg-card shadow-md hover:shadow-lg transition-shadow\",\n ghost: \"bg-transparent\",\n warning: \"border border-[var(--hc-color-warning)] bg-card shadow-sm\",\n info: \"border border-[var(--hc-color-primary)] bg-card shadow-sm\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n})\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardVariants> {\n /** Optional image/media slot rendered above the CardHeader with rounded top corners */\n image?: React.ReactNode\n}\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant, image, children, ...props }, ref) => (\n <div ref={ref} className={cn(cardVariants({ variant }), image && \"overflow-hidden\", className)} {...props}>\n {image && (\n <div className=\"rounded-t-lg overflow-hidden\">\n {image}\n </div>\n )}\n {children}\n </div>\n )\n)\nCard.displayName = \"Card\"\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex flex-col space-y-1.5 p-6\", className)} {...props} />\n )\n)\nCardHeader.displayName = \"CardHeader\"\n\nconst CardTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, children, ...props }, ref) => (\n <h3 ref={ref} className={cn(\"text-2xl font-semibold leading-none tracking-tight\", className)} {...props}>\n {children}\n </h3>\n )\n)\nCardTitle.displayName = \"CardTitle\"\n\nconst CardDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-sm text-muted-foreground\", className)} {...props} />\n )\n)\nCardDescription.displayName = \"CardDescription\"\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n )\n)\nCardContent.displayName = \"CardContent\"\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex items-center p-6 pt-0\", className)} {...props} />\n )\n)\nCardFooter.displayName = \"CardFooter\"\n\nexport interface CardKPIProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Icon element rendered inside the icon box */\n icon?: React.ReactNode\n /** Background color for the icon box. Defaults to var(--hc-banner-success-bg). */\n iconBg?: string\n /** KPI label text (e.g. \"Open Cases\") */\n label: string\n /** KPI number value */\n value: string | number\n /** Change / trend text (e.g. \"+6 from last week\") */\n changeText?: string\n /** Color for the change text (e.g. var(--hc-color-success), var(--hc-color-destructive)) */\n changeColor?: string\n}\n\nconst CardKPI = React.forwardRef<HTMLDivElement, CardKPIProps>(\n ({ icon, iconBg = \"var(--hc-banner-success-bg)\", label, value, changeText, changeColor, className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"grid min-h-[140px] grid-rows-[auto_1fr_auto] gap-4 rounded-lg border border-[var(--hc-color-border-subtle)] bg-background p-5\",\n className\n )}\n {...props}\n >\n {/* Top row: label + icon — icon stays put even when changeText is missing */}\n <div className=\"flex items-start justify-between gap-3\">\n <span className=\"text-sm leading-5 font-medium text-muted-foreground\">{label}</span>\n {icon && (\n <div\n className=\"flex size-10 shrink-0 items-center justify-center rounded-md [&>svg]:size-5\"\n style={{ backgroundColor: iconBg }}\n >\n {icon}\n </div>\n )}\n </div>\n {/* Middle: value (anchored to bottom via grid-row) */}\n <div className=\"flex items-end\">\n <span className=\"text-3xl leading-none font-semibold text-foreground tracking-tight\">{value}</span>\n </div>\n {/* Bottom: change text — always rendered (as spacer when missing) to keep layout stable */}\n <div className=\"min-h-[20px]\">\n {changeText && (\n <span\n className=\"text-sm leading-5 font-medium\"\n style={changeColor ? { color: changeColor } : undefined}\n >\n {changeText}\n </span>\n )}\n </div>\n </div>\n )\n)\nCardKPI.displayName = \"CardKPI\"\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent, CardKPI }\n","import * as React from \"react\"\nimport { GripVertical } from \"lucide-react\"\nimport * as ResizablePrimitive from \"react-resizable-panels\"\nimport { cn } from \"../lib/utils\"\n\ntype ResizablePanelGroupProps = React.ComponentProps<\n typeof ResizablePrimitive.PanelGroup\n> & {\n /**\n * When provided, panel sizes persist to localStorage under this key\n * (wires through to react-resizable-panels' `autoSaveId`).\n */\n storageKey?: string\n}\n\nconst ResizablePanelGroup = ({\n className,\n storageKey,\n autoSaveId,\n ...props\n}: ResizablePanelGroupProps) => (\n <ResizablePrimitive.PanelGroup\n autoSaveId={storageKey ?? autoSaveId}\n className={cn(\"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\", className)}\n {...props}\n />\n)\n\nconst ResizablePanel = ResizablePrimitive.Panel\n\nconst ResizableHandle = ({\n withHandle,\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & { withHandle?: boolean }) => (\n <ResizablePrimitive.PanelResizeHandle\n className={cn(\n \"relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90\",\n className\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border\">\n <GripVertical className=\"h-2.5 w-2.5\" />\n </div>\n )}\n </ResizablePrimitive.PanelResizeHandle>\n)\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle }\n","import * as React from \"react\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\n/* ---------------------------------- Types --------------------------------- */\n\nexport interface StepperProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Zero-indexed active step */\n activeStep: number\n /** When true, each step's circle+label is rendered inside a button. */\n clickable?: boolean\n /** Called when a clickable step is activated (click or Enter/Space). */\n onStepChange?: (index: number) => void\n}\n\nexport interface StepperItemProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Label displayed below the step circle */\n label: string\n}\n\n/* ----------------------------- Internal context ---------------------------- */\n\ninterface StepperContextValue {\n activeStep: number\n totalSteps: number\n clickable: boolean\n onStepChange?: (index: number) => void\n registerButton: (index: number, el: HTMLButtonElement | null) => void\n}\n\nconst StepperContext = React.createContext<StepperContextValue>({\n activeStep: 0,\n totalSteps: 0,\n clickable: false,\n registerButton: () => {},\n})\n\n/* --------------------------------- Stepper -------------------------------- */\n\nconst Stepper = React.forwardRef<HTMLDivElement, StepperProps>(\n (\n {\n activeStep,\n clickable = false,\n onStepChange,\n className,\n children,\n onKeyDown,\n ...props\n },\n ref\n ) => {\n const steps = React.Children.toArray(children)\n const buttonRefs = React.useRef<Array<HTMLButtonElement | null>>([])\n\n const registerButton = React.useCallback(\n (index: number, el: HTMLButtonElement | null) => {\n buttonRefs.current[index] = el\n },\n []\n )\n\n const focusButton = (index: number) => {\n const btn = buttonRefs.current[index]\n if (btn && !btn.disabled) btn.focus()\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(e)\n if (!clickable) return\n if (e.key !== \"ArrowLeft\" && e.key !== \"ArrowRight\") return\n\n const current = buttonRefs.current.findIndex(\n (b) => b === document.activeElement\n )\n if (current === -1) return\n\n const dir = e.key === \"ArrowRight\" ? 1 : -1\n const last = steps.length - 1\n let next = current + dir\n // Skip disabled (upcoming) buttons.\n while (next >= 0 && next <= last) {\n const btn = buttonRefs.current[next]\n if (btn && !btn.disabled) {\n e.preventDefault()\n focusButton(next)\n return\n }\n next += dir\n }\n }\n\n return (\n <StepperContext.Provider\n value={{\n activeStep,\n totalSteps: steps.length,\n clickable,\n onStepChange,\n registerButton,\n }}\n >\n {/* Arrow keys bubble up from the focusable step buttons; the container only\n delegates them (roving focus), it is not itself an interactive element. */}\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n ref={ref}\n className={cn(\"flex w-full items-start\", className)}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {steps.map((child, index) => (\n <React.Fragment key={index}>\n {/* Render the StepperItem with injected index */}\n {React.isValidElement<StepperItemProps & { _index?: number }>(child)\n ? React.cloneElement(child, { _index: index } as any)\n : child}\n\n {/* Connecting line between steps */}\n {index < steps.length - 1 && (\n <div className=\"flex flex-1 items-center pt-[16px] px-2\">\n <div\n className={cn(\n \"h-[2px] w-full transition-colors duration-300 ease-out\",\n index < activeStep\n ? \"bg-[var(--hc-primary-600)]\"\n : \"bg-[var(--hc-grey-200)]\"\n )}\n />\n </div>\n )}\n </React.Fragment>\n ))}\n </div>\n </StepperContext.Provider>\n )\n }\n)\nStepper.displayName = \"Stepper\"\n\n/* ------------------------------- StepperItem ------------------------------ */\n\nconst StepperItem = React.forwardRef<\n HTMLDivElement,\n StepperItemProps & { _index?: number }\n>(({ label, className, _index = 0, ...props }, ref) => {\n const { activeStep, clickable, onStepChange, registerButton } =\n React.useContext(StepperContext)\n\n const status: \"completed\" | \"active\" | \"upcoming\" =\n _index < activeStep\n ? \"completed\"\n : _index === activeStep\n ? \"active\"\n : \"upcoming\"\n\n const circle = (\n <div\n className={cn(\n \"flex h-[32px] w-[32px] shrink-0 items-center justify-center rounded-full text-[14px] transition-colors duration-300 ease-out\",\n status === \"upcoming\" &&\n \"border-[2px] border-[var(--hc-grey-200)] bg-white text-[var(--hc-grey-400)]\",\n status === \"active\" &&\n \"bg-[var(--hc-primary-600)] font-semibold text-white\",\n status === \"completed\" && \"bg-[var(--hc-primary-600)] text-white\"\n )}\n >\n {status === \"completed\" ? (\n <Check className=\"h-[14px] w-[14px]\" />\n ) : (\n _index + 1\n )}\n </div>\n )\n\n const labelEl = (\n <span className=\"mt-[8px] text-center text-[12px] text-foreground\">\n {label}\n </span>\n )\n\n if (clickable) {\n const disabled = _index > activeStep\n return (\n <div\n ref={ref}\n className={cn(\"flex flex-col items-center\", className)}\n {...props}\n >\n <button\n type=\"button\"\n ref={(el) => registerButton(_index, el)}\n disabled={disabled}\n tabIndex={status === \"active\" ? 0 : -1}\n onClick={() => !disabled && onStepChange?.(_index)}\n className={cn(\n \"flex flex-col items-center rounded-[4px] outline-none\",\n \"focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-600)] focus-visible:ring-offset-2\",\n disabled ? \"cursor-default\" : \"cursor-pointer\"\n )}\n aria-current={status === \"active\" ? \"step\" : undefined}\n >\n {circle}\n {labelEl}\n </button>\n </div>\n )\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"flex flex-col items-center\", className)}\n {...props}\n >\n {circle}\n {labelEl}\n </div>\n )\n})\nStepperItem.displayName = \"StepperItem\"\n\nexport { Stepper, StepperItem }\n","import * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table ref={ref} className={cn(\"w-full caption-bottom text-sm\", className)} {...props} />\n </div>\n )\n)\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b [&_tr]:border-[var(--hc-color-border-subtle)] [&_tr:hover]:bg-transparent\", className)} {...props} />\n )\n)\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn(\"[&_tr:last-child]:border-0\", className)} {...props} />\n )\n)\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => (\n <tfoot ref={ref} className={cn(\"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\", className)} {...props} />\n )\n)\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr ref={ref} className={cn(\"border-b border-[var(--hc-color-border-subtle)] transition-colors hover:bg-muted/60 data-[state=selected]:bg-muted\", className)} {...props} />\n )\n)\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<HTMLTableCellElement, React.ThHTMLAttributes<HTMLTableCellElement>>(\n ({ className, ...props }, ref) => (\n <th ref={ref} className={cn(\"h-12 px-4 text-xs font-semibold uppercase tracking-wider text-muted-foreground text-start align-middle [&:has([role=checkbox])]:pe-0\", className)} {...props} />\n )\n)\nTableHead.displayName = \"TableHead\"\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, React.TdHTMLAttributes<HTMLTableCellElement>>(\n ({ className, ...props }, ref) => (\n <td ref={ref} className={cn(\"px-4 py-3 text-sm text-foreground align-middle [&:has([role=checkbox])]:pe-0\", className)} {...props} />\n )\n)\nTableCell.displayName = \"TableCell\"\n\nconst TableCaption = React.forwardRef<HTMLTableCaptionElement, React.HTMLAttributes<HTMLTableCaptionElement>>(\n ({ className, ...props }, ref) => (\n <caption ref={ref} className={cn(\"mt-4 text-sm text-muted-foreground\", className)} {...props} />\n )\n)\nTableCaption.displayName = \"TableCaption\"\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption }\n","import * as React from \"react\"\nimport {\n type ColumnDef,\n type ColumnFiltersState,\n type SortingState,\n type VisibilityState,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\"\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from \"./table\"\nimport { Button } from \"./button\"\nimport { Input } from \"./input\"\nimport { Skeleton } from \"./skeleton\"\n\ninterface DataTableProps<TData, TValue> {\n columns: ColumnDef<TData, TValue>[]\n data: TData[]\n searchKey?: string\n searchPlaceholder?: string\n loading?: boolean\n emptyState?: React.ReactNode\n pageSize?: number\n}\n\nfunction DataTable<TData, TValue>({\n columns,\n data,\n searchKey,\n searchPlaceholder = \"Filter...\",\n loading = false,\n emptyState,\n pageSize,\n}: DataTableProps<TData, TValue>) {\n const [sorting, setSorting] = React.useState<SortingState>([])\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] = React.useState<VisibilityState>({})\n const [rowSelection, setRowSelection] = React.useState({})\n\n const table = useReactTable({\n data,\n columns,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n state: { sorting, columnFilters, columnVisibility, rowSelection },\n ...(pageSize ? { initialState: { pagination: { pageSize, pageIndex: 0 } } } : {}),\n })\n\n const skeletonRowCount = pageSize ?? 5\n\n return (\n <div className=\"w-full\">\n {searchKey && (\n <div className=\"flex items-center py-4\">\n <Input\n placeholder={searchPlaceholder}\n value={(table.getColumn(searchKey)?.getFilterValue() as string) ?? \"\"}\n onChange={(event) => table.getColumn(searchKey)?.setFilterValue(event.target.value)}\n className=\"max-w-sm\"\n />\n </div>\n )}\n <div className=\"rounded-md border\">\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead key={header.id}>\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {loading ? (\n Array.from({ length: skeletonRowCount }).map((_, rowIdx) => (\n <TableRow key={`skeleton-${rowIdx}`}>\n {columns.map((_col, colIdx) => (\n <TableCell key={`skeleton-cell-${rowIdx}-${colIdx}`}>\n <Skeleton className=\"h-4 w-full\" />\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow key={row.id} data-state={row.getIsSelected() && \"selected\"}>\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>{flexRender(cell.column.columnDef.cell, cell.getContext())}</TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={columns.length} className=\"text-center\">\n {emptyState ?? (\n <div className=\"flex flex-col items-center justify-center gap-1 py-10 text-muted-foreground\">\n <span className=\"text-sm font-medium\">No results found.</span>\n <span className=\"text-xs\">Try adjusting your filters or search.</span>\n </div>\n )}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n <div className=\"flex items-center justify-end space-x-2 py-4\">\n <div className=\"flex-1 text-sm text-muted-foreground\">\n {table.getFilteredSelectedRowModel().rows.length} of{\" \"}\n {table.getFilteredRowModel().rows.length} row(s) selected.\n </div>\n <div className=\"space-x-2\">\n <Button variant=\"outline\" size=\"sm\" onClick={() => table.previousPage()} disabled={!table.getCanPreviousPage()}>\n Previous\n </Button>\n <Button variant=\"outline\" size=\"sm\" onClick={() => table.nextPage()} disabled={!table.getCanNextPage()}>\n Next\n </Button>\n </div>\n </div>\n </div>\n )\n}\n\nexport { DataTable, type DataTableProps }\n","import * as React from \"react\"\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\nimport { buttonVariants, type ButtonProps } from \"./button\"\n\n/* ----------------------------------- Nav ---------------------------------- */\n\nconst Pagination = ({ className, ...props }: React.ComponentProps<\"nav\">) => (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n)\nPagination.displayName = \"Pagination\"\n\n/* --------------------------------- Content -------------------------------- */\n\nconst PaginationContent = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n className={cn(\"flex flex-row items-center gap-1\", className)}\n {...props}\n />\n))\nPaginationContent.displayName = \"PaginationContent\"\n\n/* ---------------------------------- Item ---------------------------------- */\n\nconst PaginationItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ className, ...props }, ref) => (\n <li ref={ref} className={cn(\"\", className)} {...props} />\n))\nPaginationItem.displayName = \"PaginationItem\"\n\n/* ---------------------------------- Link ---------------------------------- */\n\ntype PaginationLinkProps = {\n isActive?: boolean\n size?: ButtonProps[\"size\"]\n} & React.ComponentProps<\"a\">\n\nconst PaginationLink = ({\n className,\n isActive,\n size = \"icon\",\n children,\n ...props\n}: PaginationLinkProps) => (\n <a\n aria-current={isActive ? \"page\" : undefined}\n className={cn(\n buttonVariants({\n variant: isActive ? \"default\" : \"ghost\",\n size,\n }),\n className\n )}\n {...props}\n >\n {children}\n </a>\n)\nPaginationLink.displayName = \"PaginationLink\"\n\n/* -------------------------------- Previous -------------------------------- */\n\nconst PaginationPrevious = ({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"gap-1 px-2.5\", className)}\n {...props}\n >\n <ChevronLeft className=\"size-4\" />\n <span className=\"hidden sm:block\">Previous</span>\n </PaginationLink>\n)\nPaginationPrevious.displayName = \"PaginationPrevious\"\n\n/* ---------------------------------- Next ---------------------------------- */\n\nconst PaginationNext = ({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"gap-1 px-2.5\", className)}\n {...props}\n >\n <span className=\"hidden sm:block\">Next</span>\n <ChevronRight className=\"size-4\" />\n </PaginationLink>\n)\nPaginationNext.displayName = \"PaginationNext\"\n\n/* -------------------------------- Ellipsis -------------------------------- */\n\nconst PaginationEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n aria-hidden\n className={cn(\"flex size-10 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n)\nPaginationEllipsis.displayName = \"PaginationEllipsis\"\n\n/* ---------------------------------- Info ---------------------------------- */\n\ninterface PaginationInfoProps extends React.ComponentProps<\"div\"> {\n currentPage: number\n totalPages: number\n formatPage?: (page: number) => string\n}\n\nconst PaginationInfo = ({\n currentPage,\n totalPages,\n formatPage = (p) => String(p).padStart(2, \"0\"),\n className,\n ...props\n}: PaginationInfoProps) => (\n <div\n className={cn(\"inline-flex items-center gap-1.5 text-sm\", className)}\n {...props}\n >\n <span className=\"text-muted-foreground\">Page</span>\n <span className=\"font-medium text-foreground\">{formatPage(currentPage)}</span>\n <span className=\"text-muted-foreground\">of</span>\n <span className=\"font-medium text-foreground\">{formatPage(totalPages)}</span>\n </div>\n)\nPaginationInfo.displayName = \"PaginationInfo\"\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n PaginationInfo,\n type PaginationLinkProps,\n type PaginationInfoProps,\n}\n","import * as React from \"react\"\nimport { DayPicker } from \"react-day-picker\"\nimport { ChevronLeft, ChevronRight } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>\n\nfunction Calendar({ className, classNames, showOutsideDays = true, captionLayout = \"dropdown\", ...props }: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\"w-[260px] rounded-lg p-3\", className)}\n classNames={{\n months: \"flex flex-col\",\n month: \"space-y-3\",\n month_caption: \"relative flex h-8 items-center justify-center\",\n caption_label: \"text-sm font-medium hidden\",\n nav: \"flex items-center\",\n button_previous: cn(\n \"absolute start-0 inline-flex size-7 items-center justify-center rounded-md bg-transparent p-0 text-muted-foreground hover:bg-[var(--hc-color-border-subtle)] hover:text-foreground transition-colors cursor-pointer border-none\"\n ),\n button_next: cn(\n \"absolute end-0 inline-flex size-7 items-center justify-center rounded-md bg-transparent p-0 text-muted-foreground hover:bg-[var(--hc-color-border-subtle)] hover:text-foreground transition-colors cursor-pointer border-none\"\n ),\n month_grid: \"w-full border-collapse\",\n weekdays: \"flex w-full\",\n weekday:\n \"flex-1 h-8 flex items-center justify-center text-[11px] font-medium text-muted-foreground uppercase tracking-wider\",\n week: \"flex w-full mt-1\",\n day: \"flex-1 h-8 p-0 relative focus-within:z-20 flex items-center justify-center text-sm\",\n day_button: cn(\n \"inline-flex size-8 items-center justify-center rounded-md bg-transparent text-sm font-normal cursor-pointer border-none hover:bg-[var(--hc-color-border-subtle)] transition-colors\"\n ),\n range_end: \"day-range-end\",\n selected:\n \"[&>button]:bg-[var(--hc-primary-600)] [&>button]:text-white [&>button]:hover:bg-[var(--hc-primary-600)] [&>button]:hover:text-white [&>button]:font-medium\",\n today: \"[&>button]:font-semibold [&>button]:text-[var(--hc-primary-600)]\",\n outside:\n \"day-outside [&>button]:bg-transparent [&>button]:text-[var(--hc-grey-200)]\",\n disabled: \"[&>button]:text-[var(--hc-grey-200)] [&>button]:opacity-50 [&>button]:cursor-default\",\n range_middle:\n \"[&>button]:bg-[var(--hc-primary-100)] [&>button]:text-foreground [&>button]:rounded-none\",\n range_start: \"[&>button]:rounded-e-none\",\n dropdowns: \"flex items-center gap-1.5 justify-center [&>select]:flex-1\",\n dropdown:\n \"h-7 w-[88px] rounded-md border border-[var(--hc-color-border-subtle)] bg-background px-2 text-xs font-medium text-foreground cursor-pointer outline-none accent-[var(--hc-primary-600)] focus:border-[var(--hc-primary-500)] focus:ring-[2px] focus:ring-[var(--hc-primary-500)]/20 [&>option:checked]:bg-[var(--hc-primary-600)] [&>option:checked]:text-white [&>option]:py-1\",\n hidden: \"invisible\",\n ...classNames,\n }}\n captionLayout={captionLayout}\n components={{\n Chevron: ({ orientation }) => {\n const Icon = orientation === \"left\" ? ChevronLeft : ChevronRight\n return <Icon className=\"size-4\" />\n },\n }}\n {...props}\n />\n )\n}\nCalendar.displayName = \"Calendar\"\n\nexport { Calendar }\n","import * as React from \"react\"\nimport { CalendarIcon } from \"lucide-react\"\nimport type { DateRange, Matcher } from \"react-day-picker\"\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\nimport { Calendar } from \"./calendar\"\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover\"\n\nexport type DatePickerPreset =\n | { label: string; value: Date }\n | { label: string; value: { from: Date; to: Date } }\n\nexport interface DatePickerProps {\n /** Selected value. For `mode=\"single\"` this is a Date, for `mode=\"range\"` this is a range object. */\n date?: Date | DateRange\n /** Called with the new selection. */\n onDateChange?: (date: Date | DateRange | undefined) => void\n /** Selection mode. Defaults to \"single\". */\n mode?: \"single\" | \"range\"\n /** Placeholder for the trigger when no date is picked. */\n placeholder?: string\n /** Classname applied to the trigger button. */\n className?: string\n /** Optional date format string — reserved for future use. */\n formatStr?: string\n /** Optional preset list rendered in a sidebar to the left of the calendar. */\n presets?: DatePickerPreset[]\n /** Passed through to the underlying Calendar. */\n disabled?: Matcher | Matcher[]\n}\n\nfunction formatDate(d: Date): string {\n return d.toLocaleDateString()\n}\n\nfunction DatePicker({\n date,\n onDateChange,\n mode = \"single\",\n placeholder = \"Pick a date\",\n className,\n presets,\n disabled,\n}: DatePickerProps) {\n const label = React.useMemo(() => {\n if (!date) return <span>{placeholder}</span>\n if (mode === \"range\") {\n const range = date as DateRange\n if (range.from && range.to) {\n return `${formatDate(range.from)} – ${formatDate(range.to)}`\n }\n if (range.from) return formatDate(range.from)\n return <span>{placeholder}</span>\n }\n return (date as Date).toLocaleDateString()\n }, [date, mode, placeholder])\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n className={cn(\n \"w-[280px] justify-start text-left font-normal\",\n !date && \"text-muted-foreground\",\n className\n )}\n >\n <CalendarIcon className=\"me-2 h-4 w-4\" />\n {label}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <div className=\"flex\">\n {presets && presets.length > 0 && (\n <div className=\"flex flex-col gap-1 border-e p-2 min-w-[140px]\">\n {presets.map((preset) => (\n <Button\n key={preset.label}\n variant=\"ghost\"\n size=\"sm\"\n className=\"justify-start font-normal\"\n onClick={() => onDateChange?.(preset.value as Date | DateRange)}\n >\n {preset.label}\n </Button>\n ))}\n </div>\n )}\n <div>\n {mode === \"range\" ? (\n <Calendar\n mode=\"range\"\n selected={date as DateRange | undefined}\n onSelect={(value) => onDateChange?.(value)}\n disabled={disabled}\n // Focus moves into the calendar the user just opened (keyboard navigation).\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus\n />\n ) : (\n <Calendar\n mode=\"single\"\n selected={date as Date | undefined}\n onSelect={(value) => onDateChange?.(value)}\n disabled={disabled}\n // Focus moves into the calendar the user just opened (keyboard navigation).\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus\n />\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport { DatePicker }\n","import * as React from \"react\"\nimport { type DialogProps } from \"@radix-ui/react-dialog\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { Search } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\nimport { Dialog, DialogContent } from \"./dialog\"\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\ninterface CommandDialogProps extends DialogProps {}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"me-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n))\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n))\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />\n))\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator ref={ref} className={cn(\"-mx-1 h-px bg-border\", className)} {...props} />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-muted data-[selected=true]:text-foreground data-[disabled=true]:opacity-50\",\n className\n )}\n {...props}\n />\n))\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => (\n <span className={cn(\"ms-auto text-xs tracking-widest text-muted-foreground\", className)} {...props} />\n)\nCommandShortcut.displayName = \"CommandShortcut\"\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n","import * as React from \"react\"\nimport useEmblaCarousel, { type UseEmblaCarouselType } from \"embla-carousel-react\"\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\nimport { Button } from \"./button\"\n\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: \"horizontal\" | \"vertical\"\n setApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0]\n api: ReturnType<typeof useEmblaCarousel>[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null)\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n if (!context) throw new Error(\"useCarousel must be used within a <Carousel />\")\n return context\n}\n\nconst Carousel = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement> & CarouselProps>(\n ({ orientation = \"horizontal\", opts, setApi, plugins, className, children, ...props }, ref) => {\n const [carouselRef, api] = useEmblaCarousel({ ...opts, axis: orientation === \"horizontal\" ? \"x\" : \"y\" }, plugins)\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) return\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => api?.scrollPrev(), [api])\n const scrollNext = React.useCallback(() => api?.scrollNext(), [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") { event.preventDefault(); scrollPrev() }\n else if (event.key === \"ArrowRight\") { event.preventDefault(); scrollNext() }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) return\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) return\n onSelect(api)\n api.on(\"reInit\", onSelect)\n api.on(\"select\", onSelect)\n return () => { api?.off(\"select\", onSelect) }\n }, [api, onSelect])\n\n return (\n <CarouselContext.Provider value={{ carouselRef, api, opts, orientation: orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"), scrollPrev, scrollNext, canScrollPrev, canScrollNext }}>\n <div ref={ref} onKeyDownCapture={handleKeyDown} className={cn(\"relative\", className)} role=\"region\" aria-roledescription=\"carousel\" {...props}>\n {children}\n </div>\n </CarouselContext.Provider>\n )\n }\n)\nCarousel.displayName = \"Carousel\"\n\nconst CarouselContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel()\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div ref={ref} className={cn(\"flex\", orientation === \"horizontal\" ? \"-ms-4\" : \"-mt-4 flex-col\", className)} {...props} />\n </div>\n )\n }\n)\nCarouselContent.displayName = \"CarouselContent\"\n\nconst CarouselItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { orientation } = useCarousel()\n return (\n <div ref={ref} role=\"group\" aria-roledescription=\"slide\" className={cn(\"min-w-0 shrink-0 grow-0 basis-full\", orientation === \"horizontal\" ? \"ps-4\" : \"pt-4\", className)} {...props} />\n )\n }\n)\nCarouselItem.displayName = \"CarouselItem\"\n\nconst CarouselPrevious = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\n ({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n return (\n <Button ref={ref} variant={variant} size={size} className={cn(\"absolute h-8 w-8 rounded-full\", orientation === \"horizontal\" ? \"-start-12 top-1/2 -translate-y-1/2\" : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\", className)} disabled={!canScrollPrev} onClick={scrollPrev} {...props}>\n <ArrowLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n )\n }\n)\nCarouselPrevious.displayName = \"CarouselPrevious\"\n\nconst CarouselNext = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\n ({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n return (\n <Button ref={ref} variant={variant} size={size} className={cn(\"absolute h-8 w-8 rounded-full\", orientation === \"horizontal\" ? \"-end-12 top-1/2 -translate-y-1/2\" : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\", className)} disabled={!canScrollNext} onClick={scrollNext} {...props}>\n <ArrowRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n )\n }\n)\nCarouselNext.displayName = \"CarouselNext\"\n\nexport { type CarouselApi, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext }\n","import * as React from \"react\"\nimport * as RechartsPrimitive from \"recharts\"\nimport { cn } from \"../lib/utils\"\n\nconst THEMES = { light: \"\", dark: \".dark\" } as const\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode\n icon?: React.ComponentType\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n )\n}\n\ntype ChartContextProps = {\n config: ChartConfig\n}\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null)\n\nfunction useChart() {\n const context = React.useContext(ChartContext)\n if (!context) throw new Error(\"useChart must be used within a <ChartContainer />\")\n return context\n}\n\nconst ChartContainer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n config: ChartConfig\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>[\"children\"]\n }\n>(({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId()\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n className={cn(\n \"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none\",\n className\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>\n {children}\n </RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n )\n})\nChartContainer.displayName = \"ChartContainer\"\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(([_, cfg]) => cfg.theme || cfg.color)\n if (!colorConfig.length) return null\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color = itemConfig.theme?.[theme as keyof typeof THEMES] || itemConfig.color\n return color ? ` --color-${key}: ${color};` : null\n })\n .join(\"\\n\")}\n}`\n )\n .join(\"\\n\"),\n }}\n />\n )\n}\n\nconst ChartTooltip = RechartsPrimitive.Tooltip\n\nconst ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<\"div\"> & {\n hideLabel?: boolean\n hideIndicator?: boolean\n indicator?: \"line\" | \"dot\" | \"dashed\"\n nameKey?: string\n labelKey?: string\n }\n>(\n (\n { active, payload, className, indicator = \"dot\", hideLabel = false, hideIndicator = false, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey },\n ref\n ) => {\n const { config } = useChart()\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) return null\n const item = payload[0]\n const key = `${labelKey || item?.dataKey || item?.name || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const value = !labelKey && typeof label === \"string\" ? (itemConfig?.label || label) : label\n if (labelFormatter) {\n return <div className={cn(\"font-medium\", labelClassName)}>{labelFormatter(value, payload)}</div>\n }\n if (!value) return null\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey])\n\n if (!active || !payload?.length) return null\n\n return (\n <div ref={ref} className={cn(\"grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl\", className)}>\n {tooltipLabel}\n <div className=\"grid gap-1.5\">\n {payload.map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const indicatorColor = color || (item.payload as Record<string, string>)?.fill || item.color\n\n return (\n <div key={item.dataKey} className={cn(\"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground\", indicator === \"dot\" && \"items-center\")}>\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload as Record<string, unknown>[])\n ) : (\n <>\n {!hideIndicator && (\n <div\n className={cn(\"shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]\", {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\": indicator === \"dashed\",\n \"my-0.5\": indicator === \"dashed\" || indicator === \"line\",\n })}\n style={{ \"--color-bg\": indicatorColor, \"--color-border\": indicatorColor } as React.CSSProperties}\n />\n )}\n <div className={cn(\"flex flex-1 justify-between leading-none\", hideIndicator ? \"gap-2\" : \"gap-2\")}>\n <div className=\"grid gap-1.5\">\n <span className=\"text-muted-foreground\">{itemConfig?.label || item.name}</span>\n </div>\n {item.value !== undefined && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n }\n)\nChartTooltipContent.displayName = \"ChartTooltipContent\"\n\nconst ChartLegend = RechartsPrimitive.Legend\n\nconst ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> &\n Pick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & { hideIcon?: boolean; nameKey?: string }\n>(({ className, hideIcon = false, payload, verticalAlign = \"bottom\", nameKey }, ref) => {\n const { config } = useChart()\n if (!payload?.length) return null\n\n return (\n <div ref={ref} className={cn(\"flex items-center justify-center gap-4\", verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\", className)}>\n {payload.map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n return (\n <div key={item.value} className={cn(\"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground\")}>\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div className=\"h-2 w-2 shrink-0 rounded-[2px]\" style={{ backgroundColor: item.color }} />\n )}\n {itemConfig?.label}\n </div>\n )\n })}\n </div>\n )\n})\nChartLegendContent.displayName = \"ChartLegendContent\"\n\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n if (typeof payload !== \"object\" || payload === null) return undefined\n const payloadPayload = \"payload\" in payload && typeof payload.payload === \"object\" && payload.payload !== null ? payload.payload : undefined\n let configLabelKey: string = key\n if (key in config) {\n configLabelKey = key\n } else if (payloadPayload && key in (payloadPayload as Record<string, unknown>)) {\n configLabelKey = (payloadPayload as Record<string, string>)[key]\n }\n return configLabelKey in config ? config[configLabelKey] : config[key]\n}\n\nexport { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, ChartStyle }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Search, Bell } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nexport interface DashboardHeaderProps extends React.HTMLAttributes<HTMLElement> {\n title?: string\n onSearch?: (query: string) => void\n notificationCount?: number\n user?: {\n name: string\n role: string\n avatar?: string\n initials?: string\n }\n}\n\nconst DashboardHeader = React.forwardRef<HTMLElement, DashboardHeaderProps>(\n ({ title, onSearch, notificationCount, user, className, ...props }, ref) => {\n const [searchQuery, setSearchQuery] = React.useState(\"\")\n\n return (\n <header\n ref={ref}\n className={cn(\n \"flex h-16 w-full items-center justify-between gap-4 border-b border-[var(--hc-color-border-subtle)] bg-background px-6\",\n className\n )}\n {...props}\n >\n {/* Left: Page title */}\n {title && (\n <h1 className=\"truncate text-base font-semibold text-foreground\">\n {title}\n </h1>\n )}\n\n {/* Right side */}\n <div className=\"flex items-center gap-3\">\n {/* Search */}\n {onSearch && (\n <div className=\"flex h-9 w-[260px] items-center gap-2 rounded-md border border-input bg-background px-3 transition-[border-color,box-shadow] duration-150 focus-within:border-[var(--hc-primary-500)] focus-within:ring-[3px] focus-within:ring-[color-mix(in_srgb,var(--hc-primary-500)_22%,transparent)]\">\n <Search className=\"size-4 shrink-0 text-muted-foreground\" />\n <input\n type=\"text\"\n placeholder=\"Search...\"\n value={searchQuery}\n onChange={(e) => {\n setSearchQuery(e.target.value)\n onSearch(e.target.value)\n }}\n className=\"w-full bg-transparent text-sm text-foreground placeholder:text-muted-foreground outline-none\"\n aria-label=\"Search\"\n />\n </div>\n )}\n\n {/* Notification bell */}\n <div className=\"relative\">\n <button\n type=\"button\"\n aria-label={\n notificationCount && notificationCount > 0\n ? `Notifications, ${notificationCount} unread`\n : \"Notifications\"\n }\n className=\"inline-flex size-9 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n >\n <Bell className=\"size-[18px]\" />\n </button>\n {notificationCount && notificationCount > 0 && (\n <span\n aria-label={`${notificationCount} notifications`}\n className=\"absolute -top-0.5 -end-0.5 flex min-w-[18px] items-center justify-center rounded-full bg-[var(--hc-color-destructive)] px-1 text-[10px] font-semibold leading-none text-white h-[18px] ring-2 ring-background\"\n >\n {notificationCount > 9 ? \"9+\" : notificationCount}\n </span>\n )}\n </div>\n\n {/* User profile */}\n {user && (\n <div className=\"flex items-center gap-3 ps-3 border-s border-[var(--hc-color-border-subtle)]\">\n <div className=\"text-end leading-tight\">\n <p className=\"text-sm font-semibold text-foreground\">{user.name}</p>\n <p className=\"text-xs text-muted-foreground\">{user.role}</p>\n </div>\n <div className=\"flex size-9 shrink-0 items-center justify-center rounded-full bg-[var(--hc-primary-600)] text-sm font-semibold text-white\">\n {user.initials ||\n user.name\n .split(\" \")\n .map((n) => n[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2)}\n </div>\n </div>\n )}\n </div>\n </header>\n )\n }\n)\nDashboardHeader.displayName = \"DashboardHeader\"\n\nexport { DashboardHeader }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Search, Bell, Moon } from \"lucide-react\"\nimport { cn } from \"../lib/utils\"\n\nexport interface AppHeaderProps extends React.HTMLAttributes<HTMLElement> {\n onSearch?: (query: string) => void\n searchPlaceholder?: string\n showThemeToggle?: boolean\n onThemeToggle?: () => void\n hasNotifications?: boolean\n onNotificationClick?: () => void\n user?: {\n name: string\n email: string\n avatar?: string\n initials?: string\n }\n}\n\nconst AppHeader = React.forwardRef<HTMLElement, AppHeaderProps>(\n (\n {\n onSearch,\n searchPlaceholder = \"Search cases, employees...\",\n showThemeToggle = true,\n onThemeToggle,\n hasNotifications = false,\n onNotificationClick,\n user,\n className,\n ...props\n },\n ref\n ) => {\n const [searchQuery, setSearchQuery] = React.useState(\"\")\n\n return (\n <header\n ref={ref}\n className={cn(\n \"flex h-16 w-full items-center justify-between gap-4 border-b border-[var(--hc-color-border-subtle)] bg-background px-6\",\n className\n )}\n {...props}\n >\n {/* Left: Search */}\n {onSearch && (\n <div className=\"flex h-9 w-[300px] items-center gap-2 rounded-md border border-input bg-background px-3 transition-[border-color,box-shadow] duration-150 focus-within:border-[var(--hc-primary-500)] focus-within:ring-[3px] focus-within:ring-[color-mix(in_srgb,var(--hc-primary-500)_22%,transparent)]\">\n <Search className=\"size-4 shrink-0 text-muted-foreground\" />\n <input\n type=\"text\"\n placeholder={searchPlaceholder}\n value={searchQuery}\n onChange={(e) => {\n setSearchQuery(e.target.value)\n onSearch(e.target.value)\n }}\n className=\"w-full bg-transparent text-sm text-foreground placeholder:text-muted-foreground outline-none\"\n aria-label={searchPlaceholder}\n />\n </div>\n )}\n\n {/* Right side */}\n <div className=\"flex items-center gap-2\">\n {/* Theme toggle */}\n {showThemeToggle && (\n <button\n type=\"button\"\n onClick={onThemeToggle}\n aria-label=\"Toggle theme\"\n className=\"inline-flex size-9 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n >\n <Moon className=\"size-[18px]\" />\n </button>\n )}\n\n {/* Notification bell */}\n <button\n type=\"button\"\n onClick={onNotificationClick}\n aria-label={hasNotifications ? \"Notifications (unread)\" : \"Notifications\"}\n className=\"relative inline-flex size-9 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--hc-primary-500)] focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n >\n <Bell className=\"size-[18px]\" />\n {hasNotifications && (\n <span\n aria-hidden=\"true\"\n className=\"absolute top-[8px] end-[8px] size-2 rounded-full bg-[var(--hc-color-destructive)] ring-2 ring-background\"\n />\n )}\n </button>\n\n {/* User profile */}\n {user && (\n <div className=\"ms-1 flex items-center gap-3 ps-3 border-s border-[var(--hc-color-border-subtle)]\">\n <div className=\"text-end leading-tight\">\n <p className=\"text-sm font-semibold text-foreground\">\n {user.name}\n </p>\n <p className=\"text-xs text-muted-foreground truncate max-w-[160px]\">\n {user.email}\n </p>\n </div>\n <div className=\"flex size-9 shrink-0 items-center justify-center rounded-full bg-[var(--hc-primary-600)] text-sm font-semibold text-white\">\n {user.initials ||\n user.name\n .split(\" \")\n .map((n) => n[0])\n .join(\"\")\n .toUpperCase()\n .slice(0, 2)}\n </div>\n </div>\n )}\n </div>\n </header>\n )\n }\n)\nAppHeader.displayName = \"AppHeader\"\n\nexport { AppHeader }\n","import * as React from \"react\";\n\nexport interface BellIconProps extends React.SVGProps<SVGSVGElement> {\n size?: number;\n}\n\nfunction BellIcon({\n size = 20,\n width,\n height,\n fill = \"none\",\n ...props\n}: BellIconProps) {\n return (\n <svg\n viewBox=\"0 0 20 20\"\n width={width ?? size}\n height={height ?? size}\n fill={fill}\n aria-hidden=\"true\"\n {...props}\n >\n <path\n d=\"M10 2.75a3.5 3.5 0 0 0-3.5 3.5v1.137c0 .647-.215 1.276-.611 1.788l-.82 1.062A2.25 2.25 0 0 0 6.85 13.75h6.3a2.25 2.25 0 0 0 1.781-3.513l-.82-1.062A2.935 2.935 0 0 1 13.5 7.387V6.25A3.5 3.5 0 0 0 10 2.75Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M8.25 15.25a1.75 1.75 0 0 0 3.5 0\"\n stroke=\"currentColor\"\n strokeWidth=\"1.4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n );\n}\n\nexport { BellIcon };\n","import { LibraryIconProps } from \"./library-icon-props\";\n\nfunction IconInfoLineIcon({ size = 16, width, height, fill, title, ...props }: LibraryIconProps) {\n return (\n <svg viewBox=\"0 0 16 16\" width={width ?? size} height={height ?? size} fill={fill ?? \"none\"} aria-hidden={title ? undefined : true} role={title ? \"img\" : \"presentation\"} {...props}>\n <path d=\"M7.99992 5.33333H8.00525M7.99992 10.6667V7.33333M14.6666 8C14.6666 11.682 11.6819 14.6667 7.99992 14.6667C4.31792 14.6667 1.33325 11.682 1.33325 8C1.33325 4.318 4.31792 1.33333 7.99992 1.33333C11.6819 1.33333 14.6666 4.318 14.6666 8Z\" stroke=\"black\" strokeMiterlimit=\"10\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n {title ? <title>{title}</title> : null}\n </svg>\n );\n}\n\nexport { IconInfoLineIcon };\n","import { useTheme } from \"next-themes\"\nimport { Toaster as Sonner, toast } from \"sonner\"\nimport { cn } from \"../lib/utils\"\n\ntype ToasterProps = React.ComponentProps<typeof Sonner>\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = \"system\" } = useTheme()\n\n return (\n <Sonner\n theme={theme as ToasterProps[\"theme\"]}\n className=\"toaster group\"\n toastOptions={{\n classNames: {\n toast:\n \"group toast group-[.toaster]:!bg-white group-[.toaster]:!rounded-[6px] group-[.toaster]:!shadow-lg group-[.toaster]:!border group-[.toaster]:!border-[rgba(0,0,0,0.08)] group-[.toaster]:!p-4 group-[.toaster]:!font-[Inter]\",\n title:\n \"group-[.toast]:!text-sm group-[.toast]:!leading-[24px] group-[.toast]:!font-medium group-[.toast]:!text-[var(--hc-grey-600)]\",\n description:\n \"group-[.toast]:!text-xs group-[.toast]:!leading-[18px] group-[.toast]:!text-[var(--hc-grey-600)] group-[.toast]:!font-normal\",\n actionButton:\n \"group-[.toast]:!text-sm group-[.toast]:!leading-[18px] group-[.toast]:!font-medium group-[.toast]:!text-[var(--hc-primary-600)] group-[.toast]:!bg-transparent group-[.toast]:!p-0\",\n cancelButton:\n \"group-[.toast]:!bg-transparent group-[.toast]:!text-foreground group-[.toast]:!text-sm group-[.toast]:!font-medium group-[.toast]:!p-0\",\n closeButton:\n \"group-[.toast]:!text-[var(--hc-grey-300)]\",\n },\n }}\n {...props}\n />\n )\n}\n\nexport { Toaster, toast }\n","import * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nexport type TypographyWeight = \"extrabold\" | \"bold\" | \"semibold\" | \"medium\" | \"regular\" | \"light\"\n\nexport type TypographyColor =\n | \"default\"\n | \"secondary\"\n | \"foreground\"\n | \"muted\"\n | \"success\"\n | \"warning\"\n | \"destructive\"\n | \"inherit\"\n\nconst weightMap: Record<TypographyWeight, string> = {\n extrabold: \"font-extrabold\",\n bold: \"font-bold\",\n semibold: \"font-semibold\",\n medium: \"font-medium\",\n regular: \"font-normal\",\n light: \"font-light\",\n}\n\nconst colorMap: Record<Exclude<TypographyColor, \"default\">, string> = {\n secondary: \"text-muted-foreground\",\n foreground: \"text-[var(--hc-color-foreground)]\",\n muted: \"text-muted-foreground\",\n success: \"text-[var(--hc-color-success)]\",\n warning: \"text-[var(--hc-color-warning)]\",\n destructive: \"text-[var(--hc-color-destructive)]\",\n inherit: \"text-inherit\",\n}\n\ninterface TypographyHeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {\n weight?: TypographyWeight\n color?: TypographyColor\n}\n\ninterface TypographyParagraphProps extends React.HTMLAttributes<HTMLParagraphElement> {\n weight?: TypographyWeight\n color?: TypographyColor\n}\n\nfunction resolveColor(color: TypographyColor | undefined, defaultColorClass: string): string {\n if (!color || color === \"default\") return defaultColorClass\n return colorMap[color]\n}\n\nconst H1 = React.forwardRef<HTMLHeadingElement, TypographyHeadingProps>(\n ({ className, weight = \"semibold\", color, children, ...props }, ref) => (\n <h1 ref={ref} className={cn(\"scroll-m-20 text-3xl tracking-tight\", resolveColor(color, \"text-foreground\"), weightMap[weight], className)} {...props}>\n {children}\n </h1>\n )\n)\nH1.displayName = \"H1\"\n\nconst H2 = React.forwardRef<HTMLHeadingElement, TypographyHeadingProps>(\n ({ className, weight = \"semibold\", color, children, ...props }, ref) => (\n <h2 ref={ref} className={cn(\"scroll-m-20 text-2xl tracking-tight\", resolveColor(color, \"text-foreground\"), weightMap[weight], className)} {...props}>\n {children}\n </h2>\n )\n)\nH2.displayName = \"H2\"\n\nconst H3 = React.forwardRef<HTMLHeadingElement, TypographyHeadingProps>(\n ({ className, weight = \"semibold\", color, children, ...props }, ref) => (\n <h3 ref={ref} className={cn(\"scroll-m-20 text-xl tracking-tight\", resolveColor(color, \"text-foreground\"), weightMap[weight], className)} {...props}>\n {children}\n </h3>\n )\n)\nH3.displayName = \"H3\"\n\nconst H4 = React.forwardRef<HTMLHeadingElement, TypographyHeadingProps>(\n ({ className, weight = \"semibold\", color, children, ...props }, ref) => (\n <h4 ref={ref} className={cn(\"scroll-m-20 text-lg tracking-tight\", resolveColor(color, \"text-foreground\"), weightMap[weight], className)} {...props}>\n {children}\n </h4>\n )\n)\nH4.displayName = \"H4\"\n\nconst Body = React.forwardRef<HTMLParagraphElement, TypographyParagraphProps>(\n ({ className, weight = \"regular\", color, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-base leading-7\", resolveColor(color, \"text-foreground\"), weightMap[weight], className)} {...props} />\n )\n)\nBody.displayName = \"Body\"\n\nconst Small = React.forwardRef<HTMLParagraphElement, TypographyParagraphProps>(\n ({ className, weight = \"regular\", color, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-sm\", resolveColor(color, \"text-muted-foreground\"), weightMap[weight], className)} {...props} />\n )\n)\nSmall.displayName = \"Small\"\n\nconst Caption = React.forwardRef<HTMLParagraphElement, TypographyParagraphProps>(\n ({ className, weight = \"regular\", color, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-xs\", resolveColor(color, \"text-muted-foreground\"), weightMap[weight], className)} {...props} />\n )\n)\nCaption.displayName = \"Caption\"\n\nconst Lead = React.forwardRef<HTMLParagraphElement, TypographyParagraphProps>(\n ({ className, weight = \"medium\", color, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-lg\", resolveColor(color, \"text-foreground\"), weightMap[weight], className)} {...props} />\n )\n)\nLead.displayName = \"Lead\"\n\nconst Muted = React.forwardRef<HTMLParagraphElement, TypographyParagraphProps>(\n ({ className, weight = \"regular\", color, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-sm\", resolveColor(color, \"text-muted-foreground\"), weightMap[weight], className)} {...props} />\n )\n)\nMuted.displayName = \"Muted\"\n\nconst Code = React.forwardRef<HTMLElement, React.HTMLAttributes<HTMLElement>>(\n ({ className, ...props }, ref) => (\n <code\n ref={ref}\n className={cn(\n \"relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold\",\n className\n )}\n {...props}\n />\n )\n)\nCode.displayName = \"Code\"\n\nexport { H1, H2, H3, H4, Body, Small, Caption, Lead, Muted, Code }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { ThemeProvider as NextThemesProvider, type ThemeProviderProps } from \"next-themes\"\n\nfunction ThemeProvider({ children, ...props }: ThemeProviderProps) {\n return <NextThemesProvider {...props}>{children}</NextThemesProvider>\n}\n\nexport { ThemeProvider, type ThemeProviderProps }\nexport { useTheme } from \"next-themes\"\n","import * as React from \"react\"\nimport { cn } from \"../lib/utils\"\n\nexport interface BannerProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: \"primary\" | \"muted\" | \"success\" | \"warning\" | \"destructive\"\n icon?: React.ReactNode\n title?: string\n description?: string\n action?: React.ReactNode\n}\n\nconst variantStyles: Record<NonNullable<BannerProps[\"variant\"]>, string> = {\n primary: \"bg-[var(--hc-banner-primary-bg)] border border-[var(--hc-primary-200)]\",\n muted: \"bg-[var(--hc-color-muted)] border border-[var(--hc-color-border)]\",\n success: \"bg-[var(--hc-banner-success-bg)] border border-[var(--hc-banner-success-border)]\",\n warning: \"bg-[var(--hc-banner-warning-bg)] border border-[var(--hc-banner-warning-border)]\",\n destructive: \"bg-[var(--hc-banner-destructive-bg)] border border-[var(--hc-banner-destructive-border)]\",\n}\n\nconst iconBgStyles: Record<NonNullable<BannerProps[\"variant\"]>, string> = {\n primary: \"bg-[var(--hc-primary-500)]\",\n muted: \"bg-[var(--hc-color-border)]\",\n success: \"bg-[var(--hc-color-success)]\",\n warning: \"bg-[var(--hc-color-warning)]\",\n destructive: \"bg-[var(--hc-color-destructive)]\",\n}\n\nconst Banner = React.forwardRef<HTMLDivElement, BannerProps>(\n ({ variant = \"primary\", icon, title, description, action, className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"rounded-lg px-6 py-5\", variantStyles[variant], className)}\n {...props}\n >\n <div className=\"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4\">\n <div className=\"flex items-center gap-3\">\n {icon && (\n <div className={cn(\"h-10 w-10 rounded-full flex items-center justify-center shrink-0 text-white\", iconBgStyles[variant])}>\n {icon}\n </div>\n )}\n <div>\n {title && (\n <p className=\"text-sm font-bold text-foreground\">\n {title}\n </p>\n )}\n {description && (\n <p className=\"text-xs mt-0.5 text-muted-foreground\">\n {description}\n </p>\n )}\n {children}\n </div>\n </div>\n {action && <div className=\"shrink-0\">{action}</div>}\n </div>\n </div>\n )\n)\nBanner.displayName = \"Banner\"\n\nexport { Banner }\n","import * as React from \"react\"\nimport { cn } from \"../lib/utils\"\nimport type { ImpersonationMode, OperationClass } from \"../lib/impersonation\"\n\nexport interface ImpersonationBannerProps {\n /** Who is acting, e.g. the support person's email. */\n actorLabel: string\n /** READ or WRITE (from the token's imp_mode). */\n mode: ImpersonationMode\n /** When the session ends (Date, ISO string or epoch milliseconds). */\n expiresAt: Date | string | number\n /** Ends the session: the app clears the token. The banner itself never hides. */\n onExit: () => void\n /** Whose account is being used, e.g. the user's name. */\n targetLabel?: string\n /** Approved operation classes (imp_ops), shown next to the mode. */\n ops?: readonly OperationClass[]\n /** Render in the page flow instead of fixed to the top (docs and stories only). Default false. */\n inline?: boolean\n /** Called once when the countdown reaches zero. */\n onExpire?: () => void\n className?: string\n}\n\nfunction toMs(value: Date | string | number): number {\n if (value instanceof Date) return value.getTime()\n if (typeof value === \"number\") return value\n const parsed = Date.parse(value)\n return Number.isNaN(parsed) ? 0 : parsed\n}\n\n/** 29:59, or 1:02:03 past an hour. */\nexport function formatRemaining(ms: number): string {\n const total = Math.max(0, Math.floor(ms / 1000))\n const h = Math.floor(total / 3600)\n const m = Math.floor((total % 3600) / 60)\n const s = total % 60\n const pad = (n: number) => String(n).padStart(2, \"0\")\n return h > 0 ? `${h}:${pad(m)}:${pad(s)}` : `${m}:${pad(s)}`\n}\n\n/**\n * Fixed, non-dismissible top bar shown on every page while a support person acts as a user (acai-ai-platform#1274).\n *\n * - role=\"alert\" so screen readers announce it once (the countdown is aria-live off); there is no close control and Escape does nothing.\n * - Fixed colours that do not change with the theme: black on yellow for READ, white on dark red for WRITE. Both are\n * above 7:1 contrast in light and dark mode.\n * - A live countdown to the end of the session. \"Exit\" calls onExit; the app ends the session and unmounts the banner.\n * - Renders a spacer of the same height so page content is not hidden under the bar.\n */\nconst ImpersonationBanner = React.forwardRef<HTMLDivElement, ImpersonationBannerProps>(\n ({ actorLabel, mode, expiresAt, onExit, targetLabel, ops, inline = false, onExpire, className }, ref) => {\n const endMs = toMs(expiresAt)\n const [now, setNow] = React.useState(() => Date.now())\n const remaining = endMs - now\n const expired = remaining <= 0\n const onExpireRef = React.useRef(onExpire)\n onExpireRef.current = onExpire\n\n React.useEffect(() => {\n if (expired) return undefined\n const timer = setInterval(() => setNow(Date.now()), 1000)\n return () => clearInterval(timer)\n }, [expired])\n\n const firedFor = React.useRef<number | null>(null)\n React.useEffect(() => {\n if (expired && firedFor.current !== endMs) {\n firedFor.current = endMs\n onExpireRef.current?.()\n }\n }, [expired, endMs])\n\n const isRead = mode === \"READ\"\n const modeText = isRead ? \"Read-only\" : \"Changes allowed\"\n const opsText = ops && ops.length > 0 ? ops.join(\", \") : null\n\n return (\n <>\n {inline ? null : <div aria-hidden=\"true\" className=\"h-12\" data-impersonation-spacer=\"\" />}\n <div\n ref={ref}\n role=\"alert\"\n data-impersonation-banner=\"\"\n data-mode={mode}\n className={cn(\n inline ? \"relative\" : \"fixed inset-x-0 top-0 z-[2147483000]\",\n \"flex h-12 items-center gap-3 border-b-2 px-4 text-sm font-medium shadow-md\",\n isRead\n ? \"border-black bg-[#FDE047] text-black\"\n : \"border-white bg-[#991B1B] text-white\",\n className\n )}\n >\n <span className=\"shrink-0 rounded px-2 py-0.5 text-xs font-bold uppercase tracking-wide ring-1 ring-current\">\n Support session\n </span>\n <p className=\"min-w-0 flex-1 truncate\">\n <span className=\"font-semibold\">{actorLabel}</span>\n {targetLabel ? (\n <>\n {\" is acting as \"}\n <span className=\"font-semibold\">{targetLabel}</span>\n </>\n ) : (\n \" is acting as this user\"\n )}\n {\" · \"}\n <span data-testid=\"impersonation-mode\">{modeText}</span>\n {opsText ? <span className=\"hidden sm:inline\">{` (${opsText})`}</span> : null}\n </p>\n {/* aria-live off: the ticking countdown must not be re-announced every second. */}\n <span className=\"shrink-0 tabular-nums\" aria-live=\"off\" title=\"Time left in this support session\">\n <time data-testid=\"impersonation-countdown\" dateTime={new Date(endMs).toISOString()}>\n {expired ? \"Expired\" : formatRemaining(remaining)}\n </time>\n </span>\n <button\n type=\"button\"\n onClick={onExit}\n className={cn(\n \"shrink-0 rounded-md px-3 py-1 text-sm font-semibold focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2\",\n isRead\n ? \"bg-black text-[#FDE047] hover:bg-black/85 focus-visible:ring-black focus-visible:ring-offset-[#FDE047]\"\n : \"bg-white text-[#991B1B] hover:bg-white/90 focus-visible:ring-white focus-visible:ring-offset-[#991B1B]\"\n )}\n >\n Exit\n </button>\n </div>\n </>\n )\n }\n)\nImpersonationBanner.displayName = \"ImpersonationBanner\"\n\nexport { ImpersonationBanner }\n","import * as React from \"react\"\nimport { cn } from \"../lib/utils\"\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"./tooltip\"\nimport type { ImpersonationMode, OperationClass } from \"../lib/impersonation\"\n\nexport interface ReadOnlyGuardProps {\n /**\n * The session mode from useImpersonation (imp_mode). READ disables the children. null or undefined (no support\n * session) leaves them alone.\n */\n mode?: ImpersonationMode | null\n /**\n * Approved operation classes from useImpersonation (imp_ops). When given, the children are disabled unless `op` is\n * in the list. Takes precedence over `mode`.\n */\n ops?: readonly OperationClass[] | null\n /** The class the wrapped action needs. Default WRITE. FINANCIAL and SECURITY are never approved in a support session. */\n op?: OperationClass\n /** Tooltip text while disabled. */\n reason?: string\n className?: string\n children: React.ReactNode\n}\n\nexport const READ_ONLY_REASON = \"Read-only support session: this action is turned off.\"\n\n/** Whether a guard with these props disables its children. */\nexport function isGuarded({ mode, ops, op = \"WRITE\" }: Pick<ReadOnlyGuardProps, \"mode\" | \"ops\" | \"op\">): boolean {\n if (ops) return !ops.includes(op)\n return mode === \"READ\"\n}\n\n/**\n * Disables what it wraps during a support session that may not perform the action (acai-ai-platform#1274).\n *\n * In READ mode (or when `op` is not among the approved `ops`) the children sit in a disabled <fieldset>, so every\n * native button, input, select and textarea inside is disabled, and clicks on anything else (links) are swallowed. A\n * tooltip explains why. Outside a support session it renders the children unchanged.\n *\n * This is a display aid. The backend refuses the request anyway (403 IMPERSONATION_OP_NOT_APPROVED).\n */\nfunction ReadOnlyGuard({ mode, ops, op = \"WRITE\", reason = READ_ONLY_REASON, className, children }: ReadOnlyGuardProps) {\n if (!isGuarded({ mode, ops, op })) return <>{children}</>\n\n const swallow = (e: React.SyntheticEvent) => {\n e.preventDefault()\n e.stopPropagation()\n }\n\n return (\n <TooltipProvider delayDuration={150}>\n <Tooltip>\n <TooltipTrigger asChild>\n <span\n // The wrapper takes focus so keyboard users also get the explanation; the controls inside cannot.\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n tabIndex={0}\n data-read-only=\"\"\n aria-disabled=\"true\"\n className={cn(\"inline-flex cursor-not-allowed\", className)}\n onClickCapture={swallow}\n onSubmitCapture={swallow}\n >\n <fieldset disabled className=\"contents\">\n {children}\n </fieldset>\n </span>\n </TooltipTrigger>\n <TooltipContent>{reason}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )\n}\nReadOnlyGuard.displayName = \"ReadOnlyGuard\"\n\nexport { ReadOnlyGuard }\n","import * as React from \"react\"\n\n/**\n * Support impersonation helpers (acai-ai-platform#1274).\n *\n * An impersonation access token is issued by auth-sso-server (#1272) for the target user and carries:\n * amr: [\"impersonation\"], act: { sub, userType }, imp_sid, imp_ops, imp_mode, exp\n * imp_ops is the set of approved operation classes (READ, WRITE, DESTRUCTIVE). imp_mode is READ when only READ is\n * approved, otherwise WRITE.\n *\n * Everything here decodes the token on the client FOR DISPLAY ONLY. Nothing is verified. Backends enforce the\n * session; never use these values to grant access.\n */\n\nexport const OPERATION_CLASSES = [\"READ\", \"WRITE\", \"DESTRUCTIVE\", \"FINANCIAL\", \"SECURITY\"] as const\nexport type OperationClass = (typeof OPERATION_CLASSES)[number]\nexport type ImpersonationMode = \"READ\" | \"WRITE\"\n\n/** Classes no support session can ever use, whatever a token says. */\nconst PLATFORM_BLOCKED: ReadonlySet<string> = new Set([\"FINANCIAL\", \"SECURITY\"])\n\nexport interface ImpersonationState {\n /** True only for an unexpired token with amr \"impersonation\", an actor and a session id. */\n active: boolean\n /** READ or WRITE; null when not active. */\n mode: ImpersonationMode | null\n /** Approved operation classes (never FINANCIAL or SECURITY); empty when not active. */\n ops: OperationClass[]\n /** ssoUserId of the support person acting (act.sub). */\n actorSub: string | null\n /** SUPER_ADMIN or ACAI_STAFF (act.userType), when the token says. */\n actorUserType: string | null\n /** The SSO impersonation session id (imp_sid). */\n sessionId: string | null\n /** When the token stops working. */\n expiresAt: Date | null\n}\n\nexport const INACTIVE_IMPERSONATION: ImpersonationState = Object.freeze({\n active: false,\n mode: null,\n ops: [],\n actorSub: null,\n actorUserType: null,\n sessionId: null,\n expiresAt: null,\n}) as ImpersonationState\n\nfunction base64UrlDecode(segment: string): string {\n const b64 = segment.replace(/-/g, \"+\").replace(/_/g, \"/\")\n const padded = b64 + \"=\".repeat((4 - (b64.length % 4)) % 4)\n const binary = atob(padded)\n const bytes = Uint8Array.from(binary, (c) => c.charCodeAt(0))\n return new TextDecoder().decode(bytes)\n}\n\n/** The JWT payload, or null when the token is not a decodable JWT. Not verified. */\nexport function decodeJwtPayload(token: string | null | undefined): Record<string, unknown> | null {\n if (typeof token !== \"string\") return null\n const parts = token.split(\".\")\n if (parts.length !== 3 || !parts[1]) return null\n try {\n const payload = JSON.parse(base64UrlDecode(parts[1])) as unknown\n return payload !== null && typeof payload === \"object\" && !Array.isArray(payload)\n ? (payload as Record<string, unknown>)\n : null\n } catch {\n return null\n }\n}\n\nconst nonEmpty = (v: unknown): string | null => (typeof v === \"string\" && v.trim() !== \"\" ? v : null)\n\n/** Approved classes, read the same way the backends do: imp_ops, else imp_mode WRITE = READ+WRITE, else READ. */\nexport function approvedOpsOf(claims: Record<string, unknown>): OperationClass[] {\n let ops: string[]\n if (Array.isArray(claims.imp_ops)) ops = claims.imp_ops.filter((v): v is string => typeof v === \"string\")\n else if (claims.imp_mode === \"WRITE\") ops = [\"READ\", \"WRITE\"]\n else ops = [\"READ\"]\n const set = new Set(ops.filter((op) => !PLATFORM_BLOCKED.has(op)))\n return OPERATION_CLASSES.filter((c) => set.has(c))\n}\n\nexport function modeOfOps(ops: readonly string[]): ImpersonationMode {\n return ops.every((op) => op === \"READ\") ? \"READ\" : \"WRITE\"\n}\n\n/** Decode an access token's impersonation state. For display only: the token is not verified. */\nexport function readImpersonation(token: string | null | undefined, now: number = Date.now()): ImpersonationState {\n const claims = decodeJwtPayload(token)\n if (!claims) return INACTIVE_IMPERSONATION\n const amr = Array.isArray(claims.amr) ? claims.amr : []\n if (!amr.includes(\"impersonation\")) return INACTIVE_IMPERSONATION\n const act = claims.act !== null && typeof claims.act === \"object\" ? (claims.act as Record<string, unknown>) : {}\n const actorSub = nonEmpty(act.sub)\n const sessionId = nonEmpty(claims.imp_sid)\n const expiresAt = typeof claims.exp === \"number\" ? new Date(claims.exp * 1000) : null\n if (!actorSub || !sessionId || !expiresAt || expiresAt.getTime() <= now) return INACTIVE_IMPERSONATION\n const ops = approvedOpsOf(claims)\n return {\n active: true,\n mode: modeOfOps(ops),\n ops,\n actorSub,\n actorUserType: nonEmpty(act.userType),\n sessionId,\n expiresAt,\n }\n}\n\n/**\n * `useImpersonation(token)`: the impersonation state of an access token, for display (banner, disabled controls).\n * Re-renders when the token expires, so `active` turns false on time. Not a security check.\n */\nexport function useImpersonation(token: string | null | undefined): ImpersonationState {\n // Bumped when the token expires; the state is always computed against the current clock.\n const [tick, setTick] = React.useState(0)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const state = React.useMemo(() => readImpersonation(token), [token, tick])\n const expiresAtMs = state.expiresAt?.getTime() ?? null\n\n React.useEffect(() => {\n if (expiresAtMs === null) return undefined\n const delay = Math.max(0, expiresAtMs - Date.now())\n // setTimeout caps at about 24.8 days; impersonation tokens live at most an hour.\n const timer = setTimeout(() => setTick((t) => t + 1), Math.min(delay + 50, 2_147_000_000))\n return () => clearTimeout(timer)\n }, [expiresAtMs])\n\n return state\n}\n"],"mappings":"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","names":["React","cva","jsx","jsxs","cva","React","jsx","jsxs","React","jsx","jsxs","React","cva","React","jsx","jsx","jsxs","cva","React","cva","jsx","jsxs","cva","React","jsx","React","cva","jsx","cva","React","jsx","jsxs","React","cva","jsx","cva","React","jsx","React","Check","jsx","jsxs","Check","React","Slot","jsx","Slot","React","jsx","jsxs","Loader2","jsx","jsxs","jsx","jsxs","Loader2","React","cva","jsx","jsxs","cva","React","cva","jsx","cva","React","cva","jsx","jsxs","cva","jsx","React","cva","jsx","cva","React","jsx","jsxs","Separator","React","jsx","jsxs","React","cva","jsx","jsxs","cva","React","jsx","React","jsx","Item","React","cva","X","jsx","jsxs","cva","X","React","jsx","jsxs","React","cva","X","jsx","jsxs","cva","X","React","jsx","jsxs","React","jsx","React","jsx","React","Check","Circle","jsx","jsxs","Check","Circle","React","Check","ChevronRight","Circle","jsx","jsxs","ChevronRight","Check","Circle","React","jsx","React","ChevronDown","jsx","jsxs","ChevronDown","CollapsibleTrigger","CollapsibleContent","React","cva","ChevronDown","jsx","jsxs","cva","ChevronDown","React","Slot","ChevronRight","jsx","jsxs","Slot","ChevronRight","React","Check","ChevronRight","Circle","jsx","jsxs","ChevronRight","Check","Circle","React","Slot","jsx","jsxs","Slot","React","cva","jsx","jsxs","cva","jsx","React","Check","jsx","jsxs","Check","React","jsx","React","jsx","jsxs","React","ChevronRight","MoreHorizontal","jsx","jsxs","ChevronRight","MoreHorizontal","ChevronLeft","ChevronRight","jsx","Icon","ChevronLeft","ChevronRight","React","jsx","jsxs","React","jsx","jsxs","React","jsx","jsxs","api","React","Fragment","jsx","jsxs","React","Search","jsx","jsxs","Search","React","Search","Bell","jsx","jsxs","Search","Bell","jsx","jsxs","jsx","jsxs","jsx","React","jsx","useTheme","jsx","React","jsx","jsxs","React","Fragment","jsx","jsxs","Fragment","jsx","jsxs","React"]}
|