@onesaz/ui 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/theme/provider.tsx","../src/theme/context.ts","../src/theme/use-theme.ts","../src/utils/cn.ts","../src/components/box.tsx","../src/components/stack.tsx","../src/components/grid.tsx","../src/components/typography.tsx","../src/components/button.tsx","../src/components/input.tsx","../src/components/textarea.tsx","../src/components/text-field.tsx","../src/components/label.tsx","../src/components/checkbox.tsx","../src/components/switch.tsx","../src/components/radio.tsx","../src/components/form.tsx","../src/components/card.tsx","../src/components/badge.tsx","../src/components/separator.tsx","../src/components/select/index.tsx","../src/components/dialog/index.tsx","../src/components/spinner.tsx","../src/components/table.tsx","../src/components/pagination.tsx","../src/components/combobox/index.tsx","../src/playground.tsx"],"sourcesContent":["import * as React from 'react'\nimport {\n accentColors,\n grayColors,\n radiusPresets,\n lightTheme,\n darkTheme,\n type AccentColor,\n type GrayColor,\n type RadiusPreset,\n type Theme,\n} from '@onesaz/tokens'\nimport { ThemeContext } from './context'\n\nexport interface ThemeProviderProps {\n children: React.ReactNode\n defaultTheme?: Theme\n accentColor?: AccentColor\n grayColor?: GrayColor\n radius?: RadiusPreset\n storageKey?: string\n}\n\nfunction getSystemTheme(): 'light' | 'dark' {\n if (typeof window === 'undefined') return 'light'\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'\n}\n\nexport function ThemeProvider({\n children,\n defaultTheme = 'system',\n accentColor: defaultAccent = 'purple',\n grayColor: defaultGray = 'slate',\n radius: defaultRadius = 'medium',\n storageKey = 'onesaz-theme',\n}: ThemeProviderProps) {\n const [theme, setThemeState] = React.useState<Theme>(defaultTheme)\n const [accentColor, setAccentColorState] = React.useState<AccentColor>(defaultAccent)\n const [grayColor, setGrayColorState] = React.useState<GrayColor>(defaultGray)\n const [radius, setRadiusState] = React.useState<RadiusPreset>(defaultRadius)\n\n const [resolvedTheme, setResolvedTheme] = React.useState<'light' | 'dark'>(() =>\n defaultTheme === 'system' ? getSystemTheme() : defaultTheme === 'dark' ? 'dark' : 'light'\n )\n\n // Sync state with props when they change (important for Storybook controls)\n React.useEffect(() => {\n setThemeState(defaultTheme)\n }, [defaultTheme])\n\n React.useEffect(() => {\n setAccentColorState(defaultAccent)\n }, [defaultAccent])\n\n React.useEffect(() => {\n setGrayColorState(defaultGray)\n }, [defaultGray])\n\n React.useEffect(() => {\n setRadiusState(defaultRadius)\n }, [defaultRadius])\n\n // Listen for system theme changes\n React.useEffect(() => {\n if (theme !== 'system') {\n setResolvedTheme(theme)\n return\n }\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)')\n setResolvedTheme(mediaQuery.matches ? 'dark' : 'light')\n\n const handler = (e: MediaQueryListEvent) => {\n setResolvedTheme(e.matches ? 'dark' : 'light')\n }\n\n mediaQuery.addEventListener('change', handler)\n return () => mediaQuery.removeEventListener('change', handler)\n }, [theme])\n\n // Generate CSS variables\n React.useEffect(() => {\n const root = document.documentElement\n const themeTokens = resolvedTheme === 'dark' ? darkTheme : lightTheme\n const accent = accentColors[accentColor]\n const gray = grayColors[grayColor]\n const radiusValues = radiusPresets[radius]\n\n // Set theme attribute\n root.setAttribute('data-theme', resolvedTheme)\n root.setAttribute('data-accent', accentColor)\n\n // Set gray-based semantic tokens\n root.style.setProperty('--background', gray[themeTokens.background])\n root.style.setProperty('--foreground', gray[themeTokens.foreground])\n root.style.setProperty('--card', gray[themeTokens.card])\n root.style.setProperty('--card-foreground', gray[themeTokens.cardForeground])\n root.style.setProperty('--popover', gray[themeTokens.popover])\n root.style.setProperty('--popover-foreground', gray[themeTokens.popoverForeground])\n root.style.setProperty('--muted', gray[themeTokens.muted])\n root.style.setProperty('--muted-foreground', gray[themeTokens.mutedForeground])\n root.style.setProperty('--border', gray[themeTokens.border])\n root.style.setProperty('--input', gray[themeTokens.input])\n\n // Set accent colors\n root.style.setProperty('--accent', accent[6])\n root.style.setProperty('--accent-foreground', '#ffffff')\n root.style.setProperty('--accent-hover', accent[7])\n root.style.setProperty('--ring', accent[6])\n\n // Set all accent scale values\n Object.entries(accent).forEach(([step, value]) => {\n root.style.setProperty(`--accent-${step}`, value)\n })\n\n // Set destructive colors\n root.style.setProperty('--destructive', resolvedTheme === 'dark' ? '#ef4444' : '#dc2626')\n root.style.setProperty('--destructive-foreground', '#ffffff')\n\n // Set radius\n root.style.setProperty('--radius', radiusValues.md)\n root.style.setProperty('--radius-sm', radiusValues.sm)\n root.style.setProperty('--radius-lg', radiusValues.lg)\n }, [resolvedTheme, accentColor, grayColor, radius])\n\n const setTheme = React.useCallback((newTheme: Theme) => {\n localStorage.setItem(`${storageKey}-mode`, newTheme)\n setThemeState(newTheme)\n }, [storageKey])\n\n const setAccentColor = React.useCallback((color: AccentColor) => {\n localStorage.setItem(`${storageKey}-accent`, color)\n setAccentColorState(color)\n }, [storageKey])\n\n const setGrayColor = React.useCallback((color: GrayColor) => {\n localStorage.setItem(`${storageKey}-gray`, color)\n setGrayColorState(color)\n }, [storageKey])\n\n const setRadius = React.useCallback((newRadius: RadiusPreset) => {\n localStorage.setItem(`${storageKey}-radius`, newRadius)\n setRadiusState(newRadius)\n }, [storageKey])\n\n const value = React.useMemo(\n () => ({\n theme,\n resolvedTheme,\n accentColor,\n grayColor,\n radius,\n setTheme,\n setAccentColor,\n setGrayColor,\n setRadius,\n }),\n [theme, resolvedTheme, accentColor, grayColor, radius, setTheme, setAccentColor, setGrayColor, setRadius]\n )\n\n return (\n <ThemeContext.Provider value={value}>\n {children}\n </ThemeContext.Provider>\n )\n}\n\nThemeProvider.displayName = 'ThemeProvider'\n","import { createContext } from 'react'\nimport type { AccentColor, GrayColor, RadiusPreset, Theme } from '@onesaz/tokens'\n\nexport interface ThemeContextValue {\n theme: Theme\n resolvedTheme: 'light' | 'dark'\n accentColor: AccentColor\n grayColor: GrayColor\n radius: RadiusPreset\n setTheme: (theme: Theme) => void\n setAccentColor: (color: AccentColor) => void\n setGrayColor: (color: GrayColor) => void\n setRadius: (radius: RadiusPreset) => void\n}\n\nexport const ThemeContext = createContext<ThemeContextValue | undefined>(undefined)\n","import { useContext } from 'react'\nimport { ThemeContext, type ThemeContextValue } from './context'\n\nexport function useTheme(): ThemeContextValue {\n const context = useContext(ThemeContext)\n if (!context) {\n throw new Error('useTheme must be used within a ThemeProvider')\n }\n return context\n}\n","import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface BoxProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Render as a different element */\n as?: React.ElementType\n /** Display type */\n display?: 'block' | 'inline-block' | 'inline' | 'flex' | 'inline-flex' | 'grid' | 'inline-grid' | 'none'\n /** Flex direction */\n flexDirection?: 'row' | 'row-reverse' | 'column' | 'column-reverse'\n /** Align items */\n alignItems?: 'start' | 'end' | 'center' | 'baseline' | 'stretch'\n /** Justify content */\n justifyContent?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly'\n /** Flex wrap */\n flexWrap?: 'wrap' | 'nowrap' | 'wrap-reverse'\n /** Gap */\n gap?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16\n /** Padding */\n p?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16\n /** Padding X */\n px?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16\n /** Padding Y */\n py?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16\n /** Margin */\n m?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16 | 'auto'\n /** Margin X */\n mx?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16 | 'auto'\n /** Margin Y */\n my?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16 | 'auto'\n /** Border radius */\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full'\n /** Shadow */\n shadow?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'\n /** Background color */\n bg?: 'background' | 'foreground' | 'muted' | 'accent' | 'card' | 'popover' | 'destructive' | 'transparent'\n /** Text color */\n color?: 'foreground' | 'muted-foreground' | 'accent' | 'accent-foreground' | 'destructive' | 'destructive-foreground'\n /** Border */\n border?: boolean\n /** Border color */\n borderColor?: 'border' | 'input' | 'ring' | 'transparent'\n /** Width */\n w?: 'full' | 'auto' | 'screen' | 'min' | 'max' | 'fit'\n /** Height */\n h?: 'full' | 'auto' | 'screen' | 'min' | 'max' | 'fit'\n /** Position */\n position?: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky'\n /** Overflow */\n overflow?: 'auto' | 'hidden' | 'visible' | 'scroll'\n}\n\nconst displayClasses: Record<string, string> = {\n block: 'block',\n 'inline-block': 'inline-block',\n inline: 'inline',\n flex: 'flex',\n 'inline-flex': 'inline-flex',\n grid: 'grid',\n 'inline-grid': 'inline-grid',\n none: 'hidden',\n}\n\nconst flexDirectionClasses: Record<string, string> = {\n row: 'flex-row',\n 'row-reverse': 'flex-row-reverse',\n column: 'flex-col',\n 'column-reverse': 'flex-col-reverse',\n}\n\nconst alignItemsClasses: Record<string, string> = {\n start: 'items-start',\n end: 'items-end',\n center: 'items-center',\n baseline: 'items-baseline',\n stretch: 'items-stretch',\n}\n\nconst justifyContentClasses: Record<string, string> = {\n start: 'justify-start',\n end: 'justify-end',\n center: 'justify-center',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n}\n\nconst flexWrapClasses: Record<string, string> = {\n wrap: 'flex-wrap',\n nowrap: 'flex-nowrap',\n 'wrap-reverse': 'flex-wrap-reverse',\n}\n\nconst gapClasses: Record<number, string> = {\n 0: 'gap-0',\n 1: 'gap-1',\n 2: 'gap-2',\n 3: 'gap-3',\n 4: 'gap-4',\n 5: 'gap-5',\n 6: 'gap-6',\n 8: 'gap-8',\n 10: 'gap-10',\n 12: 'gap-12',\n 16: 'gap-16',\n}\n\nconst paddingClasses: Record<number, string> = {\n 0: 'p-0',\n 1: 'p-1',\n 2: 'p-2',\n 3: 'p-3',\n 4: 'p-4',\n 5: 'p-5',\n 6: 'p-6',\n 8: 'p-8',\n 10: 'p-10',\n 12: 'p-12',\n 16: 'p-16',\n}\n\nconst paddingXClasses: Record<number, string> = {\n 0: 'px-0',\n 1: 'px-1',\n 2: 'px-2',\n 3: 'px-3',\n 4: 'px-4',\n 5: 'px-5',\n 6: 'px-6',\n 8: 'px-8',\n 10: 'px-10',\n 12: 'px-12',\n 16: 'px-16',\n}\n\nconst paddingYClasses: Record<number, string> = {\n 0: 'py-0',\n 1: 'py-1',\n 2: 'py-2',\n 3: 'py-3',\n 4: 'py-4',\n 5: 'py-5',\n 6: 'py-6',\n 8: 'py-8',\n 10: 'py-10',\n 12: 'py-12',\n 16: 'py-16',\n}\n\nconst marginClasses: Record<number | 'auto', string> = {\n 0: 'm-0',\n 1: 'm-1',\n 2: 'm-2',\n 3: 'm-3',\n 4: 'm-4',\n 5: 'm-5',\n 6: 'm-6',\n 8: 'm-8',\n 10: 'm-10',\n 12: 'm-12',\n 16: 'm-16',\n auto: 'm-auto',\n}\n\nconst marginXClasses: Record<number | 'auto', string> = {\n 0: 'mx-0',\n 1: 'mx-1',\n 2: 'mx-2',\n 3: 'mx-3',\n 4: 'mx-4',\n 5: 'mx-5',\n 6: 'mx-6',\n 8: 'mx-8',\n 10: 'mx-10',\n 12: 'mx-12',\n 16: 'mx-16',\n auto: 'mx-auto',\n}\n\nconst marginYClasses: Record<number | 'auto', string> = {\n 0: 'my-0',\n 1: 'my-1',\n 2: 'my-2',\n 3: 'my-3',\n 4: 'my-4',\n 5: 'my-5',\n 6: 'my-6',\n 8: 'my-8',\n 10: 'my-10',\n 12: 'my-12',\n 16: 'my-16',\n auto: 'my-auto',\n}\n\nconst roundedClasses: Record<string, string> = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n '2xl': 'rounded-2xl',\n full: 'rounded-full',\n}\n\nconst shadowClasses: Record<string, string> = {\n none: 'shadow-none',\n sm: 'shadow-sm',\n md: 'shadow-md',\n lg: 'shadow-lg',\n xl: 'shadow-xl',\n '2xl': 'shadow-2xl',\n}\n\nconst bgClasses: Record<string, string> = {\n background: 'bg-background',\n foreground: 'bg-foreground',\n muted: 'bg-muted',\n accent: 'bg-accent',\n card: 'bg-card',\n popover: 'bg-popover',\n destructive: 'bg-destructive',\n transparent: 'bg-transparent',\n}\n\nconst colorClasses: Record<string, string> = {\n foreground: 'text-foreground',\n 'muted-foreground': 'text-muted-foreground',\n accent: 'text-accent',\n 'accent-foreground': 'text-accent-foreground',\n destructive: 'text-destructive',\n 'destructive-foreground': 'text-destructive-foreground',\n}\n\nconst borderColorClasses: Record<string, string> = {\n border: 'border-border',\n input: 'border-input',\n ring: 'border-ring',\n transparent: 'border-transparent',\n}\n\nconst widthClasses: Record<string, string> = {\n full: 'w-full',\n auto: 'w-auto',\n screen: 'w-screen',\n min: 'w-min',\n max: 'w-max',\n fit: 'w-fit',\n}\n\nconst heightClasses: Record<string, string> = {\n full: 'h-full',\n auto: 'h-auto',\n screen: 'h-screen',\n min: 'h-min',\n max: 'h-max',\n fit: 'h-fit',\n}\n\nconst positionClasses: Record<string, string> = {\n static: 'static',\n relative: 'relative',\n absolute: 'absolute',\n fixed: 'fixed',\n sticky: 'sticky',\n}\n\nconst overflowClasses: Record<string, string> = {\n auto: 'overflow-auto',\n hidden: 'overflow-hidden',\n visible: 'overflow-visible',\n scroll: 'overflow-scroll',\n}\n\nconst Box = React.forwardRef<HTMLDivElement, BoxProps>(\n (\n {\n as: Component = 'div',\n className,\n display,\n flexDirection,\n alignItems,\n justifyContent,\n flexWrap,\n gap,\n p,\n px,\n py,\n m,\n mx,\n my,\n rounded,\n shadow,\n bg,\n color,\n border,\n borderColor,\n w,\n h,\n position,\n overflow,\n ...props\n },\n ref\n ) => {\n const classes = cn(\n display && displayClasses[display],\n flexDirection && flexDirectionClasses[flexDirection],\n alignItems && alignItemsClasses[alignItems],\n justifyContent && justifyContentClasses[justifyContent],\n flexWrap && flexWrapClasses[flexWrap],\n gap !== undefined && gapClasses[gap],\n p !== undefined && paddingClasses[p],\n px !== undefined && paddingXClasses[px],\n py !== undefined && paddingYClasses[py],\n m !== undefined && marginClasses[m],\n mx !== undefined && marginXClasses[mx],\n my !== undefined && marginYClasses[my],\n rounded && roundedClasses[rounded],\n shadow && shadowClasses[shadow],\n bg && bgClasses[bg],\n color && colorClasses[color],\n border && 'border',\n borderColor && borderColorClasses[borderColor],\n w && widthClasses[w],\n h && heightClasses[h],\n position && positionClasses[position],\n overflow && overflowClasses[overflow],\n className\n )\n\n return <Component ref={ref} className={classes} {...props} />\n }\n)\nBox.displayName = 'Box'\n\nexport { Box }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface StackProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Stack direction */\n direction?: 'row' | 'row-reverse' | 'column' | 'column-reverse'\n /** Spacing between items */\n spacing?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16\n /** Align items */\n align?: 'start' | 'end' | 'center' | 'baseline' | 'stretch'\n /** Justify content */\n justify?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly'\n /** Wrap items */\n wrap?: 'wrap' | 'nowrap' | 'wrap-reverse'\n /** Divider between items */\n divider?: React.ReactNode\n /** Render as a different element */\n as?: React.ElementType\n}\n\nconst directionClasses: Record<string, string> = {\n row: 'flex-row',\n 'row-reverse': 'flex-row-reverse',\n column: 'flex-col',\n 'column-reverse': 'flex-col-reverse',\n}\n\nconst spacingClasses: Record<number, string> = {\n 0: 'gap-0',\n 1: 'gap-1',\n 2: 'gap-2',\n 3: 'gap-3',\n 4: 'gap-4',\n 5: 'gap-5',\n 6: 'gap-6',\n 8: 'gap-8',\n 10: 'gap-10',\n 12: 'gap-12',\n 16: 'gap-16',\n}\n\nconst alignClasses: Record<string, string> = {\n start: 'items-start',\n end: 'items-end',\n center: 'items-center',\n baseline: 'items-baseline',\n stretch: 'items-stretch',\n}\n\nconst justifyClasses: Record<string, string> = {\n start: 'justify-start',\n end: 'justify-end',\n center: 'justify-center',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n}\n\nconst wrapClasses: Record<string, string> = {\n wrap: 'flex-wrap',\n nowrap: 'flex-nowrap',\n 'wrap-reverse': 'flex-wrap-reverse',\n}\n\nconst Stack = React.forwardRef<HTMLDivElement, StackProps>(\n (\n {\n as: Component = 'div',\n className,\n direction = 'column',\n spacing = 0,\n align,\n justify,\n wrap,\n divider,\n children,\n ...props\n },\n ref\n ) => {\n const classes = cn(\n 'flex',\n directionClasses[direction],\n spacingClasses[spacing],\n align && alignClasses[align],\n justify && justifyClasses[justify],\n wrap && wrapClasses[wrap],\n className\n )\n\n // If divider is provided, insert it between children\n if (divider) {\n const childArray = React.Children.toArray(children).filter(Boolean)\n const childrenWithDividers = childArray.reduce<React.ReactNode[]>(\n (acc, child, index) => {\n if (index === 0) {\n return [child]\n }\n return [...acc, React.cloneElement(divider as React.ReactElement, { key: `divider-${index}` }), child]\n },\n []\n )\n\n return (\n <Component ref={ref} className={classes} {...props}>\n {childrenWithDividers}\n </Component>\n )\n }\n\n return (\n <Component ref={ref} className={classes} {...props}>\n {children}\n </Component>\n )\n }\n)\nStack.displayName = 'Stack'\n\n// HStack - Horizontal Stack helper\nconst HStack = React.forwardRef<HTMLDivElement, Omit<StackProps, 'direction'>>(\n (props, ref) => <Stack ref={ref} direction=\"row\" {...props} />\n)\nHStack.displayName = 'HStack'\n\n// VStack - Vertical Stack helper\nconst VStack = React.forwardRef<HTMLDivElement, Omit<StackProps, 'direction'>>(\n (props, ref) => <Stack ref={ref} direction=\"column\" {...props} />\n)\nVStack.displayName = 'VStack'\n\nexport { Stack, HStack, VStack }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\ntype GridSize = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'auto'\ntype GridSpacing = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16\n\nexport interface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n /** If true, the component will be a container (uses display: grid) */\n container?: boolean\n /** If true, the component will be a grid item */\n item?: boolean\n /** Number of columns the item spans (1-12) or 'auto' */\n xs?: GridSize\n /** Columns at sm breakpoint (640px) */\n sm?: GridSize\n /** Columns at md breakpoint (768px) */\n md?: GridSize\n /** Columns at lg breakpoint (1024px) */\n lg?: GridSize\n /** Columns at xl breakpoint (1280px) */\n xl?: GridSize\n /** Columns at 2xl breakpoint (1536px) */\n xxl?: GridSize\n /** Gap between grid items */\n spacing?: GridSpacing\n /** Row gap */\n rowSpacing?: GridSpacing\n /** Column gap */\n columnSpacing?: GridSpacing\n /** Number of columns in the grid (for container) */\n columns?: 1 | 2 | 3 | 4 | 5 | 6 | 12\n /** Align items */\n alignItems?: 'start' | 'end' | 'center' | 'baseline' | 'stretch'\n /** Justify items */\n justifyItems?: 'start' | 'end' | 'center' | 'stretch'\n /** Justify content */\n justifyContent?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly'\n}\n\nconst spacingClasses: Record<GridSpacing, string> = {\n 0: 'gap-0',\n 1: 'gap-1',\n 2: 'gap-2',\n 3: 'gap-3',\n 4: 'gap-4',\n 5: 'gap-5',\n 6: 'gap-6',\n 8: 'gap-8',\n 10: 'gap-10',\n 12: 'gap-12',\n 16: 'gap-16',\n}\n\nconst rowSpacingClasses: Record<GridSpacing, string> = {\n 0: 'gap-y-0',\n 1: 'gap-y-1',\n 2: 'gap-y-2',\n 3: 'gap-y-3',\n 4: 'gap-y-4',\n 5: 'gap-y-5',\n 6: 'gap-y-6',\n 8: 'gap-y-8',\n 10: 'gap-y-10',\n 12: 'gap-y-12',\n 16: 'gap-y-16',\n}\n\nconst columnSpacingClasses: Record<GridSpacing, string> = {\n 0: 'gap-x-0',\n 1: 'gap-x-1',\n 2: 'gap-x-2',\n 3: 'gap-x-3',\n 4: 'gap-x-4',\n 5: 'gap-x-5',\n 6: 'gap-x-6',\n 8: 'gap-x-8',\n 10: 'gap-x-10',\n 12: 'gap-x-12',\n 16: 'gap-x-16',\n}\n\nconst columnsClasses: Record<number, string> = {\n 1: 'grid-cols-1',\n 2: 'grid-cols-2',\n 3: 'grid-cols-3',\n 4: 'grid-cols-4',\n 5: 'grid-cols-5',\n 6: 'grid-cols-6',\n 12: 'grid-cols-12',\n}\n\nconst alignItemsClasses: Record<string, string> = {\n start: 'items-start',\n end: 'items-end',\n center: 'items-center',\n baseline: 'items-baseline',\n stretch: 'items-stretch',\n}\n\nconst justifyItemsClasses: Record<string, string> = {\n start: 'justify-items-start',\n end: 'justify-items-end',\n center: 'justify-items-center',\n stretch: 'justify-items-stretch',\n}\n\nconst justifyContentClasses: Record<string, string> = {\n start: 'justify-start',\n end: 'justify-end',\n center: 'justify-center',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n}\n\n// Column span classes for different breakpoints\nconst colSpanClasses: Record<string, Record<GridSize, string>> = {\n xs: {\n 1: 'col-span-1',\n 2: 'col-span-2',\n 3: 'col-span-3',\n 4: 'col-span-4',\n 5: 'col-span-5',\n 6: 'col-span-6',\n 7: 'col-span-7',\n 8: 'col-span-8',\n 9: 'col-span-9',\n 10: 'col-span-10',\n 11: 'col-span-11',\n 12: 'col-span-12',\n auto: 'col-auto',\n },\n sm: {\n 1: 'sm:col-span-1',\n 2: 'sm:col-span-2',\n 3: 'sm:col-span-3',\n 4: 'sm:col-span-4',\n 5: 'sm:col-span-5',\n 6: 'sm:col-span-6',\n 7: 'sm:col-span-7',\n 8: 'sm:col-span-8',\n 9: 'sm:col-span-9',\n 10: 'sm:col-span-10',\n 11: 'sm:col-span-11',\n 12: 'sm:col-span-12',\n auto: 'sm:col-auto',\n },\n md: {\n 1: 'md:col-span-1',\n 2: 'md:col-span-2',\n 3: 'md:col-span-3',\n 4: 'md:col-span-4',\n 5: 'md:col-span-5',\n 6: 'md:col-span-6',\n 7: 'md:col-span-7',\n 8: 'md:col-span-8',\n 9: 'md:col-span-9',\n 10: 'md:col-span-10',\n 11: 'md:col-span-11',\n 12: 'md:col-span-12',\n auto: 'md:col-auto',\n },\n lg: {\n 1: 'lg:col-span-1',\n 2: 'lg:col-span-2',\n 3: 'lg:col-span-3',\n 4: 'lg:col-span-4',\n 5: 'lg:col-span-5',\n 6: 'lg:col-span-6',\n 7: 'lg:col-span-7',\n 8: 'lg:col-span-8',\n 9: 'lg:col-span-9',\n 10: 'lg:col-span-10',\n 11: 'lg:col-span-11',\n 12: 'lg:col-span-12',\n auto: 'lg:col-auto',\n },\n xl: {\n 1: 'xl:col-span-1',\n 2: 'xl:col-span-2',\n 3: 'xl:col-span-3',\n 4: 'xl:col-span-4',\n 5: 'xl:col-span-5',\n 6: 'xl:col-span-6',\n 7: 'xl:col-span-7',\n 8: 'xl:col-span-8',\n 9: 'xl:col-span-9',\n 10: 'xl:col-span-10',\n 11: 'xl:col-span-11',\n 12: 'xl:col-span-12',\n auto: 'xl:col-auto',\n },\n xxl: {\n 1: '2xl:col-span-1',\n 2: '2xl:col-span-2',\n 3: '2xl:col-span-3',\n 4: '2xl:col-span-4',\n 5: '2xl:col-span-5',\n 6: '2xl:col-span-6',\n 7: '2xl:col-span-7',\n 8: '2xl:col-span-8',\n 9: '2xl:col-span-9',\n 10: '2xl:col-span-10',\n 11: '2xl:col-span-11',\n 12: '2xl:col-span-12',\n auto: '2xl:col-auto',\n },\n}\n\nconst Grid = React.forwardRef<HTMLDivElement, GridProps>(\n (\n {\n className,\n container,\n item,\n xs,\n sm,\n md,\n lg,\n xl,\n xxl,\n spacing,\n rowSpacing,\n columnSpacing,\n columns = 12,\n alignItems,\n justifyItems,\n justifyContent,\n children,\n ...props\n },\n ref\n ) => {\n const classes = cn(\n // Container styles\n container && 'grid',\n container && columnsClasses[columns],\n container && spacing !== undefined && spacingClasses[spacing],\n container && rowSpacing !== undefined && rowSpacingClasses[rowSpacing],\n container && columnSpacing !== undefined && columnSpacingClasses[columnSpacing],\n container && alignItems && alignItemsClasses[alignItems],\n container && justifyItems && justifyItemsClasses[justifyItems],\n container && justifyContent && justifyContentClasses[justifyContent],\n // Item styles (column spans)\n item && xs && colSpanClasses.xs[xs],\n item && sm && colSpanClasses.sm[sm],\n item && md && colSpanClasses.md[md],\n item && lg && colSpanClasses.lg[lg],\n item && xl && colSpanClasses.xl[xl],\n item && xxl && colSpanClasses.xxl[xxl],\n className\n )\n\n return (\n <div ref={ref} className={classes} {...props}>\n {children}\n </div>\n )\n }\n)\nGrid.displayName = 'Grid'\n\nexport { Grid }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\ntype TypographyVariant =\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'subtitle1'\n | 'subtitle2'\n | 'body1'\n | 'body2'\n | 'caption'\n | 'overline'\n | 'inherit'\n\ntype TypographyColor =\n | 'inherit'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'warning'\n | 'error'\n | 'info'\n | 'muted'\n | 'white'\n | 'dark'\n\ntype FontWeight = 'light' | 'regular' | 'medium' | 'semibold' | 'bold'\n\nexport interface TypographyProps extends React.HTMLAttributes<HTMLElement> {\n /** Typography variant */\n variant?: TypographyVariant\n /** Text color */\n color?: TypographyColor\n /** Font weight override */\n fontWeight?: FontWeight\n /** Text transform */\n textTransform?: 'none' | 'uppercase' | 'lowercase' | 'capitalize'\n /** Text alignment */\n align?: 'left' | 'center' | 'right' | 'justify'\n /** Vertical alignment */\n verticalAlign?: 'top' | 'middle' | 'bottom' | 'baseline'\n /** Enable text gradient effect */\n textGradient?: boolean\n /** Gradient color (when textGradient is true) */\n gradientColor?: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error' | 'dark'\n /** Opacity */\n opacity?: number\n /** Render as a different element */\n as?: React.ElementType\n /** Disable bottom margin */\n gutterBottom?: boolean\n /** Prevent text wrap */\n noWrap?: boolean\n /** Paragraph mode (adds bottom margin) */\n paragraph?: boolean\n}\n\nconst variantMapping: Record<TypographyVariant, React.ElementType> = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n subtitle1: 'h6',\n subtitle2: 'h6',\n body1: 'p',\n body2: 'p',\n caption: 'span',\n overline: 'span',\n inherit: 'span',\n}\n\nconst variantClasses: Record<TypographyVariant, string> = {\n h1: 'text-4xl font-bold leading-tight tracking-tight',\n h2: 'text-3xl font-bold leading-tight tracking-tight',\n h3: 'text-2xl font-semibold leading-snug',\n h4: 'text-xl font-semibold leading-snug',\n h5: 'text-lg font-medium leading-normal',\n h6: 'text-base font-medium leading-normal',\n subtitle1: 'text-base font-normal leading-relaxed',\n subtitle2: 'text-sm font-medium leading-relaxed',\n body1: 'text-base font-normal leading-relaxed',\n body2: 'text-sm font-normal leading-relaxed',\n caption: 'text-xs font-normal leading-normal',\n overline: 'text-xs font-medium uppercase tracking-widest leading-relaxed',\n inherit: '',\n}\n\nconst colorClasses: Record<TypographyColor, string> = {\n inherit: '',\n primary: 'text-accent',\n secondary: 'text-muted-foreground',\n success: 'text-green-600 dark:text-green-400',\n warning: 'text-orange-600 dark:text-orange-400',\n error: 'text-destructive',\n info: 'text-blue-600 dark:text-blue-400',\n muted: 'text-muted-foreground',\n white: 'text-white',\n dark: 'text-foreground',\n}\n\nconst fontWeightClasses: Record<FontWeight, string> = {\n light: 'font-light',\n regular: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n}\n\nconst textTransformClasses: Record<string, string> = {\n none: 'normal-case',\n uppercase: 'uppercase',\n lowercase: 'lowercase',\n capitalize: 'capitalize',\n}\n\nconst alignClasses: Record<string, string> = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n justify: 'text-justify',\n}\n\nconst verticalAlignClasses: Record<string, string> = {\n top: 'align-top',\n middle: 'align-middle',\n bottom: 'align-bottom',\n baseline: 'align-baseline',\n}\n\nconst gradientClasses: Record<string, string> = {\n primary: 'from-purple-5 to-purple-8',\n secondary: 'from-slate-5 to-slate-8',\n info: 'from-blue-4 to-blue-7',\n success: 'from-green-4 to-green-7',\n warning: 'from-orange-4 to-orange-7',\n error: 'from-red-4 to-red-7',\n dark: 'from-slate-7 to-slate-10',\n}\n\nconst Typography = React.forwardRef<HTMLElement, TypographyProps>(\n (\n {\n className,\n variant = 'body1',\n color = 'inherit',\n fontWeight,\n textTransform,\n align,\n verticalAlign,\n textGradient = false,\n gradientColor = 'primary',\n opacity,\n as,\n gutterBottom = false,\n noWrap = false,\n paragraph = false,\n style,\n ...props\n },\n ref\n ) => {\n const Component = as || variantMapping[variant]\n\n const classes = cn(\n variantClasses[variant],\n color !== 'inherit' && !textGradient && colorClasses[color],\n fontWeight && fontWeightClasses[fontWeight],\n textTransform && textTransformClasses[textTransform],\n align && alignClasses[align],\n verticalAlign && verticalAlignClasses[verticalAlign],\n gutterBottom && 'mb-2',\n noWrap && 'truncate',\n paragraph && 'mb-4',\n // Text gradient styles\n textGradient && [\n 'bg-gradient-to-r bg-clip-text text-transparent',\n gradientClasses[gradientColor],\n ],\n className\n )\n\n const combinedStyle = opacity !== undefined ? { ...style, opacity } : style\n\n return (\n <Component\n ref={ref}\n className={classes}\n style={combinedStyle}\n {...props}\n />\n )\n }\n)\nTypography.displayName = 'Typography'\n\n// Convenience components\nconst H1 = React.forwardRef<HTMLHeadingElement, Omit<TypographyProps, 'variant'>>(\n (props, ref) => <Typography ref={ref} variant=\"h1\" {...props} />\n)\nH1.displayName = 'H1'\n\nconst H2 = React.forwardRef<HTMLHeadingElement, Omit<TypographyProps, 'variant'>>(\n (props, ref) => <Typography ref={ref} variant=\"h2\" {...props} />\n)\nH2.displayName = 'H2'\n\nconst H3 = React.forwardRef<HTMLHeadingElement, Omit<TypographyProps, 'variant'>>(\n (props, ref) => <Typography ref={ref} variant=\"h3\" {...props} />\n)\nH3.displayName = 'H3'\n\nconst H4 = React.forwardRef<HTMLHeadingElement, Omit<TypographyProps, 'variant'>>(\n (props, ref) => <Typography ref={ref} variant=\"h4\" {...props} />\n)\nH4.displayName = 'H4'\n\nconst H5 = React.forwardRef<HTMLHeadingElement, Omit<TypographyProps, 'variant'>>(\n (props, ref) => <Typography ref={ref} variant=\"h5\" {...props} />\n)\nH5.displayName = 'H5'\n\nconst H6 = React.forwardRef<HTMLHeadingElement, Omit<TypographyProps, 'variant'>>(\n (props, ref) => <Typography ref={ref} variant=\"h6\" {...props} />\n)\nH6.displayName = 'H6'\n\nconst Text = React.forwardRef<HTMLParagraphElement, Omit<TypographyProps, 'variant'>>(\n (props, ref) => <Typography ref={ref} variant=\"body1\" {...props} />\n)\nText.displayName = 'Text'\n\nconst Caption = React.forwardRef<HTMLSpanElement, Omit<TypographyProps, 'variant'>>(\n (props, ref) => <Typography ref={ref} variant=\"caption\" {...props} />\n)\nCaption.displayName = 'Caption'\n\nexport { Typography, H1, H2, H3, H4, H5, H6, Text, Caption }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link'\n size?: 'default' | 'sm' | 'lg' | 'icon'\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant = 'default', size = 'default', ...props }, ref) => {\n return (\n <button\n className={cn(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:pointer-events-none disabled:opacity-50',\n {\n 'bg-accent text-accent-foreground hover:bg-accent-hover':\n variant === 'default',\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90':\n variant === 'destructive',\n 'border border-input bg-background hover:bg-muted hover:text-foreground':\n variant === 'outline',\n 'bg-muted text-foreground hover:bg-muted/80':\n variant === 'secondary',\n 'hover:bg-muted hover:text-foreground':\n variant === 'ghost',\n 'text-accent underline-offset-4 hover:underline':\n variant === 'link',\n },\n {\n 'h-10 px-4 py-2': size === 'default',\n 'h-9 rounded-md px-3': size === 'sm',\n 'h-11 rounded-md px-8': size === 'lg',\n 'h-10 w-10': size === 'icon',\n },\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nButton.displayName = 'Button'\n\nexport { Button }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n /** Input size variant */\n inputSize?: 'sm' | 'md' | 'lg'\n /** Error state */\n error?: boolean\n /** Start adornment */\n startAdornment?: React.ReactNode\n /** End adornment */\n endAdornment?: React.ReactNode\n}\n\nconst sizeClasses = {\n sm: 'h-8 text-sm px-2.5',\n md: 'h-10 text-sm px-3',\n lg: 'h-12 text-base px-4',\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, inputSize = 'md', error, startAdornment, endAdornment, ...props }, ref) => {\n const hasAdornment = startAdornment || endAdornment\n\n if (hasAdornment) {\n return (\n <div\n className={cn(\n 'flex items-center w-full rounded-md border',\n 'bg-background',\n error\n ? 'border-destructive focus-within:ring-2 focus-within:ring-destructive/20'\n : 'border-input focus-within:ring-2 focus-within:ring-ring/20 focus-within:border-ring',\n 'transition-colors',\n props.disabled && 'opacity-50 cursor-not-allowed bg-muted'\n )}\n >\n {startAdornment && (\n <div className=\"flex items-center pl-3 text-muted-foreground\">\n {startAdornment}\n </div>\n )}\n <input\n type={type}\n className={cn(\n 'flex w-full bg-transparent py-2',\n 'text-foreground',\n 'placeholder:text-muted-foreground',\n 'focus:outline-none',\n 'disabled:cursor-not-allowed',\n 'file:border-0 file:bg-transparent file:text-sm file:font-medium',\n sizeClasses[inputSize],\n startAdornment && 'pl-2',\n endAdornment && 'pr-2',\n className\n )}\n ref={ref}\n {...props}\n />\n {endAdornment && (\n <div className=\"flex items-center pr-3 text-muted-foreground\">\n {endAdornment}\n </div>\n )}\n </div>\n )\n }\n\n return (\n <input\n type={type}\n className={cn(\n 'flex w-full rounded-md border',\n 'bg-background text-foreground',\n 'placeholder:text-muted-foreground',\n error\n ? 'border-destructive focus:ring-2 focus:ring-destructive/20'\n : 'border-input focus:ring-2 focus:ring-ring/20 focus:border-ring',\n 'focus:outline-none',\n 'disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-muted',\n 'transition-colors',\n 'file:border-0 file:bg-transparent file:text-sm file:font-medium',\n sizeClasses[inputSize],\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = 'Input'\n\nexport { Input }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n 'flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm',\n 'ring-offset-background',\n 'placeholder:text-muted-foreground',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nTextarea.displayName = 'Textarea'\n\nexport { Textarea }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { Input, type InputProps } from './input'\nimport { Label } from './label'\n\nexport interface TextFieldProps extends Omit<InputProps, 'inputSize' | 'size'> {\n /** Label text */\n label?: React.ReactNode\n /** Helper text shown below input */\n helperText?: React.ReactNode\n /** Error message (also sets error state) */\n errorMessage?: React.ReactNode\n /** Required indicator */\n required?: boolean\n /** Size of the text field */\n size?: 'sm' | 'md' | 'lg'\n /** Full width mode */\n fullWidth?: boolean\n}\n\nconst TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n className,\n label,\n helperText,\n errorMessage,\n required,\n size = 'md',\n fullWidth,\n id: idProp,\n error,\n ...props\n },\n ref\n ) => {\n const generatedId = React.useId()\n const id = idProp || generatedId\n const helperId = `${id}-helper`\n const hasError = error || !!errorMessage\n\n return (\n <div className={cn('grid gap-1.5', fullWidth && 'w-full', className)}>\n {label && (\n <Label\n htmlFor={id}\n className={cn(\n 'text-sm font-medium',\n hasError && 'text-destructive'\n )}\n >\n {label}\n {required && (\n <span className=\"text-destructive ml-0.5\" aria-hidden=\"true\">\n *\n </span>\n )}\n </Label>\n )}\n <Input\n ref={ref}\n id={id}\n inputSize={size}\n error={hasError}\n aria-describedby={helperText || errorMessage ? helperId : undefined}\n aria-invalid={hasError}\n {...props}\n />\n {(helperText || errorMessage) && (\n <p\n id={helperId}\n className={cn(\n 'text-sm',\n hasError\n ? 'text-destructive'\n : 'text-muted-foreground'\n )}\n >\n {errorMessage || helperText}\n </p>\n )}\n </div>\n )\n }\n)\nTextField.displayName = 'TextField'\n\nexport { TextField }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {}\n\nconst Label = React.forwardRef<HTMLLabelElement, LabelProps>(\n ({ className, ...props }, ref) => (\n <label\n ref={ref}\n className={cn(\n 'text-sm font-medium leading-none text-foreground peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n className\n )}\n {...props}\n />\n )\n)\nLabel.displayName = 'Label'\n\nexport { Label }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {}\n\nconst Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n ({ className, ...props }, ref) => (\n <input\n type=\"checkbox\"\n ref={ref}\n className={cn(\n 'h-4 w-4 shrink-0 rounded-sm border border-accent cursor-pointer',\n 'ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'accent-accent',\n className\n )}\n {...props}\n />\n )\n)\nCheckbox.displayName = 'Checkbox'\n\nexport { Checkbox }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface SwitchProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {}\n\nconst Switch = React.forwardRef<HTMLInputElement, SwitchProps>(\n ({ className, ...props }, ref) => (\n <label className={cn('relative inline-flex items-center cursor-pointer', className)}>\n <input\n type=\"checkbox\"\n ref={ref}\n className=\"sr-only peer\"\n {...props}\n />\n <div\n className={cn(\n 'w-11 h-6 rounded-full transition-colors',\n 'bg-input peer-checked:bg-accent',\n 'peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-background',\n 'peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n 'after:content-[\"\"] after:absolute after:top-[2px] after:left-[2px]',\n 'after:bg-background after:rounded-full after:h-5 after:w-5',\n 'after:transition-transform after:shadow-lg',\n 'peer-checked:after:translate-x-5'\n )}\n />\n </label>\n )\n)\nSwitch.displayName = 'Switch'\n\nexport { Switch }\n","import * as React from 'react'\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group'\nimport { cn } from '../utils/cn'\n\n// RadioGroup\nexport interface RadioGroupProps\n extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root> {\n /** Orientation of the radio group */\n orientation?: 'horizontal' | 'vertical'\n /** Size of radio items */\n size?: 'sm' | 'md' | 'lg'\n}\n\nconst RadioGroupContext = React.createContext<{ size?: 'sm' | 'md' | 'lg' }>({})\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n RadioGroupProps\n>(({ className, orientation = 'vertical', size = 'md', ...props }, ref) => {\n return (\n <RadioGroupContext.Provider value={{ size }}>\n <RadioGroupPrimitive.Root\n ref={ref}\n className={cn(\n 'grid gap-2',\n orientation === 'horizontal' && 'grid-flow-col auto-cols-max gap-4',\n className\n )}\n {...props}\n />\n </RadioGroupContext.Provider>\n )\n})\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName\n\n// RadioGroupItem\nexport interface RadioGroupItemProps\n extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> {\n /** Size override for individual item */\n size?: 'sm' | 'md' | 'lg'\n}\n\nconst sizeClasses = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n}\n\nconst indicatorSizeClasses = {\n sm: 'h-2 w-2',\n md: 'h-2.5 w-2.5',\n lg: 'h-3 w-3',\n}\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n RadioGroupItemProps\n>(({ className, size: sizeProp, ...props }, ref) => {\n const { size: contextSize } = React.useContext(RadioGroupContext)\n const size = sizeProp || contextSize || 'md'\n\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n 'aspect-square rounded-full',\n 'border-2 border-input',\n 'ring-offset-background',\n 'focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'data-[state=checked]:border-accent',\n 'transition-colors',\n sizeClasses[size],\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <div\n className={cn(\n 'rounded-full bg-accent',\n indicatorSizeClasses[size]\n )}\n />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n})\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\n\n// Radio - Convenience component with label\nexport interface RadioProps extends RadioGroupItemProps {\n /** Label for the radio */\n label?: React.ReactNode\n /** Description text */\n description?: React.ReactNode\n /** ID for accessibility */\n id?: string\n}\n\nconst Radio = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n RadioProps\n>(({ className, label, description, id: idProp, value, size, ...props }, ref) => {\n const generatedId = React.useId()\n const id = idProp || generatedId\n\n if (!label && !description) {\n return <RadioGroupItem ref={ref} value={value} size={size} {...props} />\n }\n\n return (\n <div className={cn('flex items-start gap-3', className)}>\n <RadioGroupItem ref={ref} id={id} value={value} size={size} {...props} />\n <div className=\"grid gap-1\">\n {label && (\n <label\n htmlFor={id}\n className=\"text-sm font-medium leading-none text-foreground cursor-pointer peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n >\n {label}\n </label>\n )}\n {description && (\n <p className=\"text-sm text-muted-foreground\">\n {description}\n </p>\n )}\n </div>\n </div>\n )\n})\nRadio.displayName = 'Radio'\n\nexport { RadioGroup, RadioGroupItem, Radio }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\n// Form Context\ninterface FormControlContextValue {\n id?: string\n error?: boolean\n disabled?: boolean\n required?: boolean\n}\n\nconst FormControlContext = React.createContext<FormControlContextValue>({})\n\nexport function useFormControl() {\n return React.useContext(FormControlContext)\n}\n\n// FormControl\nexport interface FormControlProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Error state */\n error?: boolean\n /** Disabled state */\n disabled?: boolean\n /** Required state */\n required?: boolean\n /** Full width mode */\n fullWidth?: boolean\n /** Margin */\n margin?: 'none' | 'dense' | 'normal'\n /** Orientation */\n orientation?: 'vertical' | 'horizontal'\n}\n\nconst marginClasses = {\n none: '',\n dense: 'my-1',\n normal: 'my-2',\n}\n\nconst FormControl = React.forwardRef<HTMLDivElement, FormControlProps>(\n (\n {\n className,\n children,\n error,\n disabled,\n required,\n fullWidth,\n margin = 'none',\n orientation = 'vertical',\n ...props\n },\n ref\n ) => {\n const id = React.useId()\n\n return (\n <FormControlContext.Provider value={{ id, error, disabled, required }}>\n <div\n ref={ref}\n className={cn(\n 'inline-flex',\n orientation === 'vertical' ? 'flex-col gap-1.5' : 'flex-row items-center gap-3',\n fullWidth && 'w-full',\n marginClasses[margin],\n disabled && 'opacity-50 cursor-not-allowed',\n className\n )}\n {...props}\n >\n {children}\n </div>\n </FormControlContext.Provider>\n )\n }\n)\nFormControl.displayName = 'FormControl'\n\n// FormLabel\nexport interface FormLabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {\n /** Error state (auto-inherited from FormControl) */\n error?: boolean\n /** Disabled state (auto-inherited from FormControl) */\n disabled?: boolean\n /** Required indicator */\n required?: boolean\n}\n\nconst FormLabel = React.forwardRef<HTMLLabelElement, FormLabelProps>(\n ({ className, children, error: errorProp, disabled: disabledProp, required: requiredProp, htmlFor, ...props }, ref) => {\n const context = useFormControl()\n const error = errorProp ?? context.error\n const disabled = disabledProp ?? context.disabled\n const required = requiredProp ?? context.required\n const id = htmlFor ?? context.id\n\n return (\n <label\n ref={ref}\n htmlFor={id}\n className={cn(\n 'text-sm font-medium leading-none',\n 'text-foreground',\n error && 'text-destructive',\n disabled && 'cursor-not-allowed opacity-70',\n className\n )}\n {...props}\n >\n {children}\n {required && (\n <span className=\"text-destructive ml-0.5\" aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n )\n }\n)\nFormLabel.displayName = 'FormLabel'\n\n// FormHelperText\nexport interface FormHelperTextProps extends React.HTMLAttributes<HTMLParagraphElement> {\n /** Error state (auto-inherited from FormControl) */\n error?: boolean\n /** Disabled state (auto-inherited from FormControl) */\n disabled?: boolean\n}\n\nconst FormHelperText = React.forwardRef<HTMLParagraphElement, FormHelperTextProps>(\n ({ className, children, error: errorProp, disabled: disabledProp, id, ...props }, ref) => {\n const context = useFormControl()\n const error = errorProp ?? context.error\n const disabled = disabledProp ?? context.disabled\n const helperId = id ?? (context.id ? `${context.id}-helper` : undefined)\n\n return (\n <p\n ref={ref}\n id={helperId}\n className={cn(\n 'text-sm',\n error\n ? 'text-destructive'\n : 'text-muted-foreground',\n disabled && 'opacity-70',\n className\n )}\n {...props}\n >\n {children}\n </p>\n )\n }\n)\nFormHelperText.displayName = 'FormHelperText'\n\n// FormGroup - for grouping checkboxes/radios\nexport interface FormGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Group orientation */\n row?: boolean\n}\n\nconst FormGroup = React.forwardRef<HTMLDivElement, FormGroupProps>(\n ({ className, row, ...props }, ref) => (\n <div\n ref={ref}\n role=\"group\"\n className={cn(\n 'flex',\n row ? 'flex-row flex-wrap gap-4' : 'flex-col gap-2',\n className\n )}\n {...props}\n />\n )\n)\nFormGroup.displayName = 'FormGroup'\n\nexport { FormControl, FormLabel, FormHelperText, FormGroup }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'rounded-lg border border-border bg-card text-card-foreground shadow-sm',\n className\n )}\n {...props}\n />\n )\n)\nCard.displayName = 'Card'\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col space-y-1.5 p-6', className)}\n {...props}\n />\n )\n)\nCardHeader.displayName = 'CardHeader'\n\nconst CardTitle = React.forwardRef<HTMLHeadingElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn('text-2xl font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n )\n)\nCardTitle.displayName = 'CardTitle'\n\nconst CardDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n )\n)\nCardDescription.displayName = 'CardDescription'\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n )\n)\nCardContent.displayName = 'CardContent'\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center p-6 pt-0', className)}\n {...props}\n />\n )\n)\nCardFooter.displayName = 'CardFooter'\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: 'default' | 'secondary' | 'destructive' | 'outline'\n}\n\nconst Badge = React.forwardRef<HTMLDivElement, BadgeProps>(\n ({ className, variant = 'default', ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold transition-colors',\n 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n {\n 'border-transparent bg-accent text-accent-foreground':\n variant === 'default',\n 'border-transparent bg-muted text-foreground':\n variant === 'secondary',\n 'border-transparent bg-destructive text-destructive-foreground':\n variant === 'destructive',\n 'border border-border text-foreground':\n variant === 'outline',\n },\n className\n )}\n {...props}\n />\n )\n }\n)\nBadge.displayName = 'Badge'\n\nexport { Badge }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: 'horizontal' | 'vertical'\n}\n\nconst Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n ({ className, orientation = 'horizontal', ...props }, ref) => (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={orientation}\n className={cn(\n 'shrink-0 bg-border',\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\n className\n )}\n {...props}\n />\n )\n)\nSeparator.displayName = 'Separator'\n\nexport { Separator }\n","import * as React from 'react'\nimport * as SelectPrimitive from '@radix-ui/react-select'\nimport { cn } from '../../utils/cn'\n\n// Icons\nconst ChevronDownIcon = () => (\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 >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n)\n\nconst ChevronUpIcon = () => (\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 >\n <path d=\"m18 15-6-6-6 6\" />\n </svg>\n)\n\nconst CheckIcon = () => (\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 >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n)\n\n// Root\nconst Select = SelectPrimitive.Root\n\n// Group\nconst SelectGroup = SelectPrimitive.Group\n\n// Value\nconst SelectValue = SelectPrimitive.Value\n\n// Trigger\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex h-10 w-full items-center justify-between rounded-md border px-3 py-2 text-sm',\n 'border-input bg-background text-foreground',\n 'ring-offset-background',\n 'placeholder:text-muted-foreground',\n 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n '[&>span]:line-clamp-1',\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n))\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\n// ScrollUpButton\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className\n )}\n {...props}\n >\n <ChevronUpIcon />\n </SelectPrimitive.ScrollUpButton>\n))\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\n\n// ScrollDownButton\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className\n )}\n {...props}\n >\n <ChevronDownIcon />\n </SelectPrimitive.ScrollDownButton>\n))\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName\n\n// Content\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = 'popper', ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n 'relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md',\n 'border-border bg-popover text-popover-foreground',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2',\n 'data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]'\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n))\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\n// Label\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn('py-1.5 pl-8 pr-2 text-sm font-semibold', className)}\n {...props}\n />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\n// Item\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none',\n 'focus:bg-accent focus:text-accent-foreground',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n))\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\n// Separator\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 my-1 h-px bg-muted', className)}\n {...props}\n />\n))\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\n\n// Compound component pattern\nconst SelectNamespace = Object.assign(Select, {\n Group: SelectGroup,\n Value: SelectValue,\n Trigger: SelectTrigger,\n Content: SelectContent,\n Label: SelectLabel,\n Item: SelectItem,\n Separator: SelectSeparator,\n ScrollUpButton: SelectScrollUpButton,\n ScrollDownButton: SelectScrollDownButton,\n})\n\nexport {\n SelectNamespace as Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n}\n\n// ============================================\n// Native Select (for simple use cases)\n// ============================================\n\nexport interface NativeSelectProps extends React.SelectHTMLAttributes<HTMLSelectElement> {}\n\nconst NativeSelect = React.forwardRef<HTMLSelectElement, NativeSelectProps>(\n ({ className, children, ...props }, ref) => (\n <select\n ref={ref}\n className={cn(\n 'flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm',\n 'ring-offset-background',\n 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n {...props}\n >\n {children}\n </select>\n )\n)\nNativeSelect.displayName = 'NativeSelect'\n\nexport interface NativeSelectOptionProps extends React.OptionHTMLAttributes<HTMLOptionElement> {}\n\nconst NativeSelectOption = React.forwardRef<HTMLOptionElement, NativeSelectOptionProps>(\n ({ className, ...props }, ref) => (\n <option ref={ref} className={cn('py-1.5', className)} {...props} />\n )\n)\nNativeSelectOption.displayName = 'NativeSelectOption'\n\nexport { NativeSelect, NativeSelectOption }\n","import * as React from 'react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { cn } from '../../utils/cn'\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/80',\n 'data-[state=open]:animate-fade-in data-[state=closed]:animate-fade-out',\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\ninterface DialogContentProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {\n hideCloseButton?: boolean\n}\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n DialogContentProps\n>(({ className, children, hideCloseButton = false, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 p-6 shadow-lg',\n 'bg-popover border border-border text-popover-foreground',\n 'rounded-lg',\n 'data-[state=open]:animate-zoom-in data-[state=closed]:animate-zoom-out',\n 'duration-200',\n className\n )}\n {...props}\n >\n {children}\n {!hideCloseButton && (\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"h-4 w-4\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)}\n {...props}\n />\n)\nDialogHeader.displayName = 'DialogHeader'\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n)\nDialogFooter.displayName = 'DialogFooter'\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight text-foreground', className)}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\n// Compound component pattern\nconst DialogNamespace = Object.assign(Dialog, {\n Trigger: DialogTrigger,\n Portal: DialogPortal,\n Close: DialogClose,\n Overlay: DialogOverlay,\n Content: DialogContent,\n Header: DialogHeader,\n Footer: DialogFooter,\n Title: DialogTitle,\n Description: DialogDescription,\n})\n\nexport {\n DialogNamespace as Dialog,\n DialogTrigger,\n DialogPortal,\n DialogClose,\n DialogOverlay,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface SpinnerProps extends React.HTMLAttributes<HTMLDivElement> {\n size?: 'sm' | 'default' | 'lg'\n}\n\nconst Spinner = React.forwardRef<HTMLDivElement, SpinnerProps>(\n ({ className, size = 'default', ...props }, ref) => {\n return (\n <div\n ref={ref}\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(\n 'inline-block animate-spin rounded-full border-2 border-solid border-current border-r-transparent motion-reduce:animate-[spin_1.5s_linear_infinite]',\n {\n 'h-4 w-4': size === 'sm',\n 'h-6 w-6': size === 'default',\n 'h-8 w-8': size === 'lg',\n },\n 'text-accent',\n className\n )}\n {...props}\n >\n <span className=\"sr-only\">Loading...</span>\n </div>\n )\n }\n)\nSpinner.displayName = 'Spinner'\n\nexport { Spinner }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n />\n </div>\n))\nTable.displayName = 'Table'\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n))\nTableHeader.displayName = 'TableHeader'\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n))\nTableBody.displayName = 'TableBody'\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n 'border-t bg-muted/50 font-medium [&>tr]:last:border-b-0',\n className\n )}\n {...props}\n />\n))\nTableFooter.displayName = 'TableFooter'\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b border-border transition-colors',\n 'hover:bg-muted/50',\n 'data-[state=selected]:bg-muted',\n className\n )}\n {...props}\n />\n))\nTableRow.displayName = 'TableRow'\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-12 px-4 text-left align-middle font-medium text-muted-foreground',\n '[&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n))\nTableHead.displayName = 'TableHead'\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n 'p-4 align-middle [&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n))\nTableCell.displayName = 'TableCell'\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn('mt-4 text-sm text-muted-foreground', className)}\n {...props}\n />\n))\nTableCaption.displayName = 'TableCaption'\n\n// Compound component pattern\nconst TableNamespace = Object.assign(Table, {\n Header: TableHeader,\n Body: TableBody,\n Footer: TableFooter,\n Row: TableRow,\n Head: TableHead,\n Cell: TableCell,\n Caption: TableCaption,\n})\n\nexport {\n TableNamespace as Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { Button } from './button'\n\nexport interface PaginationProps extends React.HTMLAttributes<HTMLElement> {}\n\nconst Pagination = React.forwardRef<HTMLElement, PaginationProps>(\n ({ className, ...props }, ref) => (\n <nav\n ref={ref}\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn('mx-auto flex w-full justify-center', className)}\n {...props}\n />\n )\n)\nPagination.displayName = 'Pagination'\n\nconst PaginationContent = React.forwardRef<\n HTMLUListElement,\n React.HTMLAttributes<HTMLUListElement>\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n className={cn('flex flex-row items-center gap-1', className)}\n {...props}\n />\n))\nPaginationContent.displayName = 'PaginationContent'\n\nconst PaginationItem = React.forwardRef<\n HTMLLIElement,\n React.LiHTMLAttributes<HTMLLIElement>\n>(({ className, ...props }, ref) => (\n <li ref={ref} className={cn('', className)} {...props} />\n))\nPaginationItem.displayName = 'PaginationItem'\n\nexport interface PaginationLinkProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n isActive?: boolean\n}\n\nconst PaginationLink = React.forwardRef<HTMLButtonElement, PaginationLinkProps>(\n ({ className, isActive, ...props }, ref) => (\n <Button\n ref={ref}\n variant={isActive ? 'default' : 'outline'}\n size=\"icon\"\n className={cn('h-9 w-9', className)}\n {...props}\n />\n )\n)\nPaginationLink.displayName = 'PaginationLink'\n\nconst PaginationPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => (\n <Button\n ref={ref}\n variant=\"outline\"\n size=\"default\"\n className={cn('gap-1 pl-2.5', className)}\n {...props}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"h-4 w-4\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n <span>Previous</span>\n </Button>\n))\nPaginationPrevious.displayName = 'PaginationPrevious'\n\nconst PaginationNext = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => (\n <Button\n ref={ref}\n variant=\"outline\"\n size=\"default\"\n className={cn('gap-1 pr-2.5', className)}\n {...props}\n >\n <span>Next</span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"h-4 w-4\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n </Button>\n))\nPaginationNext.displayName = 'PaginationNext'\n\nconst PaginationEllipsis = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n aria-hidden\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"h-4 w-4\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </svg>\n <span className=\"sr-only\">More pages</span>\n </span>\n))\nPaginationEllipsis.displayName = 'PaginationEllipsis'\n\n// Compound component pattern\nconst PaginationNamespace = Object.assign(Pagination, {\n Content: PaginationContent,\n Item: PaginationItem,\n Link: PaginationLink,\n Previous: PaginationPrevious,\n Next: PaginationNext,\n Ellipsis: PaginationEllipsis,\n})\n\nexport {\n PaginationNamespace as Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n}\n","import * as React from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface ComboboxOption {\n value: string\n label: string\n disabled?: boolean\n}\n\nexport interface ComboboxProps {\n options: ComboboxOption[]\n value?: string\n defaultValue?: string\n onValueChange?: (value: string) => void\n placeholder?: string\n searchPlaceholder?: string\n emptyMessage?: string\n disabled?: boolean\n className?: string\n}\n\nconst Combobox = React.forwardRef<HTMLInputElement, ComboboxProps>(\n (\n {\n options,\n value: controlledValue,\n defaultValue,\n onValueChange,\n placeholder = 'Select option...',\n searchPlaceholder = 'Search...',\n emptyMessage = 'No results found.',\n disabled = false,\n className,\n },\n ref\n ) => {\n const [open, setOpen] = React.useState(false)\n const [search, setSearch] = React.useState('')\n const [internalValue, setInternalValue] = React.useState(defaultValue ?? '')\n const containerRef = React.useRef<HTMLDivElement>(null)\n\n const value = controlledValue !== undefined ? controlledValue : internalValue\n\n const filteredOptions = React.useMemo(() => {\n if (!search) return options\n return options.filter((option) =>\n option.label.toLowerCase().includes(search.toLowerCase())\n )\n }, [options, search])\n\n const selectedOption = options.find((option) => option.value === value)\n\n const handleSelect = (optionValue: string) => {\n if (controlledValue === undefined) {\n setInternalValue(optionValue)\n }\n onValueChange?.(optionValue)\n setOpen(false)\n setSearch('')\n }\n\n // Close on click outside\n React.useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(event.target as Node)) {\n setOpen(false)\n }\n }\n document.addEventListener('mousedown', handleClickOutside)\n return () => document.removeEventListener('mousedown', handleClickOutside)\n }, [])\n\n return (\n <div ref={containerRef} className=\"relative\">\n <button\n type=\"button\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n onClick={() => setOpen(!open)}\n className={cn(\n 'flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm',\n 'ring-offset-background',\n 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n >\n <span className={cn(!selectedOption && 'text-muted-foreground')}>\n {selectedOption?.label ?? placeholder}\n </span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={cn(\n 'ml-2 h-4 w-4 shrink-0 opacity-50 transition-transform',\n open && 'rotate-180'\n )}\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </button>\n\n {open && (\n <div className=\"absolute z-50 mt-1 w-full overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md\">\n <div className=\"flex items-center border-b border-border px-3\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"mr-2 h-4 w-4 shrink-0 opacity-50\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"m21 21-4.3-4.3\" />\n </svg>\n <input\n ref={ref}\n className=\"flex h-10 w-full bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground\"\n placeholder={searchPlaceholder}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n />\n </div>\n <div className=\"max-h-[300px] overflow-y-auto p-1\">\n {filteredOptions.length === 0 ? (\n <div className=\"py-6 text-center text-sm text-muted-foreground\">\n {emptyMessage}\n </div>\n ) : (\n filteredOptions.map((option) => (\n <button\n key={option.value}\n type=\"button\"\n disabled={option.disabled}\n onClick={() => handleSelect(option.value)}\n className={cn(\n 'relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none',\n 'hover:bg-muted hover:text-foreground',\n 'focus:bg-muted focus:text-foreground',\n 'disabled:pointer-events-none disabled:opacity-50',\n option.value === value && 'bg-muted'\n )}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n {option.value === value && (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"h-4 w-4\"\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n )}\n </span>\n {option.label}\n </button>\n ))\n )}\n </div>\n </div>\n )}\n </div>\n )\n }\n)\nCombobox.displayName = 'Combobox'\n\nexport { Combobox }\n","import * as React from 'react'\n\n// Import all components\nimport { ThemeProvider } from './theme/provider'\nimport { useTheme } from './theme/use-theme'\nimport { Button } from './components/button'\nimport { Input } from './components/input'\nimport { Textarea } from './components/textarea'\nimport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n} from './components/card'\nimport { Badge } from './components/badge'\nimport { Label } from './components/label'\nimport { Checkbox } from './components/checkbox'\nimport { Switch } from './components/switch'\nimport { Separator } from './components/separator'\nimport { Select, SelectTrigger, SelectValue, SelectContent, SelectItem, SelectGroup, SelectLabel } from './components/select'\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n} from './components/dialog'\nimport { Spinner } from './components/spinner'\nimport {\n Table,\n TableHeader,\n TableBody,\n TableRow,\n TableHead,\n TableCell,\n TableCaption,\n} from './components/table'\nimport {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n} from './components/pagination'\nimport { Combobox } from './components/combobox'\n\n// Section wrapper component\nconst Section = ({ title, children }: { title: string; children: React.ReactNode }) => (\n <div className=\"mb-8\">\n <h2 className=\"text-xl font-semibold mb-4 text-foreground\">{title}</h2>\n <div className=\"p-4 border border-border rounded-lg bg-background\">{children}</div>\n </div>\n)\n\n// Theme toggle component\nconst ThemeToggle = () => {\n const { theme, setTheme } = useTheme()\n return (\n <div className=\"flex items-center gap-2\">\n <Label>Theme:</Label>\n <Select value={theme} onValueChange={(value) => setTheme(value as 'light' | 'dark' | 'system')}>\n <SelectTrigger className=\"w-32\">\n <SelectValue placeholder=\"Select theme\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"light\">Light</SelectItem>\n <SelectItem value=\"dark\">Dark</SelectItem>\n <SelectItem value=\"system\">System</SelectItem>\n </SelectContent>\n </Select>\n </div>\n )\n}\n\n// Main Playground Component\nconst PlaygroundContent = () => {\n const [dialogOpen, setDialogOpen] = React.useState(false)\n const [checkboxChecked, setCheckboxChecked] = React.useState(false)\n const [switchChecked, setSwitchChecked] = React.useState(false)\n const [inputValue, setInputValue] = React.useState('')\n const [textareaValue, setTextareaValue] = React.useState('')\n const [selectValue, setSelectValue] = React.useState('')\n const [comboboxValue, setComboboxValue] = React.useState('')\n\n const comboboxOptions = [\n { value: 'react', label: 'React' },\n { value: 'vue', label: 'Vue' },\n { value: 'angular', label: 'Angular' },\n { value: 'svelte', label: 'Svelte' },\n { value: 'solid', label: 'SolidJS' },\n ]\n\n return (\n <div className=\"min-h-screen bg-background p-8\">\n <div className=\"max-w-4xl mx-auto\">\n <div className=\"flex items-center justify-between mb-8\">\n <h1 className=\"text-3xl font-bold text-foreground\">@onesaz/ui Playground</h1>\n <ThemeToggle />\n </div>\n\n {/* Buttons */}\n <Section title=\"Button\">\n <div className=\"flex flex-wrap gap-4\">\n <Button variant=\"default\">Default</Button>\n <Button variant=\"destructive\">Destructive</Button>\n <Button variant=\"outline\">Outline</Button>\n <Button variant=\"secondary\">Secondary</Button>\n <Button variant=\"ghost\">Ghost</Button>\n <Button variant=\"link\">Link</Button>\n </div>\n <div className=\"flex flex-wrap gap-4 mt-4\">\n <Button size=\"sm\">Small</Button>\n <Button size=\"default\">Default</Button>\n <Button size=\"lg\">Large</Button>\n <Button size=\"icon\">🔔</Button>\n </div>\n <div className=\"flex flex-wrap gap-4 mt-4\">\n <Button disabled>Disabled</Button>\n <Button variant=\"outline\" disabled>Disabled Outline</Button>\n </div>\n </Section>\n\n {/* Input */}\n <Section title=\"Input\">\n <div className=\"space-y-4 max-w-md\">\n <div>\n <Label htmlFor=\"input-default\">Default Input</Label>\n <Input\n id=\"input-default\"\n placeholder=\"Enter text...\"\n value={inputValue}\n onChange={(e) => setInputValue(e.target.value)}\n />\n </div>\n <div>\n <Label htmlFor=\"input-disabled\">Disabled Input</Label>\n <Input id=\"input-disabled\" placeholder=\"Disabled...\" disabled />\n </div>\n <div>\n <Label htmlFor=\"input-type\">Email Input</Label>\n <Input id=\"input-type\" type=\"email\" placeholder=\"email@example.com\" />\n </div>\n </div>\n </Section>\n\n {/* Textarea */}\n <Section title=\"Textarea\">\n <div className=\"space-y-4 max-w-md\">\n <div>\n <Label htmlFor=\"textarea-default\">Default Textarea</Label>\n <Textarea\n id=\"textarea-default\"\n placeholder=\"Enter long text...\"\n value={textareaValue}\n onChange={(e) => setTextareaValue(e.target.value)}\n />\n </div>\n <div>\n <Label htmlFor=\"textarea-disabled\">Disabled Textarea</Label>\n <Textarea id=\"textarea-disabled\" placeholder=\"Disabled...\" disabled />\n </div>\n </div>\n </Section>\n\n {/* Select */}\n <Section title=\"Select\">\n <div className=\"space-y-4 max-w-md\">\n <div>\n <Label>Default Select</Label>\n <Select value={selectValue} onValueChange={setSelectValue}>\n <SelectTrigger className=\"w-full\">\n <SelectValue placeholder=\"Select an option...\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"option1\">Option 1</SelectItem>\n <SelectItem value=\"option2\">Option 2</SelectItem>\n <SelectItem value=\"option3\">Option 3</SelectItem>\n </SelectContent>\n </Select>\n </div>\n <div>\n <Label>Grouped Select</Label>\n <Select>\n <SelectTrigger className=\"w-full\">\n <SelectValue placeholder=\"Select a food...\" />\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n <SelectLabel>Fruits</SelectLabel>\n <SelectItem value=\"apple\">Apple</SelectItem>\n <SelectItem value=\"banana\">Banana</SelectItem>\n </SelectGroup>\n <SelectGroup>\n <SelectLabel>Vegetables</SelectLabel>\n <SelectItem value=\"carrot\">Carrot</SelectItem>\n <SelectItem value=\"potato\">Potato</SelectItem>\n </SelectGroup>\n </SelectContent>\n </Select>\n </div>\n <div>\n <Label>Disabled Select</Label>\n <Select disabled>\n <SelectTrigger className=\"w-full\">\n <SelectValue placeholder=\"Disabled...\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">None</SelectItem>\n </SelectContent>\n </Select>\n </div>\n </div>\n </Section>\n\n {/* Combobox */}\n <Section title=\"Combobox (Searchable Select)\">\n <div className=\"space-y-4 max-w-md\">\n <div>\n <Label>Framework</Label>\n <Combobox\n options={comboboxOptions}\n value={comboboxValue}\n onValueChange={setComboboxValue}\n placeholder=\"Search frameworks...\"\n />\n </div>\n </div>\n </Section>\n\n {/* Checkbox & Switch */}\n <Section title=\"Checkbox & Switch\">\n <div className=\"space-y-4\">\n <div className=\"flex items-center gap-2\">\n <Checkbox\n id=\"checkbox\"\n checked={checkboxChecked}\n onChange={(e) => setCheckboxChecked(e.target.checked)}\n />\n <Label htmlFor=\"checkbox\">Accept terms and conditions</Label>\n </div>\n <div className=\"flex items-center gap-2\">\n <Checkbox id=\"checkbox-disabled\" disabled />\n <Label htmlFor=\"checkbox-disabled\">Disabled checkbox</Label>\n </div>\n <Separator />\n <div className=\"flex items-center gap-2\">\n <Switch\n id=\"switch\"\n checked={switchChecked}\n onChange={(e) => setSwitchChecked(e.target.checked)}\n />\n <Label htmlFor=\"switch\">Enable notifications</Label>\n </div>\n <div className=\"flex items-center gap-2\">\n <Switch id=\"switch-disabled\" disabled />\n <Label htmlFor=\"switch-disabled\">Disabled switch</Label>\n </div>\n </div>\n </Section>\n\n {/* Badge */}\n <Section title=\"Badge\">\n <div className=\"flex flex-wrap gap-4\">\n <Badge>Default</Badge>\n <Badge variant=\"secondary\">Secondary</Badge>\n <Badge variant=\"destructive\">Destructive</Badge>\n <Badge variant=\"outline\">Outline</Badge>\n </div>\n </Section>\n\n {/* Card */}\n <Section title=\"Card\">\n <div className=\"grid gap-4 md:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle>Card Title</CardTitle>\n <CardDescription>Card description goes here</CardDescription>\n </CardHeader>\n <CardContent>\n <p className=\"text-foreground\">This is the card content area.</p>\n </CardContent>\n <CardFooter>\n <Button variant=\"outline\" className=\"mr-2\">Cancel</Button>\n <Button>Submit</Button>\n </CardFooter>\n </Card>\n <Card>\n <CardHeader>\n <CardTitle>Another Card</CardTitle>\n <CardDescription>With different content</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-2\">\n <Label htmlFor=\"card-input\">Name</Label>\n <Input id=\"card-input\" placeholder=\"Enter name...\" />\n </div>\n </CardContent>\n <CardFooter>\n <Button className=\"w-full\">Save</Button>\n </CardFooter>\n </Card>\n </div>\n </Section>\n\n {/* Dialog */}\n <Section title=\"Dialog\">\n <Button onClick={() => setDialogOpen(true)}>Open Dialog</Button>\n <Dialog open={dialogOpen} onOpenChange={setDialogOpen}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Create New Zone</DialogTitle>\n <DialogDescription>\n Fill in the details below to create a new zone.\n </DialogDescription>\n </DialogHeader>\n <div className=\"space-y-4 py-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <Label htmlFor=\"zone-name\">Zone Name *</Label>\n <Input id=\"zone-name\" placeholder=\"eg:hyderabad\" />\n </div>\n <div>\n <Label htmlFor=\"zone-code\">Zone Code *</Label>\n <Input id=\"zone-code\" placeholder=\"eg :hyd022\" />\n </div>\n </div>\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <Label>State *</Label>\n <Select>\n <SelectTrigger className=\"w-full\">\n <SelectValue placeholder=\"Select state\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"telangana\">TELANGANA</SelectItem>\n <SelectItem value=\"andhra\">ANDHRA PRADESH</SelectItem>\n </SelectContent>\n </Select>\n </div>\n <div>\n <Label>District *</Label>\n <Select>\n <SelectTrigger className=\"w-full\">\n <SelectValue placeholder=\"Select District\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"hyderabad\">HYDERABAD</SelectItem>\n <SelectItem value=\"rangareddy\">RANGAREDDY</SelectItem>\n </SelectContent>\n </Select>\n </div>\n </div>\n </div>\n <DialogFooter>\n <Button variant=\"outline\" onClick={() => setDialogOpen(false)}>\n CANCEL\n </Button>\n <Button onClick={() => setDialogOpen(false)}>Create</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </Section>\n\n {/* Table */}\n <Section title=\"Table\">\n <Table>\n <TableCaption>A list of recent invoices</TableCaption>\n <TableHeader>\n <TableRow>\n <TableHead>Invoice</TableHead>\n <TableHead>Status</TableHead>\n <TableHead>Method</TableHead>\n <TableHead className=\"text-right\">Amount</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n <TableRow>\n <TableCell>INV001</TableCell>\n <TableCell><Badge>Paid</Badge></TableCell>\n <TableCell>Credit Card</TableCell>\n <TableCell className=\"text-right\">$250.00</TableCell>\n </TableRow>\n <TableRow>\n <TableCell>INV002</TableCell>\n <TableCell><Badge variant=\"secondary\">Pending</Badge></TableCell>\n <TableCell>PayPal</TableCell>\n <TableCell className=\"text-right\">$150.00</TableCell>\n </TableRow>\n <TableRow>\n <TableCell>INV003</TableCell>\n <TableCell><Badge variant=\"destructive\">Failed</Badge></TableCell>\n <TableCell>Bank Transfer</TableCell>\n <TableCell className=\"text-right\">$350.00</TableCell>\n </TableRow>\n </TableBody>\n </Table>\n </Section>\n\n {/* Pagination */}\n <Section title=\"Pagination\">\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious onClick={() => console.log('Previous')} />\n </PaginationItem>\n <PaginationItem>\n <PaginationLink isActive>1</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink>2</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink>3</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationEllipsis />\n </PaginationItem>\n <PaginationItem>\n <PaginationNext onClick={() => console.log('Next')} />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n </Section>\n\n {/* Spinner */}\n <Section title=\"Spinner\">\n <div className=\"flex items-center gap-8\">\n <div className=\"text-center\">\n <Spinner size=\"sm\" />\n <p className=\"text-sm text-muted-foreground mt-2\">Small</p>\n </div>\n <div className=\"text-center\">\n <Spinner size=\"default\" />\n <p className=\"text-sm text-muted-foreground mt-2\">Default</p>\n </div>\n <div className=\"text-center\">\n <Spinner size=\"lg\" />\n <p className=\"text-sm text-muted-foreground mt-2\">Large</p>\n </div>\n </div>\n </Section>\n\n {/* Separator */}\n <Section title=\"Separator\">\n <div className=\"space-y-4\">\n <p className=\"text-foreground\">Content above separator</p>\n <Separator />\n <p className=\"text-foreground\">Content below separator</p>\n <div className=\"flex items-center h-10\">\n <span className=\"text-foreground\">Left</span>\n <Separator orientation=\"vertical\" className=\"mx-4\" />\n <span className=\"text-foreground\">Right</span>\n </div>\n </div>\n </Section>\n\n {/* Typography Colors */}\n <Section title=\"Typography & Colors\">\n <div className=\"space-y-2\">\n <p className=\"text-foreground\">text-foreground - Primary text color</p>\n <p className=\"text-muted-foreground\">text-muted-foreground - Muted text color</p>\n <p className=\"text-accent\">text-accent - Accent color</p>\n <p className=\"text-destructive\">text-destructive - Destructive color</p>\n </div>\n </Section>\n </div>\n </div>\n )\n}\n\n// Exported Playground wrapped with ThemeProvider\nexport const Playground = () => (\n <ThemeProvider defaultTheme=\"light\">\n <PlaygroundContent />\n </ThemeProvider>\n)\n\nexport default Playground\n"],"mappings":"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","names":["value","React","jsx","React","jsx","React","jsx","spacingClasses","alignItemsClasses","justifyContentClasses","React","jsx","colorClasses","alignClasses","React","jsx","React","jsx","React","jsx","React","React","jsx","jsx","jsxs","React","jsx","React","jsx","jsxs","React","jsx","jsxs","sizeClasses","React","jsx","jsxs","marginClasses","React","jsx","React","jsx","React","jsx","React","jsx","jsxs","jsx","React","jsx","jsxs","React","jsx","React","jsx","React","jsx","jsxs","React","jsx","jsxs","React","jsx","jsxs"]}
1
+ {"version":3,"sources":["../src/theme/provider.tsx","../src/theme/context.ts","../src/theme/use-theme.ts","../src/utils/cn.ts","../src/components/box.tsx","../src/components/stack.tsx","../src/components/grid.tsx","../src/components/typography.tsx","../src/components/button.tsx","../src/components/input.tsx","../src/components/textarea.tsx","../src/components/text-field.tsx","../src/components/label.tsx","../src/components/checkbox.tsx","../src/components/switch.tsx","../src/components/radio.tsx","../src/components/form.tsx","../src/components/card.tsx","../src/components/badge.tsx","../src/components/separator.tsx","../src/components/select/index.tsx","../src/components/dialog/index.tsx","../src/components/spinner.tsx","../src/components/table.tsx","../src/components/pagination.tsx","../src/components/combobox/index.tsx","../src/components/data-grid/index.tsx","../src/playground.tsx"],"sourcesContent":["import * as React from 'react'\nimport {\n accentColors,\n grayColors,\n radiusPresets,\n lightTheme,\n darkTheme,\n type AccentColor,\n type GrayColor,\n type RadiusPreset,\n type Theme,\n} from '@onesaz/tokens'\nimport { ThemeContext } from './context'\n\nexport interface ThemeProviderProps {\n children: React.ReactNode\n defaultTheme?: Theme\n accentColor?: AccentColor\n grayColor?: GrayColor\n radius?: RadiusPreset\n storageKey?: string\n}\n\nfunction getSystemTheme(): 'light' | 'dark' {\n if (typeof window === 'undefined') return 'light'\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'\n}\n\nexport function ThemeProvider({\n children,\n defaultTheme = 'system',\n accentColor: defaultAccent = 'purple',\n grayColor: defaultGray = 'slate',\n radius: defaultRadius = 'medium',\n storageKey = 'onesaz-theme',\n}: ThemeProviderProps) {\n const [theme, setThemeState] = React.useState<Theme>(defaultTheme)\n const [accentColor, setAccentColorState] = React.useState<AccentColor>(defaultAccent)\n const [grayColor, setGrayColorState] = React.useState<GrayColor>(defaultGray)\n const [radius, setRadiusState] = React.useState<RadiusPreset>(defaultRadius)\n\n const [resolvedTheme, setResolvedTheme] = React.useState<'light' | 'dark'>(() =>\n defaultTheme === 'system' ? getSystemTheme() : defaultTheme === 'dark' ? 'dark' : 'light'\n )\n\n // Sync state with props when they change (important for Storybook controls)\n React.useEffect(() => {\n setThemeState(defaultTheme)\n }, [defaultTheme])\n\n React.useEffect(() => {\n setAccentColorState(defaultAccent)\n }, [defaultAccent])\n\n React.useEffect(() => {\n setGrayColorState(defaultGray)\n }, [defaultGray])\n\n React.useEffect(() => {\n setRadiusState(defaultRadius)\n }, [defaultRadius])\n\n // Listen for system theme changes\n React.useEffect(() => {\n if (theme !== 'system') {\n setResolvedTheme(theme)\n return\n }\n\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)')\n setResolvedTheme(mediaQuery.matches ? 'dark' : 'light')\n\n const handler = (e: MediaQueryListEvent) => {\n setResolvedTheme(e.matches ? 'dark' : 'light')\n }\n\n mediaQuery.addEventListener('change', handler)\n return () => mediaQuery.removeEventListener('change', handler)\n }, [theme])\n\n // Generate CSS variables\n React.useEffect(() => {\n const root = document.documentElement\n const themeTokens = resolvedTheme === 'dark' ? darkTheme : lightTheme\n const accent = accentColors[accentColor]\n const gray = grayColors[grayColor]\n const radiusValues = radiusPresets[radius]\n\n // Set theme attribute\n root.setAttribute('data-theme', resolvedTheme)\n root.setAttribute('data-accent', accentColor)\n\n // Set gray-based semantic tokens\n root.style.setProperty('--background', gray[themeTokens.background])\n root.style.setProperty('--foreground', gray[themeTokens.foreground])\n root.style.setProperty('--card', gray[themeTokens.card])\n root.style.setProperty('--card-foreground', gray[themeTokens.cardForeground])\n root.style.setProperty('--popover', gray[themeTokens.popover])\n root.style.setProperty('--popover-foreground', gray[themeTokens.popoverForeground])\n root.style.setProperty('--muted', gray[themeTokens.muted])\n root.style.setProperty('--muted-foreground', gray[themeTokens.mutedForeground])\n root.style.setProperty('--border', gray[themeTokens.border])\n root.style.setProperty('--input', gray[themeTokens.input])\n\n // Set accent colors\n root.style.setProperty('--accent', accent[6])\n root.style.setProperty('--accent-foreground', '#ffffff')\n root.style.setProperty('--accent-hover', accent[7])\n root.style.setProperty('--ring', accent[6])\n\n // Set all accent scale values\n Object.entries(accent).forEach(([step, value]) => {\n root.style.setProperty(`--accent-${step}`, value)\n })\n\n // Set destructive colors\n root.style.setProperty('--destructive', resolvedTheme === 'dark' ? '#ef4444' : '#dc2626')\n root.style.setProperty('--destructive-foreground', '#ffffff')\n\n // Set radius\n root.style.setProperty('--radius', radiusValues.md)\n root.style.setProperty('--radius-sm', radiusValues.sm)\n root.style.setProperty('--radius-lg', radiusValues.lg)\n }, [resolvedTheme, accentColor, grayColor, radius])\n\n const setTheme = React.useCallback((newTheme: Theme) => {\n localStorage.setItem(`${storageKey}-mode`, newTheme)\n setThemeState(newTheme)\n }, [storageKey])\n\n const setAccentColor = React.useCallback((color: AccentColor) => {\n localStorage.setItem(`${storageKey}-accent`, color)\n setAccentColorState(color)\n }, [storageKey])\n\n const setGrayColor = React.useCallback((color: GrayColor) => {\n localStorage.setItem(`${storageKey}-gray`, color)\n setGrayColorState(color)\n }, [storageKey])\n\n const setRadius = React.useCallback((newRadius: RadiusPreset) => {\n localStorage.setItem(`${storageKey}-radius`, newRadius)\n setRadiusState(newRadius)\n }, [storageKey])\n\n const value = React.useMemo(\n () => ({\n theme,\n resolvedTheme,\n accentColor,\n grayColor,\n radius,\n setTheme,\n setAccentColor,\n setGrayColor,\n setRadius,\n }),\n [theme, resolvedTheme, accentColor, grayColor, radius, setTheme, setAccentColor, setGrayColor, setRadius]\n )\n\n return (\n <ThemeContext.Provider value={value}>\n {children}\n </ThemeContext.Provider>\n )\n}\n\nThemeProvider.displayName = 'ThemeProvider'\n","import { createContext } from 'react'\nimport type { AccentColor, GrayColor, RadiusPreset, Theme } from '@onesaz/tokens'\n\nexport interface ThemeContextValue {\n theme: Theme\n resolvedTheme: 'light' | 'dark'\n accentColor: AccentColor\n grayColor: GrayColor\n radius: RadiusPreset\n setTheme: (theme: Theme) => void\n setAccentColor: (color: AccentColor) => void\n setGrayColor: (color: GrayColor) => void\n setRadius: (radius: RadiusPreset) => void\n}\n\nexport const ThemeContext = createContext<ThemeContextValue | undefined>(undefined)\n","import { useContext } from 'react'\nimport { ThemeContext, type ThemeContextValue } from './context'\n\nexport function useTheme(): ThemeContextValue {\n const context = useContext(ThemeContext)\n if (!context) {\n throw new Error('useTheme must be used within a ThemeProvider')\n }\n return context\n}\n","import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface BoxProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Render as a different element */\n as?: React.ElementType\n /** Display type */\n display?: 'block' | 'inline-block' | 'inline' | 'flex' | 'inline-flex' | 'grid' | 'inline-grid' | 'none'\n /** Flex direction */\n flexDirection?: 'row' | 'row-reverse' | 'column' | 'column-reverse'\n /** Align items */\n alignItems?: 'start' | 'end' | 'center' | 'baseline' | 'stretch'\n /** Justify content */\n justifyContent?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly'\n /** Flex wrap */\n flexWrap?: 'wrap' | 'nowrap' | 'wrap-reverse'\n /** Gap */\n gap?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16\n /** Padding */\n p?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16\n /** Padding X */\n px?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16\n /** Padding Y */\n py?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16\n /** Margin */\n m?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16 | 'auto'\n /** Margin X */\n mx?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16 | 'auto'\n /** Margin Y */\n my?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16 | 'auto'\n /** Border radius */\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full'\n /** Shadow */\n shadow?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'\n /** Background color */\n bg?: 'background' | 'foreground' | 'muted' | 'accent' | 'card' | 'popover' | 'destructive' | 'transparent'\n /** Text color */\n color?: 'foreground' | 'muted-foreground' | 'accent' | 'accent-foreground' | 'destructive' | 'destructive-foreground'\n /** Border */\n border?: boolean\n /** Border color */\n borderColor?: 'border' | 'input' | 'ring' | 'transparent'\n /** Width */\n w?: 'full' | 'auto' | 'screen' | 'min' | 'max' | 'fit'\n /** Height */\n h?: 'full' | 'auto' | 'screen' | 'min' | 'max' | 'fit'\n /** Position */\n position?: 'static' | 'relative' | 'absolute' | 'fixed' | 'sticky'\n /** Overflow */\n overflow?: 'auto' | 'hidden' | 'visible' | 'scroll'\n}\n\nconst displayClasses: Record<string, string> = {\n block: 'block',\n 'inline-block': 'inline-block',\n inline: 'inline',\n flex: 'flex',\n 'inline-flex': 'inline-flex',\n grid: 'grid',\n 'inline-grid': 'inline-grid',\n none: 'hidden',\n}\n\nconst flexDirectionClasses: Record<string, string> = {\n row: 'flex-row',\n 'row-reverse': 'flex-row-reverse',\n column: 'flex-col',\n 'column-reverse': 'flex-col-reverse',\n}\n\nconst alignItemsClasses: Record<string, string> = {\n start: 'items-start',\n end: 'items-end',\n center: 'items-center',\n baseline: 'items-baseline',\n stretch: 'items-stretch',\n}\n\nconst justifyContentClasses: Record<string, string> = {\n start: 'justify-start',\n end: 'justify-end',\n center: 'justify-center',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n}\n\nconst flexWrapClasses: Record<string, string> = {\n wrap: 'flex-wrap',\n nowrap: 'flex-nowrap',\n 'wrap-reverse': 'flex-wrap-reverse',\n}\n\nconst gapClasses: Record<number, string> = {\n 0: 'gap-0',\n 1: 'gap-1',\n 2: 'gap-2',\n 3: 'gap-3',\n 4: 'gap-4',\n 5: 'gap-5',\n 6: 'gap-6',\n 8: 'gap-8',\n 10: 'gap-10',\n 12: 'gap-12',\n 16: 'gap-16',\n}\n\nconst paddingClasses: Record<number, string> = {\n 0: 'p-0',\n 1: 'p-1',\n 2: 'p-2',\n 3: 'p-3',\n 4: 'p-4',\n 5: 'p-5',\n 6: 'p-6',\n 8: 'p-8',\n 10: 'p-10',\n 12: 'p-12',\n 16: 'p-16',\n}\n\nconst paddingXClasses: Record<number, string> = {\n 0: 'px-0',\n 1: 'px-1',\n 2: 'px-2',\n 3: 'px-3',\n 4: 'px-4',\n 5: 'px-5',\n 6: 'px-6',\n 8: 'px-8',\n 10: 'px-10',\n 12: 'px-12',\n 16: 'px-16',\n}\n\nconst paddingYClasses: Record<number, string> = {\n 0: 'py-0',\n 1: 'py-1',\n 2: 'py-2',\n 3: 'py-3',\n 4: 'py-4',\n 5: 'py-5',\n 6: 'py-6',\n 8: 'py-8',\n 10: 'py-10',\n 12: 'py-12',\n 16: 'py-16',\n}\n\nconst marginClasses: Record<number | 'auto', string> = {\n 0: 'm-0',\n 1: 'm-1',\n 2: 'm-2',\n 3: 'm-3',\n 4: 'm-4',\n 5: 'm-5',\n 6: 'm-6',\n 8: 'm-8',\n 10: 'm-10',\n 12: 'm-12',\n 16: 'm-16',\n auto: 'm-auto',\n}\n\nconst marginXClasses: Record<number | 'auto', string> = {\n 0: 'mx-0',\n 1: 'mx-1',\n 2: 'mx-2',\n 3: 'mx-3',\n 4: 'mx-4',\n 5: 'mx-5',\n 6: 'mx-6',\n 8: 'mx-8',\n 10: 'mx-10',\n 12: 'mx-12',\n 16: 'mx-16',\n auto: 'mx-auto',\n}\n\nconst marginYClasses: Record<number | 'auto', string> = {\n 0: 'my-0',\n 1: 'my-1',\n 2: 'my-2',\n 3: 'my-3',\n 4: 'my-4',\n 5: 'my-5',\n 6: 'my-6',\n 8: 'my-8',\n 10: 'my-10',\n 12: 'my-12',\n 16: 'my-16',\n auto: 'my-auto',\n}\n\nconst roundedClasses: Record<string, string> = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n '2xl': 'rounded-2xl',\n full: 'rounded-full',\n}\n\nconst shadowClasses: Record<string, string> = {\n none: 'shadow-none',\n sm: 'shadow-sm',\n md: 'shadow-md',\n lg: 'shadow-lg',\n xl: 'shadow-xl',\n '2xl': 'shadow-2xl',\n}\n\nconst bgClasses: Record<string, string> = {\n background: 'bg-background',\n foreground: 'bg-foreground',\n muted: 'bg-muted',\n accent: 'bg-accent',\n card: 'bg-card',\n popover: 'bg-popover',\n destructive: 'bg-destructive',\n transparent: 'bg-transparent',\n}\n\nconst colorClasses: Record<string, string> = {\n foreground: 'text-foreground',\n 'muted-foreground': 'text-muted-foreground',\n accent: 'text-accent',\n 'accent-foreground': 'text-accent-foreground',\n destructive: 'text-destructive',\n 'destructive-foreground': 'text-destructive-foreground',\n}\n\nconst borderColorClasses: Record<string, string> = {\n border: 'border-border',\n input: 'border-input',\n ring: 'border-ring',\n transparent: 'border-transparent',\n}\n\nconst widthClasses: Record<string, string> = {\n full: 'w-full',\n auto: 'w-auto',\n screen: 'w-screen',\n min: 'w-min',\n max: 'w-max',\n fit: 'w-fit',\n}\n\nconst heightClasses: Record<string, string> = {\n full: 'h-full',\n auto: 'h-auto',\n screen: 'h-screen',\n min: 'h-min',\n max: 'h-max',\n fit: 'h-fit',\n}\n\nconst positionClasses: Record<string, string> = {\n static: 'static',\n relative: 'relative',\n absolute: 'absolute',\n fixed: 'fixed',\n sticky: 'sticky',\n}\n\nconst overflowClasses: Record<string, string> = {\n auto: 'overflow-auto',\n hidden: 'overflow-hidden',\n visible: 'overflow-visible',\n scroll: 'overflow-scroll',\n}\n\nconst Box = React.forwardRef<HTMLDivElement, BoxProps>(\n (\n {\n as: Component = 'div',\n className,\n display,\n flexDirection,\n alignItems,\n justifyContent,\n flexWrap,\n gap,\n p,\n px,\n py,\n m,\n mx,\n my,\n rounded,\n shadow,\n bg,\n color,\n border,\n borderColor,\n w,\n h,\n position,\n overflow,\n ...props\n },\n ref\n ) => {\n const classes = cn(\n display && displayClasses[display],\n flexDirection && flexDirectionClasses[flexDirection],\n alignItems && alignItemsClasses[alignItems],\n justifyContent && justifyContentClasses[justifyContent],\n flexWrap && flexWrapClasses[flexWrap],\n gap !== undefined && gapClasses[gap],\n p !== undefined && paddingClasses[p],\n px !== undefined && paddingXClasses[px],\n py !== undefined && paddingYClasses[py],\n m !== undefined && marginClasses[m],\n mx !== undefined && marginXClasses[mx],\n my !== undefined && marginYClasses[my],\n rounded && roundedClasses[rounded],\n shadow && shadowClasses[shadow],\n bg && bgClasses[bg],\n color && colorClasses[color],\n border && 'border',\n borderColor && borderColorClasses[borderColor],\n w && widthClasses[w],\n h && heightClasses[h],\n position && positionClasses[position],\n overflow && overflowClasses[overflow],\n className\n )\n\n return <Component ref={ref} className={classes} {...props} />\n }\n)\nBox.displayName = 'Box'\n\nexport { Box }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface StackProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Stack direction */\n direction?: 'row' | 'row-reverse' | 'column' | 'column-reverse'\n /** Spacing between items */\n spacing?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16\n /** Align items */\n align?: 'start' | 'end' | 'center' | 'baseline' | 'stretch'\n /** Justify content */\n justify?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly'\n /** Wrap items */\n wrap?: 'wrap' | 'nowrap' | 'wrap-reverse'\n /** Divider between items */\n divider?: React.ReactNode\n /** Render as a different element */\n as?: React.ElementType\n}\n\nconst directionClasses: Record<string, string> = {\n row: 'flex-row',\n 'row-reverse': 'flex-row-reverse',\n column: 'flex-col',\n 'column-reverse': 'flex-col-reverse',\n}\n\nconst spacingClasses: Record<number, string> = {\n 0: 'gap-0',\n 1: 'gap-1',\n 2: 'gap-2',\n 3: 'gap-3',\n 4: 'gap-4',\n 5: 'gap-5',\n 6: 'gap-6',\n 8: 'gap-8',\n 10: 'gap-10',\n 12: 'gap-12',\n 16: 'gap-16',\n}\n\nconst alignClasses: Record<string, string> = {\n start: 'items-start',\n end: 'items-end',\n center: 'items-center',\n baseline: 'items-baseline',\n stretch: 'items-stretch',\n}\n\nconst justifyClasses: Record<string, string> = {\n start: 'justify-start',\n end: 'justify-end',\n center: 'justify-center',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n}\n\nconst wrapClasses: Record<string, string> = {\n wrap: 'flex-wrap',\n nowrap: 'flex-nowrap',\n 'wrap-reverse': 'flex-wrap-reverse',\n}\n\nconst Stack = React.forwardRef<HTMLDivElement, StackProps>(\n (\n {\n as: Component = 'div',\n className,\n direction = 'column',\n spacing = 0,\n align,\n justify,\n wrap,\n divider,\n children,\n ...props\n },\n ref\n ) => {\n const classes = cn(\n 'flex',\n directionClasses[direction],\n spacingClasses[spacing],\n align && alignClasses[align],\n justify && justifyClasses[justify],\n wrap && wrapClasses[wrap],\n className\n )\n\n // If divider is provided, insert it between children\n if (divider) {\n const childArray = React.Children.toArray(children).filter(Boolean)\n const childrenWithDividers = childArray.reduce<React.ReactNode[]>(\n (acc, child, index) => {\n if (index === 0) {\n return [child]\n }\n return [...acc, React.cloneElement(divider as React.ReactElement, { key: `divider-${index}` }), child]\n },\n []\n )\n\n return (\n <Component ref={ref} className={classes} {...props}>\n {childrenWithDividers}\n </Component>\n )\n }\n\n return (\n <Component ref={ref} className={classes} {...props}>\n {children}\n </Component>\n )\n }\n)\nStack.displayName = 'Stack'\n\n// HStack - Horizontal Stack helper\nconst HStack = React.forwardRef<HTMLDivElement, Omit<StackProps, 'direction'>>(\n (props, ref) => <Stack ref={ref} direction=\"row\" {...props} />\n)\nHStack.displayName = 'HStack'\n\n// VStack - Vertical Stack helper\nconst VStack = React.forwardRef<HTMLDivElement, Omit<StackProps, 'direction'>>(\n (props, ref) => <Stack ref={ref} direction=\"column\" {...props} />\n)\nVStack.displayName = 'VStack'\n\nexport { Stack, HStack, VStack }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\ntype GridSize = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 'auto'\ntype GridSpacing = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16\n\nexport interface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n /** If true, the component will be a container (uses display: grid) */\n container?: boolean\n /** If true, the component will be a grid item */\n item?: boolean\n /** Number of columns the item spans (1-12) or 'auto' */\n xs?: GridSize\n /** Columns at sm breakpoint (640px) */\n sm?: GridSize\n /** Columns at md breakpoint (768px) */\n md?: GridSize\n /** Columns at lg breakpoint (1024px) */\n lg?: GridSize\n /** Columns at xl breakpoint (1280px) */\n xl?: GridSize\n /** Columns at 2xl breakpoint (1536px) */\n xxl?: GridSize\n /** Gap between grid items */\n spacing?: GridSpacing\n /** Row gap */\n rowSpacing?: GridSpacing\n /** Column gap */\n columnSpacing?: GridSpacing\n /** Number of columns in the grid (for container) */\n columns?: 1 | 2 | 3 | 4 | 5 | 6 | 12\n /** Align items */\n alignItems?: 'start' | 'end' | 'center' | 'baseline' | 'stretch'\n /** Justify items */\n justifyItems?: 'start' | 'end' | 'center' | 'stretch'\n /** Justify content */\n justifyContent?: 'start' | 'end' | 'center' | 'between' | 'around' | 'evenly'\n}\n\nconst spacingClasses: Record<GridSpacing, string> = {\n 0: 'gap-0',\n 1: 'gap-1',\n 2: 'gap-2',\n 3: 'gap-3',\n 4: 'gap-4',\n 5: 'gap-5',\n 6: 'gap-6',\n 8: 'gap-8',\n 10: 'gap-10',\n 12: 'gap-12',\n 16: 'gap-16',\n}\n\nconst rowSpacingClasses: Record<GridSpacing, string> = {\n 0: 'gap-y-0',\n 1: 'gap-y-1',\n 2: 'gap-y-2',\n 3: 'gap-y-3',\n 4: 'gap-y-4',\n 5: 'gap-y-5',\n 6: 'gap-y-6',\n 8: 'gap-y-8',\n 10: 'gap-y-10',\n 12: 'gap-y-12',\n 16: 'gap-y-16',\n}\n\nconst columnSpacingClasses: Record<GridSpacing, string> = {\n 0: 'gap-x-0',\n 1: 'gap-x-1',\n 2: 'gap-x-2',\n 3: 'gap-x-3',\n 4: 'gap-x-4',\n 5: 'gap-x-5',\n 6: 'gap-x-6',\n 8: 'gap-x-8',\n 10: 'gap-x-10',\n 12: 'gap-x-12',\n 16: 'gap-x-16',\n}\n\nconst columnsClasses: Record<number, string> = {\n 1: 'grid-cols-1',\n 2: 'grid-cols-2',\n 3: 'grid-cols-3',\n 4: 'grid-cols-4',\n 5: 'grid-cols-5',\n 6: 'grid-cols-6',\n 12: 'grid-cols-12',\n}\n\nconst alignItemsClasses: Record<string, string> = {\n start: 'items-start',\n end: 'items-end',\n center: 'items-center',\n baseline: 'items-baseline',\n stretch: 'items-stretch',\n}\n\nconst justifyItemsClasses: Record<string, string> = {\n start: 'justify-items-start',\n end: 'justify-items-end',\n center: 'justify-items-center',\n stretch: 'justify-items-stretch',\n}\n\nconst justifyContentClasses: Record<string, string> = {\n start: 'justify-start',\n end: 'justify-end',\n center: 'justify-center',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n}\n\n// Column span classes for different breakpoints\nconst colSpanClasses: Record<string, Record<GridSize, string>> = {\n xs: {\n 1: 'col-span-1',\n 2: 'col-span-2',\n 3: 'col-span-3',\n 4: 'col-span-4',\n 5: 'col-span-5',\n 6: 'col-span-6',\n 7: 'col-span-7',\n 8: 'col-span-8',\n 9: 'col-span-9',\n 10: 'col-span-10',\n 11: 'col-span-11',\n 12: 'col-span-12',\n auto: 'col-auto',\n },\n sm: {\n 1: 'sm:col-span-1',\n 2: 'sm:col-span-2',\n 3: 'sm:col-span-3',\n 4: 'sm:col-span-4',\n 5: 'sm:col-span-5',\n 6: 'sm:col-span-6',\n 7: 'sm:col-span-7',\n 8: 'sm:col-span-8',\n 9: 'sm:col-span-9',\n 10: 'sm:col-span-10',\n 11: 'sm:col-span-11',\n 12: 'sm:col-span-12',\n auto: 'sm:col-auto',\n },\n md: {\n 1: 'md:col-span-1',\n 2: 'md:col-span-2',\n 3: 'md:col-span-3',\n 4: 'md:col-span-4',\n 5: 'md:col-span-5',\n 6: 'md:col-span-6',\n 7: 'md:col-span-7',\n 8: 'md:col-span-8',\n 9: 'md:col-span-9',\n 10: 'md:col-span-10',\n 11: 'md:col-span-11',\n 12: 'md:col-span-12',\n auto: 'md:col-auto',\n },\n lg: {\n 1: 'lg:col-span-1',\n 2: 'lg:col-span-2',\n 3: 'lg:col-span-3',\n 4: 'lg:col-span-4',\n 5: 'lg:col-span-5',\n 6: 'lg:col-span-6',\n 7: 'lg:col-span-7',\n 8: 'lg:col-span-8',\n 9: 'lg:col-span-9',\n 10: 'lg:col-span-10',\n 11: 'lg:col-span-11',\n 12: 'lg:col-span-12',\n auto: 'lg:col-auto',\n },\n xl: {\n 1: 'xl:col-span-1',\n 2: 'xl:col-span-2',\n 3: 'xl:col-span-3',\n 4: 'xl:col-span-4',\n 5: 'xl:col-span-5',\n 6: 'xl:col-span-6',\n 7: 'xl:col-span-7',\n 8: 'xl:col-span-8',\n 9: 'xl:col-span-9',\n 10: 'xl:col-span-10',\n 11: 'xl:col-span-11',\n 12: 'xl:col-span-12',\n auto: 'xl:col-auto',\n },\n xxl: {\n 1: '2xl:col-span-1',\n 2: '2xl:col-span-2',\n 3: '2xl:col-span-3',\n 4: '2xl:col-span-4',\n 5: '2xl:col-span-5',\n 6: '2xl:col-span-6',\n 7: '2xl:col-span-7',\n 8: '2xl:col-span-8',\n 9: '2xl:col-span-9',\n 10: '2xl:col-span-10',\n 11: '2xl:col-span-11',\n 12: '2xl:col-span-12',\n auto: '2xl:col-auto',\n },\n}\n\nconst Grid = React.forwardRef<HTMLDivElement, GridProps>(\n (\n {\n className,\n container,\n item,\n xs,\n sm,\n md,\n lg,\n xl,\n xxl,\n spacing,\n rowSpacing,\n columnSpacing,\n columns = 12,\n alignItems,\n justifyItems,\n justifyContent,\n children,\n ...props\n },\n ref\n ) => {\n const classes = cn(\n // Container styles\n container && 'grid',\n container && columnsClasses[columns],\n container && spacing !== undefined && spacingClasses[spacing],\n container && rowSpacing !== undefined && rowSpacingClasses[rowSpacing],\n container && columnSpacing !== undefined && columnSpacingClasses[columnSpacing],\n container && alignItems && alignItemsClasses[alignItems],\n container && justifyItems && justifyItemsClasses[justifyItems],\n container && justifyContent && justifyContentClasses[justifyContent],\n // Item styles (column spans)\n item && xs && colSpanClasses.xs[xs],\n item && sm && colSpanClasses.sm[sm],\n item && md && colSpanClasses.md[md],\n item && lg && colSpanClasses.lg[lg],\n item && xl && colSpanClasses.xl[xl],\n item && xxl && colSpanClasses.xxl[xxl],\n className\n )\n\n return (\n <div ref={ref} className={classes} {...props}>\n {children}\n </div>\n )\n }\n)\nGrid.displayName = 'Grid'\n\nexport { Grid }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\ntype TypographyVariant =\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'subtitle1'\n | 'subtitle2'\n | 'body1'\n | 'body2'\n | 'caption'\n | 'overline'\n | 'inherit'\n\ntype TypographyColor =\n | 'inherit'\n | 'primary'\n | 'secondary'\n | 'success'\n | 'warning'\n | 'error'\n | 'info'\n | 'muted'\n | 'white'\n | 'dark'\n\ntype FontWeight = 'light' | 'regular' | 'medium' | 'semibold' | 'bold'\n\nexport interface TypographyProps extends React.HTMLAttributes<HTMLElement> {\n /** Typography variant */\n variant?: TypographyVariant\n /** Text color */\n color?: TypographyColor\n /** Font weight override */\n fontWeight?: FontWeight\n /** Text transform */\n textTransform?: 'none' | 'uppercase' | 'lowercase' | 'capitalize'\n /** Text alignment */\n align?: 'left' | 'center' | 'right' | 'justify'\n /** Vertical alignment */\n verticalAlign?: 'top' | 'middle' | 'bottom' | 'baseline'\n /** Enable text gradient effect */\n textGradient?: boolean\n /** Gradient color (when textGradient is true) */\n gradientColor?: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error' | 'dark'\n /** Opacity */\n opacity?: number\n /** Render as a different element */\n as?: React.ElementType\n /** Disable bottom margin */\n gutterBottom?: boolean\n /** Prevent text wrap */\n noWrap?: boolean\n /** Paragraph mode (adds bottom margin) */\n paragraph?: boolean\n}\n\nconst variantMapping: Record<TypographyVariant, React.ElementType> = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n subtitle1: 'h6',\n subtitle2: 'h6',\n body1: 'p',\n body2: 'p',\n caption: 'span',\n overline: 'span',\n inherit: 'span',\n}\n\nconst variantClasses: Record<TypographyVariant, string> = {\n h1: 'text-4xl font-bold leading-tight tracking-tight',\n h2: 'text-3xl font-bold leading-tight tracking-tight',\n h3: 'text-2xl font-semibold leading-snug',\n h4: 'text-xl font-semibold leading-snug',\n h5: 'text-lg font-medium leading-normal',\n h6: 'text-base font-medium leading-normal',\n subtitle1: 'text-base font-normal leading-relaxed',\n subtitle2: 'text-sm font-medium leading-relaxed',\n body1: 'text-base font-normal leading-relaxed',\n body2: 'text-sm font-normal leading-relaxed',\n caption: 'text-xs font-normal leading-normal',\n overline: 'text-xs font-medium uppercase tracking-widest leading-relaxed',\n inherit: '',\n}\n\nconst colorClasses: Record<TypographyColor, string> = {\n inherit: '',\n primary: 'text-accent',\n secondary: 'text-muted-foreground',\n success: 'text-green-600 dark:text-green-400',\n warning: 'text-orange-600 dark:text-orange-400',\n error: 'text-destructive',\n info: 'text-blue-600 dark:text-blue-400',\n muted: 'text-muted-foreground',\n white: 'text-white',\n dark: 'text-foreground',\n}\n\nconst fontWeightClasses: Record<FontWeight, string> = {\n light: 'font-light',\n regular: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold',\n}\n\nconst textTransformClasses: Record<string, string> = {\n none: 'normal-case',\n uppercase: 'uppercase',\n lowercase: 'lowercase',\n capitalize: 'capitalize',\n}\n\nconst alignClasses: Record<string, string> = {\n left: 'text-left',\n center: 'text-center',\n right: 'text-right',\n justify: 'text-justify',\n}\n\nconst verticalAlignClasses: Record<string, string> = {\n top: 'align-top',\n middle: 'align-middle',\n bottom: 'align-bottom',\n baseline: 'align-baseline',\n}\n\nconst gradientClasses: Record<string, string> = {\n primary: 'from-purple-5 to-purple-8',\n secondary: 'from-slate-5 to-slate-8',\n info: 'from-blue-4 to-blue-7',\n success: 'from-green-4 to-green-7',\n warning: 'from-orange-4 to-orange-7',\n error: 'from-red-4 to-red-7',\n dark: 'from-slate-7 to-slate-10',\n}\n\nconst Typography = React.forwardRef<HTMLElement, TypographyProps>(\n (\n {\n className,\n variant = 'body1',\n color = 'inherit',\n fontWeight,\n textTransform,\n align,\n verticalAlign,\n textGradient = false,\n gradientColor = 'primary',\n opacity,\n as,\n gutterBottom = false,\n noWrap = false,\n paragraph = false,\n style,\n ...props\n },\n ref\n ) => {\n const Component = as || variantMapping[variant]\n\n const classes = cn(\n variantClasses[variant],\n color !== 'inherit' && !textGradient && colorClasses[color],\n fontWeight && fontWeightClasses[fontWeight],\n textTransform && textTransformClasses[textTransform],\n align && alignClasses[align],\n verticalAlign && verticalAlignClasses[verticalAlign],\n gutterBottom && 'mb-2',\n noWrap && 'truncate',\n paragraph && 'mb-4',\n // Text gradient styles\n textGradient && [\n 'bg-gradient-to-r bg-clip-text text-transparent',\n gradientClasses[gradientColor],\n ],\n className\n )\n\n const combinedStyle = opacity !== undefined ? { ...style, opacity } : style\n\n return (\n <Component\n ref={ref}\n className={classes}\n style={combinedStyle}\n {...props}\n />\n )\n }\n)\nTypography.displayName = 'Typography'\n\n// Convenience components\nconst H1 = React.forwardRef<HTMLHeadingElement, Omit<TypographyProps, 'variant'>>(\n (props, ref) => <Typography ref={ref} variant=\"h1\" {...props} />\n)\nH1.displayName = 'H1'\n\nconst H2 = React.forwardRef<HTMLHeadingElement, Omit<TypographyProps, 'variant'>>(\n (props, ref) => <Typography ref={ref} variant=\"h2\" {...props} />\n)\nH2.displayName = 'H2'\n\nconst H3 = React.forwardRef<HTMLHeadingElement, Omit<TypographyProps, 'variant'>>(\n (props, ref) => <Typography ref={ref} variant=\"h3\" {...props} />\n)\nH3.displayName = 'H3'\n\nconst H4 = React.forwardRef<HTMLHeadingElement, Omit<TypographyProps, 'variant'>>(\n (props, ref) => <Typography ref={ref} variant=\"h4\" {...props} />\n)\nH4.displayName = 'H4'\n\nconst H5 = React.forwardRef<HTMLHeadingElement, Omit<TypographyProps, 'variant'>>(\n (props, ref) => <Typography ref={ref} variant=\"h5\" {...props} />\n)\nH5.displayName = 'H5'\n\nconst H6 = React.forwardRef<HTMLHeadingElement, Omit<TypographyProps, 'variant'>>(\n (props, ref) => <Typography ref={ref} variant=\"h6\" {...props} />\n)\nH6.displayName = 'H6'\n\nconst Text = React.forwardRef<HTMLParagraphElement, Omit<TypographyProps, 'variant'>>(\n (props, ref) => <Typography ref={ref} variant=\"body1\" {...props} />\n)\nText.displayName = 'Text'\n\nconst Caption = React.forwardRef<HTMLSpanElement, Omit<TypographyProps, 'variant'>>(\n (props, ref) => <Typography ref={ref} variant=\"caption\" {...props} />\n)\nCaption.displayName = 'Caption'\n\nexport { Typography, H1, H2, H3, H4, H5, H6, Text, Caption }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link'\n size?: 'default' | 'sm' | 'lg' | 'icon'\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant = 'default', size = 'default', ...props }, ref) => {\n return (\n <button\n className={cn(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:pointer-events-none disabled:opacity-50',\n {\n 'bg-accent text-accent-foreground hover:bg-accent-hover':\n variant === 'default',\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90':\n variant === 'destructive',\n 'border border-input bg-background hover:bg-muted hover:text-foreground':\n variant === 'outline',\n 'bg-muted text-foreground hover:bg-muted/80':\n variant === 'secondary',\n 'hover:bg-muted hover:text-foreground':\n variant === 'ghost',\n 'text-accent underline-offset-4 hover:underline':\n variant === 'link',\n },\n {\n 'h-10 px-4 py-2': size === 'default',\n 'h-9 rounded-md px-3': size === 'sm',\n 'h-11 rounded-md px-8': size === 'lg',\n 'h-10 w-10': size === 'icon',\n },\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nButton.displayName = 'Button'\n\nexport { Button }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n /** Input size variant */\n inputSize?: 'sm' | 'md' | 'lg'\n /** Error state */\n error?: boolean\n /** Start adornment */\n startAdornment?: React.ReactNode\n /** End adornment */\n endAdornment?: React.ReactNode\n}\n\nconst sizeClasses = {\n sm: 'h-8 text-sm px-2.5',\n md: 'h-10 text-sm px-3',\n lg: 'h-12 text-base px-4',\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, inputSize = 'md', error, startAdornment, endAdornment, ...props }, ref) => {\n const hasAdornment = startAdornment || endAdornment\n\n if (hasAdornment) {\n return (\n <div\n className={cn(\n 'flex items-center w-full rounded-md border',\n 'bg-background',\n error\n ? 'border-destructive focus-within:ring-2 focus-within:ring-destructive/20'\n : 'border-input focus-within:ring-2 focus-within:ring-ring/20 focus-within:border-ring',\n 'transition-colors',\n props.disabled && 'opacity-50 cursor-not-allowed bg-muted'\n )}\n >\n {startAdornment && (\n <div className=\"flex items-center pl-3 text-muted-foreground\">\n {startAdornment}\n </div>\n )}\n <input\n type={type}\n className={cn(\n 'flex w-full bg-transparent py-2',\n 'text-foreground',\n 'placeholder:text-muted-foreground',\n 'focus:outline-none',\n 'disabled:cursor-not-allowed',\n 'file:border-0 file:bg-transparent file:text-sm file:font-medium',\n sizeClasses[inputSize],\n startAdornment && 'pl-2',\n endAdornment && 'pr-2',\n className\n )}\n ref={ref}\n {...props}\n />\n {endAdornment && (\n <div className=\"flex items-center pr-3 text-muted-foreground\">\n {endAdornment}\n </div>\n )}\n </div>\n )\n }\n\n return (\n <input\n type={type}\n className={cn(\n 'flex w-full rounded-md border',\n 'bg-background text-foreground',\n 'placeholder:text-muted-foreground',\n error\n ? 'border-destructive focus:ring-2 focus:ring-destructive/20'\n : 'border-input focus:ring-2 focus:ring-ring/20 focus:border-ring',\n 'focus:outline-none',\n 'disabled:cursor-not-allowed disabled:opacity-50 disabled:bg-muted',\n 'transition-colors',\n 'file:border-0 file:bg-transparent file:text-sm file:font-medium',\n sizeClasses[inputSize],\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = 'Input'\n\nexport { Input }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n 'flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm',\n 'ring-offset-background',\n 'placeholder:text-muted-foreground',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nTextarea.displayName = 'Textarea'\n\nexport { Textarea }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { Input, type InputProps } from './input'\nimport { Label } from './label'\n\nexport interface TextFieldProps extends Omit<InputProps, 'inputSize' | 'size'> {\n /** Label text */\n label?: React.ReactNode\n /** Helper text shown below input */\n helperText?: React.ReactNode\n /** Error message (also sets error state) */\n errorMessage?: React.ReactNode\n /** Required indicator */\n required?: boolean\n /** Size of the text field */\n size?: 'sm' | 'md' | 'lg'\n /** Full width mode */\n fullWidth?: boolean\n}\n\nconst TextField = React.forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n className,\n label,\n helperText,\n errorMessage,\n required,\n size = 'md',\n fullWidth,\n id: idProp,\n error,\n ...props\n },\n ref\n ) => {\n const generatedId = React.useId()\n const id = idProp || generatedId\n const helperId = `${id}-helper`\n const hasError = error || !!errorMessage\n\n return (\n <div className={cn('grid gap-1.5', fullWidth && 'w-full', className)}>\n {label && (\n <Label\n htmlFor={id}\n className={cn(\n 'text-sm font-medium',\n hasError && 'text-destructive'\n )}\n >\n {label}\n {required && (\n <span className=\"text-destructive ml-0.5\" aria-hidden=\"true\">\n *\n </span>\n )}\n </Label>\n )}\n <Input\n ref={ref}\n id={id}\n inputSize={size}\n error={hasError}\n aria-describedby={helperText || errorMessage ? helperId : undefined}\n aria-invalid={hasError}\n {...props}\n />\n {(helperText || errorMessage) && (\n <p\n id={helperId}\n className={cn(\n 'text-sm',\n hasError\n ? 'text-destructive'\n : 'text-muted-foreground'\n )}\n >\n {errorMessage || helperText}\n </p>\n )}\n </div>\n )\n }\n)\nTextField.displayName = 'TextField'\n\nexport { TextField }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {}\n\nconst Label = React.forwardRef<HTMLLabelElement, LabelProps>(\n ({ className, ...props }, ref) => (\n <label\n ref={ref}\n className={cn(\n 'text-sm font-medium leading-none text-foreground peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n className\n )}\n {...props}\n />\n )\n)\nLabel.displayName = 'Label'\n\nexport { Label }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {}\n\nconst Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n ({ className, ...props }, ref) => (\n <input\n type=\"checkbox\"\n ref={ref}\n className={cn(\n 'h-4 w-4 shrink-0 rounded-sm border border-accent cursor-pointer',\n 'ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'accent-accent',\n className\n )}\n {...props}\n />\n )\n)\nCheckbox.displayName = 'Checkbox'\n\nexport { Checkbox }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface SwitchProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {}\n\nconst Switch = React.forwardRef<HTMLInputElement, SwitchProps>(\n ({ className, ...props }, ref) => (\n <label className={cn('relative inline-flex items-center cursor-pointer', className)}>\n <input\n type=\"checkbox\"\n ref={ref}\n className=\"sr-only peer\"\n {...props}\n />\n <div\n className={cn(\n 'w-11 h-6 rounded-full transition-colors',\n 'bg-input peer-checked:bg-accent',\n 'peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-ring peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-background',\n 'peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n 'after:content-[\"\"] after:absolute after:top-[2px] after:left-[2px]',\n 'after:bg-background after:rounded-full after:h-5 after:w-5',\n 'after:transition-transform after:shadow-lg',\n 'peer-checked:after:translate-x-5'\n )}\n />\n </label>\n )\n)\nSwitch.displayName = 'Switch'\n\nexport { Switch }\n","import * as React from 'react'\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group'\nimport { cn } from '../utils/cn'\n\n// RadioGroup\nexport interface RadioGroupProps\n extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root> {\n /** Orientation of the radio group */\n orientation?: 'horizontal' | 'vertical'\n /** Size of radio items */\n size?: 'sm' | 'md' | 'lg'\n}\n\nconst RadioGroupContext = React.createContext<{ size?: 'sm' | 'md' | 'lg' }>({})\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n RadioGroupProps\n>(({ className, orientation = 'vertical', size = 'md', ...props }, ref) => {\n return (\n <RadioGroupContext.Provider value={{ size }}>\n <RadioGroupPrimitive.Root\n ref={ref}\n className={cn(\n 'grid gap-2',\n orientation === 'horizontal' && 'grid-flow-col auto-cols-max gap-4',\n className\n )}\n {...props}\n />\n </RadioGroupContext.Provider>\n )\n})\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName\n\n// RadioGroupItem\nexport interface RadioGroupItemProps\n extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> {\n /** Size override for individual item */\n size?: 'sm' | 'md' | 'lg'\n}\n\nconst sizeClasses = {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n}\n\nconst indicatorSizeClasses = {\n sm: 'h-2 w-2',\n md: 'h-2.5 w-2.5',\n lg: 'h-3 w-3',\n}\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n RadioGroupItemProps\n>(({ className, size: sizeProp, ...props }, ref) => {\n const { size: contextSize } = React.useContext(RadioGroupContext)\n const size = sizeProp || contextSize || 'md'\n\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n 'aspect-square rounded-full',\n 'border-2 border-input',\n 'ring-offset-background',\n 'focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'data-[state=checked]:border-accent',\n 'transition-colors',\n sizeClasses[size],\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <div\n className={cn(\n 'rounded-full bg-accent',\n indicatorSizeClasses[size]\n )}\n />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n})\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\n\n// Radio - Convenience component with label\nexport interface RadioProps extends RadioGroupItemProps {\n /** Label for the radio */\n label?: React.ReactNode\n /** Description text */\n description?: React.ReactNode\n /** ID for accessibility */\n id?: string\n}\n\nconst Radio = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n RadioProps\n>(({ className, label, description, id: idProp, value, size, ...props }, ref) => {\n const generatedId = React.useId()\n const id = idProp || generatedId\n\n if (!label && !description) {\n return <RadioGroupItem ref={ref} value={value} size={size} {...props} />\n }\n\n return (\n <div className={cn('flex items-start gap-3', className)}>\n <RadioGroupItem ref={ref} id={id} value={value} size={size} {...props} />\n <div className=\"grid gap-1\">\n {label && (\n <label\n htmlFor={id}\n className=\"text-sm font-medium leading-none text-foreground cursor-pointer peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n >\n {label}\n </label>\n )}\n {description && (\n <p className=\"text-sm text-muted-foreground\">\n {description}\n </p>\n )}\n </div>\n </div>\n )\n})\nRadio.displayName = 'Radio'\n\nexport { RadioGroup, RadioGroupItem, Radio }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\n// Form Context\ninterface FormControlContextValue {\n id?: string\n error?: boolean\n disabled?: boolean\n required?: boolean\n}\n\nconst FormControlContext = React.createContext<FormControlContextValue>({})\n\nexport function useFormControl() {\n return React.useContext(FormControlContext)\n}\n\n// FormControl\nexport interface FormControlProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Error state */\n error?: boolean\n /** Disabled state */\n disabled?: boolean\n /** Required state */\n required?: boolean\n /** Full width mode */\n fullWidth?: boolean\n /** Margin */\n margin?: 'none' | 'dense' | 'normal'\n /** Orientation */\n orientation?: 'vertical' | 'horizontal'\n}\n\nconst marginClasses = {\n none: '',\n dense: 'my-1',\n normal: 'my-2',\n}\n\nconst FormControl = React.forwardRef<HTMLDivElement, FormControlProps>(\n (\n {\n className,\n children,\n error,\n disabled,\n required,\n fullWidth,\n margin = 'none',\n orientation = 'vertical',\n ...props\n },\n ref\n ) => {\n const id = React.useId()\n\n return (\n <FormControlContext.Provider value={{ id, error, disabled, required }}>\n <div\n ref={ref}\n className={cn(\n 'inline-flex',\n orientation === 'vertical' ? 'flex-col gap-1.5' : 'flex-row items-center gap-3',\n fullWidth && 'w-full',\n marginClasses[margin],\n disabled && 'opacity-50 cursor-not-allowed',\n className\n )}\n {...props}\n >\n {children}\n </div>\n </FormControlContext.Provider>\n )\n }\n)\nFormControl.displayName = 'FormControl'\n\n// FormLabel\nexport interface FormLabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {\n /** Error state (auto-inherited from FormControl) */\n error?: boolean\n /** Disabled state (auto-inherited from FormControl) */\n disabled?: boolean\n /** Required indicator */\n required?: boolean\n}\n\nconst FormLabel = React.forwardRef<HTMLLabelElement, FormLabelProps>(\n ({ className, children, error: errorProp, disabled: disabledProp, required: requiredProp, htmlFor, ...props }, ref) => {\n const context = useFormControl()\n const error = errorProp ?? context.error\n const disabled = disabledProp ?? context.disabled\n const required = requiredProp ?? context.required\n const id = htmlFor ?? context.id\n\n return (\n <label\n ref={ref}\n htmlFor={id}\n className={cn(\n 'text-sm font-medium leading-none',\n 'text-foreground',\n error && 'text-destructive',\n disabled && 'cursor-not-allowed opacity-70',\n className\n )}\n {...props}\n >\n {children}\n {required && (\n <span className=\"text-destructive ml-0.5\" aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n )\n }\n)\nFormLabel.displayName = 'FormLabel'\n\n// FormHelperText\nexport interface FormHelperTextProps extends React.HTMLAttributes<HTMLParagraphElement> {\n /** Error state (auto-inherited from FormControl) */\n error?: boolean\n /** Disabled state (auto-inherited from FormControl) */\n disabled?: boolean\n}\n\nconst FormHelperText = React.forwardRef<HTMLParagraphElement, FormHelperTextProps>(\n ({ className, children, error: errorProp, disabled: disabledProp, id, ...props }, ref) => {\n const context = useFormControl()\n const error = errorProp ?? context.error\n const disabled = disabledProp ?? context.disabled\n const helperId = id ?? (context.id ? `${context.id}-helper` : undefined)\n\n return (\n <p\n ref={ref}\n id={helperId}\n className={cn(\n 'text-sm',\n error\n ? 'text-destructive'\n : 'text-muted-foreground',\n disabled && 'opacity-70',\n className\n )}\n {...props}\n >\n {children}\n </p>\n )\n }\n)\nFormHelperText.displayName = 'FormHelperText'\n\n// FormGroup - for grouping checkboxes/radios\nexport interface FormGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Group orientation */\n row?: boolean\n}\n\nconst FormGroup = React.forwardRef<HTMLDivElement, FormGroupProps>(\n ({ className, row, ...props }, ref) => (\n <div\n ref={ref}\n role=\"group\"\n className={cn(\n 'flex',\n row ? 'flex-row flex-wrap gap-4' : 'flex-col gap-2',\n className\n )}\n {...props}\n />\n )\n)\nFormGroup.displayName = 'FormGroup'\n\nexport { FormControl, FormLabel, FormHelperText, FormGroup }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'rounded-lg border border-border bg-card text-card-foreground shadow-sm',\n className\n )}\n {...props}\n />\n )\n)\nCard.displayName = 'Card'\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex flex-col space-y-1.5 p-6', className)}\n {...props}\n />\n )\n)\nCardHeader.displayName = 'CardHeader'\n\nconst CardTitle = React.forwardRef<HTMLHeadingElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn('text-2xl font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n )\n)\nCardTitle.displayName = 'CardTitle'\n\nconst CardDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n )\n)\nCardDescription.displayName = 'CardDescription'\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n )\n)\nCardContent.displayName = 'CardContent'\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center p-6 pt-0', className)}\n {...props}\n />\n )\n)\nCardFooter.displayName = 'CardFooter'\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: 'default' | 'secondary' | 'destructive' | 'outline'\n}\n\nconst Badge = React.forwardRef<HTMLDivElement, BadgeProps>(\n ({ className, variant = 'default', ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn(\n 'inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold transition-colors',\n 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n {\n 'border-transparent bg-accent text-accent-foreground':\n variant === 'default',\n 'border-transparent bg-muted text-foreground':\n variant === 'secondary',\n 'border-transparent bg-destructive text-destructive-foreground':\n variant === 'destructive',\n 'border border-border text-foreground':\n variant === 'outline',\n },\n className\n )}\n {...props}\n />\n )\n }\n)\nBadge.displayName = 'Badge'\n\nexport { Badge }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: 'horizontal' | 'vertical'\n}\n\nconst Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n ({ className, orientation = 'horizontal', ...props }, ref) => (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={orientation}\n className={cn(\n 'shrink-0 bg-border',\n orientation === 'horizontal' ? 'h-[1px] w-full' : 'h-full w-[1px]',\n className\n )}\n {...props}\n />\n )\n)\nSeparator.displayName = 'Separator'\n\nexport { Separator }\n","import * as React from 'react'\nimport * as SelectPrimitive from '@radix-ui/react-select'\nimport { cn } from '../../utils/cn'\n\n// Icons\nconst ChevronDownIcon = () => (\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 >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n)\n\nconst ChevronUpIcon = () => (\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 >\n <path d=\"m18 15-6-6-6 6\" />\n </svg>\n)\n\nconst CheckIcon = () => (\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 >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n)\n\n// Root\nconst Select = SelectPrimitive.Root\n\n// Group\nconst SelectGroup = SelectPrimitive.Group\n\n// Value\nconst SelectValue = SelectPrimitive.Value\n\n// Trigger\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n 'flex h-10 w-full items-center justify-between rounded-md border px-3 py-2 text-sm',\n 'border-input bg-background text-foreground',\n 'ring-offset-background',\n 'placeholder:text-muted-foreground',\n 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n '[&>span]:line-clamp-1',\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n))\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\n// ScrollUpButton\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className\n )}\n {...props}\n >\n <ChevronUpIcon />\n </SelectPrimitive.ScrollUpButton>\n))\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\n\n// ScrollDownButton\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n 'flex cursor-default items-center justify-center py-1',\n className\n )}\n {...props}\n >\n <ChevronDownIcon />\n </SelectPrimitive.ScrollDownButton>\n))\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName\n\n// Content\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = 'popper', ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n 'relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md',\n 'border-border bg-popover text-popover-foreground',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n 'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2',\n 'data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]'\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n))\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\n// Label\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn('py-1.5 pl-8 pr-2 text-sm font-semibold', className)}\n {...props}\n />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\n// Item\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n 'relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none',\n 'focus:bg-accent focus:text-accent-foreground',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n))\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\n// Separator\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 my-1 h-px bg-muted', className)}\n {...props}\n />\n))\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\n\n// Compound component pattern\nconst SelectNamespace = Object.assign(Select, {\n Group: SelectGroup,\n Value: SelectValue,\n Trigger: SelectTrigger,\n Content: SelectContent,\n Label: SelectLabel,\n Item: SelectItem,\n Separator: SelectSeparator,\n ScrollUpButton: SelectScrollUpButton,\n ScrollDownButton: SelectScrollDownButton,\n})\n\nexport {\n SelectNamespace as Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n}\n\n// ============================================\n// Native Select (for simple use cases)\n// ============================================\n\nexport interface NativeSelectProps extends React.SelectHTMLAttributes<HTMLSelectElement> {}\n\nconst NativeSelect = React.forwardRef<HTMLSelectElement, NativeSelectProps>(\n ({ className, children, ...props }, ref) => (\n <select\n ref={ref}\n className={cn(\n 'flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm',\n 'ring-offset-background',\n 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n {...props}\n >\n {children}\n </select>\n )\n)\nNativeSelect.displayName = 'NativeSelect'\n\nexport interface NativeSelectOptionProps extends React.OptionHTMLAttributes<HTMLOptionElement> {}\n\nconst NativeSelectOption = React.forwardRef<HTMLOptionElement, NativeSelectOptionProps>(\n ({ className, ...props }, ref) => (\n <option ref={ref} className={cn('py-1.5', className)} {...props} />\n )\n)\nNativeSelectOption.displayName = 'NativeSelectOption'\n\nexport { NativeSelect, NativeSelectOption }\n","import * as React from 'react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { cn } from '../../utils/cn'\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/80',\n 'data-[state=open]:animate-fade-in data-[state=closed]:animate-fade-out',\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\ninterface DialogContentProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {\n hideCloseButton?: boolean\n}\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n DialogContentProps\n>(({ className, children, hideCloseButton = false, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 p-6 shadow-lg',\n 'bg-popover border border-border text-popover-foreground',\n 'rounded-lg',\n 'data-[state=open]:animate-zoom-in data-[state=closed]:animate-zoom-out',\n 'duration-200',\n className\n )}\n {...props}\n >\n {children}\n {!hideCloseButton && (\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"h-4 w-4\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)}\n {...props}\n />\n)\nDialogHeader.displayName = 'DialogHeader'\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n)\nDialogFooter.displayName = 'DialogFooter'\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight text-foreground', className)}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\n// Compound component pattern\nconst DialogNamespace = Object.assign(Dialog, {\n Trigger: DialogTrigger,\n Portal: DialogPortal,\n Close: DialogClose,\n Overlay: DialogOverlay,\n Content: DialogContent,\n Header: DialogHeader,\n Footer: DialogFooter,\n Title: DialogTitle,\n Description: DialogDescription,\n})\n\nexport {\n DialogNamespace as Dialog,\n DialogTrigger,\n DialogPortal,\n DialogClose,\n DialogOverlay,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nexport interface SpinnerProps extends React.HTMLAttributes<HTMLDivElement> {\n size?: 'sm' | 'default' | 'lg'\n}\n\nconst Spinner = React.forwardRef<HTMLDivElement, SpinnerProps>(\n ({ className, size = 'default', ...props }, ref) => {\n return (\n <div\n ref={ref}\n role=\"status\"\n aria-label=\"Loading\"\n className={cn(\n 'inline-block animate-spin rounded-full border-2 border-solid border-current border-r-transparent motion-reduce:animate-[spin_1.5s_linear_infinite]',\n {\n 'h-4 w-4': size === 'sm',\n 'h-6 w-6': size === 'default',\n 'h-8 w-8': size === 'lg',\n },\n 'text-accent',\n className\n )}\n {...props}\n >\n <span className=\"sr-only\">Loading...</span>\n </div>\n )\n }\n)\nSpinner.displayName = 'Spinner'\n\nexport { Spinner }\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n />\n </div>\n))\nTable.displayName = 'Table'\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n))\nTableHeader.displayName = 'TableHeader'\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n))\nTableBody.displayName = 'TableBody'\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n 'border-t bg-muted/50 font-medium [&>tr]:last:border-b-0',\n className\n )}\n {...props}\n />\n))\nTableFooter.displayName = 'TableFooter'\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b border-border transition-colors',\n 'hover:bg-muted/50',\n 'data-[state=selected]:bg-muted',\n className\n )}\n {...props}\n />\n))\nTableRow.displayName = 'TableRow'\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-12 px-4 text-left align-middle font-medium text-muted-foreground',\n '[&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n))\nTableHead.displayName = 'TableHead'\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n 'p-4 align-middle [&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n))\nTableCell.displayName = 'TableCell'\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn('mt-4 text-sm text-muted-foreground', className)}\n {...props}\n />\n))\nTableCaption.displayName = 'TableCaption'\n\n// Compound component pattern\nconst TableNamespace = Object.assign(Table, {\n Header: TableHeader,\n Body: TableBody,\n Footer: TableFooter,\n Row: TableRow,\n Head: TableHead,\n Cell: TableCell,\n Caption: TableCaption,\n})\n\nexport {\n TableNamespace as Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","import * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { Button } from './button'\n\nexport interface PaginationProps extends React.HTMLAttributes<HTMLElement> {}\n\nconst Pagination = React.forwardRef<HTMLElement, PaginationProps>(\n ({ className, ...props }, ref) => (\n <nav\n ref={ref}\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn('mx-auto flex w-full justify-center', className)}\n {...props}\n />\n )\n)\nPagination.displayName = 'Pagination'\n\nconst PaginationContent = React.forwardRef<\n HTMLUListElement,\n React.HTMLAttributes<HTMLUListElement>\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n className={cn('flex flex-row items-center gap-1', className)}\n {...props}\n />\n))\nPaginationContent.displayName = 'PaginationContent'\n\nconst PaginationItem = React.forwardRef<\n HTMLLIElement,\n React.LiHTMLAttributes<HTMLLIElement>\n>(({ className, ...props }, ref) => (\n <li ref={ref} className={cn('', className)} {...props} />\n))\nPaginationItem.displayName = 'PaginationItem'\n\nexport interface PaginationLinkProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n isActive?: boolean\n}\n\nconst PaginationLink = React.forwardRef<HTMLButtonElement, PaginationLinkProps>(\n ({ className, isActive, ...props }, ref) => (\n <Button\n ref={ref}\n variant={isActive ? 'default' : 'outline'}\n size=\"icon\"\n className={cn('h-9 w-9', className)}\n {...props}\n />\n )\n)\nPaginationLink.displayName = 'PaginationLink'\n\nconst PaginationPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => (\n <Button\n ref={ref}\n variant=\"outline\"\n size=\"default\"\n className={cn('gap-1 pl-2.5', className)}\n {...props}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"h-4 w-4\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n <span>Previous</span>\n </Button>\n))\nPaginationPrevious.displayName = 'PaginationPrevious'\n\nconst PaginationNext = React.forwardRef<\n HTMLButtonElement,\n React.ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => (\n <Button\n ref={ref}\n variant=\"outline\"\n size=\"default\"\n className={cn('gap-1 pr-2.5', className)}\n {...props}\n >\n <span>Next</span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"h-4 w-4\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n </Button>\n))\nPaginationNext.displayName = 'PaginationNext'\n\nconst PaginationEllipsis = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n aria-hidden\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"h-4 w-4\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </svg>\n <span className=\"sr-only\">More pages</span>\n </span>\n))\nPaginationEllipsis.displayName = 'PaginationEllipsis'\n\n// Compound component pattern\nconst PaginationNamespace = Object.assign(Pagination, {\n Content: PaginationContent,\n Item: PaginationItem,\n Link: PaginationLink,\n Previous: PaginationPrevious,\n Next: PaginationNext,\n Ellipsis: PaginationEllipsis,\n})\n\nexport {\n PaginationNamespace as Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n}\n","import * as React from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface ComboboxOption {\n value: string\n label: string\n disabled?: boolean\n}\n\nexport interface ComboboxProps {\n options: ComboboxOption[]\n value?: string\n defaultValue?: string\n onValueChange?: (value: string) => void\n placeholder?: string\n searchPlaceholder?: string\n emptyMessage?: string\n disabled?: boolean\n className?: string\n}\n\nconst Combobox = React.forwardRef<HTMLInputElement, ComboboxProps>(\n (\n {\n options,\n value: controlledValue,\n defaultValue,\n onValueChange,\n placeholder = 'Select option...',\n searchPlaceholder = 'Search...',\n emptyMessage = 'No results found.',\n disabled = false,\n className,\n },\n ref\n ) => {\n const [open, setOpen] = React.useState(false)\n const [search, setSearch] = React.useState('')\n const [internalValue, setInternalValue] = React.useState(defaultValue ?? '')\n const containerRef = React.useRef<HTMLDivElement>(null)\n\n const value = controlledValue !== undefined ? controlledValue : internalValue\n\n const filteredOptions = React.useMemo(() => {\n if (!search) return options\n return options.filter((option) =>\n option.label.toLowerCase().includes(search.toLowerCase())\n )\n }, [options, search])\n\n const selectedOption = options.find((option) => option.value === value)\n\n const handleSelect = (optionValue: string) => {\n if (controlledValue === undefined) {\n setInternalValue(optionValue)\n }\n onValueChange?.(optionValue)\n setOpen(false)\n setSearch('')\n }\n\n // Close on click outside\n React.useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(event.target as Node)) {\n setOpen(false)\n }\n }\n document.addEventListener('mousedown', handleClickOutside)\n return () => document.removeEventListener('mousedown', handleClickOutside)\n }, [])\n\n return (\n <div ref={containerRef} className=\"relative\">\n <button\n type=\"button\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n onClick={() => setOpen(!open)}\n className={cn(\n 'flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm',\n 'ring-offset-background',\n 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n >\n <span className={cn(!selectedOption && 'text-muted-foreground')}>\n {selectedOption?.label ?? placeholder}\n </span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={cn(\n 'ml-2 h-4 w-4 shrink-0 opacity-50 transition-transform',\n open && 'rotate-180'\n )}\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </button>\n\n {open && (\n <div className=\"absolute z-50 mt-1 w-full overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-md\">\n <div className=\"flex items-center border-b border-border px-3\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"mr-2 h-4 w-4 shrink-0 opacity-50\"\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"m21 21-4.3-4.3\" />\n </svg>\n <input\n ref={ref}\n className=\"flex h-10 w-full bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground\"\n placeholder={searchPlaceholder}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n />\n </div>\n <div className=\"max-h-[300px] overflow-y-auto p-1\">\n {filteredOptions.length === 0 ? (\n <div className=\"py-6 text-center text-sm text-muted-foreground\">\n {emptyMessage}\n </div>\n ) : (\n filteredOptions.map((option) => (\n <button\n key={option.value}\n type=\"button\"\n disabled={option.disabled}\n onClick={() => handleSelect(option.value)}\n className={cn(\n 'relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none',\n 'hover:bg-muted hover:text-foreground',\n 'focus:bg-muted focus:text-foreground',\n 'disabled:pointer-events-none disabled:opacity-50',\n option.value === value && 'bg-muted'\n )}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n {option.value === value && (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"h-4 w-4\"\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n )}\n </span>\n {option.label}\n </button>\n ))\n )}\n </div>\n </div>\n )}\n </div>\n )\n }\n)\nCombobox.displayName = 'Combobox'\n\nexport { Combobox }\n","import * as React from 'react'\nimport {\n useReactTable,\n getCoreRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n getFilteredRowModel,\n flexRender,\n type ColumnDef,\n type SortingState,\n type RowSelectionState,\n type PaginationState,\n type VisibilityState,\n type ColumnSizingState,\n} from '@tanstack/react-table'\nimport { useVirtualizer } from '@tanstack/react-virtual'\nimport { cn } from '../../utils/cn'\nimport { Checkbox } from '../checkbox'\nimport { Input } from '../input'\nimport { Button } from '../button'\nimport { Spinner } from '../spinner'\nimport {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationEllipsis,\n} from '../pagination'\n\n// MUI DataGrid-compatible column definition\nexport interface GridColDef<TData = any> {\n field: string\n headerName?: string\n width?: number\n minWidth?: number\n maxWidth?: number\n flex?: number\n sortable?: boolean\n filterable?: boolean\n editable?: boolean\n hide?: boolean\n hideable?: boolean // Can this column be hidden by user?\n align?: 'left' | 'center' | 'right'\n headerAlign?: 'left' | 'center' | 'right'\n renderCell?: (params: GridRenderCellParams<TData>) => React.ReactNode\n renderHeader?: (params: GridRenderHeaderParams) => React.ReactNode\n valueGetter?: (params: GridValueGetterParams<TData>) => any\n valueFormatter?: (params: GridValueFormatterParams) => string\n type?: 'string' | 'number' | 'date' | 'dateTime' | 'boolean'\n // Cell content handling\n wrapText?: boolean // If true, text wraps instead of truncating (default: false)\n cellClassName?: string // Custom className for cell content\n // For export exclusion\n export?: boolean\n hideExport?: boolean\n disableExport?: boolean\n}\n\nexport interface GridRenderCellParams<TData = any> {\n row: TData\n value: any\n field: string\n rowIndex: number\n}\n\nexport interface GridRenderHeaderParams {\n field: string\n colDef: GridColDef\n}\n\nexport interface GridValueGetterParams<TData = any> {\n row: TData\n field: string\n}\n\nexport interface GridValueFormatterParams {\n value: any\n}\n\nexport interface PaginationModel {\n page: number\n pageSize: number\n}\n\nexport interface GridRowSelectionModel {\n [key: string]: boolean\n}\n\nexport interface ColumnVisibilityModel {\n [key: string]: boolean\n}\n\n// Density affects row height\ntype GridDensity = 'compact' | 'standard' | 'comfortable'\n\nexport interface DataGridProps<TData = any> {\n // Required\n rows: TData[]\n columns: GridColDef<TData>[]\n\n // Row identification\n getRowId?: (row: TData) => string | number\n\n // Loading state\n loading?: boolean\n\n // Title and toolbar\n title?: string\n toolBar?: boolean\n\n // Selection\n checkboxSelection?: boolean\n rowSelectionModel?: GridRowSelectionModel\n onRowSelectionModelChange?: (model: GridRowSelectionModel) => void\n disableRowSelectionOnClick?: boolean\n\n // Column visibility\n columnVisibilityModel?: ColumnVisibilityModel\n onColumnVisibilityModelChange?: (model: ColumnVisibilityModel) => void\n\n // Pagination\n paginationMode?: 'client' | 'server'\n paginationModel?: PaginationModel\n onPaginationModelChange?: (model: PaginationModel) => void\n rowCount?: number\n pageSizeOptions?: number[]\n\n // Sorting\n sortingMode?: 'client' | 'server'\n\n // Filtering\n filterMode?: 'client' | 'server'\n\n // Appearance\n height?: number | string\n minHeight?: number | string\n maxHeight?: number | string\n density?: GridDensity\n showCellVerticalBorder?: boolean\n showColumnVerticalBorder?: boolean\n hideFooter?: boolean\n hideFooterPagination?: boolean\n\n // Virtualization\n virtualized?: boolean // Enable row virtualization for large datasets\n overscan?: number // Number of rows to render outside visible area (default: 5)\n\n // Cell content handling\n wrapText?: boolean // If true, text wraps instead of truncating (global default, can be overridden per column)\n\n // Row styling\n getRowClassName?: (params: { row: TData; rowIndex: number }) => string\n\n // Custom slot props (for toolbar customization)\n slotProps?: {\n toolbar?: {\n getExportedColumns?: (columns: GridColDef[]) => GridColDef[]\n showQuickFilter?: boolean\n showColumnSelector?: boolean\n showExport?: boolean\n customButtons?: React.ReactNode\n moreOptions?: {\n label: string\n onClick: () => void\n icon?: React.ReactNode\n }[]\n }\n }\n\n // Export configuration\n onExport?: (data: TData[], columns: GridColDef<TData>[]) => void\n exportFileName?: string\n\n // Column resizing\n resizableColumns?: boolean\n onColumnResize?: (columnId: string, width: number) => void\n\n // Custom styles\n className?: string\n sx?: React.CSSProperties\n\n // Actions (edit/delete) - simplified for V0\n actions?: {\n edit?: boolean\n del?: boolean\n }\n\n // Sensitive info - affects export\n sensitiveInfo?: boolean\n\n // Other MUI compatibility props\n autoHeight?: boolean\n disableColumnMenu?: boolean\n disableColumnFilter?: boolean\n disableColumnSelector?: boolean\n disableDensitySelector?: boolean\n}\n\n// Convert MUI column def to TanStack column def\nfunction convertColumns<TData>(\n columns: GridColDef<TData>[],\n checkboxSelection?: boolean\n): ColumnDef<TData>[] {\n const tanstackColumns: ColumnDef<TData>[] = []\n\n // Add checkbox column if enabled\n if (checkboxSelection) {\n tanstackColumns.push({\n id: '__select__',\n header: ({ table }) => (\n <div className=\"flex items-center justify-center\">\n <Checkbox\n checked={table.getIsAllPageRowsSelected()}\n onChange={(e) => table.toggleAllPageRowsSelected(e.target.checked)}\n aria-label=\"Select all\"\n />\n </div>\n ),\n cell: ({ row }) => (\n <div className=\"flex items-center justify-center\">\n <Checkbox\n checked={row.getIsSelected()}\n onChange={(e) => row.toggleSelected(e.target.checked)}\n aria-label=\"Select row\"\n />\n </div>\n ),\n size: 50,\n enableSorting: false,\n enableColumnFilter: false,\n enableHiding: false,\n })\n }\n\n // Convert each MUI column\n columns.forEach((col) => {\n // Skip if column is initially hidden via hide prop\n if (col.hide) return\n\n const tanstackCol: ColumnDef<TData> = {\n id: col.field,\n accessorFn: (row) => {\n if (col.valueGetter) {\n return col.valueGetter({ row, field: col.field })\n }\n return (row as any)[col.field]\n },\n header: col.renderHeader\n ? () => col.renderHeader!({ field: col.field, colDef: col })\n : col.headerName || col.field,\n cell: ({ row, getValue }) => {\n const value = getValue()\n if (col.renderCell) {\n return col.renderCell({\n row: row.original,\n value,\n field: col.field,\n rowIndex: row.index,\n })\n }\n if (col.valueFormatter) {\n return col.valueFormatter({ value })\n }\n return value\n },\n enableSorting: col.sortable !== false,\n enableHiding: col.hideable !== false,\n size: col.width,\n minSize: col.minWidth,\n maxSize: col.maxWidth,\n meta: {\n align: col.align,\n headerAlign: col.headerAlign,\n flex: col.flex,\n headerName: col.headerName || col.field,\n wrapText: col.wrapText,\n cellClassName: col.cellClassName,\n },\n }\n\n tanstackColumns.push(tanstackCol)\n })\n\n return tanstackColumns\n}\n\n// Density to height mapping\nconst densityRowHeights: Record<GridDensity, number> = {\n compact: 36,\n standard: 52,\n comfortable: 68,\n}\n\n// Calculate initial column widths based on flex, width, minWidth, maxWidth (like MUI DataGrid)\n// This only calculates initial widths - resized widths are handled by TanStack Table's columnSizing state\ninterface CalculatedColumnWidth {\n id: string\n width: number\n minWidth: number\n maxWidth: number\n flex?: number\n}\n\nfunction calculateInitialColumnWidths(\n columns: GridColDef[],\n containerWidth: number,\n checkboxSelection: boolean,\n columnSizing: ColumnSizingState // Already resized columns\n): Map<string, CalculatedColumnWidth> {\n const widthMap = new Map<string, CalculatedColumnWidth>()\n\n if (containerWidth <= 0) return widthMap\n\n let remainingWidth = containerWidth\n\n // Reserve space for checkbox column\n if (checkboxSelection) {\n widthMap.set('__select__', { id: '__select__', width: 50, minWidth: 50, maxWidth: 50 })\n remainingWidth -= 50\n }\n\n // First pass: handle fixed width columns and manually resized columns\n const flexColumns: { col: GridColDef; flex: number; minWidth: number; maxWidth: number }[] = []\n let totalFlex = 0\n\n columns.forEach((col) => {\n if (col.hide) return\n\n const minWidth = col.minWidth || 50\n const maxWidth = col.maxWidth || 9999\n\n // If column was manually resized, use that width (it becomes fixed)\n if (columnSizing[col.field]) {\n const resizedWidth = columnSizing[col.field]\n widthMap.set(col.field, {\n id: col.field,\n width: resizedWidth,\n minWidth,\n maxWidth,\n })\n remainingWidth -= resizedWidth\n return\n }\n\n if (col.flex && col.flex > 0) {\n // Flex column - calculate later\n flexColumns.push({ col, flex: col.flex, minWidth, maxWidth })\n totalFlex += col.flex\n remainingWidth -= minWidth // Reserve minimum width\n } else {\n // Fixed width column\n const width = col.width || 100\n const finalWidth = Math.max(minWidth, Math.min(width, maxWidth))\n widthMap.set(col.field, {\n id: col.field,\n width: finalWidth,\n minWidth,\n maxWidth,\n })\n remainingWidth -= finalWidth\n }\n })\n\n // Second pass: distribute remaining width to flex columns (only non-resized ones)\n if (flexColumns.length > 0 && totalFlex > 0) {\n const extraWidth = Math.max(0, remainingWidth)\n\n flexColumns.forEach(({ col, flex, minWidth, maxWidth }) => {\n const proportionalExtra = (flex / totalFlex) * extraWidth\n const calculatedWidth = minWidth + proportionalExtra\n const finalWidth = Math.max(minWidth, Math.min(calculatedWidth, maxWidth))\n widthMap.set(col.field, {\n id: col.field,\n width: finalWidth,\n minWidth,\n maxWidth,\n flex,\n })\n })\n }\n\n return widthMap\n}\n\n// Memoized hook for column widths\nfunction useColumnWidths(\n columns: GridColDef[],\n containerWidth: number,\n checkboxSelection: boolean,\n columnSizing: ColumnSizingState\n): Map<string, CalculatedColumnWidth> {\n return React.useMemo(\n () => calculateInitialColumnWidths(columns, containerWidth, checkboxSelection, columnSizing),\n [columns, containerWidth, checkboxSelection, columnSizing]\n )\n}\n\n// Column resize handle component - uses TanStack Table's resize handler\nconst ColumnResizeHandle = ({\n header,\n isResizing,\n}: {\n header: any\n isResizing: boolean\n}) => {\n return (\n <div\n className={cn(\n // Wider hit area (8px) for easier clicking, but visually narrow\n 'absolute right-0 top-0 h-full w-2 cursor-col-resize select-none touch-none z-10',\n // Visual indicator using pseudo-element\n 'after:absolute after:right-0 after:top-0 after:h-full after:w-[2px]',\n 'hover:after:bg-primary-500',\n isResizing && 'after:bg-primary-500'\n )}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n onClick={(e) => e.stopPropagation()}\n />\n )\n}\n\n// Sort icon component\nconst SortIcon = ({ direction }: { direction: 'asc' | 'desc' | false }) => {\n if (!direction) {\n return (\n <svg className=\"ml-1 h-4 w-4 text-muted-foreground/50\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M7 15l5 5 5-5M7 9l5-5 5 5\" />\n </svg>\n )\n }\n return (\n <svg className=\"ml-1 h-4 w-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n {direction === 'asc' ? <path d=\"M7 14l5-5 5 5\" /> : <path d=\"M7 10l5 5 5-5\" />}\n </svg>\n )\n}\n\n// Column visibility dropdown\nconst ColumnVisibilityDropdown = ({\n table,\n}: {\n table: any\n}) => {\n const [open, setOpen] = React.useState(false)\n const dropdownRef = React.useRef<HTMLDivElement>(null)\n\n // Close dropdown when clicking outside\n React.useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setOpen(false)\n }\n }\n document.addEventListener('mousedown', handleClickOutside)\n return () => document.removeEventListener('mousedown', handleClickOutside)\n }, [])\n\n const allColumns = table.getAllLeafColumns().filter((col: any) => col.id !== '__select__')\n\n return (\n <div className=\"relative\" ref={dropdownRef}>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setOpen(!open)}\n className=\"h-9 gap-2\"\n >\n <svg className=\"h-4 w-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M12 3v18M3 12h18\" />\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M3 9h18M3 15h18M9 3v18M15 3v18\" />\n </svg>\n Columns\n </Button>\n\n {open && (\n <div className=\"absolute right-0 top-full mt-1 z-50 min-w-[180px] rounded-md border border-border bg-popover p-2 shadow-md\">\n <div className=\"text-sm font-medium text-foreground mb-2 px-2\">Show/Hide Columns</div>\n <div className=\"max-h-[300px] overflow-auto\">\n {allColumns.map((column: any) => {\n const meta = column.columnDef.meta as any\n const headerName = meta?.headerName || column.id\n\n return (\n <label\n key={column.id}\n className=\"flex items-center gap-2 px-2 py-1.5 hover:bg-muted rounded cursor-pointer\"\n >\n <Checkbox\n checked={column.getIsVisible()}\n onChange={(e) => column.toggleVisibility(e.target.checked)}\n />\n <span className=\"text-sm\">{headerName}</span>\n </label>\n )\n })}\n </div>\n <div className=\"border-t border-border mt-2 pt-2 flex gap-2 px-2\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"flex-1 h-7 text-xs\"\n onClick={() => table.toggleAllColumnsVisible(true)}\n >\n Show All\n </Button>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"flex-1 h-7 text-xs\"\n onClick={() => table.toggleAllColumnsVisible(false)}\n >\n Hide All\n </Button>\n </div>\n </div>\n )}\n </div>\n )\n}\n\n// Pagination component using existing Pagination primitives\nconst DataGridPagination = ({\n table,\n pageSizeOptions = [10, 25, 50, 100],\n rowCount,\n paginationMode,\n}: {\n table: any\n pageSizeOptions?: number[]\n rowCount?: number\n paginationMode?: 'client' | 'server'\n}) => {\n const pageCount = paginationMode === 'server' && rowCount\n ? Math.ceil(rowCount / table.getState().pagination.pageSize)\n : table.getPageCount()\n\n const currentPage = table.getState().pagination.pageIndex\n const totalRows = paginationMode === 'server' && rowCount ? rowCount : table.getFilteredRowModel().rows.length\n const pageSize = table.getState().pagination.pageSize\n\n // Generate page numbers to display\n const getPageNumbers = () => {\n const pages: (number | 'ellipsis')[] = []\n const maxVisible = 5\n\n if (pageCount <= maxVisible) {\n for (let i = 0; i < pageCount; i++) pages.push(i)\n } else {\n // Always show first page\n pages.push(0)\n\n if (currentPage > 2) {\n pages.push('ellipsis')\n }\n\n // Show pages around current\n const start = Math.max(1, currentPage - 1)\n const end = Math.min(pageCount - 2, currentPage + 1)\n\n for (let i = start; i <= end; i++) {\n if (!pages.includes(i)) pages.push(i)\n }\n\n if (currentPage < pageCount - 3) {\n pages.push('ellipsis')\n }\n\n // Always show last page\n if (!pages.includes(pageCount - 1)) {\n pages.push(pageCount - 1)\n }\n }\n\n return pages\n }\n\n const startRow = currentPage * pageSize + 1\n const endRow = Math.min((currentPage + 1) * pageSize, totalRows)\n\n return (\n <div className=\"flex items-center justify-end gap-4 px-4 py-3 border-t border-border bg-background\">\n {/* Rows per page */}\n <div className=\"flex items-center gap-2 text-sm text-muted-foreground whitespace-nowrap\">\n <span>Rows per page:</span>\n <select\n value={pageSize}\n onChange={(e) => table.setPageSize(Number(e.target.value))}\n className=\"h-8 rounded-md border border-border bg-background px-2 text-sm text-foreground focus:outline-none focus:ring-2 focus:ring-ring\"\n >\n {pageSizeOptions.map((size) => (\n <option key={size} value={size}>\n {size}\n </option>\n ))}\n </select>\n </div>\n\n {/* Row count info */}\n <span className=\"text-sm text-muted-foreground whitespace-nowrap\">\n {startRow}-{endRow} of {totalRows}\n </span>\n\n {/* Pagination controls using existing components */}\n <Pagination className=\"mx-0 w-auto\">\n <PaginationContent>\n {/* First page */}\n <PaginationItem>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-8 w-8\"\n onClick={() => table.setPageIndex(0)}\n disabled={!table.getCanPreviousPage()}\n >\n <svg className=\"h-4 w-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M11 17l-5-5 5-5M18 17l-5-5 5-5\" />\n </svg>\n </Button>\n </PaginationItem>\n\n {/* Previous page */}\n <PaginationItem>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-8 w-8\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n >\n <svg className=\"h-4 w-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M15 18l-6-6 6-6\" />\n </svg>\n </Button>\n </PaginationItem>\n\n {/* Page numbers */}\n {getPageNumbers().map((page, idx) =>\n page === 'ellipsis' ? (\n <PaginationItem key={`ellipsis-${idx}`}>\n <PaginationEllipsis />\n </PaginationItem>\n ) : (\n <PaginationItem key={page}>\n <PaginationLink\n isActive={page === currentPage}\n onClick={() => table.setPageIndex(page)}\n >\n {page + 1}\n </PaginationLink>\n </PaginationItem>\n )\n )}\n\n {/* Next page */}\n <PaginationItem>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-8 w-8\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n >\n <svg className=\"h-4 w-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M9 18l6-6-6-6\" />\n </svg>\n </Button>\n </PaginationItem>\n\n {/* Last page */}\n <PaginationItem>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-8 w-8\"\n onClick={() => table.setPageIndex(pageCount - 1)}\n disabled={!table.getCanNextPage()}\n >\n <svg className=\"h-4 w-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M13 17l5-5-5-5M6 17l5-5-5-5\" />\n </svg>\n </Button>\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n </div>\n )\n}\n\n// Export dropdown component\nconst ExportDropdown = ({\n onExport,\n rows,\n columns,\n fileName = 'data-export',\n}: {\n onExport?: (data: any[], columns: GridColDef[]) => void\n rows: any[]\n columns: GridColDef[]\n fileName?: string\n}) => {\n const [open, setOpen] = React.useState(false)\n const dropdownRef = React.useRef<HTMLDivElement>(null)\n\n // Close dropdown when clicking outside\n React.useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setOpen(false)\n }\n }\n document.addEventListener('mousedown', handleClickOutside)\n return () => document.removeEventListener('mousedown', handleClickOutside)\n }, [])\n\n const exportToCSV = () => {\n const visibleColumns = columns.filter(col => !col.hide)\n const headers = visibleColumns.map(col => col.headerName || col.field)\n const csvRows = [headers.join(',')]\n\n rows.forEach(row => {\n const values = visibleColumns.map(col => {\n const value = row[col.field]\n // Escape quotes and wrap in quotes if contains comma\n const stringValue = String(value ?? '')\n if (stringValue.includes(',') || stringValue.includes('\"')) {\n return `\"${stringValue.replace(/\"/g, '\"\"')}\"`\n }\n return stringValue\n })\n csvRows.push(values.join(','))\n })\n\n const csvContent = csvRows.join('\\n')\n const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' })\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.download = `${fileName}.csv`\n link.click()\n URL.revokeObjectURL(link.href)\n setOpen(false)\n }\n\n const exportToJSON = () => {\n const visibleColumns = columns.filter(col => !col.hide)\n const data = rows.map(row => {\n const obj: Record<string, any> = {}\n visibleColumns.forEach(col => {\n obj[col.field] = row[col.field]\n })\n return obj\n })\n\n const jsonContent = JSON.stringify(data, null, 2)\n const blob = new Blob([jsonContent], { type: 'application/json' })\n const link = document.createElement('a')\n link.href = URL.createObjectURL(blob)\n link.download = `${fileName}.json`\n link.click()\n URL.revokeObjectURL(link.href)\n setOpen(false)\n }\n\n const handleCustomExport = () => {\n if (onExport) {\n onExport(rows, columns)\n }\n setOpen(false)\n }\n\n return (\n <div className=\"relative\" ref={dropdownRef}>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setOpen(!open)}\n className=\"h-9 gap-2\"\n >\n <svg className=\"h-4 w-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"7 10 12 15 17 10\" />\n <line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\" />\n </svg>\n Export\n </Button>\n\n {open && (\n <div className=\"absolute right-0 top-full mt-1 z-50 min-w-[140px] rounded-md border border-border bg-popover p-1 shadow-md\">\n <button\n className=\"flex w-full items-center gap-2 rounded px-3 py-2 text-sm hover:bg-muted\"\n onClick={exportToCSV}\n >\n <svg className=\"h-4 w-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n <polyline points=\"14 2 14 8 20 8\" />\n </svg>\n Export CSV\n </button>\n <button\n className=\"flex w-full items-center gap-2 rounded px-3 py-2 text-sm hover:bg-muted\"\n onClick={exportToJSON}\n >\n <svg className=\"h-4 w-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\" />\n <polyline points=\"14 2 14 8 20 8\" />\n </svg>\n Export JSON\n </button>\n {onExport && (\n <button\n className=\"flex w-full items-center gap-2 rounded px-3 py-2 text-sm hover:bg-muted\"\n onClick={handleCustomExport}\n >\n <svg className=\"h-4 w-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n <path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\" />\n </svg>\n Custom Export\n </button>\n )}\n </div>\n )}\n </div>\n )\n}\n\n// More options dropdown component\nconst MoreOptionsDropdown = ({\n options,\n}: {\n options: { label: string; onClick: () => void; icon?: React.ReactNode }[]\n}) => {\n const [open, setOpen] = React.useState(false)\n const dropdownRef = React.useRef<HTMLDivElement>(null)\n\n React.useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setOpen(false)\n }\n }\n document.addEventListener('mousedown', handleClickOutside)\n return () => document.removeEventListener('mousedown', handleClickOutside)\n }, [])\n\n if (options.length === 0) return null\n\n return (\n <div className=\"relative\" ref={dropdownRef}>\n <Button\n variant=\"outline\"\n size=\"icon\"\n onClick={() => setOpen(!open)}\n className=\"h-9 w-9\"\n >\n <svg className=\"h-4 w-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"12\" cy=\"5\" r=\"1\" />\n <circle cx=\"12\" cy=\"19\" r=\"1\" />\n </svg>\n </Button>\n\n {open && (\n <div className=\"absolute right-0 top-full mt-1 z-50 min-w-[160px] rounded-md border border-border bg-popover p-1 shadow-md\">\n {options.map((option, index) => (\n <button\n key={index}\n className=\"flex w-full items-center gap-2 rounded px-3 py-2 text-sm hover:bg-muted\"\n onClick={() => {\n option.onClick()\n setOpen(false)\n }}\n >\n {option.icon}\n {option.label}\n </button>\n ))}\n </div>\n )}\n </div>\n )\n}\n\n// Toolbar component\nconst DataGridToolbar = ({\n title,\n globalFilter,\n setGlobalFilter,\n showQuickFilter = true,\n showColumnSelector = true,\n showExport = true,\n table,\n rows,\n columns,\n onExport,\n exportFileName,\n customButtons,\n moreOptions = [],\n}: {\n title?: string\n globalFilter: string\n setGlobalFilter: (value: string) => void\n showQuickFilter?: boolean\n showColumnSelector?: boolean\n showExport?: boolean\n table: any\n rows: any[]\n columns: GridColDef[]\n onExport?: (data: any[], columns: GridColDef[]) => void\n exportFileName?: string\n customButtons?: React.ReactNode\n moreOptions?: { label: string; onClick: () => void; icon?: React.ReactNode }[]\n}) => {\n return (\n <div className=\"flex items-center justify-between px-4 py-3 border-b border-border bg-background\">\n {title && (\n <h3 className=\"text-lg font-semibold text-foreground\">{title}</h3>\n )}\n <div className=\"flex items-center gap-2 ml-auto\">\n {showQuickFilter && (\n <Input\n placeholder=\"Search...\"\n value={globalFilter ?? ''}\n onChange={(e) => setGlobalFilter(e.target.value)}\n className=\"h-9 w-64\"\n />\n )}\n {showColumnSelector && (\n <ColumnVisibilityDropdown table={table} />\n )}\n {showExport && (\n <ExportDropdown\n onExport={onExport}\n rows={rows}\n columns={columns}\n fileName={exportFileName}\n />\n )}\n {customButtons}\n {moreOptions.length > 0 && (\n <MoreOptionsDropdown options={moreOptions} />\n )}\n </div>\n </div>\n )\n}\n\n// Row renderer component for both virtualized and non-virtualized modes\ninterface RowRendererProps {\n row: any\n rowIndex: number\n rowHeight: number\n showCellVerticalBorder: boolean\n checkboxSelection: boolean\n disableRowSelectionOnClick: boolean\n getRowClassName?: (params: { row: any; rowIndex: number }) => string\n style?: React.CSSProperties\n globalWrapText?: boolean\n columnWidths: Map<string, CalculatedColumnWidth>\n}\n\nconst RowRenderer = ({\n row,\n rowIndex,\n rowHeight,\n showCellVerticalBorder,\n checkboxSelection,\n disableRowSelectionOnClick,\n getRowClassName,\n style,\n globalWrapText = false,\n columnWidths,\n}: RowRendererProps) => {\n const customClassName = getRowClassName?.({ row: row.original, rowIndex })\n\n return (\n <tr\n key={row.id}\n className={cn(\n 'border-b border-border transition-colors hover:bg-muted/50',\n row.getIsSelected() && 'bg-accent/10',\n customClassName\n )}\n data-state={row.getIsSelected() ? 'selected' : undefined}\n style={style}\n onClick={() => {\n if (!disableRowSelectionOnClick && checkboxSelection) {\n row.toggleSelected()\n }\n }}\n >\n {row.getVisibleCells().map((cell: any) => {\n const meta = cell.column.columnDef.meta as any\n const align = meta?.align || 'left'\n // Column-level wrapText overrides global setting\n const wrapText = meta?.wrapText !== undefined ? meta.wrapText : globalWrapText\n const cellClassName = meta?.cellClassName\n\n // columnWidths already incorporates resized widths from columnSizing\n const colWidth = columnWidths.get(cell.column.id)\n const width = colWidth?.width || cell.column.getSize()\n\n return (\n <td\n key={cell.id}\n className={cn(\n 'px-4 overflow-hidden',\n showCellVerticalBorder && 'border-r last:border-r-0 border-border'\n )}\n style={{\n height: wrapText ? 'auto' : rowHeight,\n minHeight: rowHeight,\n textAlign: align,\n width,\n maxWidth: colWidth?.maxWidth || width,\n minWidth: colWidth?.minWidth || cell.column.columnDef.minSize,\n }}\n >\n <div\n className={cn(\n wrapText ? 'whitespace-normal break-words' : 'truncate',\n cellClassName\n )}\n title={\n // Show tooltip for truncated simple text values\n !wrapText && (typeof cell.getValue() === 'string' || typeof cell.getValue() === 'number')\n ? String(cell.getValue())\n : undefined\n }\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </div>\n </td>\n )\n })}\n </tr>\n )\n}\n\n// Virtualized table body component\ninterface VirtualizedTableBodyProps {\n table: any\n rowHeight: number\n showCellVerticalBorder: boolean\n checkboxSelection: boolean\n disableRowSelectionOnClick: boolean\n getRowClassName?: (params: { row: any; rowIndex: number }) => string\n overscan: number\n parentRef: React.RefObject<HTMLDivElement>\n globalWrapText?: boolean\n columnWidths: Map<string, CalculatedColumnWidth>\n}\n\nconst VirtualizedTableBody = ({\n table,\n rowHeight,\n showCellVerticalBorder,\n checkboxSelection,\n disableRowSelectionOnClick,\n getRowClassName,\n overscan,\n parentRef,\n globalWrapText = false,\n columnWidths,\n}: VirtualizedTableBodyProps) => {\n const rows = table.getRowModel().rows\n\n const virtualizer = useVirtualizer({\n count: rows.length,\n getScrollElement: () => parentRef.current,\n estimateSize: () => rowHeight,\n overscan,\n })\n\n const virtualRows = virtualizer.getVirtualItems()\n\n if (rows.length === 0) {\n return (\n <tbody>\n <tr>\n <td\n colSpan={table.getVisibleLeafColumns().length}\n className=\"h-32 text-center text-muted-foreground\"\n >\n No data available\n </td>\n </tr>\n </tbody>\n )\n }\n\n // Calculate padding for virtual scroll\n const paddingTop = virtualRows.length > 0 ? virtualRows[0].start : 0\n const paddingBottom = virtualRows.length > 0\n ? virtualizer.getTotalSize() - (virtualRows[virtualRows.length - 1].end)\n : 0\n\n return (\n <tbody>\n {/* Top spacer row */}\n {paddingTop > 0 && (\n <tr>\n <td\n colSpan={table.getVisibleLeafColumns().length}\n style={{ height: paddingTop, padding: 0, border: 'none' }}\n />\n </tr>\n )}\n {/* Visible rows */}\n {virtualRows.map((virtualRow) => {\n const row = rows[virtualRow.index]\n return (\n <RowRenderer\n key={row.id}\n row={row}\n rowIndex={virtualRow.index}\n rowHeight={rowHeight}\n showCellVerticalBorder={showCellVerticalBorder}\n checkboxSelection={checkboxSelection}\n disableRowSelectionOnClick={disableRowSelectionOnClick}\n getRowClassName={getRowClassName}\n globalWrapText={globalWrapText}\n columnWidths={columnWidths}\n />\n )\n })}\n {/* Bottom spacer row */}\n {paddingBottom > 0 && (\n <tr>\n <td\n colSpan={table.getVisibleLeafColumns().length}\n style={{ height: paddingBottom, padding: 0, border: 'none' }}\n />\n </tr>\n )}\n </tbody>\n )\n}\n\n// Standard table body component\ninterface StandardTableBodyProps {\n table: any\n rowHeight: number\n showCellVerticalBorder: boolean\n checkboxSelection: boolean\n disableRowSelectionOnClick: boolean\n getRowClassName?: (params: { row: any; rowIndex: number }) => string\n globalWrapText?: boolean\n columnWidths: Map<string, CalculatedColumnWidth>\n}\n\nconst StandardTableBody = ({\n table,\n rowHeight,\n showCellVerticalBorder,\n checkboxSelection,\n disableRowSelectionOnClick,\n getRowClassName,\n globalWrapText = false,\n columnWidths,\n}: StandardTableBodyProps) => {\n const rows = table.getRowModel().rows\n\n if (rows.length === 0) {\n return (\n <tbody>\n <tr>\n <td\n colSpan={table.getVisibleLeafColumns().length}\n className=\"h-32 text-center text-muted-foreground\"\n >\n No data available\n </td>\n </tr>\n </tbody>\n )\n }\n\n return (\n <tbody>\n {rows.map((row: any, rowIndex: number) => (\n <RowRenderer\n key={row.id}\n row={row}\n rowIndex={rowIndex}\n rowHeight={rowHeight}\n showCellVerticalBorder={showCellVerticalBorder}\n checkboxSelection={checkboxSelection}\n disableRowSelectionOnClick={disableRowSelectionOnClick}\n getRowClassName={getRowClassName}\n globalWrapText={globalWrapText}\n columnWidths={columnWidths}\n />\n ))}\n </tbody>\n )\n}\n\nexport function DataGrid<TData extends Record<string, any>>({\n rows,\n columns,\n getRowId,\n loading = false,\n title,\n toolBar = false,\n checkboxSelection = false,\n rowSelectionModel,\n onRowSelectionModelChange,\n disableRowSelectionOnClick = false,\n columnVisibilityModel,\n onColumnVisibilityModelChange,\n paginationMode = 'client',\n paginationModel,\n onPaginationModelChange,\n rowCount,\n pageSizeOptions = [10, 25, 50, 100],\n sortingMode = 'client',\n filterMode = 'client',\n height = 400,\n minHeight,\n maxHeight,\n density = 'standard',\n showCellVerticalBorder = false,\n showColumnVerticalBorder = false,\n hideFooter = false,\n hideFooterPagination = false,\n virtualized = false,\n overscan = 5,\n wrapText = false,\n getRowClassName,\n slotProps,\n className,\n sx,\n autoHeight = false,\n disableColumnSelector = false,\n onExport,\n exportFileName = 'data-export',\n resizableColumns = false,\n onColumnResize,\n}: DataGridProps<TData>) {\n // Refs\n const tableContainerRef = React.useRef<HTMLDivElement>(null)\n\n // State\n const [sorting, setSorting] = React.useState<SortingState>([])\n const [globalFilter, setGlobalFilter] = React.useState('')\n const [rowSelection, setRowSelection] = React.useState<RowSelectionState>(\n rowSelectionModel || {}\n )\n const [pagination, setPagination] = React.useState<PaginationState>({\n pageIndex: paginationModel?.page || 0,\n pageSize: paginationModel?.pageSize || 10,\n })\n const [columnVisibility, setColumnVisibility] = React.useState<VisibilityState>(\n columnVisibilityModel || {}\n )\n const [containerWidth, setContainerWidth] = React.useState(0)\n // TanStack Table's column sizing state - stores resized column widths\n const [columnSizing, setColumnSizing] = React.useState<ColumnSizingState>({})\n\n // Observe container width for flex column calculations\n React.useEffect(() => {\n const container = tableContainerRef.current\n if (!container) return\n\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n setContainerWidth(entry.contentRect.width)\n }\n })\n\n resizeObserver.observe(container)\n // Set initial width\n setContainerWidth(container.clientWidth)\n\n return () => resizeObserver.disconnect()\n }, [])\n\n // Calculate column widths based on flex, width, minWidth, maxWidth\n // Pass columnSizing so resized columns become fixed and don't affect flex distribution\n const columnWidths = useColumnWidths(columns, containerWidth, checkboxSelection, columnSizing)\n\n // Convert MUI columns to TanStack columns\n const tanstackColumns = React.useMemo(\n () => convertColumns(columns, checkboxSelection),\n [columns, checkboxSelection]\n )\n\n // Sync external pagination model\n React.useEffect(() => {\n if (paginationModel) {\n setPagination({\n pageIndex: paginationModel.page,\n pageSize: paginationModel.pageSize,\n })\n }\n }, [paginationModel?.page, paginationModel?.pageSize])\n\n // Sync external row selection\n React.useEffect(() => {\n if (rowSelectionModel) {\n setRowSelection(rowSelectionModel)\n }\n }, [rowSelectionModel])\n\n // Sync external column visibility\n React.useEffect(() => {\n if (columnVisibilityModel) {\n setColumnVisibility(columnVisibilityModel)\n }\n }, [columnVisibilityModel])\n\n // Create table instance\n // When virtualized, disable pagination to show all rows\n const table = useReactTable({\n data: rows,\n columns: tanstackColumns,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: virtualized ? undefined : (paginationMode === 'client' ? getPaginationRowModel() : undefined),\n getSortedRowModel: sortingMode === 'client' ? getSortedRowModel() : undefined,\n getFilteredRowModel: filterMode === 'client' ? getFilteredRowModel() : undefined,\n getRowId: getRowId ? (row) => String(getRowId(row)) : undefined,\n state: {\n sorting,\n globalFilter,\n rowSelection,\n pagination: virtualized ? undefined : pagination,\n columnVisibility,\n columnSizing,\n },\n onSortingChange: setSorting,\n onGlobalFilterChange: setGlobalFilter,\n onRowSelectionChange: (updater) => {\n const newValue = typeof updater === 'function' ? updater(rowSelection) : updater\n setRowSelection(newValue)\n onRowSelectionModelChange?.(newValue)\n },\n onPaginationChange: virtualized ? undefined : (updater) => {\n const newValue = typeof updater === 'function' ? updater(pagination) : updater\n setPagination(newValue)\n onPaginationModelChange?.({ page: newValue.pageIndex, pageSize: newValue.pageSize })\n },\n onColumnVisibilityChange: (updater) => {\n const newValue = typeof updater === 'function' ? updater(columnVisibility) : updater\n setColumnVisibility(newValue)\n onColumnVisibilityModelChange?.(newValue)\n },\n // Column resizing - use TanStack Table's built-in handling\n enableColumnResizing: resizableColumns,\n columnResizeMode: 'onChange', // Real-time resize (vs 'onEnd' which only updates on mouse up)\n onColumnSizingChange: (updater) => {\n const newValue = typeof updater === 'function' ? updater(columnSizing) : updater\n setColumnSizing(newValue)\n // Notify external callback of resize changes\n if (onColumnResize) {\n Object.entries(newValue).forEach(([columnId, width]) => {\n if (columnSizing[columnId] !== width) {\n onColumnResize(columnId, width)\n }\n })\n }\n },\n enableRowSelection: checkboxSelection,\n manualPagination: virtualized ? true : paginationMode === 'server',\n manualSorting: sortingMode === 'server',\n manualFiltering: filterMode === 'server',\n pageCount: virtualized ? undefined : (paginationMode === 'server' && rowCount\n ? Math.ceil(rowCount / pagination.pageSize)\n : undefined),\n })\n\n const rowHeight = densityRowHeights[density]\n const showQuickFilter = slotProps?.toolbar?.showQuickFilter !== false\n const showColumnSelector = !disableColumnSelector && slotProps?.toolbar?.showColumnSelector !== false\n const showExport = slotProps?.toolbar?.showExport !== false\n const customButtons = slotProps?.toolbar?.customButtons\n const moreOptions = slotProps?.toolbar?.moreOptions || []\n\n // Calculate container style\n const containerStyle: React.CSSProperties = {\n ...sx,\n }\n\n if (!autoHeight) {\n containerStyle.height = height\n if (minHeight) containerStyle.minHeight = minHeight\n if (maxHeight) containerStyle.maxHeight = maxHeight\n }\n\n return (\n <div\n className={cn(\n 'rounded-lg border border-border bg-background overflow-hidden flex flex-col',\n className\n )}\n style={containerStyle}\n >\n {/* Toolbar */}\n {toolBar && (\n <DataGridToolbar\n title={title}\n globalFilter={globalFilter}\n setGlobalFilter={setGlobalFilter}\n showQuickFilter={showQuickFilter}\n showColumnSelector={showColumnSelector}\n showExport={showExport}\n table={table}\n rows={rows}\n columns={columns}\n onExport={onExport}\n exportFileName={exportFileName}\n customButtons={customButtons}\n moreOptions={moreOptions}\n />\n )}\n\n {/* Table container */}\n <div\n ref={tableContainerRef}\n className=\"relative flex-1 overflow-auto\"\n >\n {/* Loading overlay */}\n {loading && (\n <div className=\"absolute inset-0 bg-background/80 flex items-center justify-center z-10\">\n <Spinner size=\"lg\" />\n </div>\n )}\n\n <table className=\"w-full border-collapse table-fixed\">\n {/* Column group for width control */}\n <colgroup>\n {table.getVisibleLeafColumns().map((column) => {\n // columnWidths already incorporates columnSizing (resized widths)\n const colWidth = columnWidths.get(column.id)\n return (\n <col\n key={column.id}\n style={{\n width: colWidth?.width || column.getSize(),\n minWidth: colWidth?.minWidth || column.columnDef.minSize,\n maxWidth: colWidth?.maxWidth || column.columnDef.maxSize,\n }}\n />\n )\n })}\n </colgroup>\n <thead className=\"sticky top-0 z-[1]\">\n {table.getHeaderGroups().map((headerGroup) => (\n <tr key={headerGroup.id} className=\"bg-muted\">\n {headerGroup.headers.map((header) => {\n const meta = header.column.columnDef.meta as any\n const align = meta?.headerAlign || meta?.align || 'left'\n const colWidth = columnWidths.get(header.column.id)\n // columnWidths already incorporates columnSizing (resized widths)\n const effectiveWidth = colWidth?.width || header.getSize()\n\n return (\n <th\n key={header.id}\n className={cn(\n 'px-4 text-left font-medium text-muted-foreground border-b border-border bg-muted overflow-hidden relative',\n showColumnVerticalBorder && 'border-r last:border-r-0',\n header.column.getCanSort() && 'cursor-pointer select-none hover:bg-muted/80',\n // Add cursor class when resizing\n header.column.getIsResizing() && 'cursor-col-resize'\n )}\n style={{\n height: rowHeight,\n width: effectiveWidth,\n minWidth: colWidth?.minWidth || header.column.columnDef.minSize,\n maxWidth: colWidth?.maxWidth || header.column.columnDef.maxSize,\n textAlign: align,\n }}\n onClick={header.column.getToggleSortingHandler()}\n >\n <div className={cn(\n 'flex items-center gap-1 truncate',\n align === 'center' && 'justify-center',\n align === 'right' && 'justify-end'\n )}>\n {header.isPlaceholder\n ? null\n : flexRender(header.column.columnDef.header, header.getContext())}\n {header.column.getCanSort() && (\n <SortIcon direction={header.column.getIsSorted()} />\n )}\n </div>\n {resizableColumns && header.column.id !== '__select__' && (\n <ColumnResizeHandle\n header={header}\n isResizing={header.column.getIsResizing()}\n />\n )}\n </th>\n )\n })}\n </tr>\n ))}\n </thead>\n\n {virtualized ? (\n <VirtualizedTableBody\n table={table}\n rowHeight={rowHeight}\n showCellVerticalBorder={showCellVerticalBorder}\n checkboxSelection={checkboxSelection}\n disableRowSelectionOnClick={disableRowSelectionOnClick}\n getRowClassName={getRowClassName}\n overscan={overscan}\n parentRef={tableContainerRef as React.RefObject<HTMLDivElement>}\n globalWrapText={wrapText}\n columnWidths={columnWidths}\n />\n ) : (\n <StandardTableBody\n table={table}\n rowHeight={rowHeight}\n showCellVerticalBorder={showCellVerticalBorder}\n checkboxSelection={checkboxSelection}\n disableRowSelectionOnClick={disableRowSelectionOnClick}\n getRowClassName={getRowClassName}\n globalWrapText={wrapText}\n columnWidths={columnWidths}\n />\n )}\n </table>\n </div>\n\n {/* Footer with pagination - only show when not virtualized */}\n {!virtualized && !hideFooter && !hideFooterPagination && (\n <DataGridPagination\n table={table}\n pageSizeOptions={pageSizeOptions}\n rowCount={rowCount}\n paginationMode={paginationMode}\n />\n )}\n\n {/* Footer info for virtualized mode */}\n {virtualized && !hideFooter && (\n <div className=\"flex items-center justify-end gap-4 px-4 py-3 border-t border-border bg-background\">\n <span className=\"text-sm text-muted-foreground whitespace-nowrap\">\n {table.getFilteredRowModel().rows.length} total rows (virtualized)\n </span>\n </div>\n )}\n </div>\n )\n}\n\nDataGrid.displayName = 'DataGrid'\n\n// Also export as DataGridV0 for clarity\nexport { DataGrid as DataGridV0 }\n","import * as React from 'react'\n\n// Import all components\nimport { ThemeProvider } from './theme/provider'\nimport { useTheme } from './theme/use-theme'\nimport { Button } from './components/button'\nimport { Input } from './components/input'\nimport { Textarea } from './components/textarea'\nimport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n} from './components/card'\nimport { Badge } from './components/badge'\nimport { Label } from './components/label'\nimport { Checkbox } from './components/checkbox'\nimport { Switch } from './components/switch'\nimport { Separator } from './components/separator'\nimport { Select, SelectTrigger, SelectValue, SelectContent, SelectItem, SelectGroup, SelectLabel } from './components/select'\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n} from './components/dialog'\nimport { Spinner } from './components/spinner'\nimport {\n Table,\n TableHeader,\n TableBody,\n TableRow,\n TableHead,\n TableCell,\n TableCaption,\n} from './components/table'\nimport {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n} from './components/pagination'\nimport { Combobox } from './components/combobox'\n\n// Section wrapper component\nconst Section = ({ title, children }: { title: string; children: React.ReactNode }) => (\n <div className=\"mb-8\">\n <h2 className=\"text-xl font-semibold mb-4 text-foreground\">{title}</h2>\n <div className=\"p-4 border border-border rounded-lg bg-background\">{children}</div>\n </div>\n)\n\n// Theme toggle component\nconst ThemeToggle = () => {\n const { theme, setTheme } = useTheme()\n return (\n <div className=\"flex items-center gap-2\">\n <Label>Theme:</Label>\n <Select value={theme} onValueChange={(value) => setTheme(value as 'light' | 'dark' | 'system')}>\n <SelectTrigger className=\"w-32\">\n <SelectValue placeholder=\"Select theme\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"light\">Light</SelectItem>\n <SelectItem value=\"dark\">Dark</SelectItem>\n <SelectItem value=\"system\">System</SelectItem>\n </SelectContent>\n </Select>\n </div>\n )\n}\n\n// Main Playground Component\nconst PlaygroundContent = () => {\n const [dialogOpen, setDialogOpen] = React.useState(false)\n const [checkboxChecked, setCheckboxChecked] = React.useState(false)\n const [switchChecked, setSwitchChecked] = React.useState(false)\n const [inputValue, setInputValue] = React.useState('')\n const [textareaValue, setTextareaValue] = React.useState('')\n const [selectValue, setSelectValue] = React.useState('')\n const [comboboxValue, setComboboxValue] = React.useState('')\n\n const comboboxOptions = [\n { value: 'react', label: 'React' },\n { value: 'vue', label: 'Vue' },\n { value: 'angular', label: 'Angular' },\n { value: 'svelte', label: 'Svelte' },\n { value: 'solid', label: 'SolidJS' },\n ]\n\n return (\n <div className=\"min-h-screen bg-background p-8\">\n <div className=\"max-w-4xl mx-auto\">\n <div className=\"flex items-center justify-between mb-8\">\n <h1 className=\"text-3xl font-bold text-foreground\">@onesaz/ui Playground</h1>\n <ThemeToggle />\n </div>\n\n {/* Buttons */}\n <Section title=\"Button\">\n <div className=\"flex flex-wrap gap-4\">\n <Button variant=\"default\">Default</Button>\n <Button variant=\"destructive\">Destructive</Button>\n <Button variant=\"outline\">Outline</Button>\n <Button variant=\"secondary\">Secondary</Button>\n <Button variant=\"ghost\">Ghost</Button>\n <Button variant=\"link\">Link</Button>\n </div>\n <div className=\"flex flex-wrap gap-4 mt-4\">\n <Button size=\"sm\">Small</Button>\n <Button size=\"default\">Default</Button>\n <Button size=\"lg\">Large</Button>\n <Button size=\"icon\">🔔</Button>\n </div>\n <div className=\"flex flex-wrap gap-4 mt-4\">\n <Button disabled>Disabled</Button>\n <Button variant=\"outline\" disabled>Disabled Outline</Button>\n </div>\n </Section>\n\n {/* Input */}\n <Section title=\"Input\">\n <div className=\"space-y-4 max-w-md\">\n <div>\n <Label htmlFor=\"input-default\">Default Input</Label>\n <Input\n id=\"input-default\"\n placeholder=\"Enter text...\"\n value={inputValue}\n onChange={(e) => setInputValue(e.target.value)}\n />\n </div>\n <div>\n <Label htmlFor=\"input-disabled\">Disabled Input</Label>\n <Input id=\"input-disabled\" placeholder=\"Disabled...\" disabled />\n </div>\n <div>\n <Label htmlFor=\"input-type\">Email Input</Label>\n <Input id=\"input-type\" type=\"email\" placeholder=\"email@example.com\" />\n </div>\n </div>\n </Section>\n\n {/* Textarea */}\n <Section title=\"Textarea\">\n <div className=\"space-y-4 max-w-md\">\n <div>\n <Label htmlFor=\"textarea-default\">Default Textarea</Label>\n <Textarea\n id=\"textarea-default\"\n placeholder=\"Enter long text...\"\n value={textareaValue}\n onChange={(e) => setTextareaValue(e.target.value)}\n />\n </div>\n <div>\n <Label htmlFor=\"textarea-disabled\">Disabled Textarea</Label>\n <Textarea id=\"textarea-disabled\" placeholder=\"Disabled...\" disabled />\n </div>\n </div>\n </Section>\n\n {/* Select */}\n <Section title=\"Select\">\n <div className=\"space-y-4 max-w-md\">\n <div>\n <Label>Default Select</Label>\n <Select value={selectValue} onValueChange={setSelectValue}>\n <SelectTrigger className=\"w-full\">\n <SelectValue placeholder=\"Select an option...\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"option1\">Option 1</SelectItem>\n <SelectItem value=\"option2\">Option 2</SelectItem>\n <SelectItem value=\"option3\">Option 3</SelectItem>\n </SelectContent>\n </Select>\n </div>\n <div>\n <Label>Grouped Select</Label>\n <Select>\n <SelectTrigger className=\"w-full\">\n <SelectValue placeholder=\"Select a food...\" />\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n <SelectLabel>Fruits</SelectLabel>\n <SelectItem value=\"apple\">Apple</SelectItem>\n <SelectItem value=\"banana\">Banana</SelectItem>\n </SelectGroup>\n <SelectGroup>\n <SelectLabel>Vegetables</SelectLabel>\n <SelectItem value=\"carrot\">Carrot</SelectItem>\n <SelectItem value=\"potato\">Potato</SelectItem>\n </SelectGroup>\n </SelectContent>\n </Select>\n </div>\n <div>\n <Label>Disabled Select</Label>\n <Select disabled>\n <SelectTrigger className=\"w-full\">\n <SelectValue placeholder=\"Disabled...\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"none\">None</SelectItem>\n </SelectContent>\n </Select>\n </div>\n </div>\n </Section>\n\n {/* Combobox */}\n <Section title=\"Combobox (Searchable Select)\">\n <div className=\"space-y-4 max-w-md\">\n <div>\n <Label>Framework</Label>\n <Combobox\n options={comboboxOptions}\n value={comboboxValue}\n onValueChange={setComboboxValue}\n placeholder=\"Search frameworks...\"\n />\n </div>\n </div>\n </Section>\n\n {/* Checkbox & Switch */}\n <Section title=\"Checkbox & Switch\">\n <div className=\"space-y-4\">\n <div className=\"flex items-center gap-2\">\n <Checkbox\n id=\"checkbox\"\n checked={checkboxChecked}\n onChange={(e) => setCheckboxChecked(e.target.checked)}\n />\n <Label htmlFor=\"checkbox\">Accept terms and conditions</Label>\n </div>\n <div className=\"flex items-center gap-2\">\n <Checkbox id=\"checkbox-disabled\" disabled />\n <Label htmlFor=\"checkbox-disabled\">Disabled checkbox</Label>\n </div>\n <Separator />\n <div className=\"flex items-center gap-2\">\n <Switch\n id=\"switch\"\n checked={switchChecked}\n onChange={(e) => setSwitchChecked(e.target.checked)}\n />\n <Label htmlFor=\"switch\">Enable notifications</Label>\n </div>\n <div className=\"flex items-center gap-2\">\n <Switch id=\"switch-disabled\" disabled />\n <Label htmlFor=\"switch-disabled\">Disabled switch</Label>\n </div>\n </div>\n </Section>\n\n {/* Badge */}\n <Section title=\"Badge\">\n <div className=\"flex flex-wrap gap-4\">\n <Badge>Default</Badge>\n <Badge variant=\"secondary\">Secondary</Badge>\n <Badge variant=\"destructive\">Destructive</Badge>\n <Badge variant=\"outline\">Outline</Badge>\n </div>\n </Section>\n\n {/* Card */}\n <Section title=\"Card\">\n <div className=\"grid gap-4 md:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle>Card Title</CardTitle>\n <CardDescription>Card description goes here</CardDescription>\n </CardHeader>\n <CardContent>\n <p className=\"text-foreground\">This is the card content area.</p>\n </CardContent>\n <CardFooter>\n <Button variant=\"outline\" className=\"mr-2\">Cancel</Button>\n <Button>Submit</Button>\n </CardFooter>\n </Card>\n <Card>\n <CardHeader>\n <CardTitle>Another Card</CardTitle>\n <CardDescription>With different content</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-2\">\n <Label htmlFor=\"card-input\">Name</Label>\n <Input id=\"card-input\" placeholder=\"Enter name...\" />\n </div>\n </CardContent>\n <CardFooter>\n <Button className=\"w-full\">Save</Button>\n </CardFooter>\n </Card>\n </div>\n </Section>\n\n {/* Dialog */}\n <Section title=\"Dialog\">\n <Button onClick={() => setDialogOpen(true)}>Open Dialog</Button>\n <Dialog open={dialogOpen} onOpenChange={setDialogOpen}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Create New Zone</DialogTitle>\n <DialogDescription>\n Fill in the details below to create a new zone.\n </DialogDescription>\n </DialogHeader>\n <div className=\"space-y-4 py-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <Label htmlFor=\"zone-name\">Zone Name *</Label>\n <Input id=\"zone-name\" placeholder=\"eg:hyderabad\" />\n </div>\n <div>\n <Label htmlFor=\"zone-code\">Zone Code *</Label>\n <Input id=\"zone-code\" placeholder=\"eg :hyd022\" />\n </div>\n </div>\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <Label>State *</Label>\n <Select>\n <SelectTrigger className=\"w-full\">\n <SelectValue placeholder=\"Select state\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"telangana\">TELANGANA</SelectItem>\n <SelectItem value=\"andhra\">ANDHRA PRADESH</SelectItem>\n </SelectContent>\n </Select>\n </div>\n <div>\n <Label>District *</Label>\n <Select>\n <SelectTrigger className=\"w-full\">\n <SelectValue placeholder=\"Select District\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"hyderabad\">HYDERABAD</SelectItem>\n <SelectItem value=\"rangareddy\">RANGAREDDY</SelectItem>\n </SelectContent>\n </Select>\n </div>\n </div>\n </div>\n <DialogFooter>\n <Button variant=\"outline\" onClick={() => setDialogOpen(false)}>\n CANCEL\n </Button>\n <Button onClick={() => setDialogOpen(false)}>Create</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </Section>\n\n {/* Table */}\n <Section title=\"Table\">\n <Table>\n <TableCaption>A list of recent invoices</TableCaption>\n <TableHeader>\n <TableRow>\n <TableHead>Invoice</TableHead>\n <TableHead>Status</TableHead>\n <TableHead>Method</TableHead>\n <TableHead className=\"text-right\">Amount</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n <TableRow>\n <TableCell>INV001</TableCell>\n <TableCell><Badge>Paid</Badge></TableCell>\n <TableCell>Credit Card</TableCell>\n <TableCell className=\"text-right\">$250.00</TableCell>\n </TableRow>\n <TableRow>\n <TableCell>INV002</TableCell>\n <TableCell><Badge variant=\"secondary\">Pending</Badge></TableCell>\n <TableCell>PayPal</TableCell>\n <TableCell className=\"text-right\">$150.00</TableCell>\n </TableRow>\n <TableRow>\n <TableCell>INV003</TableCell>\n <TableCell><Badge variant=\"destructive\">Failed</Badge></TableCell>\n <TableCell>Bank Transfer</TableCell>\n <TableCell className=\"text-right\">$350.00</TableCell>\n </TableRow>\n </TableBody>\n </Table>\n </Section>\n\n {/* Pagination */}\n <Section title=\"Pagination\">\n <Pagination>\n <PaginationContent>\n <PaginationItem>\n <PaginationPrevious onClick={() => console.log('Previous')} />\n </PaginationItem>\n <PaginationItem>\n <PaginationLink isActive>1</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink>2</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationLink>3</PaginationLink>\n </PaginationItem>\n <PaginationItem>\n <PaginationEllipsis />\n </PaginationItem>\n <PaginationItem>\n <PaginationNext onClick={() => console.log('Next')} />\n </PaginationItem>\n </PaginationContent>\n </Pagination>\n </Section>\n\n {/* Spinner */}\n <Section title=\"Spinner\">\n <div className=\"flex items-center gap-8\">\n <div className=\"text-center\">\n <Spinner size=\"sm\" />\n <p className=\"text-sm text-muted-foreground mt-2\">Small</p>\n </div>\n <div className=\"text-center\">\n <Spinner size=\"default\" />\n <p className=\"text-sm text-muted-foreground mt-2\">Default</p>\n </div>\n <div className=\"text-center\">\n <Spinner size=\"lg\" />\n <p className=\"text-sm text-muted-foreground mt-2\">Large</p>\n </div>\n </div>\n </Section>\n\n {/* Separator */}\n <Section title=\"Separator\">\n <div className=\"space-y-4\">\n <p className=\"text-foreground\">Content above separator</p>\n <Separator />\n <p className=\"text-foreground\">Content below separator</p>\n <div className=\"flex items-center h-10\">\n <span className=\"text-foreground\">Left</span>\n <Separator orientation=\"vertical\" className=\"mx-4\" />\n <span className=\"text-foreground\">Right</span>\n </div>\n </div>\n </Section>\n\n {/* Typography Colors */}\n <Section title=\"Typography & Colors\">\n <div className=\"space-y-2\">\n <p className=\"text-foreground\">text-foreground - Primary text color</p>\n <p className=\"text-muted-foreground\">text-muted-foreground - Muted text color</p>\n <p className=\"text-accent\">text-accent - Accent color</p>\n <p className=\"text-destructive\">text-destructive - Destructive color</p>\n </div>\n </Section>\n </div>\n </div>\n )\n}\n\n// Exported Playground wrapped with ThemeProvider\nexport const Playground = () => (\n <ThemeProvider defaultTheme=\"light\">\n <PlaygroundContent />\n </ThemeProvider>\n)\n\nexport default Playground\n"],"mappings":"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","names":["value","React","jsx","React","jsx","React","jsx","spacingClasses","alignItemsClasses","justifyContentClasses","React","jsx","colorClasses","alignClasses","React","jsx","React","jsx","React","jsx","React","React","jsx","jsx","jsxs","React","jsx","React","jsx","jsxs","React","jsx","jsxs","sizeClasses","React","jsx","jsxs","marginClasses","React","jsx","React","jsx","React","jsx","React","jsx","jsxs","jsx","React","jsx","jsxs","React","jsx","React","jsx","React","jsx","jsxs","React","jsx","jsxs","React","jsx","jsxs","React","jsx","jsxs"]}