@salesmind-ai/design-system 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tokens/motion.ts","../../src/tokens/colors.ts","../../src/tokens/spacing.ts","../../src/tokens/typography.ts","../../src/tokens/radius.ts","../../src/tokens/shadows.ts","../../src/tokens/z-index.ts","../../src/tokens/breakpoints.ts","../../src/theme/AppearanceProvider.tsx","../../src/components/AppearancePanel/AppearancePanel.tsx","../../src/components/Button/Button.tsx","../../src/components/ButtonGroup/ButtonGroup.tsx","../../src/components/TextField/TextField.tsx","../../src/components/TextArea/TextArea.tsx","../../src/components/Checkbox/Checkbox.tsx","../../src/components/RadioGroup/RadioGroup.tsx","../../src/components/Switch/Switch.tsx","../../src/components/Dialog/Dialog.tsx","../../src/components/Tooltip/Tooltip.tsx","../../src/components/Badge/Badge.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/DropdownMenu/DropdownMenu.tsx","../../src/components/EmptyState/EmptyState.tsx","../../src/components/Card/Card.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/Avatar/Avatar.tsx","../../src/components/Popover/Popover.tsx","../../src/components/Progress/Progress.tsx","../../src/components/ScrollArea/ScrollArea.tsx","../../src/components/Breadcrumb/Breadcrumb.tsx","../../src/components/Toggle/Toggle.tsx","../../src/components/ToggleGroup/ToggleGroup.tsx","../../src/components/Slider/Slider.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/utils.ts","../../src/components/LayoutPrimitives/Box.tsx","../../src/components/LayoutPrimitives/Stack.tsx","../../src/components/LayoutPrimitives/Grid.tsx","../../src/components/LayoutPrimitives/Container.tsx","../../src/components/LayoutPrimitives/Section.tsx","../../src/components/LayoutPrimitives/VisuallyHidden.tsx","../../src/components/Tabs/Tabs.tsx","../../src/i18n/IntlProvider.tsx","../../src/i18n/useMessage.ts","../../src/i18n/messages.ts"],"names":["createContext","useState","useEffect","useCallback","useContext","React","useId","clsx","jsx","jsxs","Slot","BaseInput","forwardRef","BaseCheckbox","BaseSwitch","BaseDialog","BaseTooltip","useRef","createPortal","BaseMenu","Fragment","ReactDOM","BaseTabs","IntlProvider","useIntl","defineMessages"],"mappings":"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","file":"index.cjs","sourcesContent":["/* ============================================================================\n MOTION TOKENS & FRAMER CONFIG\n ============================================================================ */\n\n/**\n * Duration tokens (seconds) for Framer Motion\n */\nexport const DURATION = {\n micro: 0.15, // 150ms\n short: 0.25, // 250ms\n medium: 0.5, // 500ms\n long: 1.0, // 1000ms\n} as const;\n\n/**\n * Easing definitions (cubic-bezier arrays) for Framer Motion\n */\nexport const EASING = {\n standard: [0.16, 1, 0.3, 1], // Smooth, premium feel\n emphasis: [0.34, 1.56, 0.64, 1], // Slight spring/overshoot\n exit: [0.4, 0, 0.2, 1], // Quick, decisive exit\n linear: [0, 0, 1, 1],\n} as const;\n\n/**\n * Standard transitions for Framer Motion\n */\nexport const TRANSITION = {\n standard: {\n duration: DURATION.medium,\n ease: EASING.standard,\n },\n emphasis: {\n duration: DURATION.medium,\n ease: EASING.emphasis,\n },\n quick: {\n duration: DURATION.short,\n ease: EASING.standard,\n },\n spring: {\n type: 'spring',\n stiffness: 200,\n damping: 20,\n },\n} as const;\n\n/**\n * Reusable Variants for Framer Motion\n */\nexport const VARIANTS = {\n fadeIn: {\n hidden: { opacity: 0 },\n visible: { opacity: 1, transition: { duration: DURATION.medium, ease: EASING.standard } },\n },\n fadeUp: {\n hidden: { opacity: 0, y: 12 },\n visible: { opacity: 1, y: 0, transition: { duration: DURATION.medium, ease: EASING.standard } },\n },\n scaleIn: {\n hidden: { opacity: 0, scale: 0.95 },\n visible: {\n opacity: 1,\n scale: 1,\n transition: { duration: DURATION.short, ease: EASING.emphasis },\n },\n },\n staggerContainer: {\n hidden: { opacity: 0 },\n visible: {\n opacity: 1,\n transition: {\n staggerChildren: 0.08,\n delayChildren: 0.1,\n },\n },\n },\n pulse: {\n hidden: { scale: 1 },\n visible: {\n scale: [1, 1.05, 1],\n transition: { duration: 1.5, repeat: Infinity, ease: 'easeInOut' },\n },\n },\n impact: {\n hidden: { scale: 1 },\n trigger: {\n scale: [1, 0.95, 1.05, 1],\n transition: { duration: 0.4, ease: 'backOut' },\n },\n },\n} as const;\n\n/**\n * Layout Tokens\n */\nexport const DISTANCE = {\n sm: 4,\n md: 12,\n lg: 24,\n xl: 48,\n} as const;\n\nexport const MOTION = {\n DURATION,\n EASING,\n TRANSITION,\n VARIANTS,\n DISTANCE,\n} as const;\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 SPACING = {\n 1: 'var(--space-1)',\n 2: 'var(--space-2)',\n 3: 'var(--space-3)',\n 4: 'var(--space-4)',\n 5: 'var(--space-5)',\n 6: 'var(--space-6)',\n 8: 'var(--space-8)',\n 10: 'var(--space-10)',\n 12: 'var(--space-12)',\n 16: 'var(--space-16)',\n 20: 'var(--space-20)',\n} as const;\n\nexport type SpacingToken = keyof typeof SPACING;\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 xs: 480,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n} as const;\n\nexport type Breakpoint = keyof typeof BREAKPOINTS;\n\nexport const MEDIA_QUERIES = {\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} as const;\n","import React, { createContext, useContext, useEffect, useState, useCallback } from 'react';\n\n/* ============================================================================\n APPEARANCE TYPES\n ============================================================================ */\n\nexport type Theme = 'light' | 'light-contrast' | 'dark' | 'dark-contrast';\nexport type Brand = 'default' | 'salesmind' | 'custom';\nexport type NavPlacement = 'left' | 'right' | 'bottom';\nexport type Density = 'comfortable' | 'compact';\nexport type Radius = 'playful' | 'sharp';\n\nexport interface AppearanceSettings {\n theme: Theme;\n brand: Brand;\n navPlacement: NavPlacement;\n density: Density;\n radius: Radius;\n /** Hex color for custom brand (e.g., \"#ff2d8a\") */\n customColor: string;\n}\n\nexport interface AppearanceContextValue extends AppearanceSettings {\n setTheme: (theme: Theme) => void;\n setBrand: (brand: Brand) => void;\n setNavPlacement: (nav: NavPlacement) => void;\n setDensity: (density: Density) => void;\n setRadius: (radius: Radius) => void;\n setCustomColor: (color: string) => void;\n setAppearance: (settings: Partial<AppearanceSettings>) => void;\n resetToDefaults: () => void;\n}\n\n/* ============================================================================\n CONSTANTS\n ============================================================================ */\n\nconst STORAGE_KEY = 'void-appearance-settings';\n\nconst DEFAULT_SETTINGS: AppearanceSettings = {\n theme: 'dark',\n brand: 'default',\n navPlacement: 'left',\n density: 'comfortable',\n radius: 'playful',\n customColor: '#f97316', // Default orange as fallback\n};\n\n/* ============================================================================\n UTILITIES\n ============================================================================ */\n\n/** Detect system color scheme preference */\n\n\n/** Convert hex color to RGB triplet string (e.g., \"255, 45, 138\") */\nfunction hexToRgb(hex: string): string {\n // Remove # if present\n const cleanHex = hex.replace(/^#/, '');\n\n // Parse hex values\n const r = parseInt(cleanHex.substring(0, 2), 16);\n const g = parseInt(cleanHex.substring(2, 4), 16);\n const b = parseInt(cleanHex.substring(4, 6), 16);\n\n // Validate parsed values\n if (isNaN(r) || isNaN(g) || isNaN(b)) {\n // Fallback to default orange if parsing fails\n return '249, 115, 22';\n }\n\n return `${r}, ${g}, ${b}`;\n}\n\n/** Generate a complementary/secondary color from primary */\nfunction generateSecondaryColor(hex: string): string {\n const cleanHex = hex.replace(/^#/, '');\n const r = parseInt(cleanHex.substring(0, 2), 16);\n const g = parseInt(cleanHex.substring(2, 4), 16);\n const b = parseInt(cleanHex.substring(4, 6), 16);\n\n if (isNaN(r) || isNaN(g) || isNaN(b)) {\n return '255, 208, 0'; // Default yellow\n }\n\n // Shift hue by ~60 degrees for a harmonious secondary\n // Simple approach: rotate RGB channels and boost brightness\n const secondary = {\n r: Math.min(255, g + 50),\n g: Math.min(255, b + 100),\n b: Math.min(255, r),\n };\n\n return `${secondary.r}, ${secondary.g}, ${secondary.b}`;\n}\n\n/** Load settings from localStorage */\nfunction loadSettings(): AppearanceSettings {\n if (typeof window === 'undefined') return DEFAULT_SETTINGS;\n\n try {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored) {\n const parsed = JSON.parse(stored) as Partial<AppearanceSettings>;\n return {\n theme: parsed.theme || DEFAULT_SETTINGS.theme,\n brand: parsed.brand || DEFAULT_SETTINGS.brand,\n navPlacement: parsed.navPlacement || DEFAULT_SETTINGS.navPlacement,\n density: parsed.density || DEFAULT_SETTINGS.density,\n radius: parsed.radius || DEFAULT_SETTINGS.radius,\n customColor: parsed.customColor || DEFAULT_SETTINGS.customColor,\n };\n }\n } catch {\n // Ignore parse errors\n }\n\n // Use default dark preference for initial theme if no stored value\n return {\n ...DEFAULT_SETTINGS,\n theme: 'dark',\n };\n}\n\n/** Save settings to localStorage */\nfunction saveSettings(settings: AppearanceSettings): void {\n if (typeof window === 'undefined') return;\n\n try {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(settings));\n } catch {\n // Ignore storage errors (e.g., private browsing)\n }\n}\n\n/** Apply settings to document.documentElement */\nfunction applySettings(settings: AppearanceSettings): void {\n if (typeof document === 'undefined') return;\n\n const root = document.documentElement;\n\n // Apply data attributes\n root.setAttribute('data-theme', settings.theme);\n root.setAttribute('data-brand', settings.brand);\n root.setAttribute('data-nav', settings.navPlacement);\n root.setAttribute('data-density', settings.density);\n root.setAttribute('data-radius', settings.radius);\n\n // Handle custom brand RGB injection\n if (settings.brand === 'custom') {\n const primaryRgb = hexToRgb(settings.customColor);\n const secondaryRgb = generateSecondaryColor(settings.customColor);\n\n // Inject custom CSS variables\n root.style.setProperty('--custom-accent-rgb', primaryRgb);\n root.style.setProperty('--custom-accent2-rgb', secondaryRgb);\n } else {\n // Clean up injected variables when switching away from custom brand\n root.style.removeProperty('--custom-accent-rgb');\n root.style.removeProperty('--custom-accent2-rgb');\n }\n}\n\n/** Check if user prefers reduced motion */\nfunction prefersReducedMotion(): boolean {\n if (typeof window === 'undefined') return false;\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n}\n\n/* ============================================================================\n CONTEXT\n ============================================================================ */\n\nconst AppearanceContext = createContext<AppearanceContextValue | null>(null);\n\n/* ============================================================================\n PROVIDER COMPONENT\n ============================================================================ */\n\nexport interface AppearanceProviderProps {\n /** Initial settings (overrides localStorage) */\n initialSettings?: Partial<AppearanceSettings>;\n /** Disable localStorage persistence */\n disablePersistence?: boolean;\n /** Children */\n children: React.ReactNode;\n}\n\nexport function AppearanceProvider({\n initialSettings,\n disablePersistence = false,\n children,\n}: AppearanceProviderProps) {\n // Start with deterministic defaults to avoid SSR/client hydration mismatch.\n // localStorage is read after mount in the effect below.\n const [settings, setSettings] = useState<AppearanceSettings>(() => ({\n ...DEFAULT_SETTINGS,\n ...initialSettings,\n }));\n\n // After hydration, sync with localStorage (runs once on mount)\n const [hydrated, setHydrated] = useState(false);\n useEffect(() => {\n if (!disablePersistence) {\n const loaded = loadSettings();\n setSettings({\n ...loaded,\n // initialSettings still take priority over localStorage\n ...initialSettings,\n });\n }\n setHydrated(true);\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n // Apply settings to DOM whenever they change\n useEffect(() => {\n applySettings(settings);\n if (!disablePersistence && hydrated) {\n saveSettings(settings);\n }\n }, [settings, disablePersistence, hydrated]);\n\n // Listen for system theme changes\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: light)');\n\n const handleChange = (e: MediaQueryListEvent) => {\n // Only auto-switch if user hasn't explicitly set a contrast variant\n setSettings((prev) => {\n if (prev.theme === 'light-contrast' || prev.theme === 'dark-contrast') {\n return prev; // Don't override contrast preferences\n }\n return {\n ...prev,\n theme: e.matches ? 'light' : 'dark',\n };\n });\n };\n\n mediaQuery.addEventListener('change', handleChange);\n return () => mediaQuery.removeEventListener('change', handleChange);\n }, []);\n\n // Listen for reduced motion preference changes\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)');\n\n // Initial check is handled by CSS media queries in tokens.css\n // This effect ensures we respect the preference dynamically\n const handleChange = () => {\n // Re-apply settings to ensure any motion-dependent values are updated\n applySettings(settings);\n };\n\n mediaQuery.addEventListener('change', handleChange);\n return () => mediaQuery.removeEventListener('change', handleChange);\n }, [settings]);\n\n const setTheme = useCallback((theme: Theme) => {\n setSettings((prev) => ({ ...prev, theme }));\n }, []);\n\n const setBrand = useCallback((brand: Brand) => {\n setSettings((prev) => ({ ...prev, brand }));\n }, []);\n\n const setNavPlacement = useCallback((navPlacement: NavPlacement) => {\n setSettings((prev) => ({ ...prev, navPlacement }));\n }, []);\n\n const setDensity = useCallback((density: Density) => {\n setSettings((prev) => ({ ...prev, density }));\n }, []);\n\n const setRadius = useCallback((radius: Radius) => {\n setSettings((prev) => ({ ...prev, radius }));\n }, []);\n\n const setCustomColor = useCallback((customColor: string) => {\n setSettings((prev) => ({ ...prev, customColor, brand: 'custom' }));\n }, []);\n\n const setAppearance = useCallback((partial: Partial<AppearanceSettings>) => {\n setSettings((prev) => ({ ...prev, ...partial }));\n }, []);\n\n const resetToDefaults = useCallback(() => {\n setSettings(DEFAULT_SETTINGS);\n }, []);\n\n const contextValue: AppearanceContextValue = {\n ...settings,\n setTheme,\n setBrand,\n setNavPlacement,\n setDensity,\n setRadius,\n setCustomColor,\n setAppearance,\n resetToDefaults,\n };\n\n return <AppearanceContext.Provider value={contextValue}>{children}</AppearanceContext.Provider>;\n}\n\n/* ============================================================================\n HOOK\n ============================================================================ */\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useAppearance(): AppearanceContextValue {\n const context = useContext(AppearanceContext);\n\n if (!context) {\n throw new Error('useAppearance must be used within an AppearanceProvider');\n }\n\n return context;\n}\n\n/* ============================================================================\n STANDALONE UTILITY (for use outside React, e.g., SSR or initial load)\n ============================================================================ */\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function initializeAppearance(settings?: Partial<AppearanceSettings>): void {\n const loaded = loadSettings();\n const merged = { ...loaded, ...settings };\n applySettings(merged);\n}\n\n/* ============================================================================\n UTILITY EXPORTS\n ============================================================================ */\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport { hexToRgb, prefersReducedMotion };\n","import React, { useId } from 'react';\nimport clsx from 'clsx';\nimport {\n useAppearance,\n Theme,\n Brand,\n NavPlacement,\n Density,\n Radius,\n} from '../../theme/AppearanceProvider';\nimport './AppearancePanel.css';\n\n/* ============================================================================\n APPEARANCE PANEL — Internal Settings UI\n ============================================================================ */\n\n/** All translatable labels for the AppearancePanel. */\nexport interface AppearancePanelLabels {\n /** Panel heading. @default \"Appearance Settings\" */\n title?: string;\n /** Theme section heading. @default \"Theme\" */\n themeHeading?: string;\n /** Brand section heading. @default \"Brand\" */\n brandHeading?: string;\n /** Density section heading. @default \"Density\" */\n densityHeading?: string;\n /** Geometry section heading. @default \"Geometry\" */\n geometryHeading?: string;\n /** Navigation section heading. @default \"Navigation Layout\" */\n navHeading?: string;\n /** Accent color label (shown for Custom brand). @default \"Accent Color\" */\n accentColorLabel?: string;\n /** Reset button text. @default \"Reset to Defaults\" */\n resetLabel?: string;\n\n /* Theme options */\n themeLight?: string;\n themeLightContrast?: string;\n themeDark?: string;\n themeDarkContrast?: string;\n\n /* Brand options */\n brandDefault?: string;\n brandDefaultDescription?: string;\n brandSalesmind?: string;\n brandSalesmindDescription?: string;\n brandCustom?: string;\n brandCustomDescription?: string;\n\n /* Density options */\n densityComfortable?: string;\n densityComfortableDescription?: string;\n densityCompact?: string;\n densityCompactDescription?: string;\n\n /* Radius / geometry options */\n radiusPlayful?: string;\n radiusPlayfulDescription?: string;\n radiusSharp?: string;\n radiusSharpDescription?: string;\n\n /* Navigation options */\n navLeft?: string;\n navRight?: string;\n navBottom?: string;\n}\n\nexport interface AppearancePanelProps {\n /** Custom class name */\n className?: string;\n /** Override default English labels for i18n. */\n labels?: AppearancePanelLabels;\n}\n\nexport const AppearancePanel = React.forwardRef<HTMLDivElement, AppearancePanelProps>(\n ({ className, labels: l }, ref) => {\n const {\n theme,\n brand,\n navPlacement,\n density,\n radius,\n customColor,\n setTheme,\n setBrand,\n setNavPlacement,\n setDensity,\n setRadius,\n setCustomColor,\n resetToDefaults,\n } = useAppearance();\n\n // Generate unique IDs for accessibility\n const colorPickerId = useId();\n\n // Build option arrays from labels (fallback to English defaults)\n const themeOptions: { value: Theme; label: string }[] = [\n { value: 'light', label: l?.themeLight ?? 'Light' },\n { value: 'light-contrast', label: l?.themeLightContrast ?? 'Light (High Contrast)' },\n { value: 'dark', label: l?.themeDark ?? 'Dark' },\n { value: 'dark-contrast', label: l?.themeDarkContrast ?? 'Dark (High Contrast)' },\n ];\n\n const brandOptions: { value: Brand; label: string; description: string }[] = [\n { value: 'default', label: l?.brandDefault ?? 'Default', description: l?.brandDefaultDescription ?? 'Warm Intelligence' },\n { value: 'salesmind', label: l?.brandSalesmind ?? 'SalesMind', description: l?.brandSalesmindDescription ?? 'Pink-red + Gold' },\n { value: 'custom', label: l?.brandCustom ?? 'Custom', description: l?.brandCustomDescription ?? 'Your color' },\n ];\n\n const navOptions: { value: NavPlacement; label: string }[] = [\n { value: 'left', label: l?.navLeft ?? 'Left Sidebar' },\n { value: 'right', label: l?.navRight ?? 'Right Sidebar' },\n { value: 'bottom', label: l?.navBottom ?? 'Bottom Tabs' },\n ];\n\n const densityOptions: { value: Density; label: string; description: string }[] = [\n { value: 'comfortable', label: l?.densityComfortable ?? 'Comfortable', description: l?.densityComfortableDescription ?? 'Generous spacing' },\n { value: 'compact', label: l?.densityCompact ?? 'Compact', description: l?.densityCompactDescription ?? 'Higher density' },\n ];\n\n const radiusOptions: { value: Radius; label: string; description: string }[] = [\n { value: 'playful', label: l?.radiusPlayful ?? 'Playful', description: l?.radiusPlayfulDescription ?? 'Rounded corners' },\n { value: 'sharp', label: l?.radiusSharp ?? 'Sharp', description: l?.radiusSharpDescription ?? 'Technical feel' },\n ];\n\n return (\n <div ref={ref} className={clsx('ds-appearance-panel', className)}>\n <h3 className=\"ds-appearance-panel__title\">{l?.title ?? 'Appearance Settings'}</h3>\n\n {/* Theme Section */}\n <fieldset className=\"ds-appearance-panel__section\">\n <legend className=\"ds-appearance-panel__legend\">{l?.themeHeading ?? 'Theme'}</legend>\n <div className=\"ds-appearance-panel__options\">\n {themeOptions.map((option) => (\n <label\n key={option.value}\n className={clsx(\n 'ds-appearance-panel__option',\n theme === option.value && 'ds-appearance-panel__option--active',\n )}\n >\n <input\n type=\"radio\"\n name=\"theme\"\n value={option.value}\n checked={theme === option.value}\n onChange={() => setTheme(option.value)}\n className=\"ds-appearance-panel__radio\"\n />\n <span className=\"ds-appearance-panel__option-label\">{option.label}</span>\n </label>\n ))}\n </div>\n </fieldset>\n\n {/* Brand Section */}\n <fieldset className=\"ds-appearance-panel__section\">\n <legend className=\"ds-appearance-panel__legend\">{l?.brandHeading ?? 'Brand'}</legend>\n <div className=\"ds-appearance-panel__options\">\n {brandOptions.map((option) => (\n <label\n key={option.value}\n className={clsx(\n 'ds-appearance-panel__option',\n brand === option.value && 'ds-appearance-panel__option--active',\n )}\n >\n <input\n type=\"radio\"\n name=\"brand\"\n value={option.value}\n checked={brand === option.value}\n onChange={() => setBrand(option.value)}\n className=\"ds-appearance-panel__radio\"\n />\n <span className=\"ds-appearance-panel__option-content\">\n <span className=\"ds-appearance-panel__option-label\">{option.label}</span>\n <span className=\"ds-appearance-panel__option-description\">\n {option.description}\n </span>\n </span>\n </label>\n ))}\n </div>\n\n {/* Color Picker (shown only for Custom brand) */}\n {brand === 'custom' && (\n <div className=\"ds-appearance-panel__color-picker\">\n <label htmlFor={colorPickerId} className=\"ds-appearance-panel__color-label\">\n {l?.accentColorLabel ?? 'Accent Color'}\n </label>\n <div className=\"ds-appearance-panel__color-input-wrapper\">\n <input\n type=\"color\"\n id={colorPickerId}\n value={customColor}\n onChange={(e) => setCustomColor(e.target.value)}\n className=\"ds-appearance-panel__color-input\"\n />\n <span className=\"ds-appearance-panel__color-value\">\n {customColor.toUpperCase()}\n </span>\n </div>\n </div>\n )}\n </fieldset>\n\n {/* Density Section */}\n <fieldset className=\"ds-appearance-panel__section\">\n <legend className=\"ds-appearance-panel__legend\">{l?.densityHeading ?? 'Density'}</legend>\n <div className=\"ds-appearance-panel__options ds-appearance-panel__options--row\">\n {densityOptions.map((option) => (\n <label\n key={option.value}\n className={clsx(\n 'ds-appearance-panel__option',\n 'ds-appearance-panel__option--toggle',\n density === option.value && 'ds-appearance-panel__option--active',\n )}\n >\n <input\n type=\"radio\"\n name=\"density\"\n value={option.value}\n checked={density === option.value}\n onChange={() => setDensity(option.value)}\n className=\"ds-appearance-panel__radio\"\n />\n <span className=\"ds-appearance-panel__option-content\">\n <span className=\"ds-appearance-panel__option-label\">{option.label}</span>\n <span className=\"ds-appearance-panel__option-description\">\n {option.description}\n </span>\n </span>\n </label>\n ))}\n </div>\n </fieldset>\n\n {/* Geometry Section */}\n <fieldset className=\"ds-appearance-panel__section\">\n <legend className=\"ds-appearance-panel__legend\">{l?.geometryHeading ?? 'Geometry'}</legend>\n <div className=\"ds-appearance-panel__options ds-appearance-panel__options--row\">\n {radiusOptions.map((option) => (\n <label\n key={option.value}\n className={clsx(\n 'ds-appearance-panel__option',\n 'ds-appearance-panel__option--toggle',\n radius === option.value && 'ds-appearance-panel__option--active',\n )}\n >\n <input\n type=\"radio\"\n name=\"radius\"\n value={option.value}\n checked={radius === option.value}\n onChange={() => setRadius(option.value)}\n className=\"ds-appearance-panel__radio\"\n />\n <span className=\"ds-appearance-panel__option-content\">\n <span className=\"ds-appearance-panel__option-label\">{option.label}</span>\n <span className=\"ds-appearance-panel__option-description\">\n {option.description}\n </span>\n </span>\n </label>\n ))}\n </div>\n </fieldset>\n\n {/* Navigation Section */}\n <fieldset className=\"ds-appearance-panel__section\">\n <legend className=\"ds-appearance-panel__legend\">{l?.navHeading ?? 'Navigation Layout'}</legend>\n <div className=\"ds-appearance-panel__options\">\n {navOptions.map((option) => (\n <label\n key={option.value}\n className={clsx(\n 'ds-appearance-panel__option',\n navPlacement === option.value && 'ds-appearance-panel__option--active',\n )}\n >\n <input\n type=\"radio\"\n name=\"nav\"\n value={option.value}\n checked={navPlacement === option.value}\n onChange={() => setNavPlacement(option.value)}\n className=\"ds-appearance-panel__radio\"\n />\n <span className=\"ds-appearance-panel__option-label\">{option.label}</span>\n </label>\n ))}\n </div>\n </fieldset>\n\n {/* Reset Button */}\n <button type=\"button\" onClick={resetToDefaults} className=\"ds-appearance-panel__reset\">\n {l?.resetLabel ?? 'Reset to Defaults'}\n </button>\n </div>\n );\n },\n);\n\nAppearancePanel.displayName = 'AppearancePanel';\n","import React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport './Button.css';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Visual style variant of the button */\n variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'link' | 'destructive';\n /** Size of the button */\n size?: 'sm' | 'md' | 'lg' | 'icon';\n /** Shows a loading spinner and disables the button */\n isLoading?: boolean;\n /**\n * When true, the button renders its child as the root element via Radix Slot.\n * Use this to compose with routing Link components or anchors.\n *\n * @example\n * <Button asChild>\n * <a href=\"/about\">About</a>\n * </Button>\n */\n asChild?: boolean;\n}\n\n/**\n * Primary UI action component with multiple visual variants and polymorphic rendering.\n *\n * Supports `asChild` for rendering as any element (Link, anchor, etc.)\n * while preserving button styling.\n */\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant = 'primary', size = 'md', asChild = false, isLoading = false, children, disabled, ...props }, ref) => {\n const buttonClass = clsx(\n 'ds-button',\n `ds-button--${variant}`,\n size === 'icon' ? 'ds-button--icon ds-button--md' : `ds-button--${size}`,\n isLoading && 'ds-button--loading',\n className,\n );\n\n // When asChild, Slot must receive exactly one child element.\n // Loading state is handled via the ds-button--loading CSS class.\n if (asChild) {\n return (\n <Slot\n ref={ref}\n aria-disabled={isLoading || disabled || undefined}\n className={buttonClass}\n {...props}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <button\n ref={ref}\n disabled={isLoading || disabled}\n className={buttonClass}\n {...props}\n >\n {isLoading && (\n <svg\n className=\"ds-button__spinner\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\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=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n )}\n <span className={clsx(\"ds-button__content\", isLoading && \"ds-button__content--hidden\")}>\n {children}\n </span>\n </button>\n );\n },\n);\n\nButton.displayName = 'Button';\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 React from 'react';\nimport { Input as BaseInput } from '@base-ui/react/input';\nimport clsx from 'clsx';\nimport './TextField.css';\n\nexport interface TextFieldProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: string;\n error?: boolean;\n helperText?: string;\n endAdornment?: React.ReactNode;\n}\n\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n ({ className, label, error, helperText, endAdornment, id, ...props }, ref) => {\n const generatedId = React.useId();\n const inputId = id || generatedId;\n\n return (\n <div className={clsx('ds-textfield', className)}>\n {label && (\n <label htmlFor={inputId} className=\"ds-textfield__label\">\n {label}\n </label>\n )}\n <div className=\"ds-textfield__input-wrapper\">\n <BaseInput\n id={inputId}\n ref={ref}\n className={clsx(\n 'ds-textfield__input',\n error && 'ds-textfield__input--error',\n endAdornment && 'ds-textfield__input--adorned',\n )}\n {...props}\n />\n {endAdornment && <div className=\"ds-textfield__adornment\">{endAdornment}</div>}\n </div>\n {helperText && (\n <span className={clsx('ds-textfield__helper', error && 'ds-textfield__helper--error')}>\n {helperText}\n </span>\n )}\n </div>\n );\n },\n);\n\nTextField.displayName = 'TextField';\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 from 'react';\nimport { Checkbox as BaseCheckbox } from '@base-ui/react/checkbox';\nimport clsx from 'clsx';\nimport './Checkbox.css';\n\nexport interface CheckboxProps {\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 Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n ({ className, label, id, ...props }, ref) => {\n const generatedId = React.useId();\n const checkboxId = id || generatedId;\n\n return (\n <div className={clsx('ds-checkbox-wrapper', className)}>\n <BaseCheckbox.Root id={checkboxId} ref={ref} className=\"ds-checkbox\" {...props}>\n <BaseCheckbox.Indicator className=\"ds-checkbox__indicator\">\n <svg\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"ds-checkbox__icon\"\n >\n <path\n d=\"M11.6666 3.5L5.24992 9.91667L2.33325 7\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </BaseCheckbox.Indicator>\n </BaseCheckbox.Root>\n {label && (\n <label htmlFor={checkboxId} className=\"ds-checkbox__label\">\n {label}\n </label>\n )}\n </div>\n );\n },\n);\n\nCheckbox.displayName = 'Checkbox';\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 { Dialog as BaseDialog } from '@base-ui/react/dialog';\nimport clsx from 'clsx';\nimport './Dialog.css';\n\nexport const Dialog = BaseDialog.Root;\nexport const DialogTrigger = BaseDialog.Trigger;\nexport const DialogClose = BaseDialog.Close;\nexport const DialogTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <BaseDialog.Title ref={ref} className={clsx('ds-dialog__title', className)} {...props} />\n));\nDialogTitle.displayName = 'DialogTitle';\n\nexport const DialogDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <BaseDialog.Description\n ref={ref}\n className={clsx('ds-dialog__description', className)}\n {...props}\n />\n));\nDialogDescription.displayName = 'DialogDescription';\n\nexport const DialogContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <BaseDialog.Portal>\n <BaseDialog.Backdrop className=\"ds-dialog__backdrop\" />\n <BaseDialog.Popup ref={ref} className={clsx('ds-dialog__content', className)} {...props}>\n {children}\n </BaseDialog.Popup>\n </BaseDialog.Portal>\n ),\n);\nDialogContent.displayName = 'DialogContent';\n\n/**\n * Semantic header section for a dialog, typically containing\n * DialogTitle and DialogDescription.\n */\nexport const DialogHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-dialog__header', className)} {...props} />\n ),\n);\nDialogHeader.displayName = 'DialogHeader';\n\n/**\n * Footer section for dialog actions (confirm, cancel, etc.).\n * Renders children in a right-aligned flex row with standard gap.\n */\nexport const DialogFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-dialog__footer', className)} {...props} />\n ),\n);\nDialogFooter.displayName = 'DialogFooter';\n","import React from 'react';\nimport { Tooltip as BaseTooltip } from '@base-ui/react/tooltip';\nimport clsx from 'clsx';\nimport './Tooltip.css';\n\nexport const TooltipProvider = BaseTooltip.Provider;\nexport const TooltipRoot = BaseTooltip.Root;\nexport const TooltipTrigger = BaseTooltip.Trigger;\n\nexport const TooltipContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, children, ...props }, ref) => (\n <BaseTooltip.Portal>\n <BaseTooltip.Positioner sideOffset={5}>\n <BaseTooltip.Popup ref={ref} className={clsx('ds-tooltip__content', className)} {...props}>\n {children}\n <BaseTooltip.Arrow className=\"ds-tooltip__arrow\" />\n </BaseTooltip.Popup>\n </BaseTooltip.Positioner>\n </BaseTooltip.Portal>\n));\nTooltipContent.displayName = 'TooltipContent';\n\nexport interface TooltipProps {\n content: React.ReactNode;\n children: React.ReactNode;\n delay?: number;\n}\n\nexport const Tooltip = ({ content, children, delay = 200 }: TooltipProps) => {\n return (\n <BaseTooltip.Provider delay={delay}>\n <BaseTooltip.Root>\n <BaseTooltip.Trigger render={children as React.ReactElement} />\n <TooltipContent>{content}</TooltipContent>\n </BaseTooltip.Root>\n </BaseTooltip.Provider>\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Badge.css';\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Visual style variant */\n variant?: 'default' | 'secondary' | 'outline' | 'destructive';\n}\n\n/**\n * General-purpose badge for tags, labels, categories, and status indicators.\n *\n * For status-specific badges (success/warning/error/info), use `StatusBadge` instead.\n *\n * @example\n * <Badge>New</Badge>\n * <Badge variant=\"secondary\">Category</Badge>\n * <Badge variant=\"outline\">v2.1.0</Badge>\n * <Badge variant=\"destructive\">Breaking</Badge>\n */\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant = 'default', ...props }, ref) => {\n return (\n <span\n ref={ref}\n className={clsx('ds-badge', `ds-badge--${variant}`, className)}\n {...props}\n />\n );\n },\n);\n\nBadge.displayName = 'Badge';\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 { Menu as BaseMenu } from '@base-ui/react/menu';\nimport clsx from 'clsx';\nimport './DropdownMenu.css';\n\n/* ============================================================================\n DROPDOWN MENU ROOT\n ============================================================================ */\n\nexport const DropdownMenu = BaseMenu.Root;\n\n/* ============================================================================\n DROPDOWN MENU TRIGGER\n ============================================================================ */\n\nexport const DropdownMenuTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & { className?: string }\n>(({ className, ...props }, ref) => {\n return (\n <BaseMenu.Trigger\n ref={ref}\n className={clsx('ds-dropdown-menu__trigger', className)}\n {...props}\n />\n );\n});\n\nDropdownMenuTrigger.displayName = 'DropdownMenuTrigger';\n\n/* ============================================================================\n DROPDOWN MENU CONTENT\n ============================================================================ */\n\nexport interface DropdownMenuContentProps extends React.HTMLAttributes<HTMLDivElement> {\n side?: 'top' | 'right' | 'bottom' | 'left';\n align?: 'start' | 'center' | 'end';\n sideOffset?: number;\n alignOffset?: number;\n}\n\nexport const DropdownMenuContent = React.forwardRef<HTMLDivElement, DropdownMenuContentProps>(\n (\n { className, side = 'bottom', align = 'start', sideOffset = 4, alignOffset = 0, ...props },\n ref,\n ) => {\n return (\n <BaseMenu.Portal>\n <BaseMenu.Positioner\n side={side}\n align={align}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n >\n <BaseMenu.Popup\n ref={ref}\n className={clsx('ds-dropdown-menu__content', className)}\n {...props}\n />\n </BaseMenu.Positioner>\n </BaseMenu.Portal>\n );\n },\n);\n\nDropdownMenuContent.displayName = 'DropdownMenuContent';\n\n/* ============================================================================\n DROPDOWN MENU ITEM\n ============================================================================ */\n\nexport interface DropdownMenuItemProps extends React.HTMLAttributes<HTMLDivElement> {\n disabled?: boolean;\n}\n\nexport const DropdownMenuItem = React.forwardRef<HTMLDivElement, DropdownMenuItemProps>(\n ({ className, ...props }, ref) => {\n return (\n <BaseMenu.Item ref={ref} className={clsx('ds-dropdown-menu__item', className)} {...props} />\n );\n },\n);\n\nDropdownMenuItem.displayName = 'DropdownMenuItem';\n\n/* ============================================================================\n DROPDOWN MENU SEPARATOR\n ============================================================================ */\n\nexport const DropdownMenuSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n return <div ref={ref} className={clsx('ds-dropdown-menu__separator', className)} {...props} />;\n});\n\nDropdownMenuSeparator.displayName = 'DropdownMenuSeparator';\n\n/* ============================================================================\n DROPDOWN MENU LABEL\n ============================================================================ */\n\nexport const DropdownMenuLabel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n return <div ref={ref} className={clsx('ds-dropdown-menu__label', className)} {...props} />;\n});\n\nDropdownMenuLabel.displayName = 'DropdownMenuLabel';\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","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 './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, ...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 onClick={() => toggle(value)}\n {...props}\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","import 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 clsx from 'clsx';\nimport './Avatar.css';\n\n/* ==========================================================================\n Context\n ========================================================================== */\n\ninterface AvatarContextValue {\n hasImage: boolean;\n imageError: boolean;\n onImageError: () => void;\n}\n\nconst AvatarContext = React.createContext<AvatarContextValue>({\n hasImage: false,\n imageError: false,\n onImageError: () => {},\n});\n\n/* ==========================================================================\n Avatar (root)\n ========================================================================== */\n\nexport interface AvatarProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n}\n\n/**\n * User avatar with image and fallback support.\n *\n * @example\n * <Avatar>\n * <AvatarImage src=\"/photo.jpg\" alt=\"User\" />\n * <AvatarFallback>JD</AvatarFallback>\n * </Avatar>\n */\nexport const Avatar = React.forwardRef<HTMLSpanElement, AvatarProps>(\n ({ size = 'md', className, children, ...props }, ref) => {\n const [imageError, setImageError] = React.useState(false);\n const [hasImage, setHasImage] = React.useState(false);\n\n // Scan children to detect if an AvatarImage is present\n React.useEffect(() => {\n let found = false;\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child) && child.type === AvatarImage) {\n found = true;\n }\n });\n setHasImage(found);\n }, [children]);\n\n const onImageError = React.useCallback(() => {\n setImageError(true);\n }, []);\n\n return (\n <AvatarContext.Provider value={{ hasImage, imageError, onImageError }}>\n <span\n ref={ref}\n className={clsx('ds-avatar', `ds-avatar--${size}`, className)}\n {...props}\n >\n {children}\n </span>\n </AvatarContext.Provider>\n );\n },\n);\n\nAvatar.displayName = 'Avatar';\n\n/* ==========================================================================\n AvatarImage\n ========================================================================== */\n\nexport const AvatarImage = React.forwardRef<\n HTMLImageElement,\n React.ImgHTMLAttributes<HTMLImageElement>\n>(({ className, onError, ...props }, ref) => {\n const { imageError, onImageError } = React.useContext(AvatarContext);\n\n const handleError = (e: React.SyntheticEvent<HTMLImageElement>) => {\n onImageError();\n onError?.(e);\n };\n\n if (imageError) return null;\n\n return (\n <img\n ref={ref}\n className={clsx('ds-avatar__image', className)}\n onError={handleError}\n {...props}\n />\n );\n});\n\nAvatarImage.displayName = 'AvatarImage';\n\n/* ==========================================================================\n AvatarFallback\n ========================================================================== */\n\nexport const AvatarFallback = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => {\n const { hasImage, imageError } = React.useContext(AvatarContext);\n\n // Show fallback when there is no image, or the image failed to load\n if (hasImage && !imageError) return null;\n\n return (\n <span ref={ref} className={clsx('ds-avatar__fallback', className)} {...props} />\n );\n});\n\nAvatarFallback.displayName = 'AvatarFallback';\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 { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport './Breadcrumb.css';\n\n/* ==========================================================================\n Breadcrumb (nav)\n ========================================================================== */\n\nexport interface BreadcrumbProps extends React.HTMLAttributes<HTMLElement> {\n /** Override the default aria-label for the nav element. @default \"Breadcrumb\" */\n 'aria-label'?: string;\n}\n\n/**\n * Navigation breadcrumb trail. Wrap `BreadcrumbList`, `BreadcrumbItem`,\n * `BreadcrumbLink`, and `BreadcrumbPage` inside this root element.\n *\n * @example\n * <Breadcrumb>\n * <BreadcrumbList>\n * <BreadcrumbItem>\n * <BreadcrumbLink href=\"/\">Home</BreadcrumbLink>\n * </BreadcrumbItem>\n * <BreadcrumbSeparator />\n * <BreadcrumbItem>\n * <BreadcrumbPage>Current</BreadcrumbPage>\n * </BreadcrumbItem>\n * </BreadcrumbList>\n * </Breadcrumb>\n */\nexport const Breadcrumb = React.forwardRef<HTMLElement, BreadcrumbProps>(\n ({ className, 'aria-label': ariaLabel = 'Breadcrumb', ...props }, ref) => {\n return (\n <nav\n ref={ref}\n aria-label={ariaLabel}\n className={clsx('ds-breadcrumb', className)}\n {...props}\n />\n );\n },\n);\n\nBreadcrumb.displayName = 'Breadcrumb';\n\n/* ==========================================================================\n BreadcrumbList (ol)\n ========================================================================== */\n\nexport type BreadcrumbListProps = React.OlHTMLAttributes<HTMLOListElement>;\n\nexport const BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n BreadcrumbListProps\n>(({ className, ...props }, ref) => {\n return (\n <ol\n ref={ref}\n className={clsx('ds-breadcrumb__list', className)}\n {...props}\n />\n );\n});\n\nBreadcrumbList.displayName = 'BreadcrumbList';\n\n/* ==========================================================================\n BreadcrumbItem (li)\n ========================================================================== */\n\nexport type BreadcrumbItemProps = React.LiHTMLAttributes<HTMLLIElement>;\n\nexport const BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n BreadcrumbItemProps\n>(({ className, ...props }, ref) => {\n return (\n <li\n ref={ref}\n className={clsx('ds-breadcrumb__item', className)}\n {...props}\n />\n );\n});\n\nBreadcrumbItem.displayName = 'BreadcrumbItem';\n\n/* ==========================================================================\n BreadcrumbLink (a)\n ========================================================================== */\n\nexport interface BreadcrumbLinkProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n /**\n * When true, renders its child as the root element via Radix Slot.\n * Use this to compose with routing Link components.\n */\n asChild?: boolean;\n}\n\nexport const BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n BreadcrumbLinkProps\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n ref={ref}\n className={clsx('ds-breadcrumb__link', className)}\n {...props}\n />\n );\n});\n\nBreadcrumbLink.displayName = 'BreadcrumbLink';\n\n/* ==========================================================================\n BreadcrumbPage (span — current page)\n ========================================================================== */\n\nexport type BreadcrumbPageProps = React.HTMLAttributes<HTMLSpanElement>;\n\nexport const BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n BreadcrumbPageProps\n>(({ className, ...props }, ref) => {\n return (\n <span\n ref={ref}\n role=\"link\"\n aria-current=\"page\"\n aria-disabled=\"true\"\n className={clsx('ds-breadcrumb__page', className)}\n {...props}\n />\n );\n});\n\nBreadcrumbPage.displayName = 'BreadcrumbPage';\n\n/* ==========================================================================\n BreadcrumbSeparator (li — decorative)\n ========================================================================== */\n\nexport type BreadcrumbSeparatorProps = React.LiHTMLAttributes<HTMLLIElement>;\n\nexport const BreadcrumbSeparator = React.forwardRef<\n HTMLLIElement,\n BreadcrumbSeparatorProps\n>(({ className, children, ...props }, ref) => {\n return (\n <li\n ref={ref}\n role=\"presentation\"\n aria-hidden=\"true\"\n className={clsx('ds-breadcrumb__separator', className)}\n {...props}\n >\n {children ?? '/'}\n </li>\n );\n});\n\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\n\n/* ==========================================================================\n BreadcrumbEllipsis (span — truncation indicator)\n ========================================================================== */\n\nexport type BreadcrumbEllipsisProps = React.HTMLAttributes<HTMLSpanElement>;\n\nexport const BreadcrumbEllipsis = React.forwardRef<\n HTMLSpanElement,\n BreadcrumbEllipsisProps\n>(({ className, ...props }, ref) => {\n return (\n <span\n ref={ref}\n className={clsx('ds-breadcrumb__ellipsis', className)}\n {...props}\n >\n &hellip;\n </span>\n );\n});\n\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis';\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 './ToggleGroup.css';\n\n/* ==========================================================================\n Context\n ========================================================================== */\n\ninterface ToggleGroupContextValue {\n type: 'single' | 'multiple';\n value: string[];\n onItemToggle: (itemValue: string) => void;\n}\n\nconst ToggleGroupContext = React.createContext<ToggleGroupContextValue>({\n type: 'single',\n value: [],\n onItemToggle: () => {},\n});\n\n/* ==========================================================================\n ToggleGroup (div — role=\"group\")\n ========================================================================== */\n\nexport interface ToggleGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Whether a single or multiple items can be pressed at once. */\n type: 'single' | 'multiple';\n /** The controlled value(s). String for single, string[] for multiple. */\n value?: string | string[];\n /** Callback when value changes. */\n onValueChange?: (value: string | string[]) => void;\n}\n\n/**\n * A group of toggle buttons where one or more can be selected.\n *\n * @example\n * <ToggleGroup type=\"single\" value=\"center\" onValueChange={setValue}>\n * <ToggleGroupItem value=\"left\">Left</ToggleGroupItem>\n * <ToggleGroupItem value=\"center\">Center</ToggleGroupItem>\n * <ToggleGroupItem value=\"right\">Right</ToggleGroupItem>\n * </ToggleGroup>\n */\nexport const ToggleGroup = React.forwardRef<HTMLDivElement, ToggleGroupProps>(\n ({ className, type, value, onValueChange, children, ...props }, ref) => {\n const normalizedValue = React.useMemo<string[]>(() => {\n if (value === undefined) return [];\n return Array.isArray(value) ? value : [value];\n }, [value]);\n\n const onItemToggle = React.useCallback(\n (itemValue: string) => {\n if (type === 'single') {\n const next = normalizedValue.includes(itemValue) ? '' : itemValue;\n onValueChange?.(next);\n } else {\n const next = normalizedValue.includes(itemValue)\n ? normalizedValue.filter((v) => v !== itemValue)\n : [...normalizedValue, itemValue];\n onValueChange?.(next);\n }\n },\n [type, normalizedValue, onValueChange],\n );\n\n const ctx = React.useMemo<ToggleGroupContextValue>(\n () => ({ type, value: normalizedValue, onItemToggle }),\n [type, normalizedValue, onItemToggle],\n );\n\n return (\n <ToggleGroupContext.Provider value={ctx}>\n <div\n ref={ref}\n role=\"group\"\n className={clsx('ds-toggle-group', className)}\n {...props}\n >\n {children}\n </div>\n </ToggleGroupContext.Provider>\n );\n },\n);\n\nToggleGroup.displayName = 'ToggleGroup';\n\n/* ==========================================================================\n ToggleGroupItem (button)\n ========================================================================== */\n\nexport interface ToggleGroupItemProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** The value this item represents. */\n value: string;\n}\n\nexport const ToggleGroupItem = React.forwardRef<\n HTMLButtonElement,\n ToggleGroupItemProps\n>(({ className, value, children, onClick, ...props }, ref) => {\n const ctx = React.useContext(ToggleGroupContext);\n const pressed = ctx.value.includes(value);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n ctx.onItemToggle(value);\n onClick?.(e);\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-pressed={pressed}\n className={clsx(\n 'ds-toggle-group__item',\n pressed && 'ds-toggle-group__item--pressed',\n className,\n )}\n onClick={handleClick}\n {...props}\n >\n {children}\n </button>\n );\n});\n\nToggleGroupItem.displayName = 'ToggleGroupItem';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Slider.css';\n\nexport interface SliderProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Current value (controlled). */\n value?: number;\n /** Default value (uncontrolled). */\n defaultValue?: number;\n /** Minimum value. */\n min?: number;\n /** Maximum value. */\n max?: number;\n /** Step increment. */\n step?: number;\n /** Callback fired when the value changes. */\n onValueChange?: (value: number) => void;\n /** Whether the slider is disabled. */\n disabled?: boolean;\n}\n\nexport const Slider = React.forwardRef<HTMLDivElement, SliderProps>(\n (\n {\n className,\n value: controlledValue,\n defaultValue = 50,\n min = 0,\n max = 100,\n step = 1,\n onValueChange,\n disabled = false,\n ...props\n },\n ref,\n ) => {\n const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);\n\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : uncontrolledValue;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const next = Number(e.target.value);\n if (!isControlled) {\n setUncontrolledValue(next);\n }\n onValueChange?.(next);\n };\n\n const percentage = ((value - min) / (max - min)) * 100;\n\n return (\n <div\n ref={ref}\n className={clsx('ds-slider', disabled && 'ds-slider--disabled', className)}\n {...props}\n >\n <div className=\"ds-slider__track\">\n <div\n className=\"ds-slider__range\"\n style={{ width: `${percentage}%` }}\n />\n </div>\n <input\n type=\"range\"\n className=\"ds-slider__thumb\"\n role=\"slider\"\n min={min}\n max={max}\n step={step}\n value={value}\n disabled={disabled}\n onChange={handleChange}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={value}\n />\n </div>\n );\n },\n);\n\nSlider.displayName = 'Slider';\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 { CSSProperties } from 'react';\nimport { SPACING } from '../../tokens/spacing';\n\ntype SpacingValue = keyof typeof SPACING | number | string;\n\n/**\n * Named spacing aliases that map semantic sizes to DS space tokens.\n * Allows consumers to pass gap=\"lg\" instead of gap={6}.\n */\nconst SPACING_ALIASES: Record<string, string> = {\n xs: 'var(--space-2)',\n sm: 'var(--space-3)',\n md: 'var(--space-4)',\n lg: 'var(--space-6)',\n xl: 'var(--space-8)',\n '2xl': 'var(--space-12)',\n};\n\nexport function resolveSpacing(value: SpacingValue | undefined): string | undefined {\n if (value === undefined) return undefined;\n if (typeof value === 'number' && SPACING[value as keyof typeof SPACING]) {\n return SPACING[value as keyof typeof SPACING];\n }\n if (typeof value === 'string' && value in SPACING_ALIASES) {\n return SPACING_ALIASES[value];\n }\n return String(value);\n}\n\nexport interface SpacingProps {\n m?: SpacingValue;\n mt?: SpacingValue;\n mb?: SpacingValue;\n ml?: SpacingValue;\n mr?: SpacingValue;\n mx?: SpacingValue;\n my?: SpacingValue;\n p?: SpacingValue;\n pt?: SpacingValue;\n pb?: SpacingValue;\n pl?: SpacingValue;\n pr?: SpacingValue;\n px?: SpacingValue;\n py?: SpacingValue;\n gap?: SpacingValue;\n}\n\nexport function extractSpacingStyles(props: SpacingProps): CSSProperties {\n const styles: CSSProperties = {};\n\n if (props.m !== undefined) styles.margin = resolveSpacing(props.m);\n if (props.mt !== undefined) styles.marginTop = resolveSpacing(props.mt);\n if (props.mb !== undefined) styles.marginBottom = resolveSpacing(props.mb);\n if (props.ml !== undefined) styles.marginLeft = resolveSpacing(props.ml);\n if (props.mr !== undefined) styles.marginRight = resolveSpacing(props.mr);\n if (props.mx !== undefined) {\n styles.marginLeft = resolveSpacing(props.mx);\n styles.marginRight = resolveSpacing(props.mx);\n }\n if (props.my !== undefined) {\n styles.marginTop = resolveSpacing(props.my);\n styles.marginBottom = resolveSpacing(props.my);\n }\n\n if (props.p !== undefined) styles.padding = resolveSpacing(props.p);\n if (props.pt !== undefined) styles.paddingTop = resolveSpacing(props.pt);\n if (props.pb !== undefined) styles.paddingBottom = resolveSpacing(props.pb);\n if (props.pl !== undefined) styles.paddingLeft = resolveSpacing(props.pl);\n if (props.pr !== undefined) styles.paddingRight = resolveSpacing(props.pr);\n if (props.px !== undefined) {\n styles.paddingLeft = resolveSpacing(props.px);\n styles.paddingRight = resolveSpacing(props.px);\n }\n if (props.py !== undefined) {\n styles.paddingTop = resolveSpacing(props.py);\n styles.paddingBottom = resolveSpacing(props.py);\n }\n\n if (props.gap !== undefined) styles.gap = resolveSpacing(props.gap);\n\n return styles;\n}\n","import { ElementType, HTMLAttributes, forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SpacingProps, extractSpacingStyles } from './utils';\nimport './LayoutPrimitives.css';\n\nexport interface BoxProps extends HTMLAttributes<HTMLElement>, SpacingProps {\n as?: ElementType;\n}\n\nexport const Box = forwardRef<HTMLElement, BoxProps>(\n ({ as: Component = 'div', className, style, children, ...props }, ref) => {\n const spacingStyles = extractSpacingStyles(props);\n\n // Filter out spacing props from passing to DOM\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { m, mt, mb, ml, mr, mx, my, p, pt, pb, pl, pr, px, py, gap, ...domProps } = props;\n\n return (\n <Component\n ref={ref}\n className={clsx('ds-box', className)}\n style={{ ...spacingStyles, ...style }}\n {...domProps}\n >\n {children}\n </Component>\n );\n },\n);\n\nBox.displayName = 'Box';\n","import { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { Box, BoxProps } from './Box';\n\nexport interface StackProps extends BoxProps {\n direction?: 'row' | 'column';\n align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';\n justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\n wrap?: boolean;\n}\n\nexport const Stack = forwardRef<HTMLElement, StackProps>(\n ({ direction = 'column', align, justify, wrap, className, style, ...props }, ref) => {\n return (\n <Box\n ref={ref}\n className={clsx('ds-stack', direction === 'row' && 'ds-stack--horizontal', className)}\n style={{\n alignItems: align,\n justifyContent: justify === 'between' ? 'space-between' : justify,\n flexWrap: wrap ? 'wrap' : undefined,\n ...style,\n }}\n {...props}\n />\n );\n },\n);\n\nStack.displayName = 'Stack';\n","import { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { Box, BoxProps } from './Box';\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}\n\nexport const Grid = forwardRef<HTMLElement, GridProps>(\n ({ columns, rows, align, justify, className, style, ...props }, ref) => {\n return (\n <Box\n ref={ref}\n className={clsx('ds-grid', className)}\n style={{\n gridTemplateColumns: typeof columns === 'number' ? `repeat(${columns}, 1fr)` : 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 } from 'react';\nimport clsx from 'clsx';\nimport { Box, BoxProps } from './Box';\n\nexport type ContainerSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\n/**\n * Maps named sizes to max-width values.\n * Aligns with common web breakpoints (Tailwind `max-w-*` scale).\n */\n// eslint-disable-next-line react-refresh/only-export-components\nexport const CONTAINER_SIZE_MAP: Record<ContainerSize, string> = {\n sm: '768px', // 48rem — max-w-3xl\n md: '1024px', // 64rem — max-w-5xl\n lg: '1152px', // 72rem — max-w-6xl\n xl: '1280px', // 80rem — max-w-7xl\n full: '100%',\n};\n\nexport interface ContainerProps extends BoxProps {\n /**\n * Named size preset. Overrides `maxWidth` when set.\n * @example <Container size=\"lg\">…</Container>\n */\n size?: ContainerSize;\n /** Pass `true` to stretch to 100% width (same as `size=\"full\"`). */\n fluid?: boolean;\n /** Custom max-width value. Ignored when `size` or `fluid` is set. */\n maxWidth?: number | string;\n}\n\nexport const Container = forwardRef<HTMLElement, ContainerProps>(\n ({ size, fluid, maxWidth, className, style, ...props }, ref) => {\n let resolvedMaxWidth: string | number;\n if (fluid) {\n resolvedMaxWidth = '100%';\n } else if (size) {\n resolvedMaxWidth = CONTAINER_SIZE_MAP[size];\n } else {\n resolvedMaxWidth = maxWidth || '1200px';\n }\n\n return (\n <Box\n ref={ref}\n className={clsx('ds-container', className)}\n style={{\n maxWidth: resolvedMaxWidth,\n ...style,\n }}\n {...props}\n />\n );\n },\n);\n\nContainer.displayName = 'Container';\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 { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport clsx from 'clsx';\nimport './Tabs.css';\n\n/* ============================================================================\n TABS ROOT\n ============================================================================ */\n\nexport interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {\n defaultValue?: string | number;\n value?: string | number;\n onValueChange?: (value: string | number) => void;\n orientation?: 'horizontal' | 'vertical';\n}\n\nexport const Tabs = React.forwardRef<HTMLDivElement, TabsProps>(\n ({ className, orientation = 'horizontal', ...props }, ref) => {\n return (\n <BaseTabs.Root\n ref={ref}\n className={clsx('ds-tabs', `ds-tabs--${orientation}`, className)}\n orientation={orientation}\n {...props}\n />\n );\n },\n);\n\nTabs.displayName = 'Tabs';\n\n/* ============================================================================\n TABS LIST\n ============================================================================ */\n\nexport interface TabsListProps extends React.HTMLAttributes<HTMLDivElement> {\n loop?: boolean;\n}\n\nexport const TabsList = React.forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, ...props }, ref) => {\n return <BaseTabs.List ref={ref} className={clsx('ds-tabs__list', className)} {...props} />;\n },\n);\n\nTabsList.displayName = 'TabsList';\n\n/* ============================================================================\n TABS TRIGGER\n ============================================================================ */\n\nexport interface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string | number;\n disabled?: boolean;\n}\n\nexport const TabsTrigger = React.forwardRef<HTMLButtonElement, TabsTriggerProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <BaseTabs.Tab ref={ref} className={clsx('ds-tabs__trigger', className)} {...props}>\n {children}\n </BaseTabs.Tab>\n );\n },\n);\n\nTabsTrigger.displayName = 'TabsTrigger';\n\n/* ============================================================================\n TABS CONTENT\n ============================================================================ */\n\nexport interface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string | number;\n}\n\nexport const TabsContent = React.forwardRef<HTMLDivElement, TabsContentProps>(\n ({ className, ...props }, ref) => {\n return <BaseTabs.Panel ref={ref} className={clsx('ds-tabs__content', className)} {...props} />;\n },\n);\n\nTabsContent.displayName = 'TabsContent';\n","/**\n * Design System IntlProvider\n *\n * Wraps react-intl's IntlProvider with design system defaults.\n * Components receive i18n context through this provider.\n *\n * @example\n * ```tsx\n * import { DSIntlProvider } from '@salesmind-ai/design-system';\n *\n * // With default English messages\n * <DSIntlProvider>\n * <App />\n * </DSIntlProvider>\n *\n * // With custom locale and messages\n * <DSIntlProvider locale=\"fr\" messages={frenchMessages}>\n * <App />\n * </DSIntlProvider>\n * ```\n */\n\nimport React from 'react';\nimport { IntlProvider, IntlConfig } from 'react-intl';\n\n/**\n * Default English messages (extracted from component defaults)\n * These serve as fallbacks when no messages are provided.\n */\nconst defaultMessages: Record<string, string> = {\n // Common\n 'ds.common.loading': 'Loading...',\n 'ds.common.error': 'An error occurred',\n 'ds.common.retry': 'Retry',\n 'ds.common.cancel': 'Cancel',\n 'ds.common.confirm': 'Confirm',\n 'ds.common.close': 'Close',\n 'ds.common.save': 'Save',\n 'ds.common.delete': 'Delete',\n 'ds.common.edit': 'Edit',\n 'ds.common.submit': 'Submit',\n 'ds.common.required': 'Required',\n 'ds.common.optional': 'Optional',\n\n // Alert\n 'ds.alert.dismissLabel': 'Dismiss alert',\n 'ds.alert.successTitle': 'Success',\n 'ds.alert.errorTitle': 'Error',\n 'ds.alert.warningTitle': 'Warning',\n 'ds.alert.infoTitle': 'Information',\n\n // Toast\n 'ds.toast.dismissLabel': 'Dismiss notification',\n\n // Dialog\n 'ds.dialog.closeLabel': 'Close dialog',\n\n // Form\n 'ds.form.showPassword': 'Show password',\n 'ds.form.hidePassword': 'Hide password',\n 'ds.form.clearInput': 'Clear input',\n 'ds.form.invalidEmail': 'Please enter a valid email address',\n 'ds.form.passwordRequired': 'Password is required',\n\n // Auth\n 'ds.auth.loginTitle': 'Sign in to your account',\n 'ds.auth.signupTitle': 'Create your account',\n 'ds.auth.forgotPasswordTitle': 'Reset your password',\n 'ds.auth.emailLabel': 'Email address',\n 'ds.auth.passwordLabel': 'Password',\n 'ds.auth.rememberMe': 'Remember me',\n 'ds.auth.forgotPassword': 'Forgot your password?',\n 'ds.auth.signIn': 'Sign in',\n 'ds.auth.signUp': 'Sign up',\n 'ds.auth.sendResetLink': 'Send reset link',\n 'ds.auth.backToLogin': 'Back to login',\n\n // Navigation\n 'ds.nav.menuLabel': 'Navigation menu',\n 'ds.nav.toggleSidebar': 'Toggle sidebar',\n 'ds.nav.expandSubmenu': 'Expand submenu',\n 'ds.nav.collapseSubmenu': 'Collapse submenu',\n\n // Report\n 'ds.report.confidenceLabel': 'Confidence score',\n 'ds.report.dataCoverageLabel': 'Data coverage',\n 'ds.report.insufficientData': 'Insufficient data',\n 'ds.report.exportPdf': 'Export as PDF',\n 'ds.report.exportCsv': 'Export as CSV',\n 'ds.report.exportPptx': 'Export as PowerPoint',\n\n // Appearance\n 'ds.appearance.themeLabel': 'Theme',\n 'ds.appearance.darkTheme': 'Dark',\n 'ds.appearance.lightTheme': 'Light',\n 'ds.appearance.highContrastTheme': 'High contrast',\n 'ds.appearance.densityLabel': 'Density',\n 'ds.appearance.comfortableDensity': 'Comfortable',\n 'ds.appearance.compactDensity': 'Compact',\n\n // Pagination\n 'ds.pagination.previous': 'Previous',\n 'ds.pagination.next': 'Next',\n 'ds.pagination.goToPreviousPage': 'Go to previous page',\n 'ds.pagination.goToNextPage': 'Go to next page',\n\n // Calendar\n 'ds.calendar.previousMonth': 'Previous month',\n 'ds.calendar.nextMonth': 'Next month',\n\n // Carousel\n 'ds.carousel.previousSlide': 'Previous slide',\n 'ds.carousel.nextSlide': 'Next slide',\n\n // Methodology\n 'ds.methodology.title': 'Methodology',\n 'ds.methodology.sampleSize': 'Sample Size',\n 'ds.methodology.dataSources': 'Data Sources',\n 'ds.methodology.calculation': 'Calculation',\n};\n\nexport interface DSIntlProviderProps {\n /**\n * Locale identifier (e.g., 'en', 'fr', 'de')\n * @default 'en'\n */\n locale?: string;\n\n /**\n * Translated messages for the locale.\n * If not provided, defaults to English messages.\n */\n messages?: Record<string, string>;\n\n /**\n * Additional IntlProvider configuration\n */\n intlConfig?: Partial<IntlConfig>;\n\n /**\n * Child components\n */\n children: React.ReactNode;\n}\n\n/**\n * Design System IntlProvider\n *\n * Provides internationalization context to all design system components.\n * Wrap your app with this provider to enable i18n support.\n */\nexport function DSIntlProvider({\n locale = 'en',\n messages,\n intlConfig,\n children,\n}: DSIntlProviderProps) {\n // Merge provided messages with defaults (provided messages take precedence)\n const mergedMessages = {\n ...defaultMessages,\n ...messages,\n };\n\n return (\n <IntlProvider\n locale={locale}\n messages={mergedMessages}\n defaultLocale=\"en\"\n onError={(err) => {\n // Only log missing translation errors in development\n if (process.env.NODE_ENV === 'development') {\n // Filter out \"MISSING_TRANSLATION\" errors for default messages\n if (err.code !== 'MISSING_TRANSLATION') {\n console.error(err);\n }\n }\n }}\n {...intlConfig}\n >\n {children}\n </IntlProvider>\n );\n}\n\nexport default DSIntlProvider;\n","/**\n * Design System Message Hooks\n *\n * Provides hooks for accessing internationalized messages in components.\n * These hooks are optional - components can still accept string props directly.\n *\n * @example\n * ```tsx\n * import { useMessage, commonMessages } from '@salesmind-ai/design-system';\n *\n * function MyComponent() {\n * const t = useMessage();\n * return <button>{t(commonMessages.save)}</button>;\n * }\n * ```\n */\n\nimport { useIntl, MessageDescriptor, PrimitiveType } from 'react-intl';\nimport { useCallback } from 'react';\n\n/**\n * Format message values type\n */\nexport type MessageValues = Record<string, PrimitiveType>;\n\n/**\n * Hook to get a message formatter function\n *\n * @returns A function that formats messages\n *\n * @example\n * ```tsx\n * const t = useMessage();\n * return <span>{t(commonMessages.loading)}</span>;\n * ```\n */\nexport function useMessage() {\n const intl = useIntl();\n\n const formatMessage = useCallback(\n (descriptor: MessageDescriptor, values?: MessageValues): string => {\n return intl.formatMessage(descriptor, values);\n },\n [intl],\n );\n\n return formatMessage;\n}\n\n/**\n * Hook to get the current locale\n *\n * @returns The current locale string (e.g., 'en', 'fr')\n *\n * @example\n * ```tsx\n * const locale = useLocale();\n * console.log(locale); // 'en'\n * ```\n */\nexport function useLocale(): string {\n const intl = useIntl();\n return intl.locale;\n}\n\n/**\n * Hook to check if RTL is needed for current locale\n *\n * @returns true if the current locale is RTL\n *\n * @example\n * ```tsx\n * const isRTL = useIsRTL();\n * return <div style={{ direction: isRTL ? 'rtl' : 'ltr' }}>...</div>;\n * ```\n */\nexport function useIsRTL(): boolean {\n const locale = useLocale();\n\n // RTL locales\n const rtlLocales = [\n 'ar', // Arabic\n 'he', // Hebrew\n 'fa', // Persian/Farsi\n 'ur', // Urdu\n 'ps', // Pashto\n 'sd', // Sindhi\n 'yi', // Yiddish\n ];\n\n return rtlLocales.some((rtl) => locale === rtl || locale.startsWith(`${rtl}-`));\n}\n\n/**\n * Hook to get the current text direction\n *\n * @returns 'rtl' or 'ltr' based on locale\n *\n * @example\n * ```tsx\n * const dir = useTextDirection();\n * return <div dir={dir}>...</div>;\n * ```\n */\nexport function useTextDirection(): 'rtl' | 'ltr' {\n const isRTL = useIsRTL();\n return isRTL ? 'rtl' : 'ltr';\n}\n\n/**\n * Hook to format a number according to locale\n *\n * @returns A number formatter function\n *\n * @example\n * ```tsx\n * const formatNumber = useNumberFormat();\n * return <span>{formatNumber(1234.56)}</span>; // \"1,234.56\" in en-US\n * ```\n */\nexport function useNumberFormat() {\n const intl = useIntl();\n\n const formatNumber = useCallback(\n (value: number, options?: Intl.NumberFormatOptions): string => {\n return intl.formatNumber(value, options as Parameters<typeof intl.formatNumber>[1]);\n },\n [intl],\n );\n\n return formatNumber;\n}\n\n/**\n * Hook to format a date according to locale\n *\n * @returns A date formatter function\n *\n * @example\n * ```tsx\n * const formatDate = useDateFormat();\n * return <span>{formatDate(new Date())}</span>;\n * ```\n */\nexport function useDateFormat() {\n const intl = useIntl();\n\n const formatDate = useCallback(\n (value: Date | number, options?: Intl.DateTimeFormatOptions): string => {\n return intl.formatDate(value, options);\n },\n [intl],\n );\n\n return formatDate;\n}\n\n/**\n * Hook to format a relative time (e.g., \"2 days ago\")\n *\n * @returns A relative time formatter function\n *\n * @example\n * ```tsx\n * const formatRelative = useRelativeTime();\n * return <span>{formatRelative(-2, 'day')}</span>; // \"2 days ago\"\n * ```\n */\nexport function useRelativeTime() {\n const intl = useIntl();\n\n const formatRelativeTime = useCallback(\n (\n value: number,\n unit: Intl.RelativeTimeFormatUnit,\n options?: Intl.RelativeTimeFormatOptions,\n ): string => {\n return intl.formatRelativeTime(value, unit, options as Parameters<typeof intl.formatRelativeTime>[2]);\n },\n [intl],\n );\n\n return formatRelativeTime;\n}\n","/**\n * Design System Default Messages\n *\n * This file contains all user-facing strings used by design system components.\n * Components accept message props but fall back to these defaults.\n *\n * Format: react-intl MessageDescriptor\n * @see https://formatjs.io/docs/react-intl/api#message-descriptor\n */\n\nimport { defineMessages } from 'react-intl';\n\n/**\n * Common messages used across multiple components\n */\nexport const commonMessages = defineMessages({\n loading: {\n id: 'ds.common.loading',\n defaultMessage: 'Loading...',\n description: 'Generic loading state text',\n },\n error: {\n id: 'ds.common.error',\n defaultMessage: 'An error occurred',\n description: 'Generic error message',\n },\n retry: {\n id: 'ds.common.retry',\n defaultMessage: 'Retry',\n description: 'Retry action button text',\n },\n cancel: {\n id: 'ds.common.cancel',\n defaultMessage: 'Cancel',\n description: 'Cancel action button text',\n },\n confirm: {\n id: 'ds.common.confirm',\n defaultMessage: 'Confirm',\n description: 'Confirm action button text',\n },\n close: {\n id: 'ds.common.close',\n defaultMessage: 'Close',\n description: 'Close action button text',\n },\n save: {\n id: 'ds.common.save',\n defaultMessage: 'Save',\n description: 'Save action button text',\n },\n delete: {\n id: 'ds.common.delete',\n defaultMessage: 'Delete',\n description: 'Delete action button text',\n },\n edit: {\n id: 'ds.common.edit',\n defaultMessage: 'Edit',\n description: 'Edit action button text',\n },\n submit: {\n id: 'ds.common.submit',\n defaultMessage: 'Submit',\n description: 'Submit action button text',\n },\n required: {\n id: 'ds.common.required',\n defaultMessage: 'Required',\n description: 'Field required indicator',\n },\n optional: {\n id: 'ds.common.optional',\n defaultMessage: 'Optional',\n description: 'Field optional indicator',\n },\n});\n\n/**\n * Alert component messages\n */\nexport const alertMessages = defineMessages({\n dismissLabel: {\n id: 'ds.alert.dismissLabel',\n defaultMessage: 'Dismiss alert',\n description: 'Accessible label for alert dismiss button',\n },\n successTitle: {\n id: 'ds.alert.successTitle',\n defaultMessage: 'Success',\n description: 'Default title for success alerts',\n },\n errorTitle: {\n id: 'ds.alert.errorTitle',\n defaultMessage: 'Error',\n description: 'Default title for error alerts',\n },\n warningTitle: {\n id: 'ds.alert.warningTitle',\n defaultMessage: 'Warning',\n description: 'Default title for warning alerts',\n },\n infoTitle: {\n id: 'ds.alert.infoTitle',\n defaultMessage: 'Information',\n description: 'Default title for info alerts',\n },\n});\n\n/**\n * Toast notification messages\n */\nexport const toastMessages = defineMessages({\n dismissLabel: {\n id: 'ds.toast.dismissLabel',\n defaultMessage: 'Dismiss notification',\n description: 'Accessible label for toast dismiss button',\n },\n});\n\n/**\n * Dialog component messages\n */\nexport const dialogMessages = defineMessages({\n closeLabel: {\n id: 'ds.dialog.closeLabel',\n defaultMessage: 'Close dialog',\n description: 'Accessible label for dialog close button',\n },\n});\n\n/**\n * Form component messages\n */\nexport const formMessages = defineMessages({\n showPassword: {\n id: 'ds.form.showPassword',\n defaultMessage: 'Show password',\n description: 'Toggle to show password text',\n },\n hidePassword: {\n id: 'ds.form.hidePassword',\n defaultMessage: 'Hide password',\n description: 'Toggle to hide password text',\n },\n clearInput: {\n id: 'ds.form.clearInput',\n defaultMessage: 'Clear input',\n description: 'Clear input field button',\n },\n invalidEmail: {\n id: 'ds.form.invalidEmail',\n defaultMessage: 'Please enter a valid email address',\n description: 'Email validation error',\n },\n passwordRequired: {\n id: 'ds.form.passwordRequired',\n defaultMessage: 'Password is required',\n description: 'Password required validation error',\n },\n});\n\n/**\n * Auth component messages\n */\nexport const authMessages = defineMessages({\n loginTitle: {\n id: 'ds.auth.loginTitle',\n defaultMessage: 'Sign in to your account',\n description: 'Login page title',\n },\n signupTitle: {\n id: 'ds.auth.signupTitle',\n defaultMessage: 'Create your account',\n description: 'Signup page title',\n },\n forgotPasswordTitle: {\n id: 'ds.auth.forgotPasswordTitle',\n defaultMessage: 'Reset your password',\n description: 'Forgot password page title',\n },\n emailLabel: {\n id: 'ds.auth.emailLabel',\n defaultMessage: 'Email address',\n description: 'Email field label',\n },\n passwordLabel: {\n id: 'ds.auth.passwordLabel',\n defaultMessage: 'Password',\n description: 'Password field label',\n },\n rememberMe: {\n id: 'ds.auth.rememberMe',\n defaultMessage: 'Remember me',\n description: 'Remember me checkbox label',\n },\n forgotPassword: {\n id: 'ds.auth.forgotPassword',\n defaultMessage: 'Forgot your password?',\n description: 'Forgot password link text',\n },\n signIn: {\n id: 'ds.auth.signIn',\n defaultMessage: 'Sign in',\n description: 'Sign in button text',\n },\n signUp: {\n id: 'ds.auth.signUp',\n defaultMessage: 'Sign up',\n description: 'Sign up button text',\n },\n sendResetLink: {\n id: 'ds.auth.sendResetLink',\n defaultMessage: 'Send reset link',\n description: 'Send password reset link button',\n },\n backToLogin: {\n id: 'ds.auth.backToLogin',\n defaultMessage: 'Back to login',\n description: 'Back to login link text',\n },\n});\n\n/**\n * Navigation component messages\n */\nexport const navigationMessages = defineMessages({\n menuLabel: {\n id: 'ds.nav.menuLabel',\n defaultMessage: 'Navigation menu',\n description: 'Accessible label for navigation menu',\n },\n toggleSidebar: {\n id: 'ds.nav.toggleSidebar',\n defaultMessage: 'Toggle sidebar',\n description: 'Toggle sidebar button label',\n },\n expandSubmenu: {\n id: 'ds.nav.expandSubmenu',\n defaultMessage: 'Expand submenu',\n description: 'Expand submenu button label',\n },\n collapseSubmenu: {\n id: 'ds.nav.collapseSubmenu',\n defaultMessage: 'Collapse submenu',\n description: 'Collapse submenu button label',\n },\n});\n\n/**\n * Report Engine component messages\n */\nexport const reportMessages = defineMessages({\n confidenceLabel: {\n id: 'ds.report.confidenceLabel',\n defaultMessage: 'Confidence score',\n description: 'Label for confidence indicator',\n },\n dataCoverageLabel: {\n id: 'ds.report.dataCoverageLabel',\n defaultMessage: 'Data coverage',\n description: 'Label for data coverage badge',\n },\n insufficientData: {\n id: 'ds.report.insufficientData',\n defaultMessage: 'Insufficient data',\n description: 'Message when data is insufficient for analysis',\n },\n exportPdf: {\n id: 'ds.report.exportPdf',\n defaultMessage: 'Export as PDF',\n description: 'Export to PDF option',\n },\n exportCsv: {\n id: 'ds.report.exportCsv',\n defaultMessage: 'Export as CSV',\n description: 'Export to CSV option',\n },\n exportPptx: {\n id: 'ds.report.exportPptx',\n defaultMessage: 'Export as PowerPoint',\n description: 'Export to PowerPoint option',\n },\n});\n\n/**\n * Appearance/Theme component messages\n */\nexport const appearanceMessages = defineMessages({\n themeLabel: {\n id: 'ds.appearance.themeLabel',\n defaultMessage: 'Theme',\n description: 'Theme selector label',\n },\n darkTheme: {\n id: 'ds.appearance.darkTheme',\n defaultMessage: 'Dark',\n description: 'Dark theme option',\n },\n lightTheme: {\n id: 'ds.appearance.lightTheme',\n defaultMessage: 'Light',\n description: 'Light theme option',\n },\n highContrastTheme: {\n id: 'ds.appearance.highContrastTheme',\n defaultMessage: 'High contrast',\n description: 'High contrast theme option',\n },\n densityLabel: {\n id: 'ds.appearance.densityLabel',\n defaultMessage: 'Density',\n description: 'Density selector label',\n },\n comfortableDensity: {\n id: 'ds.appearance.comfortableDensity',\n defaultMessage: 'Comfortable',\n description: 'Comfortable density option',\n },\n compactDensity: {\n id: 'ds.appearance.compactDensity',\n defaultMessage: 'Compact',\n description: 'Compact density option',\n },\n});\n\n/**\n * Pagination component messages\n */\nexport const paginationMessages = defineMessages({\n previous: {\n id: 'ds.pagination.previous',\n defaultMessage: 'Previous',\n description: 'Pagination previous button label',\n },\n next: {\n id: 'ds.pagination.next',\n defaultMessage: 'Next',\n description: 'Pagination next button label',\n },\n goToPreviousPage: {\n id: 'ds.pagination.goToPreviousPage',\n defaultMessage: 'Go to previous page',\n description: 'Accessible label for previous page button',\n },\n goToNextPage: {\n id: 'ds.pagination.goToNextPage',\n defaultMessage: 'Go to next page',\n description: 'Accessible label for next page button',\n },\n});\n\n/**\n * Calendar component messages\n */\nexport const calendarMessages = defineMessages({\n previousMonth: {\n id: 'ds.calendar.previousMonth',\n defaultMessage: 'Previous month',\n description: 'Accessible label for previous month button',\n },\n nextMonth: {\n id: 'ds.calendar.nextMonth',\n defaultMessage: 'Next month',\n description: 'Accessible label for next month button',\n },\n});\n\n/**\n * Carousel component messages\n */\nexport const carouselMessages = defineMessages({\n previousSlide: {\n id: 'ds.carousel.previousSlide',\n defaultMessage: 'Previous slide',\n description: 'Accessible label for previous slide button',\n },\n nextSlide: {\n id: 'ds.carousel.nextSlide',\n defaultMessage: 'Next slide',\n description: 'Accessible label for next slide button',\n },\n});\n\n/**\n * Methodology component messages\n */\nexport const methodologyMessages = defineMessages({\n title: {\n id: 'ds.methodology.title',\n defaultMessage: 'Methodology',\n description: 'Methodology note title',\n },\n sampleSize: {\n id: 'ds.methodology.sampleSize',\n defaultMessage: 'Sample Size',\n description: 'Methodology sample size label',\n },\n dataSources: {\n id: 'ds.methodology.dataSources',\n defaultMessage: 'Data Sources',\n description: 'Methodology data sources label',\n },\n calculation: {\n id: 'ds.methodology.calculation',\n defaultMessage: 'Calculation',\n description: 'Methodology calculation label',\n },\n});\n\n/**\n * All messages combined for easy export\n */\nexport const allMessages = {\n ...commonMessages,\n ...alertMessages,\n ...toastMessages,\n ...dialogMessages,\n ...formMessages,\n ...authMessages,\n ...navigationMessages,\n ...reportMessages,\n ...appearanceMessages,\n ...paginationMessages,\n ...calendarMessages,\n ...carouselMessages,\n ...methodologyMessages,\n};\n"]}
1
+ {"version":3,"sources":["../../src/tokens/motion.ts","../../src/tokens/colors.ts","../../src/tokens/spacing.ts","../../src/tokens/typography.ts","../../src/tokens/radius.ts","../../src/tokens/shadows.ts","../../src/tokens/z-index.ts","../../src/tokens/breakpoints.ts","../../src/theme/AppearanceProvider.tsx","../../src/components/AppearancePanel/AppearancePanel.tsx","../../src/components/Button/Button.tsx","../../src/components/ButtonGroup/ButtonGroup.tsx","../../src/components/TextField/TextField.tsx","../../src/components/TextArea/TextArea.tsx","../../src/components/Checkbox/Checkbox.tsx","../../src/components/RadioGroup/RadioGroup.tsx","../../src/components/Switch/Switch.tsx","../../src/components/Dialog/Dialog.tsx","../../src/components/Tooltip/Tooltip.tsx","../../src/components/Badge/Badge.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/DropdownMenu/DropdownMenu.tsx","../../src/components/EmptyState/EmptyState.tsx","../../src/components/Card/Card.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/Avatar/Avatar.tsx","../../src/components/Popover/Popover.tsx","../../src/components/Progress/Progress.tsx","../../src/components/ScrollArea/ScrollArea.tsx","../../src/components/Breadcrumb/Breadcrumb.tsx","../../src/components/Toggle/Toggle.tsx","../../src/components/ToggleGroup/ToggleGroup.tsx","../../src/components/Slider/Slider.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/utils.ts","../../src/components/LayoutPrimitives/Box.tsx","../../src/components/LayoutPrimitives/Stack.tsx","../../src/components/LayoutPrimitives/Grid.tsx","../../src/components/LayoutPrimitives/Container.tsx","../../src/components/LayoutPrimitives/Section.tsx","../../src/components/LayoutPrimitives/VisuallyHidden.tsx","../../src/components/Tabs/Tabs.tsx","../../src/i18n/IntlProvider.tsx","../../src/i18n/useMessage.ts","../../src/i18n/messages.ts"],"names":["createContext","useState","useEffect","useCallback","useContext","React","useId","clsx","jsx","jsxs","Slot","BaseInput","forwardRef","BaseCheckbox","BaseSwitch","BaseDialog","BaseTooltip","useRef","createPortal","BaseMenu","Fragment","ReactDOM","BaseTabs","IntlProvider","useIntl","defineMessages"],"mappings":"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","file":"index.cjs","sourcesContent":["/* ============================================================================\n MOTION TOKENS & FRAMER CONFIG\n ============================================================================ */\n\n/**\n * Duration tokens (seconds) for Framer Motion\n */\nexport const DURATION = {\n micro: 0.15, // 150ms\n short: 0.25, // 250ms\n medium: 0.5, // 500ms\n long: 1.0, // 1000ms\n} as const;\n\n/**\n * Easing definitions (cubic-bezier arrays) for Framer Motion\n */\nexport const EASING = {\n standard: [0.16, 1, 0.3, 1], // Smooth, premium feel\n emphasis: [0.34, 1.56, 0.64, 1], // Slight spring/overshoot\n exit: [0.4, 0, 0.2, 1], // Quick, decisive exit\n linear: [0, 0, 1, 1],\n} as const;\n\n/**\n * Standard transitions for Framer Motion\n */\nexport const TRANSITION = {\n standard: {\n duration: DURATION.medium,\n ease: EASING.standard,\n },\n emphasis: {\n duration: DURATION.medium,\n ease: EASING.emphasis,\n },\n quick: {\n duration: DURATION.short,\n ease: EASING.standard,\n },\n spring: {\n type: 'spring',\n stiffness: 200,\n damping: 20,\n },\n} as const;\n\n/**\n * Reusable Variants for Framer Motion\n */\nexport const VARIANTS = {\n fadeIn: {\n hidden: { opacity: 0 },\n visible: { opacity: 1, transition: { duration: DURATION.medium, ease: EASING.standard } },\n },\n fadeUp: {\n hidden: { opacity: 0, y: 12 },\n visible: { opacity: 1, y: 0, transition: { duration: DURATION.medium, ease: EASING.standard } },\n },\n scaleIn: {\n hidden: { opacity: 0, scale: 0.95 },\n visible: {\n opacity: 1,\n scale: 1,\n transition: { duration: DURATION.short, ease: EASING.emphasis },\n },\n },\n staggerContainer: {\n hidden: { opacity: 0 },\n visible: {\n opacity: 1,\n transition: {\n staggerChildren: 0.08,\n delayChildren: 0.1,\n },\n },\n },\n pulse: {\n hidden: { scale: 1 },\n visible: {\n scale: [1, 1.05, 1],\n transition: { duration: 1.5, repeat: Infinity, ease: 'easeInOut' },\n },\n },\n impact: {\n hidden: { scale: 1 },\n trigger: {\n scale: [1, 0.95, 1.05, 1],\n transition: { duration: 0.4, ease: 'backOut' },\n },\n },\n} as const;\n\n/**\n * Layout Tokens\n */\nexport const DISTANCE = {\n sm: 4,\n md: 12,\n lg: 24,\n xl: 48,\n} as const;\n\nexport const MOTION = {\n DURATION,\n EASING,\n TRANSITION,\n VARIANTS,\n DISTANCE,\n} as const;\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 SPACING = {\n 1: 'var(--space-1)',\n 2: 'var(--space-2)',\n 3: 'var(--space-3)',\n 4: 'var(--space-4)',\n 5: 'var(--space-5)',\n 6: 'var(--space-6)',\n 8: 'var(--space-8)',\n 10: 'var(--space-10)',\n 12: 'var(--space-12)',\n 16: 'var(--space-16)',\n 20: 'var(--space-20)',\n} as const;\n\nexport type SpacingToken = keyof typeof SPACING;\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 xs: 480,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n} as const;\n\nexport type Breakpoint = keyof typeof BREAKPOINTS;\n\nexport const MEDIA_QUERIES = {\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} as const;\n","import React, { createContext, useContext, useEffect, useState, useCallback } from 'react';\n\n/* ============================================================================\n APPEARANCE TYPES\n ============================================================================ */\n\nexport type Theme = 'light' | 'light-contrast' | 'dark' | 'dark-contrast';\nexport type Brand = 'default' | 'salesmind' | 'custom';\nexport type NavPlacement = 'left' | 'right' | 'bottom';\nexport type Density = 'comfortable' | 'compact';\nexport type Radius = 'playful' | 'sharp';\n\nexport interface AppearanceSettings {\n theme: Theme;\n brand: Brand;\n navPlacement: NavPlacement;\n density: Density;\n radius: Radius;\n /** Hex color for custom brand (e.g., \"#ff2d8a\") */\n customColor: string;\n}\n\nexport interface AppearanceContextValue extends AppearanceSettings {\n setTheme: (theme: Theme) => void;\n setBrand: (brand: Brand) => void;\n setNavPlacement: (nav: NavPlacement) => void;\n setDensity: (density: Density) => void;\n setRadius: (radius: Radius) => void;\n setCustomColor: (color: string) => void;\n setAppearance: (settings: Partial<AppearanceSettings>) => void;\n resetToDefaults: () => void;\n}\n\n/* ============================================================================\n CONSTANTS\n ============================================================================ */\n\nconst STORAGE_KEY = 'void-appearance-settings';\n\nconst DEFAULT_SETTINGS: AppearanceSettings = {\n theme: 'dark',\n brand: 'default',\n navPlacement: 'left',\n density: 'comfortable',\n radius: 'playful',\n customColor: '#f97316', // Default orange as fallback\n};\n\n/* ============================================================================\n UTILITIES\n ============================================================================ */\n\n/** Detect system color scheme preference */\n\n\n/** Convert hex color to RGB triplet string (e.g., \"255, 45, 138\") */\nfunction hexToRgb(hex: string): string {\n // Remove # if present\n const cleanHex = hex.replace(/^#/, '');\n\n // Parse hex values\n const r = parseInt(cleanHex.substring(0, 2), 16);\n const g = parseInt(cleanHex.substring(2, 4), 16);\n const b = parseInt(cleanHex.substring(4, 6), 16);\n\n // Validate parsed values\n if (isNaN(r) || isNaN(g) || isNaN(b)) {\n // Fallback to default orange if parsing fails\n return '249, 115, 22';\n }\n\n return `${r}, ${g}, ${b}`;\n}\n\n/** Generate a complementary/secondary color from primary */\nfunction generateSecondaryColor(hex: string): string {\n const cleanHex = hex.replace(/^#/, '');\n const r = parseInt(cleanHex.substring(0, 2), 16);\n const g = parseInt(cleanHex.substring(2, 4), 16);\n const b = parseInt(cleanHex.substring(4, 6), 16);\n\n if (isNaN(r) || isNaN(g) || isNaN(b)) {\n return '255, 208, 0'; // Default yellow\n }\n\n // Shift hue by ~60 degrees for a harmonious secondary\n // Simple approach: rotate RGB channels and boost brightness\n const secondary = {\n r: Math.min(255, g + 50),\n g: Math.min(255, b + 100),\n b: Math.min(255, r),\n };\n\n return `${secondary.r}, ${secondary.g}, ${secondary.b}`;\n}\n\n/** Load settings from localStorage */\nfunction loadSettings(): AppearanceSettings {\n if (typeof window === 'undefined') return DEFAULT_SETTINGS;\n\n try {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored) {\n const parsed = JSON.parse(stored) as Partial<AppearanceSettings>;\n return {\n theme: parsed.theme || DEFAULT_SETTINGS.theme,\n brand: parsed.brand || DEFAULT_SETTINGS.brand,\n navPlacement: parsed.navPlacement || DEFAULT_SETTINGS.navPlacement,\n density: parsed.density || DEFAULT_SETTINGS.density,\n radius: parsed.radius || DEFAULT_SETTINGS.radius,\n customColor: parsed.customColor || DEFAULT_SETTINGS.customColor,\n };\n }\n } catch {\n // Ignore parse errors\n }\n\n // Use default dark preference for initial theme if no stored value\n return {\n ...DEFAULT_SETTINGS,\n theme: 'dark',\n };\n}\n\n/** Save settings to localStorage */\nfunction saveSettings(settings: AppearanceSettings): void {\n if (typeof window === 'undefined') return;\n\n try {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(settings));\n } catch {\n // Ignore storage errors (e.g., private browsing)\n }\n}\n\n/** Apply settings to document.documentElement */\nfunction applySettings(settings: AppearanceSettings): void {\n if (typeof document === 'undefined') return;\n\n const root = document.documentElement;\n\n // Apply data attributes\n root.setAttribute('data-theme', settings.theme);\n root.setAttribute('data-brand', settings.brand);\n root.setAttribute('data-nav', settings.navPlacement);\n root.setAttribute('data-density', settings.density);\n root.setAttribute('data-radius', settings.radius);\n\n // Handle custom brand RGB injection\n if (settings.brand === 'custom') {\n const primaryRgb = hexToRgb(settings.customColor);\n const secondaryRgb = generateSecondaryColor(settings.customColor);\n\n // Inject custom CSS variables\n root.style.setProperty('--custom-accent-rgb', primaryRgb);\n root.style.setProperty('--custom-accent2-rgb', secondaryRgb);\n } else {\n // Clean up injected variables when switching away from custom brand\n root.style.removeProperty('--custom-accent-rgb');\n root.style.removeProperty('--custom-accent2-rgb');\n }\n}\n\n/** Check if user prefers reduced motion */\nfunction prefersReducedMotion(): boolean {\n if (typeof window === 'undefined') return false;\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n}\n\n/* ============================================================================\n CONTEXT\n ============================================================================ */\n\nconst AppearanceContext = createContext<AppearanceContextValue | null>(null);\n\n/* ============================================================================\n PROVIDER COMPONENT\n ============================================================================ */\n\nexport interface AppearanceProviderProps {\n /** Initial settings (overrides localStorage) */\n initialSettings?: Partial<AppearanceSettings>;\n /** Disable localStorage persistence */\n disablePersistence?: boolean;\n /** Children */\n children: React.ReactNode;\n}\n\nexport function AppearanceProvider({\n initialSettings,\n disablePersistence = false,\n children,\n}: AppearanceProviderProps) {\n // Start with deterministic defaults to avoid SSR/client hydration mismatch.\n // localStorage is read after mount in the effect below.\n const [settings, setSettings] = useState<AppearanceSettings>(() => ({\n ...DEFAULT_SETTINGS,\n ...initialSettings,\n }));\n\n // After hydration, sync with localStorage (runs once on mount)\n const [hydrated, setHydrated] = useState(false);\n useEffect(() => {\n if (!disablePersistence) {\n const loaded = loadSettings();\n setSettings({\n ...loaded,\n // initialSettings still take priority over localStorage\n ...initialSettings,\n });\n }\n setHydrated(true);\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n // Apply settings to DOM whenever they change\n useEffect(() => {\n applySettings(settings);\n if (!disablePersistence && hydrated) {\n saveSettings(settings);\n }\n }, [settings, disablePersistence, hydrated]);\n\n // Listen for system theme changes\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: light)');\n\n const handleChange = (e: MediaQueryListEvent) => {\n // Only auto-switch if user hasn't explicitly set a contrast variant\n setSettings((prev) => {\n if (prev.theme === 'light-contrast' || prev.theme === 'dark-contrast') {\n return prev; // Don't override contrast preferences\n }\n return {\n ...prev,\n theme: e.matches ? 'light' : 'dark',\n };\n });\n };\n\n mediaQuery.addEventListener('change', handleChange);\n return () => mediaQuery.removeEventListener('change', handleChange);\n }, []);\n\n // Listen for reduced motion preference changes\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)');\n\n // Initial check is handled by CSS media queries in tokens.css\n // This effect ensures we respect the preference dynamically\n const handleChange = () => {\n // Re-apply settings to ensure any motion-dependent values are updated\n applySettings(settings);\n };\n\n mediaQuery.addEventListener('change', handleChange);\n return () => mediaQuery.removeEventListener('change', handleChange);\n }, [settings]);\n\n const setTheme = useCallback((theme: Theme) => {\n setSettings((prev) => ({ ...prev, theme }));\n }, []);\n\n const setBrand = useCallback((brand: Brand) => {\n setSettings((prev) => ({ ...prev, brand }));\n }, []);\n\n const setNavPlacement = useCallback((navPlacement: NavPlacement) => {\n setSettings((prev) => ({ ...prev, navPlacement }));\n }, []);\n\n const setDensity = useCallback((density: Density) => {\n setSettings((prev) => ({ ...prev, density }));\n }, []);\n\n const setRadius = useCallback((radius: Radius) => {\n setSettings((prev) => ({ ...prev, radius }));\n }, []);\n\n const setCustomColor = useCallback((customColor: string) => {\n setSettings((prev) => ({ ...prev, customColor, brand: 'custom' }));\n }, []);\n\n const setAppearance = useCallback((partial: Partial<AppearanceSettings>) => {\n setSettings((prev) => ({ ...prev, ...partial }));\n }, []);\n\n const resetToDefaults = useCallback(() => {\n setSettings(DEFAULT_SETTINGS);\n }, []);\n\n const contextValue: AppearanceContextValue = {\n ...settings,\n setTheme,\n setBrand,\n setNavPlacement,\n setDensity,\n setRadius,\n setCustomColor,\n setAppearance,\n resetToDefaults,\n };\n\n return <AppearanceContext.Provider value={contextValue}>{children}</AppearanceContext.Provider>;\n}\n\n/* ============================================================================\n HOOK\n ============================================================================ */\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useAppearance(): AppearanceContextValue {\n const context = useContext(AppearanceContext);\n\n if (!context) {\n throw new Error('useAppearance must be used within an AppearanceProvider');\n }\n\n return context;\n}\n\n/* ============================================================================\n STANDALONE UTILITY (for use outside React, e.g., SSR or initial load)\n ============================================================================ */\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function initializeAppearance(settings?: Partial<AppearanceSettings>): void {\n const loaded = loadSettings();\n const merged = { ...loaded, ...settings };\n applySettings(merged);\n}\n\n/* ============================================================================\n UTILITY EXPORTS\n ============================================================================ */\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport { hexToRgb, prefersReducedMotion };\n","import React, { useId } from 'react';\nimport clsx from 'clsx';\nimport {\n useAppearance,\n Theme,\n Brand,\n NavPlacement,\n Density,\n Radius,\n} from '../../theme/AppearanceProvider';\nimport './AppearancePanel.css';\n\n/* ============================================================================\n APPEARANCE PANEL — Internal Settings UI\n ============================================================================ */\n\n/** All translatable labels for the AppearancePanel. */\nexport interface AppearancePanelLabels {\n /** Panel heading. @default \"Appearance Settings\" */\n title?: string;\n /** Theme section heading. @default \"Theme\" */\n themeHeading?: string;\n /** Brand section heading. @default \"Brand\" */\n brandHeading?: string;\n /** Density section heading. @default \"Density\" */\n densityHeading?: string;\n /** Geometry section heading. @default \"Geometry\" */\n geometryHeading?: string;\n /** Navigation section heading. @default \"Navigation Layout\" */\n navHeading?: string;\n /** Accent color label (shown for Custom brand). @default \"Accent Color\" */\n accentColorLabel?: string;\n /** Reset button text. @default \"Reset to Defaults\" */\n resetLabel?: string;\n\n /* Theme options */\n themeLight?: string;\n themeLightContrast?: string;\n themeDark?: string;\n themeDarkContrast?: string;\n\n /* Brand options */\n brandDefault?: string;\n brandDefaultDescription?: string;\n brandSalesmind?: string;\n brandSalesmindDescription?: string;\n brandCustom?: string;\n brandCustomDescription?: string;\n\n /* Density options */\n densityComfortable?: string;\n densityComfortableDescription?: string;\n densityCompact?: string;\n densityCompactDescription?: string;\n\n /* Radius / geometry options */\n radiusPlayful?: string;\n radiusPlayfulDescription?: string;\n radiusSharp?: string;\n radiusSharpDescription?: string;\n\n /* Navigation options */\n navLeft?: string;\n navRight?: string;\n navBottom?: string;\n}\n\nexport interface AppearancePanelProps {\n /** Custom class name */\n className?: string;\n /** Override default English labels for i18n. */\n labels?: AppearancePanelLabels;\n}\n\nexport const AppearancePanel = React.forwardRef<HTMLDivElement, AppearancePanelProps>(\n ({ className, labels: l }, ref) => {\n const {\n theme,\n brand,\n navPlacement,\n density,\n radius,\n customColor,\n setTheme,\n setBrand,\n setNavPlacement,\n setDensity,\n setRadius,\n setCustomColor,\n resetToDefaults,\n } = useAppearance();\n\n // Generate unique IDs for accessibility\n const colorPickerId = useId();\n\n // Build option arrays from labels (fallback to English defaults)\n const themeOptions: { value: Theme; label: string }[] = [\n { value: 'light', label: l?.themeLight ?? 'Light' },\n { value: 'light-contrast', label: l?.themeLightContrast ?? 'Light (High Contrast)' },\n { value: 'dark', label: l?.themeDark ?? 'Dark' },\n { value: 'dark-contrast', label: l?.themeDarkContrast ?? 'Dark (High Contrast)' },\n ];\n\n const brandOptions: { value: Brand; label: string; description: string }[] = [\n { value: 'default', label: l?.brandDefault ?? 'Default', description: l?.brandDefaultDescription ?? 'Warm Intelligence' },\n { value: 'salesmind', label: l?.brandSalesmind ?? 'SalesMind', description: l?.brandSalesmindDescription ?? 'Pink-red + Gold' },\n { value: 'custom', label: l?.brandCustom ?? 'Custom', description: l?.brandCustomDescription ?? 'Your color' },\n ];\n\n const navOptions: { value: NavPlacement; label: string }[] = [\n { value: 'left', label: l?.navLeft ?? 'Left Sidebar' },\n { value: 'right', label: l?.navRight ?? 'Right Sidebar' },\n { value: 'bottom', label: l?.navBottom ?? 'Bottom Tabs' },\n ];\n\n const densityOptions: { value: Density; label: string; description: string }[] = [\n { value: 'comfortable', label: l?.densityComfortable ?? 'Comfortable', description: l?.densityComfortableDescription ?? 'Generous spacing' },\n { value: 'compact', label: l?.densityCompact ?? 'Compact', description: l?.densityCompactDescription ?? 'Higher density' },\n ];\n\n const radiusOptions: { value: Radius; label: string; description: string }[] = [\n { value: 'playful', label: l?.radiusPlayful ?? 'Playful', description: l?.radiusPlayfulDescription ?? 'Rounded corners' },\n { value: 'sharp', label: l?.radiusSharp ?? 'Sharp', description: l?.radiusSharpDescription ?? 'Technical feel' },\n ];\n\n return (\n <div ref={ref} className={clsx('ds-appearance-panel', className)}>\n <h3 className=\"ds-appearance-panel__title\">{l?.title ?? 'Appearance Settings'}</h3>\n\n {/* Theme Section */}\n <fieldset className=\"ds-appearance-panel__section\">\n <legend className=\"ds-appearance-panel__legend\">{l?.themeHeading ?? 'Theme'}</legend>\n <div className=\"ds-appearance-panel__options\">\n {themeOptions.map((option) => (\n <label\n key={option.value}\n className={clsx(\n 'ds-appearance-panel__option',\n theme === option.value && 'ds-appearance-panel__option--active',\n )}\n >\n <input\n type=\"radio\"\n name=\"theme\"\n value={option.value}\n checked={theme === option.value}\n onChange={() => setTheme(option.value)}\n className=\"ds-appearance-panel__radio\"\n />\n <span className=\"ds-appearance-panel__option-label\">{option.label}</span>\n </label>\n ))}\n </div>\n </fieldset>\n\n {/* Brand Section */}\n <fieldset className=\"ds-appearance-panel__section\">\n <legend className=\"ds-appearance-panel__legend\">{l?.brandHeading ?? 'Brand'}</legend>\n <div className=\"ds-appearance-panel__options\">\n {brandOptions.map((option) => (\n <label\n key={option.value}\n className={clsx(\n 'ds-appearance-panel__option',\n brand === option.value && 'ds-appearance-panel__option--active',\n )}\n >\n <input\n type=\"radio\"\n name=\"brand\"\n value={option.value}\n checked={brand === option.value}\n onChange={() => setBrand(option.value)}\n className=\"ds-appearance-panel__radio\"\n />\n <span className=\"ds-appearance-panel__option-content\">\n <span className=\"ds-appearance-panel__option-label\">{option.label}</span>\n <span className=\"ds-appearance-panel__option-description\">\n {option.description}\n </span>\n </span>\n </label>\n ))}\n </div>\n\n {/* Color Picker (shown only for Custom brand) */}\n {brand === 'custom' && (\n <div className=\"ds-appearance-panel__color-picker\">\n <label htmlFor={colorPickerId} className=\"ds-appearance-panel__color-label\">\n {l?.accentColorLabel ?? 'Accent Color'}\n </label>\n <div className=\"ds-appearance-panel__color-input-wrapper\">\n <input\n type=\"color\"\n id={colorPickerId}\n value={customColor}\n onChange={(e) => setCustomColor(e.target.value)}\n className=\"ds-appearance-panel__color-input\"\n />\n <span className=\"ds-appearance-panel__color-value\">\n {customColor.toUpperCase()}\n </span>\n </div>\n </div>\n )}\n </fieldset>\n\n {/* Density Section */}\n <fieldset className=\"ds-appearance-panel__section\">\n <legend className=\"ds-appearance-panel__legend\">{l?.densityHeading ?? 'Density'}</legend>\n <div className=\"ds-appearance-panel__options ds-appearance-panel__options--row\">\n {densityOptions.map((option) => (\n <label\n key={option.value}\n className={clsx(\n 'ds-appearance-panel__option',\n 'ds-appearance-panel__option--toggle',\n density === option.value && 'ds-appearance-panel__option--active',\n )}\n >\n <input\n type=\"radio\"\n name=\"density\"\n value={option.value}\n checked={density === option.value}\n onChange={() => setDensity(option.value)}\n className=\"ds-appearance-panel__radio\"\n />\n <span className=\"ds-appearance-panel__option-content\">\n <span className=\"ds-appearance-panel__option-label\">{option.label}</span>\n <span className=\"ds-appearance-panel__option-description\">\n {option.description}\n </span>\n </span>\n </label>\n ))}\n </div>\n </fieldset>\n\n {/* Geometry Section */}\n <fieldset className=\"ds-appearance-panel__section\">\n <legend className=\"ds-appearance-panel__legend\">{l?.geometryHeading ?? 'Geometry'}</legend>\n <div className=\"ds-appearance-panel__options ds-appearance-panel__options--row\">\n {radiusOptions.map((option) => (\n <label\n key={option.value}\n className={clsx(\n 'ds-appearance-panel__option',\n 'ds-appearance-panel__option--toggle',\n radius === option.value && 'ds-appearance-panel__option--active',\n )}\n >\n <input\n type=\"radio\"\n name=\"radius\"\n value={option.value}\n checked={radius === option.value}\n onChange={() => setRadius(option.value)}\n className=\"ds-appearance-panel__radio\"\n />\n <span className=\"ds-appearance-panel__option-content\">\n <span className=\"ds-appearance-panel__option-label\">{option.label}</span>\n <span className=\"ds-appearance-panel__option-description\">\n {option.description}\n </span>\n </span>\n </label>\n ))}\n </div>\n </fieldset>\n\n {/* Navigation Section */}\n <fieldset className=\"ds-appearance-panel__section\">\n <legend className=\"ds-appearance-panel__legend\">{l?.navHeading ?? 'Navigation Layout'}</legend>\n <div className=\"ds-appearance-panel__options\">\n {navOptions.map((option) => (\n <label\n key={option.value}\n className={clsx(\n 'ds-appearance-panel__option',\n navPlacement === option.value && 'ds-appearance-panel__option--active',\n )}\n >\n <input\n type=\"radio\"\n name=\"nav\"\n value={option.value}\n checked={navPlacement === option.value}\n onChange={() => setNavPlacement(option.value)}\n className=\"ds-appearance-panel__radio\"\n />\n <span className=\"ds-appearance-panel__option-label\">{option.label}</span>\n </label>\n ))}\n </div>\n </fieldset>\n\n {/* Reset Button */}\n <button type=\"button\" onClick={resetToDefaults} className=\"ds-appearance-panel__reset\">\n {l?.resetLabel ?? 'Reset to Defaults'}\n </button>\n </div>\n );\n },\n);\n\nAppearancePanel.displayName = 'AppearancePanel';\n","import React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport './Button.css';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Visual style variant of the button */\n variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'link' | 'destructive';\n /** Size of the button */\n size?: 'sm' | 'md' | 'lg' | 'icon';\n /** Shows a loading spinner and disables the button */\n isLoading?: boolean;\n /**\n * When true, the button renders its child as the root element via Radix Slot.\n * Use this to compose with routing Link components or anchors.\n *\n * @example\n * <Button asChild>\n * <a href=\"/about\">About</a>\n * </Button>\n */\n asChild?: boolean;\n}\n\n/**\n * Primary UI action component with multiple visual variants and polymorphic rendering.\n *\n * Supports `asChild` for rendering as any element (Link, anchor, etc.)\n * while preserving button styling.\n */\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant = 'primary', size = 'md', asChild = false, isLoading = false, children, disabled, ...props }, ref) => {\n const buttonClass = clsx(\n 'ds-button',\n `ds-button--${variant}`,\n size === 'icon' ? 'ds-button--icon ds-button--md' : `ds-button--${size}`,\n isLoading && 'ds-button--loading',\n className,\n );\n\n // When asChild, Slot must receive exactly one child element.\n // Loading state is handled via the ds-button--loading CSS class.\n if (asChild) {\n return (\n <Slot\n ref={ref}\n aria-disabled={isLoading || disabled || undefined}\n className={buttonClass}\n {...props}\n >\n {children}\n </Slot>\n );\n }\n\n return (\n <button\n ref={ref}\n disabled={isLoading || disabled}\n className={buttonClass}\n {...props}\n >\n {isLoading && (\n <svg\n className=\"ds-button__spinner\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n height=\"1em\"\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=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n )}\n <span className={clsx(\"ds-button__content\", isLoading && \"ds-button__content--hidden\")}>\n {children}\n </span>\n </button>\n );\n },\n);\n\nButton.displayName = 'Button';\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 React from 'react';\nimport { Input as BaseInput } from '@base-ui/react/input';\nimport clsx from 'clsx';\nimport './TextField.css';\n\nexport interface TextFieldProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: string;\n error?: boolean;\n helperText?: string;\n endAdornment?: React.ReactNode;\n}\n\nexport const TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n ({ className, label, error, helperText, endAdornment, id, ...props }, ref) => {\n const generatedId = React.useId();\n const inputId = id || generatedId;\n\n return (\n <div className={clsx('ds-textfield', className)}>\n {label && (\n <label htmlFor={inputId} className=\"ds-textfield__label\">\n {label}\n </label>\n )}\n <div className=\"ds-textfield__input-wrapper\">\n <BaseInput\n id={inputId}\n ref={ref}\n className={clsx(\n 'ds-textfield__input',\n error && 'ds-textfield__input--error',\n endAdornment && 'ds-textfield__input--adorned',\n )}\n {...props}\n />\n {endAdornment && <div className=\"ds-textfield__adornment\">{endAdornment}</div>}\n </div>\n {helperText && (\n <span className={clsx('ds-textfield__helper', error && 'ds-textfield__helper--error')}>\n {helperText}\n </span>\n )}\n </div>\n );\n },\n);\n\nTextField.displayName = 'TextField';\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 from 'react';\nimport { Checkbox as BaseCheckbox } from '@base-ui/react/checkbox';\nimport clsx from 'clsx';\nimport './Checkbox.css';\n\nexport interface CheckboxProps {\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 Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n ({ className, label, id, ...props }, ref) => {\n const generatedId = React.useId();\n const checkboxId = id || generatedId;\n\n return (\n <div className={clsx('ds-checkbox-wrapper', className)}>\n <BaseCheckbox.Root id={checkboxId} ref={ref} className=\"ds-checkbox\" {...props}>\n <BaseCheckbox.Indicator className=\"ds-checkbox__indicator\">\n <svg\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"ds-checkbox__icon\"\n >\n <path\n d=\"M11.6666 3.5L5.24992 9.91667L2.33325 7\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </BaseCheckbox.Indicator>\n </BaseCheckbox.Root>\n {label && (\n <label htmlFor={checkboxId} className=\"ds-checkbox__label\">\n {label}\n </label>\n )}\n </div>\n );\n },\n);\n\nCheckbox.displayName = 'Checkbox';\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 { Dialog as BaseDialog } from '@base-ui/react/dialog';\nimport clsx from 'clsx';\nimport './Dialog.css';\n\nexport const Dialog = BaseDialog.Root;\nexport const DialogTrigger = BaseDialog.Trigger;\nexport const DialogClose = BaseDialog.Close;\nexport const DialogTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <BaseDialog.Title ref={ref} className={clsx('ds-dialog__title', className)} {...props} />\n));\nDialogTitle.displayName = 'DialogTitle';\n\nexport const DialogDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <BaseDialog.Description\n ref={ref}\n className={clsx('ds-dialog__description', className)}\n {...props}\n />\n));\nDialogDescription.displayName = 'DialogDescription';\n\nexport const DialogContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <BaseDialog.Portal>\n <BaseDialog.Backdrop className=\"ds-dialog__backdrop\" />\n <BaseDialog.Popup ref={ref} className={clsx('ds-dialog__content', className)} {...props}>\n {children}\n </BaseDialog.Popup>\n </BaseDialog.Portal>\n ),\n);\nDialogContent.displayName = 'DialogContent';\n\n/**\n * Semantic header section for a dialog, typically containing\n * DialogTitle and DialogDescription.\n */\nexport const DialogHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-dialog__header', className)} {...props} />\n ),\n);\nDialogHeader.displayName = 'DialogHeader';\n\n/**\n * Footer section for dialog actions (confirm, cancel, etc.).\n * Renders children in a right-aligned flex row with standard gap.\n */\nexport const DialogFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-dialog__footer', className)} {...props} />\n ),\n);\nDialogFooter.displayName = 'DialogFooter';\n","import React from 'react';\nimport { Tooltip as BaseTooltip } from '@base-ui/react/tooltip';\nimport clsx from 'clsx';\nimport './Tooltip.css';\n\nexport const TooltipProvider = BaseTooltip.Provider;\nexport const TooltipRoot = BaseTooltip.Root;\nexport const TooltipTrigger = BaseTooltip.Trigger;\n\nexport const TooltipContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, children, ...props }, ref) => (\n <BaseTooltip.Portal>\n <BaseTooltip.Positioner sideOffset={5}>\n <BaseTooltip.Popup ref={ref} className={clsx('ds-tooltip__content', className)} {...props}>\n {children}\n <BaseTooltip.Arrow className=\"ds-tooltip__arrow\" />\n </BaseTooltip.Popup>\n </BaseTooltip.Positioner>\n </BaseTooltip.Portal>\n));\nTooltipContent.displayName = 'TooltipContent';\n\nexport interface TooltipProps {\n content: React.ReactNode;\n children: React.ReactNode;\n delay?: number;\n}\n\nexport const Tooltip = ({ content, children, delay = 200 }: TooltipProps) => {\n return (\n <BaseTooltip.Provider delay={delay}>\n <BaseTooltip.Root>\n <BaseTooltip.Trigger render={children as React.ReactElement} />\n <TooltipContent>{content}</TooltipContent>\n </BaseTooltip.Root>\n </BaseTooltip.Provider>\n );\n};\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Badge.css';\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Visual style variant */\n variant?: 'default' | 'secondary' | 'outline' | 'destructive';\n}\n\n/**\n * General-purpose badge for tags, labels, categories, and status indicators.\n *\n * For status-specific badges (success/warning/error/info), use `StatusBadge` instead.\n *\n * @example\n * <Badge>New</Badge>\n * <Badge variant=\"secondary\">Category</Badge>\n * <Badge variant=\"outline\">v2.1.0</Badge>\n * <Badge variant=\"destructive\">Breaking</Badge>\n */\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant = 'default', ...props }, ref) => {\n return (\n <span\n ref={ref}\n className={clsx('ds-badge', `ds-badge--${variant}`, className)}\n {...props}\n />\n );\n },\n);\n\nBadge.displayName = 'Badge';\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 { Menu as BaseMenu } from '@base-ui/react/menu';\nimport clsx from 'clsx';\nimport './DropdownMenu.css';\n\n/* ============================================================================\n DROPDOWN MENU ROOT\n ============================================================================ */\n\nexport const DropdownMenu = BaseMenu.Root;\n\n/* ============================================================================\n DROPDOWN MENU TRIGGER\n ============================================================================ */\n\nexport const DropdownMenuTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement> & { className?: string }\n>(({ className, ...props }, ref) => {\n return (\n <BaseMenu.Trigger\n ref={ref}\n className={clsx('ds-dropdown-menu__trigger', className)}\n {...props}\n />\n );\n});\n\nDropdownMenuTrigger.displayName = 'DropdownMenuTrigger';\n\n/* ============================================================================\n DROPDOWN MENU CONTENT\n ============================================================================ */\n\nexport interface DropdownMenuContentProps extends React.HTMLAttributes<HTMLDivElement> {\n side?: 'top' | 'right' | 'bottom' | 'left';\n align?: 'start' | 'center' | 'end';\n sideOffset?: number;\n alignOffset?: number;\n}\n\nexport const DropdownMenuContent = React.forwardRef<HTMLDivElement, DropdownMenuContentProps>(\n (\n { className, side = 'bottom', align = 'start', sideOffset = 4, alignOffset = 0, ...props },\n ref,\n ) => {\n return (\n <BaseMenu.Portal>\n <BaseMenu.Positioner\n side={side}\n align={align}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n >\n <BaseMenu.Popup\n ref={ref}\n className={clsx('ds-dropdown-menu__content', className)}\n {...props}\n />\n </BaseMenu.Positioner>\n </BaseMenu.Portal>\n );\n },\n);\n\nDropdownMenuContent.displayName = 'DropdownMenuContent';\n\n/* ============================================================================\n DROPDOWN MENU ITEM\n ============================================================================ */\n\nexport interface DropdownMenuItemProps extends React.HTMLAttributes<HTMLDivElement> {\n disabled?: boolean;\n}\n\nexport const DropdownMenuItem = React.forwardRef<HTMLDivElement, DropdownMenuItemProps>(\n ({ className, ...props }, ref) => {\n return (\n <BaseMenu.Item ref={ref} className={clsx('ds-dropdown-menu__item', className)} {...props} />\n );\n },\n);\n\nDropdownMenuItem.displayName = 'DropdownMenuItem';\n\n/* ============================================================================\n DROPDOWN MENU SEPARATOR\n ============================================================================ */\n\nexport const DropdownMenuSeparator = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n return <div ref={ref} className={clsx('ds-dropdown-menu__separator', className)} {...props} />;\n});\n\nDropdownMenuSeparator.displayName = 'DropdownMenuSeparator';\n\n/* ============================================================================\n DROPDOWN MENU LABEL\n ============================================================================ */\n\nexport const DropdownMenuLabel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n return <div ref={ref} className={clsx('ds-dropdown-menu__label', className)} {...props} />;\n});\n\nDropdownMenuLabel.displayName = 'DropdownMenuLabel';\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","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 './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, ...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 onClick={() => toggle(value)}\n {...props}\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 clsx from 'clsx';\nimport './Avatar.css';\n\n/* ==========================================================================\n Context\n ========================================================================== */\n\ninterface AvatarContextValue {\n hasImage: boolean;\n imageError: boolean;\n onImageError: () => void;\n}\n\nconst AvatarContext = React.createContext<AvatarContextValue>({\n hasImage: false,\n imageError: false,\n onImageError: () => {},\n});\n\n/* ==========================================================================\n Avatar (root)\n ========================================================================== */\n\nexport interface AvatarProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n}\n\n/**\n * User avatar with image and fallback support.\n *\n * @example\n * <Avatar>\n * <AvatarImage src=\"/photo.jpg\" alt=\"User\" />\n * <AvatarFallback>JD</AvatarFallback>\n * </Avatar>\n */\nexport const Avatar = React.forwardRef<HTMLSpanElement, AvatarProps>(\n ({ size = 'md', className, children, ...props }, ref) => {\n const [imageError, setImageError] = React.useState(false);\n const [hasImage, setHasImage] = React.useState(false);\n\n // Scan children to detect if an AvatarImage is present\n React.useEffect(() => {\n let found = false;\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child) && child.type === AvatarImage) {\n found = true;\n }\n });\n setHasImage(found);\n }, [children]);\n\n const onImageError = React.useCallback(() => {\n setImageError(true);\n }, []);\n\n return (\n <AvatarContext.Provider value={{ hasImage, imageError, onImageError }}>\n <span\n ref={ref}\n className={clsx('ds-avatar', `ds-avatar--${size}`, className)}\n {...props}\n >\n {children}\n </span>\n </AvatarContext.Provider>\n );\n },\n);\n\nAvatar.displayName = 'Avatar';\n\n/* ==========================================================================\n AvatarImage\n ========================================================================== */\n\nexport const AvatarImage = React.forwardRef<\n HTMLImageElement,\n React.ImgHTMLAttributes<HTMLImageElement>\n>(({ className, onError, ...props }, ref) => {\n const { imageError, onImageError } = React.useContext(AvatarContext);\n\n const handleError = (e: React.SyntheticEvent<HTMLImageElement>) => {\n onImageError();\n onError?.(e);\n };\n\n if (imageError) return null;\n\n return (\n <img\n ref={ref}\n className={clsx('ds-avatar__image', className)}\n onError={handleError}\n {...props}\n />\n );\n});\n\nAvatarImage.displayName = 'AvatarImage';\n\n/* ==========================================================================\n AvatarFallback\n ========================================================================== */\n\nexport const AvatarFallback = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => {\n const { hasImage, imageError } = React.useContext(AvatarContext);\n\n // Show fallback when there is no image, or the image failed to load\n if (hasImage && !imageError) return null;\n\n return (\n <span ref={ref} className={clsx('ds-avatar__fallback', className)} {...props} />\n );\n});\n\nAvatarFallback.displayName = 'AvatarFallback';\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 { Slot } from '@radix-ui/react-slot';\nimport clsx from 'clsx';\nimport './Breadcrumb.css';\n\n/* ==========================================================================\n Breadcrumb (nav)\n ========================================================================== */\n\nexport interface BreadcrumbProps extends React.HTMLAttributes<HTMLElement> {\n /** Override the default aria-label for the nav element. @default \"Breadcrumb\" */\n 'aria-label'?: string;\n}\n\n/**\n * Navigation breadcrumb trail. Wrap `BreadcrumbList`, `BreadcrumbItem`,\n * `BreadcrumbLink`, and `BreadcrumbPage` inside this root element.\n *\n * @example\n * <Breadcrumb>\n * <BreadcrumbList>\n * <BreadcrumbItem>\n * <BreadcrumbLink href=\"/\">Home</BreadcrumbLink>\n * </BreadcrumbItem>\n * <BreadcrumbSeparator />\n * <BreadcrumbItem>\n * <BreadcrumbPage>Current</BreadcrumbPage>\n * </BreadcrumbItem>\n * </BreadcrumbList>\n * </Breadcrumb>\n */\nexport const Breadcrumb = React.forwardRef<HTMLElement, BreadcrumbProps>(\n ({ className, 'aria-label': ariaLabel = 'Breadcrumb', ...props }, ref) => {\n return (\n <nav\n ref={ref}\n aria-label={ariaLabel}\n className={clsx('ds-breadcrumb', className)}\n {...props}\n />\n );\n },\n);\n\nBreadcrumb.displayName = 'Breadcrumb';\n\n/* ==========================================================================\n BreadcrumbList (ol)\n ========================================================================== */\n\nexport type BreadcrumbListProps = React.OlHTMLAttributes<HTMLOListElement>;\n\nexport const BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n BreadcrumbListProps\n>(({ className, ...props }, ref) => {\n return (\n <ol\n ref={ref}\n className={clsx('ds-breadcrumb__list', className)}\n {...props}\n />\n );\n});\n\nBreadcrumbList.displayName = 'BreadcrumbList';\n\n/* ==========================================================================\n BreadcrumbItem (li)\n ========================================================================== */\n\nexport type BreadcrumbItemProps = React.LiHTMLAttributes<HTMLLIElement>;\n\nexport const BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n BreadcrumbItemProps\n>(({ className, ...props }, ref) => {\n return (\n <li\n ref={ref}\n className={clsx('ds-breadcrumb__item', className)}\n {...props}\n />\n );\n});\n\nBreadcrumbItem.displayName = 'BreadcrumbItem';\n\n/* ==========================================================================\n BreadcrumbLink (a)\n ========================================================================== */\n\nexport interface BreadcrumbLinkProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n /**\n * When true, renders its child as the root element via Radix Slot.\n * Use this to compose with routing Link components.\n */\n asChild?: boolean;\n}\n\nexport const BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n BreadcrumbLinkProps\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n ref={ref}\n className={clsx('ds-breadcrumb__link', className)}\n {...props}\n />\n );\n});\n\nBreadcrumbLink.displayName = 'BreadcrumbLink';\n\n/* ==========================================================================\n BreadcrumbPage (span — current page)\n ========================================================================== */\n\nexport type BreadcrumbPageProps = React.HTMLAttributes<HTMLSpanElement>;\n\nexport const BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n BreadcrumbPageProps\n>(({ className, ...props }, ref) => {\n return (\n <span\n ref={ref}\n role=\"link\"\n aria-current=\"page\"\n aria-disabled=\"true\"\n className={clsx('ds-breadcrumb__page', className)}\n {...props}\n />\n );\n});\n\nBreadcrumbPage.displayName = 'BreadcrumbPage';\n\n/* ==========================================================================\n BreadcrumbSeparator (li — decorative)\n ========================================================================== */\n\nexport type BreadcrumbSeparatorProps = React.LiHTMLAttributes<HTMLLIElement>;\n\nexport const BreadcrumbSeparator = React.forwardRef<\n HTMLLIElement,\n BreadcrumbSeparatorProps\n>(({ className, children, ...props }, ref) => {\n return (\n <li\n ref={ref}\n role=\"presentation\"\n aria-hidden=\"true\"\n className={clsx('ds-breadcrumb__separator', className)}\n {...props}\n >\n {children ?? '/'}\n </li>\n );\n});\n\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator';\n\n/* ==========================================================================\n BreadcrumbEllipsis (span — truncation indicator)\n ========================================================================== */\n\nexport type BreadcrumbEllipsisProps = React.HTMLAttributes<HTMLSpanElement>;\n\nexport const BreadcrumbEllipsis = React.forwardRef<\n HTMLSpanElement,\n BreadcrumbEllipsisProps\n>(({ className, ...props }, ref) => {\n return (\n <span\n ref={ref}\n className={clsx('ds-breadcrumb__ellipsis', className)}\n {...props}\n >\n &hellip;\n </span>\n );\n});\n\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis';\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 './ToggleGroup.css';\n\n/* ==========================================================================\n Context\n ========================================================================== */\n\ninterface ToggleGroupContextValue {\n type: 'single' | 'multiple';\n value: string[];\n onItemToggle: (itemValue: string) => void;\n}\n\nconst ToggleGroupContext = React.createContext<ToggleGroupContextValue>({\n type: 'single',\n value: [],\n onItemToggle: () => {},\n});\n\n/* ==========================================================================\n ToggleGroup (div — role=\"group\")\n ========================================================================== */\n\nexport interface ToggleGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Whether a single or multiple items can be pressed at once. */\n type: 'single' | 'multiple';\n /** The controlled value(s). String for single, string[] for multiple. */\n value?: string | string[];\n /** Callback when value changes. */\n onValueChange?: (value: string | string[]) => void;\n}\n\n/**\n * A group of toggle buttons where one or more can be selected.\n *\n * @example\n * <ToggleGroup type=\"single\" value=\"center\" onValueChange={setValue}>\n * <ToggleGroupItem value=\"left\">Left</ToggleGroupItem>\n * <ToggleGroupItem value=\"center\">Center</ToggleGroupItem>\n * <ToggleGroupItem value=\"right\">Right</ToggleGroupItem>\n * </ToggleGroup>\n */\nexport const ToggleGroup = React.forwardRef<HTMLDivElement, ToggleGroupProps>(\n ({ className, type, value, onValueChange, children, ...props }, ref) => {\n const normalizedValue = React.useMemo<string[]>(() => {\n if (value === undefined) return [];\n return Array.isArray(value) ? value : [value];\n }, [value]);\n\n const onItemToggle = React.useCallback(\n (itemValue: string) => {\n if (type === 'single') {\n const next = normalizedValue.includes(itemValue) ? '' : itemValue;\n onValueChange?.(next);\n } else {\n const next = normalizedValue.includes(itemValue)\n ? normalizedValue.filter((v) => v !== itemValue)\n : [...normalizedValue, itemValue];\n onValueChange?.(next);\n }\n },\n [type, normalizedValue, onValueChange],\n );\n\n const ctx = React.useMemo<ToggleGroupContextValue>(\n () => ({ type, value: normalizedValue, onItemToggle }),\n [type, normalizedValue, onItemToggle],\n );\n\n return (\n <ToggleGroupContext.Provider value={ctx}>\n <div\n ref={ref}\n role=\"group\"\n className={clsx('ds-toggle-group', className)}\n {...props}\n >\n {children}\n </div>\n </ToggleGroupContext.Provider>\n );\n },\n);\n\nToggleGroup.displayName = 'ToggleGroup';\n\n/* ==========================================================================\n ToggleGroupItem (button)\n ========================================================================== */\n\nexport interface ToggleGroupItemProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** The value this item represents. */\n value: string;\n}\n\nexport const ToggleGroupItem = React.forwardRef<\n HTMLButtonElement,\n ToggleGroupItemProps\n>(({ className, value, children, onClick, ...props }, ref) => {\n const ctx = React.useContext(ToggleGroupContext);\n const pressed = ctx.value.includes(value);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n ctx.onItemToggle(value);\n onClick?.(e);\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-pressed={pressed}\n className={clsx(\n 'ds-toggle-group__item',\n pressed && 'ds-toggle-group__item--pressed',\n className,\n )}\n onClick={handleClick}\n {...props}\n >\n {children}\n </button>\n );\n});\n\nToggleGroupItem.displayName = 'ToggleGroupItem';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Slider.css';\n\nexport interface SliderProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Current value (controlled). */\n value?: number;\n /** Default value (uncontrolled). */\n defaultValue?: number;\n /** Minimum value. */\n min?: number;\n /** Maximum value. */\n max?: number;\n /** Step increment. */\n step?: number;\n /** Callback fired when the value changes. */\n onValueChange?: (value: number) => void;\n /** Whether the slider is disabled. */\n disabled?: boolean;\n}\n\nexport const Slider = React.forwardRef<HTMLDivElement, SliderProps>(\n (\n {\n className,\n value: controlledValue,\n defaultValue = 50,\n min = 0,\n max = 100,\n step = 1,\n onValueChange,\n disabled = false,\n ...props\n },\n ref,\n ) => {\n const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);\n\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : uncontrolledValue;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const next = Number(e.target.value);\n if (!isControlled) {\n setUncontrolledValue(next);\n }\n onValueChange?.(next);\n };\n\n const percentage = ((value - min) / (max - min)) * 100;\n\n return (\n <div\n ref={ref}\n className={clsx('ds-slider', disabled && 'ds-slider--disabled', className)}\n {...props}\n >\n <div className=\"ds-slider__track\">\n <div\n className=\"ds-slider__range\"\n style={{ width: `${percentage}%` }}\n />\n </div>\n <input\n type=\"range\"\n className=\"ds-slider__thumb\"\n role=\"slider\"\n min={min}\n max={max}\n step={step}\n value={value}\n disabled={disabled}\n onChange={handleChange}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={value}\n />\n </div>\n );\n },\n);\n\nSlider.displayName = 'Slider';\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 { CSSProperties } from 'react';\nimport { SPACING } from '../../tokens/spacing';\n\ntype SpacingValue = keyof typeof SPACING | number | string;\n\n/**\n * Named spacing aliases that map semantic sizes to DS space tokens.\n * Allows consumers to pass gap=\"lg\" instead of gap={6}.\n */\nconst SPACING_ALIASES: Record<string, string> = {\n xs: 'var(--space-2)',\n sm: 'var(--space-3)',\n md: 'var(--space-4)',\n lg: 'var(--space-6)',\n xl: 'var(--space-8)',\n '2xl': 'var(--space-12)',\n};\n\nexport function resolveSpacing(value: SpacingValue | undefined): string | undefined {\n if (value === undefined) return undefined;\n if (typeof value === 'number' && SPACING[value as keyof typeof SPACING]) {\n return SPACING[value as keyof typeof SPACING];\n }\n if (typeof value === 'string' && value in SPACING_ALIASES) {\n return SPACING_ALIASES[value];\n }\n return String(value);\n}\n\nexport interface SpacingProps {\n m?: SpacingValue;\n mt?: SpacingValue;\n mb?: SpacingValue;\n ml?: SpacingValue;\n mr?: SpacingValue;\n mx?: SpacingValue;\n my?: SpacingValue;\n p?: SpacingValue;\n pt?: SpacingValue;\n pb?: SpacingValue;\n pl?: SpacingValue;\n pr?: SpacingValue;\n px?: SpacingValue;\n py?: SpacingValue;\n gap?: SpacingValue;\n}\n\nexport function extractSpacingStyles(props: SpacingProps): CSSProperties {\n const styles: CSSProperties = {};\n\n if (props.m !== undefined) styles.margin = resolveSpacing(props.m);\n if (props.mt !== undefined) styles.marginTop = resolveSpacing(props.mt);\n if (props.mb !== undefined) styles.marginBottom = resolveSpacing(props.mb);\n if (props.ml !== undefined) styles.marginLeft = resolveSpacing(props.ml);\n if (props.mr !== undefined) styles.marginRight = resolveSpacing(props.mr);\n if (props.mx !== undefined) {\n styles.marginLeft = resolveSpacing(props.mx);\n styles.marginRight = resolveSpacing(props.mx);\n }\n if (props.my !== undefined) {\n styles.marginTop = resolveSpacing(props.my);\n styles.marginBottom = resolveSpacing(props.my);\n }\n\n if (props.p !== undefined) styles.padding = resolveSpacing(props.p);\n if (props.pt !== undefined) styles.paddingTop = resolveSpacing(props.pt);\n if (props.pb !== undefined) styles.paddingBottom = resolveSpacing(props.pb);\n if (props.pl !== undefined) styles.paddingLeft = resolveSpacing(props.pl);\n if (props.pr !== undefined) styles.paddingRight = resolveSpacing(props.pr);\n if (props.px !== undefined) {\n styles.paddingLeft = resolveSpacing(props.px);\n styles.paddingRight = resolveSpacing(props.px);\n }\n if (props.py !== undefined) {\n styles.paddingTop = resolveSpacing(props.py);\n styles.paddingBottom = resolveSpacing(props.py);\n }\n\n if (props.gap !== undefined) styles.gap = resolveSpacing(props.gap);\n\n return styles;\n}\n","import { ElementType, HTMLAttributes, forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { SpacingProps, extractSpacingStyles } from './utils';\nimport './LayoutPrimitives.css';\n\nexport interface BoxProps extends HTMLAttributes<HTMLElement>, SpacingProps {\n as?: ElementType;\n}\n\nexport const Box = forwardRef<HTMLElement, BoxProps>(\n ({ as: Component = 'div', className, style, children, ...props }, ref) => {\n const spacingStyles = extractSpacingStyles(props);\n\n // Filter out spacing props from passing to DOM\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { m, mt, mb, ml, mr, mx, my, p, pt, pb, pl, pr, px, py, gap, ...domProps } = props;\n\n return (\n <Component\n ref={ref}\n className={clsx('ds-box', className)}\n style={{ ...spacingStyles, ...style }}\n {...domProps}\n >\n {children}\n </Component>\n );\n },\n);\n\nBox.displayName = 'Box';\n","import { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { Box, BoxProps } from './Box';\n\nexport interface StackProps extends BoxProps {\n direction?: 'row' | 'column';\n align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';\n justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\n wrap?: boolean;\n}\n\nexport const Stack = forwardRef<HTMLElement, StackProps>(\n ({ direction = 'column', align, justify, wrap, className, style, ...props }, ref) => {\n return (\n <Box\n ref={ref}\n className={clsx('ds-stack', direction === 'row' && 'ds-stack--horizontal', className)}\n style={{\n alignItems: align,\n justifyContent: justify === 'between' ? 'space-between' : justify,\n flexWrap: wrap ? 'wrap' : undefined,\n ...style,\n }}\n {...props}\n />\n );\n },\n);\n\nStack.displayName = 'Stack';\n","import { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { Box, BoxProps } from './Box';\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}\n\nexport const Grid = forwardRef<HTMLElement, GridProps>(\n ({ columns, rows, align, justify, className, style, ...props }, ref) => {\n return (\n <Box\n ref={ref}\n className={clsx('ds-grid', className)}\n style={{\n gridTemplateColumns: typeof columns === 'number' ? `repeat(${columns}, 1fr)` : 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 } from 'react';\nimport clsx from 'clsx';\nimport { Box, BoxProps } from './Box';\n\nexport type ContainerSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\n/**\n * Maps named sizes to max-width values.\n * Aligns with common web breakpoints (Tailwind `max-w-*` scale).\n */\n// eslint-disable-next-line react-refresh/only-export-components\nexport const CONTAINER_SIZE_MAP: Record<ContainerSize, string> = {\n sm: '768px', // 48rem — max-w-3xl\n md: '1024px', // 64rem — max-w-5xl\n lg: '1152px', // 72rem — max-w-6xl\n xl: '1280px', // 80rem — max-w-7xl\n full: '100%',\n};\n\nexport interface ContainerProps extends BoxProps {\n /**\n * Named size preset. Overrides `maxWidth` when set.\n * @example <Container size=\"lg\">…</Container>\n */\n size?: ContainerSize;\n /** Pass `true` to stretch to 100% width (same as `size=\"full\"`). */\n fluid?: boolean;\n /** Custom max-width value. Ignored when `size` or `fluid` is set. */\n maxWidth?: number | string;\n}\n\nexport const Container = forwardRef<HTMLElement, ContainerProps>(\n ({ size, fluid, maxWidth, className, style, ...props }, ref) => {\n let resolvedMaxWidth: string | number;\n if (fluid) {\n resolvedMaxWidth = '100%';\n } else if (size) {\n resolvedMaxWidth = CONTAINER_SIZE_MAP[size];\n } else {\n resolvedMaxWidth = maxWidth || '1200px';\n }\n\n return (\n <Box\n ref={ref}\n className={clsx('ds-container', className)}\n style={{\n maxWidth: resolvedMaxWidth,\n ...style,\n }}\n {...props}\n />\n );\n },\n);\n\nContainer.displayName = 'Container';\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 { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport clsx from 'clsx';\nimport './Tabs.css';\n\n/* ============================================================================\n TABS ROOT\n ============================================================================ */\n\nexport interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {\n defaultValue?: string | number;\n value?: string | number;\n onValueChange?: (value: string | number) => void;\n orientation?: 'horizontal' | 'vertical';\n}\n\nexport const Tabs = React.forwardRef<HTMLDivElement, TabsProps>(\n ({ className, orientation = 'horizontal', ...props }, ref) => {\n return (\n <BaseTabs.Root\n ref={ref}\n className={clsx('ds-tabs', `ds-tabs--${orientation}`, className)}\n orientation={orientation}\n {...props}\n />\n );\n },\n);\n\nTabs.displayName = 'Tabs';\n\n/* ============================================================================\n TABS LIST\n ============================================================================ */\n\nexport interface TabsListProps extends React.HTMLAttributes<HTMLDivElement> {\n loop?: boolean;\n}\n\nexport const TabsList = React.forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, ...props }, ref) => {\n return <BaseTabs.List ref={ref} className={clsx('ds-tabs__list', className)} {...props} />;\n },\n);\n\nTabsList.displayName = 'TabsList';\n\n/* ============================================================================\n TABS TRIGGER\n ============================================================================ */\n\nexport interface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string | number;\n disabled?: boolean;\n}\n\nexport const TabsTrigger = React.forwardRef<HTMLButtonElement, TabsTriggerProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <BaseTabs.Tab ref={ref} className={clsx('ds-tabs__trigger', className)} {...props}>\n {children}\n </BaseTabs.Tab>\n );\n },\n);\n\nTabsTrigger.displayName = 'TabsTrigger';\n\n/* ============================================================================\n TABS CONTENT\n ============================================================================ */\n\nexport interface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string | number;\n}\n\nexport const TabsContent = React.forwardRef<HTMLDivElement, TabsContentProps>(\n ({ className, ...props }, ref) => {\n return <BaseTabs.Panel ref={ref} className={clsx('ds-tabs__content', className)} {...props} />;\n },\n);\n\nTabsContent.displayName = 'TabsContent';\n","/**\n * Design System IntlProvider\n *\n * Wraps react-intl's IntlProvider with design system defaults.\n * Components receive i18n context through this provider.\n *\n * @example\n * ```tsx\n * import { DSIntlProvider } from '@salesmind-ai/design-system';\n *\n * // With default English messages\n * <DSIntlProvider>\n * <App />\n * </DSIntlProvider>\n *\n * // With custom locale and messages\n * <DSIntlProvider locale=\"fr\" messages={frenchMessages}>\n * <App />\n * </DSIntlProvider>\n * ```\n */\n\nimport React from 'react';\nimport { IntlProvider, IntlConfig } from 'react-intl';\n\n/**\n * Default English messages (extracted from component defaults)\n * These serve as fallbacks when no messages are provided.\n */\nconst defaultMessages: Record<string, string> = {\n // Common\n 'ds.common.loading': 'Loading...',\n 'ds.common.error': 'An error occurred',\n 'ds.common.retry': 'Retry',\n 'ds.common.cancel': 'Cancel',\n 'ds.common.confirm': 'Confirm',\n 'ds.common.close': 'Close',\n 'ds.common.save': 'Save',\n 'ds.common.delete': 'Delete',\n 'ds.common.edit': 'Edit',\n 'ds.common.submit': 'Submit',\n 'ds.common.required': 'Required',\n 'ds.common.optional': 'Optional',\n\n // Alert\n 'ds.alert.dismissLabel': 'Dismiss alert',\n 'ds.alert.successTitle': 'Success',\n 'ds.alert.errorTitle': 'Error',\n 'ds.alert.warningTitle': 'Warning',\n 'ds.alert.infoTitle': 'Information',\n\n // Toast\n 'ds.toast.dismissLabel': 'Dismiss notification',\n\n // Dialog\n 'ds.dialog.closeLabel': 'Close dialog',\n\n // Form\n 'ds.form.showPassword': 'Show password',\n 'ds.form.hidePassword': 'Hide password',\n 'ds.form.clearInput': 'Clear input',\n 'ds.form.invalidEmail': 'Please enter a valid email address',\n 'ds.form.passwordRequired': 'Password is required',\n\n // Auth\n 'ds.auth.loginTitle': 'Sign in to your account',\n 'ds.auth.signupTitle': 'Create your account',\n 'ds.auth.forgotPasswordTitle': 'Reset your password',\n 'ds.auth.emailLabel': 'Email address',\n 'ds.auth.passwordLabel': 'Password',\n 'ds.auth.rememberMe': 'Remember me',\n 'ds.auth.forgotPassword': 'Forgot your password?',\n 'ds.auth.signIn': 'Sign in',\n 'ds.auth.signUp': 'Sign up',\n 'ds.auth.sendResetLink': 'Send reset link',\n 'ds.auth.backToLogin': 'Back to login',\n\n // Navigation\n 'ds.nav.menuLabel': 'Navigation menu',\n 'ds.nav.toggleSidebar': 'Toggle sidebar',\n 'ds.nav.expandSubmenu': 'Expand submenu',\n 'ds.nav.collapseSubmenu': 'Collapse submenu',\n\n // Report\n 'ds.report.confidenceLabel': 'Confidence score',\n 'ds.report.dataCoverageLabel': 'Data coverage',\n 'ds.report.insufficientData': 'Insufficient data',\n 'ds.report.exportPdf': 'Export as PDF',\n 'ds.report.exportCsv': 'Export as CSV',\n 'ds.report.exportPptx': 'Export as PowerPoint',\n\n // Appearance\n 'ds.appearance.themeLabel': 'Theme',\n 'ds.appearance.darkTheme': 'Dark',\n 'ds.appearance.lightTheme': 'Light',\n 'ds.appearance.highContrastTheme': 'High contrast',\n 'ds.appearance.densityLabel': 'Density',\n 'ds.appearance.comfortableDensity': 'Comfortable',\n 'ds.appearance.compactDensity': 'Compact',\n\n // Pagination\n 'ds.pagination.previous': 'Previous',\n 'ds.pagination.next': 'Next',\n 'ds.pagination.goToPreviousPage': 'Go to previous page',\n 'ds.pagination.goToNextPage': 'Go to next page',\n\n // Calendar\n 'ds.calendar.previousMonth': 'Previous month',\n 'ds.calendar.nextMonth': 'Next month',\n\n // Carousel\n 'ds.carousel.previousSlide': 'Previous slide',\n 'ds.carousel.nextSlide': 'Next slide',\n\n // Methodology\n 'ds.methodology.title': 'Methodology',\n 'ds.methodology.sampleSize': 'Sample Size',\n 'ds.methodology.dataSources': 'Data Sources',\n 'ds.methodology.calculation': 'Calculation',\n};\n\nexport interface DSIntlProviderProps {\n /**\n * Locale identifier (e.g., 'en', 'fr', 'de')\n * @default 'en'\n */\n locale?: string;\n\n /**\n * Translated messages for the locale.\n * If not provided, defaults to English messages.\n */\n messages?: Record<string, string>;\n\n /**\n * Additional IntlProvider configuration\n */\n intlConfig?: Partial<IntlConfig>;\n\n /**\n * Child components\n */\n children: React.ReactNode;\n}\n\n/**\n * Design System IntlProvider\n *\n * Provides internationalization context to all design system components.\n * Wrap your app with this provider to enable i18n support.\n */\nexport function DSIntlProvider({\n locale = 'en',\n messages,\n intlConfig,\n children,\n}: DSIntlProviderProps) {\n // Merge provided messages with defaults (provided messages take precedence)\n const mergedMessages = {\n ...defaultMessages,\n ...messages,\n };\n\n return (\n <IntlProvider\n locale={locale}\n messages={mergedMessages}\n defaultLocale=\"en\"\n onError={(err) => {\n // Only log missing translation errors in development\n if (process.env.NODE_ENV === 'development') {\n // Filter out \"MISSING_TRANSLATION\" errors for default messages\n if (err.code !== 'MISSING_TRANSLATION') {\n console.error(err);\n }\n }\n }}\n {...intlConfig}\n >\n {children}\n </IntlProvider>\n );\n}\n\nexport default DSIntlProvider;\n","/**\n * Design System Message Hooks\n *\n * Provides hooks for accessing internationalized messages in components.\n * These hooks are optional - components can still accept string props directly.\n *\n * @example\n * ```tsx\n * import { useMessage, commonMessages } from '@salesmind-ai/design-system';\n *\n * function MyComponent() {\n * const t = useMessage();\n * return <button>{t(commonMessages.save)}</button>;\n * }\n * ```\n */\n\nimport { useIntl, MessageDescriptor, PrimitiveType } from 'react-intl';\nimport { useCallback } from 'react';\n\n/**\n * Format message values type\n */\nexport type MessageValues = Record<string, PrimitiveType>;\n\n/**\n * Hook to get a message formatter function\n *\n * @returns A function that formats messages\n *\n * @example\n * ```tsx\n * const t = useMessage();\n * return <span>{t(commonMessages.loading)}</span>;\n * ```\n */\nexport function useMessage() {\n const intl = useIntl();\n\n const formatMessage = useCallback(\n (descriptor: MessageDescriptor, values?: MessageValues): string => {\n return intl.formatMessage(descriptor, values);\n },\n [intl],\n );\n\n return formatMessage;\n}\n\n/**\n * Hook to get the current locale\n *\n * @returns The current locale string (e.g., 'en', 'fr')\n *\n * @example\n * ```tsx\n * const locale = useLocale();\n * console.log(locale); // 'en'\n * ```\n */\nexport function useLocale(): string {\n const intl = useIntl();\n return intl.locale;\n}\n\n/**\n * Hook to check if RTL is needed for current locale\n *\n * @returns true if the current locale is RTL\n *\n * @example\n * ```tsx\n * const isRTL = useIsRTL();\n * return <div style={{ direction: isRTL ? 'rtl' : 'ltr' }}>...</div>;\n * ```\n */\nexport function useIsRTL(): boolean {\n const locale = useLocale();\n\n // RTL locales\n const rtlLocales = [\n 'ar', // Arabic\n 'he', // Hebrew\n 'fa', // Persian/Farsi\n 'ur', // Urdu\n 'ps', // Pashto\n 'sd', // Sindhi\n 'yi', // Yiddish\n ];\n\n return rtlLocales.some((rtl) => locale === rtl || locale.startsWith(`${rtl}-`));\n}\n\n/**\n * Hook to get the current text direction\n *\n * @returns 'rtl' or 'ltr' based on locale\n *\n * @example\n * ```tsx\n * const dir = useTextDirection();\n * return <div dir={dir}>...</div>;\n * ```\n */\nexport function useTextDirection(): 'rtl' | 'ltr' {\n const isRTL = useIsRTL();\n return isRTL ? 'rtl' : 'ltr';\n}\n\n/**\n * Hook to format a number according to locale\n *\n * @returns A number formatter function\n *\n * @example\n * ```tsx\n * const formatNumber = useNumberFormat();\n * return <span>{formatNumber(1234.56)}</span>; // \"1,234.56\" in en-US\n * ```\n */\nexport function useNumberFormat() {\n const intl = useIntl();\n\n const formatNumber = useCallback(\n (value: number, options?: Intl.NumberFormatOptions): string => {\n return intl.formatNumber(value, options as Parameters<typeof intl.formatNumber>[1]);\n },\n [intl],\n );\n\n return formatNumber;\n}\n\n/**\n * Hook to format a date according to locale\n *\n * @returns A date formatter function\n *\n * @example\n * ```tsx\n * const formatDate = useDateFormat();\n * return <span>{formatDate(new Date())}</span>;\n * ```\n */\nexport function useDateFormat() {\n const intl = useIntl();\n\n const formatDate = useCallback(\n (value: Date | number, options?: Intl.DateTimeFormatOptions): string => {\n return intl.formatDate(value, options);\n },\n [intl],\n );\n\n return formatDate;\n}\n\n/**\n * Hook to format a relative time (e.g., \"2 days ago\")\n *\n * @returns A relative time formatter function\n *\n * @example\n * ```tsx\n * const formatRelative = useRelativeTime();\n * return <span>{formatRelative(-2, 'day')}</span>; // \"2 days ago\"\n * ```\n */\nexport function useRelativeTime() {\n const intl = useIntl();\n\n const formatRelativeTime = useCallback(\n (\n value: number,\n unit: Intl.RelativeTimeFormatUnit,\n options?: Intl.RelativeTimeFormatOptions,\n ): string => {\n return intl.formatRelativeTime(value, unit, options as Parameters<typeof intl.formatRelativeTime>[2]);\n },\n [intl],\n );\n\n return formatRelativeTime;\n}\n","/**\n * Design System Default Messages\n *\n * This file contains all user-facing strings used by design system components.\n * Components accept message props but fall back to these defaults.\n *\n * Format: react-intl MessageDescriptor\n * @see https://formatjs.io/docs/react-intl/api#message-descriptor\n */\n\nimport { defineMessages } from 'react-intl';\n\n/**\n * Common messages used across multiple components\n */\nexport const commonMessages = defineMessages({\n loading: {\n id: 'ds.common.loading',\n defaultMessage: 'Loading...',\n description: 'Generic loading state text',\n },\n error: {\n id: 'ds.common.error',\n defaultMessage: 'An error occurred',\n description: 'Generic error message',\n },\n retry: {\n id: 'ds.common.retry',\n defaultMessage: 'Retry',\n description: 'Retry action button text',\n },\n cancel: {\n id: 'ds.common.cancel',\n defaultMessage: 'Cancel',\n description: 'Cancel action button text',\n },\n confirm: {\n id: 'ds.common.confirm',\n defaultMessage: 'Confirm',\n description: 'Confirm action button text',\n },\n close: {\n id: 'ds.common.close',\n defaultMessage: 'Close',\n description: 'Close action button text',\n },\n save: {\n id: 'ds.common.save',\n defaultMessage: 'Save',\n description: 'Save action button text',\n },\n delete: {\n id: 'ds.common.delete',\n defaultMessage: 'Delete',\n description: 'Delete action button text',\n },\n edit: {\n id: 'ds.common.edit',\n defaultMessage: 'Edit',\n description: 'Edit action button text',\n },\n submit: {\n id: 'ds.common.submit',\n defaultMessage: 'Submit',\n description: 'Submit action button text',\n },\n required: {\n id: 'ds.common.required',\n defaultMessage: 'Required',\n description: 'Field required indicator',\n },\n optional: {\n id: 'ds.common.optional',\n defaultMessage: 'Optional',\n description: 'Field optional indicator',\n },\n});\n\n/**\n * Alert component messages\n */\nexport const alertMessages = defineMessages({\n dismissLabel: {\n id: 'ds.alert.dismissLabel',\n defaultMessage: 'Dismiss alert',\n description: 'Accessible label for alert dismiss button',\n },\n successTitle: {\n id: 'ds.alert.successTitle',\n defaultMessage: 'Success',\n description: 'Default title for success alerts',\n },\n errorTitle: {\n id: 'ds.alert.errorTitle',\n defaultMessage: 'Error',\n description: 'Default title for error alerts',\n },\n warningTitle: {\n id: 'ds.alert.warningTitle',\n defaultMessage: 'Warning',\n description: 'Default title for warning alerts',\n },\n infoTitle: {\n id: 'ds.alert.infoTitle',\n defaultMessage: 'Information',\n description: 'Default title for info alerts',\n },\n});\n\n/**\n * Toast notification messages\n */\nexport const toastMessages = defineMessages({\n dismissLabel: {\n id: 'ds.toast.dismissLabel',\n defaultMessage: 'Dismiss notification',\n description: 'Accessible label for toast dismiss button',\n },\n});\n\n/**\n * Dialog component messages\n */\nexport const dialogMessages = defineMessages({\n closeLabel: {\n id: 'ds.dialog.closeLabel',\n defaultMessage: 'Close dialog',\n description: 'Accessible label for dialog close button',\n },\n});\n\n/**\n * Form component messages\n */\nexport const formMessages = defineMessages({\n showPassword: {\n id: 'ds.form.showPassword',\n defaultMessage: 'Show password',\n description: 'Toggle to show password text',\n },\n hidePassword: {\n id: 'ds.form.hidePassword',\n defaultMessage: 'Hide password',\n description: 'Toggle to hide password text',\n },\n clearInput: {\n id: 'ds.form.clearInput',\n defaultMessage: 'Clear input',\n description: 'Clear input field button',\n },\n invalidEmail: {\n id: 'ds.form.invalidEmail',\n defaultMessage: 'Please enter a valid email address',\n description: 'Email validation error',\n },\n passwordRequired: {\n id: 'ds.form.passwordRequired',\n defaultMessage: 'Password is required',\n description: 'Password required validation error',\n },\n});\n\n/**\n * Auth component messages\n */\nexport const authMessages = defineMessages({\n loginTitle: {\n id: 'ds.auth.loginTitle',\n defaultMessage: 'Sign in to your account',\n description: 'Login page title',\n },\n signupTitle: {\n id: 'ds.auth.signupTitle',\n defaultMessage: 'Create your account',\n description: 'Signup page title',\n },\n forgotPasswordTitle: {\n id: 'ds.auth.forgotPasswordTitle',\n defaultMessage: 'Reset your password',\n description: 'Forgot password page title',\n },\n emailLabel: {\n id: 'ds.auth.emailLabel',\n defaultMessage: 'Email address',\n description: 'Email field label',\n },\n passwordLabel: {\n id: 'ds.auth.passwordLabel',\n defaultMessage: 'Password',\n description: 'Password field label',\n },\n rememberMe: {\n id: 'ds.auth.rememberMe',\n defaultMessage: 'Remember me',\n description: 'Remember me checkbox label',\n },\n forgotPassword: {\n id: 'ds.auth.forgotPassword',\n defaultMessage: 'Forgot your password?',\n description: 'Forgot password link text',\n },\n signIn: {\n id: 'ds.auth.signIn',\n defaultMessage: 'Sign in',\n description: 'Sign in button text',\n },\n signUp: {\n id: 'ds.auth.signUp',\n defaultMessage: 'Sign up',\n description: 'Sign up button text',\n },\n sendResetLink: {\n id: 'ds.auth.sendResetLink',\n defaultMessage: 'Send reset link',\n description: 'Send password reset link button',\n },\n backToLogin: {\n id: 'ds.auth.backToLogin',\n defaultMessage: 'Back to login',\n description: 'Back to login link text',\n },\n});\n\n/**\n * Navigation component messages\n */\nexport const navigationMessages = defineMessages({\n menuLabel: {\n id: 'ds.nav.menuLabel',\n defaultMessage: 'Navigation menu',\n description: 'Accessible label for navigation menu',\n },\n toggleSidebar: {\n id: 'ds.nav.toggleSidebar',\n defaultMessage: 'Toggle sidebar',\n description: 'Toggle sidebar button label',\n },\n expandSubmenu: {\n id: 'ds.nav.expandSubmenu',\n defaultMessage: 'Expand submenu',\n description: 'Expand submenu button label',\n },\n collapseSubmenu: {\n id: 'ds.nav.collapseSubmenu',\n defaultMessage: 'Collapse submenu',\n description: 'Collapse submenu button label',\n },\n});\n\n/**\n * Report Engine component messages\n */\nexport const reportMessages = defineMessages({\n confidenceLabel: {\n id: 'ds.report.confidenceLabel',\n defaultMessage: 'Confidence score',\n description: 'Label for confidence indicator',\n },\n dataCoverageLabel: {\n id: 'ds.report.dataCoverageLabel',\n defaultMessage: 'Data coverage',\n description: 'Label for data coverage badge',\n },\n insufficientData: {\n id: 'ds.report.insufficientData',\n defaultMessage: 'Insufficient data',\n description: 'Message when data is insufficient for analysis',\n },\n exportPdf: {\n id: 'ds.report.exportPdf',\n defaultMessage: 'Export as PDF',\n description: 'Export to PDF option',\n },\n exportCsv: {\n id: 'ds.report.exportCsv',\n defaultMessage: 'Export as CSV',\n description: 'Export to CSV option',\n },\n exportPptx: {\n id: 'ds.report.exportPptx',\n defaultMessage: 'Export as PowerPoint',\n description: 'Export to PowerPoint option',\n },\n});\n\n/**\n * Appearance/Theme component messages\n */\nexport const appearanceMessages = defineMessages({\n themeLabel: {\n id: 'ds.appearance.themeLabel',\n defaultMessage: 'Theme',\n description: 'Theme selector label',\n },\n darkTheme: {\n id: 'ds.appearance.darkTheme',\n defaultMessage: 'Dark',\n description: 'Dark theme option',\n },\n lightTheme: {\n id: 'ds.appearance.lightTheme',\n defaultMessage: 'Light',\n description: 'Light theme option',\n },\n highContrastTheme: {\n id: 'ds.appearance.highContrastTheme',\n defaultMessage: 'High contrast',\n description: 'High contrast theme option',\n },\n densityLabel: {\n id: 'ds.appearance.densityLabel',\n defaultMessage: 'Density',\n description: 'Density selector label',\n },\n comfortableDensity: {\n id: 'ds.appearance.comfortableDensity',\n defaultMessage: 'Comfortable',\n description: 'Comfortable density option',\n },\n compactDensity: {\n id: 'ds.appearance.compactDensity',\n defaultMessage: 'Compact',\n description: 'Compact density option',\n },\n});\n\n/**\n * Pagination component messages\n */\nexport const paginationMessages = defineMessages({\n previous: {\n id: 'ds.pagination.previous',\n defaultMessage: 'Previous',\n description: 'Pagination previous button label',\n },\n next: {\n id: 'ds.pagination.next',\n defaultMessage: 'Next',\n description: 'Pagination next button label',\n },\n goToPreviousPage: {\n id: 'ds.pagination.goToPreviousPage',\n defaultMessage: 'Go to previous page',\n description: 'Accessible label for previous page button',\n },\n goToNextPage: {\n id: 'ds.pagination.goToNextPage',\n defaultMessage: 'Go to next page',\n description: 'Accessible label for next page button',\n },\n});\n\n/**\n * Calendar component messages\n */\nexport const calendarMessages = defineMessages({\n previousMonth: {\n id: 'ds.calendar.previousMonth',\n defaultMessage: 'Previous month',\n description: 'Accessible label for previous month button',\n },\n nextMonth: {\n id: 'ds.calendar.nextMonth',\n defaultMessage: 'Next month',\n description: 'Accessible label for next month button',\n },\n});\n\n/**\n * Carousel component messages\n */\nexport const carouselMessages = defineMessages({\n previousSlide: {\n id: 'ds.carousel.previousSlide',\n defaultMessage: 'Previous slide',\n description: 'Accessible label for previous slide button',\n },\n nextSlide: {\n id: 'ds.carousel.nextSlide',\n defaultMessage: 'Next slide',\n description: 'Accessible label for next slide button',\n },\n});\n\n/**\n * Methodology component messages\n */\nexport const methodologyMessages = defineMessages({\n title: {\n id: 'ds.methodology.title',\n defaultMessage: 'Methodology',\n description: 'Methodology note title',\n },\n sampleSize: {\n id: 'ds.methodology.sampleSize',\n defaultMessage: 'Sample Size',\n description: 'Methodology sample size label',\n },\n dataSources: {\n id: 'ds.methodology.dataSources',\n defaultMessage: 'Data Sources',\n description: 'Methodology data sources label',\n },\n calculation: {\n id: 'ds.methodology.calculation',\n defaultMessage: 'Calculation',\n description: 'Methodology calculation label',\n },\n});\n\n/**\n * All messages combined for easy export\n */\nexport const allMessages = {\n ...commonMessages,\n ...alertMessages,\n ...toastMessages,\n ...dialogMessages,\n ...formMessages,\n ...authMessages,\n ...navigationMessages,\n ...reportMessages,\n ...appearanceMessages,\n ...paginationMessages,\n ...calendarMessages,\n ...carouselMessages,\n ...methodologyMessages,\n};\n"]}