@kjaniec-dev/ui 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/cn.ts","../src/components/button.tsx","../src/components/badge.tsx","../src/components/alert.tsx","../src/components/spinner.tsx","../src/components/progress.tsx","../src/components/input.tsx","../src/components/field.tsx","../src/components/select.tsx","../src/components/checkbox.tsx","../src/components/switch.tsx","../src/components/slider.tsx","../src/components/segmented.tsx","../src/components/card.tsx","../src/components/stat.tsx","../src/components/avatar.tsx","../src/components/tabs.tsx","../src/components/accordion.tsx","../src/components/dropdown-menu.tsx","../src/components/breadcrumb.tsx","../src/components/pagination.tsx","../src/components/table.tsx","../src/components/tooltip.tsx","../src/components/modal.tsx","../src/components/toast.tsx","../src/components/page-header.tsx","../src/components/empty-state.tsx","../src/components/metric-card.tsx","../src/components/data-table.tsx"],"names":["twMerge","clsx","cva","React","jsxs","jsx","React2","React3","React4","React5","React6","React7","React8","React9","React10","React11","React12","React13","React14","React15","React16","React17","React18","React19","React20","container","React21","React22","React23","React24"],"mappings":"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","file":"index.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Merge class names with Tailwind-aware conflict resolution.\n * `cn(\"px-2\", condition && \"px-4\")` → keeps the last conflicting utility.\n */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/cn\";\n\nconst buttonVariants = cva(\n [\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap select-none\",\n \"font-sans font-semibold leading-none\",\n \"border border-transparent rounded-kj-md cursor-pointer\",\n \"transition-[background-color,color,border-color,box-shadow,transform] duration-150\",\n \"active:translate-y-px\",\n \"focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/45\",\n \"disabled:opacity-50 disabled:pointer-events-none\",\n ],\n {\n variants: {\n variant: {\n primary: \"bg-primary text-primary-foreground hover:bg-primary-hover\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary-hover\",\n outline: \"bg-transparent text-foreground border-border hover:bg-muted hover:border-muted-foreground\",\n ghost: \"bg-transparent text-foreground hover:bg-muted\",\n danger: \"bg-danger text-white hover:brightness-95\",\n },\n size: {\n sm: \"h-8 px-3 text-[0.8rem] rounded-kj-sm\",\n md: \"h-10 px-[1.1rem] text-sm\",\n lg: \"h-12 px-6 text-base\",\n icon: \"h-10 w-10 p-0\",\n \"icon-sm\": \"h-8 w-8 p-0 rounded-kj-sm\",\n },\n },\n defaultVariants: { variant: \"primary\", size: \"md\" },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n /** Shows a spinner and disables interaction. */\n loading?: boolean;\n /** Icon rendered before the label. */\n leadingIcon?: React.ReactNode;\n /** Icon rendered after the label. */\n trailingIcon?: React.ReactNode;\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, loading, leadingIcon, trailingIcon, children, disabled, ...props }, ref) => {\n return (\n <button\n ref={ref}\n className={cn(buttonVariants({ variant, size }), loading && \"relative\", className)}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n {...props}\n >\n {loading && (\n <span\n aria-hidden\n className=\"absolute h-[1em] w-[1em] rounded-full border-2 border-current border-t-transparent animate-spin\"\n />\n )}\n <span className={cn(\"contents\", loading && \"invisible\")}>\n {leadingIcon && <span className=\"[&_svg]:h-[1.05em] [&_svg]:w-[1.05em]\">{leadingIcon}</span>}\n {children}\n {trailingIcon && <span className=\"[&_svg]:h-[1.05em] [&_svg]:w-[1.05em]\">{trailingIcon}</span>}\n </span>\n </button>\n );\n }\n);\nButton.displayName = \"Button\";\n\nexport { buttonVariants };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/cn\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center gap-1.5 px-2.5 py-0.5 text-xs font-semibold leading-snug rounded-full border border-transparent\",\n {\n variants: {\n variant: {\n neutral: \"bg-muted text-muted-foreground\",\n primary: \"bg-primary/15 text-primary-hover dark:text-primary\",\n secondary: \"bg-secondary/15 text-secondary-hover dark:text-secondary\",\n success: \"bg-success-surface text-success\",\n warning: \"bg-warning-surface text-warning\",\n danger: \"bg-danger-surface text-danger\",\n info: \"bg-info-surface text-info\",\n solid: \"bg-primary text-primary-foreground\",\n },\n },\n defaultVariants: { variant: \"neutral\" },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {\n /** Render a leading status dot. */\n dot?: boolean;\n}\n\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, dot, children, ...props }, ref) => (\n <span ref={ref} className={cn(badgeVariants({ variant }), className)} {...props}>\n {dot && <span className=\"h-1.5 w-1.5 rounded-full bg-current\" aria-hidden />}\n {children}\n </span>\n )\n);\nBadge.displayName = \"Badge\";\n\nexport { badgeVariants };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/cn\";\n\nconst alertVariants = cva(\n \"flex gap-3 items-start p-[0.9rem_1.1rem] rounded-kj-md border text-sm\",\n {\n variants: {\n variant: {\n info: \"bg-info-surface border-info/30\",\n success: \"bg-success-surface border-success/30\",\n warning: \"bg-warning-surface border-warning/30\",\n danger: \"bg-danger-surface border-danger/30\",\n },\n },\n defaultVariants: { variant: \"info\" },\n }\n);\n\nconst iconColor = {\n info: \"text-info\",\n success: \"text-success\",\n warning: \"text-warning\",\n danger: \"text-danger\",\n} as const;\n\nexport interface AlertProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\">,\n VariantProps<typeof alertVariants> {\n /** Optional leading icon (e.g. an SVG). Inherits the variant color. */\n icon?: React.ReactNode;\n title?: React.ReactNode;\n}\n\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant = \"info\", icon, title, children, ...props }, ref) => (\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props}>\n {icon && (\n <span className={cn(\"shrink-0 mt-0.5 [&_svg]:h-[1.15rem] [&_svg]:w-[1.15rem]\", iconColor[variant ?? \"info\"])}>\n {icon}\n </span>\n )}\n <div className=\"text-foreground\">\n {title && <p className=\"font-bold m-0 mb-0.5 text-sm\">{title}</p>}\n {children && <p className=\"m-0 opacity-85\">{children}</p>}\n </div>\n </div>\n )\n);\nAlert.displayName = \"Alert\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface SpinnerProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Diameter in px. Default 24. */\n size?: number;\n}\n\nexport const Spinner = React.forwardRef<HTMLSpanElement, SpinnerProps>(\n ({ className, size = 24, style, ...props }, ref) => (\n <span\n ref={ref}\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(\n \"inline-block rounded-full border-[2.5px] border-muted border-t-primary animate-spin align-middle\",\n className\n )}\n style={{ width: size, height: size, ...style }}\n {...props}\n />\n )\n);\nSpinner.displayName = \"Spinner\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {\n /** 0–100. */\n value?: number;\n tone?: \"primary\" | \"secondary\";\n /** Extra classes applied to the inner bar span — use for animation, transform-origin, etc. */\n barClassName?: string;\n}\n\nexport const Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value = 0, tone = \"primary\", barClassName, ...props }, ref) => {\n const pct = Math.max(0, Math.min(100, value));\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-label={props[\"aria-label\"] ?? \"Progress\"}\n aria-valuenow={pct}\n aria-valuemin={0}\n aria-valuemax={100}\n className={cn(\"h-2 w-full overflow-hidden rounded-full bg-muted\", className)}\n {...props}\n >\n <span\n className={cn(\n \"block h-full rounded-full transition-[width] duration-500 ease-out\",\n tone === \"secondary\" ? \"bg-secondary\" : \"bg-primary\",\n barClassName\n )}\n style={{ width: `${pct}%` }}\n />\n </div>\n );\n }\n);\nProgress.displayName = \"Progress\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n /** Visual error state (red border + ring). */\n error?: boolean;\n /** Icon shown inside the field, leading edge. */\n leadingIcon?: React.ReactNode;\n}\n\nconst baseField =\n \"w-full font-sans text-sm text-foreground bg-surface border rounded-kj-md px-[0.85rem] \" +\n \"transition-[border-color,box-shadow] duration-150 placeholder:text-muted-foreground \" +\n \"focus:outline-none focus:border-ring focus:ring-[3px] focus:ring-ring/30 \" +\n \"disabled:bg-muted disabled:text-muted-foreground disabled:cursor-not-allowed\";\n\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, error, leadingIcon, style, ...props }, ref) => {\n const field = (\n <input\n ref={ref}\n aria-invalid={error || undefined}\n className={cn(\n baseField,\n \"py-[calc(0.6rem*var(--kj-density,1))]\",\n error\n ? \"border-danger focus:border-danger focus:ring-danger/25\"\n : \"border-input\",\n leadingIcon && \"pl-[2.3rem]\",\n className\n )}\n {...props}\n />\n );\n if (!leadingIcon) return field;\n return (\n <span className=\"relative flex items-center\">\n <span className=\"absolute left-[0.8rem] text-muted-foreground [&_svg]:h-[1.05rem] [&_svg]:w-[1.05rem] pointer-events-none\">\n {leadingIcon}\n </span>\n {field}\n </span>\n );\n }\n);\nInput.displayName = \"Input\";\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n error?: boolean;\n}\n\nexport const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, error, ...props }, ref) => (\n <textarea\n ref={ref}\n aria-invalid={error || undefined}\n className={cn(\n baseField,\n \"py-[calc(0.6rem*var(--kj-density,1))] min-h-[84px] leading-relaxed resize-y\",\n error ? \"border-danger focus:border-danger focus:ring-danger/25\" : \"border-input\",\n className\n )}\n {...props}\n />\n )\n);\nTextarea.displayName = \"Textarea\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {\n /** Append a red required marker. */\n required?: boolean;\n}\n\nexport const Label = React.forwardRef<HTMLLabelElement, LabelProps>(\n ({ className, required, children, ...props }, ref) => (\n <label ref={ref} className={cn(\"text-[0.8rem] font-semibold text-foreground\", className)} {...props}>\n {children}\n {required && <span className=\"text-danger\"> *</span>}\n </label>\n )\n);\nLabel.displayName = \"Label\";\n\nexport interface HintProps extends React.HTMLAttributes<HTMLSpanElement> {\n error?: boolean;\n}\n\nexport const Hint = React.forwardRef<HTMLSpanElement, HintProps>(\n ({ className, error, ...props }, ref) => (\n <span\n ref={ref}\n className={cn(\"text-[0.76rem]\", error ? \"text-danger\" : \"text-muted-foreground\", className)}\n {...props}\n />\n )\n);\nHint.displayName = \"Hint\";\n\n/** Vertical label + control + hint group. */\nexport const Field = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex flex-col gap-1.5\", className)} {...props} />\n )\n);\nField.displayName = \"Field\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface SelectProps extends React.SelectHTMLAttributes<HTMLSelectElement> {\n error?: boolean;\n}\n\nconst chevron =\n \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\";\n\nexport const Select = React.forwardRef<HTMLSelectElement, SelectProps>(\n ({ className, error, style, children, ...props }, ref) => (\n <select\n ref={ref}\n aria-invalid={error || undefined}\n className={cn(\n \"w-full appearance-none cursor-pointer font-sans text-sm text-foreground bg-surface\",\n \"border rounded-kj-md py-[calc(0.6rem*var(--kj-density,1))] pl-[0.85rem] pr-9\",\n \"transition-[border-color,box-shadow] duration-150\",\n \"focus:outline-none focus:border-ring focus:ring-[3px] focus:ring-ring/30\",\n \"disabled:bg-muted disabled:text-muted-foreground disabled:cursor-not-allowed\",\n error ? \"border-danger\" : \"border-input\",\n className\n )}\n style={{\n backgroundImage: `url(\"${chevron}\")`,\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: \"right 0.75rem center\",\n backgroundSize: \"1rem\",\n ...style,\n }}\n {...props}\n >\n {children}\n </select>\n )\n);\nSelect.displayName = \"Select\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n ({ className, label, id, ...props }, ref) => {\n const autoId = React.useId();\n const inputId = id ?? autoId;\n return (\n <label htmlFor={inputId} className={cn(\"inline-flex items-center gap-2.5 cursor-pointer text-sm select-none\", className)}>\n <input ref={ref} id={inputId} type=\"checkbox\" className=\"peer sr-only\" {...props} />\n <span className=\"grid place-items-center h-[1.15rem] w-[1.15rem] shrink-0 rounded-[0.4rem] border-[1.5px] border-input bg-surface transition-all duration-150 peer-checked:bg-primary peer-checked:border-primary peer-focus-visible:ring-[3px] peer-focus-visible:ring-ring/35 peer-checked:[&_svg]:opacity-100 peer-checked:[&_svg]:scale-100\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={3} strokeLinecap=\"round\" strokeLinejoin=\"round\" className=\"h-3 w-3 text-primary-foreground opacity-0 scale-50 transition-all duration-150\">\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n </span>\n {label}\n </label>\n );\n }\n);\nCheckbox.displayName = \"Checkbox\";\n\nexport interface RadioProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nexport const Radio = React.forwardRef<HTMLInputElement, RadioProps>(\n ({ className, label, id, ...props }, ref) => {\n const autoId = React.useId();\n const inputId = id ?? autoId;\n return (\n <label htmlFor={inputId} className={cn(\"inline-flex items-center gap-2.5 cursor-pointer text-sm select-none\", className)}>\n <input ref={ref} id={inputId} type=\"radio\" className=\"peer sr-only\" {...props} />\n <span className=\"grid place-items-center h-[1.15rem] w-[1.15rem] shrink-0 rounded-full border-[1.5px] border-input bg-surface transition-all duration-150 peer-checked:bg-primary peer-checked:border-primary peer-focus-visible:ring-[3px] peer-focus-visible:ring-ring/35 peer-checked:[&>span]:opacity-100 peer-checked:[&>span]:scale-100\">\n <span className=\"h-2 w-2 rounded-full bg-primary-foreground opacity-0 scale-[0.4] transition-all duration-150\" />\n </span>\n {label}\n </label>\n );\n }\n);\nRadio.displayName = \"Radio\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface SwitchProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nexport const Switch = React.forwardRef<HTMLInputElement, SwitchProps>(\n ({ className, label, id, ...props }, ref) => {\n const autoId = React.useId();\n const inputId = id ?? autoId;\n return (\n <label htmlFor={inputId} className={cn(\"inline-flex items-center gap-2.5 cursor-pointer text-sm select-none\", className)}>\n <input ref={ref} id={inputId} type=\"checkbox\" role=\"switch\" className=\"peer sr-only\" {...props} />\n <span className=\"relative h-[1.45rem] w-[2.6rem] shrink-0 rounded-full bg-input transition-colors duration-200 peer-checked:bg-primary peer-focus-visible:ring-[3px] peer-focus-visible:ring-ring/35 after:content-[''] after:absolute after:top-0.5 after:left-0.5 after:h-[calc(1.45rem-4px)] after:w-[calc(1.45rem-4px)] after:rounded-full after:bg-white after:shadow-kj-sm after:transition-transform after:duration-200 peer-checked:after:translate-x-[1.15rem]\" />\n {label}\n </label>\n );\n }\n);\nSwitch.displayName = \"Switch\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport type SliderProps = React.InputHTMLAttributes<HTMLInputElement>;\n\n/**\n * Range slider styled with the kit's primary token. Thumb styling lives in a\n * scoped <style> tag because pseudo-elements (::-webkit-slider-thumb) can't be\n * expressed as Tailwind utilities.\n */\nexport const Slider = React.forwardRef<HTMLInputElement, SliderProps>(\n ({ className, ...props }, ref) => (\n <input\n ref={ref}\n type=\"range\"\n className={cn(\n \"kj-slider w-full h-1.5 rounded-full bg-input appearance-none cursor-pointer\",\n className\n )}\n {...props}\n />\n )\n);\nSlider.displayName = \"Slider\";\n\n/** Inject once near the app root (or rely on the package stylesheet). */\nexport const sliderThumbCSS = `\n.kj-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:9999px;background:var(--kj-primary);border:3px solid var(--kj-surface);box-shadow:var(--kj-shadow-sm);cursor:pointer}\n.kj-slider::-moz-range-thumb{width:18px;height:18px;border-radius:9999px;background:var(--kj-primary);border:3px solid var(--kj-surface);box-shadow:var(--kj-shadow-sm);cursor:pointer}\n`;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface SegmentedOption<T extends string> {\n value: T;\n label: React.ReactNode;\n}\n\nexport interface SegmentedProps<T extends string> {\n options: SegmentedOption<T>[];\n value: T;\n onChange: (value: T) => void;\n className?: string;\n \"aria-label\"?: string;\n}\n\n/** Segmented control / single-select toggle group. Controlled. */\nexport function Segmented<T extends string>({\n options,\n value,\n onChange,\n className,\n ...props\n}: SegmentedProps<T>) {\n return (\n <div\n role=\"tablist\"\n className={cn(\"inline-flex gap-0.5 p-[3px] rounded-kj-md bg-muted\", className)}\n {...props}\n >\n {options.map((opt) => {\n const active = opt.value === value;\n return (\n <button\n key={opt.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={active}\n onClick={() => onChange(opt.value)}\n className={cn(\n \"px-3.5 py-1.5 text-[0.82rem] font-semibold rounded-[calc(var(--kj-radius-md)-3px)] cursor-pointer transition-all duration-150\",\n active\n ? \"bg-surface text-foreground shadow-kj-xs\"\n : \"bg-transparent text-muted-foreground hover:text-foreground\"\n )}\n >\n {opt.label}\n </button>\n );\n })}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface CardProps extends Omit<React.AllHTMLAttributes<HTMLElement>, \"as\"> {\n as?: React.ElementType;\n /** Drop the border + heavier shadow for a floating look. */\n elevated?: boolean;\n /** Adds hover lift effect — translate-y + shadow. For keyboard accessibility pair with `as=\"a\"` or `as=\"button\"`. */\n interactive?: boolean;\n}\n\nexport const Card = React.forwardRef<HTMLElement, CardProps>(\n ({ as: Tag = \"div\", className, elevated, interactive, ...props }, ref) => (\n <Tag\n ref={ref}\n className={cn(\n \"bg-card text-card-foreground rounded-kj-xl overflow-hidden border\",\n elevated ? \"border-transparent shadow-kj-lg\" : \"border-border shadow-kj-sm\",\n interactive && \"cursor-pointer transition-all duration-300 hover:-translate-y-1 hover:shadow-kj-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n )\n);\nCard.displayName = \"Card\";\n\nexport const CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-[1.35rem] flex flex-col gap-1\", className)} {...props} />\n )\n);\nCardHeader.displayName = \"CardHeader\";\n\nexport const CardTitle = React.forwardRef<HTMLHeadingElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3 ref={ref} className={cn(\"m-0 text-base font-bold tracking-[-0.01em]\", className)} {...props} />\n )\n);\nCardTitle.displayName = \"CardTitle\";\n\nexport const CardDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p ref={ref} className={cn(\"m-0 text-[0.85rem] text-muted-foreground\", className)} {...props} />\n )\n);\nCardDescription.displayName = \"CardDescription\";\n\n/** Body region with default padding. */\nexport const CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"px-[1.35rem] pb-[1.35rem]\", className)} {...props} />\n )\n);\nCardContent.displayName = \"CardContent\";\n\nexport const CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex gap-2.5 px-[1.35rem] py-[1.1rem] border-t border-border bg-muted/40\", className)}\n {...props}\n />\n )\n);\nCardFooter.displayName = \"CardFooter\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { Card } from \"./card\";\n\nexport interface StatProps extends React.HTMLAttributes<HTMLDivElement> {\n label: React.ReactNode;\n value: React.ReactNode;\n /** e.g. \"+12.3% mdm\" */\n delta?: React.ReactNode;\n trend?: \"up\" | \"down\";\n}\n\nexport const Stat = React.forwardRef<HTMLDivElement, StatProps>(\n ({ className, label, value, delta, trend, ...props }, ref) => (\n <Card ref={ref} className={cn(\"p-[1.35rem] flex flex-col gap-2\", className)} {...props}>\n <span className=\"text-[0.78rem] font-semibold uppercase tracking-[0.05em] text-muted-foreground\">\n {label}\n </span>\n <span className=\"text-[2rem] font-bold tracking-[-0.03em] tabular-nums leading-none\">\n {value}\n </span>\n {delta && (\n <span\n className={cn(\n \"inline-flex items-center gap-1 text-[0.8rem] font-semibold\",\n trend === \"down\" ? \"text-danger\" : \"text-success\"\n )}\n >\n {trend === \"down\" ? \"▼\" : \"▲\"} {delta}\n </span>\n )}\n </Card>\n )\n);\nStat.displayName = \"Stat\";\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/cn\";\n\nconst avatarVariants = cva(\n \"grid place-items-center shrink-0 rounded-full font-semibold border-2 border-surface\",\n {\n variants: {\n size: {\n sm: \"h-7 w-7 text-[0.7rem]\",\n md: \"h-9 w-9 text-[0.8rem]\",\n lg: \"h-12 w-12 text-base\",\n },\n tone: {\n secondary: \"bg-secondary text-secondary-foreground\",\n primary: \"bg-primary text-primary-foreground\",\n info: \"bg-info text-white\",\n muted: \"bg-muted text-muted-foreground\",\n },\n },\n defaultVariants: { size: \"md\", tone: \"secondary\" },\n }\n);\n\nexport interface AvatarProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof avatarVariants> {\n /** Image URL; falls back to initials/children when absent. */\n src?: string;\n alt?: string;\n /** Show an online status dot. */\n status?: boolean;\n}\n\nexport const Avatar = React.forwardRef<HTMLSpanElement, AvatarProps>(\n ({ className, size, tone, src, alt, status, children, ...props }, ref) => {\n const node = (\n <span ref={ref} className={cn(avatarVariants({ size, tone }), \"overflow-hidden\", className)} {...props}>\n {src ? <img src={src} alt={alt} className=\"h-full w-full object-cover\" /> : children}\n </span>\n );\n if (!status) return node;\n return (\n <span className=\"relative inline-flex\">\n {node}\n <span className=\"absolute -right-px -bottom-px h-[0.7rem] w-[0.7rem] rounded-full bg-success border-2 border-surface\" />\n </span>\n );\n }\n);\nAvatar.displayName = \"Avatar\";\n\n/** Overlapping cluster of avatars. */\nexport const AvatarGroup = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex [&>*:not(:first-child)]:-ml-2.5\", className)} {...props} />\n )\n);\nAvatarGroup.displayName = \"AvatarGroup\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\ninterface TabsCtx {\n value: string;\n setValue: (v: string) => void;\n}\nconst TabsContext = React.createContext<TabsCtx | null>(null);\nfunction useTabs() {\n const ctx = React.useContext(TabsContext);\n if (!ctx) throw new Error(\"Tabs.* must be used within <Tabs>\");\n return ctx;\n}\n\nexport interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Controlled active value. */\n value?: string;\n /** Uncontrolled initial value. */\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n}\n\nexport function Tabs({ value, defaultValue, onValueChange, className, children, ...props }: TabsProps) {\n const [internal, setInternal] = React.useState(defaultValue ?? \"\");\n const current = value ?? internal;\n const setValue = React.useCallback(\n (v: string) => {\n if (value === undefined) setInternal(v);\n onValueChange?.(v);\n },\n [value, onValueChange]\n );\n return (\n <TabsContext.Provider value={{ value: current, setValue }}>\n <div className={className} {...props}>\n {children}\n </div>\n </TabsContext.Provider>\n );\n}\n\nexport const TabsList = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, onKeyDown, ...props }, ref) => {\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n const container = e.currentTarget;\n const tabs = Array.from(container.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]'));\n if (tabs.length === 0) return;\n\n const activeIndex = tabs.findIndex((tab) => tab.getAttribute(\"aria-selected\") === \"true\");\n let newIndex = activeIndex;\n\n if (e.key === \"ArrowRight\" || e.key === \"ArrowDown\") {\n e.preventDefault();\n newIndex = (activeIndex + 1) % tabs.length;\n tabs[newIndex].focus();\n tabs[newIndex].click();\n } else if (e.key === \"ArrowLeft\" || e.key === \"ArrowUp\") {\n e.preventDefault();\n newIndex = (activeIndex - 1 + tabs.length) % tabs.length;\n tabs[newIndex].focus();\n tabs[newIndex].click();\n } else if (e.key === \"Home\") {\n e.preventDefault();\n newIndex = 0;\n tabs[newIndex].focus();\n tabs[newIndex].click();\n } else if (e.key === \"End\") {\n e.preventDefault();\n newIndex = tabs.length - 1;\n tabs[newIndex].focus();\n tabs[newIndex].click();\n }\n\n onKeyDown?.(e);\n };\n\n return (\n <div\n ref={ref}\n role=\"tablist\"\n onKeyDown={handleKeyDown}\n className={cn(\"flex gap-1 border-b border-border\", className)}\n {...props}\n />\n );\n }\n);\nTabsList.displayName = \"TabsList\";\n\nexport interface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string;\n}\n\nexport const TabsTrigger = React.forwardRef<HTMLButtonElement, TabsTriggerProps>(\n ({ className, value, children, ...props }, ref) => {\n const { value: current, setValue } = useTabs();\n const active = current === value;\n return (\n <button\n ref={ref}\n type=\"button\"\n role=\"tab\"\n id={`tabs-trigger-${value}`}\n aria-controls={`tabs-panel-${value}`}\n aria-selected={active}\n tabIndex={active ? 0 : -1}\n onClick={() => setValue(value)}\n className={cn(\n \"relative px-[0.9rem] py-2.5 text-sm font-semibold cursor-pointer transition-colors duration-150 outline-none\",\n \"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:rounded-sm\",\n \"after:content-[''] after:absolute after:left-[0.9rem] after:right-[0.9rem] after:-bottom-px after:h-0.5 after:rounded-sm after:transition-colors\",\n active\n ? \"text-foreground after:bg-primary\"\n : \"text-muted-foreground hover:text-foreground after:bg-transparent\",\n className\n )}\n {...props}\n >\n {children}\n </button>\n );\n }\n);\nTabsTrigger.displayName = \"TabsTrigger\";\n\nexport interface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\n\nexport const TabsContent = React.forwardRef<HTMLDivElement, TabsContentProps>(\n ({ className, value, ...props }, ref) => {\n const { value: current } = useTabs();\n const active = current === value;\n if (!active) return null;\n return (\n <div\n ref={ref}\n role=\"tabpanel\"\n id={`tabs-panel-${value}`}\n aria-labelledby={`tabs-trigger-${value}`}\n tabIndex={0}\n className={cn(\"pt-5 text-[0.9rem] text-muted-foreground outline-none\", className)}\n {...props}\n />\n );\n }\n);\nTabsContent.displayName = \"TabsContent\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\ninterface AccordionCtx {\n open: string[];\n toggle: (v: string) => void;\n}\nconst AccordionContext = React.createContext<AccordionCtx | null>(null);\n\nexport interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {\n /** \"single\" closes others when one opens. */\n type?: \"single\" | \"multiple\";\n defaultValue?: string[];\n}\n\nexport function Accordion({ type = \"single\", defaultValue = [], className, children, ...props }: AccordionProps) {\n const [open, setOpen] = React.useState<string[]>(defaultValue);\n const toggle = React.useCallback(\n (v: string) => {\n setOpen((prev) => {\n const isOpen = prev.includes(v);\n if (type === \"single\") return isOpen ? [] : [v];\n return isOpen ? prev.filter((x) => x !== v) : [...prev, v];\n });\n },\n [type]\n );\n return (\n <AccordionContext.Provider value={{ open, toggle }}>\n <div className={cn(\"border border-border rounded-kj-lg overflow-hidden\", className)} {...props}>\n {children}\n </div>\n </AccordionContext.Provider>\n );\n}\n\nconst ItemContext = React.createContext<string>(\"\");\n\nexport interface AccordionItemProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\n\nexport const AccordionItem = React.forwardRef<HTMLDivElement, AccordionItemProps>(\n ({ className, value, ...props }, ref) => (\n <ItemContext.Provider value={value}>\n <div ref={ref} className={cn(\"border-t border-border first:border-t-0\", className)} {...props} />\n </ItemContext.Provider>\n )\n);\nAccordionItem.displayName = \"AccordionItem\";\n\nexport const AccordionTrigger = React.forwardRef<HTMLButtonElement, React.ButtonHTMLAttributes<HTMLButtonElement>>(\n ({ className, children, ...props }, ref) => {\n const ctx = React.useContext(AccordionContext)!;\n const value = React.useContext(ItemContext);\n const isOpen = ctx.open.includes(value);\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-expanded={isOpen}\n onClick={() => ctx.toggle(value)}\n className={cn(\n \"w-full flex justify-between items-center gap-4 text-left px-[1.2rem] py-4 bg-card text-foreground text-[0.9rem] font-semibold cursor-pointer hover:bg-muted transition-colors\",\n className\n )}\n {...props}\n >\n {children}\n <svg\n className={cn(\"shrink-0 text-muted-foreground transition-transform duration-200\", isOpen && \"rotate-180\")}\n width={18} height={18} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} strokeLinecap=\"round\" strokeLinejoin=\"round\"\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n </button>\n );\n }\n);\nAccordionTrigger.displayName = \"AccordionTrigger\";\n\nexport const AccordionContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => {\n const ctx = React.useContext(AccordionContext)!;\n const value = React.useContext(ItemContext);\n const isOpen = ctx.open.includes(value);\n return (\n <div\n ref={ref}\n className={cn(\"grid transition-[grid-template-rows] duration-200 ease-out\", isOpen ? \"[grid-template-rows:1fr]\" : \"[grid-template-rows:0fr]\")}\n {...props}\n >\n <div className=\"overflow-hidden\">\n <div className={cn(\"px-[1.2rem] pb-[1.1rem] text-[0.85rem] text-muted-foreground\", className)}>{children}</div>\n </div>\n </div>\n );\n }\n);\nAccordionContent.displayName = \"AccordionContent\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\ninterface MenuCtx {\n open: boolean;\n setOpen: (v: boolean) => void;\n}\nconst MenuContext = React.createContext<MenuCtx | null>(null);\n\nexport function DropdownMenu({ children, className }: { children: React.ReactNode; className?: string }) {\n const [open, setOpen] = React.useState(false);\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n if (!open) return;\n const onDoc = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) setOpen(false);\n };\n const onEsc = (e: KeyboardEvent) => e.key === \"Escape\" && setOpen(false);\n document.addEventListener(\"mousedown\", onDoc);\n document.addEventListener(\"keydown\", onEsc);\n return () => {\n document.removeEventListener(\"mousedown\", onDoc);\n document.removeEventListener(\"keydown\", onEsc);\n };\n }, [open]);\n\n return (\n <MenuContext.Provider value={{ open, setOpen }}>\n <div ref={ref} className={cn(\"relative inline-block\", className)}>\n {children}\n </div>\n </MenuContext.Provider>\n );\n}\n\nexport const DropdownMenuTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & { asChild?: boolean }\n>(({ onClick, asChild, ...props }, ref) => {\n const ctx = React.useContext(MenuContext)!;\n if (asChild) {\n const child = React.Children.only(props.children) as React.ReactElement;\n return React.cloneElement(child, {\n ref,\n ...props,\n ...child.props,\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => {\n ctx.setOpen(!ctx.open);\n onClick?.(e);\n child.props.onClick?.(e);\n },\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": ctx.open,\n });\n }\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-haspopup=\"menu\"\n aria-expanded={ctx.open}\n onClick={(e) => {\n ctx.setOpen(!ctx.open);\n onClick?.(e);\n }}\n {...props}\n />\n );\n});\nDropdownMenuTrigger.displayName = \"DropdownMenuTrigger\";\n\nexport interface DropdownMenuContentProps extends React.HTMLAttributes<HTMLDivElement> {\n align?: \"start\" | \"end\";\n}\n\nexport function DropdownMenuContent({ className, align = \"start\", children, ...props }: DropdownMenuContentProps) {\n const ctx = React.useContext(MenuContext)!;\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n if (!ctx.open) return;\n const container = ref.current;\n if (container) {\n const items = Array.from(container.querySelectorAll<HTMLButtonElement | HTMLAnchorElement>('[role=\"menuitem\"]'));\n if (items.length > 0) {\n setTimeout(() => items[0].focus(), 50);\n }\n }\n }, [ctx.open]);\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n const container = ref.current;\n if (!container) return;\n\n const items = Array.from(container.querySelectorAll<HTMLElement>('[role=\"menuitem\"]'));\n if (items.length === 0) return;\n\n const currentIndex = items.indexOf(document.activeElement as HTMLElement);\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const nextIndex = (currentIndex + 1) % items.length;\n items[nextIndex].focus();\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n const prevIndex = (currentIndex - 1 + items.length) % items.length;\n items[prevIndex].focus();\n } else if (e.key === \"Tab\" || e.key === \"Escape\") {\n ctx.setOpen(false);\n }\n };\n\n if (!ctx.open) return null;\n return (\n <div\n ref={ref}\n role=\"menu\"\n tabIndex={-1}\n onKeyDown={handleKeyDown}\n className={cn(\n \"absolute top-[calc(100%+6px)] z-40 min-w-[200px] p-1.5 rounded-kj-md bg-surface border border-border shadow-kj-lg outline-none\",\n \"animate-[kjpop_.12s_ease]\",\n align === \"end\" ? \"right-0\" : \"left-0\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport interface DropdownMenuItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n danger?: boolean;\n icon?: React.ReactNode;\n}\n\nexport const DropdownMenuItem = React.forwardRef<HTMLButtonElement, DropdownMenuItemProps>(\n ({ className, danger, icon, children, onClick, ...props }, ref) => {\n const ctx = React.useContext(MenuContext)!;\n return (\n <button\n ref={ref}\n type=\"button\"\n role=\"menuitem\"\n onClick={(e) => {\n onClick?.(e);\n ctx.setOpen(false);\n }}\n className={cn(\n \"w-full flex items-center gap-2.5 text-left px-2.5 py-2 rounded-kj-sm text-[0.85rem] cursor-pointer transition-colors\",\n \"[&_svg]:h-4 [&_svg]:w-4\",\n danger ? \"text-danger hover:bg-danger-surface\" : \"text-foreground hover:bg-muted\",\n className\n )}\n {...props}\n >\n {icon}\n {children}\n </button>\n );\n }\n);\nDropdownMenuItem.displayName = \"DropdownMenuItem\";\n\nexport function DropdownMenuSeparator({ className }: { className?: string }) {\n return <div className={cn(\"h-px bg-border my-1.5\", className)} role=\"separator\" />;\n}\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport const Breadcrumb = React.forwardRef<HTMLElement, React.HTMLAttributes<HTMLElement>>(\n ({ className, children, ...props }, ref) => (\n <nav ref={ref} aria-label=\"Breadcrumb\" className={cn(\"flex items-center gap-1.5 text-[0.85rem] text-muted-foreground\", className)} {...props}>\n {children}\n </nav>\n )\n);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nexport interface BreadcrumbItemProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n /** Marks the trailing current page (non-link, emphasized). */\n current?: boolean;\n}\n\nexport const BreadcrumbItem = React.forwardRef<HTMLAnchorElement, BreadcrumbItemProps>(\n ({ className, current, children, ...props }, ref) => {\n if (current) {\n return (\n <span aria-current=\"page\" className={cn(\"text-foreground font-semibold\", className)}>\n {children}\n </span>\n );\n }\n return (\n <a ref={ref} className={cn(\"text-inherit no-underline hover:text-foreground transition-colors\", className)} {...props}>\n {children}\n </a>\n );\n }\n);\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nexport function BreadcrumbSeparator() {\n return <span aria-hidden className=\"text-muted-foreground/70\">/</span>;\n}\n","import { cn } from \"../lib/cn\";\nimport { Button } from \"./button\";\n\nexport interface PaginationProps {\n page: number;\n pageCount: number;\n onPageChange: (page: number) => void;\n /** How many numbered buttons to show around the edges. Default 5. */\n siblingCount?: number;\n className?: string;\n}\n\nfunction range(start: number, end: number) {\n return Array.from({ length: end - start + 1 }, (_, i) => start + i);\n}\n\n/** Builds a compact page list with ellipses, e.g. [1,2,3,'…',9]. */\nfunction paginate(page: number, pageCount: number): (number | \"…\")[] {\n if (pageCount <= 7) return range(1, pageCount);\n const left = Math.max(2, page - 1);\n const right = Math.min(pageCount - 1, page + 1);\n const items: (number | \"…\")[] = [1];\n if (left > 2) items.push(\"…\");\n items.push(...range(left, right));\n if (right < pageCount - 1) items.push(\"…\");\n items.push(pageCount);\n return items;\n}\n\nconst Chevron = ({ dir }: { dir: \"left\" | \"right\" }) => (\n <svg width={16} height={16} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points={dir === \"left\" ? \"15 18 9 12 15 6\" : \"9 18 15 12 9 6\"} />\n </svg>\n);\n\nexport function Pagination({ page, pageCount, onPageChange, className }: PaginationProps) {\n const items = paginate(page, pageCount);\n return (\n <nav aria-label=\"Paginacja\" className={cn(\"flex items-center gap-1\", className)}>\n <Button variant=\"ghost\" size=\"icon-sm\" aria-label=\"Previous\" disabled={page <= 1} onClick={() => onPageChange(page - 1)}>\n <Chevron dir=\"left\" />\n </Button>\n {items.map((it, i) =>\n it === \"…\" ? (\n <span key={`e${i}`} className=\"px-1 text-muted-foreground select-none\">…</span>\n ) : (\n <Button\n key={it}\n variant={it === page ? \"primary\" : \"ghost\"}\n size=\"icon-sm\"\n aria-current={it === page ? \"page\" : undefined}\n onClick={() => onPageChange(it)}\n >\n {it}\n </Button>\n )\n )}\n <Button variant=\"ghost\" size=\"icon-sm\" aria-label=\"Next\" disabled={page >= pageCount} onClick={() => onPageChange(page + 1)}>\n <Chevron dir=\"right\" />\n </Button>\n </nav>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\n/** Rounded, bordered wrapper around a <Table>. */\nexport const TableWrap = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"border border-border rounded-kj-lg overflow-hidden\", className)} {...props} />\n )\n);\nTableWrap.displayName = \"TableWrap\";\n\nexport const Table = React.forwardRef<HTMLTableElement, React.TableHTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <table ref={ref} className={cn(\"w-full border-collapse text-[0.85rem]\", className)} {...props} />\n )\n);\nTable.displayName = \"Table\";\n\nexport const TableHeader = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => <thead ref={ref} className={className} {...props} />\n);\nTableHeader.displayName = \"TableHeader\";\n\nexport const TableBody = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => <tbody ref={ref} className={className} {...props} />\n);\nTableBody.displayName = \"TableBody\";\n\nexport const TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr ref={ref} className={cn(\"transition-colors hover:bg-muted/50\", className)} {...props} />\n )\n);\nTableRow.displayName = \"TableRow\";\n\nexport interface TableCellProps extends React.TdHTMLAttributes<HTMLTableCellElement> {\n /** Right-align with tabular numerals. */\n numeric?: boolean;\n}\n\nexport const TableHead = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, numeric, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"px-4 py-3 bg-muted border-b border-border text-[0.72rem] font-semibold uppercase tracking-[0.05em] text-muted-foreground\",\n numeric ? \"text-right\" : \"text-left\",\n className\n )}\n {...props}\n />\n )\n);\nTableHead.displayName = \"TableHead\";\n\nexport const TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, numeric, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"px-4 py-3 border-b border-border [tr:last-child_&]:border-b-0\",\n numeric && \"text-right tabular-nums\",\n className\n )}\n {...props}\n />\n )\n);\nTableCell.displayName = \"TableCell\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface TooltipProps {\n content: React.ReactNode;\n children: React.ReactNode;\n className?: string;\n}\n\n/** CSS-only hover/focus tooltip positioned above the trigger. */\nexport function Tooltip({ content, children, className }: TooltipProps) {\n return (\n <span className={cn(\"relative inline-flex group\", className)} tabIndex={0}>\n {children}\n <span\n role=\"tooltip\"\n className={cn(\n \"pointer-events-none absolute bottom-[calc(100%+8px)] left-1/2 -translate-x-1/2 translate-y-1 whitespace-nowrap\",\n \"rounded-kj-sm bg-foreground text-background text-xs font-medium px-2.5 py-1.5 shadow-kj-md\",\n \"opacity-0 transition-all duration-150 group-hover:opacity-100 group-hover:translate-y-0 group-focus-visible:opacity-100 group-focus-visible:translate-y-0\",\n \"after:content-[''] after:absolute after:top-full after:left-1/2 after:-translate-x-1/2 after:border-[5px] after:border-transparent after:border-t-foreground\"\n )}\n >\n {content}\n </span>\n </span>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface ModalProps {\n open: boolean;\n onClose: () => void;\n children: React.ReactNode;\n /** Max width of the panel. Default 440px. */\n width?: number;\n className?: string;\n showClose?: boolean;\n}\n\nconst ModalContext = React.createContext<{ titleId: string; descId: string } | null>(null);\n\n/** Centered overlay dialog. Closes on backdrop click and Escape. Includes focus trap and restore. */\nexport function Modal({ open, onClose, children, width = 440, className, showClose = true }: ModalProps) {\n const titleId = React.useId();\n const descId = React.useId();\n const containerRef = React.useRef<HTMLDivElement>(null);\n const lastActiveElement = React.useRef<HTMLElement | null>(null);\n\n React.useEffect(() => {\n if (!open) {\n if (lastActiveElement.current) {\n lastActiveElement.current.focus();\n lastActiveElement.current = null;\n }\n return;\n }\n\n lastActiveElement.current = document.activeElement as HTMLElement;\n\n const container = containerRef.current;\n if (container) {\n const focusables = container.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (focusables.length > 0) {\n // Delay slightly for transition to complete\n setTimeout(() => focusables[0].focus(), 50);\n } else {\n container.focus();\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n onClose();\n return;\n }\n\n if (e.key === \"Tab\") {\n const container = containerRef.current;\n if (!container) return;\n\n const focusables = Array.from(\n container.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )\n );\n if (focusables.length === 0) {\n e.preventDefault();\n return;\n }\n\n const first = focusables[0];\n const last = focusables[focusables.length - 1];\n\n if (e.shiftKey) {\n if (document.activeElement === first || document.activeElement === container) {\n last.focus();\n e.preventDefault();\n }\n } else {\n if (document.activeElement === last) {\n first.focus();\n e.preventDefault();\n }\n }\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n document.body.style.overflow = \"hidden\";\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.body.style.overflow = \"\";\n };\n }, [open, onClose]);\n\n return (\n <div\n onClick={(e) => e.target === e.currentTarget && onClose()}\n className={cn(\n \"fixed inset-0 z-[100] grid place-items-center p-6 backdrop-blur-[3px] transition-opacity duration-200\",\n \"bg-[color-mix(in_oklch,#09090b_55%,transparent)]\",\n open ? \"opacity-100 pointer-events-auto\" : \"opacity-0 pointer-events-none\"\n )}\n >\n <ModalContext.Provider value={{ titleId, descId }}>\n <div\n ref={containerRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descId}\n tabIndex={-1}\n style={{ maxWidth: width }}\n className={cn(\n \"relative w-full p-7 rounded-kj-2xl bg-surface border border-border shadow-kj-lg transition-transform duration-200 outline-none\",\n open ? \"scale-100 translate-y-0\" : \"scale-95 translate-y-2\",\n className\n )}\n >\n {showClose && (\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Close\"\n className=\"absolute top-4 right-4 p-1.5 rounded-kj-sm text-muted-foreground hover:text-foreground hover:bg-muted transition-colors cursor-pointer\"\n >\n <svg width={16} height={16} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2.5} strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n )}\n {children}\n </div>\n </ModalContext.Provider>\n </div>\n );\n}\n\nexport function ModalTitle({ className, id, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n const ctx = React.useContext(ModalContext);\n return <h3 id={id ?? ctx?.titleId} className={cn(\"m-0 mb-2 text-[1.15rem] font-bold tracking-[-0.01em]\", className)} {...props} />;\n}\n\nexport function ModalDescription({ className, id, ...props }: React.HTMLAttributes<HTMLParagraphElement>) {\n const ctx = React.useContext(ModalContext);\n return <p id={id ?? ctx?.descId} className={cn(\"m-0 text-[0.9rem] text-muted-foreground\", className)} {...props} />;\n}\n\nexport function ModalActions({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex gap-2.5 justify-end mt-6\", className)} {...props} />;\n}\n\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport type ToastTone = \"default\" | \"success\" | \"danger\";\nexport interface ToastOptions {\n message: React.ReactNode;\n tone?: ToastTone;\n /** Auto-dismiss after ms. Default 3200. Pass 0 to keep open. */\n duration?: number;\n}\ninterface ToastItem extends Required<Omit<ToastOptions, \"duration\">> {\n id: number;\n duration: number;\n leaving?: boolean;\n}\n\ninterface ToastCtx {\n toast: (opts: ToastOptions) => void;\n}\nconst ToastContext = React.createContext<ToastCtx | null>(null);\n\nexport function useToast() {\n const ctx = React.useContext(ToastContext);\n if (!ctx) throw new Error(\"useToast must be used within <ToastProvider>\");\n return ctx;\n}\n\nconst icons: Record<ToastTone, React.ReactNode> = {\n default: (\n <svg width={18} height={18} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} strokeLinecap=\"round\" strokeLinejoin=\"round\" className=\"text-primary\"><circle cx=\"12\" cy=\"12\" r=\"10\" /><path d=\"M12 16v-4M12 8h.01\" /></svg>\n ),\n success: (\n <svg width={18} height={18} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} strokeLinecap=\"round\" strokeLinejoin=\"round\" className=\"text-success\"><path d=\"M20 6 9 17l-5-5\" /></svg>\n ),\n danger: (\n <svg width={18} height={18} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} strokeLinecap=\"round\" strokeLinejoin=\"round\" className=\"text-danger\"><circle cx=\"12\" cy=\"12\" r=\"10\" /><path d=\"m15 9-6 6M9 9l6 6\" /></svg>\n ),\n};\n\nconst toneBorder: Record<ToastTone, string> = {\n default: \"border-l-primary\",\n success: \"border-l-success\",\n danger: \"border-l-danger\",\n};\n\nexport function ToastProvider({ children }: { children: React.ReactNode }) {\n const [items, setItems] = React.useState<ToastItem[]>([]);\n const idRef = React.useRef(0);\n\n const remove = React.useCallback((id: number) => {\n setItems((prev) => prev.map((t) => (t.id === id ? { ...t, leaving: true } : t)));\n setTimeout(() => setItems((prev) => prev.filter((t) => t.id !== id)), 250);\n }, []);\n\n const toast = React.useCallback(\n ({ message, tone = \"default\", duration = 3200 }: ToastOptions) => {\n const id = ++idRef.current;\n setItems((prev) => [...prev, { id, message, tone, duration }]);\n if (duration > 0) setTimeout(() => remove(id), duration);\n },\n [remove]\n );\n\n return (\n <ToastContext.Provider value={{ toast }}>\n {children}\n <div className=\"fixed bottom-6 right-6 z-[200] flex flex-col gap-2.5\">\n {items.map((t) => (\n <div\n key={t.id}\n role=\"status\"\n onClick={() => remove(t.id)}\n className={cn(\n \"flex items-center gap-2.5 min-w-[280px] px-4 py-3 cursor-pointer\",\n \"bg-surface border border-border border-l-[3px] rounded-kj-md shadow-kj-lg text-[0.85rem] font-medium\",\n toneBorder[t.tone],\n t.leaving ? \"animate-[kjtoastout_.25s_ease_forwards]\" : \"animate-[kjtoastin_.25s_ease]\"\n )}\n >\n <span className=\"grid place-items-center\">{icons[t.tone]}</span>\n <span>{t.message}</span>\n </div>\n ))}\n </div>\n </ToastContext.Provider>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\n\nexport interface PageHeaderProps {\n eyebrow?: string;\n title: string;\n description?: string;\n actions?: React.ReactNode;\n}\n\nexport const PageHeader = React.forwardRef<HTMLElement, PageHeaderProps>(\n ({ eyebrow, title, description, actions }, ref) => (\n <header ref={ref} className=\"py-12 md:py-16\">\n <div className=\"flex flex-col gap-6 md:flex-row md:items-end md:justify-between\">\n <div className=\"space-y-3 max-w-2xl\">\n {eyebrow && (\n <p className=\"font-mono text-xs font-bold uppercase tracking-[0.2em] text-primary\">\n {eyebrow}\n </p>\n )}\n <h1 className=\"font-sans text-4xl font-bold tracking-tight text-foreground sm:text-5xl md:text-6xl\">\n {title}\n </h1>\n {description && (\n <p className=\"text-base leading-relaxed text-muted-foreground sm:text-lg\">\n {description}\n </p>\n )}\n </div>\n {actions && <div className=\"flex flex-wrap gap-3\">{actions}</div>}\n </div>\n </header>\n )\n);\nPageHeader.displayName = \"PageHeader\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface EmptyStateProps extends React.HTMLAttributes<HTMLDivElement> {\n icon?: React.ReactNode;\n title: string;\n description?: string;\n action?: React.ReactNode;\n}\n\nexport const EmptyState = React.forwardRef<HTMLDivElement, EmptyStateProps>(\n ({ className, icon, title, description, action, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"flex flex-col items-center justify-center text-center p-8 border border-dashed border-border rounded-kj-lg bg-muted/20 min-h-[300px]\",\n className\n )}\n {...props}\n >\n {icon && (\n <div className=\"flex h-12 w-12 items-center justify-center rounded-full bg-muted text-muted-foreground mb-4 [&_svg]:h-6 [&_svg]:w-6\">\n {icon}\n </div>\n )}\n <h3 className=\"text-base font-bold text-foreground mb-1\">{title}</h3>\n {description && (\n <p className=\"text-sm text-muted-foreground max-w-sm mb-6 leading-relaxed\">\n {description}\n </p>\n )}\n {action && <div className=\"flex items-center gap-3\">{action}</div>}\n </div>\n )\n);\nEmptyState.displayName = \"EmptyState\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { Card } from \"./card\";\n\nexport interface MetricCardProps extends React.HTMLAttributes<HTMLDivElement> {\n title: string;\n value: string | number;\n trend?: string;\n trendDirection?: \"up\" | \"down\" | \"neutral\";\n description?: string;\n icon?: React.ReactNode;\n}\n\nexport const MetricCard = React.forwardRef<HTMLDivElement, MetricCardProps>(\n ({ className, title, value, trend, trendDirection = \"neutral\", description, icon, ...props }, ref) => {\n const trendColor = {\n up: \"text-success bg-success-surface border-success/20\",\n down: \"text-danger bg-danger-surface border-danger/20\",\n neutral: \"text-muted-foreground bg-muted border-border/20\",\n }[trendDirection];\n\n return (\n <Card ref={ref} className={cn(\"p-6\", className)} {...props}>\n <div className=\"flex items-center justify-between mb-3\">\n <span className=\"text-xs font-mono font-semibold uppercase tracking-[0.1em] text-muted-foreground\">\n {title}\n </span>\n {icon && <span className=\"text-muted-foreground shrink-0 [&_svg]:h-4 [&_svg]:w-4\">{icon}</span>}\n </div>\n <div className=\"flex items-baseline gap-2.5 mb-1.5\">\n <span className=\"text-3xl font-bold tracking-tight text-foreground\">{value}</span>\n {trend && (\n <span className={cn(\"text-[0.75rem] font-bold px-2 py-0.5 rounded-full border\", trendColor)}>\n {trend}\n </span>\n )}\n </div>\n {description && <p className=\"text-xs text-muted-foreground\">{description}</p>}\n </Card>\n );\n }\n);\nMetricCard.displayName = \"MetricCard\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { Table, TableWrap, TableHeader, TableBody, TableRow, TableHead, TableCell } from \"./table\";\nimport { Spinner } from \"./spinner\";\nimport { Alert } from \"./alert\";\nimport { EmptyState } from \"./empty-state\";\n\nexport interface DataTableColumn<T> {\n header: React.ReactNode;\n accessor: (row: T) => React.ReactNode;\n className?: string;\n}\n\nexport interface DataTableProps<T> extends React.HTMLAttributes<HTMLDivElement> {\n columns: DataTableColumn<T>[];\n data: T[];\n loading?: boolean;\n error?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n emptyAction?: React.ReactNode;\n}\n\nexport function DataTable<T>({\n className,\n columns,\n data,\n loading = false,\n error,\n emptyTitle = \"No data available\",\n emptyDescription = \"There are no records to display at this time.\",\n emptyAction,\n ...props\n}: DataTableProps<T>) {\n return (\n <TableWrap className={cn(\"relative overflow-hidden\", className)} {...props}>\n <Table>\n <TableHeader>\n <TableRow>\n {columns.map((col, idx) => (\n <TableHead key={idx} className={col.className}>\n {col.header}\n </TableHead>\n ))}\n </TableRow>\n </TableHeader>\n <TableBody>\n {loading && data.length === 0 ? (\n <TableRow>\n <TableCell colSpan={columns.length} className=\"h-64 text-center\">\n <div className=\"flex flex-col items-center justify-center gap-3\">\n <Spinner size={32} />\n <span className=\"text-sm text-muted-foreground\">Loading dataset...</span>\n </div>\n </TableCell>\n </TableRow>\n ) : error ? (\n <TableRow>\n <TableCell colSpan={columns.length} className=\"p-8\">\n <Alert variant=\"danger\" title=\"Error loading data\">\n {error}\n </Alert>\n </TableCell>\n </TableRow>\n ) : data.length === 0 ? (\n <TableRow>\n <TableCell colSpan={columns.length} className=\"p-0\">\n <EmptyState\n title={emptyTitle}\n description={emptyDescription}\n action={emptyAction}\n className=\"border-none bg-transparent rounded-none py-16\"\n />\n </TableCell>\n </TableRow>\n ) : (\n data.map((row, rowIdx) => (\n <TableRow key={rowIdx}>\n {columns.map((col, colIdx) => (\n <TableCell key={colIdx} className={col.className}>\n {col.accessor(row)}\n </TableCell>\n ))}\n </TableRow>\n ))\n )}\n </TableBody>\n </Table>\n {loading && data.length > 0 && (\n <div className=\"absolute inset-0 bg-background/50 backdrop-blur-[1px] grid place-items-center z-10 transition-opacity duration-150\">\n <Spinner size={36} />\n </div>\n )}\n </TableWrap>\n );\n}\nDataTable.displayName = \"DataTable\";\n"]}
1
+ {"version":3,"sources":["../src/lib/cn.ts","../src/components/button.tsx","../src/components/badge.tsx","../src/components/alert.tsx","../src/components/spinner.tsx","../src/components/progress.tsx","../src/components/field.tsx","../src/components/form-field.tsx","../src/components/input.tsx","../src/components/select.tsx","../src/components/checkbox.tsx","../src/components/switch.tsx","../src/components/slider.tsx","../src/components/segmented.tsx","../src/components/card.tsx","../src/components/stat.tsx","../src/components/avatar.tsx","../src/components/tabs.tsx","../src/components/accordion.tsx","../src/components/dropdown-menu.tsx","../src/components/breadcrumb.tsx","../src/components/pagination.tsx","../src/components/bottom-navigation.tsx","../src/components/table.tsx","../src/components/tooltip.tsx","../src/components/modal.tsx","../src/components/toast.tsx","../src/components/page-header.tsx","../src/components/empty-state.tsx","../src/components/metric-card.tsx","../src/components/data-table.tsx","../src/components/error-state.tsx","../src/components/skeleton.tsx","../src/components/dashboard-shell.tsx","../src/components/settings-layout.tsx","../src/components/detail-page-layout.tsx","../src/components/table-toolbar.tsx","../src/components/confirm-dialog.tsx","../src/components/drawer.tsx","../src/components/command-palette.tsx","../src/components/sidebar-nav.tsx"],"names":["twMerge","clsx","cva","React","jsxs","jsx","React2","React3","React4","React5","React6","React7","React8","React9","React10","React11","React12","React13","React14","React15","React16","React17","React18","React19","React20","React21","React22","container","React23","React24","React25","React26","React27","React28","React29","React30","React31","React32","React33","React34","React35","Fragment"],"mappings":"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","file":"index.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Merge class names with Tailwind-aware conflict resolution.\n * `cn(\"px-2\", condition && \"px-4\")` → keeps the last conflicting utility.\n */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/cn\";\n\nconst buttonVariants = cva(\n [\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap select-none\",\n \"font-sans font-semibold leading-none\",\n \"border border-transparent rounded-kj-md cursor-pointer\",\n \"transition-[background-color,color,border-color,box-shadow,transform] duration-150\",\n \"active:translate-y-px\",\n \"focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/45\",\n \"disabled:opacity-50 disabled:pointer-events-none\",\n ],\n {\n variants: {\n variant: {\n primary: \"bg-primary text-primary-foreground hover:bg-primary-hover\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary-hover\",\n outline: \"bg-transparent text-foreground border-border hover:bg-muted hover:border-muted-foreground\",\n ghost: \"bg-transparent text-foreground hover:bg-muted\",\n danger: \"bg-danger text-white hover:brightness-95\",\n },\n size: {\n sm: \"h-8 px-3 text-[0.8rem] rounded-kj-sm\",\n md: \"h-10 px-[1.1rem] text-sm\",\n lg: \"h-12 px-6 text-base\",\n icon: \"h-10 w-10 p-0\",\n \"icon-sm\": \"h-8 w-8 p-0 rounded-kj-sm\",\n },\n },\n defaultVariants: { variant: \"primary\", size: \"md\" },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n /** Shows a spinner and disables interaction. */\n loading?: boolean;\n /** Icon rendered before the label. */\n leadingIcon?: React.ReactNode;\n /** Icon rendered after the label. */\n trailingIcon?: React.ReactNode;\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, loading, leadingIcon, trailingIcon, children, disabled, ...props }, ref) => {\n return (\n <button\n ref={ref}\n className={cn(buttonVariants({ variant, size }), loading && \"relative\", className)}\n disabled={disabled || loading}\n aria-busy={loading || undefined}\n {...props}\n >\n {loading && (\n <span\n aria-hidden\n className=\"absolute h-[1em] w-[1em] rounded-full border-2 border-current border-t-transparent animate-spin\"\n />\n )}\n <span className={cn(\"contents\", loading && \"invisible\")}>\n {leadingIcon && <span className=\"[&_svg]:h-[1.05em] [&_svg]:w-[1.05em]\">{leadingIcon}</span>}\n {children}\n {trailingIcon && <span className=\"[&_svg]:h-[1.05em] [&_svg]:w-[1.05em]\">{trailingIcon}</span>}\n </span>\n </button>\n );\n }\n);\nButton.displayName = \"Button\";\n\nexport { buttonVariants };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/cn\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center gap-1.5 px-2.5 py-0.5 text-xs font-semibold leading-snug rounded-full border border-transparent\",\n {\n variants: {\n variant: {\n neutral: \"bg-muted text-muted-foreground\",\n primary: \"bg-primary/15 text-primary-hover dark:text-primary\",\n secondary: \"bg-secondary/15 text-secondary-hover dark:text-secondary\",\n success: \"bg-success-surface text-success\",\n warning: \"bg-warning-surface text-warning\",\n danger: \"bg-danger-surface text-danger\",\n info: \"bg-info-surface text-info\",\n solid: \"bg-primary text-primary-foreground\",\n },\n },\n defaultVariants: { variant: \"neutral\" },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {\n /** Render a leading status dot. */\n dot?: boolean;\n}\n\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, dot, children, ...props }, ref) => (\n <span ref={ref} className={cn(badgeVariants({ variant }), className)} {...props}>\n {dot && <span className=\"h-1.5 w-1.5 rounded-full bg-current\" aria-hidden />}\n {children}\n </span>\n )\n);\nBadge.displayName = \"Badge\";\n\nexport { badgeVariants };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/cn\";\n\nconst alertVariants = cva(\n \"flex gap-3 items-start p-[0.9rem_1.1rem] rounded-kj-md border text-sm\",\n {\n variants: {\n variant: {\n info: \"bg-info-surface border-info/30\",\n success: \"bg-success-surface border-success/30\",\n warning: \"bg-warning-surface border-warning/30\",\n danger: \"bg-danger-surface border-danger/30\",\n },\n },\n defaultVariants: { variant: \"info\" },\n }\n);\n\nconst iconColor = {\n info: \"text-info\",\n success: \"text-success\",\n warning: \"text-warning\",\n danger: \"text-danger\",\n} as const;\n\nexport interface AlertProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"title\">,\n VariantProps<typeof alertVariants> {\n /** Optional leading icon (e.g. an SVG). Inherits the variant color. */\n icon?: React.ReactNode;\n title?: React.ReactNode;\n}\n\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant = \"info\", icon, title, children, ...props }, ref) => (\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props}>\n {icon && (\n <span className={cn(\"shrink-0 mt-0.5 [&_svg]:h-[1.15rem] [&_svg]:w-[1.15rem]\", iconColor[variant ?? \"info\"])}>\n {icon}\n </span>\n )}\n <div className=\"text-foreground\">\n {title && <p className=\"font-bold m-0 mb-0.5 text-sm\">{title}</p>}\n {children && <p className=\"m-0 opacity-85\">{children}</p>}\n </div>\n </div>\n )\n);\nAlert.displayName = \"Alert\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface SpinnerProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Diameter in px. Default 24. */\n size?: number;\n}\n\nexport const Spinner = React.forwardRef<HTMLSpanElement, SpinnerProps>(\n ({ className, size = 24, style, ...props }, ref) => (\n <span\n ref={ref}\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(\n \"inline-block rounded-full border-[2.5px] border-muted border-t-primary animate-spin align-middle\",\n className\n )}\n style={{ width: size, height: size, ...style }}\n {...props}\n />\n )\n);\nSpinner.displayName = \"Spinner\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {\n /** 0–100. */\n value?: number;\n tone?: \"primary\" | \"secondary\";\n /** Extra classes applied to the inner bar span — use for animation, transform-origin, etc. */\n barClassName?: string;\n}\n\nexport const Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value = 0, tone = \"primary\", barClassName, ...props }, ref) => {\n const pct = Math.max(0, Math.min(100, value));\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-label={props[\"aria-label\"] ?? \"Progress\"}\n aria-valuenow={pct}\n aria-valuemin={0}\n aria-valuemax={100}\n className={cn(\"h-2 w-full overflow-hidden rounded-full bg-muted\", className)}\n {...props}\n >\n <span\n className={cn(\n \"block h-full rounded-full transition-[width] duration-500 ease-out\",\n tone === \"secondary\" ? \"bg-secondary\" : \"bg-primary\",\n barClassName\n )}\n style={{ width: `${pct}%` }}\n />\n </div>\n );\n }\n);\nProgress.displayName = \"Progress\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {\n /** Append a red required marker. */\n required?: boolean;\n}\n\nexport const Label = React.forwardRef<HTMLLabelElement, LabelProps>(\n ({ className, required, children, ...props }, ref) => (\n <label ref={ref} className={cn(\"text-[0.8rem] font-semibold text-foreground\", className)} {...props}>\n {children}\n {required && <span className=\"text-danger\"> *</span>}\n </label>\n )\n);\nLabel.displayName = \"Label\";\n\nexport interface HintProps extends React.HTMLAttributes<HTMLSpanElement> {\n error?: boolean;\n}\n\nexport const Hint = React.forwardRef<HTMLSpanElement, HintProps>(\n ({ className, error, ...props }, ref) => (\n <span\n ref={ref}\n className={cn(\"text-[0.76rem]\", error ? \"text-danger\" : \"text-muted-foreground\", className)}\n {...props}\n />\n )\n);\nHint.displayName = \"Hint\";\n\n/** Vertical label + control + hint group. */\nexport const Field = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex flex-col gap-1.5\", className)} {...props} />\n )\n);\nField.displayName = \"Field\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { Label, Hint } from \"./field\";\n\nexport interface FormFieldProps extends React.HTMLAttributes<HTMLDivElement> {\n label: string;\n hint?: string;\n error?: string;\n required?: boolean;\n children: React.ReactNode;\n}\n\nexport const FormField = React.forwardRef<HTMLDivElement, FormFieldProps>(\n ({ className, label, hint, error, required, children, ...props }, ref) => {\n const id = React.useId();\n const hintId = `${id}-hint`;\n const errorId = `${id}-error`;\n\n const child = React.Children.only(children) as React.ReactElement;\n const clonedChild = React.cloneElement(child, {\n id: child.props.id ?? id,\n \"aria-describedby\": cn(\n hint && hintId,\n error && errorId,\n child.props[\"aria-describedby\"]\n ) || undefined,\n \"aria-invalid\": error ? \"true\" : undefined,\n required: child.props.required ?? required,\n });\n\n return (\n <div ref={ref} className={cn(\"flex flex-col gap-1.5 w-full\", className)} {...props}>\n <Label htmlFor={id} required={required}>\n {label}\n </Label>\n {clonedChild}\n {hint && !error && <Hint id={hintId}>{hint}</Hint>}\n {error && (\n <Hint id={errorId} error>\n {error}\n </Hint>\n )}\n </div>\n );\n }\n);\nFormField.displayName = \"FormField\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n /** Visual error state (red border + ring). */\n error?: boolean;\n /** Icon shown inside the field, leading edge. */\n leadingIcon?: React.ReactNode;\n}\n\nconst baseField =\n \"w-full font-sans text-sm text-foreground bg-surface border rounded-kj-md px-[0.85rem] \" +\n \"transition-[border-color,box-shadow] duration-150 placeholder:text-muted-foreground \" +\n \"focus:outline-none focus:border-ring focus:ring-[3px] focus:ring-ring/30 \" +\n \"disabled:bg-muted disabled:text-muted-foreground disabled:cursor-not-allowed\";\n\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, error, leadingIcon, style, ...props }, ref) => {\n const field = (\n <input\n ref={ref}\n aria-invalid={error || undefined}\n className={cn(\n baseField,\n \"py-[calc(0.6rem*var(--kj-density,1))]\",\n error\n ? \"border-danger focus:border-danger focus:ring-danger/25\"\n : \"border-input\",\n leadingIcon && \"pl-[2.3rem]\",\n className\n )}\n {...props}\n />\n );\n if (!leadingIcon) return field;\n return (\n <span className=\"relative flex items-center\">\n <span className=\"absolute left-[0.8rem] text-muted-foreground [&_svg]:h-[1.05rem] [&_svg]:w-[1.05rem] pointer-events-none\">\n {leadingIcon}\n </span>\n {field}\n </span>\n );\n }\n);\nInput.displayName = \"Input\";\n\nimport { FormField } from \"./form-field\";\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n error?: boolean;\n}\n\nexport const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, error, ...props }, ref) => (\n <textarea\n ref={ref}\n aria-invalid={error || undefined}\n className={cn(\n baseField,\n \"py-[calc(0.6rem*var(--kj-density,1))] min-h-[84px] leading-relaxed resize-y\",\n error ? \"border-danger focus:border-danger focus:ring-danger/25\" : \"border-input\",\n className\n )}\n {...props}\n />\n )\n);\nTextarea.displayName = \"Textarea\";\n\nexport interface TextFieldProps extends Omit<React.ComponentPropsWithoutRef<typeof Input>, \"error\"> {\n label: string;\n hint?: string;\n error?: string;\n required?: boolean;\n}\n\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n ({ label, hint, error, required, className, ...props }, ref) => {\n return (\n <FormField label={label} hint={hint} error={error} required={required} className={className}>\n <Input ref={ref} error={!!error} {...props} />\n </FormField>\n );\n }\n);\nTextField.displayName = \"TextField\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface SelectProps extends React.SelectHTMLAttributes<HTMLSelectElement> {\n error?: boolean;\n}\n\nconst chevron =\n \"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371717a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E\";\n\nexport const Select = React.forwardRef<HTMLSelectElement, SelectProps>(\n ({ className, error, style, children, ...props }, ref) => (\n <select\n ref={ref}\n aria-invalid={error || undefined}\n className={cn(\n \"w-full appearance-none cursor-pointer font-sans text-sm text-foreground bg-surface\",\n \"border rounded-kj-md py-[calc(0.6rem*var(--kj-density,1))] pl-[0.85rem] pr-9\",\n \"transition-[border-color,box-shadow] duration-150\",\n \"focus:outline-none focus:border-ring focus:ring-[3px] focus:ring-ring/30\",\n \"disabled:bg-muted disabled:text-muted-foreground disabled:cursor-not-allowed\",\n error ? \"border-danger\" : \"border-input\",\n className\n )}\n style={{\n backgroundImage: `url(\"${chevron}\")`,\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: \"right 0.75rem center\",\n backgroundSize: \"1rem\",\n ...style,\n }}\n {...props}\n >\n {children}\n </select>\n )\n);\nSelect.displayName = \"Select\";\n\nimport { FormField } from \"./form-field\";\n\nexport interface SelectFieldProps extends Omit<React.ComponentPropsWithoutRef<typeof Select>, \"error\"> {\n label: string;\n hint?: string;\n error?: string;\n required?: boolean;\n}\n\nexport const SelectField = React.forwardRef<HTMLSelectElement, SelectFieldProps>(\n ({ label, hint, error, required, className, children, ...props }, ref) => {\n return (\n <FormField label={label} hint={hint} error={error} required={required} className={className}>\n <Select ref={ref} error={!!error} {...props}>\n {children}\n </Select>\n </FormField>\n );\n }\n);\nSelectField.displayName = \"SelectField\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n ({ className, label, id, ...props }, ref) => {\n const autoId = React.useId();\n const inputId = id ?? autoId;\n return (\n <label htmlFor={inputId} className={cn(\"inline-flex items-center gap-2.5 cursor-pointer text-sm select-none\", className)}>\n <input ref={ref} id={inputId} type=\"checkbox\" className=\"peer sr-only\" {...props} />\n <span className=\"grid place-items-center h-[1.15rem] w-[1.15rem] shrink-0 rounded-[0.4rem] border-[1.5px] border-input bg-surface transition-all duration-150 peer-checked:bg-primary peer-checked:border-primary peer-focus-visible:ring-[3px] peer-focus-visible:ring-ring/35 peer-checked:[&_svg]:opacity-100 peer-checked:[&_svg]:scale-100\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={3} strokeLinecap=\"round\" strokeLinejoin=\"round\" className=\"h-3 w-3 text-primary-foreground opacity-0 scale-50 transition-all duration-150\">\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n </span>\n {label}\n </label>\n );\n }\n);\nCheckbox.displayName = \"Checkbox\";\n\nexport interface RadioProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nexport const Radio = React.forwardRef<HTMLInputElement, RadioProps>(\n ({ className, label, id, ...props }, ref) => {\n const autoId = React.useId();\n const inputId = id ?? autoId;\n return (\n <label htmlFor={inputId} className={cn(\"inline-flex items-center gap-2.5 cursor-pointer text-sm select-none\", className)}>\n <input ref={ref} id={inputId} type=\"radio\" className=\"peer sr-only\" {...props} />\n <span className=\"grid place-items-center h-[1.15rem] w-[1.15rem] shrink-0 rounded-full border-[1.5px] border-input bg-surface transition-all duration-150 peer-checked:bg-primary peer-checked:border-primary peer-focus-visible:ring-[3px] peer-focus-visible:ring-ring/35 peer-checked:[&>span]:opacity-100 peer-checked:[&>span]:scale-100\">\n <span className=\"h-2 w-2 rounded-full bg-primary-foreground opacity-0 scale-[0.4] transition-all duration-150\" />\n </span>\n {label}\n </label>\n );\n }\n);\nRadio.displayName = \"Radio\";\n\nimport { Hint } from \"./field\";\n\nexport interface CheckboxFieldProps extends React.ComponentPropsWithoutRef<typeof Checkbox> {\n label: React.ReactNode;\n hint?: string;\n error?: string;\n}\n\nexport const CheckboxField = React.forwardRef<HTMLInputElement, CheckboxFieldProps>(\n ({ label, hint, error, className, ...props }, ref) => {\n const id = React.useId();\n const hintId = `${id}-hint`;\n const errorId = `${id}-error`;\n return (\n <div className={cn(\"flex flex-col gap-1 w-full\", className)}>\n <Checkbox\n ref={ref}\n id={id}\n label={label}\n aria-describedby={cn(hint && hintId, error && errorId) || undefined}\n aria-invalid={error ? \"true\" : undefined}\n {...props}\n />\n {hint && !error && (\n <Hint id={hintId} className=\"pl-[1.8rem]\">{hint}</Hint>\n )}\n {error && (\n <Hint id={errorId} error className=\"pl-[1.8rem]\">{error}</Hint>\n )}\n </div>\n );\n }\n);\nCheckboxField.displayName = \"CheckboxField\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface SwitchProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: React.ReactNode;\n}\n\nexport const Switch = React.forwardRef<HTMLInputElement, SwitchProps>(\n ({ className, label, id, ...props }, ref) => {\n const autoId = React.useId();\n const inputId = id ?? autoId;\n return (\n <label htmlFor={inputId} className={cn(\"inline-flex items-center gap-2.5 cursor-pointer text-sm select-none\", className)}>\n <input ref={ref} id={inputId} type=\"checkbox\" role=\"switch\" className=\"peer sr-only\" {...props} />\n <span className=\"relative h-[1.45rem] w-[2.6rem] shrink-0 rounded-full bg-input transition-colors duration-200 peer-checked:bg-primary peer-focus-visible:ring-[3px] peer-focus-visible:ring-ring/35 after:content-[''] after:absolute after:top-0.5 after:left-0.5 after:h-[calc(1.45rem-4px)] after:w-[calc(1.45rem-4px)] after:rounded-full after:bg-white after:shadow-kj-sm after:transition-transform after:duration-200 peer-checked:after:translate-x-[1.15rem]\" />\n {label}\n </label>\n );\n }\n);\nSwitch.displayName = \"Switch\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport type SliderProps = React.InputHTMLAttributes<HTMLInputElement>;\n\n/**\n * Range slider styled with the kit's primary token. Thumb styling lives in a\n * scoped <style> tag because pseudo-elements (::-webkit-slider-thumb) can't be\n * expressed as Tailwind utilities.\n */\nexport const Slider = React.forwardRef<HTMLInputElement, SliderProps>(\n ({ className, ...props }, ref) => (\n <input\n ref={ref}\n type=\"range\"\n className={cn(\n \"kj-slider w-full h-1.5 rounded-full bg-input appearance-none cursor-pointer\",\n className\n )}\n {...props}\n />\n )\n);\nSlider.displayName = \"Slider\";\n\n/** Inject once near the app root (or rely on the package stylesheet). */\nexport const sliderThumbCSS = `\n.kj-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:9999px;background:var(--kj-primary);border:3px solid var(--kj-surface);box-shadow:var(--kj-shadow-sm);cursor:pointer}\n.kj-slider::-moz-range-thumb{width:18px;height:18px;border-radius:9999px;background:var(--kj-primary);border:3px solid var(--kj-surface);box-shadow:var(--kj-shadow-sm);cursor:pointer}\n`;\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface SegmentedOption<T extends string> {\n value: T;\n label: React.ReactNode;\n}\n\nexport interface SegmentedProps<T extends string> {\n options: SegmentedOption<T>[];\n value: T;\n onChange: (value: T) => void;\n className?: string;\n \"aria-label\"?: string;\n}\n\n/** Segmented control / single-select toggle group. Controlled. */\nexport function Segmented<T extends string>({\n options,\n value,\n onChange,\n className,\n ...props\n}: SegmentedProps<T>) {\n return (\n <div\n role=\"tablist\"\n className={cn(\"inline-flex gap-0.5 p-[3px] rounded-kj-md bg-muted\", className)}\n {...props}\n >\n {options.map((opt) => {\n const active = opt.value === value;\n return (\n <button\n key={opt.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={active}\n onClick={() => onChange(opt.value)}\n className={cn(\n \"px-3.5 py-1.5 text-[0.82rem] font-semibold rounded-[calc(var(--kj-radius-md)-3px)] cursor-pointer transition-all duration-150\",\n active\n ? \"bg-surface text-foreground shadow-kj-xs\"\n : \"bg-transparent text-muted-foreground hover:text-foreground\"\n )}\n >\n {opt.label}\n </button>\n );\n })}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface CardProps extends Omit<React.AllHTMLAttributes<HTMLElement>, \"as\"> {\n as?: React.ElementType;\n /** Drop the border + heavier shadow for a floating look. */\n elevated?: boolean;\n /** Adds hover lift effect — translate-y + shadow. For keyboard accessibility pair with `as=\"a\"` or `as=\"button\"`. */\n interactive?: boolean;\n}\n\nexport const Card = React.forwardRef<HTMLElement, CardProps>(\n ({ as: Tag = \"div\", className, elevated, interactive, ...props }, ref) => (\n <Tag\n ref={ref}\n className={cn(\n \"bg-card text-card-foreground rounded-kj-xl overflow-hidden border\",\n elevated ? \"border-transparent shadow-kj-lg\" : \"border-border shadow-kj-sm\",\n interactive && \"cursor-pointer transition-all duration-300 hover:-translate-y-1 hover:shadow-kj-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n )\n);\nCard.displayName = \"Card\";\n\nexport const CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-[1.35rem] flex flex-col gap-1\", className)} {...props} />\n )\n);\nCardHeader.displayName = \"CardHeader\";\n\nexport const CardTitle = React.forwardRef<HTMLHeadingElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3 ref={ref} className={cn(\"m-0 text-base font-bold tracking-[-0.01em]\", className)} {...props} />\n )\n);\nCardTitle.displayName = \"CardTitle\";\n\nexport const CardDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p ref={ref} className={cn(\"m-0 text-[0.85rem] text-muted-foreground\", className)} {...props} />\n )\n);\nCardDescription.displayName = \"CardDescription\";\n\n/** Body region with default padding. */\nexport const CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"px-[1.35rem] pb-[1.35rem]\", className)} {...props} />\n )\n);\nCardContent.displayName = \"CardContent\";\n\nexport const CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex gap-2.5 px-[1.35rem] py-[1.1rem] border-t border-border bg-muted/40\", className)}\n {...props}\n />\n )\n);\nCardFooter.displayName = \"CardFooter\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { Card } from \"./card\";\n\nexport interface StatProps extends React.HTMLAttributes<HTMLDivElement> {\n label: React.ReactNode;\n value: React.ReactNode;\n /** e.g. \"+12.3% mdm\" */\n delta?: React.ReactNode;\n trend?: \"up\" | \"down\";\n}\n\nexport const Stat = React.forwardRef<HTMLDivElement, StatProps>(\n ({ className, label, value, delta, trend, ...props }, ref) => (\n <Card ref={ref} className={cn(\"p-[1.35rem] flex flex-col gap-2\", className)} {...props}>\n <span className=\"text-[0.78rem] font-semibold uppercase tracking-[0.05em] text-muted-foreground\">\n {label}\n </span>\n <span className=\"text-[2rem] font-bold tracking-[-0.03em] tabular-nums leading-none\">\n {value}\n </span>\n {delta && (\n <span\n className={cn(\n \"inline-flex items-center gap-1 text-[0.8rem] font-semibold\",\n trend === \"down\" ? \"text-danger\" : \"text-success\"\n )}\n >\n {trend === \"down\" ? \"▼\" : \"▲\"} {delta}\n </span>\n )}\n </Card>\n )\n);\nStat.displayName = \"Stat\";\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/cn\";\n\nconst avatarVariants = cva(\n \"grid place-items-center shrink-0 rounded-full font-semibold border-2 border-surface\",\n {\n variants: {\n size: {\n sm: \"h-7 w-7 text-[0.7rem]\",\n md: \"h-9 w-9 text-[0.8rem]\",\n lg: \"h-12 w-12 text-base\",\n },\n tone: {\n secondary: \"bg-secondary text-secondary-foreground\",\n primary: \"bg-primary text-primary-foreground\",\n info: \"bg-info text-white\",\n muted: \"bg-muted text-muted-foreground\",\n },\n },\n defaultVariants: { size: \"md\", tone: \"secondary\" },\n }\n);\n\nexport interface AvatarProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof avatarVariants> {\n /** Image URL; falls back to initials/children when absent. */\n src?: string;\n alt?: string;\n /** Show an online status dot. */\n status?: boolean;\n}\n\nexport const Avatar = React.forwardRef<HTMLSpanElement, AvatarProps>(\n ({ className, size, tone, src, alt, status, children, ...props }, ref) => {\n const node = (\n <span ref={ref} className={cn(avatarVariants({ size, tone }), \"overflow-hidden\", className)} {...props}>\n {src ? <img src={src} alt={alt} className=\"h-full w-full object-cover\" /> : children}\n </span>\n );\n if (!status) return node;\n return (\n <span className=\"relative inline-flex\">\n {node}\n <span className=\"absolute -right-px -bottom-px h-[0.7rem] w-[0.7rem] rounded-full bg-success border-2 border-surface\" />\n </span>\n );\n }\n);\nAvatar.displayName = \"Avatar\";\n\n/** Overlapping cluster of avatars. */\nexport const AvatarGroup = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex [&>*:not(:first-child)]:-ml-2.5\", className)} {...props} />\n )\n);\nAvatarGroup.displayName = \"AvatarGroup\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\ninterface TabsCtx {\n value: string;\n setValue: (v: string) => void;\n}\nconst TabsContext = React.createContext<TabsCtx | null>(null);\nfunction useTabs() {\n const ctx = React.useContext(TabsContext);\n if (!ctx) throw new Error(\"Tabs.* must be used within <Tabs>\");\n return ctx;\n}\n\nexport interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Controlled active value. */\n value?: string;\n /** Uncontrolled initial value. */\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n}\n\nexport function Tabs({ value, defaultValue, onValueChange, className, children, ...props }: TabsProps) {\n const [internal, setInternal] = React.useState(defaultValue ?? \"\");\n const current = value ?? internal;\n const setValue = React.useCallback(\n (v: string) => {\n if (value === undefined) setInternal(v);\n onValueChange?.(v);\n },\n [value, onValueChange]\n );\n return (\n <TabsContext.Provider value={{ value: current, setValue }}>\n <div className={className} {...props}>\n {children}\n </div>\n </TabsContext.Provider>\n );\n}\n\nexport const TabsList = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, onKeyDown, ...props }, ref) => {\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n const container = e.currentTarget;\n const tabs = Array.from(container.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]'));\n if (tabs.length === 0) return;\n\n const activeIndex = tabs.findIndex((tab) => tab.getAttribute(\"aria-selected\") === \"true\");\n let newIndex = activeIndex;\n\n if (e.key === \"ArrowRight\" || e.key === \"ArrowDown\") {\n e.preventDefault();\n newIndex = (activeIndex + 1) % tabs.length;\n tabs[newIndex].focus();\n tabs[newIndex].click();\n } else if (e.key === \"ArrowLeft\" || e.key === \"ArrowUp\") {\n e.preventDefault();\n newIndex = (activeIndex - 1 + tabs.length) % tabs.length;\n tabs[newIndex].focus();\n tabs[newIndex].click();\n } else if (e.key === \"Home\") {\n e.preventDefault();\n newIndex = 0;\n tabs[newIndex].focus();\n tabs[newIndex].click();\n } else if (e.key === \"End\") {\n e.preventDefault();\n newIndex = tabs.length - 1;\n tabs[newIndex].focus();\n tabs[newIndex].click();\n }\n\n onKeyDown?.(e);\n };\n\n return (\n <div\n ref={ref}\n role=\"tablist\"\n onKeyDown={handleKeyDown}\n className={cn(\"flex gap-1 border-b border-border\", className)}\n {...props}\n />\n );\n }\n);\nTabsList.displayName = \"TabsList\";\n\nexport interface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string;\n}\n\nexport const TabsTrigger = React.forwardRef<HTMLButtonElement, TabsTriggerProps>(\n ({ className, value, children, ...props }, ref) => {\n const { value: current, setValue } = useTabs();\n const active = current === value;\n return (\n <button\n ref={ref}\n type=\"button\"\n role=\"tab\"\n id={`tabs-trigger-${value}`}\n aria-controls={`tabs-panel-${value}`}\n aria-selected={active}\n tabIndex={active ? 0 : -1}\n onClick={() => setValue(value)}\n className={cn(\n \"relative px-[0.9rem] py-2.5 text-sm font-semibold cursor-pointer transition-colors duration-150 outline-none\",\n \"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:rounded-sm\",\n \"after:content-[''] after:absolute after:left-[0.9rem] after:right-[0.9rem] after:-bottom-px after:h-0.5 after:rounded-sm after:transition-colors\",\n active\n ? \"text-foreground after:bg-primary\"\n : \"text-muted-foreground hover:text-foreground after:bg-transparent\",\n className\n )}\n {...props}\n >\n {children}\n </button>\n );\n }\n);\nTabsTrigger.displayName = \"TabsTrigger\";\n\nexport interface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\n\nexport const TabsContent = React.forwardRef<HTMLDivElement, TabsContentProps>(\n ({ className, value, ...props }, ref) => {\n const { value: current } = useTabs();\n const active = current === value;\n if (!active) return null;\n return (\n <div\n ref={ref}\n role=\"tabpanel\"\n id={`tabs-panel-${value}`}\n aria-labelledby={`tabs-trigger-${value}`}\n tabIndex={0}\n className={cn(\"pt-5 text-[0.9rem] text-muted-foreground outline-none\", className)}\n {...props}\n />\n );\n }\n);\nTabsContent.displayName = \"TabsContent\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\ninterface AccordionCtx {\n open: string[];\n toggle: (v: string) => void;\n}\nconst AccordionContext = React.createContext<AccordionCtx | null>(null);\n\nexport interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {\n /** \"single\" closes others when one opens. */\n type?: \"single\" | \"multiple\";\n defaultValue?: string[];\n}\n\nexport function Accordion({ type = \"single\", defaultValue = [], className, children, ...props }: AccordionProps) {\n const [open, setOpen] = React.useState<string[]>(defaultValue);\n const toggle = React.useCallback(\n (v: string) => {\n setOpen((prev) => {\n const isOpen = prev.includes(v);\n if (type === \"single\") return isOpen ? [] : [v];\n return isOpen ? prev.filter((x) => x !== v) : [...prev, v];\n });\n },\n [type]\n );\n return (\n <AccordionContext.Provider value={{ open, toggle }}>\n <div className={cn(\"border border-border rounded-kj-lg overflow-hidden\", className)} {...props}>\n {children}\n </div>\n </AccordionContext.Provider>\n );\n}\n\nconst ItemContext = React.createContext<string>(\"\");\n\nexport interface AccordionItemProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string;\n}\n\nexport const AccordionItem = React.forwardRef<HTMLDivElement, AccordionItemProps>(\n ({ className, value, ...props }, ref) => (\n <ItemContext.Provider value={value}>\n <div ref={ref} className={cn(\"border-t border-border first:border-t-0\", className)} {...props} />\n </ItemContext.Provider>\n )\n);\nAccordionItem.displayName = \"AccordionItem\";\n\nexport const AccordionTrigger = React.forwardRef<HTMLButtonElement, React.ButtonHTMLAttributes<HTMLButtonElement>>(\n ({ className, children, ...props }, ref) => {\n const ctx = React.useContext(AccordionContext)!;\n const value = React.useContext(ItemContext);\n const isOpen = ctx.open.includes(value);\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-expanded={isOpen}\n onClick={() => ctx.toggle(value)}\n className={cn(\n \"w-full flex justify-between items-center gap-4 text-left px-[1.2rem] py-4 bg-card text-foreground text-[0.9rem] font-semibold cursor-pointer hover:bg-muted transition-colors\",\n className\n )}\n {...props}\n >\n {children}\n <svg\n className={cn(\"shrink-0 text-muted-foreground transition-transform duration-200\", isOpen && \"rotate-180\")}\n width={18} height={18} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} strokeLinecap=\"round\" strokeLinejoin=\"round\"\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n </button>\n );\n }\n);\nAccordionTrigger.displayName = \"AccordionTrigger\";\n\nexport const AccordionContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => {\n const ctx = React.useContext(AccordionContext)!;\n const value = React.useContext(ItemContext);\n const isOpen = ctx.open.includes(value);\n return (\n <div\n ref={ref}\n className={cn(\"grid transition-[grid-template-rows] duration-200 ease-out\", isOpen ? \"[grid-template-rows:1fr]\" : \"[grid-template-rows:0fr]\")}\n {...props}\n >\n <div className=\"overflow-hidden\">\n <div className={cn(\"px-[1.2rem] pt-3 pb-4 text-[0.85rem] text-muted-foreground\", className)}>{children}</div>\n </div>\n </div>\n );\n }\n);\nAccordionContent.displayName = \"AccordionContent\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\ninterface MenuCtx {\n open: boolean;\n setOpen: (v: boolean) => void;\n}\nconst MenuContext = React.createContext<MenuCtx | null>(null);\n\nexport function DropdownMenu({ children, className }: { children: React.ReactNode; className?: string }) {\n const [open, setOpen] = React.useState(false);\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n if (!open) return;\n const onDoc = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) setOpen(false);\n };\n const onEsc = (e: KeyboardEvent) => e.key === \"Escape\" && setOpen(false);\n document.addEventListener(\"mousedown\", onDoc);\n document.addEventListener(\"keydown\", onEsc);\n return () => {\n document.removeEventListener(\"mousedown\", onDoc);\n document.removeEventListener(\"keydown\", onEsc);\n };\n }, [open]);\n\n return (\n <MenuContext.Provider value={{ open, setOpen }}>\n <div ref={ref} className={cn(\"relative inline-block\", className)}>\n {children}\n </div>\n </MenuContext.Provider>\n );\n}\n\nexport const DropdownMenuTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & { asChild?: boolean }\n>(({ onClick, asChild, ...props }, ref) => {\n const ctx = React.useContext(MenuContext)!;\n if (asChild) {\n const child = React.Children.only(props.children) as React.ReactElement;\n return React.cloneElement(child, {\n ref,\n ...props,\n ...child.props,\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => {\n ctx.setOpen(!ctx.open);\n onClick?.(e);\n child.props.onClick?.(e);\n },\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": ctx.open,\n });\n }\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-haspopup=\"menu\"\n aria-expanded={ctx.open}\n onClick={(e) => {\n ctx.setOpen(!ctx.open);\n onClick?.(e);\n }}\n {...props}\n />\n );\n});\nDropdownMenuTrigger.displayName = \"DropdownMenuTrigger\";\n\nexport interface DropdownMenuContentProps extends React.HTMLAttributes<HTMLDivElement> {\n align?: \"start\" | \"end\";\n}\n\nexport function DropdownMenuContent({ className, align = \"start\", children, ...props }: DropdownMenuContentProps) {\n const ctx = React.useContext(MenuContext)!;\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n if (!ctx.open) return;\n const container = ref.current;\n if (container) {\n const items = Array.from(container.querySelectorAll<HTMLButtonElement | HTMLAnchorElement>('[role=\"menuitem\"]'));\n if (items.length > 0) {\n setTimeout(() => items[0].focus(), 50);\n }\n }\n }, [ctx.open]);\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n const container = ref.current;\n if (!container) return;\n\n const items = Array.from(container.querySelectorAll<HTMLElement>('[role=\"menuitem\"]'));\n if (items.length === 0) return;\n\n const currentIndex = items.indexOf(document.activeElement as HTMLElement);\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n const nextIndex = (currentIndex + 1) % items.length;\n items[nextIndex].focus();\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n const prevIndex = (currentIndex - 1 + items.length) % items.length;\n items[prevIndex].focus();\n } else if (e.key === \"Tab\" || e.key === \"Escape\") {\n ctx.setOpen(false);\n }\n };\n\n if (!ctx.open) return null;\n return (\n <div\n ref={ref}\n role=\"menu\"\n tabIndex={-1}\n onKeyDown={handleKeyDown}\n className={cn(\n \"absolute top-[calc(100%+6px)] z-40 min-w-[200px] p-1.5 rounded-kj-md bg-surface border border-border shadow-kj-lg outline-none\",\n \"animate-[kjpop_.12s_ease]\",\n align === \"end\" ? \"right-0\" : \"left-0\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n\nexport interface DropdownMenuItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n danger?: boolean;\n icon?: React.ReactNode;\n}\n\nexport const DropdownMenuItem = React.forwardRef<HTMLButtonElement, DropdownMenuItemProps>(\n ({ className, danger, icon, children, onClick, ...props }, ref) => {\n const ctx = React.useContext(MenuContext)!;\n return (\n <button\n ref={ref}\n type=\"button\"\n role=\"menuitem\"\n onClick={(e) => {\n onClick?.(e);\n ctx.setOpen(false);\n }}\n className={cn(\n \"w-full flex items-center gap-2.5 text-left px-2.5 py-2 rounded-kj-sm text-[0.85rem] cursor-pointer transition-colors\",\n \"[&_svg]:h-4 [&_svg]:w-4\",\n danger ? \"text-danger hover:bg-danger-surface\" : \"text-foreground hover:bg-muted\",\n className\n )}\n {...props}\n >\n {icon}\n {children}\n </button>\n );\n }\n);\nDropdownMenuItem.displayName = \"DropdownMenuItem\";\n\nexport function DropdownMenuSeparator({ className }: { className?: string }) {\n return <div className={cn(\"h-px bg-border my-1.5\", className)} role=\"separator\" />;\n}\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport const Breadcrumb = React.forwardRef<HTMLElement, React.HTMLAttributes<HTMLElement>>(\n ({ className, children, ...props }, ref) => (\n <nav ref={ref} aria-label=\"Breadcrumb\" className={cn(\"flex items-center gap-1.5 text-[0.85rem] text-muted-foreground\", className)} {...props}>\n {children}\n </nav>\n )\n);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nexport interface BreadcrumbItemProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n /** Marks the trailing current page (non-link, emphasized). */\n current?: boolean;\n}\n\nexport const BreadcrumbItem = React.forwardRef<HTMLAnchorElement, BreadcrumbItemProps>(\n ({ className, current, children, ...props }, ref) => {\n if (current) {\n return (\n <span aria-current=\"page\" className={cn(\"text-foreground font-semibold\", className)}>\n {children}\n </span>\n );\n }\n return (\n <a ref={ref} className={cn(\"text-inherit no-underline hover:text-foreground transition-colors\", className)} {...props}>\n {children}\n </a>\n );\n }\n);\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nexport function BreadcrumbSeparator() {\n return <span aria-hidden className=\"text-muted-foreground/70\">/</span>;\n}\n","import { cn } from \"../lib/cn\";\nimport { Button } from \"./button\";\n\nexport interface PaginationProps {\n page: number;\n pageCount: number;\n onPageChange: (page: number) => void;\n /** How many numbered buttons to show around the edges. Default 5. */\n siblingCount?: number;\n className?: string;\n}\n\nfunction range(start: number, end: number) {\n return Array.from({ length: end - start + 1 }, (_, i) => start + i);\n}\n\n/** Builds a compact page list with ellipses, e.g. [1,2,3,'…',9]. */\nfunction paginate(page: number, pageCount: number): (number | \"…\")[] {\n if (pageCount <= 7) return range(1, pageCount);\n const left = Math.max(2, page - 1);\n const right = Math.min(pageCount - 1, page + 1);\n const items: (number | \"…\")[] = [1];\n if (left > 2) items.push(\"…\");\n items.push(...range(left, right));\n if (right < pageCount - 1) items.push(\"…\");\n items.push(pageCount);\n return items;\n}\n\nconst Chevron = ({ dir }: { dir: \"left\" | \"right\" }) => (\n <svg width={16} height={16} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <polyline points={dir === \"left\" ? \"15 18 9 12 15 6\" : \"9 18 15 12 9 6\"} />\n </svg>\n);\n\nexport function Pagination({ page, pageCount, onPageChange, className }: PaginationProps) {\n const items = paginate(page, pageCount);\n return (\n <nav aria-label=\"Paginacja\" className={cn(\"flex items-center gap-1\", className)}>\n <Button variant=\"ghost\" size=\"icon-sm\" aria-label=\"Previous\" disabled={page <= 1} onClick={() => onPageChange(page - 1)}>\n <Chevron dir=\"left\" />\n </Button>\n {items.map((it, i) =>\n it === \"…\" ? (\n <span key={`e${i}`} className=\"px-1 text-muted-foreground select-none\">…</span>\n ) : (\n <Button\n key={it}\n variant={it === page ? \"primary\" : \"ghost\"}\n size=\"icon-sm\"\n aria-current={it === page ? \"page\" : undefined}\n onClick={() => onPageChange(it)}\n >\n {it}\n </Button>\n )\n )}\n <Button variant=\"ghost\" size=\"icon-sm\" aria-label=\"Next\" disabled={page >= pageCount} onClick={() => onPageChange(page + 1)}>\n <Chevron dir=\"right\" />\n </Button>\n </nav>\n );\n}\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface BottomNavigationItem {\n id: string;\n label: string;\n href?: string;\n onClick?: () => void;\n icon: React.ReactNode;\n active?: boolean;\n badge?: React.ReactNode;\n}\n\nexport interface BottomNavigationProps extends React.HTMLAttributes<HTMLElement> {\n items: BottomNavigationItem[];\n /** Mode for displaying labels:\n * - 'always': Always show labels for all items.\n * - 'active': Only show label for the active item, hiding others.\n * - 'never': Hide all labels (only show icons).\n */\n showLabels?: \"always\" | \"active\" | \"never\";\n /** If true, uses fixed positioning at the bottom of the viewport with backdrop-blur. */\n fixed?: boolean;\n}\n\nexport const BottomNavigation = React.forwardRef<HTMLElement, BottomNavigationProps>(\n ({ className, items, showLabels = \"always\", fixed = true, ...props }, ref) => {\n return (\n <nav\n ref={ref}\n className={cn(\n \"bg-surface/90 border-t border-border flex items-center justify-around px-4 pt-2 pb-[calc(0.75rem+env(safe-area-inset-bottom,0))] shadow-kj-lg\",\n fixed ? \"fixed bottom-0 left-0 right-0 z-40 backdrop-blur-md\" : \"relative w-full\",\n className\n )}\n {...props}\n >\n {items.map((item) => {\n const isActive = item.active;\n const showLabel = showLabels !== \"never\" && (showLabels === \"always\" || isActive);\n\n const content = (\n <span className=\"flex flex-col items-center justify-center gap-1 w-full relative\">\n <span\n className={cn(\n \"relative flex items-center justify-center p-1 rounded-full transition-all duration-200\",\n isActive \n ? \"text-primary scale-110\" \n : \"text-muted-foreground group-hover:text-foreground group-active:scale-95\"\n )}\n >\n {item.icon}\n {item.badge !== undefined && item.badge !== null && (\n <span className=\"absolute -top-1 -right-1.5 min-w-[16px] h-[16px] px-1 rounded-full bg-primary text-primary-foreground text-[9px] font-bold flex items-center justify-center ring-2 ring-surface\">\n {item.badge}\n </span>\n )}\n </span>\n \n <span\n className={cn(\n \"text-[10px] font-semibold tracking-wide transition-all duration-200 select-none\",\n showLabel ? \"opacity-100 scale-100 h-auto\" : \"opacity-0 scale-75 h-0 overflow-hidden\",\n isActive ? \"text-primary font-bold\" : \"text-muted-foreground group-hover:text-foreground\"\n )}\n >\n {item.label}\n </span>\n \n {/* Subtle active indicator dot */}\n {isActive && (\n <span className=\"absolute -bottom-1.5 w-1 h-1 rounded-full bg-primary animate-fade-in\" />\n )}\n </span>\n );\n\n const itemClass = \"group flex-1 flex flex-col items-center justify-center py-1 cursor-pointer transition-all duration-150 relative focus:outline-none\";\n\n if (item.href) {\n return (\n <a\n key={item.id}\n href={item.href}\n className={itemClass}\n aria-current={isActive ? \"page\" : undefined}\n >\n {content}\n </a>\n );\n }\n\n return (\n <button\n key={item.id}\n type=\"button\"\n onClick={item.onClick}\n className={itemClass}\n aria-pressed={isActive}\n >\n {content}\n </button>\n );\n })}\n </nav>\n );\n }\n);\n\nBottomNavigation.displayName = \"BottomNavigation\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\n/** Rounded, bordered wrapper around a <Table>. */\nexport const TableWrap = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"border border-border rounded-kj-lg overflow-x-auto w-full\", className)} {...props} />\n )\n);\nTableWrap.displayName = \"TableWrap\";\n\nexport const Table = React.forwardRef<HTMLTableElement, React.TableHTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <table ref={ref} className={cn(\"w-full border-collapse text-[0.85rem]\", className)} {...props} />\n )\n);\nTable.displayName = \"Table\";\n\nexport const TableHeader = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => <thead ref={ref} className={className} {...props} />\n);\nTableHeader.displayName = \"TableHeader\";\n\nexport const TableBody = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => <tbody ref={ref} className={className} {...props} />\n);\nTableBody.displayName = \"TableBody\";\n\nexport const TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr ref={ref} className={cn(\"transition-colors hover:bg-muted/50\", className)} {...props} />\n )\n);\nTableRow.displayName = \"TableRow\";\n\nexport interface TableCellProps extends React.TdHTMLAttributes<HTMLTableCellElement> {\n /** Right-align with tabular numerals. */\n numeric?: boolean;\n}\n\nexport const TableHead = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, numeric, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"px-4 py-3 bg-muted border-b border-border text-[0.72rem] font-semibold uppercase tracking-[0.05em] text-muted-foreground\",\n numeric ? \"text-right\" : \"text-left\",\n className\n )}\n {...props}\n />\n )\n);\nTableHead.displayName = \"TableHead\";\n\nexport const TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, numeric, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"px-4 py-3 border-b border-border [tr:last-child_&]:border-b-0\",\n numeric && \"text-right tabular-nums\",\n className\n )}\n {...props}\n />\n )\n);\nTableCell.displayName = \"TableCell\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface TooltipProps {\n content: React.ReactNode;\n children: React.ReactNode;\n className?: string;\n}\n\n/** CSS-only hover/focus tooltip positioned above the trigger. */\nexport function Tooltip({ content, children, className }: TooltipProps) {\n return (\n <span className={cn(\"relative inline-flex group\", className)} tabIndex={0}>\n {children}\n <span\n role=\"tooltip\"\n className={cn(\n \"pointer-events-none absolute bottom-[calc(100%+8px)] left-1/2 -translate-x-1/2 translate-y-1 whitespace-nowrap\",\n \"rounded-kj-sm bg-foreground text-background text-xs font-medium px-2.5 py-1.5 shadow-kj-md\",\n \"opacity-0 transition-all duration-150 group-hover:opacity-100 group-hover:translate-y-0 group-focus-visible:opacity-100 group-focus-visible:translate-y-0\",\n \"after:content-[''] after:absolute after:top-full after:left-1/2 after:-translate-x-1/2 after:border-[5px] after:border-transparent after:border-t-foreground\"\n )}\n >\n {content}\n </span>\n </span>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface ModalProps {\n open: boolean;\n onClose: () => void;\n children: React.ReactNode;\n /** Max width of the panel. Default 440px. */\n width?: number;\n className?: string;\n showClose?: boolean;\n}\n\nconst ModalContext = React.createContext<{ titleId: string; descId: string } | null>(null);\n\n/** Centered overlay dialog. Closes on backdrop click and Escape. Includes focus trap and restore. */\nexport function Modal({ open, onClose, children, width = 440, className, showClose = true }: ModalProps) {\n const titleId = React.useId();\n const descId = React.useId();\n const containerRef = React.useRef<HTMLDivElement>(null);\n const lastActiveElement = React.useRef<HTMLElement | null>(null);\n\n React.useEffect(() => {\n if (!open) {\n if (lastActiveElement.current) {\n lastActiveElement.current.focus();\n lastActiveElement.current = null;\n }\n return;\n }\n\n lastActiveElement.current = document.activeElement as HTMLElement;\n\n const container = containerRef.current;\n if (container) {\n const focusables = container.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (focusables.length > 0) {\n // Delay slightly for transition to complete\n setTimeout(() => focusables[0].focus(), 50);\n } else {\n container.focus();\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n onClose();\n return;\n }\n\n if (e.key === \"Tab\") {\n const container = containerRef.current;\n if (!container) return;\n\n const focusables = Array.from(\n container.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )\n );\n if (focusables.length === 0) {\n e.preventDefault();\n return;\n }\n\n const first = focusables[0];\n const last = focusables[focusables.length - 1];\n\n if (e.shiftKey) {\n if (document.activeElement === first || document.activeElement === container) {\n last.focus();\n e.preventDefault();\n }\n } else {\n if (document.activeElement === last) {\n first.focus();\n e.preventDefault();\n }\n }\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n document.body.style.overflow = \"hidden\";\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.body.style.overflow = \"\";\n };\n }, [open, onClose]);\n\n return (\n <div\n onClick={(e) => e.target === e.currentTarget && onClose()}\n className={cn(\n \"fixed inset-0 z-[100] grid place-items-center p-6 backdrop-blur-[3px] transition-opacity duration-200\",\n \"bg-[color-mix(in_oklch,#09090b_55%,transparent)]\",\n open ? \"opacity-100 pointer-events-auto\" : \"opacity-0 pointer-events-none\"\n )}\n >\n <ModalContext.Provider value={{ titleId, descId }}>\n <div\n ref={containerRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descId}\n tabIndex={-1}\n style={{ maxWidth: width }}\n className={cn(\n \"relative w-full p-7 rounded-kj-2xl bg-surface border border-border shadow-kj-lg transition-transform duration-200 outline-none\",\n open ? \"scale-100 translate-y-0\" : \"scale-95 translate-y-2\",\n className\n )}\n >\n {showClose && (\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Close\"\n className=\"absolute top-4 right-4 p-1.5 rounded-kj-sm text-muted-foreground hover:text-foreground hover:bg-muted transition-colors cursor-pointer\"\n >\n <svg width={16} height={16} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2.5} strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n )}\n {children}\n </div>\n </ModalContext.Provider>\n </div>\n );\n}\n\nexport function ModalTitle({ className, id, ...props }: React.HTMLAttributes<HTMLHeadingElement>) {\n const ctx = React.useContext(ModalContext);\n return <h3 id={id ?? ctx?.titleId} className={cn(\"m-0 mb-2 text-[1.15rem] font-bold tracking-[-0.01em]\", className)} {...props} />;\n}\n\nexport function ModalDescription({ className, id, ...props }: React.HTMLAttributes<HTMLParagraphElement>) {\n const ctx = React.useContext(ModalContext);\n return <p id={id ?? ctx?.descId} className={cn(\"m-0 text-[0.9rem] text-muted-foreground\", className)} {...props} />;\n}\n\nexport function ModalActions({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"flex gap-2.5 justify-end mt-6\", className)} {...props} />;\n}\n\n","\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport type ToastTone = \"default\" | \"success\" | \"danger\";\nexport interface ToastOptions {\n message: React.ReactNode;\n tone?: ToastTone;\n /** Auto-dismiss after ms. Default 3200. Pass 0 to keep open. */\n duration?: number;\n}\ninterface ToastItem extends Required<Omit<ToastOptions, \"duration\">> {\n id: number;\n duration: number;\n leaving?: boolean;\n}\n\ninterface ToastCtx {\n toast: (opts: ToastOptions) => void;\n}\nconst ToastContext = React.createContext<ToastCtx | null>(null);\n\nexport function useToast() {\n const ctx = React.useContext(ToastContext);\n if (!ctx) throw new Error(\"useToast must be used within <ToastProvider>\");\n return ctx;\n}\n\nconst icons: Record<ToastTone, React.ReactNode> = {\n default: (\n <svg width={18} height={18} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} strokeLinecap=\"round\" strokeLinejoin=\"round\" className=\"text-primary\"><circle cx=\"12\" cy=\"12\" r=\"10\" /><path d=\"M12 16v-4M12 8h.01\" /></svg>\n ),\n success: (\n <svg width={18} height={18} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} strokeLinecap=\"round\" strokeLinejoin=\"round\" className=\"text-success\"><path d=\"M20 6 9 17l-5-5\" /></svg>\n ),\n danger: (\n <svg width={18} height={18} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} strokeLinecap=\"round\" strokeLinejoin=\"round\" className=\"text-danger\"><circle cx=\"12\" cy=\"12\" r=\"10\" /><path d=\"m15 9-6 6M9 9l6 6\" /></svg>\n ),\n};\n\nconst toneBorder: Record<ToastTone, string> = {\n default: \"border-l-primary\",\n success: \"border-l-success\",\n danger: \"border-l-danger\",\n};\n\nexport function ToastProvider({ children }: { children: React.ReactNode }) {\n const [items, setItems] = React.useState<ToastItem[]>([]);\n const idRef = React.useRef(0);\n\n const remove = React.useCallback((id: number) => {\n setItems((prev) => prev.map((t) => (t.id === id ? { ...t, leaving: true } : t)));\n setTimeout(() => setItems((prev) => prev.filter((t) => t.id !== id)), 250);\n }, []);\n\n const toast = React.useCallback(\n ({ message, tone = \"default\", duration = 3200 }: ToastOptions) => {\n const id = ++idRef.current;\n setItems((prev) => [...prev, { id, message, tone, duration }]);\n if (duration > 0) setTimeout(() => remove(id), duration);\n },\n [remove]\n );\n\n return (\n <ToastContext.Provider value={{ toast }}>\n {children}\n <div className=\"fixed bottom-6 right-6 z-[200] flex flex-col gap-2.5\">\n {items.map((t) => (\n <div\n key={t.id}\n role=\"status\"\n onClick={() => remove(t.id)}\n className={cn(\n \"flex items-center gap-2.5 min-w-[280px] px-4 py-3 cursor-pointer\",\n \"bg-surface border border-border border-l-[3px] rounded-kj-md shadow-kj-lg text-[0.85rem] font-medium\",\n toneBorder[t.tone],\n t.leaving ? \"animate-[kjtoastout_.25s_ease_forwards]\" : \"animate-[kjtoastin_.25s_ease]\"\n )}\n >\n <span className=\"grid place-items-center\">{icons[t.tone]}</span>\n <span>{t.message}</span>\n </div>\n ))}\n </div>\n </ToastContext.Provider>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\n\nexport interface PageHeaderProps {\n eyebrow?: string;\n title: string;\n description?: string;\n actions?: React.ReactNode;\n}\n\nexport const PageHeader = React.forwardRef<HTMLElement, PageHeaderProps>(\n ({ eyebrow, title, description, actions }, ref) => (\n <header ref={ref} className=\"py-12 md:py-16\">\n <div className=\"flex flex-col gap-6 md:flex-row md:items-end md:justify-between\">\n <div className=\"space-y-3 max-w-2xl\">\n {eyebrow && (\n <p className=\"font-mono text-xs font-bold uppercase tracking-[0.2em] text-primary\">\n {eyebrow}\n </p>\n )}\n <h1 className=\"font-sans text-4xl font-bold tracking-tight text-foreground sm:text-5xl md:text-6xl\">\n {title}\n </h1>\n {description && (\n <p className=\"text-base leading-relaxed text-muted-foreground sm:text-lg\">\n {description}\n </p>\n )}\n </div>\n {actions && <div className=\"flex flex-wrap gap-3\">{actions}</div>}\n </div>\n </header>\n )\n);\nPageHeader.displayName = \"PageHeader\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface EmptyStateProps extends React.HTMLAttributes<HTMLDivElement> {\n icon?: React.ReactNode;\n title: string;\n description?: string;\n action?: React.ReactNode;\n}\n\nexport const EmptyState = React.forwardRef<HTMLDivElement, EmptyStateProps>(\n ({ className, icon, title, description, action, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"flex flex-col items-center justify-center text-center p-8 border border-dashed border-border rounded-kj-lg bg-muted/20 min-h-[300px]\",\n className\n )}\n {...props}\n >\n {icon && (\n <div className=\"flex h-12 w-12 items-center justify-center rounded-full bg-muted text-muted-foreground mb-4 [&_svg]:h-6 [&_svg]:w-6\">\n {icon}\n </div>\n )}\n <h3 className=\"text-base font-bold text-foreground mb-1\">{title}</h3>\n {description && (\n <p className=\"text-sm text-muted-foreground max-w-sm mb-6 leading-relaxed\">\n {description}\n </p>\n )}\n {action && <div className=\"flex items-center gap-3\">{action}</div>}\n </div>\n )\n);\nEmptyState.displayName = \"EmptyState\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { Card } from \"./card\";\n\nexport interface MetricCardProps extends React.HTMLAttributes<HTMLDivElement> {\n title: string;\n value: string | number;\n trend?: string;\n trendDirection?: \"up\" | \"down\" | \"neutral\";\n description?: string;\n icon?: React.ReactNode;\n}\n\nexport const MetricCard = React.forwardRef<HTMLDivElement, MetricCardProps>(\n ({ className, title, value, trend, trendDirection = \"neutral\", description, icon, ...props }, ref) => {\n const trendColor = {\n up: \"text-success bg-success-surface border-success/20\",\n down: \"text-danger bg-danger-surface border-danger/20\",\n neutral: \"text-muted-foreground bg-muted border-border/20\",\n }[trendDirection];\n\n return (\n <Card ref={ref} className={cn(\"p-6\", className)} {...props}>\n <div className=\"flex items-center justify-between mb-3\">\n <span className=\"text-xs font-mono font-semibold uppercase tracking-[0.1em] text-muted-foreground\">\n {title}\n </span>\n {icon && <span className=\"text-muted-foreground shrink-0 [&_svg]:h-4 [&_svg]:w-4\">{icon}</span>}\n </div>\n <div className=\"flex items-baseline gap-2.5 mb-1.5\">\n <span className=\"text-3xl font-bold tracking-tight text-foreground\">{value}</span>\n {trend && (\n <span className={cn(\"text-[0.75rem] font-bold px-2 py-0.5 rounded-full border\", trendColor)}>\n {trend}\n </span>\n )}\n </div>\n {description && <p className=\"text-xs text-muted-foreground\">{description}</p>}\n </Card>\n );\n }\n);\nMetricCard.displayName = \"MetricCard\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { Table, TableWrap, TableHeader, TableBody, TableRow, TableHead, TableCell } from \"./table\";\nimport { Spinner } from \"./spinner\";\nimport { Alert } from \"./alert\";\nimport { EmptyState } from \"./empty-state\";\n\nexport interface DataTableColumn<T> {\n header: React.ReactNode;\n accessor: (row: T) => React.ReactNode;\n className?: string;\n align?: \"left\" | \"center\" | \"right\";\n sortable?: boolean;\n sortKey?: string;\n}\n\nexport interface DataTableProps<T> extends React.HTMLAttributes<HTMLDivElement> {\n columns: DataTableColumn<T>[];\n data: T[];\n loading?: boolean;\n error?: string;\n emptyTitle?: string;\n emptyDescription?: string;\n emptyAction?: React.ReactNode;\n\n // Production-grade features\n getRowKey?: (row: T, index: number) => React.Key;\n onRowClick?: (row: T) => void;\n toolbar?: React.ReactNode;\n pagination?: React.ReactNode;\n selectedRows?: Set<React.Key>;\n onSelectionChange?: (selectedKeys: Set<React.Key>) => void;\n\n // Sorting props\n sortBy?: string;\n sortDirection?: \"asc\" | \"desc\";\n onSort?: (sortKey: string, direction: \"asc\" | \"desc\") => void;\n}\n\nexport function DataTable<T>({\n className,\n columns,\n data,\n loading = false,\n error,\n emptyTitle = \"No data available\",\n emptyDescription = \"There are no records to display at this time.\",\n emptyAction,\n getRowKey,\n onRowClick,\n toolbar,\n pagination,\n selectedRows,\n onSelectionChange,\n sortBy,\n sortDirection,\n onSort,\n ...props\n}: DataTableProps<T>) {\n const getRowId = React.useCallback(\n (row: T, index: number) => (getRowKey ? getRowKey(row, index) : index),\n [getRowKey]\n );\n\n const isSelectionActive = selectedRows !== undefined && onSelectionChange !== undefined;\n\n const allSelected = React.useMemo(() => {\n if (!isSelectionActive || data.length === 0) return false;\n return data.every((row, idx) => selectedRows.has(getRowId(row, idx)));\n }, [isSelectionActive, data, selectedRows, getRowId]);\n\n const someSelected = React.useMemo(() => {\n if (!isSelectionActive || data.length === 0) return false;\n const selectedCount = data.filter((row, idx) => selectedRows.has(getRowId(row, idx))).length;\n return selectedCount > 0 && selectedCount < data.length;\n }, [isSelectionActive, data, selectedRows, getRowId]);\n\n const headerCheckboxRef = React.useRef<HTMLInputElement>(null);\n React.useEffect(() => {\n if (headerCheckboxRef.current) {\n headerCheckboxRef.current.indeterminate = someSelected;\n }\n }, [someSelected]);\n\n const handleSelectAll = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (!onSelectionChange) return;\n const checked = e.target.checked;\n const next = new Set<React.Key>(selectedRows);\n data.forEach((row, idx) => {\n const id = getRowId(row, idx);\n if (checked) {\n next.add(id);\n } else {\n next.delete(id);\n }\n });\n onSelectionChange(next);\n };\n\n const handleSelectRow = (row: T, idx: number, checked: boolean) => {\n if (!onSelectionChange || !selectedRows) return;\n const id = getRowId(row, idx);\n const next = new Set<React.Key>(selectedRows);\n if (checked) {\n next.add(id);\n } else {\n next.delete(id);\n }\n onSelectionChange(next);\n };\n\n return (\n <div className={cn(\"flex flex-col gap-4 w-full\", className)}>\n {/* Toolbar Slot */}\n {toolbar && (\n <div className=\"flex flex-col sm:flex-row items-stretch sm:items-center justify-between gap-3\">\n {toolbar}\n </div>\n )}\n\n <TableWrap className=\"relative overflow-hidden\" {...props}>\n <Table>\n <TableHeader>\n <TableRow>\n {/* Row selection checkbox in header */}\n {isSelectionActive && (\n <TableHead className=\"w-12 px-4 text-center\">\n <div className=\"inline-flex items-center justify-center\">\n <input\n type=\"checkbox\"\n ref={headerCheckboxRef}\n checked={allSelected}\n onChange={handleSelectAll}\n aria-label=\"Select all rows\"\n className=\"h-4 w-4 rounded border-input text-primary focus:ring-ring\"\n />\n </div>\n </TableHead>\n )}\n {columns.map((col, idx) => {\n const alignClass = {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n }[col.align || \"left\"];\n const isSortable = col.sortable && onSort && col.sortKey;\n const isSortedActive = sortBy && col.sortKey === sortBy;\n\n return (\n <TableHead\n key={idx}\n className={cn(\n alignClass,\n isSortable && \"cursor-pointer select-none hover:bg-muted/30 transition-colors\",\n col.className\n )}\n onClick={() => {\n if (!isSortable || !col.sortKey) return;\n const nextDirection =\n isSortedActive && sortDirection === \"asc\" ? \"desc\" : \"asc\";\n onSort(col.sortKey, nextDirection);\n }}\n >\n <div className={cn(\"inline-flex items-center gap-1.5\", alignClass === \"text-right\" && \"justify-end w-full\")}>\n <span>{col.header}</span>\n {isSortable && (\n <span className=\"text-[10px] text-muted-foreground shrink-0 select-none\">\n {isSortedActive ? (\n sortDirection === \"asc\" ? \"▲\" : \"▼\"\n ) : (\n \"⇅\"\n )}\n </span>\n )}\n </div>\n </TableHead>\n );\n })}\n </TableRow>\n </TableHeader>\n <TableBody>\n {loading && data.length === 0 ? (\n <TableRow>\n <TableCell colSpan={columns.length + (isSelectionActive ? 1 : 0)} className=\"h-64 text-center\">\n <div className=\"flex flex-col items-center justify-center gap-3\">\n <Spinner size={32} />\n <span className=\"text-sm text-muted-foreground\">Loading dataset...</span>\n </div>\n </TableCell>\n </TableRow>\n ) : error ? (\n <TableRow>\n <TableCell colSpan={columns.length + (isSelectionActive ? 1 : 0)} className=\"p-8\">\n <Alert variant=\"danger\" title=\"Error loading data\">\n {error}\n </Alert>\n </TableCell>\n </TableRow>\n ) : data.length === 0 ? (\n <TableRow>\n <TableCell colSpan={columns.length + (isSelectionActive ? 1 : 0)} className=\"p-0\">\n <EmptyState\n title={emptyTitle}\n description={emptyDescription}\n action={emptyAction}\n className=\"border-none bg-transparent rounded-none py-16\"\n />\n </TableCell>\n </TableRow>\n ) : (\n data.map((row, rowIdx) => {\n const rowKey = getRowId(row, rowIdx);\n const isSelected = isSelectionActive && selectedRows.has(rowKey);\n return (\n <TableRow\n key={rowKey}\n onClick={() => onRowClick && onRowClick(row)}\n className={cn(\n onRowClick && \"cursor-pointer hover:bg-muted/40 transition-colors\",\n isSelected && \"bg-primary/5 hover:bg-primary/10\"\n )}\n >\n {isSelectionActive && (\n <TableCell\n className=\"w-12 px-4 text-center\"\n onClick={(e) => {\n // Stop propagation to prevent triggering onRowClick\n e.stopPropagation();\n }}\n >\n <div className=\"inline-flex items-center justify-center\">\n <input\n type=\"checkbox\"\n checked={isSelected}\n onChange={(e) => handleSelectRow(row, rowIdx, e.target.checked)}\n aria-label={`Select row ${rowIdx + 1}`}\n className=\"h-4 w-4 rounded border-input text-primary focus:ring-ring\"\n />\n </div>\n </TableCell>\n )}\n {columns.map((col, colIdx) => {\n const alignClass = {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n }[col.align || \"left\"];\n return (\n <TableCell key={colIdx} className={cn(alignClass, col.className)}>\n {col.accessor(row)}\n </TableCell>\n );\n })}\n </TableRow>\n );\n })\n )}\n </TableBody>\n </Table>\n {loading && data.length > 0 && (\n <div className=\"absolute inset-0 bg-background/50 backdrop-blur-[1px] grid place-items-center z-10 transition-opacity duration-150\">\n <Spinner size={36} />\n </div>\n )}\n </TableWrap>\n\n {/* Pagination Slot */}\n {pagination && <div className=\"flex items-center justify-end w-full\">{pagination}</div>}\n </div>\n );\n}\nDataTable.displayName = \"DataTable\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { Button } from \"./button\";\n\nexport interface ErrorStateProps extends React.HTMLAttributes<HTMLDivElement> {\n title?: string;\n message: string;\n onRetry?: () => void;\n retryLabel?: string;\n}\n\nexport const ErrorState = React.forwardRef<HTMLDivElement, ErrorStateProps>(\n ({ className, title = \"Wystąpił błąd\", message, onRetry, retryLabel = \"Spróbuj ponownie\", ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"flex flex-col items-center justify-center text-center p-8 border border-danger/25 rounded-kj-lg bg-danger-surface/20 min-h-[300px]\",\n className\n )}\n {...props}\n >\n <div className=\"flex h-12 w-12 items-center justify-center rounded-full bg-danger-surface border border-danger/30 text-danger mb-4\">\n <svg fill=\"none\" stroke=\"currentColor\" strokeWidth={2.5} viewBox=\"0 0 24 24\" className=\"h-6 w-6\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z\" />\n </svg>\n </div>\n <h3 className=\"text-base font-bold text-foreground mb-1\">{title}</h3>\n <p className=\"text-sm text-muted-foreground max-w-sm mb-6 leading-relaxed\">\n {message}\n </p>\n {onRetry && (\n <Button size=\"sm\" variant=\"danger\" onClick={onRetry}>\n {retryLabel}\n </Button>\n )}\n </div>\n )\n);\nErrorState.displayName = \"ErrorState\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: \"text\" | \"circular\" | \"rectangular\";\n width?: string | number;\n height?: string | number;\n}\n\nexport const Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, variant = \"rectangular\", width, height, style, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"animate-pulse bg-muted/40\",\n variant === \"text\" && \"h-3 w-4/5 rounded-sm my-1.5\",\n variant === \"circular\" && \"rounded-full\",\n variant === \"rectangular\" && \"rounded-kj-md\",\n className\n )}\n style={{\n width,\n height,\n ...style,\n }}\n {...props}\n />\n )\n);\nSkeleton.displayName = \"Skeleton\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface DashboardShellProps extends React.HTMLAttributes<HTMLDivElement> {\n sidebar?: React.ReactNode;\n topbar?: React.ReactNode;\n children: React.ReactNode;\n sidebarWidth?: string;\n contentWidth?: \"default\" | \"wide\" | \"full\";\n stickyTopbar?: boolean;\n mobileSidebar?: React.ReactNode;\n}\n\nexport const DashboardShell = React.forwardRef<HTMLDivElement, DashboardShellProps>(\n (\n {\n className,\n sidebar,\n topbar,\n children,\n sidebarWidth = \"md:w-64\",\n contentWidth = \"default\",\n stickyTopbar = true,\n mobileSidebar,\n ...props\n },\n ref\n ) => {\n const [mobileOpen, setMobileOpen] = React.useState(false);\n const contentWidthClass = {\n default: \"max-w-7xl w-full mx-auto\",\n wide: \"max-w-screen-2xl w-full mx-auto\",\n full: \"max-w-none w-full\",\n }[contentWidth];\n\n return (\n <div\n ref={ref}\n className={cn(\n \"min-h-screen bg-canvas text-foreground flex flex-col md:flex-row\",\n className\n )}\n {...props}\n >\n {/* Sidebar (sticky desk, scrollable inside) */}\n {sidebar && (\n <aside\n className={cn(\n \"border-r border-border bg-surface shrink-0 z-20\",\n mobileSidebar ? \"hidden md:flex\" : \"w-full md:flex\",\n sidebarWidth\n )}\n >\n <div className={cn(\"sticky top-0 w-full flex flex-col\", mobileSidebar ? \"h-screen\" : \"h-auto md:h-screen\")}>\n {sidebar}\n </div>\n </aside>\n )}\n\n {/* Mobile Navigation Drawer */}\n {mobileSidebar && mobileOpen && (\n <div\n onClick={() => setMobileOpen(false)}\n className=\"fixed inset-0 z-50 md:hidden bg-[color-mix(in_oklch,#09090b_45%,transparent)] backdrop-blur-[2px] transition-opacity duration-300\"\n >\n <aside\n onClick={(e) => e.stopPropagation()}\n className=\"w-72 h-full bg-surface border-r border-border flex flex-col shadow-kj-lg\"\n >\n <div className=\"flex items-center justify-between p-4 border-b border-border\">\n <span className=\"text-xs font-bold uppercase tracking-wider text-muted-foreground\">Navigation</span>\n <button\n type=\"button\"\n onClick={() => setMobileOpen(false)}\n className=\"p-1 rounded text-muted-foreground hover:text-foreground hover:bg-muted transition-colors cursor-pointer\"\n >\n <svg width={16} height={16} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2.5} strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n </div>\n <div className=\"flex-1 overflow-y-auto\">\n {mobileSidebar}\n </div>\n </aside>\n </div>\n )}\n\n {/* Main Content Area */}\n <div className=\"flex-1 flex flex-col min-w-0\">\n {/* Top Header Navigation */}\n {topbar && (\n <header\n className={cn(\n \"h-14 border-b border-border bg-surface flex items-center px-6 z-10 shrink-0 gap-4\",\n stickyTopbar && \"sticky top-0\"\n )}\n >\n {mobileSidebar && (\n <button\n type=\"button\"\n onClick={() => setMobileOpen(true)}\n className=\"md:hidden p-1.5 -ml-1.5 rounded-kj-sm text-muted-foreground hover:text-foreground hover:bg-muted transition-colors cursor-pointer\"\n aria-label=\"Open navigation\"\n >\n <svg width={20} height={20} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2.5} strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\" />\n <line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\" />\n <line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\" />\n </svg>\n </button>\n )}\n {topbar}\n </header>\n )}\n\n {/* Inner page container */}\n <main className={cn(\"flex-1 p-6 md:p-8\", contentWidthClass)}>\n {children}\n </main>\n </div>\n </div>\n );\n }\n);\nDashboardShell.displayName = \"DashboardShell\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface SettingsLayoutProps extends React.HTMLAttributes<HTMLDivElement> {\n sidebar: React.ReactNode;\n children: React.ReactNode;\n title?: string;\n description?: string;\n}\n\nexport const SettingsLayout = React.forwardRef<HTMLDivElement, SettingsLayoutProps>(\n ({ className, sidebar, children, title, description, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(\"space-y-6 w-full\", className)} {...props}>\n {/* Header */}\n {(title || description) && (\n <div className=\"border-b border-border pb-4\">\n {title && <h1 className=\"text-2xl font-bold tracking-tight text-foreground\">{title}</h1>}\n {description && <p className=\"text-sm text-muted-foreground mt-1\">{description}</p>}\n </div>\n )}\n\n {/* Layout */}\n <div className=\"flex flex-col lg:flex-row gap-8\">\n {/* Sidebar Tabs / Navigation */}\n <aside className=\"lg:w-1/4 shrink-0\">\n <nav className=\"flex flex-row lg:flex-col gap-1 overflow-x-auto lg:overflow-x-visible pb-2 lg:pb-0\">\n {sidebar}\n </nav>\n </aside>\n\n {/* Content */}\n <div className=\"flex-1 max-w-3xl\">\n {children}\n </div>\n </div>\n </div>\n );\n }\n);\nSettingsLayout.displayName = \"SettingsLayout\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { Button, buttonVariants } from \"./button\";\n\nexport interface DetailPageLayoutProps extends React.HTMLAttributes<HTMLDivElement> {\n title: string;\n description?: string;\n backHref?: string;\n backLabel?: string;\n onBackClick?: () => void;\n actions?: React.ReactNode;\n aside?: React.ReactNode;\n children: React.ReactNode;\n}\n\nexport const DetailPageLayout = React.forwardRef<HTMLDivElement, DetailPageLayoutProps>(\n ({ className, title, description, backHref, backLabel = \"Back\", onBackClick, actions, aside, children, ...props }, ref) => {\n return (\n <div ref={ref} className={cn(\"space-y-6 w-full\", className)} {...props}>\n {/* Header/Top Area */}\n <div className=\"flex flex-col gap-3\">\n {(backHref || onBackClick) && (\n <div>\n {backHref ? (\n <a\n href={backHref}\n className={cn(\n buttonVariants({ variant: \"ghost\", size: \"sm\" }),\n \"-ml-3 h-8 text-muted-foreground hover:text-foreground inline-flex items-center gap-1.5\"\n )}\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" className=\"h-4 w-4\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M15.75 19.5 8.25 12l7.5-7.5\" />\n </svg>\n {backLabel}\n </a>\n ) : (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"-ml-3 h-8 text-muted-foreground hover:text-foreground\"\n onClick={onBackClick}\n >\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" className=\"h-4 w-4 mr-1.5\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M15.75 19.5 8.25 12l7.5-7.5\" />\n </svg>\n {backLabel}\n </Button>\n )}\n </div>\n )}\n\n <div className=\"flex flex-col md:flex-row md:items-center md:justify-between gap-4\">\n <div className=\"space-y-1\">\n <h1 className=\"text-2xl font-bold tracking-tight text-foreground\">{title}</h1>\n {description && <p className=\"text-sm text-muted-foreground\">{description}</p>}\n </div>\n {actions && <div className=\"flex items-center gap-2 shrink-0\">{actions}</div>}\n </div>\n </div>\n\n {/* Content Body Grid */}\n <div className=\"grid grid-cols-1 lg:grid-cols-3 gap-8 items-start\">\n <div className={cn(\"space-y-6\", aside ? \"lg:col-span-2\" : \"lg:col-span-3\")}>\n {children}\n </div>\n {aside && (\n <aside className=\"space-y-6 lg:col-span-1 bg-surface border border-border rounded-kj-xl p-6 shadow-kj-xs\">\n {aside}\n </aside>\n )}\n </div>\n </div>\n );\n }\n);\nDetailPageLayout.displayName = \"DetailPageLayout\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { Input } from \"./input\";\n\nexport interface TableToolbarProps extends React.HTMLAttributes<HTMLDivElement> {\n searchQuery?: string;\n onSearchChange?: (query: string) => void;\n searchPlaceholder?: string;\n actions?: React.ReactNode;\n filters?: React.ReactNode;\n}\n\nexport const TableToolbar = React.forwardRef<HTMLDivElement, TableToolbarProps>(\n ({ className, searchQuery, onSearchChange, searchPlaceholder = \"Search...\", actions, filters, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n \"flex flex-col sm:flex-row items-stretch sm:items-center justify-between gap-3 w-full pb-1\",\n className\n )}\n {...props}\n >\n <div className=\"flex flex-1 flex-col sm:flex-row items-stretch sm:items-center gap-2 max-w-xl\">\n {onSearchChange && (\n <Input\n type=\"search\"\n placeholder={searchPlaceholder}\n value={searchQuery}\n onChange={(e) => onSearchChange(e.target.value)}\n className=\"sm:w-64\"\n leadingIcon={\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" className=\"h-4 w-4\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z\" />\n </svg>\n }\n />\n )}\n {filters && <div className=\"flex items-center gap-2\">{filters}</div>}\n </div>\n {actions && (\n <div className=\"flex items-center gap-2 shrink-0 justify-end\">\n {actions}\n </div>\n )}\n </div>\n );\n }\n);\nTableToolbar.displayName = \"TableToolbar\";\n","import { Modal, ModalTitle, ModalDescription, ModalActions } from \"./modal\";\nimport { Button } from \"./button\";\n\nexport interface ConfirmDialogProps {\n open: boolean;\n onClose: () => void;\n onConfirm: () => void;\n title: string;\n description: string;\n confirmLabel?: string;\n cancelLabel?: string;\n tone?: \"danger\" | \"primary\" | \"success\";\n loading?: boolean;\n}\n\nexport function ConfirmDialog({\n open,\n onClose,\n onConfirm,\n title,\n description,\n confirmLabel = \"Confirm\",\n cancelLabel = \"Cancel\",\n tone = \"primary\",\n loading = false,\n}: ConfirmDialogProps) {\n const toneButtonVariant = {\n danger: \"danger\" as const,\n primary: \"primary\" as const,\n success: \"secondary\" as const, // standard secondary in our system is teal (success-aligned)\n }[tone];\n\n return (\n <Modal open={open} onClose={onClose} width={400} showClose={!loading}>\n <ModalTitle>{title}</ModalTitle>\n <ModalDescription>{description}</ModalDescription>\n <ModalActions>\n <Button variant=\"outline\" onClick={onClose} disabled={loading}>\n {cancelLabel}\n </Button>\n <Button variant={toneButtonVariant} onClick={onConfirm} loading={loading}>\n {confirmLabel}\n </Button>\n </ModalActions>\n </Modal>\n );\n}\nConfirmDialog.displayName = \"ConfirmDialog\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface DrawerProps {\n open: boolean;\n onClose: () => void;\n children: React.ReactNode;\n title?: string;\n description?: string;\n width?: string;\n side?: \"right\" | \"left\";\n}\n\nexport function Drawer({\n open,\n onClose,\n children,\n title,\n description,\n width = \"max-w-md\",\n side = \"right\",\n}: DrawerProps) {\n const containerRef = React.useRef<HTMLDivElement>(null);\n const lastActiveElement = React.useRef<HTMLElement | null>(null);\n\n React.useEffect(() => {\n if (!open) {\n if (lastActiveElement.current) {\n lastActiveElement.current.focus();\n lastActiveElement.current = null;\n }\n return;\n }\n\n lastActiveElement.current = document.activeElement as HTMLElement;\n\n const container = containerRef.current;\n if (container) {\n const focusables = container.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (focusables.length > 0) {\n setTimeout(() => focusables[0].focus(), 50);\n } else {\n container.focus();\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n onClose();\n return;\n }\n\n if (e.key === \"Tab\") {\n const container = containerRef.current;\n if (!container) return;\n\n const focusables = Array.from(\n container.querySelectorAll<HTMLElement>(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )\n );\n if (focusables.length === 0) {\n e.preventDefault();\n return;\n }\n\n const first = focusables[0];\n const last = focusables[focusables.length - 1];\n\n if (e.shiftKey) {\n if (document.activeElement === first || document.activeElement === container) {\n last.focus();\n e.preventDefault();\n }\n } else {\n if (document.activeElement === last) {\n first.focus();\n e.preventDefault();\n }\n }\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n document.body.style.overflow = \"hidden\";\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.body.style.overflow = \"\";\n };\n }, [open, onClose]);\n\n const sideClasses = {\n right: cn(\n \"right-0 h-full border-l\",\n open ? \"translate-x-0\" : \"translate-x-full\"\n ),\n left: cn(\n \"left-0 h-full border-r\",\n open ? \"translate-x-0\" : \"-translate-x-full\"\n ),\n }[side];\n\n return (\n <div\n onClick={(e) => e.target === e.currentTarget && onClose()}\n className={cn(\n \"fixed inset-0 z-[100] transition-opacity duration-300 backdrop-blur-[2px]\",\n \"bg-[color-mix(in_oklch,#09090b_45%,transparent)]\",\n open ? \"opacity-100 pointer-events-auto\" : \"opacity-0 pointer-events-none\"\n )}\n >\n <div\n ref={containerRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={!title ? \"Drawer\" : undefined}\n aria-labelledby={title ? \"drawer-title\" : undefined}\n aria-describedby={description ? \"drawer-description\" : undefined}\n tabIndex={-1}\n className={cn(\n \"fixed top-0 bottom-0 bg-surface border-border flex flex-col w-full shadow-kj-lg transition-transform duration-300 ease-spring outline-none\",\n width,\n sideClasses\n )}\n >\n {/* Header */}\n {(title || description) && (\n <div className=\"flex items-center justify-between p-6 border-b border-border\">\n <div className=\"space-y-1\">\n {title && <h2 id=\"drawer-title\" className=\"text-lg font-bold tracking-tight text-foreground\">{title}</h2>}\n {description && <p id=\"drawer-description\" className=\"text-xs text-muted-foreground\">{description}</p>}\n </div>\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Close\"\n className=\"p-1.5 rounded-kj-sm text-muted-foreground hover:text-foreground hover:bg-muted transition-colors cursor-pointer\"\n >\n <svg width={16} height={16} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2.5} strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n </div>\n )}\n\n {/* Content */}\n <div className=\"flex-1 overflow-y-auto p-6\">\n {children}\n </div>\n </div>\n </div>\n );\n}\nDrawer.displayName = \"Drawer\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface CommandPaletteItem {\n id: string;\n title: string;\n subtitle?: string;\n category?: string;\n shortcut?: string[];\n action: () => void;\n icon?: React.ReactNode;\n}\n\nexport interface CommandPaletteProps {\n open: boolean;\n onClose: () => void;\n items: CommandPaletteItem[];\n placeholder?: string;\n}\n\nexport function CommandPalette({ open, onClose, items, placeholder = \"Type a command or search...\" }: CommandPaletteProps) {\n const [search, setSearch] = React.useState(\"\");\n const [activeIndex, setActiveIndex] = React.useState(0);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const listRef = React.useRef<HTMLDivElement>(null);\n\n // Reset state on open/close\n React.useEffect(() => {\n if (open) {\n setSearch(\"\");\n setActiveIndex(0);\n document.body.style.overflow = \"hidden\";\n } else {\n document.body.style.overflow = \"\";\n }\n }, [open]);\n\n // Filter items\n const filteredItems = React.useMemo(() => {\n if (!search) return items;\n const cleanSearch = search.toLowerCase();\n return items.filter(\n (item) =>\n item.title.toLowerCase().includes(cleanSearch) ||\n item.subtitle?.toLowerCase().includes(cleanSearch) ||\n item.category?.toLowerCase().includes(cleanSearch)\n );\n }, [search, items]);\n\n // Reset active index when filter changes\n React.useEffect(() => {\n setActiveIndex(0);\n }, [filteredItems]);\n\n // Handle keyboard navigation\n React.useEffect(() => {\n if (!open) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") {\n onClose();\n return;\n }\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setActiveIndex((prev) => (filteredItems.length === 0 ? 0 : (prev + 1) % filteredItems.length));\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setActiveIndex((prev) => (filteredItems.length === 0 ? 0 : (prev - 1 + filteredItems.length) % filteredItems.length));\n } else if (e.key === \"Enter\") {\n e.preventDefault();\n if (filteredItems[activeIndex]) {\n filteredItems[activeIndex].action();\n onClose();\n }\n }\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [open, filteredItems, activeIndex, onClose]);\n\n // Scroll active item into view\n React.useEffect(() => {\n if (listRef.current) {\n const activeEl = listRef.current.children[activeIndex] as HTMLElement;\n if (activeEl) {\n activeEl.scrollIntoView({ block: \"nearest\" });\n }\n }\n }, [activeIndex]);\n\n if (!open) return null;\n\n // Group filtered items by category\n const groups: { [key: string]: typeof filteredItems } = {};\n filteredItems.forEach((item) => {\n const cat = item.category || \"General\";\n if (!groups[cat]) groups[cat] = [];\n groups[cat].push(item);\n });\n\n // Flat list index calculation for grouping\n let absoluteItemIndex = 0;\n\n return (\n <div\n onClick={(e) => e.target === e.currentTarget && onClose()}\n className=\"fixed inset-0 z-[100] grid place-items-start justify-center p-6 md:p-24 backdrop-blur-[3px] bg-[color-mix(in_oklch,#09090b_60%,transparent)]\"\n >\n <div\n ref={containerRef}\n className=\"w-[95vw] max-w-lg bg-surface border border-border rounded-kj-xl shadow-kj-lg flex flex-col overflow-hidden max-h-[500px]\"\n >\n {/* Search Input */}\n <div className=\"p-4 border-b border-border flex items-center gap-2\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" className=\"h-5 w-5 text-muted-foreground shrink-0 ml-1\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z\" />\n </svg>\n <input\n type=\"text\"\n placeholder={placeholder}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"flex-1 font-sans text-[0.95rem] bg-transparent text-foreground placeholder:text-muted-foreground outline-none border-none focus:ring-0\"\n autoFocus\n />\n </div>\n\n {/* Results List */}\n <div className=\"flex-1 overflow-y-auto p-2 min-h-[150px]\">\n {filteredItems.length === 0 ? (\n <div className=\"py-12 text-center text-sm text-muted-foreground\">\n No results found for \"{search}\"\n </div>\n ) : (\n <div ref={listRef} className=\"space-y-4\">\n {Object.entries(groups).map(([cat, itemsInCat]) => (\n <div key={cat} className=\"space-y-1\">\n <div className=\"px-3 py-1 text-[0.65rem] font-bold uppercase tracking-wider text-muted-foreground\">\n {cat}\n </div>\n {itemsInCat.map((item) => {\n const currentIdx = absoluteItemIndex++;\n const isActive = currentIdx === activeIndex;\n return (\n <div\n key={item.id}\n onClick={() => {\n item.action();\n onClose();\n }}\n className={cn(\n \"flex items-center justify-between gap-3 px-3 py-2.5 rounded-kj-md cursor-pointer select-none transition-colors\",\n isActive ? \"bg-primary/10 text-foreground\" : \"text-muted-foreground hover:bg-muted hover:text-foreground\"\n )}\n >\n <div className=\"flex items-center gap-3 min-w-0\">\n {item.icon && <span className=\"text-muted-foreground [&_svg]:h-[1.1rem] [&_svg]:w-[1.1rem]\">{item.icon}</span>}\n <div className=\"min-w-0 flex flex-col\">\n <span className={cn(\"text-[0.85rem] font-semibold\", isActive ? \"text-primary\" : \"text-foreground\")}>\n {item.title}\n </span>\n {item.subtitle && <span className=\"text-[0.75rem] text-muted-foreground truncate\">{item.subtitle}</span>}\n </div>\n </div>\n {item.shortcut && (\n <div className=\"flex items-center gap-1\">\n {item.shortcut.map((sc, scIdx) => (\n <kbd\n key={scIdx}\n className=\"px-1.5 py-0.5 rounded border border-border bg-subtle text-[10px] font-mono leading-none shadow-kj-xs text-muted-foreground\"\n >\n {sc}\n </kbd>\n ))}\n </div>\n )}\n </div>\n );\n })}\n </div>\n ))}\n </div>\n )}\n </div>\n\n {/* Footer info */}\n <div className=\"px-4 py-2.5 border-t border-border bg-subtle flex items-center justify-between text-[11px] text-muted-foreground font-medium\">\n <div className=\"flex items-center gap-3\">\n <span className=\"flex items-center gap-1\"><kbd className=\"font-mono text-[9px] px-1 border rounded bg-surface\">↑↓</kbd> Navigate</span>\n <span className=\"flex items-center gap-1\"><kbd className=\"font-mono text-[9px] px-1 border rounded bg-surface\">Enter</kbd> Select</span>\n </div>\n <div>\n <kbd className=\"font-mono text-[9px] px-1 border rounded bg-surface\">Esc</kbd> Close\n </div>\n </div>\n </div>\n </div>\n );\n}\nCommandPalette.displayName = \"CommandPalette\";\n","import * as React from \"react\";\nimport { cn } from \"../lib/cn\";\n\nexport interface SidebarNavItem {\n id: string;\n label: string;\n href?: string;\n onClick?: () => void;\n active?: boolean;\n icon?: React.ReactNode;\n badge?: React.ReactNode;\n}\n\nexport interface SidebarNavGroup {\n title?: string;\n items: SidebarNavItem[];\n}\n\nexport interface SidebarNavProps extends React.HTMLAttributes<HTMLDivElement> {\n groups: SidebarNavGroup[];\n currentHref?: string;\n}\n\nexport function SidebarNav({ className, groups, currentHref, ...props }: SidebarNavProps) {\n return (\n <div className={cn(\"space-y-6 py-4 px-3 w-full\", className)} {...props}>\n {groups.map((group, groupIdx) => (\n <div key={groupIdx} className=\"space-y-1.5\">\n {group.title && (\n <h4 className=\"px-3 text-[10px] font-bold uppercase tracking-widest text-muted-foreground/85\">\n {group.title}\n </h4>\n )}\n <div className=\"space-y-0.5\">\n {group.items.map((item) => {\n const isActive = item.active || (item.href && currentHref && currentHref === item.href);\n const content = (\n <>\n <span className=\"flex items-center gap-2.5 min-w-0\">\n {item.icon && (\n <span className={cn(\n \"[&_svg]:h-[1.1rem] [&_svg]:w-[1.1rem] shrink-0\",\n isActive ? \"text-primary\" : \"text-muted-foreground group-hover:text-foreground\"\n )}>\n {item.icon}\n </span>\n )}\n <span className=\"truncate\">{item.label}</span>\n </span>\n {item.badge && (\n <span className=\"shrink-0 flex items-center justify-center\">\n {item.badge}\n </span>\n )}\n </>\n );\n\n const itemClass = cn(\n \"group flex items-center justify-between gap-3 px-3 py-2 rounded-kj-md text-[0.85rem] font-semibold select-none cursor-pointer transition-all duration-150\",\n isActive\n ? \"bg-primary/10 text-primary border-l-2 border-primary rounded-l-none pl-2.5\"\n : \"text-muted-foreground hover:bg-muted hover:text-foreground border-l-2 border-transparent\"\n );\n\n if (item.href) {\n return (\n <a key={item.id} href={item.href} className={itemClass}>\n {content}\n </a>\n );\n }\n\n return (\n <button\n key={item.id}\n type=\"button\"\n onClick={item.onClick}\n className={itemClass}\n >\n {content}\n </button>\n );\n })}\n </div>\n </div>\n ))}\n </div>\n );\n}\nSidebarNav.displayName = \"SidebarNav\";\n"]}