@ataraui/ataraui-react 0.4.0 → 0.5.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.
- package/README.md +201 -96
- package/dist/index.d.mts +67 -1
- package/dist/index.d.ts +67 -1
- package/dist/index.js +294 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +283 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/cn.ts","../src/tokens/index.ts","../src/components/Button/Button.tsx","../src/components/Input/Input.tsx","../src/components/Badge/Badge.tsx","../src/components/Card/Card.tsx","../src/components/Avatar/Avatar.tsx","../src/components/Separator/Separator.tsx","../src/components/Spinner/Spinner.tsx","../src/components/Select/Select.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Radio/Radio.tsx","../src/components/Switch/Switch.tsx","../src/components/Modal/Modal.tsx","../src/components/Drawer/Drawer.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/Popover/Popover.tsx"],"names":["twMerge","clsx","cva","React","jsxs","jsx","Fragment","popover","_a","_b","createPortal"],"mappings":"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","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}","export const colors = {\n primary: {\n 50: '#FFF4EE',\n 100: '#FFE0CC',\n 200: '#FFBF99',\n 300: '#F08050',\n 400: '#D4602A',\n 500: '#C2440A',\n 600: '#A03808',\n 700: '#8F2F06',\n 800: '#5C1C03',\n 900: '#2E0D01',\n },\n neutral: {\n 50: '#f9f7f5',\n 100: '#f0ece7',\n 200: '#ddd6cc',\n 300: '#c5bab0',\n 400: '#a89b8e',\n 500: '#8a7d72',\n 600: '#6f6358',\n 700: '#564d45',\n 800: '#3c3630',\n 900: '#252019',\n },\n danger: {\n 500: '#ef4444',\n 600: '#dc2626',\n },\n success: {\n 500: '#22c55e',\n 600: '#16a34a',\n },\n warning: {\n 500: '#f59e0b',\n 600: '#d97706',\n },\n} as const\n\nexport const radius = {\n none: '0',\n sm: '0.25rem',\n md: '0.375rem',\n lg: '0.5rem',\n xl: '0.75rem',\n '2xl':'1rem',\n full: '9999px',\n} as const\n\nexport const fontSize = {\n xs: ['0.75rem', { lineHeight: '1rem' }],\n sm: ['0.875rem', { lineHeight: '1.25rem' }],\n base: ['1rem', { lineHeight: '1.5rem' }],\n lg: ['1.125rem', { lineHeight: '1.75rem' }],\n xl: ['1.25rem', { lineHeight: '1.75rem' }],\n} as const","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const buttonVariants = cva(\n 'inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n primary: 'bg-(--color-primary-500) text-white hover:bg-(--color-primary-600) focus-visible:ring-(--color-primary-500)',\n secondary: 'bg-(--color-neutral-100) text-(--color-neutral-900) hover:bg-(--color-neutral-200)',\n outline: 'border border-(--color-primary-500) text-(--color-primary-500) bg-transparent hover:bg-(--color-primary-50)',\n ghost: 'text-(--color-neutral-700) hover:bg-(--color-neutral-100)',\n destructive: 'bg-(--color-danger-500) text-white hover:bg-(--color-danger-600)',\n },\n size: {\n sm: 'h-8 px-3 text-sm rounded-(--radius-md) gap-1.5',\n md: 'h-10 px-4 text-sm rounded-(--radius-md) gap-2',\n lg: 'h-12 px-6 text-base rounded-(--radius-lg) gap-2',\n icon: 'h-10 w-10 rounded-(--radius-md)',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n isLoading?: boolean\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, isLoading, children, disabled, ...props }, ref) => (\n <button\n ref={ref}\n className={cn(buttonVariants({ variant, size }), className)}\n disabled={disabled || isLoading}\n {...props}\n >\n {isLoading && (\n <svg className=\"animate-spin h-4 w-4\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"4\" />\n <path className=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8v8z\" />\n </svg>\n )}\n {children}\n </button>\n )\n)\nButton.displayName = 'Button'","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const inputVariants = cva(\n 'w-full px-3 py-2 text-sm bg-white border rounded-(--radius-md) transition-colors placeholder:text-(--color-neutral-400) focus:outline-none focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-(--color-neutral-50)',\n {\n variants: {\n state: {\n default: 'border-(--color-neutral-300) text-(--color-neutral-900) focus:border-(--color-primary-500) focus:ring-(--color-primary-500)/20',\n error: 'border-(--color-danger-500) text-(--color-neutral-900) focus:border-(--color-danger-500) focus:ring-(--color-danger-500)/20',\n },\n inputSize: {\n sm: 'h-8 text-xs',\n md: 'h-10 text-sm',\n lg: 'h-12 text-base',\n },\n },\n defaultVariants: {\n state: 'default',\n inputSize: 'md',\n },\n }\n)\n\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>,\n VariantProps<typeof inputVariants> {\n label?: string\n error?: string\n hint?: string\n}\n\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, label, error, hint, id, inputSize, ...props }, ref) => {\n const inputId = id ?? label?.toLowerCase().replace(/\\s+/g, '-')\n return (\n <div className=\"flex flex-col gap-1.5 w-full\">\n {label && (\n <label htmlFor={inputId} className=\"text-sm font-medium text-(--color-neutral-700)\">\n {label}\n </label>\n )}\n <input\n ref={ref}\n id={inputId}\n className={cn(inputVariants({ state: error ? 'error' : 'default', inputSize }), className)}\n {...props}\n />\n {hint && !error && <p className=\"text-xs text-(--color-neutral-500)\">{hint}</p>}\n {error && <p className=\"text-xs text-(--color-danger-500)\">{error}</p>}\n </div>\n )\n }\n)\nInput.displayName = 'Input'","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const badgeVariants = cva(\n 'inline-flex items-center rounded-full font-medium',\n {\n variants: {\n variant: {\n default: 'bg-(--color-primary-500) text-white',\n secondary: 'bg-(--color-neutral-100) text-(--color-neutral-700)',\n outline: 'border border-(--color-primary-500) text-(--color-primary-500)',\n success: 'bg-(--color-success-500)/10 text-(--color-success-600)',\n warning: 'bg-(--color-warning-500)/10 text-(--color-warning-600)',\n destructive: 'bg-(--color-danger-500)/10 text-(--color-danger-600)',\n },\n size: {\n sm: 'px-2 py-0.5 text-xs',\n md: 'px-2.5 py-0.5 text-sm',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {}\n\nexport const Badge = ({ className, variant, size, ...props }: BadgeProps) => (\n <span className={cn(badgeVariants({ variant, size }), className)} {...props} />\n)\nBadge.displayName = 'Badge'","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const cardVariants = cva(\n 'rounded-(--radius-lg) bg-white text-(--color-neutral-900)',\n {\n variants: {\n variant: {\n elevated: 'shadow-md',\n outlined: 'border border-(--color-neutral-200)',\n ghost: 'bg-(--color-neutral-50)',\n },\n padding: {\n none: '',\n sm: 'p-4',\n md: 'p-6',\n lg: 'p-8',\n },\n },\n defaultVariants: {\n variant: 'elevated',\n padding: 'md',\n },\n }\n)\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardVariants> {}\n\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant, padding, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(cardVariants({ variant, padding }), className)}\n {...props}\n />\n )\n)\nCard.displayName = 'Card'\n\n// ─── Sub-components ───────────────────────────────────────\n\nexport const CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col gap-1.5 mb-4', 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('text-lg font-semibold text-(--color-neutral-900)', 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('text-sm text-(--color-neutral-500)', className)} {...props} />\n )\n)\nCardDescription.displayName = 'CardDescription'\n\nexport const CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-sm text-(--color-neutral-700)', className)} {...props} />\n )\n)\nCardContent.displayName = 'CardContent'\n\nexport const CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center gap-2 mt-4', className)} {...props} />\n )\n)\nCardFooter.displayName = 'CardFooter'","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const avatarVariants = cva(\n 'relative inline-flex items-center justify-center shrink-0 overflow-hidden rounded-full bg-(--color-neutral-200)',\n {\n variants: {\n size: {\n xs: 'h-6 w-6 text-xs',\n sm: 'h-8 w-8 text-sm',\n md: 'h-10 w-10 text-base',\n lg: 'h-12 w-12 text-lg',\n xl: 'h-16 w-16 text-xl',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n)\n\nexport interface AvatarProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof avatarVariants> {\n src?: string\n alt?: string\n fallback?: string\n}\n\nexport const Avatar = React.forwardRef<HTMLSpanElement, AvatarProps>(\n ({ className, size, src, alt, fallback, ...props }, ref) => {\n const [imgError, setImgError] = React.useState(false)\n\n const initials = fallback\n ?.split(' ')\n .map((word) => word[0])\n .slice(0, 2)\n .join('')\n .toUpperCase()\n\n return (\n <span\n ref={ref}\n className={cn(avatarVariants({ size }), className)}\n {...props}\n >\n {src && !imgError ? (\n <img\n src={src}\n alt={alt ?? ''}\n className=\"h-full w-full object-cover\"\n onError={() => setImgError(true)}\n />\n ) : initials ? (\n <span className=\"font-medium text-(--color-neutral-700) select-none\">\n {initials}\n </span>\n ) : (\n <svg\n className=\"h-[60%] w-[60%] text-(--color-neutral-400)\"\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path d=\"M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z\" />\n </svg>\n )}\n </span>\n )\n }\n)\nAvatar.displayName = 'Avatar'","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const separatorVariants = cva(\n 'shrink-0 bg-(--color-neutral-200)',\n {\n variants: {\n orientation: {\n horizontal: 'h-px w-full',\n vertical: 'h-full w-px',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n }\n)\n\nexport interface SeparatorProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof separatorVariants> {\n label?: string\n}\n\nexport const Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n ({ className, orientation, label, ...props }, ref) => {\n if (label && orientation !== 'vertical') {\n return (\n <div ref={ref} className={cn('flex items-center gap-3', className)} {...props}>\n <div className=\"h-px flex-1 bg-(--color-neutral-200)\" />\n <span className=\"text-xs text-(--color-neutral-400) font-medium select-none\">\n {label}\n </span>\n <div className=\"h-px flex-1 bg-(--color-neutral-200)\" />\n </div>\n )\n }\n\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={orientation ?? 'horizontal'}\n className={cn(separatorVariants({ orientation }), className)}\n {...props}\n />\n )\n }\n)\nSeparator.displayName = 'Separator'","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const spinnerVariants = cva(\n 'animate-spin rounded-full border-2 border-(--color-neutral-200) border-t-(--color-primary-500)',\n {\n variants: {\n size: {\n xs: 'h-3 w-3',\n sm: 'h-4 w-4',\n md: 'h-6 w-6',\n lg: 'h-8 w-8',\n xl: 'h-12 w-12',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n)\n\nexport interface SpinnerProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof spinnerVariants> {\n label?: string\n}\n\nexport const Spinner = React.forwardRef<HTMLSpanElement, SpinnerProps>(\n ({ className, size, label, ...props }, ref) => (\n <span ref={ref} role=\"status\" className={cn('inline-flex flex-col items-center gap-2', className)} {...props}>\n <span className={cn(spinnerVariants({ size }))} />\n {label && (\n <span className=\"text-sm text-(--color-neutral-500)\">{label}</span>\n )}\n <span className=\"sr-only\">{label ?? 'Loading...'}</span>\n </span>\n )\n)\nSpinner.displayName = 'Spinner'","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const selectVariants = cva(\n 'w-full appearance-none bg-white border rounded-(--radius-md) px-3 py-2 text-sm transition-colors cursor-pointer focus:outline-none focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-(--color-neutral-50)',\n {\n variants: {\n state: {\n default: 'border-(--color-neutral-300) text-(--color-neutral-900) focus:border-(--color-primary-500) focus:ring-(--color-primary-500)/20',\n error: 'border-(--color-danger-500) text-(--color-neutral-900) focus:border-(--color-danger-500) focus:ring-(--color-danger-500)/20',\n },\n selectSize: {\n sm: 'h-8 text-xs pr-8',\n md: 'h-10 text-sm pr-8',\n lg: 'h-12 text-base pr-10',\n },\n },\n defaultVariants: {\n state: 'default',\n selectSize: 'md',\n },\n }\n)\n\nexport interface SelectOption {\n value: string\n label: string\n disabled?: boolean\n}\n\nexport interface SelectProps\n extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'>,\n VariantProps<typeof selectVariants> {\n label?: string\n error?: string\n hint?: string\n placeholder?: string\n options?: SelectOption[]\n}\n\nexport const Select = React.forwardRef<HTMLSelectElement, SelectProps>(\n ({ className, label, error, hint, placeholder, options, selectSize, id, children, ...props }, ref) => {\n const selectId = id ?? label?.toLowerCase().replace(/\\s+/g, '-')\n\n return (\n <div className=\"flex flex-col gap-1.5 w-full\">\n {label && (\n <label htmlFor={selectId} className=\"text-sm font-medium text-(--color-neutral-700)\">\n {label}\n </label>\n )}\n <div className=\"relative\">\n <select\n ref={ref}\n id={selectId}\n className={cn(selectVariants({ state: error ? 'error' : 'default', selectSize }), className)}\n {...props}\n >\n {placeholder && (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n )}\n {options\n ? options.map((opt) => (\n <option key={opt.value} value={opt.value} disabled={opt.disabled}>\n {opt.label}\n </option>\n ))\n : children}\n </select>\n <svg\n className=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 h-4 w-4 text-(--color-neutral-400)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </div>\n {hint && !error && <p className=\"text-xs text-(--color-neutral-500)\">{hint}</p>}\n {error && <p className=\"text-xs text-(--color-danger-500)\">{error}</p>}\n </div>\n )\n }\n)\nSelect.displayName = 'Select'","import React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: string;\n description?: string;\n error?: string;\n}\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n ({ className, label, description, error, id, disabled, ...props }, ref) => {\n const checkboxId = id ?? label?.toLowerCase().replace(/\\s+/g, \"-\");\n\n return (\n <div className=\"flex flex-col gap-1\">\n <div className=\"flex items-start gap-2.5\">\n <input\n ref={ref}\n type=\"checkbox\"\n id={checkboxId}\n disabled={disabled}\n className={cn(\n \"h-4 w-4 shrink-0 mt-0.5 rounded-(--radius-sm) border cursor-pointer transition-colors appearance-none\",\n \"border-(--color-neutral-300) bg-white\",\n \"checked:bg-(--color-primary-500) checked:border-(--color-primary-500)\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--color-primary-500)/20\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n error && \"border-(--color-danger-500)\",\n className,\n )}\n style={{\n backgroundImage: `url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e\")`,\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: \"center\",\n }}\n {...props}\n />\n {(label || description) && (\n <div className=\"flex flex-col gap-0.5\">\n {label && (\n <label\n htmlFor={checkboxId}\n className={cn(\n \"text-sm font-medium cursor-pointer text-(--color-neutral-900)\",\n disabled && \"cursor-not-allowed opacity-50\",\n )}\n >\n {label}\n </label>\n )}\n {description && (\n <p className=\"text-xs text-(--color-neutral-500)\">\n {description}\n </p>\n )}\n </div>\n )}\n </div>\n {error && (\n <p className=\"text-xs text-(--color-danger-500) ml-6\">{error}</p>\n )}\n </div>\n );\n },\n);\nCheckbox.displayName = \"Checkbox\";\n","import React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface RadioOption {\n value: string;\n label: string;\n description?: string;\n disabled?: boolean;\n}\n\nexport interface RadioGroupProps {\n options: RadioOption[];\n value?: string;\n onChange?: (value: string) => void;\n name: string;\n label?: string;\n error?: string;\n hint?: string;\n orientation?: \"vertical\" | \"horizontal\";\n}\n\nexport const RadioGroup: React.FC<RadioGroupProps> = ({\n options,\n value,\n onChange,\n name,\n label,\n error,\n hint,\n orientation = \"vertical\",\n}) => {\n return (\n <div className=\"flex flex-col gap-1.5\">\n {label && (\n <span className=\"text-sm font-medium text-(--color-neutral-700)\">\n {label}\n </span>\n )}\n <div\n className={cn(\n \"flex gap-3\",\n orientation === \"vertical\" ? \"flex-col\" : \"flex-row flex-wrap\",\n )}\n >\n {options.map((option) => {\n const optionId = `${name}-${option.value}`;\n return (\n <div key={option.value} className=\"flex items-start gap-2.5\">\n <input\n type=\"radio\"\n id={optionId}\n name={name}\n value={option.value}\n checked={value === option.value}\n disabled={option.disabled}\n onChange={() => onChange?.(option.value)}\n className={cn(\n \"h-4 w-4 shrink-0 mt-0.5 cursor-pointer appearance-none rounded-full border-2 transition-colors\",\n \"border-(--color-neutral-300) bg-white\",\n \"checked:border-(--color-primary-500) checked:bg-(--color-primary-500)\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--color-primary-500)/20\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n error && \"border-(--color-danger-500)\",\n )}\n style={{\n backgroundImage:\n value === option.value\n ? `url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\")`\n : \"none\",\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: \"center\",\n }}\n />\n <div className=\"flex flex-col gap-0.5\">\n <label\n htmlFor={optionId}\n className={cn(\n \"text-sm font-medium cursor-pointer text-(--color-neutral-900)\",\n option.disabled && \"cursor-not-allowed opacity-50\",\n )}\n >\n {option.label}\n </label>\n {option.description && (\n <p className=\"text-xs text-(--color-neutral-500)\">\n {option.description}\n </p>\n )}\n </div>\n </div>\n );\n })}\n </div>\n {hint && !error && (\n <p className=\"text-xs text-(--color-neutral-500)\">{hint}</p>\n )}\n {error && <p className=\"text-xs text-(--color-danger-500)\">{error}</p>}\n </div>\n );\n};\nRadioGroup.displayName = \"RadioGroup\";\n","import React from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface SwitchProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {\n label?: string\n description?: string\n error?: string\n}\n\nexport const Switch = React.forwardRef<HTMLInputElement, SwitchProps>(\n ({ className, label, description, error, id, disabled, checked, defaultChecked, onChange, ...props }, ref) => {\n const switchId = id ?? `switch-${Math.random().toString(36).slice(2, 9)}`\n\n const [internalChecked, setInternalChecked] = React.useState(\n defaultChecked ?? false\n )\n\n const isControlled = checked !== undefined\n const isChecked = isControlled ? checked : internalChecked\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) setInternalChecked(e.target.checked)\n onChange?.(e)\n }\n\n return (\n <div className=\"flex flex-col gap-1\">\n <div className=\"flex items-start gap-3\">\n <div className=\"relative inline-flex shrink-0 mt-0.5\">\n <input\n ref={ref}\n type=\"checkbox\"\n role=\"switch\"\n id={switchId}\n disabled={disabled}\n checked={isChecked}\n onChange={handleChange}\n className=\"sr-only peer\"\n {...props}\n />\n <label\n htmlFor={switchId}\n className={cn(\n 'relative flex h-5 w-9 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors',\n 'bg-(--color-neutral-200) peer-checked:bg-(--color-primary-500)',\n 'peer-focus-visible:ring-2 peer-focus-visible:ring-(--color-primary-500)/20',\n 'peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n error && 'ring-2 ring-(--color-danger-500)/20',\n className\n )}\n >\n <span\n className=\"pointer-events-none block h-3.5 w-3.5 rounded-full bg-white shadow transition-transform\"\n style={{\n transform: isChecked ? 'translateX(18px)' : 'translateX(2px)',\n }}\n />\n </label>\n </div>\n\n {(label || description) && (\n <div className=\"flex flex-col gap-0.5\">\n {label && (\n <span\n className={cn(\n 'text-sm font-medium text-(--color-neutral-900)',\n disabled && 'opacity-50',\n )}\n >\n {label}\n </span>\n )}\n {description && (\n <p className=\"text-xs text-(--color-neutral-500)\">{description}</p>\n )}\n </div>\n )}\n </div>\n {error && (\n <p className=\"text-xs text-(--color-danger-500) ml-12\">{error}</p>\n )}\n </div>\n )\n }\n)\nSwitch.displayName = 'Switch'","import React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const modalVariants = cva(\n \"relative bg-white rounded-(--radius-xl) shadow-lg w-full mx-4 transition-all\",\n {\n variants: {\n size: {\n sm: \"max-w-sm\",\n md: \"max-w-md\",\n lg: \"max-w-lg\",\n xl: \"max-w-xl\",\n full: \"max-w-full mx-4\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nexport interface ModalProps extends VariantProps<typeof modalVariants> {\n open: boolean;\n onClose: () => void;\n children: React.ReactNode;\n className?: string;\n closeOnOverlayClick?: boolean;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n open,\n onClose,\n children,\n size,\n className,\n closeOnOverlayClick = true,\n}) => {\n React.useEffect(() => {\n if (open) {\n const scrollbarWidth =\n window.innerWidth - document.documentElement.clientWidth;\n document.body.style.overflow = \"hidden\";\n document.body.style.paddingRight = `${scrollbarWidth}px`;\n } else {\n document.body.style.overflow = \"\";\n document.body.style.paddingRight = \"\";\n }\n return () => {\n document.body.style.overflow = \"\";\n document.body.style.paddingRight = \"\";\n };\n }, [open]);\n\n React.useEffect(() => {\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose();\n };\n if (open) document.addEventListener(\"keydown\", handleKey);\n return () => document.removeEventListener(\"keydown\", handleKey);\n }, [open, onClose]);\n\n if (!open) return null;\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n {/* Overlay */}\n <div\n className=\"absolute inset-0 bg-black/50\"\n onClick={closeOnOverlayClick ? onClose : undefined}\n />\n {/* Content */}\n <div className={cn(modalVariants({ size }), className)}>{children}</div>\n </div>\n );\n};\nModal.displayName = \"Modal\";\n\n// ─── Sub-components ───────────────────────────────────────\n\nexport interface ModalHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n onClose?: () => void;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n className,\n children,\n onClose,\n ...props\n}) => (\n <div\n className={cn(\"flex items-start justify-between p-6 pb-4\", className)}\n {...props}\n >\n <div className=\"flex flex-col gap-1\">{children}</div>\n {onClose && (\n <button\n type=\"button\"\n onClick={onClose}\n className=\"ml-4 shrink-0 rounded-(--radius-md) p-1 text-(--color-neutral-400) hover:bg-(--color-neutral-100) hover:text-(--color-neutral-700) transition-colors\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-4 w-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n )}\n </div>\n);\nModalHeader.displayName = \"ModalHeader\";\n\nexport const ModalTitle: React.FC<React.HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => (\n <h2\n className={cn(\n \"text-lg font-semibold text-(--color-neutral-900)\",\n className,\n )}\n {...props}\n />\n);\nModalTitle.displayName = \"ModalTitle\";\n\nexport const ModalDescription: React.FC<\n React.HTMLAttributes<HTMLParagraphElement>\n> = ({ className, ...props }) => (\n <p\n className={cn(\"text-sm text-(--color-neutral-500)\", className)}\n {...props}\n />\n);\nModalDescription.displayName = \"ModalDescription\";\n\nexport const ModalBody: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n}) => (\n <div\n className={cn(\"px-6 py-2 text-sm text-(--color-neutral-700)\", className)}\n {...props}\n />\n);\nModalBody.displayName = \"ModalBody\";\n\nexport const ModalFooter: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n}) => (\n <div\n className={cn(\"flex items-center justify-end gap-2 p-6 pt-4\", className)}\n {...props}\n />\n);\nModalFooter.displayName = \"ModalFooter\";\n","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const drawerVariants = cva(\n 'fixed z-50 bg-white shadow-xl transition-transform duration-300 ease-in-out',\n {\n variants: {\n side: {\n left: 'inset-y-0 left-0 h-full',\n right: 'inset-y-0 right-0 h-full',\n top: 'inset-x-0 top-0 w-full',\n bottom: 'inset-x-0 bottom-0 w-full',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n }\n)\n\nconst sizeStyle: Record<string, React.CSSProperties> = {\n sm: { width: '20rem' },\n md: { width: '24rem' },\n lg: { width: '32rem' },\n full: { width: '100%' },\n}\n\nconst translateMap = {\n left: { closed: 'translateX(-100%)', open: 'translateX(0)' },\n right: { closed: 'translateX(100%)', open: 'translateX(0)' },\n top: { closed: 'translateY(-100%)', open: 'translateY(0)' },\n bottom: { closed: 'translateY(100%)', open: 'translateY(0)' },\n}\n\nexport interface DrawerProps extends VariantProps<typeof drawerVariants> {\n open: boolean\n onClose: () => void\n children: React.ReactNode\n className?: string\n size?: 'sm' | 'md' | 'lg' | 'full'\n closeOnOverlayClick?: boolean\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n open,\n onClose,\n children,\n side = 'right',\n size = 'md',\n className,\n closeOnOverlayClick = true,\n}) => {\n React.useEffect(() => {\n if (open) {\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth\n document.body.style.overflow = 'hidden'\n document.body.style.paddingRight = `${scrollbarWidth}px`\n } else {\n document.body.style.overflow = ''\n document.body.style.paddingRight = ''\n }\n return () => {\n document.body.style.overflow = ''\n document.body.style.paddingRight = ''\n }\n }, [open])\n\n React.useEffect(() => {\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose()\n }\n if (open) document.addEventListener('keydown', handleKey)\n return () => document.removeEventListener('keydown', handleKey)\n }, [open, onClose])\n\n const resolvedSide = side ?? 'right'\n const transform = open\n ? translateMap[resolvedSide].open\n : translateMap[resolvedSide].closed\n\n const isHorizontal = resolvedSide === 'left' || resolvedSide === 'right'\n\n return (\n <div className={cn('fixed inset-0 z-50', !open && 'pointer-events-none')}>\n {/* Overlay */}\n <div\n className={cn(\n 'absolute inset-0 bg-black/50 transition-opacity duration-300',\n open ? 'opacity-100' : 'opacity-0'\n )}\n onClick={closeOnOverlayClick ? onClose : undefined}\n />\n\n {/* Drawer */}\n <div\n className={cn(drawerVariants({ side }), className)}\n style={{\n transform,\n ...(isHorizontal ? sizeStyle[size] : { height: 'auto', maxHeight: '80vh' }),\n }}\n >\n {children}\n </div>\n </div>\n )\n}\nDrawer.displayName = 'Drawer'\n\n// ─── Sub-components ───────────────────────────────────────\n\nexport interface DrawerHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n onClose?: () => void\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n className,\n children,\n onClose,\n ...props\n}) => (\n <div\n className={cn('flex items-start justify-between p-6 pb-4 border-b border-(--color-neutral-200)', className)}\n {...props}\n >\n <div className=\"flex flex-col gap-1\">{children}</div>\n {onClose && (\n <button\n type=\"button\"\n onClick={onClose}\n className=\"ml-4 shrink-0 rounded-(--radius-md) p-1 text-(--color-neutral-400) hover:bg-(--color-neutral-100) hover:text-(--color-neutral-700) transition-colors\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-4 w-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n )}\n </div>\n)\nDrawerHeader.displayName = 'DrawerHeader'\n\nexport const DrawerTitle: React.FC<React.HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => (\n <h2\n className={cn('text-lg font-semibold text-(--color-neutral-900)', className)}\n {...props}\n />\n)\nDrawerTitle.displayName = 'DrawerTitle'\n\nexport const DrawerDescription: React.FC<React.HTMLAttributes<HTMLParagraphElement>> = ({\n className,\n ...props\n}) => (\n <p\n className={cn('text-sm text-(--color-neutral-500)', className)}\n {...props}\n />\n)\nDrawerDescription.displayName = 'DrawerDescription'\n\nexport const DrawerBody: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n}) => (\n <div\n className={cn('flex-1 overflow-y-auto p-6 text-sm text-(--color-neutral-700)', className)}\n {...props}\n />\n)\nDrawerBody.displayName = 'DrawerBody'\n\nexport const DrawerFooter: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n}) => (\n <div\n className={cn('flex items-center justify-end gap-2 p-6 pt-4 border-t border-(--color-neutral-200)', className)}\n {...props}\n />\n)\nDrawerFooter.displayName = 'DrawerFooter'","import React from 'react'\nimport { cn } from '../../utils/cn'\n\ntype TooltipSide = 'top' | 'bottom' | 'left' | 'right'\n\ntype TooltipCoords = {\n top: number\n left: number\n}\n\nexport interface TooltipProps {\n content: React.ReactNode\n children: React.ReactNode\n side?: TooltipSide\n delay?: number\n className?: string\n}\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n content,\n children,\n side = 'top',\n delay = 300,\n className,\n}) => {\n const [visible, setVisible] = React.useState(false)\n const [coords, setCoords] = React.useState<TooltipCoords | null>(null)\n const triggerRef = React.useRef<HTMLDivElement>(null)\n const tooltipRef = React.useRef<HTMLDivElement>(null)\n const timerRef = React.useRef<ReturnType<typeof setTimeout> | null>(null)\n\n const computeCoords = React.useCallback(() => {\n if (!triggerRef.current || !tooltipRef.current) return\n const t = triggerRef.current.getBoundingClientRect()\n const tt = tooltipRef.current.getBoundingClientRect()\n const offset = 8\n\n switch (side) {\n case 'top':\n setCoords({\n top: t.top - tt.height - offset,\n left: t.left + t.width / 2 - tt.width / 2,\n })\n break\n case 'bottom':\n setCoords({\n top: t.bottom + offset,\n left: t.left + t.width / 2 - tt.width / 2,\n })\n break\n case 'left':\n setCoords({\n top: t.top + t.height / 2 - tt.height / 2,\n left: t.left - tt.width - offset,\n })\n break\n case 'right':\n setCoords({\n top: t.top + t.height / 2 - tt.height / 2,\n left: t.right + offset,\n })\n break\n }\n }, [side])\n\n React.useLayoutEffect(() => {\n if (!visible) return\n computeCoords()\n }, [computeCoords, content, visible])\n\n React.useEffect(() => {\n if (!visible) return\n\n window.addEventListener('resize', computeCoords)\n window.addEventListener('scroll', computeCoords, true)\n\n return () => {\n window.removeEventListener('resize', computeCoords)\n window.removeEventListener('scroll', computeCoords, true)\n }\n }, [computeCoords, visible])\n\n const show = () => {\n if (timerRef.current) clearTimeout(timerRef.current)\n timerRef.current = setTimeout(() => {\n setCoords(null)\n setVisible(true)\n }, delay)\n }\n\n const hide = () => {\n if (timerRef.current) clearTimeout(timerRef.current)\n setVisible(false)\n setCoords(null)\n }\n\n React.useEffect(() => {\n return () => {\n if (timerRef.current) clearTimeout(timerRef.current)\n }\n }, [])\n\n return (\n <>\n <div\n ref={triggerRef}\n className=\"inline-flex\"\n onMouseEnter={show}\n onMouseLeave={hide}\n onFocus={show}\n onBlur={hide}\n >\n {children}\n </div>\n {visible && (\n <div\n ref={tooltipRef}\n role=\"tooltip\"\n className={cn(\n 'fixed z-50 px-2.5 py-1.5 text-xs font-medium text-white rounded-(--radius-md) shadow-md pointer-events-none whitespace-nowrap transition-opacity',\n coords ? 'opacity-100' : 'opacity-0',\n className\n )}\n style={{\n top: coords?.top ?? 0,\n left: coords?.left ?? 0,\n backgroundColor: 'var(--color-neutral-900)',\n }}\n >\n {content}\n </div>\n )}\n </>\n )\n}\nTooltip.displayName = 'Tooltip'\n","import React from 'react'\nimport { createPortal } from 'react-dom'\nimport { cn } from '../../utils/cn'\n\ntype PopoverSide = 'top' | 'bottom' | 'left' | 'right'\ntype PopoverAlign = 'start' | 'center' | 'end'\n\ntype PopoverCoords = {\n top: number\n left: number\n}\n\ntype PopoverControls = {\n close: () => void\n open: () => void\n setOpen: (open: boolean) => void\n}\n\ntype PopoverContent = React.ReactNode | ((controls: PopoverControls) => React.ReactNode)\n\nexport interface PopoverProps {\n content: PopoverContent\n children: React.ReactNode\n side?: PopoverSide\n align?: PopoverAlign\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n className?: string\n closeOnOutsideClick?: boolean\n}\n\nexport const Popover: React.FC<PopoverProps> = ({\n content,\n children,\n side = 'bottom',\n align = 'center',\n open,\n defaultOpen = false,\n onOpenChange,\n className,\n closeOnOutsideClick = true,\n}) => {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen)\n const [coords, setCoords] = React.useState<PopoverCoords | null>(null)\n const [mounted, setMounted] = React.useState(false)\n const triggerRef = React.useRef<HTMLDivElement>(null)\n const popoverRef = React.useRef<HTMLDivElement>(null)\n const isControlled = open !== undefined\n const isOpen = isControlled ? open : uncontrolledOpen\n\n const setOpen = React.useCallback((nextOpen: boolean) => {\n if (!isControlled) setUncontrolledOpen(nextOpen)\n onOpenChange?.(nextOpen)\n }, [isControlled, onOpenChange])\n\n const close = React.useCallback(() => setOpen(false), [setOpen])\n const openPopover = React.useCallback(() => setOpen(true), [setOpen])\n\n const controls = React.useMemo<PopoverControls>(() => ({\n close,\n open: openPopover,\n setOpen,\n }), [close, openPopover, setOpen])\n\n const computeCoords = React.useCallback(() => {\n if (!triggerRef.current || !popoverRef.current) return\n\n const trigger = triggerRef.current.getBoundingClientRect()\n const popover = popoverRef.current.getBoundingClientRect()\n const offset = 8\n\n let top = 0\n let left = 0\n\n if (side === 'top') top = trigger.top - popover.height - offset\n if (side === 'bottom') top = trigger.bottom + offset\n if (side === 'left') left = trigger.left - popover.width - offset\n if (side === 'right') left = trigger.right + offset\n\n if (side === 'top' || side === 'bottom') {\n if (align === 'start') left = trigger.left\n if (align === 'center') left = trigger.left + trigger.width / 2 - popover.width / 2\n if (align === 'end') left = trigger.right - popover.width\n }\n\n if (side === 'left' || side === 'right') {\n if (align === 'start') top = trigger.top\n if (align === 'center') top = trigger.top + trigger.height / 2 - popover.height / 2\n if (align === 'end') top = trigger.bottom - popover.height\n }\n\n setCoords({\n top: Math.max(8, Math.min(top, window.innerHeight - popover.height - 8)),\n left: Math.max(8, Math.min(left, window.innerWidth - popover.width - 8)),\n })\n }, [align, side])\n\n React.useEffect(() => {\n setMounted(true)\n }, [])\n\n React.useLayoutEffect(() => {\n if (!isOpen) return\n computeCoords()\n }, [computeCoords, content, isOpen])\n\n React.useEffect(() => {\n if (!isOpen) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') close()\n }\n\n const handlePointerDown = (event: PointerEvent) => {\n const target = event.target as Node\n const clickedTrigger = triggerRef.current?.contains(target)\n const clickedPopover = popoverRef.current?.contains(target)\n\n if (!clickedTrigger && !clickedPopover) close()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n if (closeOnOutsideClick) document.addEventListener('pointerdown', handlePointerDown)\n window.addEventListener('resize', computeCoords)\n window.addEventListener('scroll', computeCoords, true)\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown)\n document.removeEventListener('pointerdown', handlePointerDown)\n window.removeEventListener('resize', computeCoords)\n window.removeEventListener('scroll', computeCoords, true)\n }\n }, [close, closeOnOutsideClick, computeCoords, isOpen])\n\n const popover = isOpen ? (\n <div\n ref={popoverRef}\n role=\"dialog\"\n className={cn(\n 'fixed z-50 min-w-48 rounded-(--radius-lg) border border-(--color-neutral-200) bg-white p-4 text-sm text-(--color-neutral-700) shadow-lg outline-none transition-opacity',\n coords ? 'opacity-100' : 'opacity-0',\n className\n )}\n style={{\n top: coords?.top ?? 0,\n left: coords?.left ?? 0,\n }}\n >\n {typeof content === 'function' ? content(controls) : content}\n </div>\n ) : null\n\n return (\n <>\n <div\n ref={triggerRef}\n className=\"inline-flex\"\n aria-expanded={isOpen}\n onClick={() => setOpen(!isOpen)}\n >\n {children}\n </div>\n {mounted && popover ? createPortal(popover, document.body) : null}\n </>\n )\n}\nPopover.displayName = 'Popover'\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/cn.ts","../src/tokens/index.ts","../src/components/Button/Button.tsx","../src/components/Input/Input.tsx","../src/components/Badge/Badge.tsx","../src/components/Card/Card.tsx","../src/components/Avatar/Avatar.tsx","../src/components/Separator/Separator.tsx","../src/components/Spinner/Spinner.tsx","../src/components/Select/Select.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Radio/Radio.tsx","../src/components/Switch/Switch.tsx","../src/components/Modal/Modal.tsx","../src/components/Drawer/Drawer.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/Popover/Popover.tsx","../src/components/Toast/Toast.tsx","../src/components/Alert/Alert.tsx","../src/components/Progress/Progress.tsx","../src/components/Skeleton/Skeleton.tsx"],"names":["twMerge","clsx","cva","React","jsxs","jsx","Fragment","popover","_a","_b","createPortal"],"mappings":"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","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}","export const colors = {\n primary: {\n 50: '#FFF4EE',\n 100: '#FFE0CC',\n 200: '#FFBF99',\n 300: '#F08050',\n 400: '#D4602A',\n 500: '#C2440A',\n 600: '#A03808',\n 700: '#8F2F06',\n 800: '#5C1C03',\n 900: '#2E0D01',\n },\n neutral: {\n 50: '#f9f7f5',\n 100: '#f0ece7',\n 200: '#ddd6cc',\n 300: '#c5bab0',\n 400: '#a89b8e',\n 500: '#8a7d72',\n 600: '#6f6358',\n 700: '#564d45',\n 800: '#3c3630',\n 900: '#252019',\n },\n danger: {\n 500: '#ef4444',\n 600: '#dc2626',\n },\n success: {\n 500: '#22c55e',\n 600: '#16a34a',\n },\n warning: {\n 500: '#f59e0b',\n 600: '#d97706',\n },\n} as const\n\nexport const radius = {\n none: '0',\n sm: '0.25rem',\n md: '0.375rem',\n lg: '0.5rem',\n xl: '0.75rem',\n '2xl':'1rem',\n full: '9999px',\n} as const\n\nexport const fontSize = {\n xs: ['0.75rem', { lineHeight: '1rem' }],\n sm: ['0.875rem', { lineHeight: '1.25rem' }],\n base: ['1rem', { lineHeight: '1.5rem' }],\n lg: ['1.125rem', { lineHeight: '1.75rem' }],\n xl: ['1.25rem', { lineHeight: '1.75rem' }],\n} as const","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const buttonVariants = cva(\n 'inline-flex items-center justify-center font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n primary: 'bg-(--color-primary-500) text-white hover:bg-(--color-primary-600) focus-visible:ring-(--color-primary-500)',\n secondary: 'bg-(--color-neutral-100) text-(--color-neutral-900) hover:bg-(--color-neutral-200)',\n outline: 'border border-(--color-primary-500) text-(--color-primary-500) bg-transparent hover:bg-(--color-primary-50)',\n ghost: 'text-(--color-neutral-700) hover:bg-(--color-neutral-100)',\n destructive: 'bg-(--color-danger-500) text-white hover:bg-(--color-danger-600)',\n },\n size: {\n sm: 'h-8 px-3 text-sm rounded-(--radius-md) gap-1.5',\n md: 'h-10 px-4 text-sm rounded-(--radius-md) gap-2',\n lg: 'h-12 px-6 text-base rounded-(--radius-lg) gap-2',\n icon: 'h-10 w-10 rounded-(--radius-md)',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n isLoading?: boolean\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, isLoading, children, disabled, ...props }, ref) => (\n <button\n ref={ref}\n className={cn(buttonVariants({ variant, size }), className)}\n disabled={disabled || isLoading}\n {...props}\n >\n {isLoading && (\n <svg className=\"animate-spin h-4 w-4\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"4\" />\n <path className=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8v8z\" />\n </svg>\n )}\n {children}\n </button>\n )\n)\nButton.displayName = 'Button'","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const inputVariants = cva(\n 'w-full px-3 py-2 text-sm bg-white border rounded-(--radius-md) transition-colors placeholder:text-(--color-neutral-400) focus:outline-none focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-(--color-neutral-50)',\n {\n variants: {\n state: {\n default: 'border-(--color-neutral-300) text-(--color-neutral-900) focus:border-(--color-primary-500) focus:ring-(--color-primary-500)/20',\n error: 'border-(--color-danger-500) text-(--color-neutral-900) focus:border-(--color-danger-500) focus:ring-(--color-danger-500)/20',\n },\n inputSize: {\n sm: 'h-8 text-xs',\n md: 'h-10 text-sm',\n lg: 'h-12 text-base',\n },\n },\n defaultVariants: {\n state: 'default',\n inputSize: 'md',\n },\n }\n)\n\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'>,\n VariantProps<typeof inputVariants> {\n label?: string\n error?: string\n hint?: string\n}\n\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, label, error, hint, id, inputSize, ...props }, ref) => {\n const inputId = id ?? label?.toLowerCase().replace(/\\s+/g, '-')\n return (\n <div className=\"flex flex-col gap-1.5 w-full\">\n {label && (\n <label htmlFor={inputId} className=\"text-sm font-medium text-(--color-neutral-700)\">\n {label}\n </label>\n )}\n <input\n ref={ref}\n id={inputId}\n className={cn(inputVariants({ state: error ? 'error' : 'default', inputSize }), className)}\n {...props}\n />\n {hint && !error && <p className=\"text-xs text-(--color-neutral-500)\">{hint}</p>}\n {error && <p className=\"text-xs text-(--color-danger-500)\">{error}</p>}\n </div>\n )\n }\n)\nInput.displayName = 'Input'","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const badgeVariants = cva(\n 'inline-flex items-center rounded-full font-medium',\n {\n variants: {\n variant: {\n default: 'bg-(--color-primary-500) text-white',\n secondary: 'bg-(--color-neutral-100) text-(--color-neutral-700)',\n outline: 'border border-(--color-primary-500) text-(--color-primary-500)',\n success: 'bg-(--color-success-500)/10 text-(--color-success-600)',\n warning: 'bg-(--color-warning-500)/10 text-(--color-warning-600)',\n destructive: 'bg-(--color-danger-500)/10 text-(--color-danger-600)',\n },\n size: {\n sm: 'px-2 py-0.5 text-xs',\n md: 'px-2.5 py-0.5 text-sm',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {}\n\nexport const Badge = ({ className, variant, size, ...props }: BadgeProps) => (\n <span className={cn(badgeVariants({ variant, size }), className)} {...props} />\n)\nBadge.displayName = 'Badge'","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const cardVariants = cva(\n 'rounded-(--radius-lg) bg-white text-(--color-neutral-900)',\n {\n variants: {\n variant: {\n elevated: 'shadow-md',\n outlined: 'border border-(--color-neutral-200)',\n ghost: 'bg-(--color-neutral-50)',\n },\n padding: {\n none: '',\n sm: 'p-4',\n md: 'p-6',\n lg: 'p-8',\n },\n },\n defaultVariants: {\n variant: 'elevated',\n padding: 'md',\n },\n }\n)\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardVariants> {}\n\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant, padding, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(cardVariants({ variant, padding }), className)}\n {...props}\n />\n )\n)\nCard.displayName = 'Card'\n\n// ─── Sub-components ───────────────────────────────────────\n\nexport const CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col gap-1.5 mb-4', 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('text-lg font-semibold text-(--color-neutral-900)', 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('text-sm text-(--color-neutral-500)', className)} {...props} />\n )\n)\nCardDescription.displayName = 'CardDescription'\n\nexport const CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-sm text-(--color-neutral-700)', className)} {...props} />\n )\n)\nCardContent.displayName = 'CardContent'\n\nexport const CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center gap-2 mt-4', className)} {...props} />\n )\n)\nCardFooter.displayName = 'CardFooter'","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const avatarVariants = cva(\n 'relative inline-flex items-center justify-center shrink-0 overflow-hidden rounded-full bg-(--color-neutral-200)',\n {\n variants: {\n size: {\n xs: 'h-6 w-6 text-xs',\n sm: 'h-8 w-8 text-sm',\n md: 'h-10 w-10 text-base',\n lg: 'h-12 w-12 text-lg',\n xl: 'h-16 w-16 text-xl',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n)\n\nexport interface AvatarProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof avatarVariants> {\n src?: string\n alt?: string\n fallback?: string\n}\n\nexport const Avatar = React.forwardRef<HTMLSpanElement, AvatarProps>(\n ({ className, size, src, alt, fallback, ...props }, ref) => {\n const [imgError, setImgError] = React.useState(false)\n\n const initials = fallback\n ?.split(' ')\n .map((word) => word[0])\n .slice(0, 2)\n .join('')\n .toUpperCase()\n\n return (\n <span\n ref={ref}\n className={cn(avatarVariants({ size }), className)}\n {...props}\n >\n {src && !imgError ? (\n <img\n src={src}\n alt={alt ?? ''}\n className=\"h-full w-full object-cover\"\n onError={() => setImgError(true)}\n />\n ) : initials ? (\n <span className=\"font-medium text-(--color-neutral-700) select-none\">\n {initials}\n </span>\n ) : (\n <svg\n className=\"h-[60%] w-[60%] text-(--color-neutral-400)\"\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path d=\"M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z\" />\n </svg>\n )}\n </span>\n )\n }\n)\nAvatar.displayName = 'Avatar'","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const separatorVariants = cva(\n 'shrink-0 bg-(--color-neutral-200)',\n {\n variants: {\n orientation: {\n horizontal: 'h-px w-full',\n vertical: 'h-full w-px',\n },\n },\n defaultVariants: {\n orientation: 'horizontal',\n },\n }\n)\n\nexport interface SeparatorProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof separatorVariants> {\n label?: string\n}\n\nexport const Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n ({ className, orientation, label, ...props }, ref) => {\n if (label && orientation !== 'vertical') {\n return (\n <div ref={ref} className={cn('flex items-center gap-3', className)} {...props}>\n <div className=\"h-px flex-1 bg-(--color-neutral-200)\" />\n <span className=\"text-xs text-(--color-neutral-400) font-medium select-none\">\n {label}\n </span>\n <div className=\"h-px flex-1 bg-(--color-neutral-200)\" />\n </div>\n )\n }\n\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={orientation ?? 'horizontal'}\n className={cn(separatorVariants({ orientation }), className)}\n {...props}\n />\n )\n }\n)\nSeparator.displayName = 'Separator'","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const spinnerVariants = cva(\n 'animate-spin rounded-full border-2 border-(--color-neutral-200) border-t-(--color-primary-500)',\n {\n variants: {\n size: {\n xs: 'h-3 w-3',\n sm: 'h-4 w-4',\n md: 'h-6 w-6',\n lg: 'h-8 w-8',\n xl: 'h-12 w-12',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n)\n\nexport interface SpinnerProps\n extends React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof spinnerVariants> {\n label?: string\n}\n\nexport const Spinner = React.forwardRef<HTMLSpanElement, SpinnerProps>(\n ({ className, size, label, ...props }, ref) => (\n <span ref={ref} role=\"status\" className={cn('inline-flex flex-col items-center gap-2', className)} {...props}>\n <span className={cn(spinnerVariants({ size }))} />\n {label && (\n <span className=\"text-sm text-(--color-neutral-500)\">{label}</span>\n )}\n <span className=\"sr-only\">{label ?? 'Loading...'}</span>\n </span>\n )\n)\nSpinner.displayName = 'Spinner'","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const selectVariants = cva(\n 'w-full appearance-none bg-white border rounded-(--radius-md) px-3 py-2 text-sm transition-colors cursor-pointer focus:outline-none focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-(--color-neutral-50)',\n {\n variants: {\n state: {\n default: 'border-(--color-neutral-300) text-(--color-neutral-900) focus:border-(--color-primary-500) focus:ring-(--color-primary-500)/20',\n error: 'border-(--color-danger-500) text-(--color-neutral-900) focus:border-(--color-danger-500) focus:ring-(--color-danger-500)/20',\n },\n selectSize: {\n sm: 'h-8 text-xs pr-8',\n md: 'h-10 text-sm pr-8',\n lg: 'h-12 text-base pr-10',\n },\n },\n defaultVariants: {\n state: 'default',\n selectSize: 'md',\n },\n }\n)\n\nexport interface SelectOption {\n value: string\n label: string\n disabled?: boolean\n}\n\nexport interface SelectProps\n extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'>,\n VariantProps<typeof selectVariants> {\n label?: string\n error?: string\n hint?: string\n placeholder?: string\n options?: SelectOption[]\n}\n\nexport const Select = React.forwardRef<HTMLSelectElement, SelectProps>(\n ({ className, label, error, hint, placeholder, options, selectSize, id, children, ...props }, ref) => {\n const selectId = id ?? label?.toLowerCase().replace(/\\s+/g, '-')\n\n return (\n <div className=\"flex flex-col gap-1.5 w-full\">\n {label && (\n <label htmlFor={selectId} className=\"text-sm font-medium text-(--color-neutral-700)\">\n {label}\n </label>\n )}\n <div className=\"relative\">\n <select\n ref={ref}\n id={selectId}\n className={cn(selectVariants({ state: error ? 'error' : 'default', selectSize }), className)}\n {...props}\n >\n {placeholder && (\n <option value=\"\" disabled>\n {placeholder}\n </option>\n )}\n {options\n ? options.map((opt) => (\n <option key={opt.value} value={opt.value} disabled={opt.disabled}>\n {opt.label}\n </option>\n ))\n : children}\n </select>\n <svg\n className=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 h-4 w-4 text-(--color-neutral-400)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </div>\n {hint && !error && <p className=\"text-xs text-(--color-neutral-500)\">{hint}</p>}\n {error && <p className=\"text-xs text-(--color-danger-500)\">{error}</p>}\n </div>\n )\n }\n)\nSelect.displayName = 'Select'","import React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface CheckboxProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: string;\n description?: string;\n error?: string;\n}\n\nexport const Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n ({ className, label, description, error, id, disabled, ...props }, ref) => {\n const checkboxId = id ?? label?.toLowerCase().replace(/\\s+/g, \"-\");\n\n return (\n <div className=\"flex flex-col gap-1\">\n <div className=\"flex items-start gap-2.5\">\n <input\n ref={ref}\n type=\"checkbox\"\n id={checkboxId}\n disabled={disabled}\n className={cn(\n \"h-4 w-4 shrink-0 mt-0.5 rounded-(--radius-sm) border cursor-pointer transition-colors appearance-none\",\n \"border-(--color-neutral-300) bg-white\",\n \"checked:bg-(--color-primary-500) checked:border-(--color-primary-500)\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--color-primary-500)/20\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n error && \"border-(--color-danger-500)\",\n className,\n )}\n style={{\n backgroundImage: `url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e\")`,\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: \"center\",\n }}\n {...props}\n />\n {(label || description) && (\n <div className=\"flex flex-col gap-0.5\">\n {label && (\n <label\n htmlFor={checkboxId}\n className={cn(\n \"text-sm font-medium cursor-pointer text-(--color-neutral-900)\",\n disabled && \"cursor-not-allowed opacity-50\",\n )}\n >\n {label}\n </label>\n )}\n {description && (\n <p className=\"text-xs text-(--color-neutral-500)\">\n {description}\n </p>\n )}\n </div>\n )}\n </div>\n {error && (\n <p className=\"text-xs text-(--color-danger-500) ml-6\">{error}</p>\n )}\n </div>\n );\n },\n);\nCheckbox.displayName = \"Checkbox\";\n","import React from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface RadioOption {\n value: string;\n label: string;\n description?: string;\n disabled?: boolean;\n}\n\nexport interface RadioGroupProps {\n options: RadioOption[];\n value?: string;\n onChange?: (value: string) => void;\n name: string;\n label?: string;\n error?: string;\n hint?: string;\n orientation?: \"vertical\" | \"horizontal\";\n}\n\nexport const RadioGroup: React.FC<RadioGroupProps> = ({\n options,\n value,\n onChange,\n name,\n label,\n error,\n hint,\n orientation = \"vertical\",\n}) => {\n return (\n <div className=\"flex flex-col gap-1.5\">\n {label && (\n <span className=\"text-sm font-medium text-(--color-neutral-700)\">\n {label}\n </span>\n )}\n <div\n className={cn(\n \"flex gap-3\",\n orientation === \"vertical\" ? \"flex-col\" : \"flex-row flex-wrap\",\n )}\n >\n {options.map((option) => {\n const optionId = `${name}-${option.value}`;\n return (\n <div key={option.value} className=\"flex items-start gap-2.5\">\n <input\n type=\"radio\"\n id={optionId}\n name={name}\n value={option.value}\n checked={value === option.value}\n disabled={option.disabled}\n onChange={() => onChange?.(option.value)}\n className={cn(\n \"h-4 w-4 shrink-0 mt-0.5 cursor-pointer appearance-none rounded-full border-2 transition-colors\",\n \"border-(--color-neutral-300) bg-white\",\n \"checked:border-(--color-primary-500) checked:bg-(--color-primary-500)\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--color-primary-500)/20\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n error && \"border-(--color-danger-500)\",\n )}\n style={{\n backgroundImage:\n value === option.value\n ? `url(\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\")`\n : \"none\",\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: \"center\",\n }}\n />\n <div className=\"flex flex-col gap-0.5\">\n <label\n htmlFor={optionId}\n className={cn(\n \"text-sm font-medium cursor-pointer text-(--color-neutral-900)\",\n option.disabled && \"cursor-not-allowed opacity-50\",\n )}\n >\n {option.label}\n </label>\n {option.description && (\n <p className=\"text-xs text-(--color-neutral-500)\">\n {option.description}\n </p>\n )}\n </div>\n </div>\n );\n })}\n </div>\n {hint && !error && (\n <p className=\"text-xs text-(--color-neutral-500)\">{hint}</p>\n )}\n {error && <p className=\"text-xs text-(--color-danger-500)\">{error}</p>}\n </div>\n );\n};\nRadioGroup.displayName = \"RadioGroup\";\n","import React from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface SwitchProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {\n label?: string\n description?: string\n error?: string\n}\n\nexport const Switch = React.forwardRef<HTMLInputElement, SwitchProps>(\n ({ className, label, description, error, id, disabled, checked, defaultChecked, onChange, ...props }, ref) => {\n const switchId = id ?? `switch-${Math.random().toString(36).slice(2, 9)}`\n\n const [internalChecked, setInternalChecked] = React.useState(\n defaultChecked ?? false\n )\n\n const isControlled = checked !== undefined\n const isChecked = isControlled ? checked : internalChecked\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) setInternalChecked(e.target.checked)\n onChange?.(e)\n }\n\n return (\n <div className=\"flex flex-col gap-1\">\n <div className=\"flex items-start gap-3\">\n <div className=\"relative inline-flex shrink-0 mt-0.5\">\n <input\n ref={ref}\n type=\"checkbox\"\n role=\"switch\"\n id={switchId}\n disabled={disabled}\n checked={isChecked}\n onChange={handleChange}\n className=\"sr-only peer\"\n {...props}\n />\n <label\n htmlFor={switchId}\n className={cn(\n 'relative flex h-5 w-9 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors',\n 'bg-(--color-neutral-200) peer-checked:bg-(--color-primary-500)',\n 'peer-focus-visible:ring-2 peer-focus-visible:ring-(--color-primary-500)/20',\n 'peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n error && 'ring-2 ring-(--color-danger-500)/20',\n className\n )}\n >\n <span\n className=\"pointer-events-none block h-3.5 w-3.5 rounded-full bg-white shadow transition-transform\"\n style={{\n transform: isChecked ? 'translateX(18px)' : 'translateX(2px)',\n }}\n />\n </label>\n </div>\n\n {(label || description) && (\n <div className=\"flex flex-col gap-0.5\">\n {label && (\n <span\n className={cn(\n 'text-sm font-medium text-(--color-neutral-900)',\n disabled && 'opacity-50',\n )}\n >\n {label}\n </span>\n )}\n {description && (\n <p className=\"text-xs text-(--color-neutral-500)\">{description}</p>\n )}\n </div>\n )}\n </div>\n {error && (\n <p className=\"text-xs text-(--color-danger-500) ml-12\">{error}</p>\n )}\n </div>\n )\n }\n)\nSwitch.displayName = 'Switch'","import React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utils/cn\";\n\nexport const modalVariants = cva(\n \"relative bg-white rounded-(--radius-xl) shadow-lg w-full mx-4 transition-all\",\n {\n variants: {\n size: {\n sm: \"max-w-sm\",\n md: \"max-w-md\",\n lg: \"max-w-lg\",\n xl: \"max-w-xl\",\n full: \"max-w-full mx-4\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n },\n);\n\nexport interface ModalProps extends VariantProps<typeof modalVariants> {\n open: boolean;\n onClose: () => void;\n children: React.ReactNode;\n className?: string;\n closeOnOverlayClick?: boolean;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n open,\n onClose,\n children,\n size,\n className,\n closeOnOverlayClick = true,\n}) => {\n React.useEffect(() => {\n if (open) {\n const scrollbarWidth =\n window.innerWidth - document.documentElement.clientWidth;\n document.body.style.overflow = \"hidden\";\n document.body.style.paddingRight = `${scrollbarWidth}px`;\n } else {\n document.body.style.overflow = \"\";\n document.body.style.paddingRight = \"\";\n }\n return () => {\n document.body.style.overflow = \"\";\n document.body.style.paddingRight = \"\";\n };\n }, [open]);\n\n React.useEffect(() => {\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose();\n };\n if (open) document.addEventListener(\"keydown\", handleKey);\n return () => document.removeEventListener(\"keydown\", handleKey);\n }, [open, onClose]);\n\n if (!open) return null;\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n {/* Overlay */}\n <div\n className=\"absolute inset-0 bg-black/50\"\n onClick={closeOnOverlayClick ? onClose : undefined}\n />\n {/* Content */}\n <div className={cn(modalVariants({ size }), className)}>{children}</div>\n </div>\n );\n};\nModal.displayName = \"Modal\";\n\n// ─── Sub-components ───────────────────────────────────────\n\nexport interface ModalHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n onClose?: () => void;\n}\n\nexport const ModalHeader: React.FC<ModalHeaderProps> = ({\n className,\n children,\n onClose,\n ...props\n}) => (\n <div\n className={cn(\"flex items-start justify-between p-6 pb-4\", className)}\n {...props}\n >\n <div className=\"flex flex-col gap-1\">{children}</div>\n {onClose && (\n <button\n type=\"button\"\n onClick={onClose}\n className=\"ml-4 shrink-0 rounded-(--radius-md) p-1 text-(--color-neutral-400) hover:bg-(--color-neutral-100) hover:text-(--color-neutral-700) transition-colors\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-4 w-4\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n )}\n </div>\n);\nModalHeader.displayName = \"ModalHeader\";\n\nexport const ModalTitle: React.FC<React.HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => (\n <h2\n className={cn(\n \"text-lg font-semibold text-(--color-neutral-900)\",\n className,\n )}\n {...props}\n />\n);\nModalTitle.displayName = \"ModalTitle\";\n\nexport const ModalDescription: React.FC<\n React.HTMLAttributes<HTMLParagraphElement>\n> = ({ className, ...props }) => (\n <p\n className={cn(\"text-sm text-(--color-neutral-500)\", className)}\n {...props}\n />\n);\nModalDescription.displayName = \"ModalDescription\";\n\nexport const ModalBody: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n}) => (\n <div\n className={cn(\"px-6 py-2 text-sm text-(--color-neutral-700)\", className)}\n {...props}\n />\n);\nModalBody.displayName = \"ModalBody\";\n\nexport const ModalFooter: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n}) => (\n <div\n className={cn(\"flex items-center justify-end gap-2 p-6 pt-4\", className)}\n {...props}\n />\n);\nModalFooter.displayName = \"ModalFooter\";\n","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nexport const drawerVariants = cva(\n 'fixed z-50 bg-white shadow-xl transition-transform duration-300 ease-in-out',\n {\n variants: {\n side: {\n left: 'inset-y-0 left-0 h-full',\n right: 'inset-y-0 right-0 h-full',\n top: 'inset-x-0 top-0 w-full',\n bottom: 'inset-x-0 bottom-0 w-full',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n }\n)\n\nconst sizeStyle: Record<string, React.CSSProperties> = {\n sm: { width: '20rem' },\n md: { width: '24rem' },\n lg: { width: '32rem' },\n full: { width: '100%' },\n}\n\nconst translateMap = {\n left: { closed: 'translateX(-100%)', open: 'translateX(0)' },\n right: { closed: 'translateX(100%)', open: 'translateX(0)' },\n top: { closed: 'translateY(-100%)', open: 'translateY(0)' },\n bottom: { closed: 'translateY(100%)', open: 'translateY(0)' },\n}\n\nexport interface DrawerProps extends VariantProps<typeof drawerVariants> {\n open: boolean\n onClose: () => void\n children: React.ReactNode\n className?: string\n size?: 'sm' | 'md' | 'lg' | 'full'\n closeOnOverlayClick?: boolean\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n open,\n onClose,\n children,\n side = 'right',\n size = 'md',\n className,\n closeOnOverlayClick = true,\n}) => {\n React.useEffect(() => {\n if (open) {\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth\n document.body.style.overflow = 'hidden'\n document.body.style.paddingRight = `${scrollbarWidth}px`\n } else {\n document.body.style.overflow = ''\n document.body.style.paddingRight = ''\n }\n return () => {\n document.body.style.overflow = ''\n document.body.style.paddingRight = ''\n }\n }, [open])\n\n React.useEffect(() => {\n const handleKey = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose()\n }\n if (open) document.addEventListener('keydown', handleKey)\n return () => document.removeEventListener('keydown', handleKey)\n }, [open, onClose])\n\n const resolvedSide = side ?? 'right'\n const transform = open\n ? translateMap[resolvedSide].open\n : translateMap[resolvedSide].closed\n\n const isHorizontal = resolvedSide === 'left' || resolvedSide === 'right'\n\n return (\n <div className={cn('fixed inset-0 z-50', !open && 'pointer-events-none')}>\n {/* Overlay */}\n <div\n className={cn(\n 'absolute inset-0 bg-black/50 transition-opacity duration-300',\n open ? 'opacity-100' : 'opacity-0'\n )}\n onClick={closeOnOverlayClick ? onClose : undefined}\n />\n\n {/* Drawer */}\n <div\n className={cn(drawerVariants({ side }), className)}\n style={{\n transform,\n ...(isHorizontal ? sizeStyle[size] : { height: 'auto', maxHeight: '80vh' }),\n }}\n >\n {children}\n </div>\n </div>\n )\n}\nDrawer.displayName = 'Drawer'\n\n// ─── Sub-components ───────────────────────────────────────\n\nexport interface DrawerHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n onClose?: () => void\n}\n\nexport const DrawerHeader: React.FC<DrawerHeaderProps> = ({\n className,\n children,\n onClose,\n ...props\n}) => (\n <div\n className={cn('flex items-start justify-between p-6 pb-4 border-b border-(--color-neutral-200)', className)}\n {...props}\n >\n <div className=\"flex flex-col gap-1\">{children}</div>\n {onClose && (\n <button\n type=\"button\"\n onClick={onClose}\n className=\"ml-4 shrink-0 rounded-(--radius-md) p-1 text-(--color-neutral-400) hover:bg-(--color-neutral-100) hover:text-(--color-neutral-700) transition-colors\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"h-4 w-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M18 6 6 18M6 6l12 12\" />\n </svg>\n </button>\n )}\n </div>\n)\nDrawerHeader.displayName = 'DrawerHeader'\n\nexport const DrawerTitle: React.FC<React.HTMLAttributes<HTMLHeadingElement>> = ({\n className,\n ...props\n}) => (\n <h2\n className={cn('text-lg font-semibold text-(--color-neutral-900)', className)}\n {...props}\n />\n)\nDrawerTitle.displayName = 'DrawerTitle'\n\nexport const DrawerDescription: React.FC<React.HTMLAttributes<HTMLParagraphElement>> = ({\n className,\n ...props\n}) => (\n <p\n className={cn('text-sm text-(--color-neutral-500)', className)}\n {...props}\n />\n)\nDrawerDescription.displayName = 'DrawerDescription'\n\nexport const DrawerBody: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n}) => (\n <div\n className={cn('flex-1 overflow-y-auto p-6 text-sm text-(--color-neutral-700)', className)}\n {...props}\n />\n)\nDrawerBody.displayName = 'DrawerBody'\n\nexport const DrawerFooter: React.FC<React.HTMLAttributes<HTMLDivElement>> = ({\n className,\n ...props\n}) => (\n <div\n className={cn('flex items-center justify-end gap-2 p-6 pt-4 border-t border-(--color-neutral-200)', className)}\n {...props}\n />\n)\nDrawerFooter.displayName = 'DrawerFooter'","import React from 'react'\nimport { cn } from '../../utils/cn'\n\ntype TooltipSide = 'top' | 'bottom' | 'left' | 'right'\n\ntype TooltipCoords = {\n top: number\n left: number\n}\n\nexport interface TooltipProps {\n content: React.ReactNode\n children: React.ReactNode\n side?: TooltipSide\n delay?: number\n className?: string\n}\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n content,\n children,\n side = 'top',\n delay = 300,\n className,\n}) => {\n const [visible, setVisible] = React.useState(false)\n const [coords, setCoords] = React.useState<TooltipCoords | null>(null)\n const triggerRef = React.useRef<HTMLDivElement>(null)\n const tooltipRef = React.useRef<HTMLDivElement>(null)\n const timerRef = React.useRef<ReturnType<typeof setTimeout> | null>(null)\n\n const computeCoords = React.useCallback(() => {\n if (!triggerRef.current || !tooltipRef.current) return\n const t = triggerRef.current.getBoundingClientRect()\n const tt = tooltipRef.current.getBoundingClientRect()\n const offset = 8\n\n switch (side) {\n case 'top':\n setCoords({\n top: t.top - tt.height - offset,\n left: t.left + t.width / 2 - tt.width / 2,\n })\n break\n case 'bottom':\n setCoords({\n top: t.bottom + offset,\n left: t.left + t.width / 2 - tt.width / 2,\n })\n break\n case 'left':\n setCoords({\n top: t.top + t.height / 2 - tt.height / 2,\n left: t.left - tt.width - offset,\n })\n break\n case 'right':\n setCoords({\n top: t.top + t.height / 2 - tt.height / 2,\n left: t.right + offset,\n })\n break\n }\n }, [side])\n\n React.useLayoutEffect(() => {\n if (!visible) return\n computeCoords()\n }, [computeCoords, content, visible])\n\n React.useEffect(() => {\n if (!visible) return\n\n window.addEventListener('resize', computeCoords)\n window.addEventListener('scroll', computeCoords, true)\n\n return () => {\n window.removeEventListener('resize', computeCoords)\n window.removeEventListener('scroll', computeCoords, true)\n }\n }, [computeCoords, visible])\n\n const show = () => {\n if (timerRef.current) clearTimeout(timerRef.current)\n timerRef.current = setTimeout(() => {\n setCoords(null)\n setVisible(true)\n }, delay)\n }\n\n const hide = () => {\n if (timerRef.current) clearTimeout(timerRef.current)\n setVisible(false)\n setCoords(null)\n }\n\n React.useEffect(() => {\n return () => {\n if (timerRef.current) clearTimeout(timerRef.current)\n }\n }, [])\n\n return (\n <>\n <div\n ref={triggerRef}\n className=\"inline-flex\"\n onMouseEnter={show}\n onMouseLeave={hide}\n onFocus={show}\n onBlur={hide}\n >\n {children}\n </div>\n {visible && (\n <div\n ref={tooltipRef}\n role=\"tooltip\"\n className={cn(\n 'fixed z-50 px-2.5 py-1.5 text-xs font-medium text-white rounded-(--radius-md) shadow-md pointer-events-none whitespace-nowrap transition-opacity',\n coords ? 'opacity-100' : 'opacity-0',\n className\n )}\n style={{\n top: coords?.top ?? 0,\n left: coords?.left ?? 0,\n backgroundColor: 'var(--color-neutral-900)',\n }}\n >\n {content}\n </div>\n )}\n </>\n )\n}\nTooltip.displayName = 'Tooltip'\n","import React from 'react'\nimport { createPortal } from 'react-dom'\nimport { cn } from '../../utils/cn'\n\ntype PopoverSide = 'top' | 'bottom' | 'left' | 'right'\ntype PopoverAlign = 'start' | 'center' | 'end'\n\ntype PopoverCoords = {\n top: number\n left: number\n}\n\ntype PopoverControls = {\n close: () => void\n open: () => void\n setOpen: (open: boolean) => void\n}\n\ntype PopoverContent = React.ReactNode | ((controls: PopoverControls) => React.ReactNode)\n\nexport interface PopoverProps {\n content: PopoverContent\n children: React.ReactNode\n side?: PopoverSide\n align?: PopoverAlign\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n className?: string\n closeOnOutsideClick?: boolean\n}\n\nexport const Popover: React.FC<PopoverProps> = ({\n content,\n children,\n side = 'bottom',\n align = 'center',\n open,\n defaultOpen = false,\n onOpenChange,\n className,\n closeOnOutsideClick = true,\n}) => {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen)\n const [coords, setCoords] = React.useState<PopoverCoords | null>(null)\n const [mounted, setMounted] = React.useState(false)\n const triggerRef = React.useRef<HTMLDivElement>(null)\n const popoverRef = React.useRef<HTMLDivElement>(null)\n const isControlled = open !== undefined\n const isOpen = isControlled ? open : uncontrolledOpen\n\n const setOpen = React.useCallback((nextOpen: boolean) => {\n if (!isControlled) setUncontrolledOpen(nextOpen)\n onOpenChange?.(nextOpen)\n }, [isControlled, onOpenChange])\n\n const close = React.useCallback(() => setOpen(false), [setOpen])\n const openPopover = React.useCallback(() => setOpen(true), [setOpen])\n\n const controls = React.useMemo<PopoverControls>(() => ({\n close,\n open: openPopover,\n setOpen,\n }), [close, openPopover, setOpen])\n\n const computeCoords = React.useCallback(() => {\n if (!triggerRef.current || !popoverRef.current) return\n\n const trigger = triggerRef.current.getBoundingClientRect()\n const popover = popoverRef.current.getBoundingClientRect()\n const offset = 8\n\n let top = 0\n let left = 0\n\n if (side === 'top') top = trigger.top - popover.height - offset\n if (side === 'bottom') top = trigger.bottom + offset\n if (side === 'left') left = trigger.left - popover.width - offset\n if (side === 'right') left = trigger.right + offset\n\n if (side === 'top' || side === 'bottom') {\n if (align === 'start') left = trigger.left\n if (align === 'center') left = trigger.left + trigger.width / 2 - popover.width / 2\n if (align === 'end') left = trigger.right - popover.width\n }\n\n if (side === 'left' || side === 'right') {\n if (align === 'start') top = trigger.top\n if (align === 'center') top = trigger.top + trigger.height / 2 - popover.height / 2\n if (align === 'end') top = trigger.bottom - popover.height\n }\n\n setCoords({\n top: Math.max(8, Math.min(top, window.innerHeight - popover.height - 8)),\n left: Math.max(8, Math.min(left, window.innerWidth - popover.width - 8)),\n })\n }, [align, side])\n\n React.useEffect(() => {\n setMounted(true)\n }, [])\n\n React.useLayoutEffect(() => {\n if (!isOpen) return\n computeCoords()\n }, [computeCoords, content, isOpen])\n\n React.useEffect(() => {\n if (!isOpen) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') close()\n }\n\n const handlePointerDown = (event: PointerEvent) => {\n const target = event.target as Node\n const clickedTrigger = triggerRef.current?.contains(target)\n const clickedPopover = popoverRef.current?.contains(target)\n\n if (!clickedTrigger && !clickedPopover) close()\n }\n\n document.addEventListener('keydown', handleKeyDown)\n if (closeOnOutsideClick) document.addEventListener('pointerdown', handlePointerDown)\n window.addEventListener('resize', computeCoords)\n window.addEventListener('scroll', computeCoords, true)\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown)\n document.removeEventListener('pointerdown', handlePointerDown)\n window.removeEventListener('resize', computeCoords)\n window.removeEventListener('scroll', computeCoords, true)\n }\n }, [close, closeOnOutsideClick, computeCoords, isOpen])\n\n const popover = isOpen ? (\n <div\n ref={popoverRef}\n role=\"dialog\"\n className={cn(\n 'fixed z-50 min-w-48 rounded-(--radius-lg) border border-(--color-neutral-200) bg-white p-4 text-sm text-(--color-neutral-700) shadow-lg outline-none transition-opacity',\n coords ? 'opacity-100' : 'opacity-0',\n className\n )}\n style={{\n top: coords?.top ?? 0,\n left: coords?.left ?? 0,\n }}\n >\n {typeof content === 'function' ? content(controls) : content}\n </div>\n ) : null\n\n return (\n <>\n <div\n ref={triggerRef}\n className=\"inline-flex\"\n aria-expanded={isOpen}\n onClick={() => setOpen(!isOpen)}\n >\n {children}\n </div>\n {mounted && popover ? createPortal(popover, document.body) : null}\n </>\n )\n}\nPopover.displayName = 'Popover'\n","import React from 'react'\nimport { createPortal } from 'react-dom'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\n// ─── Types ───────────────────────────────────────────────────────────────────\n\nexport type ToastVariant = 'default' | 'success' | 'warning' | 'destructive'\nexport type ToastPosition =\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right'\n\nexport interface ToastItem {\n id: string\n title?: string\n description?: string\n variant?: ToastVariant\n duration?: number\n icon?: React.ReactNode\n action?: {\n label: string\n onClick: () => void\n }\n}\n\nexport type ToastInput = Omit<ToastItem, 'id'>\n\n// ─── Context ──────────────────────────────────────────────────────────────────\n\ninterface ToastContextValue {\n toasts: ToastItem[]\n toast: (input: ToastInput) => string\n dismiss: (id: string) => void\n dismissAll: () => void\n}\n\nconst ToastContext = React.createContext<ToastContextValue | null>(null)\n\nlet counter = 0\nconst genId = () => `toast-${++counter}`\n\nexport const ToastProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const [toasts, setToasts] = React.useState<ToastItem[]>([])\n\n const toast = React.useCallback((input: ToastInput): string => {\n const id = genId()\n setToasts((prev) => [...prev, { ...input, id }])\n return id\n }, [])\n\n const dismiss = React.useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id))\n }, [])\n\n const dismissAll = React.useCallback(() => {\n setToasts([])\n }, [])\n\n return (\n <ToastContext.Provider value={{ toasts, toast, dismiss, dismissAll }}>\n {children}\n </ToastContext.Provider>\n )\n}\n\nexport const useToast = (): ToastContextValue => {\n const ctx = React.useContext(ToastContext)\n if (!ctx) throw new Error('useToast must be used within a ToastProvider')\n return ctx\n}\n\n// ─── Variants ─────────────────────────────────────────────────────────────────\n\nexport const toastVariants = cva(\n 'pointer-events-auto relative flex w-80 max-w-[calc(100vw-2rem)] items-start gap-3 overflow-hidden rounded-(--radius-lg) border p-4 pr-8 shadow-lg',\n {\n variants: {\n variant: {\n default: 'border-(--color-neutral-200) bg-white text-(--color-neutral-800)',\n success: 'border-green-200 bg-green-50 text-green-900',\n warning: 'border-yellow-200 bg-yellow-50 text-yellow-900',\n destructive: 'border-red-200 bg-red-50 text-red-900',\n },\n },\n defaultVariants: { variant: 'default' },\n }\n)\n\n// ─── Position map ─────────────────────────────────────────────────────────────\n\nconst positionClasses: Record<ToastPosition, string> = {\n 'top-left': 'top-4 left-4 items-start',\n 'top-center': 'top-4 left-1/2 -translate-x-1/2 items-center',\n 'top-right': 'top-4 right-4 items-end',\n 'bottom-left': 'bottom-4 left-4 items-start',\n 'bottom-center': 'bottom-4 left-1/2 -translate-x-1/2 items-center',\n 'bottom-right': 'bottom-4 right-4 items-end',\n}\n\n// ─── Single Toast ─────────────────────────────────────────────────────────────\n\ninterface SingleToastProps {\n toast: ToastItem\n onDismiss: (id: string) => void\n defaultDuration: number\n}\n\nconst SingleToast: React.FC<SingleToastProps> = ({ toast, onDismiss, defaultDuration }) => {\n const duration = toast.duration ?? defaultDuration\n\n React.useEffect(() => {\n if (duration <= 0) return\n const timer = setTimeout(() => onDismiss(toast.id), duration)\n return () => clearTimeout(timer)\n }, [duration, onDismiss, toast.id])\n\n return (\n <div\n role=\"status\"\n aria-live=\"polite\"\n className={toastVariants({ variant: toast.variant ?? 'default' })}\n >\n {toast.icon && (\n <span className=\"mt-0.5 shrink-0 [&>svg]:size-4\">{toast.icon}</span>\n )}\n <div className=\"flex-1 space-y-1\">\n {toast.title && (\n <p className=\"text-sm font-semibold leading-none\">{toast.title}</p>\n )}\n {toast.description && (\n <p className=\"text-xs opacity-80\">{toast.description}</p>\n )}\n {toast.action && (\n <button\n type=\"button\"\n onClick={() => {\n toast.action!.onClick()\n onDismiss(toast.id)\n }}\n className=\"mt-1.5 text-xs font-medium underline underline-offset-2 hover:no-underline focus:outline-none\"\n >\n {toast.action.label}\n </button>\n )}\n </div>\n <button\n type=\"button\"\n aria-label=\"Dismiss\"\n onClick={() => onDismiss(toast.id)}\n className=\"absolute right-2 top-2 rounded opacity-50 transition-opacity hover:opacity-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-(--color-primary-500)\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M18 6 6 18\" /><path d=\"m6 6 12 12\" />\n </svg>\n </button>\n </div>\n )\n}\n\n// ─── Toaster ──────────────────────────────────────────────────────────────────\n\nexport interface ToasterProps {\n position?: ToastPosition\n defaultDuration?: number\n className?: string\n}\n\nexport const Toaster: React.FC<ToasterProps> = ({\n position = 'bottom-right',\n defaultDuration = 4000,\n className,\n}) => {\n const { toasts, dismiss } = useToast()\n const [mounted, setMounted] = React.useState(false)\n\n React.useEffect(() => { setMounted(true) }, [])\n\n if (!mounted) return null\n\n return createPortal(\n <div\n aria-label=\"Notifications\"\n className={cn(\n 'fixed z-[100] flex flex-col gap-2 pointer-events-none',\n positionClasses[position],\n className\n )}\n >\n {toasts.map((t) => (\n <SingleToast\n key={t.id}\n toast={t}\n onDismiss={dismiss}\n defaultDuration={defaultDuration}\n />\n ))}\n </div>,\n document.body\n )\n}\n\nToaster.displayName = 'Toaster'\nToastProvider.displayName = 'ToastProvider'","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\n// ─── Variants ─────────────────────────────────────────────────────────────────\n\nexport const alertVariants = cva(\n 'relative flex w-full gap-3 rounded-(--radius-lg) border p-4 text-sm',\n {\n variants: {\n variant: {\n default: 'border-(--color-neutral-200) bg-(--color-neutral-50) text-(--color-neutral-700)',\n success: 'border-green-200 bg-green-50 text-green-800',\n warning: 'border-yellow-200 bg-yellow-50 text-yellow-800',\n destructive: 'border-red-200 bg-red-50 text-red-800',\n },\n },\n defaultVariants: { variant: 'default' },\n }\n)\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport interface AlertProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof alertVariants> {\n icon?: React.ReactNode\n onClose?: () => void\n}\n\n// ─── Components ───────────────────────────────────────────────────────────────\n\nexport const Alert: React.FC<AlertProps> = ({\n variant,\n icon,\n onClose,\n className,\n children,\n ...props\n}) => {\n return (\n <div\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n >\n {icon && (\n <span className=\"mt-0.5 shrink-0 [&>svg]:size-4\">{icon}</span>\n )}\n <div className=\"flex-1\">{children}</div>\n {onClose && (\n <button\n type=\"button\"\n aria-label=\"Dismiss\"\n onClick={onClose}\n className=\"ml-auto shrink-0 self-start rounded opacity-60 transition-opacity hover:opacity-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-(--color-primary-500)\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M18 6 6 18\" /><path d=\"m6 6 12 12\" />\n </svg>\n </button>\n )}\n </div>\n )\n}\nAlert.displayName = 'Alert'\n\nexport const AlertTitle: React.FC<React.HTMLAttributes<HTMLParagraphElement>> = ({\n className,\n children,\n ...props\n}) => (\n <p className={cn('font-semibold leading-none tracking-tight', className)} {...props}>\n {children}\n </p>\n)\nAlertTitle.displayName = 'AlertTitle'\n\nexport const AlertDescription: React.FC<React.HTMLAttributes<HTMLParagraphElement>> = ({\n className,\n children,\n ...props\n}) => (\n <p className={cn('mt-1 text-[0.8rem] opacity-80', className)} {...props}>\n {children}\n </p>\n)\nAlertDescription.displayName = 'AlertDescription'","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\n// ─── Variants ─────────────────────────────────────────────────────────────────\n\nexport const progressVariants = cva(\n 'w-full overflow-hidden rounded-full bg-(--color-neutral-200)',\n {\n variants: {\n size: {\n sm: 'h-1',\n md: 'h-2',\n lg: 'h-3',\n },\n },\n defaultVariants: { size: 'md' },\n }\n)\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport interface ProgressProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof progressVariants> {\n /** Value between 0–100. Omit for indeterminate. */\n value?: number\n label?: string\n showLabel?: boolean\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport const Progress: React.FC<ProgressProps> = ({\n value,\n size,\n label,\n showLabel = false,\n className,\n ...props\n}) => {\n const isIndeterminate = value === undefined || value === null\n\n return (\n <div className=\"w-full\">\n {(label || showLabel) && (\n <div className=\"mb-1.5 flex items-center justify-between text-xs text-(--color-neutral-600)\">\n {label && <span>{label}</span>}\n {showLabel && !isIndeterminate && (\n <span className=\"ml-auto font-medium\">{Math.round(value!)}%</span>\n )}\n </div>\n )}\n <div\n role=\"progressbar\"\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={isIndeterminate ? undefined : value}\n className={cn(progressVariants({ size }), className)}\n {...props}\n >\n <div\n className={cn(\n 'h-full rounded-full bg-(--color-primary-500) transition-all duration-300 ease-in-out',\n isIndeterminate && 'w-1/3 animate-[indeterminate_1.5s_ease-in-out_infinite]'\n )}\n style={\n isIndeterminate\n ? undefined\n : { width: `${Math.min(100, Math.max(0, value!))}%` }\n }\n />\n </div>\n </div>\n )\n}\nProgress.displayName = 'Progress'","import React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\n// ─── Variants ─────────────────────────────────────────────────────────────────\n\nexport const skeletonVariants = cva(\n 'animate-pulse bg-(--color-neutral-200)',\n {\n variants: {\n variant: {\n text: 'h-4 w-full rounded',\n circle: 'rounded-full',\n rect: 'rounded-(--radius-md)',\n },\n },\n defaultVariants: { variant: 'rect' },\n }\n)\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport interface SkeletonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof skeletonVariants> {\n width?: string | number\n height?: string | number\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport const Skeleton: React.FC<SkeletonProps> = ({\n variant,\n width,\n height,\n className,\n style,\n ...props\n}) => {\n return (\n <div\n aria-hidden=\"true\"\n className={cn(skeletonVariants({ variant }), className)}\n style={{\n width: typeof width === 'number' ? `${width}px` : width,\n height: typeof height === 'number' ? `${height}px` : height,\n ...style,\n }}\n {...props}\n />\n )\n}\nSkeleton.displayName = 'Skeleton'"]}
|