@salesmind-ai/design-system 0.3.10 → 0.3.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AppearanceProvider-C36a8-eb.d.cts → AppearanceProvider-B_o-H39e.d.cts} +14 -1
- package/dist/{AppearanceProvider-C36a8-eb.d.ts → AppearanceProvider-B_o-H39e.d.ts} +14 -1
- package/dist/admin/index.css +3 -3
- package/dist/admin/index.css.map +1 -1
- package/dist/admin/index.d.cts +1 -1
- package/dist/admin/index.d.ts +1 -1
- package/dist/{chunk-UQ4SHBMC.js → chunk-6R4F3HK6.js} +2 -2
- package/dist/{chunk-CH42VPWE.cjs → chunk-BJXGIHVZ.cjs} +22 -1
- package/dist/chunk-BJXGIHVZ.cjs.map +1 -0
- package/dist/{chunk-KNQEIU7O.cjs → chunk-C4XSNMRU.cjs} +8 -4
- package/dist/chunk-C4XSNMRU.cjs.map +1 -0
- package/dist/{chunk-KVGSVGRK.cjs → chunk-D2RHF2OE.cjs} +2 -2
- package/dist/chunk-D2RHF2OE.cjs.map +1 -0
- package/dist/{chunk-IFRATNLU.js → chunk-DMRQPGQA.js} +2 -2
- package/dist/chunk-DMRQPGQA.js.map +1 -0
- package/dist/{chunk-ELKEYKEI.cjs → chunk-F33EEHWL.cjs} +4 -4
- package/dist/{chunk-B23AGGYI.cjs → chunk-GQELL2MF.cjs} +2 -7
- package/dist/chunk-GQELL2MF.cjs.map +1 -0
- package/dist/{chunk-W2WTP6HS.cjs → chunk-HCZW5AJN.cjs} +4 -3
- package/dist/chunk-HCZW5AJN.cjs.map +1 -0
- package/dist/{chunk-T343CCH5.js → chunk-KE7T2HQC.js} +8 -4
- package/dist/chunk-KE7T2HQC.js.map +1 -0
- package/dist/{chunk-OGKGIXFC.cjs → chunk-KR6T7N7W.cjs} +26 -25
- package/dist/chunk-KR6T7N7W.cjs.map +1 -0
- package/dist/{chunk-UIPEIRGT.js → chunk-QALDZ7WQ.js} +2 -7
- package/dist/chunk-QALDZ7WQ.js.map +1 -0
- package/dist/{chunk-JPJN4YBC.js → chunk-QTARL7VL.js} +21 -2
- package/dist/chunk-QTARL7VL.js.map +1 -0
- package/dist/{chunk-HRENHNDJ.js → chunk-TCFC7XTB.js} +4 -3
- package/dist/chunk-TCFC7XTB.js.map +1 -0
- package/dist/{chunk-5LGDEZWY.cjs → chunk-UTVXGAQP.cjs} +10 -7
- package/dist/chunk-UTVXGAQP.cjs.map +1 -0
- package/dist/{chunk-U3LK2GID.js → chunk-WN626YNO.js} +4 -3
- package/dist/chunk-WN626YNO.js.map +1 -0
- package/dist/{chunk-MU6GW5ZV.js → chunk-XPTVHPCN.js} +7 -4
- package/dist/chunk-XPTVHPCN.js.map +1 -0
- package/dist/core/index.cjs +143 -135
- package/dist/core/index.css +3 -1
- package/dist/core/index.css.map +1 -1
- package/dist/core/index.d.cts +6 -1
- package/dist/core/index.d.ts +6 -1
- package/dist/core/index.js +3 -3
- package/dist/index.cjs +205 -197
- package/dist/index.css +47 -20
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +7 -7
- package/dist/marketing/index.cjs +36 -36
- package/dist/marketing/index.css +3 -0
- package/dist/marketing/index.css.map +1 -1
- package/dist/marketing/index.js +2 -2
- package/dist/motion/index.cjs +7 -7
- package/dist/motion/index.d.cts +1 -1
- package/dist/motion/index.d.ts +1 -1
- package/dist/motion/index.js +1 -1
- package/dist/nav/index.cjs +16 -16
- package/dist/nav/index.css +3 -3
- package/dist/nav/index.css.map +1 -1
- package/dist/nav/index.js +1 -1
- package/dist/social-proof/index.css +28 -6
- package/dist/social-proof/index.css.map +1 -1
- package/dist/styles/styles.css +12 -10
- package/dist/theme/index.cjs +19 -11
- package/dist/theme/index.css +7 -7
- package/dist/theme/index.css.map +1 -1
- package/dist/theme/index.d.cts +1 -1
- package/dist/theme/index.d.ts +1 -1
- package/dist/theme/index.js +2 -2
- package/dist/web/index.cjs +7 -7
- package/dist/web/index.js +1 -1
- package/dist/web/server/index.cjs +7 -7
- package/dist/web/server/index.d.cts +4 -3
- package/dist/web/server/index.d.ts +4 -3
- package/dist/web/server/index.js +1 -1
- package/package.json +16 -1
- package/dist/chunk-5LGDEZWY.cjs.map +0 -1
- package/dist/chunk-B23AGGYI.cjs.map +0 -1
- package/dist/chunk-CH42VPWE.cjs.map +0 -1
- package/dist/chunk-HRENHNDJ.js.map +0 -1
- package/dist/chunk-IFRATNLU.js.map +0 -1
- package/dist/chunk-JPJN4YBC.js.map +0 -1
- package/dist/chunk-KNQEIU7O.cjs.map +0 -1
- package/dist/chunk-KVGSVGRK.cjs.map +0 -1
- package/dist/chunk-MU6GW5ZV.js.map +0 -1
- package/dist/chunk-OGKGIXFC.cjs.map +0 -1
- package/dist/chunk-T343CCH5.js.map +0 -1
- package/dist/chunk-U3LK2GID.js.map +0 -1
- package/dist/chunk-UIPEIRGT.js.map +0 -1
- package/dist/chunk-W2WTP6HS.cjs.map +0 -1
- /package/dist/{chunk-ELKEYKEI.cjs.map → chunk-6R4F3HK6.js.map} +0 -0
- /package/dist/{chunk-UQ4SHBMC.js.map → chunk-F33EEHWL.cjs.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Card/Card.tsx","../src/components/ButtonGroup/ButtonGroup.tsx","../src/components/TextArea/TextArea.tsx","../src/components/RadioGroup/RadioGroup.tsx","../src/components/Switch/Switch.tsx","../src/components/Accordion/Accordion.tsx","../src/components/Label/Label.tsx","../src/components/Skeleton/Skeleton.tsx","../src/components/Separator/Separator.tsx","../src/components/Sheet/Sheet.tsx","../src/components/Popover/Popover.tsx","../src/components/Progress/Progress.tsx","../src/components/ScrollArea/ScrollArea.tsx","../src/components/Toggle/Toggle.tsx","../src/components/Collapsible/Collapsible.tsx","../src/components/HoverCard/HoverCard.tsx","../src/components/AspectRatio/AspectRatio.tsx","../src/components/Pagination/Pagination.tsx","../src/components/Typography/Typography.tsx","../src/components/Carousel/Carousel.tsx","../src/components/Command/Command.tsx","../src/components/Command/CommandDialog.tsx","../src/components/Drawer/Drawer.tsx","../src/components/Calendar/Calendar.tsx","../src/components/InputOTP/InputOTP.tsx","../src/components/ContextMenu/ContextMenu.tsx","../src/components/Form/Form.tsx","../src/components/LayoutPrimitives/Grid.tsx","../src/components/LayoutPrimitives/Section.tsx","../src/components/LayoutPrimitives/VisuallyHidden.tsx","../src/components/StatusBadge/StatusBadge.tsx","../src/components/Alert/Alert.tsx","../src/components/Toast/ToastContext.tsx","../src/components/Toast/ToastItem.tsx","../src/components/Toast/ToastProvider.tsx","../src/components/EmptyState/EmptyState.tsx","../src/tokens/colors.ts","../src/tokens/typography.ts","../src/tokens/radius.ts","../src/tokens/shadows.ts","../src/tokens/z-index.ts","../src/tokens/breakpoints.ts"],"names":["React","clsx","jsx","forwardRef","useId","jsxs","Slot","createPortal","Fragment","createContext","useContext"],"mappings":"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","sourcesContent":["import React from 'react';\nimport clsx from 'clsx';\nimport './Card.css';\n\n/* ============================================================================\n CARD — Glass-treated compound component\n ============================================================================ */\n\nexport const Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-card', className)} {...props} />\n ),\n);\nCard.displayName = 'Card';\n\nexport const CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-card__header', className)} {...props} />\n ),\n);\nCardHeader.displayName = 'CardHeader';\n\nexport const CardTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3 ref={ref} className={clsx('ds-card__title', className)} {...props} />\n));\nCardTitle.displayName = 'CardTitle';\n\nexport const CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p ref={ref} className={clsx('ds-card__description', className)} {...props} />\n));\nCardDescription.displayName = 'CardDescription';\n\nexport const CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-card__content', 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={clsx('ds-card__footer', className)} {...props} />\n ),\n);\nCardFooter.displayName = 'CardFooter';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './ButtonGroup.css';\n\nexport interface ButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Orientation of the group */\n orientation?: 'horizontal' | 'vertical';\n /** Whether buttons should stretch to fill width */\n fullWidth?: boolean;\n /** Size of all buttons in group (if supported by children) */\n size?: 'sm' | 'md' | 'lg';\n /** Custom class name */\n className?: string;\n /** Button elements */\n children?: React.ReactNode;\n}\n\n/**\n * ButtonGroup — Compositional Component\n *\n * Groups related buttons together, merging their borders and controlling layout.\n */\nexport const ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n (\n { orientation = 'horizontal', fullWidth = false, size = 'md', className, children, ...props },\n ref,\n ) => {\n return (\n <div\n ref={ref}\n role=\"group\"\n className={clsx(\n 'ds-button-group',\n `ds-button-group--${orientation}`,\n fullWidth && 'ds-button-group--full-width',\n className,\n )}\n data-size={size}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\n\nButtonGroup.displayName = 'ButtonGroup';\n","import { TextareaHTMLAttributes, forwardRef, useId } from 'react';\nimport clsx from 'clsx';\nimport './TextArea.css';\n\nexport interface TextAreaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n label?: string;\n error?: boolean;\n helperText?: string;\n}\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n ({ className, label, error, helperText, id, ...props }, ref) => {\n const generatedId = useId();\n const inputId = id || generatedId;\n\n return (\n <div className={clsx('ds-textarea', className)}>\n {label && (\n <label htmlFor={inputId} className=\"ds-textarea__label\">\n {label}\n </label>\n )}\n <div className=\"ds-textarea__input-wrapper\">\n <textarea\n id={inputId}\n ref={ref}\n className={clsx('ds-textarea__input', error && 'ds-textarea__input--error')}\n {...props}\n />\n </div>\n {helperText && (\n <span className={clsx('ds-textarea__helper', error && 'ds-textarea__helper--error')}>\n {helperText}\n </span>\n )}\n </div>\n );\n },\n);\n\nTextArea.displayName = 'TextArea';\n","import React, { createContext, useContext, forwardRef, useId } from 'react';\nimport clsx from 'clsx';\nimport './RadioGroup.css';\n\n/* ============================================================================\n Radio Group Context\n ============================================================================ */\n\ninterface RadioGroupContextValue {\n name?: string;\n value?: string;\n onChange?: (value: string) => void;\n}\n\nconst RadioGroupContext = createContext<RadioGroupContextValue | null>(null);\n\n/* ============================================================================\n Radio Group Component\n ============================================================================ */\n\nexport interface RadioGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n name?: string;\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n orientation?: 'horizontal' | 'vertical';\n}\n\nexport const RadioGroup = forwardRef<HTMLDivElement, RadioGroupProps>(\n (\n {\n className,\n name,\n value,\n onValueChange,\n orientation = 'vertical',\n children,\n ...props\n },\n ref,\n ) => {\n const generatedName = useId();\n const groupName = name || generatedName;\n\n // Handle controlled/uncontrolled state if needed, but for now assuming controlled or purely relying on passed value\n // If we want full uncontrolled support we need useState, but here we just pass props down.\n // Actually, let's just pass `value` and `onChange`. If user passes `value`, it's controlled.\n\n return (\n <RadioGroupContext.Provider value={{ name: groupName, value, onChange: onValueChange }}>\n <div\n ref={ref}\n role=\"radiogroup\"\n className={clsx(\n 'ds-radio-group',\n orientation === 'horizontal' && 'ds-radio-group--horizontal',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </RadioGroupContext.Provider>\n );\n },\n);\n\nRadioGroup.displayName = 'RadioGroup';\n\n/* ============================================================================\n Radio Component\n ============================================================================ */\n\nexport interface RadioProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: string;\n value: string;\n}\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n ({ className, label, value, disabled, id, onChange, ...props }, ref) => {\n const context = useContext(RadioGroupContext);\n const generatedId = useId();\n const radioId = id || generatedId;\n\n const name = context?.name || props.name;\n const isChecked = context?.value !== undefined ? context.value === value : props.checked;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e);\n context?.onChange?.(value);\n };\n\n return (\n <label\n className={clsx('ds-radio-wrapper', disabled && 'ds-radio-wrapper--disabled', className)}\n >\n <input\n ref={ref}\n type=\"radio\"\n className=\"ds-radio-input\"\n id={radioId}\n name={name}\n value={value}\n checked={isChecked}\n onChange={handleChange}\n disabled={disabled}\n {...props}\n />\n <div className={clsx('ds-radio', isChecked && 'ds-radio--checked')}>\n <div className=\"ds-radio__indicator\" />\n </div>\n {label && <span className=\"ds-radio__label\">{label}</span>}\n </label>\n );\n },\n);\n\nRadio.displayName = 'Radio';\n","import React from 'react';\nimport { Switch as BaseSwitch } from '@base-ui/react/switch';\nimport clsx from 'clsx';\nimport './Switch.css';\n\nexport interface SwitchProps {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n disabled?: boolean;\n required?: boolean;\n readOnly?: boolean;\n name?: string;\n value?: string;\n id?: string;\n label?: string;\n className?: string;\n}\n\nexport const Switch = React.forwardRef<HTMLButtonElement, SwitchProps>(\n ({ className, label, id, ...props }, ref) => {\n const generatedId = React.useId();\n const switchId = id || generatedId;\n\n return (\n <div className={clsx('ds-switch-wrapper', className)}>\n <BaseSwitch.Root id={switchId} ref={ref} className=\"ds-switch\" {...props}>\n <BaseSwitch.Thumb className=\"ds-switch__thumb\" />\n </BaseSwitch.Root>\n {label && (\n <label htmlFor={switchId} className=\"ds-switch__label\">\n {label}\n </label>\n )}\n </div>\n );\n },\n);\n\nSwitch.displayName = 'Switch';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Accordion.css';\n\n/* ============================================================================\n ACCORDION CONTEXT\n ============================================================================ */\n\ntype AccordionType = 'single' | 'multiple';\n\ninterface AccordionContextValue {\n openItems: Set<string>;\n toggle: (value: string) => void;\n}\n\nconst AccordionContext = React.createContext<AccordionContextValue | null>(null);\n\nfunction useAccordionContext() {\n const ctx = React.useContext(AccordionContext);\n if (!ctx) {\n throw new Error('Accordion compound components must be used within <Accordion>');\n }\n return ctx;\n}\n\n/* ============================================================================\n ACCORDION ITEM CONTEXT\n ============================================================================ */\n\ninterface AccordionItemContextValue {\n value: string;\n isOpen: boolean;\n}\n\nconst AccordionItemContext = React.createContext<AccordionItemContextValue | null>(null);\n\nfunction useAccordionItemContext() {\n const ctx = React.useContext(AccordionItemContext);\n if (!ctx) {\n throw new Error('AccordionTrigger/AccordionContent must be used within <AccordionItem>');\n }\n return ctx;\n}\n\n/* ============================================================================\n ACCORDION ROOT\n ============================================================================ */\n\nexport interface AccordionProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Whether one or multiple items can be open at the same time. */\n type?: AccordionType;\n /** The value(s) of the item(s) that should be open by default. */\n defaultValue?: string[];\n /**\n * Whether a single-type accordion can have all items collapsed.\n * This is always true in the DS implementation (accepted for shadcn compat).\n */\n collapsible?: boolean;\n}\n\nexport const Accordion = React.forwardRef<HTMLDivElement, AccordionProps>(\n ({ className, type = 'single', defaultValue = [], collapsible: _collapsible, children, ...props }, ref) => {\n // Accepted for shadcn compat — always true in this DS implementation.\n void _collapsible;\n const [openItems, setOpenItems] = React.useState<Set<string>>(\n () => new Set(defaultValue),\n );\n\n const toggle = React.useCallback(\n (value: string) => {\n setOpenItems((prev) => {\n const next = new Set(prev);\n if (next.has(value)) {\n next.delete(value);\n } else {\n if (type === 'single') {\n next.clear();\n }\n next.add(value);\n }\n return next;\n });\n },\n [type],\n );\n\n const contextValue = React.useMemo(\n () => ({ openItems, toggle }),\n [openItems, toggle],\n );\n\n return (\n <AccordionContext.Provider value={contextValue}>\n <div ref={ref} className={clsx('ds-accordion', className)} {...props}>\n {children}\n </div>\n </AccordionContext.Provider>\n );\n },\n);\n\nAccordion.displayName = 'Accordion';\n\n/* ============================================================================\n ACCORDION ITEM\n ============================================================================ */\n\nexport interface AccordionItemProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Unique value identifying this item. */\n value: string;\n}\n\nexport const AccordionItem = React.forwardRef<HTMLDivElement, AccordionItemProps>(\n ({ className, value, children, ...props }, ref) => {\n const { openItems } = useAccordionContext();\n const isOpen = openItems.has(value);\n\n const contextValue = React.useMemo(\n () => ({ value, isOpen }),\n [value, isOpen],\n );\n\n return (\n <AccordionItemContext.Provider value={contextValue}>\n <div\n ref={ref}\n className={clsx('ds-accordion__item', className)}\n data-state={isOpen ? 'open' : 'closed'}\n {...props}\n >\n {children}\n </div>\n </AccordionItemContext.Provider>\n );\n },\n);\n\nAccordionItem.displayName = 'AccordionItem';\n\n/* ============================================================================\n ACCORDION TRIGGER\n ============================================================================ */\n\nexport type AccordionTriggerProps = React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const AccordionTrigger = React.forwardRef<\n HTMLButtonElement,\n AccordionTriggerProps\n>(({ className, children, onClick, ...props }, ref) => {\n const { toggle } = useAccordionContext();\n const { value, isOpen } = useAccordionItemContext();\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={clsx('ds-accordion__trigger', className)}\n aria-expanded={isOpen}\n {...props}\n onClick={(e) => {\n toggle(value);\n onClick?.(e);\n }}\n >\n <span className=\"ds-accordion__trigger-text\">{children}</span>\n <svg\n className=\"ds-accordion__chevron\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n </button>\n );\n});\n\nAccordionTrigger.displayName = 'AccordionTrigger';\n\n/* ============================================================================\n ACCORDION CONTENT\n ============================================================================ */\n\nexport type AccordionContentProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const AccordionContent = React.forwardRef<\n HTMLDivElement,\n AccordionContentProps\n>(({ className, children, ...props }, ref) => {\n const { isOpen } = useAccordionItemContext();\n const contentRef = React.useRef<HTMLDivElement>(null);\n const [height, setHeight] = React.useState<number | undefined>(\n isOpen ? undefined : 0,\n );\n\n React.useEffect(() => {\n const el = contentRef.current;\n if (!el) return;\n\n if (isOpen) {\n const scrollHeight = el.scrollHeight;\n setHeight(scrollHeight);\n // After the transition, remove the fixed height so content can reflow\n const timer = setTimeout(() => setHeight(undefined), 200);\n return () => clearTimeout(timer);\n } else {\n // First set the current height explicitly, then on next frame collapse to 0\n const scrollHeight = el.scrollHeight;\n setHeight(scrollHeight);\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n setHeight(0);\n });\n });\n }\n }, [isOpen]);\n\n return (\n <div\n ref={contentRef}\n className={clsx('ds-accordion__content', className)}\n style={{\n height: height !== undefined ? `${height}px` : 'auto',\n }}\n hidden={!isOpen && height === 0}\n {...props}\n >\n <div ref={ref} className=\"ds-accordion__content-inner\">\n {children}\n </div>\n </div>\n );\n});\n\nAccordionContent.displayName = 'AccordionContent';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Label.css';\n\nexport interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {\n /** Whether the associated input is disabled. */\n disabled?: boolean;\n}\n\n/**\n * Accessible label component for form inputs.\n *\n * @example\n * <Label htmlFor=\"email\">Email address</Label>\n * <Label disabled>Disabled field</Label>\n */\nexport const Label = React.forwardRef<HTMLLabelElement, LabelProps>(\n ({ className, disabled, ...props }, ref) => {\n return (\n <label\n ref={ref}\n className={clsx('ds-label', disabled && 'ds-label--disabled', className)}\n data-disabled={disabled || undefined}\n {...props}\n />\n );\n },\n);\n\nLabel.displayName = 'Label';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Skeleton.css';\n\nexport type SkeletonProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Loading placeholder with a shimmer animation.\n *\n * Apply `width` and `height` via `style` or a wrapping className to control size.\n *\n * @example\n * <Skeleton style={{ width: 200, height: 16 }} />\n * <Skeleton style={{ width: 40, height: 40, borderRadius: '50%' }} />\n */\nexport const Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clsx('ds-skeleton', className)}\n {...props}\n />\n );\n },\n);\n\nSkeleton.displayName = 'Skeleton';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Separator.css';\n\nexport interface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The orientation of the separator.\n * @default 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical';\n}\n\n/**\n * Visual divider to separate content sections.\n *\n * @example\n * <Separator />\n * <Separator orientation=\"vertical\" />\n */\nexport const Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n ({ className, orientation = 'horizontal', ...props }, ref) => {\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={orientation}\n className={clsx(\n 'ds-separator',\n `ds-separator--${orientation}`,\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nSeparator.displayName = 'Separator';\n","\"use client\";\n\nimport React from 'react';\nimport { createPortal } from 'react-dom';\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport './Sheet.css';\n\n/* ==========================================================================\n Context\n ========================================================================== */\n\ninterface SheetContextValue {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\nconst SheetContext = React.createContext<SheetContextValue | undefined>(undefined);\n\nfunction useSheetContext() {\n const ctx = React.useContext(SheetContext);\n if (!ctx) {\n throw new Error('Sheet compound components must be used within a <Sheet> parent.');\n }\n return ctx;\n}\n\n/* ==========================================================================\n Sheet (root)\n ========================================================================== */\n\nexport interface SheetProps {\n /** Controlled open state */\n open?: boolean;\n /** Callback fired when the open state changes */\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\n/**\n * Root wrapper that manages open/close state for a slide-over panel.\n *\n * @example\n * <Sheet>\n * <SheetTrigger>Open</SheetTrigger>\n * <SheetContent>…</SheetContent>\n * </Sheet>\n */\nexport const Sheet: React.FC<SheetProps> = ({ open: controlledOpen, onOpenChange, children }) => {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false);\n\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : uncontrolledOpen;\n\n const handleOpenChange = React.useCallback(\n (next: boolean) => {\n if (!isControlled) {\n setUncontrolledOpen(next);\n }\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange],\n );\n\n return (\n <SheetContext.Provider value={{ open, onOpenChange: handleOpenChange }}>\n {children}\n </SheetContext.Provider>\n );\n};\n\nSheet.displayName = 'Sheet';\n\n/* ==========================================================================\n SheetTrigger\n ========================================================================== */\n\nexport interface SheetTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** When true, renders the child as the root element via Radix Slot. */\n asChild?: boolean;\n}\n\nexport const SheetTrigger = React.forwardRef<HTMLButtonElement, SheetTriggerProps>(\n ({ onClick, asChild = false, ...props }, ref) => {\n const { onOpenChange } = useSheetContext();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n onOpenChange(true);\n onClick?.(e);\n };\n\n const Comp = asChild ? Slot : 'button';\n\n return <Comp ref={ref} type=\"button\" onClick={handleClick} {...props} />;\n },\n);\n\nSheetTrigger.displayName = 'SheetTrigger';\n\n/* ==========================================================================\n SheetClose\n ========================================================================== */\n\nexport interface SheetCloseProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** When true, renders the child as the root element via Radix Slot. */\n asChild?: boolean;\n}\n\nexport const SheetClose = React.forwardRef<HTMLButtonElement, SheetCloseProps>(\n ({ onClick, asChild = false, ...props }, ref) => {\n const { onOpenChange } = useSheetContext();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n onOpenChange(false);\n onClick?.(e);\n };\n\n const Comp = asChild ? Slot : 'button';\n\n return <Comp ref={ref} type=\"button\" onClick={handleClick} {...props} />;\n },\n);\n\nSheetClose.displayName = 'SheetClose';\n\n/* ==========================================================================\n SheetContent\n ========================================================================== */\n\nexport type SheetSide = 'top' | 'right' | 'bottom' | 'left';\n\nexport interface SheetContentProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Edge from which the panel slides in */\n side?: SheetSide;\n}\n\n/**\n * The slide-over panel itself. Renders via a React Portal to `document.body`.\n * Includes a backdrop overlay and the glass panel.\n */\nexport const SheetContent = React.forwardRef<HTMLDivElement, SheetContentProps>(\n ({ side = 'right', className, children, ...props }, ref) => {\n const { open, onOpenChange } = useSheetContext();\n\n if (!open) return null;\n\n return createPortal(\n <>\n <div\n className=\"ds-sheet__backdrop\"\n onClick={() => onOpenChange(false)}\n aria-hidden=\"true\"\n />\n <div\n ref={ref}\n role=\"dialog\"\n className={clsx('ds-sheet__content', `ds-sheet__content--${side}`, className)}\n {...props}\n >\n {children}\n </div>\n </>,\n document.body,\n );\n },\n);\n\nSheetContent.displayName = 'SheetContent';\n\n/* ==========================================================================\n SheetHeader\n ========================================================================== */\n\nexport const SheetHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-sheet__header', className)} {...props} />\n ),\n);\n\nSheetHeader.displayName = 'SheetHeader';\n\n/* ==========================================================================\n SheetTitle\n ========================================================================== */\n\nexport const SheetTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h2 ref={ref} className={clsx('ds-sheet__title', className)} {...props} />\n));\n\nSheetTitle.displayName = 'SheetTitle';\n\n/* ==========================================================================\n SheetDescription\n ========================================================================== */\n\nexport const SheetDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p ref={ref} className={clsx('ds-sheet__description', className)} {...props} />\n));\n\nSheetDescription.displayName = 'SheetDescription';\n\n/* ==========================================================================\n SheetFooter\n ========================================================================== */\n\nexport const SheetFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-sheet__footer', className)} {...props} />\n ),\n);\n\nSheetFooter.displayName = 'SheetFooter';\n","import React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport './Popover.css';\n\n/* ============================================================================\n POPOVER — Compound component with context-driven open state\n ============================================================================ */\n\ninterface PopoverContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n toggle: () => void;\n}\n\nconst PopoverContext = React.createContext<PopoverContextValue | null>(null);\n\nfunction usePopoverContext() {\n const context = React.useContext(PopoverContext);\n if (!context) {\n throw new Error('Popover compound components must be used within <Popover>');\n }\n return context;\n}\n\n/* --------------------------------------------------------------------------\n Popover (Root)\n -------------------------------------------------------------------------- */\n\nexport interface PopoverProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nexport const Popover: React.FC<PopoverProps> = ({ open: controlledOpen, onOpenChange, children }) => {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false);\n\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : uncontrolledOpen;\n\n const setOpen = React.useCallback(\n (value: boolean) => {\n if (!isControlled) {\n setUncontrolledOpen(value);\n }\n onOpenChange?.(value);\n },\n [isControlled, onOpenChange],\n );\n\n const toggle = React.useCallback(() => {\n setOpen(!open);\n }, [open, setOpen]);\n\n const contextValue = React.useMemo(\n () => ({ open, setOpen, toggle }),\n [open, setOpen, toggle],\n );\n\n return (\n <PopoverContext.Provider value={contextValue}>\n <div className=\"ds-popover\">{children}</div>\n </PopoverContext.Provider>\n );\n};\nPopover.displayName = 'Popover';\n\n/* --------------------------------------------------------------------------\n PopoverTrigger\n -------------------------------------------------------------------------- */\n\nexport interface PopoverTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** When true, renders the child as the root element via Radix Slot. */\n asChild?: boolean;\n}\n\nexport const PopoverTrigger = React.forwardRef<HTMLButtonElement, PopoverTriggerProps>(\n ({ className, onClick, asChild = false, ...props }, ref) => {\n const { toggle } = usePopoverContext();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n toggle();\n onClick?.(e);\n };\n\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n type=\"button\"\n className={clsx('ds-popover__trigger', className)}\n onClick={handleClick}\n {...props}\n />\n );\n },\n);\nPopoverTrigger.displayName = 'PopoverTrigger';\n\n/* --------------------------------------------------------------------------\n PopoverContent\n -------------------------------------------------------------------------- */\n\nexport interface PopoverContentProps extends React.HTMLAttributes<HTMLDivElement> {\n side?: 'top' | 'right' | 'bottom' | 'left';\n align?: 'start' | 'center' | 'end';\n}\n\nexport const PopoverContent = React.forwardRef<HTMLDivElement, PopoverContentProps>(\n ({ className, side = 'bottom', align = 'center', ...props }, ref) => {\n const { open } = usePopoverContext();\n\n if (!open) return null;\n\n return (\n <div\n ref={ref}\n className={clsx(\n 'ds-popover__content',\n `ds-popover__content--${side}`,\n `ds-popover__content--align-${align}`,\n className,\n )}\n {...props}\n />\n );\n },\n);\nPopoverContent.displayName = 'PopoverContent';\n\n/* --------------------------------------------------------------------------\n PopoverClose\n -------------------------------------------------------------------------- */\n\nexport const PopoverClose = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, onClick, ...props }, ref) => {\n const { setOpen } = usePopoverContext();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n setOpen(false);\n onClick?.(e);\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={clsx('ds-popover__close', className)}\n onClick={handleClick}\n {...props}\n />\n );\n});\nPopoverClose.displayName = 'PopoverClose';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Progress.css';\n\n/* ============================================================================\n PROGRESS — Accessible progress bar indicator\n ============================================================================ */\n\nexport interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Current progress value (0–100 by default). */\n value?: number;\n /** Maximum value. Defaults to 100. */\n max?: number;\n}\n\nexport const Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value = 0, max = 100, ...props }, ref) => {\n const percentage = max > 0 ? Math.min(100, Math.max(0, (value / max) * 100)) : 0;\n\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={max}\n className={clsx('ds-progress', className)}\n {...props}\n >\n <div\n className=\"ds-progress__indicator\"\n style={{ width: `${percentage}%` }}\n />\n </div>\n );\n },\n);\nProgress.displayName = 'Progress';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './ScrollArea.css';\n\nexport interface ScrollAreaProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The content to render inside the scrollable viewport.\n */\n children?: React.ReactNode;\n}\n\n/**\n * Custom scrollbar container with styled scrollbars via CSS.\n *\n * @example\n * <ScrollArea style={{ height: 200 }}>\n * <p>Long content here...</p>\n * </ScrollArea>\n */\nexport const ScrollArea = React.forwardRef<HTMLDivElement, ScrollAreaProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div ref={ref} className={clsx('ds-scroll-area', className)} {...props}>\n <div className=\"ds-scroll-area__viewport\">{children}</div>\n </div>\n );\n },\n);\n\nScrollArea.displayName = 'ScrollArea';\n\nexport interface ScrollBarProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The orientation of the scrollbar.\n * @default 'vertical'\n */\n orientation?: 'vertical' | 'horizontal';\n}\n\n/**\n * Optional decorative scrollbar indicator.\n * The main ScrollArea works standalone with CSS-only custom scrollbars.\n */\nexport const ScrollBar = React.forwardRef<HTMLDivElement, ScrollBarProps>(\n ({ className, orientation = 'vertical', ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clsx(\n 'ds-scroll-area__scrollbar',\n `ds-scroll-area__scrollbar--${orientation}`,\n className,\n )}\n {...props}\n />\n );\n },\n);\n\nScrollBar.displayName = 'ScrollBar';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Toggle.css';\n\nexport interface ToggleProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Whether the toggle is currently pressed. */\n pressed?: boolean;\n /** Callback fired when the pressed state changes. */\n onPressedChange?: (pressed: boolean) => void;\n /** Visual style variant. */\n variant?: 'default' | 'outline';\n /** Size of the toggle button. */\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport const Toggle = React.forwardRef<HTMLButtonElement, ToggleProps>(\n (\n {\n className,\n pressed: controlledPressed,\n onPressedChange,\n variant = 'default',\n size = 'md',\n onClick,\n ...props\n },\n ref,\n ) => {\n const [uncontrolledPressed, setUncontrolledPressed] = React.useState(false);\n\n const isControlled = controlledPressed !== undefined;\n const pressed = isControlled ? controlledPressed : uncontrolledPressed;\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n const next = !pressed;\n if (!isControlled) {\n setUncontrolledPressed(next);\n }\n onPressedChange?.(next);\n onClick?.(e);\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={clsx(\n 'ds-toggle',\n `ds-toggle--${variant}`,\n `ds-toggle--${size}`,\n className,\n )}\n aria-pressed={pressed}\n data-state={pressed ? 'on' : 'off'}\n onClick={handleClick}\n {...props}\n />\n );\n },\n);\n\nToggle.displayName = 'Toggle';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Collapsible.css';\n\n/* ============================================================================\n COLLAPSIBLE — Compound component with context-driven open state\n ============================================================================ */\n\ninterface CollapsibleContextValue {\n open: boolean;\n toggle: () => void;\n}\n\nconst CollapsibleContext = React.createContext<CollapsibleContextValue | null>(null);\n\nfunction useCollapsibleContext() {\n const context = React.useContext(CollapsibleContext);\n if (!context) {\n throw new Error('Collapsible compound components must be used within <Collapsible>');\n }\n return context;\n}\n\n/* --------------------------------------------------------------------------\n Collapsible (Root)\n -------------------------------------------------------------------------- */\n\nexport interface CollapsibleProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Whether the collapsible is open (controlled). */\n open?: boolean;\n /** Callback fired when the open state changes. */\n onOpenChange?: (open: boolean) => void;\n}\n\nexport const Collapsible = React.forwardRef<HTMLDivElement, CollapsibleProps>(\n ({ className, open: controlledOpen, onOpenChange, children, ...props }, ref) => {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false);\n\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : uncontrolledOpen;\n\n const toggle = React.useCallback(() => {\n const next = !open;\n if (!isControlled) {\n setUncontrolledOpen(next);\n }\n onOpenChange?.(next);\n }, [open, isControlled, onOpenChange]);\n\n const contextValue = React.useMemo(\n () => ({ open, toggle }),\n [open, toggle],\n );\n\n return (\n <CollapsibleContext.Provider value={contextValue}>\n <div\n ref={ref}\n className={clsx('ds-collapsible', className)}\n data-state={open ? 'open' : 'closed'}\n {...props}\n >\n {children}\n </div>\n </CollapsibleContext.Provider>\n );\n },\n);\n\nCollapsible.displayName = 'Collapsible';\n\n/* --------------------------------------------------------------------------\n CollapsibleTrigger\n -------------------------------------------------------------------------- */\n\nexport const CollapsibleTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, onClick, ...props }, ref) => {\n const { toggle } = useCollapsibleContext();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n toggle();\n onClick?.(e);\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={clsx('ds-collapsible__trigger', className)}\n onClick={handleClick}\n {...props}\n />\n );\n});\n\nCollapsibleTrigger.displayName = 'CollapsibleTrigger';\n\n/* --------------------------------------------------------------------------\n CollapsibleContent\n -------------------------------------------------------------------------- */\n\nexport const CollapsibleContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, children, ...props }, ref) => {\n const { open } = useCollapsibleContext();\n const contentRef = React.useRef<HTMLDivElement>(null);\n const [maxHeight, setMaxHeight] = React.useState<number | undefined>(\n open ? undefined : 0,\n );\n\n React.useEffect(() => {\n const el = contentRef.current;\n if (!el) return;\n\n if (open) {\n const scrollHeight = el.scrollHeight;\n setMaxHeight(scrollHeight);\n const timer = setTimeout(() => setMaxHeight(undefined), 200);\n return () => clearTimeout(timer);\n } else {\n const scrollHeight = el.scrollHeight;\n setMaxHeight(scrollHeight);\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n setMaxHeight(0);\n });\n });\n }\n }, [open]);\n\n return (\n <div\n ref={contentRef}\n className={clsx('ds-collapsible__content', className)}\n data-state={open ? 'open' : 'closed'}\n style={{\n maxHeight: maxHeight !== undefined ? `${maxHeight}px` : 'none',\n }}\n hidden={!open && maxHeight === 0}\n {...props}\n >\n <div ref={ref} className=\"ds-collapsible__content-inner\">\n {children}\n </div>\n </div>\n );\n});\n\nCollapsibleContent.displayName = 'CollapsibleContent';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './HoverCard.css';\n\n/* ============================================================================\n HOVERCARD — Compound component with hover-driven open state\n ============================================================================ */\n\ninterface HoverCardContextValue {\n open: boolean;\n onOpen: () => void;\n onClose: () => void;\n}\n\nconst HoverCardContext = React.createContext<HoverCardContextValue | null>(null);\n\nfunction useHoverCardContext() {\n const context = React.useContext(HoverCardContext);\n if (!context) {\n throw new Error('HoverCard compound components must be used within <HoverCard>');\n }\n return context;\n}\n\n/* --------------------------------------------------------------------------\n HoverCard (Root)\n -------------------------------------------------------------------------- */\n\nexport interface HoverCardProps {\n /** Delay in ms before opening. */\n openDelay?: number;\n /** Delay in ms before closing. */\n closeDelay?: number;\n children: React.ReactNode;\n}\n\nexport const HoverCard: React.FC<HoverCardProps> = ({\n openDelay = 200,\n closeDelay = 100,\n children,\n}) => {\n const [open, setOpen] = React.useState(false);\n const openTimerRef = React.useRef<ReturnType<typeof setTimeout>>();\n const closeTimerRef = React.useRef<ReturnType<typeof setTimeout>>();\n\n const onOpen = React.useCallback(() => {\n clearTimeout(closeTimerRef.current);\n openTimerRef.current = setTimeout(() => setOpen(true), openDelay);\n }, [openDelay]);\n\n const onClose = React.useCallback(() => {\n clearTimeout(openTimerRef.current);\n closeTimerRef.current = setTimeout(() => setOpen(false), closeDelay);\n }, [closeDelay]);\n\n React.useEffect(() => {\n return () => {\n clearTimeout(openTimerRef.current);\n clearTimeout(closeTimerRef.current);\n };\n }, []);\n\n const contextValue = React.useMemo(\n () => ({ open, onOpen, onClose }),\n [open, onOpen, onClose],\n );\n\n return (\n <HoverCardContext.Provider value={contextValue}>\n <div className=\"ds-hover-card\">{children}</div>\n </HoverCardContext.Provider>\n );\n};\n\nHoverCard.displayName = 'HoverCard';\n\n/* --------------------------------------------------------------------------\n HoverCardTrigger\n -------------------------------------------------------------------------- */\n\nexport const HoverCardTrigger = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, onMouseEnter, onMouseLeave, ...props }, ref) => {\n const { onOpen, onClose } = useHoverCardContext();\n\n const handleMouseEnter = (e: React.MouseEvent<HTMLSpanElement>) => {\n onOpen();\n onMouseEnter?.(e);\n };\n\n const handleMouseLeave = (e: React.MouseEvent<HTMLSpanElement>) => {\n onClose();\n onMouseLeave?.(e);\n };\n\n return (\n <span\n ref={ref}\n className={clsx('ds-hover-card__trigger', className)}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n {...props}\n />\n );\n});\n\nHoverCardTrigger.displayName = 'HoverCardTrigger';\n\n/* --------------------------------------------------------------------------\n HoverCardContent\n -------------------------------------------------------------------------- */\n\nexport interface HoverCardContentProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Which side to position the card. */\n side?: 'top' | 'right' | 'bottom' | 'left';\n /** Alignment of the card relative to the trigger. */\n align?: 'start' | 'center' | 'end';\n}\n\nexport const HoverCardContent = React.forwardRef<HTMLDivElement, HoverCardContentProps>(\n ({ className, side = 'bottom', align = 'center', onMouseEnter, onMouseLeave, ...props }, ref) => {\n const { open, onOpen, onClose } = useHoverCardContext();\n\n const handleMouseEnter = (e: React.MouseEvent<HTMLDivElement>) => {\n onOpen();\n onMouseEnter?.(e);\n };\n\n const handleMouseLeave = (e: React.MouseEvent<HTMLDivElement>) => {\n onClose();\n onMouseLeave?.(e);\n };\n\n if (!open) return null;\n\n return (\n <div\n ref={ref}\n className={clsx(\n 'ds-hover-card__content',\n `ds-hover-card__content--${side}`,\n `ds-hover-card__content--align-${align}`,\n className,\n )}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n {...props}\n />\n );\n },\n);\n\nHoverCardContent.displayName = 'HoverCardContent';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './AspectRatio.css';\n\nexport interface AspectRatioProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The desired width-to-height ratio (e.g. 16/9, 4/3, 1).\n * @default 1\n */\n ratio?: number;\n}\n\n/**\n * Maintains a fixed aspect ratio for its child content using the\n * padding-bottom technique.\n *\n * @example\n * <AspectRatio ratio={16 / 9}>\n * <img src=\"photo.jpg\" alt=\"Landscape\" />\n * </AspectRatio>\n */\nexport const AspectRatio = React.forwardRef<HTMLDivElement, AspectRatioProps>(\n ({ className, ratio = 1, style, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clsx('ds-aspect-ratio', className)}\n style={{ ...style, paddingBottom: `${(1 / ratio) * 100}%` }}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\n\nAspectRatio.displayName = 'AspectRatio';\n","import React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport './Pagination.css';\n\n/* ==========================================================================\n Pagination (nav)\n ========================================================================== */\n\nexport interface PaginationProps extends React.HTMLAttributes<HTMLElement> {\n /** Override the default aria-label for the nav element. */\n 'aria-label'?: string;\n}\n\n/**\n * Root navigation element for paginated content.\n *\n * @example\n * <Pagination>\n * <PaginationContent>\n * <PaginationItem><PaginationPrevious /></PaginationItem>\n * <PaginationItem><PaginationLink isActive>1</PaginationLink></PaginationItem>\n * <PaginationItem><PaginationNext /></PaginationItem>\n * </PaginationContent>\n * </Pagination>\n */\nexport const Pagination = React.forwardRef<HTMLElement, PaginationProps>(\n ({ className, 'aria-label': ariaLabel = 'pagination', ...props }, ref) => {\n return (\n <nav\n ref={ref}\n role=\"navigation\"\n aria-label={ariaLabel}\n className={clsx('ds-pagination', className)}\n {...props}\n />\n );\n },\n);\n\nPagination.displayName = 'Pagination';\n\n/* ==========================================================================\n PaginationContent (ul)\n ========================================================================== */\n\nexport type PaginationContentProps = React.HTMLAttributes<HTMLUListElement>;\n\nexport const PaginationContent = React.forwardRef<\n HTMLUListElement,\n PaginationContentProps\n>(({ className, ...props }, ref) => {\n return (\n <ul\n ref={ref}\n className={clsx('ds-pagination__content', className)}\n {...props}\n />\n );\n});\n\nPaginationContent.displayName = 'PaginationContent';\n\n/* ==========================================================================\n PaginationItem (li)\n ========================================================================== */\n\nexport type PaginationItemProps = React.LiHTMLAttributes<HTMLLIElement>;\n\nexport const PaginationItem = React.forwardRef<\n HTMLLIElement,\n PaginationItemProps\n>(({ className, ...props }, ref) => {\n return (\n <li\n ref={ref}\n className={clsx('ds-pagination__item', className)}\n {...props}\n />\n );\n});\n\nPaginationItem.displayName = 'PaginationItem';\n\n/* ==========================================================================\n PaginationLink (button | Slot)\n ========================================================================== */\n\nexport interface PaginationLinkProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Highlight this link as the current page. */\n isActive?: boolean;\n /** Size variant. */\n size?: 'sm' | 'md';\n /** Render as child element via Radix Slot (e.g. anchor). */\n asChild?: boolean;\n}\n\nexport const PaginationLink = React.forwardRef<\n HTMLButtonElement,\n PaginationLinkProps\n>(({ className, isActive = false, size = 'md', asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n aria-current={isActive ? 'page' : undefined}\n className={clsx(\n 'ds-pagination__link',\n `ds-pagination__link--${size}`,\n isActive && 'ds-pagination__link--active',\n className,\n )}\n {...props}\n />\n );\n});\n\nPaginationLink.displayName = 'PaginationLink';\n\n/* ==========================================================================\n PaginationPrevious\n ========================================================================== */\n\nexport interface PaginationPreviousProps\n extends React.ComponentPropsWithoutRef<typeof PaginationLink> {\n /** Visible label text. @default \"Previous\" */\n label?: string;\n}\n\nexport const PaginationPrevious = React.forwardRef<\n HTMLButtonElement,\n PaginationPreviousProps\n>(({ className, label = 'Previous', 'aria-label': ariaLabel = 'Go to previous page', ...props }, ref) => {\n return (\n <PaginationLink\n ref={ref}\n aria-label={ariaLabel}\n className={clsx('ds-pagination__prev', className)}\n {...props}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n <span>{label}</span>\n </PaginationLink>\n );\n});\n\nPaginationPrevious.displayName = 'PaginationPrevious';\n\n/* ==========================================================================\n PaginationNext\n ========================================================================== */\n\nexport interface PaginationNextProps\n extends React.ComponentPropsWithoutRef<typeof PaginationLink> {\n /** Visible label text. @default \"Next\" */\n label?: string;\n}\n\nexport const PaginationNext = React.forwardRef<\n HTMLButtonElement,\n PaginationNextProps\n>(({ className, label = 'Next', 'aria-label': ariaLabel = 'Go to next page', ...props }, ref) => {\n return (\n <PaginationLink\n ref={ref}\n aria-label={ariaLabel}\n className={clsx('ds-pagination__next', className)}\n {...props}\n >\n <span>{label}</span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n </PaginationLink>\n );\n});\n\nPaginationNext.displayName = 'PaginationNext';\n\n/* ==========================================================================\n PaginationEllipsis\n ========================================================================== */\n\nexport type PaginationEllipsisProps = React.HTMLAttributes<HTMLSpanElement>;\n\nexport const PaginationEllipsis = React.forwardRef<\n HTMLSpanElement,\n PaginationEllipsisProps\n>(({ className, ...props }, ref) => {\n return (\n <span\n ref={ref}\n aria-hidden=\"true\"\n className={clsx('ds-pagination__ellipsis', className)}\n {...props}\n >\n ...\n </span>\n );\n});\n\nPaginationEllipsis.displayName = 'PaginationEllipsis';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Typography.css';\n\n/* ==========================================================================\n Heading\n ========================================================================== */\n\ntype HeadingLevel = 'display' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\ntype HeadingElement = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span' | 'div';\n\nconst levelToElement: Record<HeadingLevel, HeadingElement> = {\n display: 'h1',\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n};\n\nexport interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {\n /**\n * The visual hierarchy level.\n * @default 'h2'\n */\n level?: HeadingLevel;\n /**\n * Override the rendered HTML element.\n * Defaults to the element matching `level`.\n */\n as?: HeadingElement;\n}\n\n/**\n * Semantic heading component with consistent typographic styles.\n *\n * @example\n * <Heading level=\"h1\">Page Title</Heading>\n * <Heading level=\"display\" as=\"h2\">Hero Text</Heading>\n */\nexport const Heading = React.forwardRef<HTMLHeadingElement, HeadingProps>(\n ({ className, level = 'h2', as, children, ...props }, ref) => {\n const Comp = (as ?? levelToElement[level]) as React.ElementType;\n\n return (\n <Comp\n ref={ref}\n className={clsx('ds-heading', `ds-heading--${level}`, className)}\n {...props}\n >\n {children}\n </Comp>\n );\n },\n);\n\nHeading.displayName = 'Heading';\n\n/* ==========================================================================\n Text\n ========================================================================== */\n\ntype TextVariant = 'lead' | 'body' | 'small' | 'muted';\ntype TextElement = 'p' | 'span' | 'div' | 'label';\n\nexport interface TextProps extends React.HTMLAttributes<HTMLParagraphElement> {\n /**\n * The typographic variant.\n * @default 'body'\n */\n variant?: TextVariant;\n /**\n * Override the rendered HTML element.\n * @default 'p'\n */\n as?: TextElement;\n}\n\n/**\n * Body text component for consistent typographic styles.\n *\n * @example\n * <Text>Default body text</Text>\n * <Text variant=\"lead\">Introductory paragraph</Text>\n * <Text variant=\"small\" as=\"span\">Fine print</Text>\n */\nexport const Text = React.forwardRef<HTMLParagraphElement, TextProps>(\n ({ className, variant = 'body', as = 'p', children, ...props }, ref) => {\n const Comp = as as React.ElementType;\n\n return (\n <Comp\n ref={ref}\n className={clsx('ds-text', `ds-text--${variant}`, className)}\n {...props}\n >\n {children}\n </Comp>\n );\n },\n);\n\nText.displayName = 'Text';\n\n/* ==========================================================================\n Prose\n ========================================================================== */\n\nexport type ProseProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Wrapper for long-form content (articles, docs). Applies typographic styles\n * to child elements (headings, paragraphs, lists, code, etc.) using DS tokens.\n *\n * @example\n * <Prose>\n * <h1>Article Title</h1>\n * <p>Introduction paragraph...</p>\n * </Prose>\n */\nexport const Prose = React.forwardRef<HTMLDivElement, ProseProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clsx('ds-prose', className)}\n {...props}\n >\n {children}\n </div>\n );\n },\n);\n\nProse.displayName = 'Prose';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Carousel.css';\n\n/* ==========================================================================\n Context\n ========================================================================== */\n\ninterface CarouselContextValue {\n scrollRef: React.RefObject<HTMLDivElement | null>;\n}\n\nconst CarouselContext = React.createContext<CarouselContextValue | undefined>(undefined);\n\nfunction useCarouselContext() {\n const ctx = React.useContext(CarouselContext);\n if (!ctx) {\n throw new Error('Carousel compound components must be used within a <Carousel> parent.');\n }\n return ctx;\n}\n\n/* ==========================================================================\n Carousel (root)\n ========================================================================== */\n\n/**\n * Root container for a horizontal scroll-snap carousel.\n *\n * @example\n * <Carousel>\n * <CarouselContent>\n * <CarouselItem>Slide 1</CarouselItem>\n * <CarouselItem>Slide 2</CarouselItem>\n * </CarouselContent>\n * <CarouselPrevious />\n * <CarouselNext />\n * </Carousel>\n */\nexport const Carousel = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => {\n const scrollRef = React.useRef<HTMLDivElement>(null);\n\n return (\n <CarouselContext.Provider value={{ scrollRef }}>\n <div ref={ref} className={clsx('ds-carousel', className)} {...props}>\n {children}\n </div>\n </CarouselContext.Provider>\n );\n },\n);\n\nCarousel.displayName = 'Carousel';\n\n/* ==========================================================================\n CarouselContent\n ========================================================================== */\n\nexport const CarouselContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const { scrollRef } = useCarouselContext();\n\n // Merge external ref with internal scroll ref\n const mergedRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n (scrollRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }\n },\n [ref, scrollRef],\n );\n\n return <div ref={mergedRef} className={clsx('ds-carousel__content', className)} {...props} />;\n});\n\nCarouselContent.displayName = 'CarouselContent';\n\n/* ==========================================================================\n CarouselItem\n ========================================================================== */\n\nexport const CarouselItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-carousel__item', className)} {...props} />\n ),\n);\n\nCarouselItem.displayName = 'CarouselItem';\n\n/* ==========================================================================\n CarouselPrevious\n ========================================================================== */\n\nexport interface CarouselPreviousProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Override the default aria-label. @default \"Previous slide\" */\n 'aria-label'?: string;\n}\n\nexport const CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n CarouselPreviousProps\n>(({ className, onClick, children, 'aria-label': ariaLabel = 'Previous slide', ...props }, ref) => {\n const { scrollRef } = useCarouselContext();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n const container = scrollRef.current;\n if (container) {\n const firstItem = container.querySelector('.ds-carousel__item');\n const scrollAmount = firstItem ? firstItem.clientWidth : container.clientWidth;\n container.scrollBy({ left: -scrollAmount, behavior: 'smooth' });\n }\n onClick?.(e);\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={clsx('ds-carousel__prev', className)}\n aria-label={ariaLabel}\n onClick={handleClick}\n {...props}\n >\n {children ?? (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M10 12L6 8L10 4\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </button>\n );\n});\n\nCarouselPrevious.displayName = 'CarouselPrevious';\n\n/* ==========================================================================\n CarouselNext\n ========================================================================== */\n\nexport interface CarouselNextProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Override the default aria-label. @default \"Next slide\" */\n 'aria-label'?: string;\n}\n\nexport const CarouselNext = React.forwardRef<\n HTMLButtonElement,\n CarouselNextProps\n>(({ className, onClick, children, 'aria-label': ariaLabel = 'Next slide', ...props }, ref) => {\n const { scrollRef } = useCarouselContext();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n const container = scrollRef.current;\n if (container) {\n const firstItem = container.querySelector('.ds-carousel__item');\n const scrollAmount = firstItem ? firstItem.clientWidth : container.clientWidth;\n container.scrollBy({ left: scrollAmount, behavior: 'smooth' });\n }\n onClick?.(e);\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n className={clsx('ds-carousel__next', className)}\n aria-label={ariaLabel}\n onClick={handleClick}\n {...props}\n >\n {children ?? (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M6 4L10 8L6 12\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </button>\n );\n});\n\nCarouselNext.displayName = 'CarouselNext';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Command.css';\n\n/* ==========================================================================\n Utilities\n ========================================================================== */\n\nfunction mergeRefs<T>(...refs: (React.Ref<T> | undefined | null)[]) {\n return (node: T | null) => {\n refs.forEach((ref) => {\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<T | null>).current = node;\n });\n };\n}\n\n/* ==========================================================================\n Context\n ========================================================================== */\n\ninterface CommandContextValue {\n search: string;\n setSearch: (value: string) => void;\n activeId: string | null;\n setActiveId: React.Dispatch<React.SetStateAction<string | null>>;\n listRef: React.RefObject<HTMLDivElement | null>;\n inputId: string;\n listId: string;\n}\n\nconst CommandContext = React.createContext<CommandContextValue | undefined>(undefined);\n\nfunction useCommandContext() {\n const ctx = React.useContext(CommandContext);\n if (!ctx) {\n throw new Error('Command compound components must be used within a <Command> parent.');\n }\n return ctx;\n}\n\n/* ==========================================================================\n Internal: query visible option elements\n ========================================================================== */\n\nfunction getOptionElements(listEl: HTMLElement | null): HTMLElement[] {\n if (!listEl) return [];\n return Array.from(listEl.querySelectorAll<HTMLElement>('[role=\"option\"]'));\n}\n\n/* ==========================================================================\n Command (root)\n ========================================================================== */\n\nexport interface CommandProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Optional controlled search value */\n value?: string;\n /** Callback when search value changes */\n onValueChange?: (value: string) => void;\n}\n\n/**\n * Command palette root. Manages search state, keyboard navigation, and\n * active-item tracking for filtering items.\n *\n * **Keyboard navigation (built-in):**\n * - `ArrowDown` / `ArrowUp` — move active highlight between items\n * - `Enter` — activate the highlighted item\n * - `Home` / `End` — jump to first / last item\n * - `Escape` — clear search (when used standalone)\n *\n * @example\n * <Command>\n * <CommandInput placeholder=\"Search…\" />\n * <CommandList>\n * <CommandGroup heading=\"Actions\">\n * <CommandItem onSelect={() => {}}>Do something</CommandItem>\n * </CommandGroup>\n * <CommandEmpty>No results found.</CommandEmpty>\n * </CommandList>\n * </Command>\n */\nexport const Command = React.forwardRef<HTMLDivElement, CommandProps>(\n ({ className, value: controlledValue, onValueChange, onKeyDown, children, ...props }, ref) => {\n const [uncontrolledValue, setUncontrolledValue] = React.useState('');\n const [activeId, setActiveId] = React.useState<string | null>(null);\n const listRef = React.useRef<HTMLDivElement | null>(null);\n\n const isControlled = controlledValue !== undefined;\n const search = isControlled ? controlledValue : uncontrolledValue;\n\n const inputId = React.useId();\n const listId = React.useId();\n\n const setSearch = React.useCallback(\n (next: string) => {\n if (!isControlled) {\n setUncontrolledValue(next);\n }\n onValueChange?.(next);\n },\n [isControlled, onValueChange],\n );\n\n // Auto-activate the first item when search changes or items re-render\n React.useEffect(() => {\n const frame = requestAnimationFrame(() => {\n const items = getOptionElements(listRef.current);\n if (items.length > 0) {\n setActiveId(items[0].id);\n } else {\n setActiveId(null);\n }\n });\n return () => cancelAnimationFrame(frame);\n }, [search]);\n\n // Keyboard navigation handler\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLDivElement>) => {\n const items = getOptionElements(listRef.current);\n if (items.length === 0) {\n onKeyDown?.(e);\n return;\n }\n\n const currentIndex = items.findIndex((el) => el.id === activeId);\n\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault();\n const nextIndex = currentIndex < items.length - 1 ? currentIndex + 1 : 0;\n setActiveId(items[nextIndex].id);\n items[nextIndex].scrollIntoView?.({ block: 'nearest' });\n break;\n }\n case 'ArrowUp': {\n e.preventDefault();\n const prevIndex = currentIndex > 0 ? currentIndex - 1 : items.length - 1;\n setActiveId(items[prevIndex].id);\n items[prevIndex].scrollIntoView?.({ block: 'nearest' });\n break;\n }\n case 'Home': {\n e.preventDefault();\n setActiveId(items[0].id);\n items[0].scrollIntoView?.({ block: 'nearest' });\n break;\n }\n case 'End': {\n e.preventDefault();\n const lastItem = items[items.length - 1];\n setActiveId(lastItem.id);\n lastItem.scrollIntoView?.({ block: 'nearest' });\n break;\n }\n case 'Enter': {\n // Only handle Enter from the input — items handle their own Enter via onKeyDown\n const target = e.target as HTMLElement;\n if (target.getAttribute('role') === 'option') break;\n\n const activeEl = activeId ? document.getElementById(activeId) : null;\n if (activeEl) {\n e.preventDefault();\n activeEl.click();\n }\n break;\n }\n default:\n break;\n }\n\n onKeyDown?.(e);\n },\n [activeId, onKeyDown],\n );\n\n const ctx = React.useMemo<CommandContextValue>(\n () => ({ search, setSearch, activeId, setActiveId, listRef, inputId, listId }),\n [search, setSearch, activeId, inputId, listId],\n );\n\n return (\n <CommandContext.Provider value={ctx}>\n <div\n ref={ref}\n className={clsx('ds-command', className)}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {children}\n </div>\n </CommandContext.Provider>\n );\n },\n);\n\nCommand.displayName = 'Command';\n\n/* ==========================================================================\n CommandInput\n ========================================================================== */\n\nexport const CommandInput = React.forwardRef<\n HTMLInputElement,\n React.InputHTMLAttributes<HTMLInputElement>\n>(({ className, onChange, ...props }, ref) => {\n const { search, setSearch, activeId, inputId, listId } = useCommandContext();\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearch(e.target.value);\n onChange?.(e);\n };\n\n return (\n <div className=\"ds-command__input-wrapper\">\n <svg\n className=\"ds-command__input-icon\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <circle cx=\"7\" cy=\"7\" r=\"5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path\n d=\"M11 11L14 14\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n <input\n ref={ref}\n id={inputId}\n type=\"text\"\n role=\"combobox\"\n aria-expanded=\"true\"\n aria-controls={listId}\n aria-activedescendant={activeId ?? undefined}\n aria-autocomplete=\"list\"\n autoComplete=\"off\"\n className={clsx('ds-command__input', className)}\n value={search}\n onChange={handleChange}\n {...props}\n />\n </div>\n );\n});\n\nCommandInput.displayName = 'CommandInput';\n\n/* ==========================================================================\n CommandList\n ========================================================================== */\n\nexport const CommandList = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { listRef, listId } = useCommandContext();\n\n return (\n <div\n ref={mergeRefs(ref, listRef)}\n id={listId}\n role=\"listbox\"\n className={clsx('ds-command__list', className)}\n {...props}\n />\n );\n },\n);\n\nCommandList.displayName = 'CommandList';\n\n/* ==========================================================================\n CommandEmpty\n ========================================================================== */\n\nexport const CommandEmpty = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-command__empty', className)} {...props} />\n ),\n);\n\nCommandEmpty.displayName = 'CommandEmpty';\n\n/* ==========================================================================\n CommandGroup\n ========================================================================== */\n\nexport interface CommandGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Optional heading label for the group */\n heading?: string;\n}\n\nexport const CommandGroup = React.forwardRef<HTMLDivElement, CommandGroupProps>(\n ({ className, heading, children, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-command__group', className)} {...props}>\n {heading && <div className=\"ds-command__group-heading\">{heading}</div>}\n {children}\n </div>\n ),\n);\n\nCommandGroup.displayName = 'CommandGroup';\n\n/* ==========================================================================\n CommandItem\n ========================================================================== */\n\nexport interface CommandItemProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Callback fired when the item is selected (click or Enter) */\n onSelect?: () => void;\n}\n\nexport const CommandItem = React.forwardRef<HTMLDivElement, CommandItemProps>(\n ({ className, onSelect, onClick, onKeyDown, onPointerEnter, id: externalId, ...props }, ref) => {\n const generatedId = React.useId();\n const { activeId, setActiveId } = useCommandContext();\n const itemId = externalId || generatedId;\n const isActive = activeId === itemId;\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n onSelect?.();\n onClick?.(e);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter') {\n onSelect?.();\n }\n onKeyDown?.(e);\n };\n\n const handlePointerEnter = (e: React.PointerEvent<HTMLDivElement>) => {\n setActiveId(itemId);\n onPointerEnter?.(e);\n };\n\n return (\n <div\n ref={ref}\n id={itemId}\n role=\"option\"\n tabIndex={0}\n aria-selected={isActive}\n data-active={isActive || undefined}\n className={clsx('ds-command__item', className)}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onPointerEnter={handlePointerEnter}\n {...props}\n />\n );\n },\n);\n\nCommandItem.displayName = 'CommandItem';\n\n/* ==========================================================================\n CommandSeparator\n ========================================================================== */\n\nexport const CommandSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-command__separator', className)} {...props} />\n));\n\nCommandSeparator.displayName = 'CommandSeparator';\n","import React from 'react';\nimport clsx from 'clsx';\nimport { Dialog, DialogContent, DialogTitle } from '../Dialog/Dialog';\n\n/**\n * CommandDialog — Pre-composed Dialog + Command wrapper for\n * building command palettes, site search overlays, and Cmd+K interfaces.\n *\n * Renders a Dialog with zero padding (so the Command component fills the panel)\n * and a visually-hidden accessible title.\n *\n * @example\n * ```tsx\n * const [open, setOpen] = React.useState(false);\n *\n * <CommandDialog open={open} onOpenChange={setOpen}>\n * <Command>\n * <CommandInput placeholder=\"Search…\" />\n * <CommandList>\n * <CommandGroup heading=\"Pages\">\n * <CommandItem onSelect={() => navigate('/home')}>Home</CommandItem>\n * </CommandGroup>\n * <CommandEmpty>No results found.</CommandEmpty>\n * </CommandList>\n * </Command>\n * </CommandDialog>\n * ```\n */\n\nexport interface CommandDialogProps {\n /** Whether the dialog is open (controlled) */\n open?: boolean;\n /** Called when open state changes (Escape, backdrop click, etc.) */\n onOpenChange?: (open: boolean) => void;\n /** Accessible title for screen readers (visually hidden) */\n title?: string;\n /** Size variant: sm (360px), md (480px, default), lg (640px), xl (800px) */\n size?: 'sm' | 'md' | 'lg' | 'xl';\n /** Additional className for the dialog content panel */\n className?: string;\n children: React.ReactNode;\n}\n\nconst SIZE_CLASSES: Record<string, string> = {\n sm: 'ds-dialog__content--sm',\n lg: 'ds-dialog__content--lg',\n xl: 'ds-dialog__content--xl',\n};\n\nexport const CommandDialog: React.FC<CommandDialogProps> = ({\n open,\n onOpenChange,\n title = 'Search',\n size = 'lg',\n className,\n children,\n}) => (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent\n className={clsx('ds-command-dialog', SIZE_CLASSES[size], className)}\n >\n <DialogTitle className=\"ds-command-dialog__sr-title\">{title}</DialogTitle>\n {children}\n </DialogContent>\n </Dialog>\n);\n\nCommandDialog.displayName = 'CommandDialog';\n","import React from 'react';\nimport { createPortal } from 'react-dom';\nimport clsx from 'clsx';\nimport './Drawer.css';\n\n/* ==========================================================================\n Context\n ========================================================================== */\n\ninterface DrawerContextValue {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\nconst DrawerContext = React.createContext<DrawerContextValue | undefined>(undefined);\n\nfunction useDrawerContext() {\n const ctx = React.useContext(DrawerContext);\n if (!ctx) {\n throw new Error('Drawer compound components must be used within a <Drawer> parent.');\n }\n return ctx;\n}\n\n/* ==========================================================================\n Drawer (root)\n ========================================================================== */\n\nexport interface DrawerProps {\n /** Controlled open state */\n open?: boolean;\n /** Callback fired when the open state changes */\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\n/**\n * Root wrapper that manages open/close state for a bottom-sheet drawer.\n *\n * @example\n * <Drawer>\n * <DrawerTrigger>Open</DrawerTrigger>\n * <DrawerContent>\n * <DrawerHeader>\n * <DrawerTitle>Title</DrawerTitle>\n * <DrawerDescription>Description</DrawerDescription>\n * </DrawerHeader>\n * <DrawerFooter>\n * <DrawerClose>Close</DrawerClose>\n * </DrawerFooter>\n * </DrawerContent>\n * </Drawer>\n */\nexport const Drawer: React.FC<DrawerProps> = ({ open: controlledOpen, onOpenChange, children }) => {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false);\n\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : uncontrolledOpen;\n\n const handleOpenChange = React.useCallback(\n (next: boolean) => {\n if (!isControlled) {\n setUncontrolledOpen(next);\n }\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange],\n );\n\n return (\n <DrawerContext.Provider value={{ open, onOpenChange: handleOpenChange }}>\n {children}\n </DrawerContext.Provider>\n );\n};\n\nDrawer.displayName = 'Drawer';\n\n/* ==========================================================================\n DrawerTrigger\n ========================================================================== */\n\nexport const DrawerTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ onClick, ...props }, ref) => {\n const { onOpenChange } = useDrawerContext();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n onOpenChange(true);\n onClick?.(e);\n };\n\n return <button ref={ref} type=\"button\" onClick={handleClick} {...props} />;\n});\n\nDrawerTrigger.displayName = 'DrawerTrigger';\n\n/* ==========================================================================\n DrawerClose\n ========================================================================== */\n\nexport const DrawerClose = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ onClick, ...props }, ref) => {\n const { onOpenChange } = useDrawerContext();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n onOpenChange(false);\n onClick?.(e);\n };\n\n return <button ref={ref} type=\"button\" onClick={handleClick} {...props} />;\n});\n\nDrawerClose.displayName = 'DrawerClose';\n\n/* ==========================================================================\n DrawerContent\n ========================================================================== */\n\nexport type DrawerContentProps = React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * The bottom-sheet panel. Renders via a React Portal to `document.body`.\n * Includes a drag handle bar at the top and a backdrop overlay.\n */\nexport const DrawerContent = React.forwardRef<HTMLDivElement, DrawerContentProps>(\n ({ className, children, ...props }, ref) => {\n const { open, onOpenChange } = useDrawerContext();\n\n if (!open) return null;\n\n return createPortal(\n <>\n <div\n className=\"ds-drawer__backdrop\"\n onClick={() => onOpenChange(false)}\n aria-hidden=\"true\"\n />\n <div\n ref={ref}\n role=\"dialog\"\n className={clsx('ds-drawer__content', className)}\n {...props}\n >\n <div className=\"ds-drawer__handle\" aria-hidden=\"true\">\n <div className=\"ds-drawer__handle-bar\" />\n </div>\n {children}\n </div>\n </>,\n document.body,\n );\n },\n);\n\nDrawerContent.displayName = 'DrawerContent';\n\n/* ==========================================================================\n DrawerHeader\n ========================================================================== */\n\nexport const DrawerHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-drawer__header', className)} {...props} />\n ),\n);\n\nDrawerHeader.displayName = 'DrawerHeader';\n\n/* ==========================================================================\n DrawerTitle\n ========================================================================== */\n\nexport const DrawerTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h2 ref={ref} className={clsx('ds-drawer__title', className)} {...props} />\n));\n\nDrawerTitle.displayName = 'DrawerTitle';\n\n/* ==========================================================================\n DrawerDescription\n ========================================================================== */\n\nexport const DrawerDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p ref={ref} className={clsx('ds-drawer__description', className)} {...props} />\n));\n\nDrawerDescription.displayName = 'DrawerDescription';\n\n/* ==========================================================================\n DrawerFooter\n ========================================================================== */\n\nexport const DrawerFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-drawer__footer', className)} {...props} />\n ),\n);\n\nDrawerFooter.displayName = 'DrawerFooter';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Calendar.css';\n\n/** Translatable labels for the Calendar component. */\nexport interface CalendarLabels {\n /** Short weekday column headers (Sun–Sat). @default ['Su','Mo','Tu','We','Th','Fr','Sa'] */\n weekdays?: string[];\n /** Full month names (Jan–Dec). @default English month names */\n months?: string[];\n /** Aria-label for previous month button. @default \"Previous month\" */\n previousMonth?: string;\n /** Aria-label for next month button. @default \"Next month\" */\n nextMonth?: string;\n /** Formatter for individual day aria-labels. Receives the Date. @default date.toDateString() */\n formatDayLabel?: (date: Date) => string;\n}\n\nexport interface CalendarProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n /** The currently selected date */\n selected?: Date;\n /** Callback when a date is selected */\n onSelect?: (date: Date) => void;\n /** Controlled month view */\n month?: Date;\n /** Callback when the displayed month changes */\n onMonthChange?: (month: Date) => void;\n /** Override default English labels for i18n. */\n labels?: CalendarLabels;\n}\n\nconst DEFAULT_WEEKDAY_LABELS = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\nconst DEFAULT_MONTH_NAMES = [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December',\n];\n\nfunction isSameDay(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nfunction getDaysInMonth(year: number, month: number): number {\n return new Date(year, month + 1, 0).getDate();\n}\n\nfunction getCalendarGrid(year: number, month: number): Date[][] {\n const firstDay = new Date(year, month, 1).getDay();\n const daysInMonth = getDaysInMonth(year, month);\n const daysInPrevMonth = getDaysInMonth(year, month - 1);\n\n const days: Date[] = [];\n\n // Previous month trailing days\n for (let i = firstDay - 1; i >= 0; i--) {\n days.push(new Date(year, month - 1, daysInPrevMonth - i));\n }\n\n // Current month days\n for (let d = 1; d <= daysInMonth; d++) {\n days.push(new Date(year, month, d));\n }\n\n // Next month leading days to fill last row\n const remaining = 7 - (days.length % 7);\n if (remaining < 7) {\n for (let d = 1; d <= remaining; d++) {\n days.push(new Date(year, month + 1, d));\n }\n }\n\n // Split into weeks\n const weeks: Date[][] = [];\n for (let i = 0; i < days.length; i += 7) {\n weeks.push(days.slice(i, i + 7));\n }\n\n return weeks;\n}\n\n/* Month names moved to DEFAULT_MONTH_NAMES above */\n\n/**\n * A simple date picker calendar component.\n *\n * Renders a month grid with navigation, weekday headers, and selectable day cells.\n *\n * @example\n * <Calendar selected={new Date()} onSelect={(date) => console.log(date)} />\n */\nexport const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>(\n ({ className, selected, onSelect, month, onMonthChange, labels, ...props }, ref) => {\n const weekdayLabels = labels?.weekdays ?? DEFAULT_WEEKDAY_LABELS;\n const monthNames = labels?.months ?? DEFAULT_MONTH_NAMES;\n const formatDayLabel = labels?.formatDayLabel ?? ((d: Date) => d.toDateString());\n const today = new Date();\n const [internalMonth, setInternalMonth] = React.useState(\n () => month ?? selected ?? new Date(),\n );\n\n const displayedMonth = month ?? internalMonth;\n const displayYear = displayedMonth.getFullYear();\n const displayMonthIndex = displayedMonth.getMonth();\n\n const weeks = getCalendarGrid(displayYear, displayMonthIndex);\n\n const navigateMonth = (delta: number) => {\n const next = new Date(displayYear, displayMonthIndex + delta, 1);\n if (onMonthChange) {\n onMonthChange(next);\n } else {\n setInternalMonth(next);\n }\n };\n\n const handleDayClick = (date: Date) => {\n onSelect?.(date);\n };\n\n return (\n <div ref={ref} className={clsx('ds-calendar', className)} {...props}>\n <div className=\"ds-calendar__header\">\n <button\n type=\"button\"\n className=\"ds-calendar__nav-button\"\n onClick={() => navigateMonth(-1)}\n aria-label={labels?.previousMonth ?? 'Previous month'}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n </button>\n <div className=\"ds-calendar__title\">\n {monthNames[displayMonthIndex]} {displayYear}\n </div>\n <button\n type=\"button\"\n className=\"ds-calendar__nav-button\"\n onClick={() => navigateMonth(1)}\n aria-label={labels?.nextMonth ?? 'Next month'}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </button>\n </div>\n <div className=\"ds-calendar__grid\" role=\"grid\">\n <div className=\"ds-calendar__head-row\" role=\"row\">\n {weekdayLabels.map((wdLabel: string) => (\n <div key={wdLabel} className=\"ds-calendar__head-cell\" role=\"columnheader\">\n {wdLabel}\n </div>\n ))}\n </div>\n <div className=\"ds-calendar__body\">\n {weeks.map((week, wi) => (\n <div key={wi} className=\"ds-calendar__row\" role=\"row\">\n {week.map((date, di) => {\n const isOutside = date.getMonth() !== displayMonthIndex;\n const isSelected = selected ? isSameDay(date, selected) : false;\n const isToday = isSameDay(date, today);\n\n return (\n <div key={di} className=\"ds-calendar__cell\" role=\"gridcell\">\n <button\n type=\"button\"\n className={clsx(\n 'ds-calendar__day',\n isSelected && 'ds-calendar__day--selected',\n isToday && 'ds-calendar__day--today',\n isOutside && 'ds-calendar__day--outside',\n )}\n onClick={() => handleDayClick(date)}\n tabIndex={isOutside ? -1 : 0}\n aria-label={formatDayLabel(date)}\n >\n {date.getDate()}\n </button>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n },\n);\n\nCalendar.displayName = 'Calendar';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './InputOTP.css';\n\n/* ============================================================================\n CONTEXT\n ============================================================================ */\n\ninterface InputOTPContextValue {\n value: string;\n activeIndex: number;\n}\n\nconst InputOTPContext = React.createContext<InputOTPContextValue>({\n value: '',\n activeIndex: -1,\n});\n\n/* ============================================================================\n INPUT OTP ROOT\n ============================================================================ */\n\nexport interface InputOTPProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Number of OTP digits */\n length?: number;\n /** Current value */\n value?: string;\n /** Callback when value changes */\n onChange?: (value: string) => void;\n /** Aria-label for the hidden input. @default \"One-time password\" */\n 'aria-label'?: string;\n}\n\n/**\n * One-time password input with individual digit cells.\n *\n * Uses a hidden native input for accessibility and renders visual slot cells.\n *\n * @example\n * <InputOTP length={6} value={otp} onChange={setOtp}>\n * <InputOTPGroup>\n * <InputOTPSlot index={0} />\n * <InputOTPSlot index={1} />\n * <InputOTPSlot index={2} />\n * </InputOTPGroup>\n * <InputOTPSeparator />\n * <InputOTPGroup>\n * <InputOTPSlot index={3} />\n * <InputOTPSlot index={4} />\n * <InputOTPSlot index={5} />\n * </InputOTPGroup>\n * </InputOTP>\n */\nexport const InputOTP = React.forwardRef<HTMLDivElement, InputOTPProps>(\n ({ className, length = 6, value = '', onChange, children, 'aria-label': ariaLabel = 'One-time password', ...props }, ref) => {\n const inputRef = React.useRef<HTMLInputElement>(null);\n const [activeIndex, setActiveIndex] = React.useState(-1);\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value.replace(/[^0-9]/g, '').slice(0, length);\n onChange?.(newValue);\n };\n\n const handleFocus = () => {\n setActiveIndex(Math.min(value.length, length - 1));\n };\n\n const handleBlur = () => {\n setActiveIndex(-1);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Backspace' && value.length > 0) {\n onChange?.(value.slice(0, -1));\n }\n };\n\n const handleContainerClick = () => {\n inputRef.current?.focus();\n };\n\n const contextValue = React.useMemo(\n () => ({ value, activeIndex }),\n [value, activeIndex],\n );\n\n return (\n <InputOTPContext.Provider value={contextValue}>\n <div\n ref={ref}\n className={clsx('ds-input-otp', className)}\n onClick={handleContainerClick}\n {...props}\n >\n <input\n ref={inputRef}\n type=\"text\"\n inputMode=\"numeric\"\n autoComplete=\"one-time-code\"\n pattern=\"[0-9]*\"\n maxLength={length}\n value={value}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n className=\"ds-input-otp__hidden-input\"\n aria-label={ariaLabel}\n />\n {children}\n </div>\n </InputOTPContext.Provider>\n );\n },\n);\n\nInputOTP.displayName = 'InputOTP';\n\n/* ============================================================================\n INPUT OTP GROUP\n ============================================================================ */\n\nexport const InputOTPGroup = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n return (\n <div ref={ref} className={clsx('ds-input-otp__group', className)} {...props} />\n );\n});\n\nInputOTPGroup.displayName = 'InputOTPGroup';\n\n/* ============================================================================\n INPUT OTP SLOT\n ============================================================================ */\n\nexport interface InputOTPSlotProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Zero-based index of this slot */\n index: number;\n}\n\nexport const InputOTPSlot = React.forwardRef<HTMLDivElement, InputOTPSlotProps>(\n ({ className, index, ...props }, ref) => {\n const { value, activeIndex } = React.useContext(InputOTPContext);\n const char = value[index] ?? '';\n const isActive = activeIndex === index;\n const isFilled = char !== '';\n\n return (\n <div\n ref={ref}\n className={clsx(\n 'ds-input-otp__slot',\n isActive && 'ds-input-otp__slot--active',\n isFilled && 'ds-input-otp__slot--filled',\n className,\n )}\n {...props}\n >\n {char}\n </div>\n );\n },\n);\n\nInputOTPSlot.displayName = 'InputOTPSlot';\n\n/* ============================================================================\n INPUT OTP SEPARATOR\n ============================================================================ */\n\nexport const InputOTPSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n return (\n <div ref={ref} className={clsx('ds-input-otp__separator', className)} role=\"separator\" {...props}>\n <svg\n width=\"8\"\n height=\"8\"\n viewBox=\"0 0 8 8\"\n fill=\"currentColor\"\n >\n <circle cx=\"4\" cy=\"4\" r=\"2\" />\n </svg>\n </div>\n );\n});\n\nInputOTPSeparator.displayName = 'InputOTPSeparator';\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport clsx from 'clsx';\nimport './ContextMenu.css';\n\n/* ============================================================================\n CONTEXT\n ============================================================================ */\n\ninterface ContextMenuState {\n open: boolean;\n position: { x: number; y: number };\n onClose: () => void;\n}\n\nconst ContextMenuContext = React.createContext<ContextMenuState>({\n open: false,\n position: { x: 0, y: 0 },\n onClose: () => {},\n});\n\n/* ============================================================================\n CONTEXT MENU ROOT\n ============================================================================ */\n\nexport interface ContextMenuProps {\n children: React.ReactNode;\n}\n\n/**\n * Root wrapper that provides shared context-menu state (open, position, close).\n *\n * @example\n * <ContextMenu>\n * <ContextMenuTrigger>Right-click here</ContextMenuTrigger>\n * <ContextMenuContent>\n * <ContextMenuItem onSelect={() => alert('Copy')}>Copy</ContextMenuItem>\n * <ContextMenuSeparator />\n * <ContextMenuItem onSelect={() => alert('Paste')}>Paste</ContextMenuItem>\n * </ContextMenuContent>\n * </ContextMenu>\n */\nexport function ContextMenu({ children }: ContextMenuProps) {\n const [open, setOpen] = React.useState(false);\n const [position, setPosition] = React.useState({ x: 0, y: 0 });\n\n const handleOpen = React.useCallback((x: number, y: number) => {\n setPosition({ x, y });\n setOpen(true);\n }, []);\n\n const handleClose = React.useCallback(() => {\n setOpen(false);\n }, []);\n\n const contextValue = React.useMemo(\n () => ({ open, position, onClose: handleClose }),\n [open, position, handleClose],\n );\n\n return (\n <ContextMenuInternalContext.Provider value={{ onOpen: handleOpen }}>\n <ContextMenuContext.Provider value={contextValue}>\n {children}\n </ContextMenuContext.Provider>\n </ContextMenuInternalContext.Provider>\n );\n}\n\nContextMenu.displayName = 'ContextMenu';\n\n/* Internal context for trigger to communicate with root */\nconst ContextMenuInternalContext = React.createContext<{\n onOpen: (x: number, y: number) => void;\n}>({ onOpen: () => {} });\n\n/* ============================================================================\n CONTEXT MENU TRIGGER\n ============================================================================ */\n\nexport const ContextMenuTrigger = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, onContextMenu, ...props }, ref) => {\n const { onOpen } = React.useContext(ContextMenuInternalContext);\n\n const handleContextMenu = (e: React.MouseEvent<HTMLDivElement>) => {\n e.preventDefault();\n onOpen(e.clientX, e.clientY);\n onContextMenu?.(e);\n };\n\n return (\n <div\n ref={ref}\n className={clsx('ds-context-menu__trigger', className)}\n onContextMenu={handleContextMenu}\n {...props}\n />\n );\n});\n\nContextMenuTrigger.displayName = 'ContextMenuTrigger';\n\n/* ============================================================================\n CONTEXT MENU CONTENT\n ============================================================================ */\n\nexport const ContextMenuContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const { open, position, onClose } = React.useContext(ContextMenuContext);\n const contentRef = React.useRef<HTMLDivElement>(null);\n\n // Merge refs\n const mergedRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n (contentRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n },\n [ref],\n );\n\n React.useEffect(() => {\n if (!open) return;\n\n const handleClickOutside = (e: MouseEvent) => {\n if (contentRef.current && !contentRef.current.contains(e.target as Node)) {\n onClose();\n }\n };\n\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n onClose();\n }\n };\n\n // Defer to avoid closing immediately from the right-click event\n const timer = setTimeout(() => {\n document.addEventListener('mousedown', handleClickOutside);\n }, 0);\n document.addEventListener('keydown', handleEscape);\n\n return () => {\n clearTimeout(timer);\n document.removeEventListener('mousedown', handleClickOutside);\n document.removeEventListener('keydown', handleEscape);\n };\n }, [open, onClose]);\n\n if (!open) return null;\n\n return ReactDOM.createPortal(\n <div\n ref={mergedRef}\n role=\"menu\"\n className={clsx('ds-context-menu__content', className)}\n style={{ top: position.y, left: position.x }}\n {...props}\n />,\n document.body,\n );\n});\n\nContextMenuContent.displayName = 'ContextMenuContent';\n\n/* ============================================================================\n CONTEXT MENU ITEM\n ============================================================================ */\n\nexport interface ContextMenuItemProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Callback when the item is selected */\n onSelect?: () => void;\n}\n\nexport const ContextMenuItem = React.forwardRef<HTMLDivElement, ContextMenuItemProps>(\n ({ className, onSelect, onClick, ...props }, ref) => {\n const { onClose } = React.useContext(ContextMenuContext);\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n onSelect?.();\n onClose();\n onClick?.(e);\n };\n\n return (\n <div\n ref={ref}\n role=\"menuitem\"\n className={clsx('ds-context-menu__item', className)}\n onClick={handleClick}\n {...props}\n />\n );\n },\n);\n\nContextMenuItem.displayName = 'ContextMenuItem';\n\n/* ============================================================================\n CONTEXT MENU SEPARATOR\n ============================================================================ */\n\nexport const ContextMenuSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n role=\"separator\"\n className={clsx('ds-context-menu__separator', className)}\n {...props}\n />\n );\n});\n\nContextMenuSeparator.displayName = 'ContextMenuSeparator';\n\n/* ============================================================================\n CONTEXT MENU LABEL\n ============================================================================ */\n\nexport const ContextMenuLabel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={clsx('ds-context-menu__label', className)}\n {...props}\n />\n );\n});\n\nContextMenuLabel.displayName = 'ContextMenuLabel';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Form.css';\n\n/* ============================================================================\n FORM FIELD CONTEXT\n ============================================================================ */\n\ninterface FormFieldContextValue {\n id: string;\n name: string;\n error?: string;\n}\n\nconst FormFieldContext = React.createContext<FormFieldContextValue | undefined>(undefined);\n\nfunction useFormField(): FormFieldContextValue {\n const ctx = React.useContext(FormFieldContext);\n if (!ctx) {\n throw new Error('useFormField must be used within a <FormField>');\n }\n return ctx;\n}\n\n/* ============================================================================\n FORM ITEM CONTEXT\n ============================================================================ */\n\ninterface FormItemContextValue {\n id: string;\n}\n\nconst FormItemContext = React.createContext<FormItemContextValue | undefined>(undefined);\n\n/* ============================================================================\n FORM FIELD\n ============================================================================ */\n\nexport interface FieldRenderProps {\n value: unknown;\n onChange: (...args: unknown[]) => void;\n onBlur: () => void;\n error?: string;\n id: string;\n}\n\nexport interface FormFieldProps {\n /** Field name used for generating IDs and labelling */\n name: string;\n /** Render function receiving field metadata */\n children: (field: FieldRenderProps) => React.ReactNode;\n /** Current field value */\n value?: unknown;\n /** Change handler */\n onChange?: (...args: unknown[]) => void;\n /** Blur handler */\n onBlur?: () => void;\n /** Error message for this field */\n error?: string;\n}\n\n/**\n * Wrapper component that provides field context to child form primitives.\n *\n * Works with any form state management. The consumer passes field state directly.\n *\n * @example\n * <FormField name=\"email\" value={email} onChange={setEmail} error={errors.email}>\n * {(field) => (\n * <FormItem>\n * <FormLabel>Email</FormLabel>\n * <FormControl>\n * <input value={field.value as string} onChange={(e) => field.onChange(e.target.value)} />\n * </FormControl>\n * <FormDescription>Your work email address</FormDescription>\n * <FormMessage>{field.error}</FormMessage>\n * </FormItem>\n * )}\n * </FormField>\n */\nexport function FormField({ name, children, value, onChange, onBlur, error }: FormFieldProps) {\n const id = React.useId();\n\n const contextValue = React.useMemo<FormFieldContextValue>(\n () => ({ id: `${id}-form-item`, name, error }),\n [id, name, error],\n );\n\n const fieldProps = React.useMemo<FieldRenderProps>(\n () => ({\n value: value ?? '',\n onChange: onChange ?? (() => {}),\n onBlur: onBlur ?? (() => {}),\n error,\n id: `${id}-form-item`,\n }),\n [value, onChange, onBlur, error, id],\n );\n\n return (\n <FormFieldContext.Provider value={contextValue}>\n {children(fieldProps)}\n </FormFieldContext.Provider>\n );\n}\n\nFormField.displayName = 'FormField';\n\n/* ============================================================================\n FORM ITEM\n ============================================================================ */\n\nexport const FormItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const id = React.useId();\n\n const contextValue = React.useMemo<FormItemContextValue>(() => ({ id }), [id]);\n\n return (\n <FormItemContext.Provider value={contextValue}>\n <div ref={ref} className={clsx('ds-form__item', className)} {...props} />\n </FormItemContext.Provider>\n );\n },\n);\n\nFormItem.displayName = 'FormItem';\n\n/* ============================================================================\n FORM LABEL\n ============================================================================ */\n\nexport const FormLabel = React.forwardRef<\n HTMLLabelElement,\n React.LabelHTMLAttributes<HTMLLabelElement>\n>(({ className, ...props }, ref) => {\n const fieldCtx = React.useContext(FormFieldContext);\n const hasError = !!fieldCtx?.error;\n\n return (\n <label\n ref={ref}\n htmlFor={fieldCtx?.id}\n className={clsx('ds-form__label', hasError && 'ds-form__label--error', className)}\n {...props}\n />\n );\n});\n\nFormLabel.displayName = 'FormLabel';\n\n/* ============================================================================\n FORM CONTROL\n ============================================================================ */\n\nexport const FormControl = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => {\n const fieldCtx = React.useContext(FormFieldContext);\n const descriptionId = fieldCtx ? `${fieldCtx.id}-description` : undefined;\n const messageId = fieldCtx ? `${fieldCtx.id}-message` : undefined;\n const hasError = !!fieldCtx?.error;\n\n return (\n <div ref={ref} className={clsx('ds-form__control', className)} {...props}>\n {React.isValidElement(children)\n ? React.cloneElement(children as React.ReactElement<Record<string, unknown>>, {\n id: fieldCtx?.id,\n 'aria-describedby': descriptionId,\n 'aria-invalid': hasError || undefined,\n 'aria-errormessage': hasError ? messageId : undefined,\n })\n : children}\n </div>\n );\n },\n);\n\nFormControl.displayName = 'FormControl';\n\n/* ============================================================================\n FORM DESCRIPTION\n ============================================================================ */\n\nexport const FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const fieldCtx = React.useContext(FormFieldContext);\n\n return (\n <p\n ref={ref}\n id={fieldCtx ? `${fieldCtx.id}-description` : undefined}\n className={clsx('ds-form__description', className)}\n {...props}\n />\n );\n});\n\nFormDescription.displayName = 'FormDescription';\n\n/* ============================================================================\n FORM MESSAGE\n ============================================================================ */\n\nexport const FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const fieldCtx = React.useContext(FormFieldContext);\n const message = children ?? fieldCtx?.error;\n\n if (!message) return null;\n\n return (\n <p\n ref={ref}\n id={fieldCtx ? `${fieldCtx.id}-message` : undefined}\n role=\"alert\"\n className={clsx('ds-form__message', className)}\n {...props}\n >\n {message}\n </p>\n );\n});\n\nFormMessage.displayName = 'FormMessage';\n\n/* Re-export hook for advanced usage */\n// eslint-disable-next-line react-refresh/only-export-components\nexport { useFormField };\n","import { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { Box, BoxProps } from './Box';\n\n/** Maximum column count with built-in responsive CSS classes (1–6). */\nconst MAX_RESPONSIVE_COLS = 6;\n\nexport interface GridProps extends BoxProps {\n columns?: number | string;\n rows?: number | string;\n align?: 'start' | 'center' | 'end' | 'stretch';\n justify?: 'start' | 'center' | 'end' | 'stretch';\n /** Prevent grid from expanding to more columns on wide screens. */\n fixed?: boolean;\n}\n\nexport const Grid = forwardRef<HTMLElement, GridProps>(\n ({ columns, rows, align, justify, fixed, className, style, ...props }, ref) => {\n // Numeric columns 1–6 use responsive CSS classes (auto-collapse at narrow\n // viewports). String columns and numbers > 6 fall back to inline styles.\n const useColClass =\n typeof columns === 'number' && columns >= 1 && columns <= MAX_RESPONSIVE_COLS;\n\n return (\n <Box\n ref={ref}\n className={clsx(\n 'ds-grid',\n useColClass && `ds-grid--cols-${columns}`,\n fixed && 'ds-grid--fixed',\n className,\n )}\n style={{\n gridTemplateColumns: useColClass\n ? undefined\n : typeof columns === 'number'\n ? `repeat(${columns}, 1fr)`\n : columns,\n gridTemplateRows: typeof rows === 'number' ? `repeat(${rows}, 1fr)` : rows,\n alignItems: align,\n justifyItems: justify,\n ...style,\n }}\n {...props}\n />\n );\n },\n);\n\nGrid.displayName = 'Grid';\n","import { forwardRef, HTMLAttributes } from 'react';\nimport clsx from 'clsx';\n\nexport interface SectionProps extends HTMLAttributes<HTMLElement> {\n /**\n * Vertical padding preset.\n * @default 'md'\n */\n padding?: 'none' | 'sm' | 'md' | 'lg';\n}\n\n/**\n * Semantic `<section>` wrapper with consistent vertical padding.\n *\n * Use this for standalone section spacing. For sections that also need\n * a centered Container, use `SectionShell` instead.\n *\n * @example\n * <Section>\n * <Container>…</Container>\n * </Section>\n */\nexport const Section = forwardRef<HTMLElement, SectionProps>(\n ({ padding = 'md', className, children, ...props }, ref) => {\n return (\n <section\n ref={ref}\n className={clsx('ds-section-block', `ds-section-block--${padding}`, className)}\n {...props}\n >\n {children}\n </section>\n );\n },\n);\n\nSection.displayName = 'Section';\n","import { forwardRef, HTMLAttributes } from 'react';\nimport clsx from 'clsx';\nimport './LayoutPrimitives.css';\n\nexport const VisuallyHidden = forwardRef<HTMLSpanElement, HTMLAttributes<HTMLSpanElement>>(\n ({ className, ...props }, ref) => {\n return <span ref={ref} className={clsx('ds-visually-hidden', className)} {...props} />;\n },\n);\n\nVisuallyHidden.displayName = 'VisuallyHidden';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './StatusBadge.css';\n\nexport interface StatusBadgeProps {\n /** Status variant */\n variant?: 'default' | 'success' | 'warning' | 'error' | 'info';\n /** Size of the badge */\n size?: 'sm' | 'md';\n /** Whether to show a dot indicator */\n dot?: boolean;\n /** Custom class name */\n className?: string;\n /** Child content */\n children?: React.ReactNode;\n}\n\n/**\n * StatusBadge — Glass treatment with brand color border\n *\n * Uses dark glass base with a 1px colored border for status indication.\n * Brand colors are infused, never solid fills.\n */\nexport const StatusBadge = React.forwardRef<HTMLSpanElement, StatusBadgeProps>(\n ({ variant = 'default', size = 'md', dot = false, className, children }, ref) => {\n return (\n <span\n ref={ref}\n className={clsx(\n 'ds-status-badge',\n `ds-status-badge--${variant}`,\n `ds-status-badge--${size}`,\n dot && 'ds-status-badge--dot',\n className,\n )}\n >\n {dot && <span className=\"ds-status-badge__dot\" />}\n {children}\n </span>\n );\n },\n);\n\nStatusBadge.displayName = 'StatusBadge';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Alert.css';\n\nexport type AlertVariant = 'info' | 'success' | 'warning' | 'error';\n\nexport interface AlertProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n /**\n * The semantic variant of the alert.\n * @default 'info'\n */\n variant?: AlertVariant;\n /**\n * The title of the alert.\n */\n title?: React.ReactNode;\n /**\n * Optional custom icon. If not provided, a default icon based on variant will be used.\n */\n icon?: React.ReactNode;\n}\n\nconst DefaultIcons: Record<AlertVariant, React.ReactNode> = {\n info: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n </svg>\n ),\n success: (\n <svg\n width=\"20\"\n height=\"20\"\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=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\" />\n <polyline points=\"22 4 12 14.01 9 11.01\" />\n </svg>\n ),\n warning: (\n <svg\n width=\"20\"\n height=\"20\"\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=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\" />\n <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\" />\n <line x1=\"12\" y1=\"17\" x2=\"12.01\" y2=\"17\" />\n </svg>\n ),\n error: (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" />\n </svg>\n ),\n};\n\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant = 'info', title, icon, children, ...props }, ref) => {\n const renderedIcon = icon || DefaultIcons[variant];\n\n return (\n <div\n ref={ref}\n role=\"alert\"\n className={clsx('ds-alert', `ds-alert--${variant}`, className)}\n {...props}\n >\n <div className=\"ds-alert__icon\" aria-hidden=\"true\">\n {renderedIcon}\n </div>\n <div className=\"ds-alert__content\">\n {title && <div className=\"ds-alert__title\">{title}</div>}\n {children && <div className=\"ds-alert__description\">{children}</div>}\n </div>\n </div>\n );\n },\n);\n\nAlert.displayName = 'Alert';\n","import React, { createContext, useContext } from 'react';\n\nexport type ToastVariant = 'info' | 'success' | 'warning' | 'error';\n\nexport interface ToastProps {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n variant?: ToastVariant;\n duration?: number;\n action?: React.ReactNode;\n onDismiss?: () => void;\n /** Aria-label for the dismiss button. @default \"Close\" */\n dismissLabel?: string;\n}\n\nexport interface ToastContextType {\n addToast: (props: Omit<ToastProps, 'id'>) => void;\n removeToast: (id: string) => void;\n}\n\nexport const ToastContext = createContext<ToastContextType | undefined>(undefined);\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport const useToast = () => {\n const context = useContext(ToastContext);\n if (!context) {\n throw new Error('useToast must be used within a ToastProvider');\n }\n return context;\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport { ToastProps } from './ToastContext';\nimport './Toast.css';\n\nexport const ToastItem: React.FC<ToastProps> = ({\n title,\n description,\n variant = 'info',\n action,\n onDismiss,\n dismissLabel = 'Close',\n}) => {\n return (\n <div className={clsx('ds-toast-root', `ds-toast--${variant}`)} data-state=\"open\" role=\"alert\">\n {title && <div className=\"ds-toast-title\">{title}</div>}\n {description && <div className=\"ds-toast-description\">{description}</div>}\n {action && <div className=\"ds-toast-action\">{action}</div>}\n <button\n onClick={onDismiss}\n style={{\n background: 'transparent',\n border: 'none',\n color: 'var(--text-tertiary)',\n cursor: 'pointer',\n padding: '4px',\n marginLeft: 'auto',\n gridColumn: 'action',\n alignSelf: 'start',\n }}\n aria-label={dismissLabel}\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n </div>\n );\n};\n","import React, { useState, useCallback, useRef, useEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { ToastContext, ToastProps } from './ToastContext';\nimport { ToastItem } from './ToastItem';\n\nexport const ToastProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const [toasts, setToasts] = useState<ToastProps[]>([]);\n // Use effect-based mount check to avoid SSR hydration mismatch.\n // `typeof document !== 'undefined'` is true during client hydration\n // but the portal DOM doesn't exist in the server HTML — causing a mismatch.\n const [mounted, setMounted] = useState(false);\n const idCounter = useRef(0);\n\n useEffect(() => setMounted(true), []);\n\n const removeToast = useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, []);\n\n const addToast = useCallback(\n ({ duration = 5000, ...props }: Omit<ToastProps, 'id'>) => {\n const id = `toast-${++idCounter.current}`;\n const newToast = { ...props, id, duration };\n\n setToasts((prev) => [...prev, newToast]);\n\n if (duration !== Infinity) {\n setTimeout(() => {\n removeToast(id);\n }, duration);\n }\n },\n [removeToast],\n );\n\n return (\n <ToastContext.Provider value={{ addToast, removeToast }}>\n {children}\n {mounted &&\n createPortal(\n <div className=\"ds-toast-viewport\">\n {toasts.map((toast) => (\n <ToastItem key={toast.id} {...toast} onDismiss={() => removeToast(toast.id)} />\n ))}\n </div>,\n document.body,\n )}\n </ToastContext.Provider>\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport './EmptyState.css';\n\nexport interface EmptyStateProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Icon or illustration */\n icon?: React.ReactNode;\n /** Primary heading */\n title: string;\n /** Secondary description */\n description?: string;\n /** Primary action button */\n action?: React.ReactNode;\n}\n\nexport const EmptyState = React.forwardRef<HTMLDivElement, EmptyStateProps>(\n ({ icon, title, description, action, className, ...props }, ref) => {\n return (\n <div ref={ref} className={clsx('ds-empty-state', className)} {...props}>\n {icon && <div className=\"ds-empty-state__icon\">{icon}</div>}\n <h3 className=\"ds-empty-state__title\">{title}</h3>\n {description && <p className=\"ds-empty-state__description\">{description}</p>}\n {action && <div className=\"ds-empty-state__action\">{action}</div>}\n </div>\n );\n },\n);\n\nEmptyState.displayName = 'EmptyState';\n","export const COLORS = {\n text: {\n primary: 'var(--text-primary)',\n secondary: 'var(--text-secondary)',\n tertiary: 'var(--text-tertiary)',\n disabled: 'var(--text-disabled)',\n },\n glass: {\n base: 'var(--glass-base)',\n baseHover: 'var(--glass-base-hover)',\n baseActive: 'var(--glass-base-active)',\n backdrop: 'var(--glass-backdrop)',\n },\n rim: {\n top: 'var(--rim-light-top)',\n bottom: 'var(--rim-light-bottom)',\n },\n brand: {\n pink: 'var(--brand-pink)',\n yellow: 'var(--brand-yellow)',\n pinkGlow: 'var(--brand-pink-glow)',\n },\n status: {\n success: 'var(--status-success)',\n warning: 'var(--status-warning)',\n error: 'var(--status-error)',\n info: 'var(--status-info)',\n },\n button: {\n primaryBg: 'var(--btn-primary-bg)',\n primaryBgHover: 'var(--btn-primary-bg-hover)',\n secondaryBg: 'var(--btn-secondary-bg)',\n secondaryBgHover: 'var(--btn-secondary-bg-hover)',\n },\n} as const;\n","export const FONT_FAMILY = {\n sans: 'var(--font-family)',\n mono: 'var(--font-family-mono)',\n} as const;\n\nexport const FONT_SIZE = {\n xs: 'var(--font-size-xs)',\n sm: 'var(--font-size-sm)',\n base: 'var(--font-size-base)',\n lg: 'var(--font-size-lg)',\n xl: 'var(--font-size-xl)',\n '2xl': 'var(--font-size-2xl)',\n '3xl': 'var(--font-size-3xl)',\n} as const;\n\nexport const FONT_WEIGHT = {\n normal: 'var(--font-weight-normal)',\n medium: 'var(--font-weight-medium)',\n semibold: 'var(--font-weight-semibold)',\n bold: 'var(--font-weight-bold)',\n} as const;\n\nexport const LINE_HEIGHT = {\n tight: 'var(--line-height-tight)',\n normal: 'var(--line-height-normal)',\n relaxed: 'var(--line-height-relaxed)',\n} as const;\n","export const RADIUS = {\n panel: 'var(--radius-panel)',\n card: 'var(--radius-card)',\n button: 'var(--radius-button)',\n badge: 'var(--radius-badge)',\n pill: 'var(--radius-pill)',\n} as const;\n\nexport type RadiusToken = keyof typeof RADIUS;\n","export const SHADOWS = {\n glass: {\n outer: 'var(--glass-shadow-outer)',\n inner: 'var(--glass-shadow-inner)',\n combined: 'var(--glass-shadow-combined)',\n elevated: 'var(--glass-shadow-elevated)',\n elevatedCombined: 'var(--glass-shadow-elevated-combined)',\n },\n interactive: {\n rest: 'var(--shadow-interactive-rest)',\n restSubtle: 'var(--shadow-interactive-rest-subtle)',\n restLight: 'var(--shadow-interactive-rest-light)',\n hover: 'var(--shadow-interactive-hover)',\n hoverSubtle: 'var(--shadow-interactive-hover-subtle)',\n active: 'var(--shadow-interactive-active)',\n },\n} as const;\n","export const Z_INDEX = {\n void: 'var(--z-void)',\n glassPanel: 'var(--z-glass-panel)',\n ornament: 'var(--z-ornament)',\n dropdown: 'var(--z-dropdown)',\n modalBackdrop: 'var(--z-modal-backdrop)',\n modal: 'var(--z-modal)',\n tooltip: 'var(--z-tooltip)',\n} as const;\n\nexport type ZIndexToken = keyof typeof Z_INDEX;\n","/* ============================================================================\n BREAKPOINT TOKENS\n ============================================================================ */\n\nexport const BREAKPOINTS = {\n '3xs': 320,\n '2xs': 375,\n xs: 480,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n '3xl': 1920,\n '4xl': 2560,\n '5xl': 3840,\n} as const;\n\nexport type Breakpoint = keyof typeof BREAKPOINTS;\n\nexport const MEDIA_QUERIES = {\n '3xs': `(min-width: ${BREAKPOINTS['3xs']}px)`,\n '2xs': `(min-width: ${BREAKPOINTS['2xs']}px)`,\n xs: `(min-width: ${BREAKPOINTS.xs}px)`,\n sm: `(min-width: ${BREAKPOINTS.sm}px)`,\n md: `(min-width: ${BREAKPOINTS.md}px)`,\n lg: `(min-width: ${BREAKPOINTS.lg}px)`,\n xl: `(min-width: ${BREAKPOINTS.xl}px)`,\n '2xl': `(min-width: ${BREAKPOINTS['2xl']}px)`,\n '3xl': `(min-width: ${BREAKPOINTS['3xl']}px)`,\n '4xl': `(min-width: ${BREAKPOINTS['4xl']}px)`,\n '5xl': `(min-width: ${BREAKPOINTS['5xl']}px)`,\n} as const;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ToggleGroup, ToggleGroupItem, Badge, Dialog, DialogContent, Tabs, TabsList, TabsTrigger, TabsContent, Slider } from './chunk-
|
|
1
|
+
import { ToggleGroup, ToggleGroupItem, Badge, Dialog, DialogContent, Tabs, TabsList, TabsTrigger, TabsContent, Slider } from './chunk-TCFC7XTB.js';
|
|
2
2
|
import { TextField } from './chunk-3NKRFUAR.js';
|
|
3
3
|
import { Button } from './chunk-SICKWUWB.js';
|
|
4
4
|
import { MetricCounter } from './chunk-YSYR54XR.js';
|
|
@@ -1547,7 +1547,8 @@ var ValueAnchor = forwardRef(
|
|
|
1547
1547
|
min: input.min ?? 0,
|
|
1548
1548
|
max: input.max ?? 100,
|
|
1549
1549
|
step: input.step ?? 1,
|
|
1550
|
-
onValueChange: (v) => handleChange(input.name, v)
|
|
1550
|
+
onValueChange: (v) => handleChange(input.name, v),
|
|
1551
|
+
inputLabel: input.label
|
|
1551
1552
|
}
|
|
1552
1553
|
) : /* @__PURE__ */ jsx(
|
|
1553
1554
|
TextField,
|
|
@@ -2119,4 +2120,4 @@ ObjectionFAQ.displayName = "ObjectionFAQ";
|
|
|
2119
2120
|
|
|
2120
2121
|
export { AnnouncementBar, ArchitectureDiagram, BeforeAfterBlock, BookingEmbed, CaseStudyCard, CaseStudySection, ComparisonTable, CompetitorDiff, ComplianceGrid, EcosystemDiagram, EnterpriseSignaling, EvolutionTimeline, ExitIntentOverlay, GuaranteeHighlight, ICPFilter, IntegrationShowcase, IntelligenceBlock, IntentCTA, LeadCaptureForm, ManifestoBlock, ObjectionFAQ, PartnerValueProp, PricingCard, PricingSection, PricingToggle, ProblemAgitation, ProcessTimeline, ROICalculator, SecurityBlock, SegmentSwitch, StakeholderTabs, StickyActionBar, ValueAnchor, VideoEmbed };
|
|
2121
2122
|
//# sourceMappingURL=out.js.map
|
|
2122
|
-
//# sourceMappingURL=chunk-
|
|
2123
|
+
//# sourceMappingURL=chunk-WN626YNO.js.map
|