@assure-one/design-system 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tokens/reference.ts","../src/tokens/system.ts","../src/lib/cn.ts","../src/primitives/accordion.tsx","../src/hooks/use-focus-trap.ts","../src/hooks/use-scroll-lock.ts","../src/primitives/alert-dialog.tsx","../src/primitives/alert.tsx","../src/primitives/aspect-ratio.tsx","../src/primitives/avatar.tsx","../src/primitives/badge.tsx","../src/primitives/blockquote.tsx","../src/primitives/breadcrumb.tsx","../src/primitives/button.tsx","../src/primitives/calendar.tsx","../src/primitives/card.tsx","../src/primitives/checkbox.tsx","../src/hooks/use-click-outside.ts","../src/primitives/icons.tsx","../src/primitives/client-select.tsx","../src/primitives/collapsible.tsx","../src/primitives/coming-soon.tsx","../src/primitives/command-palette.tsx","../src/primitives/context-menu.tsx","../src/primitives/copy-button.tsx","../src/primitives/date-picker.tsx","../src/primitives/dialog.tsx","../src/primitives/dropdown-menu.tsx","../src/primitives/empty-state.tsx","../src/primitives/file-upload.tsx","../src/primitives/form-message.tsx","../src/primitives/hover-card.tsx","../src/primitives/input.tsx","../src/primitives/keyboard-shortcuts-dialog.tsx","../src/primitives/label.tsx","../src/primitives/link-button.tsx","../src/primitives/logo.tsx","../src/primitives/multi-filter-pill.tsx","../src/primitives/multi-select-field.tsx","../src/primitives/otp-input.tsx","../src/primitives/pagination.tsx","../src/lib/phone.ts","../src/primitives/phone-input.tsx","../src/primitives/popover.tsx","../src/primitives/progress-bar.tsx","../src/primitives/progress-ring.tsx","../src/primitives/radio-group.tsx","../src/primitives/scroll-area.tsx","../src/hooks/use-debounce.ts","../src/primitives/search-input.tsx","../src/primitives/search-select.tsx","../src/primitives/section-header.tsx","../src/primitives/section.tsx","../src/primitives/select.tsx","../src/primitives/separator.tsx","../src/primitives/sheet.tsx","../src/primitives/side-drawer.tsx","../src/primitives/skeleton.tsx","../src/primitives/slider.tsx","../src/primitives/star-rating.tsx","../src/primitives/stat.tsx","../src/primitives/stepper.tsx","../src/primitives/submit-button.tsx","../src/primitives/switch.tsx","../src/primitives/table.tsx","../src/primitives/tabs.tsx","../src/primitives/team-member-select.tsx","../src/primitives/textarea.tsx","../src/primitives/toast.tsx","../src/primitives/toggle-group.tsx","../src/primitives/tooltip.tsx","../src/primitives/visually-hidden.tsx"],"names":["useRef","useEffect","createContext","use","useState","useCallback","jsx","jsxs","variantStyles","sizeStyles","Button","forwardRef","Checkbox","useId","useMemo","handleKeyDown","items","createPortal","DatePicker","content","Input","Link","Image","Fragment","sideStyles","Slider","Textarea"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Reference tokens — Notion's named palette. Programmatic access for theme\n * switching, Figma sync, design tools, etc. Components should NOT consume\n * these directly; use system tokens (./system.ts) instead.\n *\n * Source: Notion design system reference (refero.design).\n * Brand colors will diverge later — only `system.ts` should change.\n */\n\nexport const colors = {\n midnightInk: \"#02093a\",\n canvasDark: \"#000000\",\n ghostWhite: \"#f6f5f4\",\n paperWhite: \"#ffffff\",\n deepGraphite: \"#0b0b0b\",\n blueFrost: \"#62aef0\",\n oceanGlimmer: \"#0075de\",\n skySurge: \"#097fe8\",\n actionIndigo: \"#455dd3\",\n alertRed: \"#f77463\",\n teamTeal: \"#2a9d99\",\n sunnyYellow: \"#ffc95e\",\n warmUmber: \"#b18164\",\n coralBurst: \"#ff8a33\",\n fuchsiaFlare: \"#ff83dd\",\n grapeGlow: \"#ad6ded\",\n harvestGold: \"#ffb110\",\n hotChili: \"#f64932\",\n forestGreen: \"#1aae39\",\n coolGray: \"#c6c6c5\",\n deepSlate: \"#615d59\",\n inputBorderGray: \"#dddddd\",\n offWhite: \"#f2f9ff\",\n} as const;\n\nexport const typography = {\n family: {\n sans: \"'NotionInter', 'Inter', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif\",\n serif: \"'Lyon Text', Georgia, ui-serif, serif\",\n mono: \"'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace\",\n },\n scale: {\n caption: { size: \"12px\", leading: 1.5, tracking: \"0.01px\" },\n bodySm: { size: \"14px\", leading: 1.43, tracking: \"-0.006px\" },\n body: { size: \"15px\", leading: 1.33, tracking: \"-0.006px\" },\n subheading: { size: \"20px\", leading: 1.35, tracking: \"-0.011px\" },\n headingSm: { size: \"22px\", leading: 1.33, tracking: \"-0.024px\" },\n heading: { size: \"26px\", leading: 1.27, tracking: \"-0.033px\" },\n headingLg: { size: \"40px\", leading: 1.23, tracking: \"-0.035px\" },\n display: { size: \"64px\", leading: 0.83, tracking: \"-0.036px\" },\n },\n weight: {\n regular: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n} as const;\n\nexport const spacing = {\n unit: \"4px\",\n 4: \"4px\",\n 8: \"8px\",\n 12: \"12px\",\n 16: \"16px\",\n 20: \"20px\",\n 24: \"24px\",\n 28: \"28px\",\n 32: \"32px\",\n 36: \"36px\",\n 40: \"40px\",\n 64: \"64px\",\n 80: \"80px\",\n 180: \"180px\",\n} as const;\n\nexport const radii = {\n md: \"5px\",\n lg: \"8px\",\n xl: \"12px\",\n full: \"9999px\",\n cards: \"12px\",\n badges: \"9999px\",\n inputs: \"4px\",\n buttons: \"8px\",\n general: \"5px\",\n} as const;\n\nexport const shadows = {\n subtle:\n \"rgba(0, 0, 0, 0.01) 0px 1px 3px 0px, rgba(0, 0, 0, 0.02) 0px 3px 7px 0px, rgba(0, 0, 0, 0.02) 0px 7px 15px 0px, rgba(0, 0, 0, 0.04) 0px 14px 28px 0px, rgba(0, 0, 0, 0.05) 0px 23px 52px 0px\",\n} as const;\n\nexport const surfaces = {\n canvasDark: \"#000000\",\n midnightInk: \"#02093a\",\n paperWhite: \"#ffffff\",\n ghostWhite: \"#f6f5f4\",\n} as const;\n\nexport const reference = {\n colors,\n typography,\n spacing,\n radii,\n shadows,\n surfaces,\n} as const;\n\nexport type ReferenceTokens = typeof reference;\nexport type ColorName = keyof typeof colors;\n","/**\n * System tokens — semantic mappings. These are the names components use.\n * Re-mapped per theme via `.dark` class. The CSS variable equivalents\n * live in `./tokens.css`.\n */\n\nexport const systemTokens = {\n color: {\n /* Surfaces */\n canvas: \"var(--color-canvas)\",\n surface: \"var(--color-surface)\",\n surfaceRaised: \"var(--color-surface-raised)\",\n surfaceSunken: \"var(--color-surface-sunken)\",\n surfaceOverlay: \"var(--color-surface-overlay)\",\n\n /* Foreground */\n fg: \"var(--color-fg)\",\n fgStrong: \"var(--color-fg-strong)\",\n fgMuted: \"var(--color-fg-muted)\",\n fgSubtle: \"var(--color-fg-subtle)\",\n fgDisabled: \"var(--color-fg-disabled)\",\n fgOnBrand: \"var(--color-fg-on-brand)\",\n fgOnDark: \"var(--color-fg-on-dark)\",\n fgOnLight: \"var(--color-fg-on-light)\",\n\n /* Borders */\n border: \"var(--color-border)\",\n borderStrong: \"var(--color-border-strong)\",\n borderInput: \"var(--color-border-input)\",\n borderFocus: \"var(--color-border-focus)\",\n\n /* Brand · primary action */\n brand: \"var(--color-brand)\",\n brandHover: \"var(--color-brand-hover)\",\n brandActive: \"var(--color-brand-active)\",\n brandFg: \"var(--color-brand-fg)\",\n\n /* Interactive · links */\n link: \"var(--color-link)\",\n linkHover: \"var(--color-link-hover)\",\n\n /* Status */\n success: \"var(--color-success)\",\n successSubtle: \"var(--color-success-subtle)\",\n successFg: \"var(--color-success-fg)\",\n warning: \"var(--color-warning)\",\n warningSubtle: \"var(--color-warning-subtle)\",\n warningFg: \"var(--color-warning-fg)\",\n danger: \"var(--color-danger)\",\n dangerSubtle: \"var(--color-danger-subtle)\",\n dangerFg: \"var(--color-danger-fg)\",\n info: \"var(--color-info)\",\n infoSubtle: \"var(--color-info-subtle)\",\n infoFg: \"var(--color-info-fg)\",\n\n /* Decorative accents (Notion's playful palette) */\n accentCoral: \"var(--color-accent-coral)\",\n accentFuchsia: \"var(--color-accent-fuchsia)\",\n accentGrape: \"var(--color-accent-grape)\",\n accentTeal: \"var(--color-accent-teal)\",\n accentSunny: \"var(--color-accent-sunny)\",\n accentUmber: \"var(--color-accent-umber)\",\n accentFrost: \"var(--color-accent-frost)\",\n },\n\n radius: {\n md: \"var(--radius-md)\",\n lg: \"var(--radius-lg)\",\n xl: \"var(--radius-xl)\",\n full: \"var(--radius-full)\",\n /* Component-specific role radii */\n cards: \"var(--radius-cards)\",\n badges: \"var(--radius-badges)\",\n inputs: \"var(--radius-inputs)\",\n buttons: \"var(--radius-buttons)\",\n general: \"var(--radius-general)\",\n },\n\n shadow: {\n subtle: \"var(--shadow-subtle)\",\n focus: \"var(--shadow-focus)\",\n },\n\n spacing: {\n 4: \"var(--spacing-4)\",\n 8: \"var(--spacing-8)\",\n 12: \"var(--spacing-12)\",\n 16: \"var(--spacing-16)\",\n 20: \"var(--spacing-20)\",\n 24: \"var(--spacing-24)\",\n 28: \"var(--spacing-28)\",\n 32: \"var(--spacing-32)\",\n 36: \"var(--spacing-36)\",\n 40: \"var(--spacing-40)\",\n 64: \"var(--spacing-64)\",\n 80: \"var(--spacing-80)\",\n 180: \"var(--spacing-180)\",\n sectionGap: \"var(--section-gap)\",\n cardPadding: \"var(--card-padding)\",\n elementGap: \"var(--element-gap)\",\n },\n\n type: {\n family: {\n sans: \"var(--font-sans)\",\n serif: \"var(--font-serif)\",\n mono: \"var(--font-mono)\",\n },\n weight: {\n regular: \"var(--font-weight-regular)\",\n medium: \"var(--font-weight-medium)\",\n semibold: \"var(--font-weight-semibold)\",\n bold: \"var(--font-weight-bold)\",\n },\n role: {\n caption: {\n size: \"var(--text-caption)\",\n leading: \"var(--leading-caption)\",\n tracking: \"var(--tracking-caption)\",\n },\n bodySm: {\n size: \"var(--text-body-sm)\",\n leading: \"var(--leading-body-sm)\",\n tracking: \"var(--tracking-body-sm)\",\n },\n body: {\n size: \"var(--text-body)\",\n leading: \"var(--leading-body)\",\n tracking: \"var(--tracking-body)\",\n },\n subheading: {\n size: \"var(--text-subheading)\",\n leading: \"var(--leading-subheading)\",\n tracking: \"var(--tracking-subheading)\",\n },\n headingSm: {\n size: \"var(--text-heading-sm)\",\n leading: \"var(--leading-heading-sm)\",\n tracking: \"var(--tracking-heading-sm)\",\n },\n heading: {\n size: \"var(--text-heading)\",\n leading: \"var(--leading-heading)\",\n tracking: \"var(--tracking-heading)\",\n },\n headingLg: {\n size: \"var(--text-heading-lg)\",\n leading: \"var(--leading-heading-lg)\",\n tracking: \"var(--tracking-heading-lg)\",\n },\n display: {\n size: \"var(--text-display)\",\n leading: \"var(--leading-display)\",\n tracking: \"var(--tracking-display)\",\n },\n },\n },\n\n duration: {\n instant: \"var(--duration-instant)\",\n fast: \"var(--duration-fast)\",\n normal: \"var(--duration-normal)\",\n slow: \"var(--duration-slow)\",\n },\n\n ease: {\n out: \"var(--ease-out)\",\n in: \"var(--ease-in)\",\n inOut: \"var(--ease-in-out)\",\n },\n\n z: {\n base: \"var(--z-base)\",\n dropdown: \"var(--z-dropdown)\",\n sticky: \"var(--z-sticky)\",\n overlay: \"var(--z-overlay)\",\n modal: \"var(--z-modal)\",\n toast: \"var(--z-toast)\",\n tooltip: \"var(--z-tooltip)\",\n },\n} as const;\n\nexport type SystemTokens = typeof systemTokens;\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","\"use client\";\n\nimport {\n createContext,\n use,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\ninterface AccordionContextValue {\n openItems: Set<string>;\n toggle: (value: string) => void;\n}\n\nconst AccordionContext = createContext<AccordionContextValue | null>(null);\n\nfunction useAccordionContext() {\n const ctx = use(AccordionContext);\n if (!ctx) throw new Error(\"Accordion compounds must be used within <Accordion>\");\n return ctx;\n}\n\ninterface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {\n type?: \"single\" | \"multiple\";\n defaultValue?: string[];\n value?: string[];\n onValueChange?: (value: string[]) => void;\n}\n\nexport function Accordion({\n type = \"single\",\n defaultValue = [],\n value: controlledValue,\n onValueChange,\n children,\n className,\n ...props\n}: AccordionProps) {\n const [internalValue, setInternalValue] = useState<Set<string>>(\n new Set(defaultValue),\n );\n const isControlled = controlledValue !== undefined;\n const openItems = useMemo(\n () => (isControlled ? new Set(controlledValue) : internalValue),\n [isControlled, controlledValue, internalValue],\n );\n\n const toggle = useCallback(\n (val: string) => {\n let next: Set<string>;\n\n if (openItems.has(val)) {\n next = new Set(openItems);\n next.delete(val);\n } else if (type === \"single\") {\n next = new Set([val]);\n } else {\n next = new Set(openItems);\n next.add(val);\n }\n\n if (!isControlled) setInternalValue(next);\n onValueChange?.(Array.from(next));\n },\n [openItems, type, isControlled, onValueChange],\n );\n\n return (\n <AccordionContext value={{ openItems, toggle }}>\n <div className={cn(\"divide-y divide-border\", className)} {...props}>\n {children}\n </div>\n </AccordionContext>\n );\n}\n\ninterface AccordionItemContextValue {\n value: string;\n open: boolean;\n}\n\nconst AccordionItemContext = createContext<AccordionItemContextValue | null>(null);\n\nfunction useAccordionItemContext() {\n const ctx = use(AccordionItemContext);\n if (!ctx) throw new Error(\"AccordionTrigger/Content must be used within <AccordionItem>\");\n return ctx;\n}\n\ninterface AccordionItemProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\n\nexport function AccordionItem({\n value,\n children,\n className,\n ...props\n}: AccordionItemProps) {\n const { openItems } = useAccordionContext();\n const open = openItems.has(value);\n\n return (\n <AccordionItemContext value={{ value, open }}>\n <div className={cn(className)} {...props}>\n {children}\n </div>\n </AccordionItemContext>\n );\n}\n\ntype AccordionTriggerProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport function AccordionTrigger({\n children,\n className,\n ...props\n}: AccordionTriggerProps) {\n const { value, open } = useAccordionItemContext();\n const { toggle } = useAccordionContext();\n\n return (\n <button\n type=\"button\"\n aria-expanded={open}\n onClick={() => toggle(value)}\n className={cn(\n \"flex w-full items-center justify-between py-4 text-sm font-medium text-foreground transition-colors hover:text-muted-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className,\n )}\n {...props}\n >\n {children}\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className={cn(\n \"shrink-0 text-muted-foreground transition-transform duration-200 motion-reduce:transition-none\",\n open && \"rotate-180\",\n )}\n aria-hidden=\"true\"\n >\n <path\n d=\"M4 6l4 4 4-4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n );\n}\n\ntype AccordionContentProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function AccordionContent({\n children,\n className,\n ...props\n}: AccordionContentProps) {\n const { open } = useAccordionItemContext();\n const contentRef = useRef<HTMLDivElement>(null);\n const [height, setHeight] = useState<number>(0);\n\n useEffect(() => {\n const el = contentRef.current;\n if (!el) return;\n setHeight(el.scrollHeight);\n const observer = new ResizeObserver(() => {\n if (contentRef.current) setHeight(contentRef.current.scrollHeight);\n });\n observer.observe(el);\n return () => observer.disconnect();\n }, []);\n\n return (\n <div\n className={cn(\n \"overflow-hidden transition-all duration-200 ease-out motion-reduce:transition-none\",\n )}\n style={{ maxHeight: open ? height : 0 }}\n >\n <div ref={contentRef} className={cn(\"pb-4 text-sm\", className)} {...props}>\n {children}\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport { useEffect, useRef } from \"react\";\n\nconst FOCUSABLE_SELECTOR =\n 'a[href], button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\nexport function useFocusTrap(active: boolean) {\n const containerRef = useRef<HTMLDivElement>(null);\n const previousActiveElement = useRef<HTMLElement | null>(null);\n\n useEffect(() => {\n if (!active) return;\n\n previousActiveElement.current = document.activeElement as HTMLElement;\n const container = containerRef.current;\n if (!container) return;\n\n const focusableElements =\n container.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR);\n if (focusableElements.length > 0) {\n focusableElements[0].focus();\n }\n\n function handleKeyDown(e: KeyboardEvent) {\n if (e.key !== \"Tab\" || !container) return;\n\n const focusable =\n container.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR);\n if (focusable.length === 0) return;\n\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n\n if (e.shiftKey) {\n if (document.activeElement === first) {\n e.preventDefault();\n last.focus();\n }\n } else {\n if (document.activeElement === last) {\n e.preventDefault();\n first.focus();\n }\n }\n }\n\n document.addEventListener(\"keydown\", handleKeyDown);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n previousActiveElement.current?.focus();\n };\n }, [active]);\n\n return containerRef;\n}\n","\"use client\";\n\nimport { useEffect } from \"react\";\n\nlet lockCount = 0;\n\nexport function useScrollLock(active: boolean) {\n useEffect(() => {\n if (!active) return;\n\n lockCount++;\n if (lockCount === 1) {\n document.body.style.overflow = \"hidden\";\n }\n\n return () => {\n lockCount--;\n if (lockCount === 0) {\n document.body.style.overflow = \"\";\n }\n };\n }, [active]);\n}\n","\"use client\";\n\nimport {\n createContext,\n use,\n useCallback,\n useEffect,\n useId,\n useState,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../lib/cn\";\nimport { useFocusTrap } from \"../hooks/use-focus-trap\";\nimport { useScrollLock } from \"../hooks/use-scroll-lock\";\n\ninterface AlertDialogContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n titleId: string;\n descriptionId: string;\n}\n\nconst AlertDialogContext = createContext<AlertDialogContextValue | null>(null);\n\nfunction useAlertDialogContext() {\n const ctx = use(AlertDialogContext);\n if (!ctx) throw new Error(\"AlertDialog compounds must be used within <AlertDialog>\");\n return ctx;\n}\n\ninterface AlertDialogProps {\n children: React.ReactNode;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\n\nexport function AlertDialog({\n children,\n open: controlledOpen,\n onOpenChange,\n}: AlertDialogProps) {\n const [internalOpen, setInternalOpen] = useState(false);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n const id = useId();\n const titleId = `${id}-title`;\n const descriptionId = `${id}-desc`;\n\n const setOpen = useCallback(\n (value: boolean) => {\n if (!isControlled) setInternalOpen(value);\n onOpenChange?.(value);\n },\n [isControlled, onOpenChange],\n );\n\n return (\n <AlertDialogContext value={{ open, setOpen, titleId, descriptionId }}>\n {children}\n </AlertDialogContext>\n );\n}\n\ntype AlertDialogTriggerProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport function AlertDialogTrigger({\n children,\n className,\n ...props\n}: AlertDialogTriggerProps) {\n const { setOpen } = useAlertDialogContext();\n\n return (\n <button\n type=\"button\"\n onClick={() => setOpen(true)}\n className={cn(className)}\n {...props}\n >\n {children}\n </button>\n );\n}\n\ntype AlertDialogContentProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function AlertDialogContent({\n children,\n className,\n ...props\n}: AlertDialogContentProps) {\n const { open, setOpen, titleId, descriptionId } = useAlertDialogContext();\n const containerRef = useFocusTrap(open);\n useScrollLock(open);\n\n useEffect(() => {\n if (!open) return;\n\n function handleEscape(e: KeyboardEvent) {\n if (e.key === \"Escape\") setOpen(false);\n }\n\n document.addEventListener(\"keydown\", handleEscape);\n return () => document.removeEventListener(\"keydown\", handleEscape);\n }, [open, setOpen]);\n\n if (!open || typeof document === \"undefined\") return null;\n\n return createPortal(\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <div\n className=\"fixed inset-0 bg-overlay animate-fade-in motion-reduce:animate-none\"\n aria-hidden=\"true\"\n />\n <div\n ref={containerRef}\n role=\"alertdialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n className={cn(\n \"relative z-50 w-full max-w-lg rounded-xl border border-border bg-card p-6 shadow-lg\",\n \"animate-scale-in motion-reduce:animate-none\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </div>,\n document.body,\n );\n}\n\ntype AlertDialogHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function AlertDialogHeader({ className, ...props }: AlertDialogHeaderProps) {\n return <div className={cn(\"mb-4 space-y-1.5\", className)} {...props} />;\n}\n\ntype AlertDialogTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\nexport function AlertDialogTitle({ className, ...props }: AlertDialogTitleProps) {\n const { titleId } = useAlertDialogContext();\n return (\n <h2 id={titleId} className={cn(\"text-lg font-semibold text-foreground\", className)} {...props} />\n );\n}\n\ntype AlertDialogDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nexport function AlertDialogDescription({\n className,\n ...props\n}: AlertDialogDescriptionProps) {\n const { descriptionId } = useAlertDialogContext();\n return (\n <p id={descriptionId} className={cn(\"text-sm text-muted-foreground\", className)} {...props} />\n );\n}\n\ntype AlertDialogFooterProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function AlertDialogFooter({ className, ...props }: AlertDialogFooterProps) {\n return (\n <div className={cn(\"mt-6 flex items-center justify-end gap-2\", className)} {...props} />\n );\n}\n\ntype AlertDialogActionProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport function AlertDialogAction({\n children,\n className,\n ...props\n}: AlertDialogActionProps) {\n return (\n <button\n type=\"button\"\n className={cn(\n \"inline-flex h-10 items-center justify-center rounded-lg bg-destructive px-4 text-sm font-medium text-destructive-foreground transition-colors hover:bg-destructive/90\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className,\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n\ntype AlertDialogCancelProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport function AlertDialogCancel({\n children,\n className,\n ...props\n}: AlertDialogCancelProps) {\n const { setOpen } = useAlertDialogContext();\n\n return (\n <button\n type=\"button\"\n onClick={() => setOpen(false)}\n className={cn(\n \"inline-flex h-10 items-center justify-center rounded-lg border border-input bg-background px-4 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className,\n )}\n {...props}\n >\n {children ?? \"Cancel\"}\n </button>\n );\n}\n","import { cn } from \"../lib/cn\";\n\nconst variantStyles = {\n info: \"border-blue-200 bg-blue-50 text-blue-link [&_svg]:text-blue-link\",\n success: \"border-green-light-border bg-green-lighter-bg text-green-action [&_svg]:text-green-action\",\n warning: \"border-yellow-200 bg-amber-50 text-amber-dark [&_svg]:text-amber-dark\",\n destructive: \"border-red-200 bg-red-50 text-red-action [&_svg]:text-red-action\",\n} as const;\n\nconst variantIcons = {\n info: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 7v4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <circle cx=\"8\" cy=\"5\" r=\"0.75\" fill=\"currentColor\" />\n </svg>\n ),\n success: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M5.5 8l2 2 3.5-3.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n ),\n warning: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M7.13 2.5a1 1 0 011.74 0l5.5 9.5A1 1 0 0113.5 13.5h-11a1 1 0 01-.87-1.5l5.5-9.5z\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 6v3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <circle cx=\"8\" cy=\"11\" r=\"0.75\" fill=\"currentColor\" />\n </svg>\n ),\n destructive: (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M5.5 5.5l5 5M10.5 5.5l-5 5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ),\n};\n\ninterface AlertProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: keyof typeof variantStyles;\n}\n\nexport function Alert({\n variant = \"info\",\n children,\n className,\n ...props\n}: AlertProps) {\n return (\n <div\n role=\"alert\"\n className={cn(\n \"flex items-center gap-3 rounded-lg border p-4\",\n variantStyles[variant],\n className,\n )}\n {...props}\n >\n <span className=\"shrink-0\">{variantIcons[variant]}</span>\n <div className=\"flex-1\">{children}</div>\n </div>\n );\n}\n\ntype AlertTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\nexport function AlertTitle({ className, ...props }: AlertTitleProps) {\n return (\n <h4\n className={cn(\"text-sm font-semibold leading-tight\", className)}\n {...props}\n />\n );\n}\n\ntype AlertDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nexport function AlertDescription({\n className,\n ...props\n}: AlertDescriptionProps) {\n return (\n <p\n className={cn(\"text-sm opacity-90\", className)}\n {...props}\n />\n );\n}\n","import { cn } from \"../lib/cn\";\n\ninterface AspectRatioProps extends React.HTMLAttributes<HTMLDivElement> {\n ratio?: number;\n children: React.ReactNode;\n}\n\nexport function AspectRatio({\n ratio = 16 / 9,\n children,\n className,\n ...props\n}: AspectRatioProps) {\n return (\n <div\n className={cn(\"relative w-full overflow-hidden\", className)}\n style={{ paddingBottom: `${(1 / ratio) * 100}%` }}\n {...props}\n >\n <div className=\"absolute inset-0\">{children}</div>\n </div>\n );\n}\n","\"use client\";\n\nimport { useState } from \"react\";\nimport Image from \"next/image\";\n\nimport { cn } from \"../lib/cn\";\n\nconst sizeStyles = {\n xs: \"size-5 text-[10px]\",\n sm: \"size-8 text-xs\",\n md: \"size-10 text-sm\",\n lg: \"size-14 text-base\",\n} as const;\n\nconst statusStyles = {\n online: \"bg-success\",\n offline: \"bg-app-gray-400\",\n busy: \"bg-destructive\",\n} as const;\n\ninterface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {\n src?: string | null;\n alt?: string;\n name?: string;\n size?: keyof typeof sizeStyles;\n status?: keyof typeof statusStyles;\n}\n\nfunction getInitials(name: string): string {\n return name\n .split(\" \")\n .map((part) => part[0])\n .filter(Boolean)\n .slice(0, 2)\n .join(\"\")\n .toUpperCase();\n}\n\nexport function Avatar({\n src,\n alt,\n name,\n size = \"md\",\n status,\n className,\n ...props\n}: AvatarProps) {\n const [imgError, setImgError] = useState(false);\n const showImage = src && !imgError;\n const initials = name ? getInitials(name) : \"?\";\n\n return (\n <div className={cn(\"relative inline-flex\", className)} {...props}>\n <div\n className={cn(\n \"relative inline-flex items-center justify-center overflow-hidden rounded-full bg-muted font-medium text-muted-foreground\",\n sizeStyles[size],\n )}\n >\n {showImage ? (\n <Image\n src={src}\n alt={alt || name || \"Avatar\"}\n fill\n className=\"rounded-full object-cover\"\n onError={() => setImgError(true)}\n unoptimized\n />\n ) : (\n <span aria-label={name || \"Unknown user\"}>{initials}</span>\n )}\n </div>\n {status && (\n <span\n className={cn(\n \"absolute bottom-0 right-0 block size-2.5 rounded-full ring-2 ring-background\",\n statusStyles[status],\n )}\n aria-label={status}\n />\n )}\n </div>\n );\n}\n","import { cn } from \"../lib/cn\";\n\nconst variantStyles = {\n default: \"bg-primary text-primary-foreground\",\n secondary: \"bg-secondary text-secondary-foreground\",\n destructive: \"bg-destructive/10 text-destructive\",\n success: \"bg-green-badge-bg text-green-action\",\n warning: \"bg-amber-50 text-amber-dark\",\n info: \"bg-blue-50 text-blue-link\",\n outline: \"border border-border bg-transparent text-foreground\",\n} as const;\n\nconst sizeStyles = {\n sm: \"px-2 py-0.5 text-xs\",\n md: \"px-2.5 py-0.5 text-sm\",\n} as const;\n\ninterface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n variant?: keyof typeof variantStyles;\n size?: keyof typeof sizeStyles;\n dot?: boolean;\n icon?: React.ReactNode;\n}\n\nexport function Badge({\n variant = \"default\",\n size = \"sm\",\n dot,\n icon,\n children,\n className,\n ...props\n}: BadgeProps) {\n return (\n <span\n className={cn(\n \"inline-flex items-center gap-1 rounded-full font-medium\",\n variantStyles[variant],\n sizeStyles[size],\n className,\n )}\n {...props}\n >\n {dot && (\n <span\n className=\"size-1.5 rounded-full bg-current\"\n aria-hidden=\"true\"\n />\n )}\n {icon && (\n <span className=\"size-3.5 shrink-0\" aria-hidden=\"true\">\n {icon}\n </span>\n )}\n {children}\n </span>\n );\n}\n","import { cn } from \"../lib/cn\";\n\ninterface BlockquoteProps extends React.BlockquoteHTMLAttributes<HTMLQuoteElement> {\n author?: string;\n role?: string;\n}\n\nexport function Blockquote({\n children,\n author,\n role: authorRole,\n className,\n ...props\n}: BlockquoteProps) {\n return (\n <figure>\n <blockquote\n className={cn(\n \"text-xl leading-relaxed text-foreground md:text-2xl\",\n className,\n )}\n {...props}\n >\n <p>&ldquo;{children}&rdquo;</p>\n </blockquote>\n {author && (\n <figcaption className=\"mt-4\">\n <cite className=\"text-sm font-semibold not-italic text-foreground\">\n {author}\n </cite>\n {authorRole && (\n <span className=\"block text-sm text-muted-foreground\">\n {authorRole}\n </span>\n )}\n </figcaption>\n )}\n </figure>\n );\n}\n","import { cn } from \"../lib/cn\";\n\ntype BreadcrumbProps = React.HTMLAttributes<HTMLElement>;\n\nexport function Breadcrumb({ className, ...props }: BreadcrumbProps) {\n return (\n <nav aria-label=\"Breadcrumb\" className={cn(className)} {...props} />\n );\n}\n\ntype BreadcrumbListProps = React.HTMLAttributes<HTMLOListElement>;\n\nexport function BreadcrumbList({ className, ...props }: BreadcrumbListProps) {\n return (\n <ol\n className={cn(\n \"flex items-center gap-1.5 text-sm text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\ntype BreadcrumbItemProps = React.HTMLAttributes<HTMLLIElement>;\n\nexport function BreadcrumbItem({ className, ...props }: BreadcrumbItemProps) {\n return (\n <li\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n );\n}\n\ntype BreadcrumbLinkProps = React.AnchorHTMLAttributes<HTMLAnchorElement>;\n\nexport function BreadcrumbLink({ className, ...props }: BreadcrumbLinkProps) {\n return (\n <a\n className={cn(\n \"text-muted-foreground transition-colors hover:text-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\ntype BreadcrumbPageProps = React.HTMLAttributes<HTMLSpanElement>;\n\nexport function BreadcrumbPage({ className, ...props }: BreadcrumbPageProps) {\n return (\n <span\n className={cn(\"font-medium text-foreground\", className)}\n aria-current=\"page\"\n {...props}\n />\n );\n}\n\ntype BreadcrumbSeparatorProps = React.HTMLAttributes<HTMLSpanElement>;\n\nexport function BreadcrumbSeparator({\n children,\n className,\n ...props\n}: BreadcrumbSeparatorProps) {\n return (\n <span\n role=\"presentation\"\n className={cn(\"text-muted-foreground\", className)}\n aria-hidden=\"true\"\n {...props}\n >\n {children ?? (\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M4.5 2.5l3 3.5-3 3.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </span>\n );\n}\n","\"use client\";\n\nimport { forwardRef } from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\nconst variantStyles = {\n primary: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n success: \"bg-green-action text-success-foreground hover:bg-green-dark\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n} as const;\n\nconst sizeStyles = {\n sm: \"h-8 px-3 text-sm gap-1.5\",\n md: \"h-10 px-4 text-sm gap-2\",\n lg: \"h-12 px-6 text-base gap-2\",\n icon: \"size-10\",\n} as const;\n\ninterface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: keyof typeof variantStyles;\n size?: keyof typeof sizeStyles;\n loading?: boolean;\n iconLeft?: React.ReactNode;\n iconRight?: React.ReactNode;\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n function Button(\n {\n variant = \"primary\",\n size = \"md\",\n loading,\n iconLeft,\n iconRight,\n disabled,\n children,\n className,\n ...props\n },\n ref,\n ) {\n return (\n <button\n ref={ref}\n disabled={disabled || loading}\n className={cn(\n \"inline-flex items-center justify-center rounded-lg font-medium whitespace-nowrap transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"motion-reduce:transition-none\",\n variantStyles[variant],\n sizeStyles[size],\n className,\n )}\n {...props}\n >\n {loading ? (\n <svg\n className=\"size-4 animate-spin\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n className=\"opacity-25\"\n />\n <path\n d=\"M4 12a8 8 0 018-8\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n className=\"opacity-75\"\n />\n </svg>\n ) : (\n iconLeft && (\n <span className=\"size-4 shrink-0\" aria-hidden=\"true\">\n {iconLeft}\n </span>\n )\n )}\n {children}\n {iconRight && !loading && (\n <span className=\"size-4 shrink-0\" aria-hidden=\"true\">\n {iconRight}\n </span>\n )}\n </button>\n );\n },\n);\n","\"use client\";\n\nimport { useCallback, useState } from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\nconst DAYS = [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"];\nconst MONTHS = [\n \"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\n \"July\", \"August\", \"September\", \"October\", \"November\", \"December\",\n];\n\ninterface CalendarHighlight {\n date: Date;\n color?: \"primary\" | \"success\" | \"warning\" | \"destructive\";\n}\n\ninterface CalendarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onSelect\"> {\n selected?: Date | null;\n onSelect?: (date: Date) => void;\n highlights?: CalendarHighlight[];\n minDate?: Date;\n maxDate?: Date;\n}\n\nexport function Calendar({\n selected,\n onSelect,\n highlights = [],\n minDate,\n maxDate,\n className,\n ...props\n}: CalendarProps) {\n const [viewDate, setViewDate] = useState(\n () => selected ?? new Date(),\n );\n\n const year = viewDate.getFullYear();\n const month = viewDate.getMonth();\n\n const firstDay = new Date(year, month, 1).getDay();\n const daysInMonth = new Date(year, month + 1, 0).getDate();\n const daysInPrevMonth = new Date(year, month, 0).getDate();\n\n const prevMonth = useCallback(() => {\n setViewDate(new Date(year, month - 1, 1));\n }, [year, month]);\n\n const nextMonth = useCallback(() => {\n setViewDate(new Date(year, month + 1, 1));\n }, [year, month]);\n\n function isSameDay(a: Date, b: Date) {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n }\n\n function isDisabled(date: Date) {\n if (minDate && date < new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate())) return true;\n if (maxDate && date > new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate())) return true;\n return false;\n }\n\n function getHighlight(date: Date) {\n return highlights.find((h) => isSameDay(h.date, date));\n }\n\n const dotColors = {\n primary: \"bg-primary\",\n success: \"bg-success\",\n warning: \"bg-warning\",\n destructive: \"bg-destructive\",\n } as const;\n\n const today = new Date();\n\n // Build calendar grid\n const cells: { day: number; date: Date; inMonth: boolean }[] = [];\n\n // Previous month padding\n for (let i = firstDay - 1; i >= 0; i--) {\n const day = daysInPrevMonth - i;\n cells.push({ day, date: new Date(year, month - 1, day), inMonth: false });\n }\n\n // Current month\n for (let d = 1; d <= daysInMonth; d++) {\n cells.push({ day: d, date: new Date(year, month, d), inMonth: true });\n }\n\n // Next month padding\n const remaining = 42 - cells.length;\n for (let d = 1; d <= remaining; d++) {\n cells.push({ day: d, date: new Date(year, month + 1, d), inMonth: false });\n }\n\n return (\n <div className={cn(\"w-72 select-none\", className)} {...props}>\n {/* Header */}\n <div className=\"mb-2 flex items-center justify-between\">\n <button\n type=\"button\"\n onClick={prevMonth}\n className=\"inline-flex size-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n aria-label=\"Previous month\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M9 3l-4 4 4 4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n <span className=\"text-sm font-semibold text-foreground\">\n {MONTHS[month]} {year}\n </span>\n <button\n type=\"button\"\n onClick={nextMonth}\n className=\"inline-flex size-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n aria-label=\"Next month\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M5 3l4 4-4 4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n </div>\n\n {/* Day names */}\n <div className=\"mb-1 grid grid-cols-7 text-center\">\n {DAYS.map((d) => (\n <span key={d} className=\"py-1 text-xs font-medium text-muted-foreground\">\n {d}\n </span>\n ))}\n </div>\n\n {/* Day grid */}\n <div className=\"grid grid-cols-7\">\n {cells.map((cell, i) => {\n const isSelected = selected ? isSameDay(cell.date, selected) : false;\n const isToday = isSameDay(cell.date, today);\n const disabled = !cell.inMonth || isDisabled(cell.date);\n const highlight = cell.inMonth ? getHighlight(cell.date) : undefined;\n\n return (\n <button\n key={i}\n type=\"button\"\n disabled={disabled}\n onClick={() => !disabled && onSelect?.(cell.date)}\n className={cn(\n \"relative flex h-9 items-center justify-center rounded-md text-sm transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n !cell.inMonth && \"text-muted-foreground/40\",\n cell.inMonth && !isSelected && \"text-foreground hover:bg-accent\",\n isSelected && \"bg-primary text-primary-foreground\",\n isToday && !isSelected && \"font-bold\",\n disabled && \"pointer-events-none opacity-50\",\n )}\n >\n {cell.day}\n {highlight && (\n <span\n className={cn(\n \"absolute bottom-1 left-1/2 size-1 -translate-x-1/2 rounded-full\",\n dotColors[highlight.color ?? \"primary\"],\n )}\n />\n )}\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n","import { cn } from \"../lib/cn\";\n\ntype CardProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function Card({ className, ...props }: CardProps) {\n return (\n <div className={cn(\"card-elevated\", className)} {...props} />\n );\n}\n\ntype CardHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function CardHeader({ className, ...props }: CardHeaderProps) {\n return (\n <div\n className={cn(\n \"grid auto-cols-fr grid-cols-[1fr_auto] items-start gap-1.5 p-6 [.border-b]:pb-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\ntype CardTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\nexport function CardTitle({ className, ...props }: CardTitleProps) {\n return (\n <h3\n className={cn(\"text-lg font-semibold leading-tight text-foreground\", className)}\n {...props}\n />\n );\n}\n\ntype CardDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nexport function CardDescription({ className, ...props }: CardDescriptionProps) {\n return (\n <p\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\ntype CardContentProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function CardContent({ className, ...props }: CardContentProps) {\n return (\n <div className={cn(\"p-6 pt-0\", className)} {...props} />\n );\n}\n\ntype CardFooterProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function CardFooter({ className, ...props }: CardFooterProps) {\n return (\n <div\n className={cn(\"flex items-center gap-2 border-t border-border p-6\", className)}\n {...props}\n />\n );\n}\n\ntype CardActionProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function CardAction({ className, ...props }: CardActionProps) {\n return (\n <div\n className={cn(\"col-start-2 row-start-1 self-center\", className)}\n {...props}\n />\n );\n}\n","\"use client\";\n\nimport { forwardRef, useEffect, useId, useRef } from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\ninterface CheckboxProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"type\"> {\n label?: string;\n indeterminate?: boolean;\n}\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n function Checkbox(\n { label, indeterminate, className, id: providedId, ...props },\n ref,\n ) {\n const generatedId = useId();\n const id = providedId ?? generatedId;\n const internalRef = useRef<HTMLInputElement | null>(null);\n\n useEffect(() => {\n if (internalRef.current) {\n internalRef.current.indeterminate = !!indeterminate;\n }\n }, [indeterminate]);\n\n function setRefs(node: HTMLInputElement | null) {\n internalRef.current = node;\n if (typeof ref === \"function\") ref(node);\n else if (ref) ref.current = node;\n }\n\n return (\n <div className={cn(\"flex items-center gap-2\", className)}>\n <label htmlFor={id} className=\"relative flex cursor-pointer items-center justify-center\">\n <input\n ref={setRefs}\n type=\"checkbox\"\n id={id}\n className=\"peer sr-only\"\n {...props}\n />\n <div\n className={cn(\n \"flex size-4 items-center justify-center rounded border border-input bg-background transition-colors\",\n \"peer-checked:border-primary peer-checked:bg-primary peer-checked:text-primary-foreground\",\n \"peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-background\",\n \"peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n )}\n aria-hidden=\"true\"\n >\n {indeterminate ? (\n <svg\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 10 10\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M2 5h6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n ) : (\n <svg\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 10 10\"\n fill=\"none\"\n className=\"opacity-0 transition-opacity [:checked+div>&]:opacity-100\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M2 5l2.5 2.5L8 3\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </div>\n </label>\n {label && (\n <label\n htmlFor={id}\n className=\"cursor-pointer text-sm text-foreground\"\n >\n {label}\n </label>\n )}\n </div>\n );\n },\n);\n","\"use client\";\n\nimport { useEffect, type RefObject } from \"react\";\n\nexport function useClickOutside(\n refs: RefObject<HTMLElement | null>[],\n handler: () => void,\n active = true,\n) {\n useEffect(() => {\n if (!active) return;\n\n function handleMouseDown(e: MouseEvent) {\n const target = e.target as Node;\n const isOutside = refs.every(\n (ref) => ref.current && !ref.current.contains(target),\n );\n if (isOutside) handler();\n }\n\n document.addEventListener(\"mousedown\", handleMouseDown);\n return () => document.removeEventListener(\"mousedown\", handleMouseDown);\n }, [refs, handler, active]);\n}\n","import { cn } from \"../lib/cn\";\n\ninterface IconProps extends React.SVGAttributes<SVGElement> {\n size?: number;\n}\n\nfunction Icon({\n size = 24,\n className,\n children,\n ...props\n}: IconProps & { children: React.ReactNode }) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n className={cn(\"shrink-0\", className)}\n aria-hidden=\"true\"\n {...props}\n >\n {children}\n </svg>\n );\n}\n\nexport function DocumentIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6z\"\n fill=\"currentColor\"\n opacity=\"0.2\"\n />\n <path\n d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M14 2v6h6M8 13h8M8 17h8M8 9h2\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function ArrowRightIcon({ size = 16, ...props }: IconProps) {\n return (\n <Icon size={size} viewBox=\"0 0 16 16\" {...props}>\n <path\n d=\"M3.333 8h9.334M8.667 4L13 8l-4.333 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function StarIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M12 2l2.09 6.26L20.18 9l-5 4.36L16.82 20 12 16.77 7.18 20l1.64-6.64-5-4.36 6.09-.74L12 2z\"\n fill=\"currentColor\"\n />\n </Icon>\n );\n}\n\nexport function SparkleIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M12 2l2.09 6.26L20.18 9l-5 4.36L16.82 20 12 16.77 7.18 20l1.64-6.64-5-4.36 6.09-.74L12 2z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function ChatBubbleIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2v10z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function LightningIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M13 2L3 14h9l-1 8 10-12h-9l1-8z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function UsersIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2M9 11a4 4 0 100-8 4 4 0 000 8zM23 21v-2a4 4 0 00-3-3.87M16 3.13a4 4 0 010 7.75\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function FileTextIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M14 2v6h6M16 13H8M16 17H8M10 9H8\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function ShieldIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function MenuIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M3 12h18M3 6h18M3 18h18\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </Icon>\n );\n}\n\nexport function CloseIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M18 6L6 18M6 6l12 12\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </Icon>\n );\n}\n\nexport function CheckIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M20 6L9 17l-5-5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function LayoutDashboardIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"9\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"5\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <rect x=\"14\" y=\"12\" width=\"7\" height=\"9\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <rect x=\"3\" y=\"16\" width=\"7\" height=\"5\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </Icon>\n );\n}\n\nexport function BuildingIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M6 22V4a2 2 0 012-2h8a2 2 0 012 2v18M2 22h20M10 6h4M10 10h4M10 14h4M10 18h4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function MapPinIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 1116 0z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <circle\n cx=\"12\"\n cy=\"10\"\n r=\"3\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n />\n </Icon>\n );\n}\n\nexport function FileReturnIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M14 2v6h6M9 15l3-3 3 3M12 12v6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function ClipboardCheckIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <rect x=\"9\" y=\"2\" width=\"6\" height=\"4\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M9 14l2 2 4-4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function FolderOpenIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M5 19a2 2 0 01-2-2V7a2 2 0 012-2h4l2 2h4a2 2 0 012 2v1M5 19h14a2 2 0 002-2l-2.5-7a2 2 0 00-2-1.5H5.5A2 2 0 003.5 10L2 17a2 2 0 002 2z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function ReceiptIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M4 2v20l3-2 3 2 3-2 3 2 3-2 3 2V2l-3 2-3-2-3 2-3-2-3 2-3-2z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path d=\"M8 10h8M8 14h4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </Icon>\n );\n}\n\nexport function CalendarIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M16 2v4M8 2v4M3 10h18\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </Icon>\n );\n}\n\nexport function BarChartIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M12 20V10M18 20V4M6 20v-4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function SettingsIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"3\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path\n d=\"M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 01-2.83 2.83l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-4 0v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83-2.83l.06-.06A1.65 1.65 0 004.68 15a1.65 1.65 0 00-1.51-1H3a2 2 0 010-4h.09A1.65 1.65 0 004.6 9a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 012.83-2.83l.06.06A1.65 1.65 0 009 4.68a1.65 1.65 0 001-1.51V3a2 2 0 014 0v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 2.83l-.06.06A1.65 1.65 0 0019.4 9a1.65 1.65 0 001.51 1H21a2 2 0 010 4h-.09a1.65 1.65 0 00-1.51 1z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function PanelLeftIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M9 3v18\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </Icon>\n );\n}\n\nexport function PanelLeftCloseIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M9 3v18\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M15 9l-3 3 3 3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function SunIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"4\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path\n d=\"M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </Icon>\n );\n}\n\nexport function TeamIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M18 21v-2a4 4 0 00-4-4H10a4 4 0 00-4 4v2\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <circle cx=\"12\" cy=\"7\" r=\"4\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path\n d=\"M22 11h-4M20 9v4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </Icon>\n );\n}\n\nexport function MoonIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function PaletteIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <circle cx=\"13.5\" cy=\"6.5\" r=\"1.5\" fill=\"currentColor\" />\n <circle cx=\"17.5\" cy=\"10.5\" r=\"1.5\" fill=\"currentColor\" />\n <circle cx=\"8.5\" cy=\"7.5\" r=\"1.5\" fill=\"currentColor\" />\n <circle cx=\"6.5\" cy=\"12.5\" r=\"1.5\" fill=\"currentColor\" />\n <path\n d=\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.93 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.04-.23-.29-.38-.63-.38-1.04 0-.83.67-1.5 1.5-1.5H16c3.31 0 6-2.69 6-6 0-5.5-4.5-9.92-10-9.92z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function MailIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M22 7l-10 6L2 7\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function GlobeIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path\n d=\"M2 12h20M12 2a15.3 15.3 0 014 10 15.3 15.3 0 01-4 10 15.3 15.3 0 01-4-10 15.3 15.3 0 014-10z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function BellIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M18 8A6 6 0 106 8c0 7-3 9-3 9h18s-3-2-3-9zM13.73 21a2 2 0 01-3.46 0\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function WorkflowIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <rect x=\"3\" y=\"3\" width=\"6\" height=\"6\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <rect x=\"15\" y=\"3\" width=\"6\" height=\"6\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <rect x=\"9\" y=\"15\" width=\"6\" height=\"6\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M6 9v3a3 3 0 003 3h6a3 3 0 003-3V9\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M12 12v3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </Icon>\n );\n}\n\nexport function LinkIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M10 13a5 5 0 007.54.54l3-3a5 5 0 00-7.07-7.07l-1.72 1.71\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M14 11a5 5 0 00-7.54-.54l-3 3a5 5 0 007.07 7.07l1.71-1.71\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function KeyIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 11-7.778 7.778 5.5 5.5 0 017.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function SearchIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <circle cx=\"11\" cy=\"11\" r=\"8\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M21 21l-4.35-4.35\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </Icon>\n );\n}\n\nexport function LogOutIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4M16 17l5-5-5-5M21 12H9\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function TagIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M12.586 2.586A2 2 0 0011.172 2H4a2 2 0 00-2 2v7.172a2 2 0 00.586 1.414l8.704 8.704a2.426 2.426 0 003.42 0l6.58-6.58a2.426 2.426 0 000-3.42z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <circle cx=\"7.5\" cy=\"7.5\" r=\".5\" fill=\"currentColor\" stroke=\"currentColor\" strokeWidth=\"1\" />\n </Icon>\n );\n}\n\nexport function SendIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M14.536 21.686a.5.5 0 00.937-.024l6.5-19a.496.496 0 00-.635-.635l-19 6.5a.5.5 0 00-.024.937l7.93 3.18a2 2 0 011.112 1.11z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path d=\"M21.854 2.147l-10.94 10.939\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function TrashIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"M3 6h18\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function Link2Icon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"M9 17H7A5 5 0 017 7h2\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M15 7h2a5 5 0 110 10h-2\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <line x1=\"8\" x2=\"16\" y1=\"12\" y2=\"12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </Icon>\n );\n}\n\nexport function ChevronUpIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"m18 15-6-6-6 6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function ChevronDownIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"m6 9 6 6 6-6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function PlusIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"M12 5v14M5 12h14\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function UserCircleIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <circle cx=\"12\" cy=\"10\" r=\"3\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M7 20.662V19a2 2 0 012-2h6a2 2 0 012 2v1.662\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function PencilIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"M17 3a2.828 2.828 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function PhoneIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 16.92z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function FolderClosedIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M20 20a2 2 0 002-2V8a2 2 0 00-2-2h-7.9a2 2 0 01-1.69-.9L9.6 3.9A2 2 0 007.93 3H4a2 2 0 00-2 2v13a2 2 0 002 2h16z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function UploadIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4M17 8l-5-5-5 5M12 3v12\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function DownloadIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4M7 10l5 5 5-5M12 15V3\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function MoreHorizontalIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"1\" fill=\"currentColor\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" fill=\"currentColor\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" fill=\"currentColor\" />\n </Icon>\n );\n}\n\nexport function ChevronRightIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"m9 18 6-6-6-6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function ChevronLeftIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"m15 18-6-6 6-6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function FileIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8l-6-6z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path d=\"M14 2v6h6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function RotateCcwIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"M3 12a9 9 0 109-9 9.75 9.75 0 00-6.74 2.74L3 8\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M3 3v5h5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function EyeIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"M2 12s3-7 10-7 10 7 10 7-3 7-10 7S2 12 2 12z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </Icon>\n );\n}\n\nexport function ClockIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M12 6v6h4.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function LayoutListIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M14 4h7M14 9h7M14 15h7M14 20h7\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </Icon>\n );\n}\n\nexport function LayoutGridIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <rect x=\"3\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <rect x=\"14\" y=\"3\" width=\"7\" height=\"7\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <rect x=\"3\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <rect x=\"14\" y=\"14\" width=\"7\" height=\"7\" rx=\"1\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </Icon>\n );\n}\n\nexport function LockIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M7 11V7a5 5 0 0110 0v4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </Icon>\n );\n}\n\nexport function FolderPlusIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M20 20a2 2 0 002-2V8a2 2 0 00-2-2h-7.9a2 2 0 01-1.69-.9L9.6 3.9A2 2 0 007.93 3H4a2 2 0 00-2 2v13a2 2 0 002 2h16z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path d=\"M12 10v6M9 13h6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function MoveIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M5 9l-3 3 3 3M9 5l3-3 3 3M15 19l-3 3-3-3M19 9l3 3-3 3M2 12h20M12 2v20\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function LockKeyholeIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <circle cx=\"12\" cy=\"16\" r=\"1\" fill=\"currentColor\" />\n <rect x=\"3\" y=\"10\" width=\"18\" height=\"12\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M7 10V7a5 5 0 0110 0v3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </Icon>\n );\n}\n\nexport function PaperclipIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M21.44 11.05l-9.19 9.19a6 6 0 01-8.49-8.49l9.19-9.19a4 4 0 015.66 5.66l-9.2 9.19a2 2 0 01-2.83-2.83l8.49-8.48\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function AtSignIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"4\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path\n d=\"M16 8v5a3 3 0 006 0v-1a10 10 0 10-4 8\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </Icon>\n );\n}\n\nexport function ZoomInIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <circle cx=\"11\" cy=\"11\" r=\"8\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M21 21l-4.35-4.35M11 8v6M8 11h6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function ZoomOutIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <circle cx=\"11\" cy=\"11\" r=\"8\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M21 21l-4.35-4.35M8 11h6\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function XIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"M18 6L6 18M6 6l12 12\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </Icon>\n );\n}\n\nexport function MessageCircleWarningIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"M7.9 20A9 9 0 1 0 4 16.1L2 22z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M12 8v4M12 16h.01\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function FlagIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1zM4 22v-7\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function LockOpenIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <rect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\" ry=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M7 11V7a5 5 0 0 1 9.9-1\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function MessageCircleIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"M7.9 20A9 9 0 1 0 4 16.1L2 22z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n \n}\n\nexport function PenSignIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path\n d=\"M17 3a2.83 2.83 0 114 4L7.5 20.5 2 22l1.5-5.5L17 3z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </Icon>\n );\n}\n\nexport function CopyIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" fill=\"none\" />\n <path d=\"M5 15H4a2 2 0 01-2-2V4a2 2 0 012-2h9a2 2 0 012 2v1\" stroke=\"currentColor\" strokeWidth=\"1.5\" fill=\"none\" />\n </Icon>\n );\n}\n\nexport function MonitorIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 21h8M12 17v4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function SmartphoneIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <rect x=\"6\" y=\"2\" width=\"12\" height=\"20\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M12 18h.01\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function AlertTriangleIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </Icon>\n );\n}\n\nexport function ArrowRightSmallIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"M5 12h14M12 5l7 7-7 7\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function ArrowLeftIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <path d=\"M19 12H5M12 19l-7-7 7-7\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </Icon>\n );\n}\n\nexport function CreditCardIcon({ size = 24, ...props }: IconProps) {\n return (\n <Icon size={size} {...props}>\n <rect x=\"3\" y=\"5\" width=\"18\" height=\"14\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M3 10h18\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M7 15h3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </Icon>\n );\n}","\"use client\";\n\nimport { useState, useRef, useMemo } from \"react\";\n\nimport { cn } from \"../lib/cn\";\nimport { useClickOutside } from \"../hooks/use-click-outside\";\nimport { SearchIcon, ChevronDownIcon } from \"./icons\";\n\nexport type ClientSelectOption = {\n id: string;\n label: string;\n email?: string;\n};\n\ninterface ClientSelectProps {\n clients: ClientSelectOption[];\n value: string | null;\n onChange: (clientId: string | null) => void;\n name?: string;\n error?: string;\n className?: string;\n placeholder?: string;\n}\n\nexport function ClientSelect({\n clients,\n value,\n onChange,\n name = \"client_id\",\n error,\n className,\n placeholder = \"Select a client...\",\n}: ClientSelectProps) {\n const [open, setOpen] = useState(false);\n const [search, setSearch] = useState(\"\");\n const containerRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useClickOutside([containerRef], () => setOpen(false), open);\n\n const filtered = useMemo(\n () =>\n clients.filter((c) => {\n const q = search.toLowerCase();\n return (\n c.label.toLowerCase().includes(q) ||\n (c.email && c.email.toLowerCase().includes(q))\n );\n }),\n [clients, search],\n );\n\n const selected = clients.find((c) => c.id === value) ?? null;\n\n function handleSelect(client: ClientSelectOption) {\n onChange(client.id);\n setOpen(false);\n setSearch(\"\");\n }\n\n function handleClear() {\n onChange(null);\n setSearch(\"\");\n }\n\n return (\n <div ref={containerRef} className={cn(\"relative\", className)}>\n <input type=\"hidden\" name={name} value={value ?? \"\"} />\n\n <button\n type=\"button\"\n onClick={() => {\n setOpen((prev) => !prev);\n setTimeout(() => inputRef.current?.focus(), 0);\n }}\n className={cn(\n \"flex w-full items-center justify-between rounded-lg border border-input bg-background px-3 py-2 text-sm transition-colors\",\n \"hover:border-foreground/30 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n !selected && \"text-muted-foreground\",\n error && \"border-destructive\",\n )}\n >\n <span className=\"truncate\">\n {selected ? selected.label : placeholder}\n </span>\n <ChevronDownIcon size={14} className=\"shrink-0 text-muted-foreground\" />\n </button>\n\n {open && (\n <div className=\"absolute left-0 top-full z-50 mt-1 w-full rounded-lg border border-border bg-card shadow-lg\">\n <div className=\"flex items-center gap-2 border-b border-border px-3 py-2\">\n <SearchIcon size={14} className=\"shrink-0 text-muted-foreground\" />\n <input\n ref={inputRef}\n type=\"text\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n placeholder=\"Search clients...\"\n className=\"flex-1 bg-transparent text-sm text-foreground placeholder:text-muted-foreground focus:outline-none\"\n />\n </div>\n <div className=\"max-h-48 overflow-y-auto p-1\">\n {filtered.length === 0 && (\n <p className=\"px-3 py-2 text-xs text-muted-foreground\">\n {clients.length === 0 ? \"No clients yet\" : \"No matches\"}\n </p>\n )}\n {selected && (\n <button\n type=\"button\"\n onClick={handleClear}\n className=\"flex w-full items-center rounded-md px-3 py-1.5 text-left text-xs text-muted-foreground transition-colors hover:bg-muted\"\n >\n Clear selection\n </button>\n )}\n {filtered.map((c) => (\n <button\n key={c.id}\n type=\"button\"\n onClick={() => handleSelect(c)}\n className={cn(\n \"flex w-full flex-col rounded-md px-3 py-1.5 text-left text-sm transition-colors hover:bg-muted\",\n c.id === value && \"bg-accent text-accent-foreground\",\n )}\n >\n <span className=\"font-medium\">{c.label}</span>\n {c.email && (\n <span className=\"text-xs text-muted-foreground\">{c.email}</span>\n )}\n </button>\n ))}\n </div>\n </div>\n )}\n\n {error && (\n <p className=\"mt-1 text-sm text-destructive\">{error}</p>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport {\n createContext,\n use,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\ninterface CollapsibleContextValue {\n open: boolean;\n toggle: () => void;\n}\n\nconst CollapsibleContext = createContext<CollapsibleContextValue | null>(null);\n\nfunction useCollapsible() {\n const ctx = use(CollapsibleContext);\n if (!ctx) throw new Error(\"Collapsible compound components must be used within <Collapsible>\");\n return ctx;\n}\n\ninterface CollapsibleProps extends React.HTMLAttributes<HTMLDivElement> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\n\nexport function Collapsible({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n children,\n className,\n ...props\n}: CollapsibleProps) {\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const isControlled = controlledOpen !== undefined;\n const isOpen = isControlled ? controlledOpen : internalOpen;\n\n const toggle = useCallback(() => {\n const next = !isOpen;\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n }, [isOpen, isControlled, onOpenChange]);\n\n return (\n <CollapsibleContext value={{ open: isOpen, toggle }}>\n <div className={cn(className)} {...props}>\n {children}\n </div>\n </CollapsibleContext>\n );\n}\n\ntype CollapsibleTriggerProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport function CollapsibleTrigger({\n children,\n className,\n ...props\n}: CollapsibleTriggerProps) {\n const { open, toggle } = useCollapsible();\n\n return (\n <button\n type=\"button\"\n onClick={toggle}\n aria-expanded={open}\n className={cn(\"flex w-full items-center\", className)}\n {...props}\n >\n {children}\n </button>\n );\n}\n\ntype CollapsibleContentProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function CollapsibleContent({\n children,\n className,\n ...props\n}: CollapsibleContentProps) {\n const { open } = useCollapsible();\n const contentRef = useRef<HTMLDivElement>(null);\n const [height, setHeight] = useState<number | undefined>(undefined);\n\n useEffect(() => {\n if (contentRef.current) {\n setHeight(contentRef.current.scrollHeight);\n }\n }, [open, children]);\n\n return (\n <div\n className={cn(\n \"overflow-hidden transition-all duration-200 ease-out motion-reduce:transition-none\",\n className,\n )}\n style={{ maxHeight: open ? height : 0 }}\n {...props}\n >\n <div ref={contentRef}>{children}</div>\n </div>\n );\n}\n","import { cn } from \"../lib/cn\";\nimport { CheckIcon } from \"./icons\";\n\ninterface ComingSoonProps extends React.HTMLAttributes<HTMLDivElement> {\n icon: React.ReactNode;\n title: string;\n description: string;\n features: string[];\n}\n\nexport function ComingSoon({\n icon,\n title,\n description,\n features,\n className,\n ...props\n}: ComingSoonProps) {\n return (\n <div\n className={cn(\n \"flex items-center justify-center px-6 py-16\",\n className,\n )}\n {...props}\n >\n <div className=\"w-full max-w-lg rounded-xl border border-dashed border-border p-10 text-center\">\n <div className=\"mx-auto mb-4 flex size-12 items-center justify-center rounded-full bg-muted text-muted-foreground [&>svg]:size-6\">\n {icon}\n </div>\n\n <h1 className=\"text-xl font-semibold text-foreground\">{title}</h1>\n <p className=\"mt-1.5 text-sm text-muted-foreground\">{description}</p>\n\n <ul className=\"mt-6 space-y-2 text-left\">\n {features.map((feature) => (\n <li\n key={feature}\n className=\"flex items-center gap-2 text-sm text-muted-foreground\"\n >\n <CheckIcon size={14} className=\"shrink-0 text-success\" />\n {feature}\n </li>\n ))}\n </ul>\n\n <div className=\"mt-6\">\n <span className=\"inline-flex items-center rounded-full bg-muted px-3 py-1 text-xs font-medium text-muted-foreground\">\n In Development\n </span>\n </div>\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../lib/cn\";\nimport { useFocusTrap } from \"../hooks/use-focus-trap\";\nimport { useScrollLock } from \"../hooks/use-scroll-lock\";\n\ninterface CommandItem {\n id: string;\n label: string;\n description?: string;\n group?: string;\n icon?: React.ReactNode;\n shortcut?: string;\n onSelect: () => void;\n keywords?: string[];\n}\n\ninterface CommandPaletteProps {\n items: CommandItem[];\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n placeholder?: string;\n}\n\nexport type { CommandItem };\n\nexport function CommandPalette({\n items,\n open: controlledOpen,\n onOpenChange,\n placeholder = \"Type a command or search...\",\n}: CommandPaletteProps) {\n const [internalOpen, setInternalOpen] = useState(false);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n const [query, setQuery] = useState(\"\");\n const [focusIndex, setFocusIndex] = useState(0);\n const inputRef = useRef<HTMLInputElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const containerRef = useFocusTrap(open);\n useScrollLock(open);\n\n const setOpen = useCallback(\n (value: boolean) => {\n if (!isControlled) setInternalOpen(value);\n onOpenChange?.(value);\n if (!value) {\n setQuery(\"\");\n setFocusIndex(0);\n }\n },\n [isControlled, onOpenChange],\n );\n\n // Cmd+K listener\n useEffect(() => {\n function handleKeyDown(e: KeyboardEvent) {\n if ((e.metaKey || e.ctrlKey) && e.key === \"k\") {\n e.preventDefault();\n setOpen(!open);\n }\n }\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [open, setOpen]);\n\n // Focus input when opened\n useEffect(() => {\n if (open) {\n setTimeout(() => inputRef.current?.focus(), 0);\n }\n }, [open]);\n\n const filtered = items.filter((item) => {\n if (!query) return true;\n const q = query.toLowerCase();\n return (\n item.label.toLowerCase().includes(q) ||\n item.description?.toLowerCase().includes(q) ||\n item.group?.toLowerCase().includes(q) ||\n item.keywords?.some((k) => k.toLowerCase().includes(q))\n );\n });\n\n // Group items preserving insertion order\n const groups = new Map<string, CommandItem[]>();\n for (const item of filtered) {\n const group = item.group ?? \"\";\n const existing = groups.get(group);\n if (existing) {\n existing.push(item);\n } else {\n groups.set(group, [item]);\n }\n }\n\n const flatItems = filtered;\n\n function handleKeyDown(e: React.KeyboardEvent) {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setFocusIndex((prev) =>\n prev < flatItems.length - 1 ? prev + 1 : 0,\n );\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setFocusIndex((prev) =>\n prev > 0 ? prev - 1 : flatItems.length - 1,\n );\n } else if (e.key === \"Enter\") {\n e.preventDefault();\n if (flatItems[focusIndex]) {\n flatItems[focusIndex].onSelect();\n setOpen(false);\n }\n } else if (e.key === \"Escape\") {\n setOpen(false);\n }\n }\n\n // Scroll focused item into view\n useEffect(() => {\n if (!listRef.current) return;\n const items = listRef.current.querySelectorAll(\"[data-command-item]\");\n items[focusIndex]?.scrollIntoView({ block: \"nearest\" });\n }, [focusIndex]);\n\n if (!open || typeof document === \"undefined\") return null;\n\n let itemIndex = -1;\n\n return createPortal(\n <div className=\"fixed inset-0 z-50 flex items-start justify-center pt-[20vh]\">\n <div\n className=\"fixed inset-0 bg-overlay animate-fade-in motion-reduce:animate-none\"\n onClick={() => setOpen(false)}\n aria-hidden=\"true\"\n />\n <div\n ref={containerRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Command palette\"\n onKeyDown={handleKeyDown}\n className=\"relative z-50 w-full max-w-xl overflow-hidden rounded-xl border border-border bg-card shadow-2xl animate-scale-in motion-reduce:animate-none\"\n >\n {/* ── Search input ────────────────────────────────────── */}\n <div className=\"relative border-b border-border\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className=\"absolute left-4 top-1/2 -translate-y-1/2 text-muted-foreground\"\n aria-hidden=\"true\"\n >\n <circle cx=\"7\" cy=\"7\" r=\"5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M11 11l3 3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n <input\n ref={inputRef}\n type=\"text\"\n value={query}\n onChange={(e) => {\n setQuery(e.target.value);\n setFocusIndex(0);\n }}\n placeholder={placeholder}\n className=\"w-full border-none bg-transparent py-3.5 pl-11 pr-4 text-sm text-foreground shadow-none outline-none ring-0 placeholder:text-muted-foreground focus:outline-none focus:ring-0 focus-visible:ring-0 focus-visible:ring-offset-0\"\n />\n </div>\n\n {/* ── Results ─────────────────────────────────────────── */}\n <div ref={listRef} className=\"max-h-[380px] overflow-y-auto py-1\">\n {flatItems.length === 0 ? (\n <p className=\"py-8 text-center text-sm text-muted-foreground\">\n No results found.\n </p>\n ) : (\n Array.from(groups.entries()).map(([group, groupItems]) => (\n <div key={group} className=\"py-1\">\n {group && (\n <div className=\"px-4 py-1.5 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground\">\n {group}\n </div>\n )}\n {groupItems.map((item) => {\n itemIndex++;\n const isFocused = itemIndex === focusIndex;\n const currentIdx = itemIndex;\n\n return (\n <button\n key={item.id}\n type=\"button\"\n data-command-item\n data-focused={isFocused || undefined}\n onClick={() => {\n item.onSelect();\n setOpen(false);\n }}\n onMouseEnter={() => setFocusIndex(currentIdx)}\n className={cn(\n \"mx-1.5 flex w-[calc(100%-0.75rem)] items-center gap-3 rounded-lg px-3 py-2 text-left outline-none transition-colors\",\n isFocused\n ? \"bg-accent\"\n : \"hover:bg-accent/50\",\n )}\n >\n {/* Icon container */}\n {item.icon && (\n <div\n className={cn(\n \"flex size-8 shrink-0 items-center justify-center rounded-lg\",\n item.group === \"Create\"\n ? \"bg-primary/10 text-primary\"\n : \"bg-muted text-muted-foreground\",\n )}\n aria-hidden=\"true\"\n >\n {item.icon}\n </div>\n )}\n\n {/* Label + description */}\n <div className=\"min-w-0 flex-1\">\n <div className=\"text-sm font-medium text-foreground\">{item.label}</div>\n {item.description && (\n <div className=\"truncate text-xs text-muted-foreground\">{item.description}</div>\n )}\n </div>\n\n {/* Keyboard shortcut */}\n {item.shortcut && (\n <kbd className=\"hidden shrink-0 items-center gap-0.5 rounded border border-border bg-background px-1.5 py-0.5 font-mono text-[10px] font-medium text-muted-foreground sm:inline-flex\">\n {item.shortcut}\n </kbd>\n )}\n </button>\n );\n })}\n </div>\n ))\n )}\n </div>\n\n {/* ── Footer keyboard hints ───────────────────────────── */}\n <div className=\"flex items-center gap-4 border-t border-border bg-muted/30 px-4 py-2.5 text-[10px] text-muted-foreground\">\n <span className=\"flex items-center gap-1\">\n <kbd className=\"rounded border border-border bg-background px-1 py-0.5 font-mono\">↑↓</kbd>\n Navigate\n </span>\n <span className=\"flex items-center gap-1\">\n <kbd className=\"rounded border border-border bg-background px-1 py-0.5 font-mono\">↵</kbd>\n Select\n </span>\n <span className=\"flex items-center gap-1\">\n <kbd className=\"rounded border border-border bg-background px-1 py-0.5 font-mono\">esc</kbd>\n Close\n </span>\n <span className=\"flex items-center gap-1\">\n <kbd className=\"rounded border border-border bg-background px-1 py-0.5 font-mono\">?</kbd>\n Shortcuts\n </span>\n <span className=\"ml-auto flex items-center gap-1\">\n <kbd className=\"rounded border border-border bg-background px-1 py-0.5 font-mono\">/</kbd>\n <kbd className=\"rounded border border-border bg-background px-1 py-0.5 font-mono\">⌘K</kbd>\n Open anytime\n </span>\n </div>\n </div>\n </div>,\n document.body,\n );\n}\n","\"use client\";\n\nimport {\n createContext,\n use,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\ninterface ContextMenuContextValue {\n open: boolean;\n position: { x: number; y: number };\n setOpen: (open: boolean) => void;\n setPosition: (pos: { x: number; y: number }) => void;\n contentRef: React.RefObject<HTMLDivElement | null>;\n}\n\nconst ContextMenuContext = createContext<ContextMenuContextValue | null>(null);\n\nfunction useContextMenuContext() {\n const ctx = use(ContextMenuContext);\n if (!ctx) throw new Error(\"ContextMenu compounds must be used within <ContextMenu>\");\n return ctx;\n}\n\n// ---------------------------------------------------------------------------\n// ContextMenu (container)\n// ---------------------------------------------------------------------------\n\ninterface ContextMenuProps {\n children: React.ReactNode;\n}\n\nexport function ContextMenu({ children }: ContextMenuProps) {\n const [open, setOpen] = useState(false);\n const [position, setPosition] = useState({ x: 0, y: 0 });\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n // Close on click outside\n useEffect(() => {\n if (!open) return;\n\n function handleMouseDown(e: MouseEvent) {\n if (contentRef.current && !contentRef.current.contains(e.target as Node)) {\n setOpen(false);\n }\n }\n\n document.addEventListener(\"mousedown\", handleMouseDown);\n return () => document.removeEventListener(\"mousedown\", handleMouseDown);\n }, [open]);\n\n // Close on Escape\n useEffect(() => {\n if (!open) return;\n\n function handleKeyDown(e: KeyboardEvent) {\n if (e.key === \"Escape\") {\n setOpen(false);\n }\n }\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [open]);\n\n return (\n <ContextMenuContext value={{ open, position, setOpen, setPosition, contentRef }}>\n <div className=\"relative\">{children}</div>\n </ContextMenuContext>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ContextMenuTrigger\n// ---------------------------------------------------------------------------\n\ninterface ContextMenuTriggerProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nexport function ContextMenuTrigger({\n children,\n className,\n onContextMenu,\n ...rest\n}: ContextMenuTriggerProps) {\n const { setOpen, setPosition } = useContextMenuContext();\n\n const handleContextMenu = useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault();\n onContextMenu?.(e as React.MouseEvent<HTMLDivElement>);\n setPosition({ x: e.clientX, y: e.clientY });\n setOpen(true);\n },\n [setOpen, setPosition, onContextMenu],\n );\n\n return (\n <div onContextMenu={handleContextMenu} className={cn(className)} {...rest}>\n {children}\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ContextMenuContent\n// ---------------------------------------------------------------------------\n\ninterface ContextMenuContentProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nexport function ContextMenuContent({\n children,\n className,\n ...props\n}: ContextMenuContentProps) {\n const { open, position, setOpen, contentRef } = useContextMenuContext();\n const focusIndexRef = useRef(-1);\n\n useEffect(() => {\n if (!open) {\n focusIndexRef.current = -1;\n return;\n }\n\n function handleKeyDown(e: KeyboardEvent) {\n if (!contentRef.current) return;\n\n const items = contentRef.current.querySelectorAll<HTMLElement>(\n '[role=\"menuitem\"]:not([disabled])',\n );\n const count = items.length;\n if (count === 0) return;\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n focusIndexRef.current = focusIndexRef.current < count - 1 ? focusIndexRef.current + 1 : 0;\n items[focusIndexRef.current].focus();\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n focusIndexRef.current = focusIndexRef.current > 0 ? focusIndexRef.current - 1 : count - 1;\n items[focusIndexRef.current].focus();\n } else if (e.key === \"Home\") {\n e.preventDefault();\n focusIndexRef.current = 0;\n items[0].focus();\n } else if (e.key === \"End\") {\n e.preventDefault();\n focusIndexRef.current = count - 1;\n items[count - 1].focus();\n }\n }\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [open, setOpen, contentRef]);\n\n // Clamp position to keep menu within viewport\n const clampedRef = useRef({ x: 0, y: 0 });\n useEffect(() => {\n if (!open || !contentRef.current) return;\n const rect = contentRef.current.getBoundingClientRect();\n const vw = window.innerWidth;\n const vh = window.innerHeight;\n let x = position.x;\n let y = position.y;\n if (x + rect.width > vw) x = Math.max(0, vw - rect.width - 4);\n if (y + rect.height > vh) y = Math.max(0, vh - rect.height - 4);\n if (x !== clampedRef.current.x || y !== clampedRef.current.y) {\n clampedRef.current = { x, y };\n contentRef.current.style.left = `${x}px`;\n contentRef.current.style.top = `${y}px`;\n }\n });\n\n if (!open) return null;\n\n return (\n <div\n ref={contentRef}\n role=\"menu\"\n style={{ position: \"fixed\", left: position.x, top: position.y }}\n className={cn(\n \"z-50 min-w-[10rem] overflow-hidden rounded-lg border border-border bg-popover p-1 text-popover-foreground shadow-lg\",\n \"animate-scale-in motion-reduce:animate-none\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ContextMenuItem\n// ---------------------------------------------------------------------------\n\ninterface ContextMenuItemProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n destructive?: boolean;\n}\n\nexport function ContextMenuItem({\n destructive,\n children,\n className,\n onClick,\n ...rest\n}: ContextMenuItemProps) {\n const { setOpen } = useContextMenuContext();\n\n return (\n <button\n role=\"menuitem\"\n type=\"button\"\n onClick={(e) => {\n onClick?.(e);\n setOpen(false);\n }}\n className={cn(\n \"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none transition-colors\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"hover:bg-accent hover:text-accent-foreground\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n destructive && \"text-destructive focus:text-destructive\",\n className,\n )}\n {...rest}\n >\n {children}\n </button>\n );\n}\n\n// ---------------------------------------------------------------------------\n// ContextMenuSeparator\n// ---------------------------------------------------------------------------\n\ntype ContextMenuSeparatorProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function ContextMenuSeparator({\n className,\n ...props\n}: ContextMenuSeparatorProps) {\n return (\n <div\n role=\"separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n );\n}\n","\"use client\";\n\nimport { useCallback, useState } from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\ninterface CopyButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string;\n feedbackDuration?: number;\n}\n\nexport function CopyButton({\n value,\n feedbackDuration = 2000,\n className,\n children,\n ...props\n}: CopyButtonProps) {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = useCallback(async () => {\n await navigator.clipboard.writeText(value);\n setCopied(true);\n setTimeout(() => setCopied(false), feedbackDuration);\n }, [value, feedbackDuration]);\n\n return (\n <button\n type=\"button\"\n onClick={handleCopy}\n className={cn(\n \"inline-flex items-center justify-center rounded-md p-2 text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n className,\n )}\n aria-label={copied ? \"Copied\" : \"Copy to clipboard\"}\n {...props}\n >\n {copied ? (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M3 8.5l3 3 7-7\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ) : (\n children ?? (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <rect\n x=\"5\"\n y=\"5\"\n width=\"8\"\n height=\"8\"\n rx=\"1.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n />\n <path\n d=\"M3 11V3a2 2 0 012-2h6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n )\n )}\n </button>\n );\n}\n","\"use client\";\n\nimport { forwardRef, useId, useImperativeHandle, useRef, useState } from \"react\";\n\nimport { CalendarIcon } from \"./icons\";\nimport { cn } from \"../lib/cn\";\n\n/**\n * Single shared date picker. Displays MM/DD/YYYY everywhere; reads & emits\n * ISO YYYY-MM-DD via `value` / `onChange` / hidden form input so it is a\n * drop-in replacement for the previous native `<input type=\"date\">`.\n */\ninterface DatePickerProps {\n value?: string;\n defaultValue?: string;\n onChange?: (event: { target: { name?: string; value: string } }) => void;\n name?: string;\n id?: string;\n label?: string;\n error?: string;\n disabled?: boolean;\n required?: boolean;\n autoFocus?: boolean;\n placeholder?: string;\n className?: string;\n min?: string;\n max?: string;\n \"aria-label\"?: string;\n}\n\nexport const DATE_DISPLAY_PLACEHOLDER = \"MM/DD/YYYY\";\n\nexport function isoToDisplay(iso: string | undefined | null): string {\n if (!iso) return \"\";\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(iso);\n if (!m) return \"\";\n return `${m[2]}/${m[3]}/${m[1]}`;\n}\n\nexport function displayToIso(display: string): string {\n const m = /^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/.exec(display);\n if (!m) return \"\";\n const [, mm, dd, yyyy] = m;\n const year = Number(yyyy);\n const month = Number(mm);\n const day = Number(dd);\n if (year < 1000 || month < 1 || month > 12 || day < 1 || day > 31) return \"\";\n const d = new Date(Date.UTC(year, month - 1, day));\n if (\n d.getUTCFullYear() !== year ||\n d.getUTCMonth() + 1 !== month ||\n d.getUTCDate() !== day\n ) {\n return \"\";\n }\n return `${yyyy}-${mm}-${dd}`;\n}\n\nfunction applyMask(input: string): string {\n const digits = input.replace(/\\D/g, \"\").slice(0, 8);\n if (digits.length <= 2) return digits;\n if (digits.length <= 4) return `${digits.slice(0, 2)}/${digits.slice(2)}`;\n return `${digits.slice(0, 2)}/${digits.slice(2, 4)}/${digits.slice(4)}`;\n}\n\nexport const DatePicker = forwardRef<HTMLInputElement, DatePickerProps>(\n function DatePicker(\n {\n value,\n defaultValue,\n onChange,\n name,\n id: providedId,\n label,\n error,\n disabled,\n required,\n autoFocus,\n placeholder = DATE_DISPLAY_PLACEHOLDER,\n className,\n min,\n max,\n \"aria-label\": ariaLabel,\n },\n ref,\n ) {\n const generatedId = useId();\n const id = providedId ?? generatedId;\n const errorId = `${id}-error`;\n const isControlled = value !== undefined;\n\n const [internalIso, setInternalIso] = useState<string>(\n isControlled ? (value ?? \"\") : (defaultValue ?? \"\"),\n );\n const [display, setDisplay] = useState<string>(() =>\n isoToDisplay(isControlled ? value : defaultValue),\n );\n const [lastPropValue, setLastPropValue] = useState<string | undefined>(value);\n\n if (isControlled && value !== lastPropValue) {\n setLastPropValue(value);\n const nextIso = value ?? \"\";\n setInternalIso(nextIso);\n if (displayToIso(display) !== nextIso) {\n setDisplay(isoToDisplay(nextIso));\n }\n }\n\n const iso = isControlled ? (value ?? \"\") : internalIso;\n const setIso = setInternalIso;\n\n const textRef = useRef<HTMLInputElement | null>(null);\n const nativeRef = useRef<HTMLInputElement | null>(null);\n useImperativeHandle(ref, () => textRef.current as HTMLInputElement);\n\n function emit(nextIso: string) {\n onChange?.({ target: { name, value: nextIso } });\n }\n\n function handleTextChange(e: React.ChangeEvent<HTMLInputElement>) {\n const masked = applyMask(e.target.value);\n setDisplay(masked);\n const nextIso = displayToIso(masked);\n if (nextIso !== iso) {\n if (!isControlled) setIso(nextIso);\n emit(nextIso);\n } else if (!nextIso && iso) {\n if (!isControlled) setIso(\"\");\n emit(\"\");\n }\n }\n\n function handleNativeChange(e: React.ChangeEvent<HTMLInputElement>) {\n const nextIso = e.target.value;\n setDisplay(isoToDisplay(nextIso));\n if (!isControlled) setIso(nextIso);\n emit(nextIso);\n }\n\n function openNativePicker() {\n const native = nativeRef.current;\n if (!native) return;\n type WithShowPicker = HTMLInputElement & { showPicker?: () => void };\n const fn = (native as WithShowPicker).showPicker;\n if (typeof fn === \"function\") {\n try {\n fn.call(native);\n return;\n } catch {\n /* fall through to focus+click */\n }\n }\n native.focus();\n native.click();\n }\n\n return (\n <div className=\"w-full\">\n {label && (\n <label\n htmlFor={id}\n className=\"mb-1.5 block text-sm font-medium text-foreground\"\n >\n {label}\n {required && <span className=\"ml-0.5 text-destructive\">*</span>}\n </label>\n )}\n <div className=\"relative\">\n <input\n ref={textRef}\n id={id}\n type=\"text\"\n inputMode=\"numeric\"\n autoComplete=\"off\"\n value={display}\n onChange={handleTextChange}\n placeholder={placeholder}\n disabled={disabled}\n required={required}\n autoFocus={autoFocus}\n aria-invalid={!!error}\n aria-describedby={error ? errorId : undefined}\n aria-label={ariaLabel}\n className={cn(\n \"flex h-10 w-full rounded-lg border border-input bg-input-background px-3 py-2 pr-10 text-sm text-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"aria-[invalid=true]:border-destructive aria-[invalid=true]:ring-destructive/20\",\n className,\n )}\n />\n <button\n type=\"button\"\n onClick={openNativePicker}\n disabled={disabled}\n tabIndex={-1}\n aria-label=\"Open calendar\"\n className={cn(\n \"absolute inset-y-0 right-0 flex w-10 items-center justify-center text-muted-foreground\",\n \"hover:text-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background rounded-r-lg\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n )}\n >\n <CalendarIcon size={16} />\n </button>\n <input\n ref={nativeRef}\n type=\"date\"\n value={iso}\n onChange={handleNativeChange}\n min={min}\n max={max}\n disabled={disabled}\n tabIndex={-1}\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute inset-y-0 right-2 size-0 opacity-0\"\n />\n {name && (\n <input type=\"hidden\" name={name} value={iso} />\n )}\n </div>\n {error && (\n <p id={errorId} role=\"alert\" className=\"mt-1.5 text-sm text-destructive\">\n {error}\n </p>\n )}\n </div>\n );\n },\n);\n","\"use client\";\n\nimport {\n createContext,\n use,\n useCallback,\n useEffect,\n useId,\n useState,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../lib/cn\";\nimport { useFocusTrap } from \"../hooks/use-focus-trap\";\nimport { useScrollLock } from \"../hooks/use-scroll-lock\";\n\ninterface DialogContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n titleId: string;\n descriptionId: string;\n}\n\nconst DialogContext = createContext<DialogContextValue | null>(null);\n\nfunction useDialogContext() {\n const ctx = use(DialogContext);\n if (!ctx) throw new Error(\"Dialog compound components must be used within <Dialog>\");\n return ctx;\n}\n\ninterface DialogProps {\n children: React.ReactNode;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\n\nexport function Dialog({\n children,\n open: controlledOpen,\n onOpenChange,\n}: DialogProps) {\n const [internalOpen, setInternalOpen] = useState(false);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n const id = useId();\n const titleId = `${id}-title`;\n const descriptionId = `${id}-desc`;\n\n const setOpen = useCallback(\n (value: boolean) => {\n if (!isControlled) setInternalOpen(value);\n onOpenChange?.(value);\n },\n [isControlled, onOpenChange],\n );\n\n return (\n <DialogContext value={{ open, setOpen, titleId, descriptionId }}>\n {children}\n </DialogContext>\n );\n}\n\ntype DialogTriggerProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport function DialogTrigger({\n children,\n className,\n ...props\n}: DialogTriggerProps) {\n const { setOpen } = useDialogContext();\n\n return (\n <button\n type=\"button\"\n onClick={() => setOpen(true)}\n className={cn(className)}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nconst sizeStyles = {\n sm: \"max-w-sm\",\n md: \"max-w-lg\",\n lg: \"max-w-2xl\",\n full: \"max-w-[calc(100vw-2rem)]\",\n} as const;\n\ninterface DialogContentProps extends React.HTMLAttributes<HTMLDivElement> {\n size?: keyof typeof sizeStyles;\n}\n\nexport function DialogContent({\n size = \"md\",\n children,\n className,\n ...props\n}: DialogContentProps) {\n const { open, setOpen, titleId, descriptionId } = useDialogContext();\n const containerRef = useFocusTrap(open);\n useScrollLock(open);\n\n useEffect(() => {\n if (!open) return;\n\n function handleEscape(e: KeyboardEvent) {\n if (e.key === \"Escape\") setOpen(false);\n }\n\n document.addEventListener(\"keydown\", handleEscape);\n return () => document.removeEventListener(\"keydown\", handleEscape);\n }, [open, setOpen]);\n\n if (!open || typeof document === \"undefined\") return null;\n\n return createPortal(\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <div\n className=\"fixed inset-0 bg-overlay animate-fade-in motion-reduce:animate-none\"\n onClick={() => setOpen(false)}\n aria-hidden=\"true\"\n />\n <div\n ref={containerRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n className={cn(\n \"relative z-50 w-full max-h-[calc(100vh-6rem)] overflow-y-auto rounded-xl border border-border bg-card p-6 shadow-lg\",\n \"animate-scale-in motion-reduce:animate-none\",\n sizeStyles[size],\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </div>,\n document.body,\n );\n}\n\ntype DialogHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function DialogHeader({ className, ...props }: DialogHeaderProps) {\n return (\n <div\n className={cn(\"mb-4 space-y-1.5\", className)}\n {...props}\n />\n );\n}\n\ntype DialogTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\nexport function DialogTitle({ className, ...props }: DialogTitleProps) {\n const { titleId } = useDialogContext();\n return (\n <h2\n id={titleId}\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n );\n}\n\ntype DialogDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nexport function DialogDescription({\n className,\n ...props\n}: DialogDescriptionProps) {\n const { descriptionId } = useDialogContext();\n return (\n <p\n id={descriptionId}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\ntype DialogFooterProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function DialogFooter({ className, ...props }: DialogFooterProps) {\n return (\n <div\n className={cn(\"mt-6 flex items-center justify-end gap-2\", className)}\n {...props}\n />\n );\n}\n\ntype DialogCloseProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport function DialogClose({\n children,\n className,\n ...props\n}: DialogCloseProps) {\n const { setOpen } = useDialogContext();\n\n return (\n <button\n type=\"button\"\n onClick={() => setOpen(false)}\n className={cn(\n \"absolute right-4 top-4 rounded-md p-1 text-muted-foreground transition-colors hover:text-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n className,\n )}\n aria-label=\"Close\"\n {...props}\n >\n {children ?? (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M4 4l8 8M12 4l-8 8\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n )}\n </button>\n );\n}\n","\"use client\";\n\nimport {\n createContext,\n use,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../lib/cn\";\nimport { useClickOutside } from \"../hooks/use-click-outside\";\n\ninterface DropdownMenuContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n triggerRef: React.RefObject<HTMLButtonElement | null>;\n contentRef: React.RefObject<HTMLDivElement | null>;\n}\n\nconst DropdownMenuContext = createContext<DropdownMenuContextValue | null>(null);\n\nfunction useDropdownMenuContext() {\n const ctx = use(DropdownMenuContext);\n if (!ctx) throw new Error(\"DropdownMenu compounds must be used within <DropdownMenu>\");\n return ctx;\n}\n\ninterface DropdownMenuProps {\n children: React.ReactNode;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\n\nexport function DropdownMenu({\n children,\n open: controlledOpen,\n onOpenChange,\n}: DropdownMenuProps) {\n const [internalOpen, setInternalOpen] = useState(false);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n const setOpen = useCallback(\n (value: boolean) => {\n if (!isControlled) setInternalOpen(value);\n onOpenChange?.(value);\n },\n [isControlled, onOpenChange],\n );\n\n useClickOutside([contentRef, triggerRef], () => setOpen(false), open);\n\n return (\n <DropdownMenuContext value={{ open, setOpen, triggerRef, contentRef }}>\n <div className=\"relative inline-flex\">{children}</div>\n </DropdownMenuContext>\n );\n}\n\ntype DropdownMenuTriggerProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport function DropdownMenuTrigger({\n children,\n className,\n onClick,\n ...rest\n}: DropdownMenuTriggerProps) {\n const { open, setOpen, triggerRef } = useDropdownMenuContext();\n\n return (\n <button\n ref={triggerRef}\n type=\"button\"\n aria-expanded={open}\n aria-haspopup=\"menu\"\n onClick={(e) => {\n onClick?.(e);\n if (!e.defaultPrevented) setOpen(!open);\n }}\n className={cn(className)}\n {...rest}\n >\n {children}\n </button>\n );\n}\n\ninterface DropdownMenuContentProps extends React.HTMLAttributes<HTMLDivElement> {\n align?: \"start\" | \"center\" | \"end\";\n side?: \"bottom\" | \"top\";\n}\n\nexport function DropdownMenuContent({\n align = \"start\",\n side = \"bottom\",\n children,\n className,\n ...props\n}: DropdownMenuContentProps) {\n const { open, setOpen, triggerRef, contentRef } = useDropdownMenuContext();\n const focusIndexRef = useRef(-1);\n const [position, setPosition] = useState<{ top: number; left: number }>({ top: 0, left: 0 });\n\n useEffect(() => {\n if (!open || !triggerRef.current) return;\n\n function updatePosition() {\n const trigger = triggerRef.current;\n const content = contentRef.current;\n if (!trigger) return;\n\n const triggerRect = trigger.getBoundingClientRect();\n const contentWidth = content?.offsetWidth ?? 0;\n const contentHeight = content?.offsetHeight ?? 0;\n const gap = 4;\n const viewportPad = 8;\n\n let top = side === \"top\"\n ? triggerRect.top - gap - contentHeight\n : triggerRect.bottom + gap;\n\n let left: number;\n if (align === \"end\") {\n left = triggerRect.right - contentWidth;\n } else if (align === \"center\") {\n left = triggerRect.left + triggerRect.width / 2 - contentWidth / 2;\n } else {\n left = triggerRect.left;\n }\n\n // Clamp to viewport\n left = Math.max(viewportPad, Math.min(left, window.innerWidth - contentWidth - viewportPad));\n top = Math.max(viewportPad, Math.min(top, window.innerHeight - contentHeight - viewportPad));\n\n setPosition({ top, left });\n }\n\n requestAnimationFrame(updatePosition);\n\n window.addEventListener(\"scroll\", updatePosition, true);\n window.addEventListener(\"resize\", updatePosition);\n return () => {\n window.removeEventListener(\"scroll\", updatePosition, true);\n window.removeEventListener(\"resize\", updatePosition);\n };\n }, [open, side, align, triggerRef, contentRef]);\n\n useEffect(() => {\n if (!open) {\n focusIndexRef.current = -1;\n return;\n }\n\n function handleKeyDown(e: KeyboardEvent) {\n if (!contentRef.current) return;\n\n const items = contentRef.current.querySelectorAll<HTMLElement>(\n '[role=\"menuitem\"]:not([disabled])',\n );\n const count = items.length;\n if (count === 0) return;\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n focusIndexRef.current = focusIndexRef.current < count - 1 ? focusIndexRef.current + 1 : 0;\n items[focusIndexRef.current].focus();\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n focusIndexRef.current = focusIndexRef.current > 0 ? focusIndexRef.current - 1 : count - 1;\n items[focusIndexRef.current].focus();\n } else if (e.key === \"Escape\") {\n setOpen(false);\n triggerRef.current?.focus();\n } else if (e.key === \"Home\") {\n e.preventDefault();\n focusIndexRef.current = 0;\n items[0].focus();\n } else if (e.key === \"End\") {\n e.preventDefault();\n focusIndexRef.current = count - 1;\n items[count - 1].focus();\n }\n }\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [open, setOpen, triggerRef, contentRef]);\n\n if (!open || typeof document === \"undefined\") return null;\n\n const content = (\n <div\n ref={contentRef}\n role=\"menu\"\n style={{\n position: \"fixed\",\n top: position.top,\n left: position.left,\n zIndex: 50,\n }}\n className={cn(\n \"min-w-32 overflow-hidden rounded-lg border border-border bg-popover p-1 text-popover-foreground shadow-md\",\n \"animate-scale-in motion-reduce:animate-none\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n\n return createPortal(content, document.body);\n}\n\ninterface DropdownMenuItemProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n destructive?: boolean;\n}\n\nexport function DropdownMenuItem({\n destructive,\n children,\n className,\n onClick,\n ...rest\n}: DropdownMenuItemProps) {\n const { setOpen } = useDropdownMenuContext();\n\n return (\n <button\n role=\"menuitem\"\n type=\"button\"\n onClick={(e) => {\n onClick?.(e);\n setOpen(false);\n }}\n className={cn(\n \"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none transition-colors\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"hover:bg-accent hover:text-accent-foreground\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n destructive && \"text-destructive focus:text-destructive\",\n className,\n )}\n {...rest}\n >\n {children}\n </button>\n );\n}\n\ntype DropdownMenuSeparatorProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function DropdownMenuSeparator({\n className,\n ...props\n}: DropdownMenuSeparatorProps) {\n return (\n <div\n role=\"separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n );\n}\n\ntype DropdownMenuLabelProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function DropdownMenuLabel({\n className,\n ...props\n}: DropdownMenuLabelProps) {\n return (\n <div\n className={cn(\"px-2 py-1.5 text-xs font-semibold text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\ntype DropdownMenuGroupProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function DropdownMenuGroup({\n className,\n ...props\n}: DropdownMenuGroupProps) {\n return <div role=\"group\" className={cn(className)} {...props} />;\n}\n","import { cn } from \"../lib/cn\";\n\ninterface EmptyStateProps extends React.HTMLAttributes<HTMLDivElement> {\n icon?: React.ReactNode;\n title: string;\n description?: string;\n action?: React.ReactNode;\n}\n\nexport function EmptyState({\n icon,\n title,\n description,\n action,\n className,\n ...props\n}: EmptyStateProps) {\n return (\n <div\n className={cn(\n \"flex flex-col items-center justify-center px-6 py-12 text-center\",\n className,\n )}\n {...props}\n >\n {icon && (\n <div className=\"mb-4 text-muted-foreground [&>svg]:size-12\">\n {icon}\n </div>\n )}\n <h3 className=\"text-lg font-semibold text-foreground\">{title}</h3>\n {description && (\n <p className=\"mt-1 max-w-sm text-sm text-muted-foreground\">\n {description}\n </p>\n )}\n {action && <div className=\"mt-4\">{action}</div>}\n </div>\n );\n}\n","\"use client\";\n\nimport { useCallback, useId, useRef, useState } from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\ninterface FileUploadProps extends React.HTMLAttributes<HTMLDivElement> {\n accept?: string;\n maxSize?: number;\n multiple?: boolean;\n onFilesSelected?: (files: File[]) => void;\n disabled?: boolean;\n}\n\nexport function FileUpload({\n accept,\n maxSize,\n multiple,\n onFilesSelected,\n disabled,\n className,\n children,\n ...props\n}: FileUploadProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const inputId = useId();\n const [isDragOver, setIsDragOver] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n const validateFiles = useCallback(\n (files: File[]): File[] => {\n setError(null);\n const acceptTypes = accept\n ? accept.split(\",\").map((t) => t.trim())\n : null;\n\n const valid = files.filter((file) => {\n if (acceptTypes) {\n const ext = `.${file.name.split(\".\").pop()?.toLowerCase()}`;\n const matchesType = acceptTypes.some(\n (type) =>\n type === ext ||\n type === file.type ||\n (type.endsWith(\"/*\") && file.type.startsWith(type.replace(\"/*\", \"/\"))),\n );\n if (!matchesType) {\n setError(`File type not accepted: ${file.name}`);\n return false;\n }\n }\n if (maxSize && file.size > maxSize) {\n setError(\n `File too large: ${file.name} (max ${formatBytes(maxSize)})`,\n );\n return false;\n }\n return true;\n });\n\n return valid;\n },\n [accept, maxSize],\n );\n\n function handleFiles(fileList: FileList) {\n const files = Array.from(fileList);\n const valid = validateFiles(multiple ? files : files.slice(0, 1));\n if (valid.length > 0) onFilesSelected?.(valid);\n }\n\n function handleDrop(e: React.DragEvent) {\n e.preventDefault();\n setIsDragOver(false);\n if (disabled) return;\n handleFiles(e.dataTransfer.files);\n }\n\n return (\n <div className={cn(\"w-full\", className)} {...props}>\n {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */}\n <label\n htmlFor={inputId}\n onDragOver={(e) => {\n e.preventDefault();\n if (!disabled) setIsDragOver(true);\n }}\n onDragLeave={() => setIsDragOver(false)}\n onDrop={handleDrop}\n className={cn(\n \"flex flex-col items-center justify-center gap-2 rounded-lg border-2 border-dashed border-border p-8 text-center transition-colors\",\n \"hover:border-primary/50 hover:bg-muted/50\",\n isDragOver && \"border-primary bg-accent/50\",\n disabled && \"cursor-not-allowed opacity-50\",\n !disabled && \"cursor-pointer\",\n )}\n >\n <input\n ref={inputRef}\n id={inputId}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n onChange={(e) => {\n if (e.target.files) handleFiles(e.target.files);\n // Reset value so the same file can be re-selected\n e.target.value = \"\";\n }}\n className=\"fixed -top-[9999px] -left-[9999px] opacity-0\"\n disabled={disabled}\n tabIndex={-1}\n />\n {children ?? (\n <>\n <svg\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n className=\"text-muted-foreground\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M16 22V10m0 0l-4 4m4-4l4 4\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M6 20v4a2 2 0 002 2h16a2 2 0 002-2v-4\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n <div className=\"text-sm text-muted-foreground\">\n <span className=\"font-medium text-foreground\">\n Click to upload\n </span>{\" \"}\n or drag and drop\n </div>\n {accept && (\n <p className=\"text-xs text-muted-foreground\">\n Accepted: {accept}\n </p>\n )}\n {maxSize && (\n <p className=\"text-xs text-muted-foreground\">\n Max size: {formatBytes(maxSize)}\n </p>\n )}\n </>\n )}\n </label>\n {error && (\n <p role=\"alert\" className=\"mt-2 text-sm text-destructive\">\n {error}\n </p>\n )}\n </div>\n );\n}\n\nfunction formatBytes(bytes: number): string {\n if (bytes < 1024) return `${bytes} B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n}\n","import { cn } from \"../lib/cn\";\n\ninterface FormErrorProps extends React.HTMLAttributes<HTMLParagraphElement> {\n children: React.ReactNode;\n}\n\nexport function FormError({\n children,\n className,\n ...props\n}: FormErrorProps) {\n return (\n <p\n role=\"alert\"\n className={cn(\"flex items-center gap-1.5 text-sm text-destructive\", className)}\n {...props}\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className=\"shrink-0\"\n aria-hidden=\"true\"\n >\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M8 4.5v4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <circle cx=\"8\" cy=\"11\" r=\"0.75\" fill=\"currentColor\" />\n </svg>\n {children}\n </p>\n );\n}\n\ninterface FormSuccessProps extends React.HTMLAttributes<HTMLParagraphElement> {\n children: React.ReactNode;\n}\n\nexport function FormSuccess({\n children,\n className,\n ...props\n}: FormSuccessProps) {\n return (\n <p\n role=\"status\"\n className={cn(\"flex items-center gap-1.5 text-sm text-success\", className)}\n {...props}\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className=\"shrink-0\"\n aria-hidden=\"true\"\n >\n <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M5.5 8l2 2 3.5-3.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n {children}\n </p>\n );\n}\n","\"use client\";\n\nimport {\n createContext,\n use,\n useCallback,\n useRef,\n useState,\n} from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\ninterface HoverCardContextValue {\n open: boolean;\n triggerRef: React.RefObject<HTMLElement | null>;\n show: () => void;\n hide: () => void;\n}\n\nconst HoverCardContext = createContext<HoverCardContextValue | null>(null);\n\nfunction useHoverCardContext() {\n const ctx = use(HoverCardContext);\n if (!ctx) throw new Error(\"HoverCard compounds must be used within <HoverCard>\");\n return ctx;\n}\n\ninterface HoverCardProps {\n children: React.ReactNode;\n openDelay?: number;\n closeDelay?: number;\n}\n\nexport function HoverCard({\n children,\n openDelay = 300,\n closeDelay = 200,\n}: HoverCardProps) {\n const [open, setOpen] = useState(false);\n const triggerRef = useRef<HTMLElement | null>(null);\n const openTimerRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n const closeTimerRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n\n const show = useCallback(() => {\n clearTimeout(closeTimerRef.current);\n openTimerRef.current = setTimeout(() => setOpen(true), openDelay);\n }, [openDelay]);\n\n const hide = useCallback(() => {\n clearTimeout(openTimerRef.current);\n closeTimerRef.current = setTimeout(() => setOpen(false), closeDelay);\n }, [closeDelay]);\n\n return (\n <HoverCardContext value={{ open, triggerRef, show, hide }}>\n <div className=\"relative inline-flex\">{children}</div>\n </HoverCardContext>\n );\n}\n\ntype HoverCardTriggerProps = React.HTMLAttributes<HTMLSpanElement>;\n\nexport function HoverCardTrigger({\n children,\n className,\n ...props\n}: HoverCardTriggerProps) {\n const { triggerRef, show, hide } = useHoverCardContext();\n\n return (\n <span\n ref={triggerRef as React.RefObject<HTMLSpanElement>}\n onMouseEnter={show}\n onMouseLeave={hide}\n onFocus={show}\n onBlur={hide}\n className={cn(\"inline-flex\", className)}\n {...props}\n >\n {children}\n </span>\n );\n}\n\nconst sideStyles = {\n top: \"bottom-full mb-2\",\n bottom: \"top-full mt-2\",\n} as const;\n\nconst alignStyles = {\n start: \"left-0\",\n center: \"left-1/2 -translate-x-1/2\",\n end: \"right-0\",\n} as const;\n\ninterface HoverCardContentProps extends React.HTMLAttributes<HTMLDivElement> {\n side?: \"top\" | \"bottom\";\n align?: \"start\" | \"center\" | \"end\";\n}\n\nexport function HoverCardContent({\n side = \"bottom\",\n align = \"center\",\n children,\n className,\n ...props\n}: HoverCardContentProps) {\n const { open, show, hide } = useHoverCardContext();\n\n if (!open) return null;\n\n return (\n <div\n onMouseEnter={show}\n onMouseLeave={hide}\n className={cn(\n \"absolute z-50 w-64 rounded-lg border border-border bg-popover p-4 text-popover-foreground shadow-md\",\n \"animate-scale-in motion-reduce:animate-none\",\n sideStyles[side],\n alignStyles[align],\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n","\"use client\";\n\nimport { forwardRef, useId, useState } from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\ninterface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: string;\n error?: string;\n prefixIcon?: React.ReactNode;\n suffixIcon?: React.ReactNode;\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n function Input(\n {\n label,\n error,\n prefixIcon,\n suffixIcon,\n type = \"text\",\n className,\n id: providedId,\n ...props\n },\n ref,\n ) {\n const generatedId = useId();\n const id = providedId ?? generatedId;\n const errorId = `${id}-error`;\n const [showPassword, setShowPassword] = useState(false);\n const isPassword = type === \"password\";\n const inputType = isPassword && showPassword ? \"text\" : type;\n\n return (\n <div className=\"w-full\">\n {label && (\n <label htmlFor={id} className=\"mb-1.5 block text-sm font-medium text-foreground\">\n {label}\n </label>\n )}\n <div className=\"relative\">\n {prefixIcon && (\n <span className=\"pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground [&>svg]:size-4\">\n {prefixIcon}\n </span>\n )}\n <input\n ref={ref}\n id={id}\n type={inputType}\n aria-invalid={!!error}\n aria-describedby={error ? errorId : undefined}\n className={cn(\n \"flex h-10 w-full rounded-lg border border-input bg-input-background px-3 py-2 text-sm text-foreground\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"aria-[invalid=true]:border-destructive aria-[invalid=true]:ring-destructive/20\",\n prefixIcon && \"pl-10\",\n (suffixIcon || isPassword) && \"pr-10\",\n className,\n )}\n {...props}\n />\n {isPassword && (\n <button\n type=\"button\"\n onClick={() => setShowPassword((prev) => !prev)}\n className=\"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground\"\n aria-label={showPassword ? \"Hide password\" : \"Show password\"}\n tabIndex={-1}\n >\n {showPassword ? (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M2 2l12 12M6.5 6.5a2 2 0 002.8 2.8\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <path d=\"M3.5 5.5C2.3 6.5 1.5 8 1.5 8s2.5 4.5 6.5 4.5c1 0 1.9-.3 2.7-.7M10.5 10.5c1.2-1 2-2.5 2-2.5s-2.5-4.5-6.5-4.5c-.5 0-1 .1-1.4.2\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ) : (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M1.5 8s2.5-4.5 6.5-4.5S14.5 8 14.5 8s-2.5 4.5-6.5 4.5S1.5 8 1.5 8z\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <circle cx=\"8\" cy=\"8\" r=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n </svg>\n )}\n </button>\n )}\n {suffixIcon && !isPassword && (\n <span className=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground [&>svg]:size-4\">\n {suffixIcon}\n </span>\n )}\n </div>\n {error && (\n <p id={errorId} role=\"alert\" className=\"mt-1.5 text-sm text-destructive\">\n {error}\n </p>\n )}\n </div>\n );\n },\n);\n","\"use client\";\n\nimport { useEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../lib/cn\";\nimport { useScrollLock } from \"../hooks/use-scroll-lock\";\nimport { useFocusTrap } from \"../hooks/use-focus-trap\";\n\nconst SHORTCUT_SECTIONS = [\n {\n title: \"Create\",\n shortcuts: [\n { keys: [\"C\"], description: \"New Client\" },\n { keys: [\"T\"], description: \"Create Task\" },\n { keys: [\"E\"], description: \"New Engagement\" },\n { keys: [\"M\"], description: \"Compose Message\" },\n ],\n },\n {\n title: \"Go to\",\n shortcuts: [\n { keys: [\"G\", \"O\"], description: \"Overview\" },\n { keys: [\"G\", \"C\"], description: \"Clients\" },\n { keys: [\"G\", \"W\"], description: \"Workflow\" },\n { keys: [\"G\", \"D\"], description: \"Documents\" },\n { keys: [\"G\", \"B\"], description: \"Billing\" },\n { keys: [\"G\", \"M\"], description: \"Communications\" },\n { keys: [\"G\", \"A\"], description: \"Calendar\" },\n { keys: [\"G\", \"R\"], description: \"Reports\" },\n { keys: [\"G\", \"S\"], description: \"Settings\" },\n ],\n },\n {\n title: \"General\",\n shortcuts: [\n { keys: [\"\\u2318\", \"K\"], description: \"Command palette\" },\n { keys: [\"/\"], description: \"Focus search\" },\n { keys: [\"?\"], description: \"Keyboard shortcuts\" },\n { keys: [\"Esc\"], description: \"Close / go back\" },\n ],\n },\n] as const;\n\nexport function KeyboardShortcutsDialog() {\n const [open, setOpen] = useState(false);\n const containerRef = useFocusTrap(open);\n useScrollLock(open);\n\n useEffect(() => {\n function handleKeyDown(e: KeyboardEvent) {\n const target = e.target as HTMLElement;\n if (\n target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n target instanceof HTMLSelectElement ||\n target.isContentEditable\n ) return;\n\n if (e.key === \"?\" && !e.metaKey && !e.ctrlKey && !e.altKey) {\n e.preventDefault();\n setOpen((prev) => !prev);\n }\n\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n }\n }\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [open]);\n\n if (!open || typeof document === \"undefined\") return null;\n\n return createPortal(\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <div\n className=\"fixed inset-0 bg-overlay animate-fade-in motion-reduce:animate-none\"\n onClick={() => setOpen(false)}\n aria-hidden=\"true\"\n />\n <div\n ref={containerRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Keyboard shortcuts\"\n className=\"relative z-50 w-full max-w-lg overflow-hidden rounded-xl border border-border bg-card shadow-2xl animate-scale-in motion-reduce:animate-none\"\n >\n <div className=\"flex items-center justify-between border-b border-border px-5 py-4\">\n <h2 className=\"text-sm font-semibold text-foreground\">Keyboard Shortcuts</h2>\n <button\n type=\"button\"\n onClick={() => setOpen(false)}\n className=\"flex size-6 items-center justify-center rounded-md text-muted-foreground hover:text-foreground transition-colors\"\n aria-label=\"Close\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M18 6L6 18M6 6l12 12\" />\n </svg>\n </button>\n </div>\n\n <div className=\"max-h-[60vh] overflow-y-auto px-5 py-4\">\n <div className=\"grid grid-cols-2 gap-6\">\n {SHORTCUT_SECTIONS.map((section) => (\n <div key={section.title} className={cn(section.title === \"Go to\" && \"row-span-2\")}>\n <h3 className=\"mb-2.5 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground\">\n {section.title}\n </h3>\n <div className=\"space-y-1.5\">\n {section.shortcuts.map((shortcut) => (\n <div\n key={shortcut.description}\n className=\"flex items-center justify-between py-1\"\n >\n <span className=\"text-sm text-foreground\">{shortcut.description}</span>\n <div className=\"flex items-center gap-1\">\n {shortcut.keys.map((key, i) => (\n <span key={i}>\n {i > 0 && (\n <span className=\"mx-0.5 text-[10px] text-muted-foreground\">then</span>\n )}\n <kbd className=\"inline-flex min-w-[22px] items-center justify-center rounded border border-border bg-background px-1.5 py-0.5 font-mono text-[11px] font-medium text-muted-foreground\">\n {key}\n </kbd>\n </span>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n\n <div className=\"border-t border-border bg-muted/30 px-5 py-3\">\n <p className=\"text-[11px] text-muted-foreground\">\n Press <kbd className=\"rounded border border-border bg-background px-1 py-0.5 font-mono text-[10px]\">?</kbd> anytime to toggle this dialog\n </p>\n </div>\n </div>\n </div>,\n document.body,\n );\n}\n","import { cn } from \"../lib/cn\";\n\ninterface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {\n required?: boolean;\n}\n\nexport function Label({\n children,\n required,\n className,\n ...props\n}: LabelProps) {\n return (\n <label\n className={cn(\n \"text-sm font-medium leading-none text-foreground peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\n className,\n )}\n {...props}\n >\n {children}\n {required && (\n <span className=\"ml-0.5 text-destructive\" aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n );\n}\n","import Link from \"next/link\";\n\nimport { cn } from \"../lib/cn\";\n\nconst variantStyles = {\n primary: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n} as const;\n\nconst sizeStyles = {\n sm: \"h-8 px-3 text-sm gap-1.5\",\n md: \"h-10 px-4 text-sm gap-2\",\n lg: \"h-12 px-6 text-base gap-2\",\n} as const;\n\ninterface LinkButtonProps {\n href: string;\n variant?: keyof typeof variantStyles;\n size?: keyof typeof sizeStyles;\n iconLeft?: React.ReactNode;\n iconRight?: React.ReactNode;\n children: React.ReactNode;\n className?: string;\n onClick?: React.MouseEventHandler<HTMLAnchorElement>;\n}\n\nexport function LinkButton({\n href,\n variant = \"primary\",\n size = \"md\",\n iconLeft,\n iconRight,\n children,\n className,\n ...props\n}: LinkButtonProps) {\n return (\n <Link\n href={href}\n className={cn(\n \"inline-flex items-center justify-center rounded-lg font-medium whitespace-nowrap transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n \"motion-reduce:transition-none\",\n variantStyles[variant],\n sizeStyles[size],\n className,\n )}\n {...props}\n >\n {iconLeft && (\n <span className=\"size-4 shrink-0\" aria-hidden=\"true\">\n {iconLeft}\n </span>\n )}\n {children}\n {iconRight && (\n <span className=\"size-4 shrink-0\" aria-hidden=\"true\">\n {iconRight}\n </span>\n )}\n </Link>\n );\n}\n","import Link from \"next/link\";\nimport Image from \"next/image\";\n\nimport { cn } from \"../lib/cn\";\n\nconst sizeStyles = {\n sm: { icon: 24, text: \"text-sm\" },\n md: { icon: 32, text: \"text-lg\" },\n lg: { icon: 40, text: \"text-xl\" },\n} as const;\n\ninterface LogoProps {\n size?: keyof typeof sizeStyles;\n href?: string;\n showText?: boolean;\n className?: string;\n iconClassName?: string;\n textClassName?: string;\n /** Render wordmark for dark/brand surfaces: white \"Light\" + gold \"Taxes\". */\n inverted?: boolean;\n}\n\n// Brand gold — inline until design token is added in the color migration PR.\nconst BRAND_GOLD = \"#f3b700\";\n\nexport function Logo({\n size = \"md\",\n href = \"/\",\n showText = true,\n className,\n iconClassName,\n textClassName,\n inverted = false,\n}: LogoProps) {\n const s = sizeStyles[size];\n\n return (\n <Link\n href={href}\n className={cn(\"flex items-center gap-2.5\", className)}\n aria-label=\"LightTaxes\"\n >\n <Image\n src=\"/brand/mark.svg\"\n alt=\"\"\n width={s.icon}\n height={s.icon}\n priority\n className={cn(\"flex-shrink-0\", iconClassName)}\n />\n {showText && (\n <span\n className={cn(\n \"tracking-tight\",\n s.text,\n inverted ? \"text-white\" : \"text-foreground\",\n textClassName,\n )}\n >\n <span className=\"font-light\">Light</span>\n <span\n className=\"font-semibold\"\n style={inverted ? { color: BRAND_GOLD } : undefined}\n >\n Taxes\n </span>\n </span>\n )}\n </Link>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../lib/cn\";\nimport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuLabel,\n} from \"./dropdown-menu\";\n\n/* ─── Types ───────────────────────────────────────────────────── */\n\ninterface MultiFilterPillProps {\n label: string;\n icon?: React.ReactNode;\n selected: Set<string>;\n options: { key: string; label: string; dot?: string }[];\n onToggle: (key: string) => void;\n onClear: () => void;\n}\n\n/* ─── Component ───────────────────────────────────────────────── */\n\nexport function MultiFilterPill({\n label,\n icon,\n selected,\n options,\n onToggle,\n onClear,\n}: MultiFilterPillProps) {\n const active = selected.size > 0;\n const displayLabel = active\n ? selected.size === 1\n ? options.find((o) => o.key === [...selected][0])?.label ?? label\n : `${label} · ${selected.size}`\n : label;\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger\n className={cn(\n \"inline-flex items-center gap-1.5 px-2.5 py-1 text-xs font-medium rounded-full border transition-all\",\n active\n ? \"bg-primary/10 border-primary/30 text-primary\"\n : \"bg-background border-border text-muted-foreground hover:text-foreground hover:border-foreground/20\",\n )}\n >\n {icon}\n {displayLabel}\n {active ? (\n <span\n role=\"button\"\n tabIndex={0}\n onClick={(e) => { e.stopPropagation(); e.preventDefault(); onClear(); }}\n onKeyDown={(e) => { if (e.key === \"Enter\" || e.key === \" \") { e.stopPropagation(); e.preventDefault(); onClear(); } }}\n className=\"ml-0.5 size-3.5 rounded-full inline-flex items-center justify-center hover:bg-primary/20 transition-colors\"\n aria-label={`Clear ${label} filter`}\n >\n <svg width=\"8\" height=\"8\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M18 6L6 18M6 6l12 12\" stroke=\"currentColor\" strokeWidth=\"3\" strokeLinecap=\"round\" />\n </svg>\n </span>\n ) : (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 24 24\" fill=\"none\" className=\"shrink-0 opacity-60\">\n <path d=\"M6 9l6 6 6-6\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )}\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\" className=\"min-w-[160px] max-h-[280px] overflow-y-auto\">\n <DropdownMenuLabel>{label}</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {options.map((opt) => {\n const isSelected = selected.has(opt.key);\n return (\n <DropdownMenuItem\n key={opt.key}\n onClick={() => onToggle(opt.key)}\n className=\"gap-2\"\n >\n <span className={cn(\n \"size-4 rounded border flex items-center justify-center shrink-0 transition-colors\",\n isSelected ? \"bg-primary border-primary text-primary-foreground\" : \"border-input bg-background\",\n )}>\n {isSelected && (\n <svg width=\"10\" height=\"10\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M20 6L9 17l-5-5\" stroke=\"currentColor\" strokeWidth=\"3\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )}\n </span>\n {opt.dot && <span className={cn(\"size-2 rounded-full shrink-0\", opt.dot)} />}\n {opt.label}\n </DropdownMenuItem>\n );\n })}\n {active && (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={onClear} className=\"text-muted-foreground justify-center text-xs\">\n Clear selection\n </DropdownMenuItem>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n","import { cn } from \"../lib/cn\";\n\ninterface MultiSelectFieldProps {\n label: string;\n options: string[];\n value: string;\n onChange: (value: string) => void;\n className?: string;\n}\n\nexport function MultiSelectField({\n label,\n options,\n value,\n onChange,\n className,\n}: MultiSelectFieldProps) {\n const selected = new Set(value ? value.split(\",\") : []);\n\n const toggle = (option: string) => {\n const next = new Set(selected);\n if (next.has(option)) {\n next.delete(option);\n } else {\n next.add(option);\n }\n onChange(Array.from(next).join(\",\"));\n };\n\n return (\n <div className={cn(\"w-full\", className)}>\n <label className=\"mb-1.5 block text-sm font-medium text-foreground\">{label}</label>\n <div className=\"flex flex-wrap gap-1.5\">\n {options.map((option) => (\n <button\n key={option}\n type=\"button\"\n onClick={() => toggle(option)}\n className={cn(\n \"rounded-full px-2.5 py-0.5 text-xs font-medium transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background\",\n selected.has(option)\n ? \"bg-primary text-primary-foreground\"\n : \"border border-input bg-background text-muted-foreground hover:bg-muted/50\",\n )}\n >\n {option}\n </button>\n ))}\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport {\n type KeyboardEvent,\n type ClipboardEvent,\n type ChangeEvent,\n useRef,\n useCallback,\n useEffect,\n} from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\ninterface OTPInputProps {\n name: string;\n length?: number;\n error?: string;\n autoFocus?: boolean;\n className?: string;\n defaultValue?: string;\n}\n\nexport function OTPInput({\n name,\n length = 6,\n error,\n autoFocus = false,\n className,\n defaultValue,\n}: OTPInputProps) {\n const inputRefs = useRef<(HTMLInputElement | null)[]>([]);\n const hiddenRef = useRef<HTMLInputElement | null>(null);\n\n const getDigits = useCallback((): string[] => {\n const val = hiddenRef.current?.value ?? defaultValue ?? \"\";\n return val\n .split(\"\")\n .concat(Array(length).fill(\"\"))\n .slice(0, length);\n }, [defaultValue, length]);\n\n const updateHiddenValue = useCallback((digits: string[]) => {\n if (hiddenRef.current) {\n hiddenRef.current.value = digits.join(\"\").replace(/\\s/g, \"\");\n }\n }, []);\n\n const syncInputs = useCallback(\n (digits: string[]) => {\n for (let i = 0; i < length; i++) {\n const el = inputRefs.current[i];\n if (el) el.value = digits[i] === \" \" ? \"\" : (digits[i] ?? \"\");\n }\n },\n [length],\n );\n\n const focusInput = useCallback(\n (index: number) => {\n if (index >= 0 && index < length) {\n inputRefs.current[index]?.focus();\n }\n },\n [length],\n );\n\n useEffect(() => {\n if (autoFocus) {\n inputRefs.current[0]?.focus();\n }\n }, [autoFocus]);\n\n useEffect(() => {\n const initial = defaultValue ?? \"\";\n const digits = initial\n .split(\"\")\n .concat(Array(length).fill(\"\"))\n .slice(0, length);\n syncInputs(digits);\n }, [defaultValue, length, syncInputs]);\n\n const handleChange = useCallback(\n (index: number, e: ChangeEvent<HTMLInputElement>) => {\n const char = e.target.value.replace(/\\D/g, \"\").slice(-1);\n if (!char) {\n e.target.value = \"\";\n return;\n }\n\n e.target.value = char;\n const digits = getDigits();\n digits[index] = char;\n updateHiddenValue(digits);\n syncInputs(digits);\n\n if (index < length - 1) {\n focusInput(index + 1);\n }\n },\n [getDigits, updateHiddenValue, syncInputs, length, focusInput],\n );\n\n const handleKeyDown = useCallback(\n (index: number, e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Backspace\") {\n e.preventDefault();\n const digits = getDigits();\n\n if (digits[index] && digits[index] !== \" \") {\n digits[index] = \"\";\n updateHiddenValue(digits);\n syncInputs(digits);\n } else if (index > 0) {\n digits[index - 1] = \"\";\n updateHiddenValue(digits);\n syncInputs(digits);\n focusInput(index - 1);\n }\n } else if (e.key === \"ArrowLeft\") {\n e.preventDefault();\n focusInput(index - 1);\n } else if (e.key === \"ArrowRight\") {\n e.preventDefault();\n focusInput(index + 1);\n }\n },\n [getDigits, updateHiddenValue, syncInputs, focusInput],\n );\n\n const handlePaste = useCallback(\n (e: ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n const pasted = e.clipboardData\n .getData(\"text\")\n .replace(/\\D/g, \"\")\n .slice(0, length);\n if (!pasted) return;\n\n const digits = pasted\n .split(\"\")\n .concat(Array(length).fill(\"\"))\n .slice(0, length);\n updateHiddenValue(digits);\n syncInputs(digits);\n focusInput(Math.min(pasted.length, length - 1));\n },\n [length, updateHiddenValue, syncInputs, focusInput],\n );\n\n const initialDigits = (defaultValue ?? \"\")\n .split(\"\")\n .concat(Array(length).fill(\"\"))\n .slice(0, length);\n\n return (\n <div className={cn(\"flex flex-col gap-1.5\", className)}>\n <input\n ref={hiddenRef}\n type=\"hidden\"\n name={name}\n defaultValue={defaultValue ?? \"\"}\n />\n <div\n className=\"flex justify-center gap-2.5\"\n role=\"group\"\n aria-label=\"One-time password\"\n >\n {Array.from({ length }).map((_, index) => (\n <input\n key={index}\n ref={(el) => {\n inputRefs.current[index] = el;\n }}\n type=\"text\"\n inputMode=\"numeric\"\n autoComplete={index === 0 ? \"one-time-code\" : \"off\"}\n maxLength={1}\n defaultValue={\n initialDigits[index] === \" \" ? \"\" : (initialDigits[index] ?? \"\")\n }\n aria-label={`Digit ${index + 1} of ${length}`}\n aria-invalid={error ? true : undefined}\n onChange={(e) => handleChange(index, e)}\n onKeyDown={(e) => handleKeyDown(index, e)}\n onPaste={handlePaste}\n onFocus={(e) => e.target.select()}\n className={cn(\n \"h-12 w-10 rounded-lg border border-input bg-input-background text-center text-lg font-semibold text-foreground outline-none transition-all\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"sm:h-14 sm:w-12 sm:text-xl\",\n error &&\n \"border-destructive ring-destructive/20\",\n )}\n />\n ))}\n </div>\n {error && (\n <p role=\"alert\" className=\"text-center text-sm text-destructive\">\n {error}\n </p>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../lib/cn\";\n\ninterface PaginationProps extends React.HTMLAttributes<HTMLElement> {\n currentPage: number;\n totalPages: number;\n onPageChange: (page: number) => void;\n siblingCount?: number;\n /** Total item count — enables \"Showing X–Y of Z\" label */\n totalItems?: number;\n /** Items per page — used with totalItems for range display */\n pageSize?: number;\n}\n\nfunction getPageNumbers(\n current: number,\n total: number,\n siblings: number,\n): (number | \"ellipsis\")[] {\n const range = (start: number, end: number) =>\n Array.from({ length: end - start + 1 }, (_, i) => start + i);\n\n const totalSlots = siblings * 2 + 5;\n if (total <= totalSlots) return range(1, total);\n\n const leftSibling = Math.max(current - siblings, 2);\n const rightSibling = Math.min(current + siblings, total - 1);\n\n const showLeftEllipsis = leftSibling > 2;\n const showRightEllipsis = rightSibling < total - 1;\n\n if (!showLeftEllipsis && showRightEllipsis) {\n const leftRange = range(1, 3 + 2 * siblings);\n return [...leftRange, \"ellipsis\", total];\n }\n\n if (showLeftEllipsis && !showRightEllipsis) {\n const rightRange = range(total - (2 + 2 * siblings), total);\n return [1, \"ellipsis\", ...rightRange];\n }\n\n return [1, \"ellipsis\", ...range(leftSibling, rightSibling), \"ellipsis\", total];\n}\n\nconst NAV_BUTTON =\n \"inline-flex size-7 items-center justify-center rounded-md text-muted-foreground/70 transition-colors hover:bg-muted hover:text-foreground disabled:pointer-events-none disabled:opacity-40\";\n\nconst PAGE_BUTTON_BASE =\n \"inline-flex h-7 min-w-7 items-center justify-center rounded-md px-2 text-xs font-medium tabular-nums transition-colors\";\n\nexport function Pagination({\n currentPage,\n totalPages,\n onPageChange,\n siblingCount = 1,\n totalItems,\n pageSize,\n className,\n ...props\n}: PaginationProps) {\n if (totalPages <= 1) return null;\n\n const pages = getPageNumbers(currentPage, totalPages, siblingCount);\n\n // Range label: \"Showing 1–10 of 47\" or fallback to \"Page 1 of 5\"\n let contextLabel: string;\n if (totalItems != null && pageSize != null) {\n const start = (currentPage - 1) * pageSize + 1;\n const end = Math.min(currentPage * pageSize, totalItems);\n contextLabel = `${start}\\u2013${end} of ${totalItems}`;\n } else {\n contextLabel = `Page ${currentPage} of ${totalPages}`;\n }\n\n return (\n <nav\n aria-label=\"Pagination\"\n className={cn(\n \"flex items-center justify-between gap-4\",\n className,\n )}\n {...props}\n >\n {/* Context label */}\n <span className=\"shrink-0 text-xs text-muted-foreground/60\">\n {contextLabel}\n </span>\n\n {/* Page controls */}\n <div className=\"flex items-center gap-0.5\">\n {/* Previous */}\n <button\n type=\"button\"\n onClick={() => onPageChange(currentPage - 1)}\n disabled={currentPage <= 1}\n className={NAV_BUTTON}\n aria-label=\"Previous page\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M10 3l-5 5 5 5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n\n {/* Page numbers */}\n {pages.map((page, i) =>\n page === \"ellipsis\" ? (\n <span\n key={`ellipsis-${i}`}\n className=\"flex h-7 w-5 items-center justify-center text-xs text-muted-foreground/40 select-none\"\n aria-hidden=\"true\"\n >\n ···\n </span>\n ) : (\n <button\n key={page}\n type=\"button\"\n onClick={() => onPageChange(page)}\n aria-current={page === currentPage ? \"page\" : undefined}\n className={cn(\n PAGE_BUTTON_BASE,\n page === currentPage\n ? \"bg-foreground text-background shadow-sm\"\n : \"text-muted-foreground hover:bg-muted hover:text-foreground\",\n )}\n >\n {page}\n </button>\n ),\n )}\n\n {/* Next */}\n <button\n type=\"button\"\n onClick={() => onPageChange(currentPage + 1)}\n disabled={currentPage >= totalPages}\n className={NAV_BUTTON}\n aria-label=\"Next page\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M6 3l5 5-5 5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n </div>\n </nav>\n );\n}\n","export function stripToDigits(input: string): string {\n return input.replace(/\\D/g, \"\").slice(0, 10);\n}\n\nexport function formatPhoneDisplay(raw: string): string {\n const digits = stripToDigits(raw);\n if (digits.length === 0) return \"\";\n if (digits.length <= 3) return `(${digits}`;\n if (digits.length <= 6) return `(${digits.slice(0, 3)}) ${digits.slice(3)}`;\n return `(${digits.slice(0, 3)}) ${digits.slice(3, 6)}-${digits.slice(6)}`;\n}\n","\"use client\";\n\nimport { useCallback, useRef, useState } from \"react\";\n\nimport { Input } from \"./input\";\nimport { stripToDigits, formatPhoneDisplay } from \"../lib/phone\";\n\ntype InputProps = React.ComponentProps<typeof Input>;\n\ninterface PhoneInputProps extends Omit<InputProps, \"type\" | \"onChange\" | \"value\" | \"defaultValue\"> {\n value?: string;\n defaultValue?: string;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport function PhoneInput({\n value,\n defaultValue,\n onChange,\n name,\n ...props\n}: PhoneInputProps) {\n const isControlled = value !== undefined;\n const [internalDigits, setInternalDigits] = useState(() =>\n stripToDigits(defaultValue ?? \"\"),\n );\n\n const hiddenRef = useRef<HTMLInputElement>(null);\n\n const digits = isControlled ? stripToDigits(value) : internalDigits;\n const displayValue = formatPhoneDisplay(digits);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const raw = stripToDigits(e.target.value);\n\n if (isControlled && onChange) {\n const syntheticEvent = {\n ...e,\n target: { ...e.target, value: raw },\n } as React.ChangeEvent<HTMLInputElement>;\n onChange(syntheticEvent);\n } else {\n setInternalDigits(raw);\n if (hiddenRef.current) {\n hiddenRef.current.value = raw;\n }\n }\n },\n [isControlled, onChange],\n );\n\n return (\n <>\n <Input\n {...props}\n type=\"tel\"\n value={displayValue}\n onChange={handleChange}\n />\n {!isControlled && name && (\n <input type=\"hidden\" ref={hiddenRef} name={name} defaultValue={digits} />\n )}\n </>\n );\n}\n","\"use client\";\n\nimport {\n createContext,\n use,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../lib/cn\";\nimport { useClickOutside } from \"../hooks/use-click-outside\";\n\ntype Side = \"top\" | \"bottom\" | \"left\" | \"right\";\ntype Align = \"start\" | \"center\" | \"end\";\n\ninterface PopoverContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n triggerRef: React.RefObject<HTMLButtonElement | null>;\n contentRef: React.RefObject<HTMLDivElement | null>;\n}\n\nconst PopoverContext = createContext<PopoverContextValue | null>(null);\n\nfunction usePopoverContext() {\n const ctx = use(PopoverContext);\n if (!ctx) throw new Error(\"Popover compound components must be used within <Popover>\");\n return ctx;\n}\n\ninterface PopoverProps {\n children: React.ReactNode;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\n\nexport function Popover({ children, open: controlledOpen, onOpenChange }: PopoverProps) {\n const [internalOpen, setInternalOpen] = useState(false);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n\n const setOpen = useCallback(\n (value: boolean) => {\n if (!isControlled) setInternalOpen(value);\n onOpenChange?.(value);\n },\n [isControlled, onOpenChange],\n );\n\n useClickOutside([contentRef, triggerRef], () => setOpen(false), open);\n\n return (\n <PopoverContext value={{ open, setOpen, triggerRef, contentRef }}>\n <div className=\"relative inline-flex\">{children}</div>\n </PopoverContext>\n );\n}\n\ntype PopoverTriggerProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport function PopoverTrigger({\n children,\n className,\n ...props\n}: PopoverTriggerProps) {\n const { open, setOpen, triggerRef } = usePopoverContext();\n\n return (\n <button\n ref={triggerRef}\n type=\"button\"\n aria-expanded={open}\n aria-haspopup=\"dialog\"\n onClick={() => setOpen(!open)}\n className={cn(className)}\n {...props}\n >\n {children}\n </button>\n );\n}\n\ninterface PopoverContentProps extends React.HTMLAttributes<HTMLDivElement> {\n side?: Side;\n align?: Align;\n}\n\nexport function PopoverContent({\n side = \"bottom\",\n align = \"center\",\n children,\n className,\n ...props\n}: PopoverContentProps) {\n const { open, triggerRef, contentRef } = usePopoverContext();\n const [position, setPosition] = useState<{ top: number; left: number }>({ top: 0, left: 0 });\n\n useEffect(() => {\n if (!open || !triggerRef.current) return;\n\n function updatePosition() {\n const trigger = triggerRef.current;\n const content = contentRef.current;\n if (!trigger) return;\n\n const triggerRect = trigger.getBoundingClientRect();\n const contentWidth = content?.offsetWidth ?? 0;\n const contentHeight = content?.offsetHeight ?? 0;\n const gap = 8;\n const viewportPad = 8;\n let top = 0;\n let left = 0;\n\n // Vertical positioning\n if (side === \"bottom\") {\n top = triggerRect.bottom + gap;\n } else if (side === \"top\") {\n top = triggerRect.top - gap - contentHeight;\n } else if (side === \"left\" || side === \"right\") {\n top = triggerRect.top + triggerRect.height / 2 - contentHeight / 2;\n }\n\n // Horizontal positioning\n if (side === \"left\") {\n left = triggerRect.left - gap - contentWidth;\n } else if (side === \"right\") {\n left = triggerRect.right + gap;\n } else if (align === \"start\") {\n left = triggerRect.left;\n } else if (align === \"end\") {\n left = triggerRect.right - contentWidth;\n } else {\n left = triggerRect.left + triggerRect.width / 2 - contentWidth / 2;\n }\n\n // Clamp to viewport\n left = Math.max(viewportPad, Math.min(left, window.innerWidth - contentWidth - viewportPad));\n top = Math.max(viewportPad, Math.min(top, window.innerHeight - contentHeight - viewportPad));\n\n setPosition({ top, left });\n }\n\n // Position after a frame so content dimensions are measured\n requestAnimationFrame(updatePosition);\n\n window.addEventListener(\"scroll\", updatePosition, true);\n window.addEventListener(\"resize\", updatePosition);\n return () => {\n window.removeEventListener(\"scroll\", updatePosition, true);\n window.removeEventListener(\"resize\", updatePosition);\n };\n }, [open, side, align, triggerRef, contentRef]);\n\n if (!open) return null;\n\n const content = (\n <div\n ref={contentRef}\n role=\"dialog\"\n style={{\n position: \"fixed\",\n top: position.top,\n left: position.left,\n zIndex: 50,\n }}\n className={cn(\n \"min-w-32 rounded-lg border border-border bg-popover p-4 text-popover-foreground shadow-md\",\n \"animate-scale-in motion-reduce:animate-none\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n\n return createPortal(content, document.body);\n}\n","import { cn } from \"../lib/cn\";\n\nconst variantStyles = {\n default: \"bg-primary\",\n success: \"bg-success\",\n warning: \"bg-warning\",\n destructive: \"bg-destructive\",\n info: \"bg-info\",\n} as const;\n\ninterface ProgressBarProps extends React.HTMLAttributes<HTMLDivElement> {\n value: number;\n max?: number;\n label?: string;\n showPercentage?: boolean;\n variant?: keyof typeof variantStyles;\n}\n\nexport function ProgressBar({\n value,\n max = 100,\n label,\n showPercentage,\n variant,\n className,\n ...props\n}: ProgressBarProps) {\n const percentage = Math.min(100, Math.max(0, (value / max) * 100));\n\n const resolvedVariant =\n variant ??\n (percentage >= 80\n ? \"success\"\n : percentage >= 50\n ? \"warning\"\n : \"default\");\n\n return (\n <div className={cn(\"w-full\", className)} {...props}>\n {(label || showPercentage) && (\n <div className=\"mb-1.5 flex items-center justify-between text-sm\">\n {label && (\n <span className=\"font-medium text-foreground\">{label}</span>\n )}\n {showPercentage && (\n <span className=\"text-muted-foreground\">\n {Math.round(percentage)}%\n </span>\n )}\n </div>\n )}\n <div\n className=\"h-2 w-full overflow-hidden rounded-full bg-app-gray-track\"\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={max}\n aria-label={label ?? \"Progress\"}\n >\n <div\n className={cn(\n \"h-full rounded-full transition-all duration-500 ease-out\",\n variantStyles[resolvedVariant],\n )}\n style={{ width: `${percentage}%` }}\n />\n </div>\n </div>\n );\n}\n","import { cn } from \"../lib/cn\";\n\ninterface ProgressRingProps extends React.HTMLAttributes<HTMLDivElement> {\n value: number;\n max?: number;\n size?: number;\n strokeWidth?: number;\n label?: string;\n sublabel?: string;\n}\n\nexport function ProgressRing({\n value,\n max = 100,\n size = 80,\n strokeWidth = 6,\n label,\n sublabel,\n className,\n ...props\n}: ProgressRingProps) {\n const percentage = Math.min(100, Math.max(0, (value / max) * 100));\n const radius = (size - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const offset = circumference - (percentage / 100) * circumference;\n\n return (\n <div\n className={cn(\"inline-flex flex-col items-center gap-1\", className)}\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={max}\n aria-label={label ?? \"Progress\"}\n {...props}\n >\n <svg width={size} height={size} className=\"-rotate-90\">\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n className=\"text-app-gray-track\"\n />\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n strokeLinecap=\"round\"\n className=\"text-primary transition-all duration-500 ease-out\"\n />\n </svg>\n {label && (\n <span className=\"text-sm font-medium text-foreground\">{label}</span>\n )}\n {sublabel && (\n <span className=\"text-xs text-muted-foreground\">{sublabel}</span>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport { createContext, use, useCallback, useId, useState } from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\ninterface RadioGroupContextValue {\n name: string;\n value: string | undefined;\n onChange: (value: string) => void;\n}\n\nconst RadioGroupContext = createContext<RadioGroupContextValue | null>(null);\n\nfunction useRadioGroup() {\n const ctx = use(RadioGroupContext);\n if (!ctx) throw new Error(\"RadioGroupItem must be used within <RadioGroup>\");\n return ctx;\n}\n\ninterface RadioGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n name?: string;\n}\n\nexport function RadioGroup({\n value: controlledValue,\n defaultValue,\n onValueChange,\n name: providedName,\n children,\n className,\n ...props\n}: RadioGroupProps) {\n const generatedName = useId();\n const name = providedName ?? generatedName;\n const [internalValue, setInternalValue] = useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n\n const currentValue = isControlled ? controlledValue : internalValue;\n\n const onChange = useCallback(\n (val: string) => {\n if (!isControlled) setInternalValue(val);\n onValueChange?.(val);\n },\n [isControlled, onValueChange],\n );\n\n return (\n <RadioGroupContext value={{ name, value: currentValue, onChange }}>\n <div role=\"radiogroup\" className={cn(\"space-y-2\", className)} {...props}>\n {children}\n </div>\n </RadioGroupContext>\n );\n}\n\ninterface RadioGroupItemProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"type\" | \"onChange\"> {\n value: string;\n label?: string;\n}\n\nexport function RadioGroupItem({\n value,\n label,\n className,\n id: providedId,\n ...props\n}: RadioGroupItemProps) {\n const generatedId = useId();\n const id = providedId ?? generatedId;\n const group = useRadioGroup();\n const isSelected = group.value === value;\n\n return (\n <div className={cn(\"flex items-center gap-2\", className)}>\n <div className=\"relative flex items-center justify-center\">\n <input\n type=\"radio\"\n id={id}\n name={group.name}\n value={value}\n checked={isSelected}\n onChange={() => group.onChange(value)}\n className=\"peer sr-only\"\n {...props}\n />\n <div\n className={cn(\n \"flex size-4 items-center justify-center rounded-full border border-input bg-background transition-colors\",\n \"peer-checked:border-primary\",\n \"peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-background\",\n \"peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n )}\n aria-hidden=\"true\"\n >\n <span\n className={cn(\n \"block size-2 rounded-full bg-primary transition-transform\",\n isSelected ? \"scale-100\" : \"scale-0\",\n )}\n />\n </div>\n </div>\n {label && (\n <label\n htmlFor={id}\n className=\"cursor-pointer text-sm text-foreground\"\n >\n {label}\n </label>\n )}\n </div>\n );\n}\n","import { cn } from \"../lib/cn\";\n\ninterface ScrollAreaProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nexport function ScrollArea({\n children,\n className,\n ...props\n}: ScrollAreaProps) {\n return (\n <div\n className={cn(\"overflow-auto\", className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n","\"use client\";\n\nimport { useEffect, useState } from \"react\";\n\nexport function useDebounce<T>(value: T, delay = 300): T {\n const [debouncedValue, setDebouncedValue] = useState<T>(value);\n\n useEffect(() => {\n const timer = setTimeout(() => setDebouncedValue(value), delay);\n return () => clearTimeout(timer);\n }, [value, delay]);\n\n return debouncedValue;\n}\n","\"use client\";\n\nimport { useEffect, useRef } from \"react\";\n\nimport { cn } from \"../lib/cn\";\nimport { useDebounce } from \"../hooks/use-debounce\";\n\ninterface SearchInputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"type\" | \"onChange\"> {\n value: string;\n onValueChange: (value: string) => void;\n onSearch?: (value: string) => void;\n debounceMs?: number;\n}\n\nexport function SearchInput({\n value,\n onValueChange,\n onSearch,\n debounceMs = 300,\n className,\n placeholder = \"Search...\",\n ...props\n}: SearchInputProps) {\n const debouncedValue = useDebounce(value, debounceMs);\n const isFirstRender = useRef(true);\n\n useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return;\n }\n onSearch?.(debouncedValue);\n }, [debouncedValue, onSearch]);\n\n return (\n <div className={cn(\"relative\", className)}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n className=\"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground\"\n aria-hidden=\"true\"\n >\n <circle cx=\"7\" cy=\"7\" r=\"5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path\n d=\"M11 11l3 3\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n <input\n type=\"search\"\n value={value}\n onChange={(e) => onValueChange(e.target.value)}\n placeholder={placeholder}\n className={cn(\n \"flex h-10 w-full rounded-lg border border-input bg-input-background pl-10 pr-9 text-sm text-foreground\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n )}\n {...props}\n />\n {value && (\n <button\n type=\"button\"\n onClick={() => onValueChange(\"\")}\n className=\"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground\"\n aria-label=\"Clear search\"\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M3 3l8 8M11 3l-8 8\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n </button>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport { useState, useRef, useCallback, useMemo } from \"react\";\n\nimport { Badge } from \"./badge\";\nimport { Input } from \"./input\";\nimport { CloseIcon, SearchIcon, PlusIcon } from \"./icons\";\nimport { useClickOutside } from \"../hooks/use-click-outside\";\nimport { cn } from \"../lib/cn\";\n\nexport interface SearchSelectOption {\n id: string;\n label: string;\n}\n\ninterface SearchSelectProps {\n options: SearchSelectOption[];\n selected: SearchSelectOption[];\n onSelect: (option: SearchSelectOption) => void;\n onRemove: (option: SearchSelectOption) => void;\n onCreate?: (name: string) => void;\n placeholder?: string;\n className?: string;\n disabled?: boolean;\n}\n\nexport function SearchSelect({\n options,\n selected,\n onSelect,\n onRemove,\n onCreate,\n placeholder = \"Search...\",\n className,\n disabled = false,\n}: SearchSelectProps) {\n const [search, setSearch] = useState(\"\");\n const [open, setOpen] = useState(false);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useClickOutside([containerRef], () => setOpen(false), open);\n\n const selectedIds = useMemo(() => new Set(selected.map((s) => s.id)), [selected]);\n\n const filtered = useMemo(\n () =>\n options.filter(\n (opt) =>\n !selectedIds.has(opt.id) &&\n opt.label.toLowerCase().includes(search.toLowerCase()),\n ),\n [options, selectedIds, search],\n );\n\n const trimmedSearch = search.trim();\n const hasExactMatch = useMemo(\n () =>\n options.some((opt) => opt.label.toLowerCase() === trimmedSearch.toLowerCase()),\n [options, trimmedSearch],\n );\n const showCreate = !!onCreate && trimmedSearch.length > 0 && !hasExactMatch;\n\n const handleSelect = useCallback(\n (option: SearchSelectOption) => {\n onSelect(option);\n setSearch(\"\");\n },\n [onSelect],\n );\n\n const handleCreate = useCallback(() => {\n if (onCreate && trimmedSearch) {\n onCreate(trimmedSearch);\n setSearch(\"\");\n setOpen(false);\n }\n }, [onCreate, trimmedSearch]);\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === \"Escape\" && open) {\n e.stopPropagation();\n setOpen(false);\n }\n },\n [open],\n );\n\n return (\n <div\n ref={containerRef}\n className={cn(\"relative\", className)}\n onKeyDown={handleKeyDown}\n >\n {/* Selected chips */}\n {selected.length > 0 && (\n <div className=\"mb-2 flex flex-wrap gap-1.5\">\n {selected.map((item) => (\n <Badge key={item.id} variant=\"secondary\" size=\"sm\" className=\"gap-1\">\n {item.label}\n <button\n type=\"button\"\n onClick={() => onRemove(item)}\n disabled={disabled}\n className=\"ml-0.5 rounded-full p-0.5 hover:bg-muted disabled:opacity-50\"\n aria-label={`Remove ${item.label}`}\n >\n <CloseIcon size={10} />\n </button>\n </Badge>\n ))}\n </div>\n )}\n\n {/* Search input */}\n <Input\n value={search}\n onChange={(e) => {\n setSearch(e.target.value);\n setOpen(true);\n }}\n onFocus={() => setOpen(true)}\n placeholder={placeholder}\n disabled={disabled}\n prefixIcon={<SearchIcon size={14} />}\n className=\"h-9 focus-visible:ring-0 focus-visible:ring-offset-0\"\n />\n\n {/* Dropdown */}\n {open && (\n <ul\n role=\"listbox\"\n className=\"absolute left-0 right-0 z-50 mt-1 max-h-48 overflow-y-auto rounded-md border border-input bg-background shadow-md\"\n >\n {filtered.length === 0 && !showCreate ? (\n <li className=\"px-3 py-2 text-sm text-muted-foreground\">\n {search ? \"No results found.\" : \"No options available.\"}\n </li>\n ) : (\n <>\n {filtered.map((option) => (\n <li\n key={option.id}\n role=\"option\"\n aria-selected={false}\n onClick={() => handleSelect(option)}\n className=\"cursor-pointer px-3 py-2 text-sm text-foreground hover:bg-muted/50\"\n >\n {option.label}\n </li>\n ))}\n {showCreate && (\n <li\n role=\"option\"\n aria-selected={false}\n onClick={handleCreate}\n className=\"flex cursor-pointer items-center gap-1.5 border-t border-border/50 px-3 py-2 text-sm text-primary hover:bg-muted/50\"\n >\n <PlusIcon size={14} />\n Create &ldquo;{trimmedSearch}&rdquo;\n </li>\n )}\n </>\n )}\n </ul>\n )}\n </div>\n );\n}\n","import { cn } from \"../lib/cn\";\n\ninterface SectionHeaderProps {\n title: string;\n description?: string;\n align?: \"left\" | \"center\";\n className?: string;\n}\n\nexport function SectionHeader({\n title,\n description,\n align = \"center\",\n className,\n}: SectionHeaderProps) {\n return (\n <div\n className={cn(\n \"mb-16\",\n align === \"center\" && \"mx-auto max-w-2xl text-center\",\n align === \"left\" && \"max-w-lg\",\n className,\n )}\n >\n <h2 className=\"mb-4 text-3xl font-semibold text-foreground md:text-4xl\">\n {title}\n </h2>\n {description && (\n <p className=\"text-lg leading-relaxed text-muted-foreground\">\n {description}\n </p>\n )}\n </div>\n );\n}\n","import { cn } from \"../lib/cn\";\n\nconst maxWidthStyles = {\n sm: \"max-w-3xl\",\n md: \"max-w-4xl\",\n lg: \"max-w-5xl\",\n xl: \"max-w-6xl\",\n} as const;\n\ninterface SectionProps extends React.HTMLAttributes<HTMLElement> {\n maxWidth?: keyof typeof maxWidthStyles;\n as?: \"section\" | \"div\";\n}\n\nexport function Section({\n maxWidth = \"xl\",\n as: Tag = \"section\",\n children,\n className,\n ...props\n}: SectionProps) {\n return (\n <Tag className={cn(\"px-6 py-24\", className)} {...props}>\n <div className={cn(\"mx-auto\", maxWidthStyles[maxWidth])}>\n {children}\n </div>\n </Tag>\n );\n}\n","\"use client\";\n\nimport {\n createContext,\n use,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n} from \"react\";\n\nimport { cn } from \"../lib/cn\";\nimport { useClickOutside } from \"../hooks/use-click-outside\";\n\ninterface SelectOption {\n value: string;\n label: string;\n disabled?: boolean;\n labelSuffix?: React.ReactNode;\n}\n\ninterface SelectContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n value: string | undefined;\n onSelect: (value: string) => void;\n triggerRef: React.RefObject<HTMLButtonElement | null>;\n contentRef: React.RefObject<HTMLDivElement | null>;\n options: SelectOption[];\n filteredOptions: SelectOption[];\n focusIndex: number;\n setFocusIndex: (index: number) => void;\n placeholder?: string;\n listboxId: string;\n searchable: boolean;\n searchQuery: string;\n setSearchQuery: (query: string) => void;\n}\n\nconst SelectContext = createContext<SelectContextValue | null>(null);\n\nfunction useSelectContext() {\n const ctx = use(SelectContext);\n if (!ctx) throw new Error(\"Select compounds must be used within <Select>\");\n return ctx;\n}\n\ninterface SelectProps {\n children?: React.ReactNode;\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n options: SelectOption[];\n placeholder?: string;\n searchable?: boolean;\n}\n\nexport function Select({\n children,\n value: controlledValue,\n defaultValue,\n onValueChange,\n options,\n placeholder = \"Select...\",\n searchable = false,\n}: SelectProps) {\n const [internalValue, setInternalValue] = useState(defaultValue);\n const [open, setOpen] = useState(false);\n const [focusIndex, setFocusIndex] = useState(-1);\n const [searchQuery, setSearchQuery] = useState(\"\");\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : internalValue;\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const listboxId = useId();\n\n const filteredOptions = searchable && searchQuery\n ? options.filter((o) => o.label.toLowerCase().includes(searchQuery.toLowerCase()))\n : options;\n\n const onSelect = useCallback(\n (val: string) => {\n if (!isControlled) setInternalValue(val);\n onValueChange?.(val);\n setOpen(false);\n setSearchQuery(\"\");\n },\n [isControlled, onValueChange],\n );\n\n useClickOutside([contentRef, triggerRef], () => { setOpen(false); setSearchQuery(\"\"); }, open);\n\n return (\n <SelectContext\n value={{\n open,\n setOpen,\n value,\n onSelect,\n triggerRef,\n contentRef,\n options,\n filteredOptions,\n focusIndex,\n setFocusIndex,\n placeholder,\n listboxId,\n searchable,\n searchQuery,\n setSearchQuery,\n }}\n >\n <div className=\"relative w-full\">\n {children ?? (\n <>\n <SelectTrigger />\n <SelectContent />\n </>\n )}\n </div>\n </SelectContext>\n );\n}\n\ntype SelectTriggerProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport function SelectTrigger({ className, ...props }: SelectTriggerProps) {\n const { open, setOpen, value, triggerRef, options, placeholder, listboxId } =\n useSelectContext();\n const selectedLabel = options.find((o) => o.value === value)?.label;\n\n return (\n <button\n ref={triggerRef}\n type=\"button\"\n role=\"combobox\"\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n aria-controls={listboxId}\n onClick={() => setOpen(!open)}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-lg border border-input bg-input-background px-3 text-sm\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n !selectedLabel && \"text-muted-foreground\",\n className,\n )}\n {...props}\n >\n <span className=\"truncate\">\n {selectedLabel ?? placeholder}\n </span>\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n className={cn(\n \"shrink-0 text-muted-foreground transition-transform\",\n open && \"rotate-180\",\n )}\n aria-hidden=\"true\"\n >\n <path\n d=\"M3.5 5.25l3.5 3.5 3.5-3.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n );\n}\n\ntype SelectContentProps = React.HTMLAttributes<HTMLDivElement> & {\n position?: \"bottom\" | \"top\";\n};\n\nexport function SelectContent({ className, position = \"bottom\", ...props }: SelectContentProps) {\n const {\n open,\n setOpen,\n value,\n onSelect,\n triggerRef,\n contentRef,\n filteredOptions,\n focusIndex,\n setFocusIndex,\n listboxId,\n searchable,\n searchQuery,\n setSearchQuery,\n } = useSelectContext();\n const searchInputRef = useRef<HTMLInputElement | null>(null);\n\n useEffect(() => {\n if (open && searchable) {\n setTimeout(() => searchInputRef.current?.focus(), 0);\n }\n }, [open, searchable]);\n\n useEffect(() => {\n if (!open) return;\n\n function handleKeyDown(e: KeyboardEvent) {\n if (searchable && e.key.length === 1 && !e.ctrlKey && !e.metaKey) return;\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setFocusIndex(findNextEnabled(focusIndex, 1, filteredOptions));\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setFocusIndex(findNextEnabled(focusIndex, -1, filteredOptions));\n } else if (e.key === \"Enter\") {\n e.preventDefault();\n if (focusIndex >= 0 && !filteredOptions[focusIndex].disabled) {\n onSelect(filteredOptions[focusIndex].value);\n }\n } else if (e.key === \"Escape\") {\n setOpen(false);\n setSearchQuery(\"\");\n triggerRef.current?.focus();\n } else if (e.key === \"Home\") {\n e.preventDefault();\n setFocusIndex(filteredOptions.findIndex((o) => !o.disabled));\n } else if (e.key === \"End\") {\n e.preventDefault();\n setFocusIndex(findLastIndex(filteredOptions, (o) => !o.disabled));\n } else if (!searchable && e.key.length === 1) {\n const char = e.key.toLowerCase();\n const startIdx = focusIndex + 1;\n const match = filteredOptions.findIndex(\n (o, i) => i >= startIdx && !o.disabled && o.label.toLowerCase().startsWith(char),\n );\n if (match >= 0) {\n setFocusIndex(match);\n } else {\n const wrap = filteredOptions.findIndex(\n (o) => !o.disabled && o.label.toLowerCase().startsWith(char),\n );\n if (wrap >= 0) setFocusIndex(wrap);\n }\n }\n }\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [open, focusIndex, filteredOptions, onSelect, setOpen, setFocusIndex, setSearchQuery, triggerRef, searchable]);\n\n // Scroll focused item into view\n useEffect(() => {\n if (!contentRef.current || focusIndex < 0) return;\n const items = contentRef.current.querySelectorAll('[role=\"option\"]');\n items[focusIndex]?.scrollIntoView({ block: \"nearest\" });\n }, [focusIndex, contentRef]);\n\n if (!open) return null;\n\n return (\n <div\n ref={contentRef}\n id={listboxId}\n role=\"listbox\"\n className={cn(\n \"absolute z-50 max-h-60 w-full overflow-auto rounded-lg border border-border bg-popover p-1 shadow-md\",\n \"animate-scale-in motion-reduce:animate-none\",\n position === \"top\" ? \"bottom-full mb-1\" : \"top-full mt-1\",\n className,\n )}\n {...props}\n >\n {searchable && (\n <div className=\"sticky top-0 bg-popover p-1 pb-0.5\">\n <input\n ref={searchInputRef}\n type=\"text\"\n value={searchQuery}\n onChange={(e) => { setSearchQuery(e.target.value); setFocusIndex(0); }}\n placeholder=\"Search...\"\n className=\"w-full rounded-md border border-input bg-input-background px-2.5 py-1.5 text-sm outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n )}\n {filteredOptions.length === 0 && (\n <div className=\"px-2 py-3 text-center text-sm text-muted-foreground\">No results</div>\n )}\n {filteredOptions.map((option, index) => (\n <button\n key={option.value}\n type=\"button\"\n role=\"option\"\n aria-selected={option.value === value}\n disabled={option.disabled}\n data-focused={index === focusIndex || undefined}\n onClick={() => onSelect(option.value)}\n onMouseEnter={() => setFocusIndex(index)}\n className={cn(\n \"flex w-full items-center justify-between rounded-md px-2 py-1.5 text-sm outline-none transition-colors\",\n \"hover:bg-accent hover:text-accent-foreground\",\n \"data-[focused]:bg-accent data-[focused]:text-accent-foreground\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n option.value === value && \"font-medium\",\n )}\n >\n <span className=\"flex items-center gap-1.5 truncate\">\n {option.label}\n {option.labelSuffix}\n </span>\n {option.value === value && (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3 7l3 3 5-5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )}\n </button>\n ))}\n </div>\n );\n}\n\nfunction findNextEnabled(\n current: number,\n direction: 1 | -1,\n options: SelectOption[],\n): number {\n const len = options.length;\n let idx = current + direction;\n while (idx >= 0 && idx < len) {\n if (!options[idx].disabled) return idx;\n idx += direction;\n }\n return current;\n}\n\nfunction findLastIndex<T>(arr: T[], predicate: (item: T) => boolean): number {\n for (let i = arr.length - 1; i >= 0; i--) {\n if (predicate(arr[i])) return i;\n }\n return -1;\n}\n","import { cn } from \"../lib/cn\";\n\ninterface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: \"horizontal\" | \"vertical\";\n decorative?: boolean;\n}\n\nexport function Separator({\n orientation = \"horizontal\",\n decorative = true,\n className,\n ...props\n}: SeparatorProps) {\n const semanticProps = decorative\n ? { role: \"none\" as const }\n : { role: \"separator\" as const, \"aria-orientation\": orientation };\n\n return (\n <div\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-px w-full\" : \"h-full w-px\",\n className,\n )}\n {...semanticProps}\n {...props}\n />\n );\n}\n","\"use client\";\n\nimport {\n createContext,\n use,\n useCallback,\n useEffect,\n useId,\n useState,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../lib/cn\";\nimport { useFocusTrap } from \"../hooks/use-focus-trap\";\nimport { useScrollLock } from \"../hooks/use-scroll-lock\";\n\ntype Side = \"right\" | \"left\" | \"bottom\";\n\ninterface SheetContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n side: Side;\n titleId: string;\n}\n\nconst SheetContext = createContext<SheetContextValue | null>(null);\n\nfunction useSheetContext() {\n const ctx = use(SheetContext);\n if (!ctx) throw new Error(\"Sheet compound components must be used within <Sheet>\");\n return ctx;\n}\n\ninterface SheetProps {\n children: React.ReactNode;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n side?: Side;\n}\n\nexport function Sheet({\n children,\n open: controlledOpen,\n onOpenChange,\n side = \"right\",\n}: SheetProps) {\n const [internalOpen, setInternalOpen] = useState(false);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n const titleId = `${useId()}-title`;\n\n const setOpen = useCallback(\n (value: boolean) => {\n if (!isControlled) setInternalOpen(value);\n onOpenChange?.(value);\n },\n [isControlled, onOpenChange],\n );\n\n return (\n <SheetContext value={{ open, setOpen, side, titleId }}>\n {children}\n </SheetContext>\n );\n}\n\ntype SheetTriggerProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport function SheetTrigger({\n children,\n className,\n ...props\n}: SheetTriggerProps) {\n const { setOpen } = useSheetContext();\n\n return (\n <button\n type=\"button\"\n onClick={() => setOpen(true)}\n className={cn(className)}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nconst sideStyles = {\n right: \"inset-y-0 right-0 h-full w-80 max-w-[85vw] border-l animate-sheet-right\",\n left: \"inset-y-0 left-0 h-full w-80 max-w-[85vw] border-r animate-sheet-left\",\n bottom: \"inset-x-0 bottom-0 h-auto max-h-[85vh] border-t animate-sheet-bottom\",\n} as const;\n\ninterface SheetContentProps extends React.HTMLAttributes<HTMLDivElement> {\n showCloseButton?: boolean;\n}\n\nexport function SheetContent({\n children,\n className,\n showCloseButton = true,\n ...props\n}: SheetContentProps) {\n const { open, setOpen, side, titleId } = useSheetContext();\n const containerRef = useFocusTrap(open);\n useScrollLock(open);\n\n useEffect(() => {\n if (!open) return;\n\n function handleEscape(e: KeyboardEvent) {\n if (e.key === \"Escape\") setOpen(false);\n }\n\n document.addEventListener(\"keydown\", handleEscape);\n return () => document.removeEventListener(\"keydown\", handleEscape);\n }, [open, setOpen]);\n\n if (!open || typeof document === \"undefined\") return null;\n\n return createPortal(\n <div className=\"fixed inset-0 z-50\">\n <div\n className=\"fixed inset-0 bg-overlay animate-fade-in motion-reduce:animate-none\"\n onClick={() => setOpen(false)}\n aria-hidden=\"true\"\n />\n <div\n ref={containerRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n className={cn(\n \"fixed z-50 flex flex-col bg-card shadow-xl motion-reduce:animate-none\",\n sideStyles[side],\n className,\n )}\n {...props}\n >\n {showCloseButton && (\n <button\n type=\"button\"\n onClick={() => setOpen(false)}\n className=\"absolute right-4 top-4 rounded-md p-1 text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n aria-label=\"Close\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M4 4l8 8M12 4l-8 8\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n </button>\n )}\n {children}\n </div>\n </div>,\n document.body,\n );\n}\n\ntype SheetHeaderProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function SheetHeader({ className, ...props }: SheetHeaderProps) {\n return (\n <div className={cn(\"space-y-1.5 p-6 pb-0\", className)} {...props} />\n );\n}\n\ntype SheetTitleProps = React.HTMLAttributes<HTMLHeadingElement>;\n\nexport function SheetTitle({ className, ...props }: SheetTitleProps) {\n const { titleId } = useSheetContext();\n return (\n <h2 id={titleId} className={cn(\"text-lg font-semibold text-foreground\", className)} {...props} />\n );\n}\n\ntype SheetDescriptionProps = React.HTMLAttributes<HTMLParagraphElement>;\n\nexport function SheetDescription({ className, ...props }: SheetDescriptionProps) {\n return (\n <p className={cn(\"text-sm text-muted-foreground\", className)} {...props} />\n );\n}\n\ntype SheetFooterProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function SheetFooter({ className, ...props }: SheetFooterProps) {\n return (\n <div\n className={cn(\"mt-auto flex items-center justify-end gap-2 border-t border-border p-6\", className)}\n {...props}\n />\n );\n}\n\ntype SheetCloseProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport function SheetClose({\n children,\n className,\n ...props\n}: SheetCloseProps) {\n const { setOpen } = useSheetContext();\n\n return (\n <button\n type=\"button\"\n onClick={() => setOpen(false)}\n className={cn(className)}\n {...props}\n >\n {children}\n </button>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../lib/cn\";\nimport { Sheet, SheetContent } from \"./sheet\";\n\n/* ─── Width presets ─────────────────────────────────────────── */\n\nconst widthClasses = {\n sm: \"w-[420px]\",\n md: \"w-[640px]\",\n lg: \"w-[50vw]\",\n} as const;\n\n/* ─── Root ──────────────────────────────────────────────────── */\n\ninterface SideDrawerProps {\n open: boolean;\n onClose: () => void;\n width?: \"sm\" | \"md\" | \"lg\";\n side?: \"right\" | \"left\";\n children: React.ReactNode;\n}\n\nexport function SideDrawer({\n open,\n onClose,\n width = \"lg\",\n side = \"right\",\n children,\n}: SideDrawerProps) {\n return (\n <Sheet open={open} onOpenChange={(v) => { if (!v) onClose(); }} side={side}>\n <SheetContent\n className={cn(\n \"flex flex-col p-0\",\n widthClasses[width],\n \"max-lg:w-[80vw] max-md:w-[95vw]\",\n \"[&>button:first-child]:hidden\",\n )}\n >\n {children}\n </SheetContent>\n </Sheet>\n );\n}\n\n/* ─── Header ────────────────────────────────────────────────── */\n\ninterface SideDrawerHeaderProps {\n title: string;\n subtitle?: string;\n onClose?: () => void;\n className?: string;\n}\n\nfunction SideDrawerHeader({ title, subtitle, onClose, className }: SideDrawerHeaderProps) {\n return (\n <div className={cn(\"shrink-0 border-b border-border px-6 py-4\", className)}>\n <div className=\"flex items-start justify-between gap-4\">\n <div className=\"min-w-0\">\n <h2 className=\"text-lg font-semibold text-foreground truncate\">{title}</h2>\n {subtitle && (\n <p className=\"mt-0.5 text-sm text-muted-foreground\">{subtitle}</p>\n )}\n </div>\n {onClose && (\n <button\n type=\"button\"\n onClick={onClose}\n className=\"shrink-0 rounded-md p-1 text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n aria-label=\"Close\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M4 4l8 8M12 4l-8 8\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n </button>\n )}\n </div>\n </div>\n );\n}\n\n/* ─── Body ──────────────────────────────────────────────────── */\n\ninterface SideDrawerBodyProps {\n children: React.ReactNode;\n className?: string;\n}\n\nfunction SideDrawerBody({ children, className }: SideDrawerBodyProps) {\n return (\n <div className={cn(\"flex-1 overflow-y-auto px-6 py-4\", className)}>\n {children}\n </div>\n );\n}\n\n/* ─── Footer ────────────────────────────────────────────────── */\n\ninterface SideDrawerFooterProps {\n children: React.ReactNode;\n className?: string;\n}\n\nfunction SideDrawerFooter({ children, className }: SideDrawerFooterProps) {\n return (\n <div className={cn(\"shrink-0 border-t border-border px-6 py-4 flex items-center justify-end gap-3\", className)}>\n {children}\n </div>\n );\n}\n\n/* ─── Attach sub-components ─────────────────────────────────── */\n\nSideDrawer.Header = SideDrawerHeader;\nSideDrawer.Body = SideDrawerBody;\nSideDrawer.Footer = SideDrawerFooter;\n","import { cn } from \"../lib/cn\";\n\ninterface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n}\n\nexport function Skeleton({ className, ...props }: SkeletonProps) {\n return (\n <div\n className={cn(\"skeleton rounded-md\", className)}\n aria-hidden=\"true\"\n {...props}\n />\n );\n}\n\ninterface SkeletonTextProps extends React.HTMLAttributes<HTMLDivElement> {\n lines?: number;\n}\n\nexport function SkeletonText({\n lines = 3,\n className,\n ...props\n}: SkeletonTextProps) {\n return (\n <div className={cn(\"space-y-2\", className)} aria-hidden=\"true\" {...props}>\n {Array.from({ length: lines }).map((_, i) => (\n <div\n key={i}\n className={cn(\n \"skeleton h-4 rounded-md\",\n i === lines - 1 && \"w-3/4\",\n )}\n />\n ))}\n </div>\n );\n}\n\ninterface SkeletonCircleProps extends React.HTMLAttributes<HTMLDivElement> {\n size?: number;\n}\n\nexport function SkeletonCircle({\n size = 40,\n className,\n ...props\n}: SkeletonCircleProps) {\n return (\n <div\n className={cn(\"skeleton rounded-full\", className)}\n style={{ width: size, height: size }}\n aria-hidden=\"true\"\n {...props}\n />\n );\n}\n","\"use client\";\n\nimport { forwardRef, useId } from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\ninterface SliderProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"type\"> {\n label?: string;\n showValue?: boolean;\n}\n\nexport const Slider = forwardRef<HTMLInputElement, SliderProps>(\n function Slider(\n { label, showValue, className, id: providedId, min = 0, max = 100, ...props },\n ref,\n ) {\n const generatedId = useId();\n const id = providedId ?? generatedId;\n\n return (\n <div className={cn(\"w-full\", className)}>\n {(label || showValue) && (\n <div className=\"mb-2 flex items-center justify-between text-sm\">\n {label && (\n <label htmlFor={id} className=\"font-medium text-foreground\">\n {label}\n </label>\n )}\n {showValue && (\n <span className=\"text-muted-foreground\">{props.value ?? props.defaultValue ?? min}</span>\n )}\n </div>\n )}\n <input\n ref={ref}\n id={id}\n type=\"range\"\n min={min}\n max={max}\n aria-valuemin={Number(min)}\n aria-valuemax={Number(max)}\n aria-valuenow={props.value !== undefined ? Number(props.value) : undefined}\n className={cn(\n \"h-2 w-full cursor-pointer appearance-none rounded-full bg-app-gray-track\",\n \"[&::-webkit-slider-thumb]:size-4 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-primary [&::-webkit-slider-thumb]:shadow-sm\",\n \"[&::-moz-range-thumb]:size-4 [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:border-0 [&::-moz-range-thumb]:bg-primary [&::-moz-range-thumb]:shadow-sm\",\n \"focus-visible:outline-none focus-visible:[&::-webkit-slider-thumb]:ring-2 focus-visible:[&::-webkit-slider-thumb]:ring-ring focus-visible:[&::-webkit-slider-thumb]:ring-offset-2\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n )}\n {...props}\n />\n </div>\n );\n },\n);\n","import { cn } from \"../lib/cn\";\nimport { StarIcon } from \"./icons\";\n\ninterface StarRatingProps {\n rating: number;\n max?: number;\n size?: number;\n className?: string;\n}\n\nexport function StarRating({\n rating,\n max = 5,\n size = 20,\n className,\n}: StarRatingProps) {\n return (\n <div\n className={cn(\"flex gap-1\", className)}\n role=\"img\"\n aria-label={`${rating} out of ${max} stars`}\n >\n {Array.from({ length: max }).map((_, i) => (\n <StarIcon\n key={i}\n size={size}\n className={i < rating ? \"text-warning\" : \"text-muted\"}\n />\n ))}\n </div>\n );\n}\n","import { cn } from \"../lib/cn\";\n\ninterface StatProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n label: string;\n}\n\nexport function Stat({ value, label, className, ...props }: StatProps) {\n return (\n <div className={cn(\"flex items-center gap-2\", className)} {...props}>\n <span className=\"text-base font-semibold text-foreground\">{value}</span>\n <span className=\"text-sm text-muted-foreground\">{label}</span>\n </div>\n );\n}\n","import { cn } from \"../lib/cn\";\n\ninterface Step {\n label: string;\n description?: string;\n}\n\ninterface StepperProps extends React.HTMLAttributes<HTMLDivElement> {\n steps: Step[];\n currentStep: number;\n}\n\nexport function Stepper({\n steps,\n currentStep,\n className,\n ...props\n}: StepperProps) {\n return (\n <div\n className={cn(\"flex items-center gap-2\", className)}\n aria-label=\"Progress\"\n {...props}\n >\n {steps.map((step, index) => {\n const isCompleted = index < currentStep;\n const isActive = index === currentStep;\n\n return (\n <div key={step.label} className=\"flex items-center gap-2\">\n <div className=\"flex items-center gap-2\">\n <div\n className={cn(\n \"flex size-8 items-center justify-center rounded-full text-sm font-medium transition-colors\",\n isCompleted && \"bg-success text-success-foreground\",\n isActive && \"bg-primary text-primary-foreground\",\n !isCompleted && !isActive && \"bg-muted text-muted-foreground\",\n )}\n aria-current={isActive ? \"step\" : undefined}\n >\n {isCompleted ? (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M3 7l3 3 5-5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ) : (\n index + 1\n )}\n </div>\n <div className=\"flex flex-col\">\n <span\n className={cn(\n \"text-sm font-medium\",\n isActive ? \"text-foreground\" : \"text-muted-foreground\",\n )}\n >\n {step.label}\n </span>\n {step.description && (\n <span className=\"text-xs text-muted-foreground\">\n {step.description}\n </span>\n )}\n </div>\n </div>\n {index < steps.length - 1 && (\n <div\n className={cn(\n \"mx-2 h-px w-8 sm:w-12\",\n isCompleted ? \"bg-success\" : \"bg-border\",\n )}\n />\n )}\n </div>\n );\n })}\n </div>\n );\n}\n","\"use client\";\n\nimport { useFormStatus } from \"react-dom\";\n\nimport { Button } from \"./button\";\nimport { cn } from \"../lib/cn\";\n\ninterface SubmitButtonProps\n extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"type\"> {\n pendingText?: string;\n children: React.ReactNode;\n}\n\nexport function SubmitButton({\n pendingText,\n children,\n className,\n ...props\n}: SubmitButtonProps) {\n const { pending } = useFormStatus();\n\n return (\n <Button\n type=\"submit\"\n loading={pending}\n disabled={pending}\n className={cn(\"w-full\", className)}\n {...props}\n >\n {pending && pendingText ? pendingText : children}\n </Button>\n );\n}\n","\"use client\";\n\nimport { useId, useState } from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\nconst sizeConfig = {\n sm: { track: \"h-5 w-9\", thumb: \"size-3.5\", translate: \"translate-x-4\" },\n md: { track: \"h-6 w-11\", thumb: \"size-4.5\", translate: \"translate-x-5\" },\n} as const;\n\ninterface SwitchProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"onChange\"> {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n label?: string;\n size?: keyof typeof sizeConfig;\n}\n\nexport function Switch({\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n label,\n size = \"md\",\n className,\n id: providedId,\n ...props\n}: SwitchProps) {\n const generatedId = useId();\n const id = providedId ?? generatedId;\n const config = sizeConfig[size];\n\n const isControlled = controlledChecked !== undefined;\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n const isChecked = isControlled ? controlledChecked : internalChecked;\n\n function handleToggle() {\n const next = !isChecked;\n if (!isControlled) setInternalChecked(next);\n onCheckedChange?.(next);\n }\n\n return (\n <div className={cn(\"inline-flex items-center gap-2\", className)}>\n <button\n type=\"button\"\n role=\"switch\"\n id={id}\n aria-checked={isChecked}\n onClick={handleToggle}\n className={cn(\n \"relative inline-flex shrink-0 cursor-pointer items-center rounded-full transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n config.track,\n isChecked ? \"bg-primary\" : \"bg-switch-background\",\n )}\n {...props}\n >\n <span\n className={cn(\n \"pointer-events-none block rounded-full bg-background shadow-sm transition-transform\",\n config.thumb,\n isChecked ? config.translate : \"translate-x-0.5\",\n )}\n />\n </button>\n {label && (\n <label htmlFor={id} className=\"cursor-pointer text-sm text-foreground\">\n {label}\n </label>\n )}\n </div>\n );\n}\n","import { cn } from \"../lib/cn\";\n\ninterface TableProps extends React.TableHTMLAttributes<HTMLTableElement> {\n wrapperClassName?: string;\n}\n\nexport function Table({ className, wrapperClassName, ...props }: TableProps) {\n return (\n <div className={cn(\"w-full overflow-x-auto\", wrapperClassName)}>\n <table\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n );\n}\n\ntype TableHeaderProps = React.HTMLAttributes<HTMLTableSectionElement>;\n\nexport function TableHeader({ className, ...props }: TableHeaderProps) {\n return (\n <thead\n className={cn(\"[&_tr]:border-b\", className)}\n {...props}\n />\n );\n}\n\ntype TableBodyProps = React.HTMLAttributes<HTMLTableSectionElement>;\n\nexport function TableBody({ className, ...props }: TableBodyProps) {\n return (\n <tbody\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n );\n}\n\ntype TableRowProps = React.HTMLAttributes<HTMLTableRowElement>;\n\nexport function TableRow({ className, ...props }: TableRowProps) {\n return (\n <tr\n className={cn(\n \"border-b border-border transition-colors hover:bg-muted/50\",\n className,\n )}\n {...props}\n />\n );\n}\n\ntype TableHeadProps = React.ThHTMLAttributes<HTMLTableCellElement>;\n\nexport function TableHead({ className, ...props }: TableHeadProps) {\n return (\n <th\n className={cn(\n \"h-10 px-3 text-left align-middle text-xs font-medium whitespace-nowrap text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n}\n\ntype TableCellProps = React.TdHTMLAttributes<HTMLTableCellElement>;\n\nexport function TableCell({ className, ...props }: TableCellProps) {\n return (\n <td\n className={cn(\"px-3 py-2.5 align-middle text-foreground\", className)}\n {...props}\n />\n );\n}\n\ntype TableCaptionProps = React.HTMLAttributes<HTMLTableCaptionElement>;\n\nexport function TableCaption({ className, ...props }: TableCaptionProps) {\n return (\n <caption\n className={cn(\"mt-2 text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n","\"use client\";\n\nimport {\n createContext,\n use,\n useCallback,\n useRef,\n useState,\n} from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\ninterface TabsContextValue {\n activeTab: string;\n setActiveTab: (value: string) => void;\n}\n\nconst TabsContext = createContext<TabsContextValue | null>(null);\n\nfunction useTabsContext() {\n const ctx = use(TabsContext);\n if (!ctx) throw new Error(\"Tabs compounds must be used within <Tabs>\");\n return ctx;\n}\n\ninterface TabsProps extends React.HTMLAttributes<HTMLDivElement> {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n}\n\nexport function Tabs({\n value: controlledValue,\n defaultValue = \"\",\n onValueChange,\n children,\n className,\n ...props\n}: TabsProps) {\n const [internalValue, setInternalValue] = useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n const activeTab = isControlled ? controlledValue : internalValue;\n\n const setActiveTab = useCallback(\n (val: string) => {\n if (!isControlled) setInternalValue(val);\n onValueChange?.(val);\n },\n [isControlled, onValueChange],\n );\n\n return (\n <TabsContext value={{ activeTab, setActiveTab }}>\n <div className={cn(className)} {...props}>\n {children}\n </div>\n </TabsContext>\n );\n}\n\ntype TabsListProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport function TabsList({ children, className, ...props }: TabsListProps) {\n const listRef = useRef<HTMLDivElement>(null);\n\n function handleKeyDown(e: React.KeyboardEvent) {\n if (!listRef.current) return;\n const tabs = listRef.current.querySelectorAll<HTMLButtonElement>(\n '[role=\"tab\"]:not([disabled])',\n );\n const count = tabs.length;\n if (count === 0) return;\n\n const currentIndex = Array.from(tabs).findIndex(\n (tab) => tab === document.activeElement,\n );\n\n let nextIndex = currentIndex;\n if (e.key === \"ArrowRight\") {\n nextIndex = currentIndex < count - 1 ? currentIndex + 1 : 0;\n } else if (e.key === \"ArrowLeft\") {\n nextIndex = currentIndex > 0 ? currentIndex - 1 : count - 1;\n } else if (e.key === \"Home\") {\n nextIndex = 0;\n } else if (e.key === \"End\") {\n nextIndex = count - 1;\n } else {\n return;\n }\n\n e.preventDefault();\n tabs[nextIndex].focus();\n tabs[nextIndex].click();\n }\n\n return (\n <div\n ref={listRef}\n role=\"tablist\"\n onKeyDown={handleKeyDown}\n className={cn(\n \"inline-flex items-center gap-1 rounded-lg bg-muted p-1\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\ninterface TabsTriggerProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string;\n variant?: \"pill\" | \"underline\";\n}\n\nconst triggerVariants = {\n pill: {\n base: \"rounded-md px-3 py-1.5\",\n active: \"bg-background text-foreground shadow-sm\",\n inactive: \"text-muted-foreground hover:text-foreground\",\n },\n underline: {\n base: \"rounded-none bg-transparent px-4 py-2.5 shadow-none border-b-2 border-transparent\",\n active: \"border-primary bg-transparent shadow-none text-foreground\",\n inactive: \"text-muted-foreground hover:text-foreground\",\n },\n} as const;\n\nexport function TabsTrigger({\n value,\n variant = \"pill\",\n children,\n className,\n ...props\n}: TabsTriggerProps) {\n const { activeTab, setActiveTab } = useTabsContext();\n const isActive = activeTab === value;\n const v = triggerVariants[variant];\n\n return (\n <button\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n tabIndex={isActive ? 0 : -1}\n onClick={() => setActiveTab(value)}\n className={cn(\n \"inline-flex items-center justify-center text-sm font-medium transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1\",\n v.base,\n isActive ? v.active : v.inactive,\n className,\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n\ninterface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\n\nexport function TabsContent({\n value,\n children,\n className,\n ...props\n}: TabsContentProps) {\n const { activeTab } = useTabsContext();\n\n if (activeTab !== value) return null;\n\n return (\n <div\n role=\"tabpanel\"\n tabIndex={0}\n className={cn(\"mt-2 focus-visible:outline-none\", className)}\n {...props}\n >\n {children}\n </div>\n );\n}\n","\"use client\";\n\nimport { useMemo } from \"react\";\n\nimport { Badge } from \"./badge\";\nimport { Select } from \"./select\";\n\ninterface TeamMember {\n id: string;\n fullName: string;\n}\n\ninterface TeamMemberSelectProps {\n teamMembers: TeamMember[];\n currentUserId?: string | null;\n value: string;\n onValueChange: (value: string) => void;\n includeUnassigned?: boolean;\n placeholder?: string;\n}\n\nexport function TeamMemberSelect({\n teamMembers,\n currentUserId,\n value,\n onValueChange,\n includeUnassigned = true,\n placeholder = \"Select team member...\",\n}: TeamMemberSelectProps) {\n const options = useMemo(() => {\n const meBadge = (\n <Badge variant=\"secondary\" size=\"sm\" className=\"px-1.5 py-0 text-[10px]\">\n Me\n </Badge>\n );\n\n // Sort: current user first, then alphabetical\n const sorted = [...teamMembers].sort((a, b) => {\n if (currentUserId) {\n if (a.id === currentUserId) return -1;\n if (b.id === currentUserId) return 1;\n }\n return a.fullName.localeCompare(b.fullName);\n });\n\n const memberOptions = sorted.map((m) => ({\n value: m.id,\n label: m.fullName,\n labelSuffix: m.id === currentUserId ? meBadge : undefined,\n }));\n\n if (includeUnassigned) {\n return [{ value: \"\", label: \"Unassigned\" }, ...memberOptions];\n }\n\n return memberOptions;\n }, [teamMembers, currentUserId, includeUnassigned]);\n\n return (\n <Select\n options={options}\n value={value}\n onValueChange={onValueChange}\n placeholder={placeholder}\n />\n );\n}\n","\"use client\";\n\nimport { forwardRef, useCallback, useEffect, useId, useRef } from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\ninterface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n label?: string;\n error?: string;\n showCount?: boolean;\n autoResize?: boolean;\n}\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n function Textarea(\n {\n label,\n error,\n showCount,\n autoResize,\n maxLength,\n value,\n defaultValue,\n className,\n id: providedId,\n onChange,\n ...props\n },\n ref,\n ) {\n const generatedId = useId();\n const id = providedId ?? generatedId;\n const errorId = `${id}-error`;\n const internalRef = useRef<HTMLTextAreaElement | null>(null);\n\n const setRefs = useCallback(\n (node: HTMLTextAreaElement | null) => {\n internalRef.current = node;\n if (typeof ref === \"function\") ref(node);\n else if (ref) ref.current = node;\n },\n [ref],\n );\n\n const adjustHeight = useCallback(() => {\n if (!autoResize || !internalRef.current) return;\n const el = internalRef.current;\n el.style.height = \"auto\";\n el.style.height = `${el.scrollHeight}px`;\n }, [autoResize]);\n\n useEffect(() => {\n adjustHeight();\n }, [value, adjustHeight]);\n\n const currentLength =\n typeof value === \"string\"\n ? value.length\n : typeof defaultValue === \"string\"\n ? defaultValue.length\n : 0;\n\n return (\n <div className=\"w-full\">\n {label && (\n <label\n htmlFor={id}\n className=\"mb-1.5 block text-sm font-medium text-foreground\"\n >\n {label}\n </label>\n )}\n <textarea\n ref={setRefs}\n id={id}\n value={value}\n defaultValue={defaultValue}\n maxLength={maxLength}\n aria-invalid={!!error}\n aria-describedby={error ? errorId : undefined}\n onChange={(e) => {\n onChange?.(e);\n adjustHeight();\n }}\n className={cn(\n \"flex min-h-20 w-full rounded-lg border border-input bg-input-background px-3 py-2 text-sm text-foreground\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"aria-[invalid=true]:border-destructive aria-[invalid=true]:ring-destructive/20\",\n autoResize && \"resize-none overflow-hidden\",\n className,\n )}\n {...props}\n />\n <div className=\"mt-1.5 flex items-center justify-between\">\n {error && (\n <p id={errorId} role=\"alert\" className=\"text-sm text-destructive\">\n {error}\n </p>\n )}\n {showCount && maxLength && (\n <span className=\"ml-auto text-xs text-muted-foreground\">\n {currentLength}/{maxLength}\n </span>\n )}\n </div>\n </div>\n );\n },\n);\n","\"use client\";\n\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\ntype ToastVariant = \"default\" | \"success\" | \"destructive\" | \"warning\";\n\ninterface Toast {\n id: string;\n title: string;\n description?: string;\n variant?: ToastVariant;\n duration?: number;\n}\n\ninterface ToastContextValue {\n toast: (options: Omit<Toast, \"id\">) => void;\n}\n\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\nexport function useToast() {\n const ctx = useContext(ToastContext);\n if (!ctx) throw new Error(\"useToast must be used within <ToastProvider>\");\n return ctx;\n}\n\nlet toastCount = 0;\n\ninterface ToastProviderProps {\n children: React.ReactNode;\n}\n\nexport function ToastProvider({ children }: ToastProviderProps) {\n const [toasts, setToasts] = useState<Toast[]>([]);\n\n const addToast = useCallback((options: Omit<Toast, \"id\">) => {\n const id = `toast-${++toastCount}`;\n setToasts((prev) => [...prev, { id, ...options }]);\n }, []);\n\n const removeToast = useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, []);\n\n return (\n <ToastContext value={{ toast: addToast }}>\n {children}\n <div\n className=\"fixed right-4 top-4 z-50 flex flex-col gap-2\"\n aria-live=\"polite\"\n aria-label=\"Notifications\"\n >\n {toasts.map((t) => (\n <ToastItem key={t.id} toast={t} onDismiss={removeToast} />\n ))}\n </div>\n </ToastContext>\n );\n}\n\nconst variantStyles = {\n default: \"bg-card border-border text-foreground\",\n success: \"bg-green-lighter-bg border-green-light-border text-green-action\",\n destructive: \"bg-red-50 border-red-200 text-red-action\",\n warning: \"bg-amber-50 border-yellow-200 text-amber-dark\",\n} as const;\n\ninterface ToastItemProps {\n toast: Toast;\n onDismiss: (id: string) => void;\n}\n\nfunction ToastItem({ toast, onDismiss }: ToastItemProps) {\n const timerRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n const [exiting, setExiting] = useState(false);\n\n const dismiss = useCallback(() => {\n setExiting(true);\n setTimeout(() => onDismiss(toast.id), 200);\n }, [toast.id, onDismiss]);\n\n useEffect(() => {\n const duration = toast.duration ?? 5000;\n timerRef.current = setTimeout(dismiss, duration);\n return () => clearTimeout(timerRef.current);\n }, [toast.duration, dismiss]);\n\n return (\n <div\n role=\"status\"\n className={cn(\n \"pointer-events-auto w-80 rounded-lg border p-4 shadow-lg\",\n \"transition-all duration-200 motion-reduce:transition-none\",\n exiting ? \"translate-x-full opacity-0\" : \"animate-sheet-right\",\n variantStyles[toast.variant ?? \"default\"],\n )}\n >\n <div className=\"flex items-start gap-3\">\n <div className=\"flex-1\">\n <p className=\"text-sm font-semibold\">{toast.title}</p>\n {toast.description && (\n <p className=\"mt-0.5 text-sm opacity-80\">{toast.description}</p>\n )}\n </div>\n <button\n type=\"button\"\n onClick={dismiss}\n className=\"shrink-0 rounded-md p-0.5 opacity-70 transition-opacity hover:opacity-100\"\n aria-label=\"Dismiss\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M3 3l8 8M11 3l-8 8\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport {\n createContext,\n use,\n useCallback,\n useMemo,\n useState,\n} from \"react\";\n\nimport { cn } from \"../lib/cn\";\n\ninterface ToggleGroupContextValue {\n values: Set<string>;\n toggle: (value: string) => void;\n variant: \"default\" | \"outline\";\n}\n\nconst ToggleGroupContext = createContext<ToggleGroupContextValue | null>(null);\n\nfunction useToggleGroupContext() {\n const ctx = use(ToggleGroupContext);\n if (!ctx) throw new Error(\"ToggleGroupItem must be used within <ToggleGroup>\");\n return ctx;\n}\n\ninterface ToggleGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n type?: \"single\" | \"multiple\";\n value?: string[];\n defaultValue?: string[];\n onValueChange?: (value: string[]) => void;\n variant?: \"default\" | \"outline\";\n}\n\nexport function ToggleGroup({\n type = \"single\",\n value: controlledValue,\n defaultValue = [],\n onValueChange,\n variant = \"default\",\n children,\n className,\n ...props\n}: ToggleGroupProps) {\n const [internalValue, setInternalValue] = useState<Set<string>>(\n new Set(defaultValue),\n );\n const isControlled = controlledValue !== undefined;\n const values = useMemo(\n () => (isControlled ? new Set(controlledValue) : internalValue),\n [isControlled, controlledValue, internalValue],\n );\n\n const toggle = useCallback(\n (val: string) => {\n let next: Set<string>;\n\n if (values.has(val)) {\n next = new Set(values);\n next.delete(val);\n } else if (type === \"single\") {\n next = new Set([val]);\n } else {\n next = new Set(values);\n next.add(val);\n }\n\n if (!isControlled) setInternalValue(next);\n onValueChange?.(Array.from(next));\n },\n [values, type, isControlled, onValueChange],\n );\n\n return (\n <ToggleGroupContext value={{ values, toggle, variant }}>\n <div\n role=\"group\"\n className={cn(\"inline-flex items-center gap-1\", className)}\n {...props}\n >\n {children}\n </div>\n </ToggleGroupContext>\n );\n}\n\ninterface ToggleGroupItemProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string;\n}\n\nexport function ToggleGroupItem({\n value,\n children,\n className,\n ...props\n}: ToggleGroupItemProps) {\n const { values, toggle, variant } = useToggleGroupContext();\n const isActive = values.has(value);\n\n return (\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={isActive}\n onClick={() => toggle(value)}\n className={cn(\n \"inline-flex items-center justify-center rounded-lg px-3 py-2 text-sm font-medium transition-colors\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n variant === \"outline\" && \"border border-input\",\n isActive\n ? \"bg-accent text-accent-foreground\"\n : \"text-muted-foreground hover:bg-muted hover:text-foreground\",\n className,\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n","\"use client\";\n\nimport {\n createContext,\n use,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { cn } from \"../lib/cn\";\n\ntype Side = \"top\" | \"right\" | \"bottom\" | \"left\";\n\ninterface TooltipContextValue {\n open: boolean;\n triggerRef: React.RefObject<HTMLElement | null>;\n show: () => void;\n hide: () => void;\n}\n\nconst TooltipContext = createContext<TooltipContextValue | null>(null);\n\nfunction useTooltipContext() {\n const ctx = use(TooltipContext);\n if (!ctx) throw new Error(\"Tooltip compound components must be used within <Tooltip>\");\n return ctx;\n}\n\ninterface TooltipProps {\n children: React.ReactNode;\n delayMs?: number;\n}\n\nexport function Tooltip({ children, delayMs = 300 }: TooltipProps) {\n const [open, setOpen] = useState(false);\n const triggerRef = useRef<HTMLElement | null>(null);\n const timerRef = useRef<ReturnType<typeof setTimeout>>(undefined);\n\n const show = useCallback(() => {\n timerRef.current = setTimeout(() => setOpen(true), delayMs);\n }, [delayMs]);\n\n const hide = useCallback(() => {\n clearTimeout(timerRef.current);\n setOpen(false);\n }, []);\n\n return (\n <TooltipContext value={{ open, triggerRef, show, hide }}>\n <div className=\"relative inline-flex\">{children}</div>\n </TooltipContext>\n );\n}\n\ntype TooltipTriggerProps = React.HTMLAttributes<HTMLSpanElement>;\n\nexport function TooltipTrigger({\n children,\n className,\n ...props\n}: TooltipTriggerProps) {\n const { triggerRef, show, hide } = useTooltipContext();\n\n return (\n <span\n ref={triggerRef as React.RefObject<HTMLSpanElement>}\n onMouseEnter={show}\n onMouseLeave={hide}\n onFocus={show}\n onBlur={hide}\n className={cn(\"inline-flex\", className)}\n {...props}\n >\n {children}\n </span>\n );\n}\n\nconst GAP = 8;\n\ninterface TooltipContentProps extends React.HTMLAttributes<HTMLDivElement> {\n side?: Side;\n}\n\nexport function TooltipContent({\n side = \"top\",\n children,\n className,\n ...props\n}: TooltipContentProps) {\n const { open, triggerRef } = useTooltipContext();\n const [pos, setPos] = useState<{ top: number; left: number } | null>(null);\n\n useEffect(() => {\n if (!open || !triggerRef.current) {\n setPos(null);\n return;\n }\n const rect = triggerRef.current.getBoundingClientRect();\n switch (side) {\n case \"top\":\n setPos({ top: rect.top - GAP, left: rect.left + rect.width / 2 });\n break;\n case \"bottom\":\n setPos({ top: rect.bottom + GAP, left: rect.left + rect.width / 2 });\n break;\n case \"left\":\n setPos({ top: rect.top + rect.height / 2, left: rect.left - GAP });\n break;\n case \"right\":\n setPos({ top: rect.top + rect.height / 2, left: rect.right + GAP });\n break;\n }\n }, [open, side, triggerRef]);\n\n if (!open || !pos) return null;\n\n const transformMap = {\n top: \"translate(-50%, -100%)\",\n bottom: \"translate(-50%, 0)\",\n left: \"translate(-100%, -50%)\",\n right: \"translate(0, -50%)\",\n } as const;\n\n return createPortal(\n <div\n role=\"tooltip\"\n data-side={side}\n style={{ position: \"fixed\", top: pos.top, left: pos.left, transform: transformMap[side] }}\n className={cn(\n \"z-50 max-w-xs rounded-md bg-popover px-3 py-1.5 text-xs text-popover-foreground shadow-md\",\n \"animate-fade-in motion-reduce:animate-none\",\n className,\n )}\n {...props}\n >\n {children}\n </div>,\n document.body,\n );\n}\n","import { cn } from \"../lib/cn\";\n\ninterface VisuallyHiddenProps extends React.HTMLAttributes<HTMLSpanElement> {\n children: React.ReactNode;\n}\n\nexport function VisuallyHidden({\n children,\n className,\n ...props\n}: VisuallyHiddenProps) {\n return (\n <span className={cn(\"sr-only\", className)} {...props}>\n {children}\n </span>\n );\n}\n"]}