@chellaa/react 0.2.0 → 0.2.1
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.cjs +4106 -72
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1505 -23
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +1901 -22
- package/dist/index.d.ts +1901 -22
- package/dist/index.mjs +4041 -73
- package/dist/index.mjs.map +1 -1
- package/dist/index.node.mjs +4041 -73
- package/dist/styles.css +1 -1
- package/package.json +10 -4
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/theme/ThemeProvider.tsx","../src/theme/useTheme.ts","../src/theme/createTheme.ts","../src/theme/ThemeScript.tsx","../src/utils/classNames.ts","../src/utils/composeEventHandlers.ts","../src/hooks/useMergeRefs.ts","../src/primitives/Slot.tsx","../src/components/ButtonGroup/ButtonGroupContext.ts","../src/components/Button/Button.tsx","../src/components/ButtonGroup/ButtonGroup.tsx"],"names":["React","value","jsx","React2","React4","Slot","React5","jsxs","React6","Button","Fragment","React7","ButtonGroup"],"mappings":"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","file":"index.cjs","sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nexport type ThemeMode = \"light\" | \"dark\" | \"system\" | string;\n\nexport interface ThemeContextValue {\n theme: ThemeMode;\n setTheme: (theme: ThemeMode) => void;\n resolvedTheme: \"light\" | \"dark\";\n systemTheme: \"light\" | \"dark\" | undefined;\n}\n\nexport const ThemeContext = React.createContext<ThemeContextValue | undefined>(\n undefined,\n);\n\nexport interface ThemeProviderProps {\n children?: React.ReactNode;\n defaultTheme?: ThemeMode;\n storageKey?: string;\n enableSystem?: boolean;\n tokens?: Record<string, string>;\n attribute?: string;\n}\n\nconst COLOR_SCHEME_QUERY = \"(prefers-color-scheme: dark)\";\n\nexport function ThemeProvider({\n children,\n defaultTheme = \"system\",\n storageKey = \"chellaa-theme\",\n enableSystem = true,\n tokens,\n attribute = \"data-theme\",\n}: ThemeProviderProps) {\n // Check if we are inside a parent ThemeProvider (nested scope)\n const parentContext = React.useContext(ThemeContext);\n\n const [theme, setThemeState] = React.useState<ThemeMode>(() => {\n if (typeof window === \"undefined\") return defaultTheme;\n try {\n return (localStorage.getItem(storageKey) as ThemeMode) || defaultTheme;\n } catch {\n return defaultTheme;\n }\n });\n\n const [systemTheme, setSystemTheme] = React.useState<\n \"light\" | \"dark\" | undefined\n >(() => {\n if (\n typeof window === \"undefined\" ||\n !enableSystem ||\n typeof window.matchMedia !== \"function\"\n ) {\n return undefined;\n }\n return window.matchMedia(COLOR_SCHEME_QUERY).matches ? \"dark\" : \"light\";\n });\n\n // Calculate resolved theme\n const resolvedTheme: \"light\" | \"dark\" = React.useMemo(() => {\n if (theme === \"system\") {\n return systemTheme ?? \"light\";\n }\n return theme === \"dark\" ? \"dark\" : \"light\";\n }, [theme, systemTheme]);\n\n // Listen for OS system theme changes\n React.useEffect(() => {\n if (\n !enableSystem ||\n typeof window === \"undefined\" ||\n typeof window.matchMedia !== \"function\"\n ) {\n return;\n }\n\n const mediaQuery = window.matchMedia(COLOR_SCHEME_QUERY);\n const handleChange = (e: MediaQueryListEvent) => {\n setSystemTheme(e.matches ? \"dark\" : \"light\");\n };\n\n if (typeof mediaQuery.addEventListener === \"function\") {\n mediaQuery.addEventListener(\"change\", handleChange);\n return () => mediaQuery.removeEventListener(\"change\", handleChange);\n } else if (\n typeof (\n mediaQuery as {\n addListener?: (cb: (e: MediaQueryListEvent) => void) => void;\n }\n ).addListener === \"function\"\n ) {\n // Legacy Safari / older browser fallback\n (\n mediaQuery as {\n addListener: (cb: (e: MediaQueryListEvent) => void) => void;\n }\n ).addListener(handleChange);\n return () =>\n (\n mediaQuery as {\n removeListener: (cb: (e: MediaQueryListEvent) => void) => void;\n }\n ).removeListener(handleChange);\n }\n }, [enableSystem]);\n\n // Apply theme to DOM\n React.useEffect(() => {\n if (typeof document === \"undefined\") return;\n\n // If root ThemeProvider, apply to documentElement\n if (!parentContext) {\n const root = document.documentElement;\n root.setAttribute(attribute, resolvedTheme);\n\n if (tokens) {\n for (const [key, value] of Object.entries(tokens)) {\n root.style.setProperty(key, value);\n }\n }\n }\n }, [resolvedTheme, parentContext, attribute, tokens]);\n\n const setTheme = React.useCallback(\n (newTheme: ThemeMode) => {\n setThemeState(newTheme);\n try {\n localStorage.setItem(storageKey, newTheme);\n } catch {\n // Ignore localStorage errors (e.g. private browsing mode)\n }\n },\n [storageKey],\n );\n\n const value = React.useMemo<ThemeContextValue>(\n () => ({\n theme,\n setTheme,\n resolvedTheme,\n systemTheme,\n }),\n [theme, setTheme, resolvedTheme, systemTheme],\n );\n\n // If this is a nested ThemeProvider, render a container element with the local theme attribute\n if (parentContext) {\n const styleObj = tokens\n ? (tokens as unknown as React.CSSProperties)\n : undefined;\n\n return (\n <ThemeContext.Provider value={value}>\n <div\n {...{ [attribute]: resolvedTheme }}\n style={styleObj}\n className=\"cl-theme-scope\"\n >\n {children}\n </div>\n </ThemeContext.Provider>\n );\n }\n\n return (\n <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ThemeContext, type ThemeContextValue } from \"./ThemeProvider\";\n\n/**\n * Accesses the active theme context, allowing components to read and update\n * the current theme mode (`light`, `dark`, `system`), resolved theme, and system preference.\n */\nexport function useTheme(): ThemeContextValue {\n const context = React.useContext(ThemeContext);\n\n if (!context) {\n throw new Error(\n \"useTheme must be used within a <ThemeProvider>. Wrap your application root in <ThemeProvider>.\",\n );\n }\n\n return context;\n}\n","export interface CustomThemeConfig {\n name: string;\n tokens: Record<string, string>;\n}\n\nexport interface CustomThemeResult {\n name: string;\n tokens: Record<string, string>;\n cssText: string;\n}\n\n/**\n * Creates a structured custom theme definition and compiles it to valid CSS custom property text.\n *\n * @example\n * const emeraldTheme = createTheme({\n * name: 'emerald',\n * tokens: {\n * '--cl-color-primary-base': '#059669',\n * '--cl-color-primary-hover': '#047857',\n * }\n * });\n */\nexport function createTheme(config: CustomThemeConfig): CustomThemeResult {\n const { name, tokens } = config;\n\n const declarations = Object.entries(tokens)\n .map(([property, value]) => ` ${property}: ${value};`)\n .join(\"\\n\");\n\n const cssText = `[data-theme=\"${name}\"] {\\n${declarations}\\n}`;\n\n return {\n name,\n tokens,\n cssText,\n };\n}\n","export interface ThemeScriptProps {\n storageKey?: string;\n defaultTheme?: string;\n attribute?: string;\n nonce?: string;\n}\n\n/**\n * Inline synchronous script that prevents theme flash (FOUC) during SSR page load.\n * Place inside the `<head>` of your application layout.\n */\nexport function ThemeScript({\n storageKey = \"chellaa-theme\",\n defaultTheme = \"system\",\n attribute = \"data-theme\",\n nonce,\n}: ThemeScriptProps) {\n const scriptContent = `(function() {\n try {\n var key = '${storageKey}';\n var def = '${defaultTheme}';\n var attr = '${attribute}';\n var stored = localStorage.getItem(key);\n var theme = stored || def;\n var resolved = theme;\n if (theme === 'system') {\n resolved = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n document.documentElement.setAttribute(attr, resolved);\n } catch (e) {}\n})();`;\n\n return (\n <script\n nonce={nonce}\n dangerouslySetInnerHTML={{ __html: scriptContent }}\n suppressHydrationWarning\n />\n );\n}\n","export type ClassValue =\n | string\n | number\n | boolean\n | undefined\n | null\n | Record<string, boolean | number | undefined | null>\n | ClassValue[];\n\n/**\n * Combines multiple conditional class names into a clean space-delimited string.\n * Zero external runtime dependencies.\n *\n * @example\n * classNames('cl-button', isActive && 'cl-button--active', { 'cl-button--disabled': isDisabled });\n */\nexport function classNames(...inputs: ClassValue[]): string {\n const classes: string[] = [];\n\n for (const input of inputs) {\n if (!input && input !== 0) continue;\n\n if (typeof input === \"string\" || typeof input === \"number\") {\n const trimmed = String(input).trim();\n if (trimmed) classes.push(trimmed);\n } else if (Array.isArray(input)) {\n const nested = classNames(...input);\n if (nested) classes.push(nested);\n } else if (typeof input === \"object\") {\n for (const [key, value] of Object.entries(input)) {\n if (value && key.trim()) {\n classes.push(key.trim());\n }\n }\n }\n }\n\n return classes.join(\" \");\n}\n","/**\n * Composes an optional consumer event handler with an internal library event handler.\n * If the consumer handler calls event.preventDefault(), the internal handler is skipped,\n * preserving consumer control over event delegation.\n *\n * @param originalHandler Optional consumer-provided event handler\n * @param ourHandler Internal component event handler\n * @param options Configuration options\n */\nexport function composeEventHandlers<E extends { defaultPrevented: boolean }>(\n originalHandler?: ((event: E) => void) | undefined,\n ourHandler?: ((event: E) => void) | undefined,\n {\n checkForDefaultPrevented = true,\n }: { checkForDefaultPrevented?: boolean } = {},\n): (event: E) => void {\n return function handleEvent(event: E) {\n originalHandler?.(event);\n\n if (!checkForDefaultPrevented || !event.defaultPrevented) {\n ourHandler?.(event);\n }\n };\n}\n","import * as React from \"react\";\n\ntype PossibleRef<T> = React.Ref<T> | undefined;\n\n/**\n * Assigns a value to a React ref (either RefCallback or MutableRefObject).\n */\nexport function setRef<T>(ref: PossibleRef<T>, value: T | null): void {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== undefined) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n}\n\n/**\n * Combines multiple React refs into a single RefCallback.\n * Handles both object refs and callback refs, with proper unmount cleanup.\n */\nexport function useMergeRefs<T>(\n ...refs: PossibleRef<T>[]\n): React.RefCallback<T> {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback((current: T | null) => {\n for (const ref of refs) {\n setRef(ref, current);\n }\n }, refs);\n}\n","import * as React from \"react\";\nimport { classNames } from \"../utils/classNames\";\nimport { composeEventHandlers } from \"../utils/composeEventHandlers\";\nimport { setRef } from \"../hooks/useMergeRefs\";\n\nexport interface SlotProps extends React.HTMLAttributes<HTMLElement> {\n children?: React.ReactNode;\n}\n\n/**\n * Merges Slot props onto its immediate child element.\n * Preserves child identity, merges classNames, styles, ref forwarding, and event handlers.\n */\nexport const Slot = React.forwardRef<HTMLElement, SlotProps>(\n function Slot(props, forwardedRef) {\n const { children, ...slotProps } = props;\n\n if (React.isValidElement(children)) {\n return React.cloneElement(\n children,\n mergeProps(\n slotProps,\n children.props as Record<string, unknown>,\n forwardedRef,\n getElementRef(children),\n ),\n );\n }\n\n if (React.Children.count(children) > 1) {\n React.Children.only(null); // Will throw informative React.Children.only error\n }\n\n return null;\n },\n);\n\nSlot.displayName = \"Slot\";\n\n/**\n * Extracts a ref from a React element across React 18 and React 19.\n */\nfunction getElementRef(\n element: React.ReactElement,\n): React.Ref<HTMLElement> | undefined {\n // In React 18 and earlier, ref is a property on the element instance.\n // In React 19, ref is passed as a standard prop.\n // Checking element.ref first avoids the React 18 special-props warning.\n const elementRef = (element as unknown as { ref?: React.Ref<HTMLElement> })\n ?.ref;\n if (elementRef !== undefined) {\n return elementRef;\n }\n return (element.props as { ref?: React.Ref<HTMLElement> })?.ref;\n}\n\n/**\n * Merges slot parent props with child props.\n */\nfunction mergeProps(\n slotProps: Record<string, unknown>,\n childProps: Record<string, unknown>,\n slotRef: React.Ref<HTMLElement>,\n childRef?: React.Ref<HTMLElement>,\n): Record<string, unknown> {\n const overrideProps: Record<string, unknown> = { ...childProps };\n\n for (const propName in slotProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n\n const isEventHandler = /^on[A-Z]/.test(propName);\n\n if (isEventHandler) {\n if (\n typeof slotPropValue === \"function\" &&\n typeof childPropValue === \"function\"\n ) {\n overrideProps[propName] = composeEventHandlers(\n childPropValue as (event: { defaultPrevented: boolean }) => void,\n slotPropValue as (event: { defaultPrevented: boolean }) => void,\n );\n } else if (typeof slotPropValue === \"function\") {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"className\") {\n overrideProps[propName] = classNames(\n slotPropValue as string | undefined,\n childPropValue as string | undefined,\n );\n } else if (propName === \"style\") {\n overrideProps[propName] = {\n ...(slotPropValue as React.CSSProperties | undefined),\n ...(childPropValue as React.CSSProperties | undefined),\n };\n } else {\n overrideProps[propName] =\n slotPropValue !== undefined ? slotPropValue : childPropValue;\n }\n }\n\n // Ref merging\n overrideProps.ref = (node: HTMLElement | null) => {\n setRef(childRef, node);\n setRef(slotRef, node);\n };\n\n return overrideProps;\n}\n","import * as React from \"react\";\nimport type { ButtonGroupContextValue } from \"./ButtonGroup.types\";\n\nexport const ButtonGroupContext = React.createContext<\n ButtonGroupContextValue | undefined\n>(undefined);\n\n/**\n * Hook to access parent ButtonGroup context if present.\n */\nexport function useButtonGroupContext(): ButtonGroupContextValue | undefined {\n return React.useContext(ButtonGroupContext);\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useButtonGroupContext } from \"../ButtonGroup/ButtonGroupContext\";\nimport type { ButtonProps } from \"./Button.types\";\n\n/**\n * Animated SVG spinner for loading states.\n */\nfunction ButtonSpinner() {\n return (\n <svg\n className=\"cl-button__spinner\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"9\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeOpacity=\"0.25\"\n />\n <path\n d=\"M12 3a9 9 0 0 1 9 9\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n}\n\n/**\n * Chellaa React Button component.\n *\n * Fundamental action primitive supporting 5 variants, 5 sizes, 7 color schemes,\n * loading states, icons, keyboard interaction, and polymorphic slot delegation via `asChild`.\n */\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n function Button(props, forwardedRef) {\n const {\n asChild = false,\n variant: variantProp,\n size: sizeProp,\n colorScheme: colorSchemeProp,\n isLoading = false,\n loadingText,\n loadingPosition = \"start\",\n isDisabled: isDisabledProp,\n isFullWidth = false,\n startIcon,\n endIcon,\n className,\n children,\n disabled: disabledProp,\n type = \"button\",\n onClick,\n onKeyDown,\n ...restProps\n } = props;\n\n const buttonGroup = useButtonGroupContext();\n\n const variant = variantProp ?? buttonGroup?.variant ?? \"solid\";\n const size = sizeProp ?? buttonGroup?.size ?? \"md\";\n const colorScheme =\n colorSchemeProp ?? buttonGroup?.colorScheme ?? \"primary\";\n const isDisabled =\n isDisabledProp ?? disabledProp ?? buttonGroup?.isDisabled ?? false;\n const isEffectivelyDisabled = isDisabled || isLoading;\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (isEffectivelyDisabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n onClick?.(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (isEffectivelyDisabled) {\n if (event.key === \" \" || event.key === \"Enter\") {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n onKeyDown?.(event);\n };\n\n const buttonClassName = classNames(\n \"cl-button\",\n `cl-button--${variant}`,\n `cl-button--${size}`,\n `cl-button--${colorScheme}`,\n isLoading && \"cl-button--loading\",\n isDisabled && \"cl-button--disabled\",\n isFullWidth && \"cl-button--full-width\",\n className,\n );\n\n const spinner = <ButtonSpinner />;\n\n // When asChild is enabled, delegate root rendering to child via Slot\n if (asChild) {\n return (\n <Slot\n ref={forwardedRef as React.Ref<HTMLElement>}\n className={buttonClassName}\n aria-disabled={isEffectivelyDisabled ? true : undefined}\n aria-busy={isLoading ? true : undefined}\n onClick={\n handleClick as unknown as React.MouseEventHandler<HTMLElement>\n }\n onKeyDown={\n handleKeyDown as unknown as React.KeyboardEventHandler<HTMLElement>\n }\n {...restProps}\n >\n {children}\n </Slot>\n );\n }\n\n // Center loading state: keep button dimensions identical by visually hiding label\n const isCenterLoading = isLoading && loadingPosition === \"center\";\n\n return (\n <button\n ref={forwardedRef}\n type={type}\n disabled={isEffectivelyDisabled ? true : undefined}\n aria-disabled={isEffectivelyDisabled ? true : undefined}\n aria-busy={isLoading ? true : undefined}\n className={buttonClassName}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n {...restProps}\n >\n {isCenterLoading ? (\n <>\n <span className=\"cl-button__spinner-wrapper--center\">\n {spinner}\n </span>\n <span className=\"cl-button__content--hidden\">\n {startIcon && (\n <span\n className=\"cl-button__icon cl-button__icon--start\"\n aria-hidden=\"true\"\n >\n {startIcon}\n </span>\n )}\n {children !== undefined && (\n <span className=\"cl-button__label\">{children}</span>\n )}\n {endIcon && (\n <span\n className=\"cl-button__icon cl-button__icon--end\"\n aria-hidden=\"true\"\n >\n {endIcon}\n </span>\n )}\n </span>\n </>\n ) : (\n <>\n {isLoading && loadingPosition === \"start\" && spinner}\n {!isLoading && startIcon && (\n <span\n className=\"cl-button__icon cl-button__icon--start\"\n aria-hidden=\"true\"\n >\n {startIcon}\n </span>\n )}\n {isLoading && loadingText ? (\n <span className=\"cl-button__label\">{loadingText}</span>\n ) : children !== undefined ? (\n <span className=\"cl-button__label\">{children}</span>\n ) : null}\n {isLoading && loadingPosition === \"end\" && spinner}\n {!isLoading && endIcon && (\n <span\n className=\"cl-button__icon cl-button__icon--end\"\n aria-hidden=\"true\"\n >\n {endIcon}\n </span>\n )}\n </>\n )}\n </button>\n );\n },\n);\n\nButton.displayName = \"Button\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport type {\n ButtonGroupContextValue,\n ButtonGroupProps,\n} from \"./ButtonGroup.types\";\nimport { ButtonGroupContext } from \"./ButtonGroupContext\";\n\n/**\n * Chellaa React ButtonGroup component.\n *\n * Container primitive for grouping related buttons with unified sizing,\n * visual variants, color schemes, disabled states, and attached border management.\n */\nexport const ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n function ButtonGroup(props, forwardedRef) {\n const {\n asChild = false,\n size,\n variant,\n colorScheme,\n isDisabled,\n isAttached = false,\n orientation = \"horizontal\",\n spacing,\n className,\n style,\n children,\n role: roleProp,\n ...restProps\n } = props;\n\n const role =\n roleProp !== undefined ? roleProp : asChild ? undefined : \"group\";\n\n const contextValue = React.useMemo<ButtonGroupContextValue>(\n () => ({\n size,\n variant,\n colorScheme,\n isDisabled,\n }),\n [size, variant, colorScheme, isDisabled],\n );\n\n const groupClassName = classNames(\n \"cl-button-group\",\n `cl-button-group--${orientation}`,\n isAttached && \"cl-button-group--attached\",\n className,\n );\n\n const groupStyle: React.CSSProperties = {\n ...style,\n ...(spacing !== undefined && !isAttached\n ? { gap: typeof spacing === \"number\" ? `${spacing}px` : spacing }\n : {}),\n };\n\n if (asChild) {\n return (\n <ButtonGroupContext.Provider value={contextValue}>\n <Slot\n ref={forwardedRef as React.Ref<HTMLElement>}\n role={role}\n className={groupClassName}\n style={groupStyle}\n {...restProps}\n >\n {children}\n </Slot>\n </ButtonGroupContext.Provider>\n );\n }\n\n return (\n <ButtonGroupContext.Provider value={contextValue}>\n <div\n ref={forwardedRef}\n role={role}\n className={groupClassName}\n style={groupStyle}\n {...restProps}\n >\n {children}\n </div>\n </ButtonGroupContext.Provider>\n );\n },\n);\n\nButtonGroup.displayName = \"ButtonGroup\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/theme/palette.ts","../src/theme/typography.ts","../src/theme/spacing.ts","../src/theme/breakpoints.ts","../src/theme/shadows.ts","../src/theme/transitions.ts","../src/theme/zIndex.ts","../src/theme/createTheme.ts","../src/theme/ThemeProvider.tsx","../src/theme/useTheme.ts","../src/theme/ThemeScript.tsx","../src/system/shouldForwardProp.ts","../src/system/sx.ts","../src/system/componentOverrides.ts","../src/system/styled.ts","../src/utils/classNames.ts","../src/utils/composeEventHandlers.ts","../src/hooks/useMergeRefs.ts","../src/primitives/Slot.tsx","../src/components/ButtonGroup/ButtonGroupContext.ts","../src/ripple/TouchRipple.tsx","../src/ripple/useRipple.ts","../src/components/Button/Button.tsx","../src/components/ButtonGroup/ButtonGroup.tsx","../src/components/Box/Box.tsx","../src/components/Stack/Stack.tsx","../src/components/Flex/Flex.tsx","../src/components/Container/Container.tsx","../src/components/Grid/Grid.tsx","../src/components/Divider/Divider.tsx","../src/components/Typography/Typography.tsx","../src/components/Typography/Heading.tsx","../src/components/Typography/Text.tsx","../src/components/Typography/Paragraph.tsx","../src/components/Typography/Code.tsx","../src/components/Kbd/Kbd.tsx","../src/components/FormField/FormFieldContext.tsx","../src/components/Input/Input.tsx","../src/components/Input/TextField.tsx","../src/components/Input/InputAdornment.tsx","../src/components/Textarea/Textarea.tsx","../src/components/FormField/FormField.tsx","../src/components/FormField/FormLabel.tsx","../src/components/FormField/FormHelperText.tsx","../src/components/FormField/FormErrorMessage.tsx","../src/components/Checkbox/CheckboxContext.tsx","../src/components/Checkbox/Checkbox.tsx","../src/hooks/useControllableState.ts","../src/components/Checkbox/CheckboxGroup.tsx","../src/components/Radio/RadioContext.tsx","../src/components/Radio/Radio.tsx","../src/components/Radio/RadioGroup.tsx","../src/components/Switch/Switch.tsx","../src/components/Paper/Paper.tsx","../src/components/Card/CardContext.ts","../src/components/Card/Card.tsx"],"names":["React","jsx","EmotionThemeProvider","React2","useEmotionTheme","defaultTheme","isObject","resolved","emotionStyled","React3","React4","Slot","React5","keyframes","React6","TouchRipple","pulsate","React7","jsxs","React8","Button","Fragment","React9","ButtonGroup","React10","Box","React11","Stack","React12","Flex","React13","Container","React14","Grid","React15","Divider","React16","Typography","React17","Heading","React18","Text","React19","Paragraph","React20","Code","React21","Kbd","React22","React23","InputBase","Input","React24","TextField","React25","InputAdornment","React26","Textarea","React27","FormField","React28","FormLabel","React29","FormHelperText","React30","FormErrorMessage","React31","React32","Checkbox","React33","React34","CheckboxGroup","React35","React36","Radio","React37","RadioGroup","React38","Switch","React39","Paper","React40","React41","Card","CardHeader","CardMedia","CardBody","CardFooter","CardActions"],"mappings":"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","file":"index.cjs","sourcesContent":["import { Palette, ColorMode } from \"./types\";\n\nexport const lightPalette: Palette = {\n mode: \"light\",\n primary: {\n light: \"#818cf8\", // indigo-400\n main: \"#6366f1\", // indigo-500\n dark: \"#4f46e5\", // indigo-600\n contrastText: \"#ffffff\",\n },\n secondary: {\n light: \"#a78bfa\", // violet-400\n main: \"#8b5cf6\", // violet-500\n dark: \"#7c3aed\", // violet-600\n contrastText: \"#ffffff\",\n },\n error: {\n light: \"#f87171\", // red-400\n main: \"#ef4444\", // red-500\n dark: \"#dc2626\", // red-600\n contrastText: \"#ffffff\",\n },\n warning: {\n light: \"#fbbf24\", // amber-400\n main: \"#f59e0b\", // amber-500\n dark: \"#d97706\", // amber-600\n contrastText: \"#18181b\",\n },\n info: {\n light: \"#38bdf8\", // sky-400\n main: \"#0ea5e9\", // sky-500\n dark: \"#0284c7\", // sky-600\n contrastText: \"#ffffff\",\n },\n success: {\n light: \"#34d399\", // emerald-400\n main: \"#10b981\", // emerald-500\n dark: \"#059669\", // emerald-600\n contrastText: \"#ffffff\",\n },\n text: {\n primary: \"rgba(0, 0, 0, 0.87)\",\n secondary: \"rgba(0, 0, 0, 0.6)\",\n disabled: \"rgba(0, 0, 0, 0.38)\",\n },\n background: {\n default: \"#f8fafc\",\n paper: \"#ffffff\",\n surface: \"#ffffff\",\n },\n divider: \"rgba(0, 0, 0, 0.12)\",\n action: {\n active: \"rgba(0, 0, 0, 0.54)\",\n hover: \"rgba(0, 0, 0, 0.04)\",\n hoverOpacity: 0.04,\n selected: \"rgba(0, 0, 0, 0.08)\",\n selectedOpacity: 0.08,\n disabled: \"rgba(0, 0, 0, 0.26)\",\n disabledBackground: \"rgba(0, 0, 0, 0.12)\",\n focus: \"rgba(0, 0, 0, 0.12)\",\n focusOpacity: 0.12,\n },\n};\n\nexport const darkPalette: Palette = {\n mode: \"dark\",\n primary: {\n light: \"#a5b4fc\", // indigo-300\n main: \"#818cf8\", // indigo-400\n dark: \"#6366f1\", // indigo-500\n contrastText: \"#09090b\",\n },\n secondary: {\n light: \"#c4b5fd\", // violet-300\n main: \"#a78bfa\", // violet-400\n dark: \"#8b5cf6\", // violet-500\n contrastText: \"#09090b\",\n },\n error: {\n light: \"#fca5a5\", // red-300\n main: \"#f87171\", // red-400\n dark: \"#ef4444\", // red-500\n contrastText: \"#09090b\",\n },\n warning: {\n light: \"#fde68a\", // amber-200\n main: \"#fbbf24\", // amber-400\n dark: \"#f59e0b\", // amber-500\n contrastText: \"#09090b\",\n },\n info: {\n light: \"#7dd3fc\", // sky-300\n main: \"#38bdf8\", // sky-400\n dark: \"#0ea5e9\", // sky-500\n contrastText: \"#09090b\",\n },\n success: {\n light: \"#6ee7b7\", // emerald-300\n main: \"#34d399\", // emerald-400\n dark: \"#10b981\", // emerald-500\n contrastText: \"#09090b\",\n },\n text: {\n primary: \"rgba(255, 255, 255, 0.95)\",\n secondary: \"rgba(255, 255, 255, 0.7)\",\n disabled: \"rgba(255, 255, 255, 0.38)\",\n },\n background: {\n default: \"#09090b\",\n paper: \"#18181b\",\n surface: \"#18181b\",\n },\n divider: \"rgba(255, 255, 255, 0.12)\",\n action: {\n active: \"rgba(255, 255, 255, 0.7)\",\n hover: \"rgba(255, 255, 255, 0.08)\",\n hoverOpacity: 0.08,\n selected: \"rgba(255, 255, 255, 0.16)\",\n selectedOpacity: 0.16,\n disabled: \"rgba(255, 255, 255, 0.3)\",\n disabledBackground: \"rgba(255, 255, 255, 0.12)\",\n focus: \"rgba(255, 255, 255, 0.12)\",\n focusOpacity: 0.12,\n },\n};\n\nexport function createPalette(mode: ColorMode = \"light\"): Palette {\n return mode === \"dark\" ? darkPalette : lightPalette;\n}\n","import { TypographyTheme } from \"./types\";\n\nexport const defaultFontFamily =\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\"';\n\nexport const defaultTypography: TypographyTheme = {\n fontFamily: defaultFontFamily,\n fontSize: 14,\n fontWeightLight: 300,\n fontWeightRegular: 400,\n fontWeightMedium: 500,\n fontWeightBold: 700,\n h1: {\n fontFamily: defaultFontFamily,\n fontWeight: 300,\n fontSize: \"6rem\",\n lineHeight: 1.167,\n letterSpacing: \"-0.01562em\",\n },\n h2: {\n fontFamily: defaultFontFamily,\n fontWeight: 300,\n fontSize: \"3.75rem\",\n lineHeight: 1.2,\n letterSpacing: \"-0.00833em\",\n },\n h3: {\n fontFamily: defaultFontFamily,\n fontWeight: 400,\n fontSize: \"3rem\",\n lineHeight: 1.167,\n letterSpacing: \"0em\",\n },\n h4: {\n fontFamily: defaultFontFamily,\n fontWeight: 400,\n fontSize: \"2.125rem\",\n lineHeight: 1.235,\n letterSpacing: \"0.00735em\",\n },\n h5: {\n fontFamily: defaultFontFamily,\n fontWeight: 500,\n fontSize: \"1.5rem\",\n lineHeight: 1.334,\n letterSpacing: \"0em\",\n },\n h6: {\n fontFamily: defaultFontFamily,\n fontWeight: 500,\n fontSize: \"1.25rem\",\n lineHeight: 1.6,\n letterSpacing: \"0.0075em\",\n },\n subtitle1: {\n fontFamily: defaultFontFamily,\n fontWeight: 400,\n fontSize: \"1rem\",\n lineHeight: 1.75,\n letterSpacing: \"0.00938em\",\n },\n subtitle2: {\n fontFamily: defaultFontFamily,\n fontWeight: 500,\n fontSize: \"0.875rem\",\n lineHeight: 1.57,\n letterSpacing: \"0.00714em\",\n },\n body1: {\n fontFamily: defaultFontFamily,\n fontWeight: 400,\n fontSize: \"1rem\",\n lineHeight: 1.5,\n letterSpacing: \"0.00938em\",\n },\n body2: {\n fontFamily: defaultFontFamily,\n fontWeight: 400,\n fontSize: \"0.875rem\",\n lineHeight: 1.43,\n letterSpacing: \"0.01071em\",\n },\n button: {\n fontFamily: defaultFontFamily,\n fontWeight: 500,\n fontSize: \"0.875rem\",\n lineHeight: 1.75,\n letterSpacing: \"0.02857em\",\n textTransform: \"uppercase\",\n },\n caption: {\n fontFamily: defaultFontFamily,\n fontWeight: 400,\n fontSize: \"0.75rem\",\n lineHeight: 1.66,\n letterSpacing: \"0.03333em\",\n },\n overline: {\n fontFamily: defaultFontFamily,\n fontWeight: 400,\n fontSize: \"0.75rem\",\n lineHeight: 2.66,\n letterSpacing: \"0.08333em\",\n textTransform: \"uppercase\",\n },\n};\n","/**\n * Google Material Design 8px Spacing Grid Function\n *\n * Supports single and multi-argument invocations:\n * - spacing(1) => '8px'\n * - spacing(2) => '16px'\n * - spacing(1, 2) => '8px 16px'\n * - spacing(1, 2, 3, 4) => '8px 16px 24px 32px'\n * - spacing('auto') => 'auto'\n */\nexport function createSpacing(base = 8) {\n return (...factors: (number | string)[]): string => {\n if (factors.length === 0) return `${base}px`;\n\n return factors\n .map((factor) => {\n if (typeof factor === \"string\") return factor;\n return `${factor * base}px`;\n })\n .join(\" \");\n };\n}\n\nexport const defaultSpacing = createSpacing(8);\n","import { BreakpointKey, Breakpoints } from \"./types\";\n\nexport const defaultBreakpointValues: Record<BreakpointKey, number> = {\n xs: 0,\n sm: 600,\n md: 900,\n lg: 1200,\n xl: 1536,\n};\n\nexport const breakpointKeys: BreakpointKey[] = [\"xs\", \"sm\", \"md\", \"lg\", \"xl\"];\n\nexport function createBreakpoints(\n customValues?: Partial<Record<BreakpointKey, number>>\n): Breakpoints {\n const values: Record<BreakpointKey, number> = {\n ...defaultBreakpointValues,\n ...customValues,\n };\n\n const step = 5 / 100; // 0.05px\n\n const up = (key: BreakpointKey | number): string => {\n const value = typeof key === \"number\" ? key : values[key];\n return `@media (min-width:${value}px)`;\n };\n\n const down = (key: BreakpointKey | number): string => {\n const value = typeof key === \"number\" ? key : values[key];\n return `@media (max-width:${value - step}px)`;\n };\n\n const between = (\n start: BreakpointKey | number,\n end: BreakpointKey | number\n ): string => {\n const min = typeof start === \"number\" ? start : values[start];\n const max = typeof end === \"number\" ? end : values[end];\n return `@media (min-width:${min}px) and (max-width:${max - step}px)`;\n };\n\n const only = (key: BreakpointKey): string => {\n const index = breakpointKeys.indexOf(key);\n if (index === breakpointKeys.length - 1) {\n return up(key);\n }\n const nextKey = breakpointKeys[index + 1];\n return nextKey ? between(key, nextKey) : up(key);\n };\n\n return {\n values,\n up,\n down,\n between,\n only,\n };\n}\n\nexport const defaultBreakpoints = createBreakpoints();\n","/**\n * Google Material Design 24-Level Elevation Shadow Matrix\n *\n * Each shadow is composed of 3 distinct light-source formulas:\n * 1. Umbra: Key direct light source shadow\n * 2. Penumbra: Secondary ambient light shadow\n * 3. Ambient: Atmospheric fill shadow\n */\n\nconst umbra = [\n \"0px 0px 0px 0px\",\n \"0px 2px 1px -1px\",\n \"0px 3px 1px -2px\",\n \"0px 3px 3px -2px\",\n \"0px 2px 4px -1px\",\n \"0px 3px 5px -1px\",\n \"0px 3px 5px -1px\",\n \"0px 4px 5px -2px\",\n \"0px 5px 5px -3px\",\n \"0px 5px 6px -3px\",\n \"0px 6px 6px -3px\",\n \"0px 6px 7px -4px\",\n \"0px 7px 8px -4px\",\n \"0px 7px 8px -4px\",\n \"0px 7px 9px -4px\",\n \"0px 8px 9px -5px\",\n \"0px 8px 10px -5px\",\n \"0px 8px 11px -5px\",\n \"0px 9px 11px -5px\",\n \"0px 9px 12px -6px\",\n \"0px 10px 13px -6px\",\n \"0px 10px 13px -6px\",\n \"0px 10px 14px -6px\",\n \"0px 11px 14px -7px\",\n \"0px 11px 15px -7px\",\n];\n\nconst penumbra = [\n \"0px 0px 0px 0px\",\n \"0px 1px 1px 0px\",\n \"0px 2px 2px 0px\",\n \"0px 3px 4px 0px\",\n \"0px 4px 5px 0px\",\n \"0px 5px 8px 0px\",\n \"0px 6px 10px 0px\",\n \"0px 7px 10px 1px\",\n \"0px 8px 10px 1px\",\n \"0px 9px 12px 1px\",\n \"0px 10px 14px 1px\",\n \"0px 11px 15px 1px\",\n \"0px 12px 17px 2px\",\n \"0px 13px 19px 2px\",\n \"0px 14px 21px 2px\",\n \"0px 15px 22px 2px\",\n \"0px 16px 24px 2px\",\n \"0px 17px 26px 2px\",\n \"0px 18px 28px 2px\",\n \"0px 19px 29px 2px\",\n \"0px 20px 31px 3px\",\n \"0px 21px 33px 3px\",\n \"0px 22px 35px 3px\",\n \"0px 23px 36px 3px\",\n \"0px 24px 38px 3px\",\n];\n\nconst ambient = [\n \"0px 0px 0px 0px\",\n \"0px 1px 3px 0px\",\n \"0px 1px 5px 0px\",\n \"0px 1px 8px 0px\",\n \"0px 1px 10px 0px\",\n \"0px 1px 14px 0px\",\n \"0px 1px 18px 0px\",\n \"0px 2px 16px 1px\",\n \"0px 3px 14px 2px\",\n \"0px 3px 16px 2px\",\n \"0px 4px 18px 3px\",\n \"0px 4px 20px 3px\",\n \"0px 5px 22px 4px\",\n \"0px 5px 24px 4px\",\n \"0px 5px 26px 4px\",\n \"0px 6px 28px 5px\",\n \"0px 6px 30px 5px\",\n \"0px 6px 32px 5px\",\n \"0px 7px 34px 6px\",\n \"0px 7px 36px 6px\",\n \"0px 8px 38px 7px\",\n \"0px 8px 40px 7px\",\n \"0px 8px 42px 7px\",\n \"0px 9px 44px 8px\",\n \"0px 9px 46px 8px\",\n];\n\nexport function createShadows(): string[] {\n return umbra.map((u, i) => {\n if (i === 0) return \"none\";\n return `${u} rgba(0,0,0,0.2), ${penumbra[i]} rgba(0,0,0,0.14), ${ambient[i]} rgba(0,0,0,0.12)`;\n });\n}\n\nexport const defaultShadows = createShadows();\n","import { Transitions } from \"./types\";\n\nexport const defaultTransitions: Transitions = {\n easing: {\n easeInOut: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n easeOut: \"cubic-bezier(0.0, 0, 0.2, 1)\",\n easeIn: \"cubic-bezier(0.4, 0, 1, 1)\",\n sharp: \"cubic-bezier(0.4, 0, 0.6, 1)\",\n },\n duration: {\n shortest: 150,\n shorter: 200,\n short: 250,\n standard: 300,\n complex: 375,\n enteringScreen: 225,\n leavingScreen: 195,\n },\n create(\n props: string | string[] = [\"all\"],\n options: {\n duration?: number | string;\n easing?: string;\n delay?: number | string;\n } = {}\n ): string {\n const {\n duration = defaultTransitions.duration.standard,\n easing = defaultTransitions.easing.easeInOut,\n delay = 0,\n } = options;\n\n const formatDuration = (d: number | string) =>\n typeof d === \"string\" ? d : `${d}ms`;\n\n const formatDelay = (d: number | string) =>\n typeof d === \"string\" ? d : `${d}ms`;\n\n const properties = Array.isArray(props) ? props : [props];\n\n return properties\n .map(\n (prop) =>\n `${prop} ${formatDuration(duration)} ${easing} ${formatDelay(delay)}`\n )\n .join(\", \");\n },\n};\n","import { ZIndex } from \"./types\";\n\nexport const defaultZIndex: ZIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500,\n};\n","import { ChellaaTheme, ThemeOptions, ColorMode } from \"./types\";\nimport { createPalette } from \"./palette\";\nimport { defaultTypography } from \"./typography\";\nimport { defaultSpacing } from \"./spacing\";\nimport { defaultBreakpoints, createBreakpoints } from \"./breakpoints\";\nimport { defaultShadows } from \"./shadows\";\nimport { defaultTransitions } from \"./transitions\";\nimport { defaultZIndex } from \"./zIndex\";\n\n/**\n * Deep merge utility for theme options\n */\nfunction isObject(item: any): item is Record<string, any> {\n return item && typeof item === \"object\" && !Array.isArray(item);\n}\n\nfunction deepMerge(target: any, source: any): any {\n const output = { ...target };\n if (isObject(target) && isObject(source)) {\n Object.keys(source).forEach((key) => {\n if (isObject(source[key])) {\n if (!(key in target)) {\n Object.assign(output, { [key]: source[key] });\n } else {\n output[key] = deepMerge(target[key], source[key]);\n }\n } else {\n Object.assign(output, { [key]: source[key] });\n }\n });\n }\n return output;\n}\n\n/**\n * Creates a Chellaa Material Theme with 24-level elevation shadows,\n * 8px spacing, and complete Google Material 3 design tokens.\n *\n * @example\n * const theme = createTheme({\n * palette: {\n * mode: 'dark',\n * primary: { main: '#6366f1' }\n * },\n * shape: { borderRadius: 8 }\n * });\n */\nexport function createTheme(options: ThemeOptions = {}): ChellaaTheme {\n const mode: ColorMode = options.palette?.mode ?? \"light\";\n const basePalette = createPalette(mode);\n\n const mergedPalette = options.palette\n ? deepMerge(basePalette, options.palette)\n : basePalette;\n\n const mergedTypography = options.typography\n ? deepMerge(defaultTypography, options.typography)\n : defaultTypography;\n\n const mergedBreakpoints = options.breakpoints?.values\n ? createBreakpoints(options.breakpoints.values as any)\n : defaultBreakpoints;\n\n const spacing =\n typeof options.spacing === \"function\"\n ? (options.spacing as any)\n : defaultSpacing;\n\n const shape = {\n borderRadius: options.shape?.borderRadius ?? 4,\n };\n\n const shadows = (options.shadows as string[]) ?? defaultShadows;\n const transitions = options.transitions\n ? deepMerge(defaultTransitions, options.transitions)\n : defaultTransitions;\n const zIndex = options.zIndex\n ? deepMerge(defaultZIndex, options.zIndex)\n : defaultZIndex;\n\n return {\n palette: mergedPalette,\n typography: mergedTypography,\n spacing,\n shape,\n breakpoints: mergedBreakpoints,\n shadows,\n transitions,\n zIndex,\n components: (options.components as any) ?? {},\n };\n}\n\nexport const defaultTheme = createTheme({ palette: { mode: \"light\" } });\nexport const defaultDarkTheme = createTheme({ palette: { mode: \"dark\" } });\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ThemeProvider as EmotionThemeProvider } from \"@emotion/react\";\nimport { ChellaaTheme, ThemeOptions, ColorMode } from \"./types\";\nimport { createTheme, defaultTheme, defaultDarkTheme } from \"./createTheme\";\n\n// Ambient type augmentation for @emotion/react\ndeclare module \"@emotion/react\" {\n export interface Theme extends ChellaaTheme {}\n}\n\nexport type ThemeMode = \"light\" | \"dark\" | \"system\" | string;\n\nexport interface ThemeContextValue {\n theme: ThemeMode;\n setTheme: (theme: ThemeMode) => void;\n resolvedTheme: \"light\" | \"dark\";\n systemTheme: \"light\" | \"dark\" | undefined;\n activeTheme: ChellaaTheme;\n colorMode: ColorMode;\n setColorMode: (mode: ColorMode) => void;\n}\n\nexport const ThemeContext = React.createContext<ThemeContextValue | undefined>(\n undefined\n);\n\nexport interface ThemeProviderProps {\n children?: React.ReactNode;\n theme?: ChellaaTheme | ThemeOptions;\n defaultTheme?: ThemeMode;\n storageKey?: string;\n enableSystem?: boolean;\n tokens?: Record<string, string>;\n attribute?: string;\n}\n\nconst COLOR_SCHEME_QUERY = \"(prefers-color-scheme: dark)\";\n\nexport function ThemeProvider({\n children,\n theme: customThemeProp,\n defaultTheme: defaultThemeMode = \"system\",\n storageKey = \"chellaa-theme\",\n enableSystem = true,\n tokens,\n attribute = \"data-theme\",\n}: ThemeProviderProps) {\n const parentContext = React.useContext(ThemeContext);\n\n const [themeMode, setThemeModeState] = React.useState<ThemeMode>(() => {\n if (typeof window === \"undefined\") return defaultThemeMode;\n try {\n return (localStorage.getItem(storageKey) as ThemeMode) || defaultThemeMode;\n } catch {\n return defaultThemeMode;\n }\n });\n\n const [systemTheme, setSystemTheme] = React.useState<\n \"light\" | \"dark\" | undefined\n >(() => {\n if (\n typeof window === \"undefined\" ||\n !enableSystem ||\n typeof window.matchMedia !== \"function\"\n ) {\n return undefined;\n }\n return window.matchMedia(COLOR_SCHEME_QUERY).matches ? \"dark\" : \"light\";\n });\n\n // Calculate resolved theme (light or dark)\n const resolvedTheme: \"light\" | \"dark\" = React.useMemo(() => {\n if (themeMode === \"system\") {\n return systemTheme ?? \"light\";\n }\n return themeMode === \"dark\" ? \"dark\" : \"light\";\n }, [themeMode, systemTheme]);\n\n // Listen for OS system theme changes\n React.useEffect(() => {\n if (\n !enableSystem ||\n typeof window === \"undefined\" ||\n typeof window.matchMedia !== \"function\"\n ) {\n return;\n }\n\n const mediaQuery = window.matchMedia(COLOR_SCHEME_QUERY);\n const handleChange = (e: MediaQueryListEvent) => {\n setSystemTheme(e.matches ? \"dark\" : \"light\");\n };\n\n if (typeof mediaQuery.addEventListener === \"function\") {\n mediaQuery.addEventListener(\"change\", handleChange);\n return () => mediaQuery.removeEventListener(\"change\", handleChange);\n } else if (\n typeof (\n mediaQuery as {\n addListener?: (cb: (e: MediaQueryListEvent) => void) => void;\n }\n ).addListener === \"function\"\n ) {\n (\n mediaQuery as {\n addListener: (cb: (e: MediaQueryListEvent) => void) => void;\n }\n ).addListener(handleChange);\n return () =>\n (\n mediaQuery as {\n removeListener: (cb: (e: MediaQueryListEvent) => void) => void;\n }\n ).removeListener(handleChange);\n }\n }, [enableSystem]);\n\n // Compute active Emotion ChellaaTheme\n const activeTheme = React.useMemo<ChellaaTheme>(() => {\n if (customThemeProp) {\n // If full ChellaaTheme passed, respect its palette mode or override with resolvedTheme\n return createTheme({\n ...(customThemeProp as any),\n palette: {\n mode: resolvedTheme,\n ...((customThemeProp as any).palette || {}),\n },\n });\n }\n return resolvedTheme === \"dark\" ? defaultDarkTheme : defaultTheme;\n }, [customThemeProp, resolvedTheme]);\n\n // Apply data-theme attribute and CSS tokens to DOM\n React.useEffect(() => {\n if (typeof document === \"undefined\") return;\n\n if (!parentContext) {\n const root = document.documentElement;\n root.setAttribute(attribute, resolvedTheme);\n\n if (tokens) {\n for (const [key, value] of Object.entries(tokens)) {\n root.style.setProperty(key, value);\n }\n }\n }\n }, [resolvedTheme, parentContext, attribute, tokens]);\n\n const setTheme = React.useCallback(\n (newTheme: ThemeMode) => {\n setThemeModeState(newTheme);\n try {\n localStorage.setItem(storageKey, newTheme);\n } catch {\n // Ignore localStorage errors (e.g. private browsing mode)\n }\n },\n [storageKey]\n );\n\n const setColorMode = React.useCallback(\n (mode: ColorMode) => {\n setTheme(mode);\n },\n [setTheme]\n );\n\n const contextValue = React.useMemo<ThemeContextValue>(\n () => ({\n theme: themeMode,\n setTheme,\n resolvedTheme,\n systemTheme,\n activeTheme,\n colorMode: resolvedTheme,\n setColorMode,\n }),\n [themeMode, setTheme, resolvedTheme, systemTheme, activeTheme, setColorMode]\n );\n\n if (parentContext) {\n const styleObj = tokens\n ? (tokens as unknown as React.CSSProperties)\n : undefined;\n\n return (\n <ThemeContext.Provider value={contextValue}>\n <EmotionThemeProvider theme={activeTheme}>\n <div\n {...{ [attribute]: resolvedTheme }}\n style={styleObj}\n className=\"cl-theme-scope\"\n >\n {children}\n </div>\n </EmotionThemeProvider>\n </ThemeContext.Provider>\n );\n }\n\n return (\n <ThemeContext.Provider value={contextValue}>\n <EmotionThemeProvider theme={activeTheme}>{children}</EmotionThemeProvider>\n </ThemeContext.Provider>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { useTheme as useEmotionTheme } from \"@emotion/react\";\nimport { ThemeContext, type ThemeContextValue } from \"./ThemeProvider\";\nimport { ChellaaTheme } from \"./types\";\nimport { defaultTheme } from \"./createTheme\";\n\nexport interface ExtendedThemeContextValue extends ThemeContextValue {\n /** The active ChellaaTheme object (colors, typography, spacing, shadows) */\n themeObject: ChellaaTheme;\n}\n\n/**\n * Accesses the active theme context, allowing components to read and update\n * the current theme mode (`light`, `dark`, `system`), resolved theme, and active ChellaaTheme.\n */\nexport function useTheme(): ExtendedThemeContextValue {\n const context = React.useContext(ThemeContext);\n const emotionTheme = useEmotionTheme() as ChellaaTheme | undefined;\n\n if (context) {\n return {\n ...context,\n themeObject: context.activeTheme,\n };\n }\n\n if (emotionTheme && emotionTheme.palette) {\n return {\n theme: emotionTheme.palette.mode,\n setTheme: () => {},\n resolvedTheme: emotionTheme.palette.mode,\n systemTheme: undefined,\n activeTheme: emotionTheme,\n colorMode: emotionTheme.palette.mode,\n setColorMode: () => {},\n themeObject: emotionTheme,\n };\n }\n\n // Graceful fallback to defaultTheme if used outside ThemeProvider\n return {\n theme: \"light\",\n setTheme: () => {},\n resolvedTheme: \"light\",\n systemTheme: undefined,\n activeTheme: defaultTheme,\n colorMode: \"light\",\n setColorMode: () => {},\n themeObject: defaultTheme,\n };\n}\n","export interface ThemeScriptProps {\n storageKey?: string;\n defaultTheme?: string;\n attribute?: string;\n nonce?: string;\n}\n\n/**\n * Inline synchronous script that prevents theme flash (FOUC) during SSR page load.\n * Place inside the `<head>` of your application layout.\n */\nexport function ThemeScript({\n storageKey = \"chellaa-theme\",\n defaultTheme = \"system\",\n attribute = \"data-theme\",\n nonce,\n}: ThemeScriptProps) {\n const scriptContent = `(function() {\n try {\n var key = '${storageKey}';\n var def = '${defaultTheme}';\n var attr = '${attribute}';\n var stored = localStorage.getItem(key);\n var theme = stored || def;\n var resolved = theme;\n if (theme === 'system') {\n resolved = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n }\n document.documentElement.setAttribute(attr, resolved);\n } catch (e) {}\n})();`;\n\n return (\n <script\n nonce={nonce}\n dangerouslySetInnerHTML={{ __html: scriptContent }}\n suppressHydrationWarning\n />\n );\n}\n","const defaultBlockedProps = new Set<string>([\n \"sx\",\n \"theme\",\n \"as\",\n \"ownerState\",\n \"slotProps\",\n]);\n\n/**\n * Creates a shouldForwardProp predicate function for Emotion styled components.\n * Automatically filters out transient props starting with '$' and default system props.\n *\n * @param customBlocked Array or Set of additional prop names to prevent forwarding to DOM\n */\nexport function createShouldForwardProp(\n customBlocked?: (string | PropertyKey)[] | Set<string | PropertyKey>\n): (prop: PropertyKey) => boolean {\n const blockedSet = new Set(defaultBlockedProps);\n\n if (customBlocked) {\n customBlocked.forEach((prop) => blockedSet.add(prop as string));\n }\n\n return (prop: PropertyKey): boolean => {\n if (typeof prop === \"string\" && prop.startsWith(\"$\")) {\n return false;\n }\n return !blockedSet.has(prop as string);\n };\n}\n\n/**\n * Default root shouldForwardProp filter.\n * Blocks 'sx', 'theme', 'as', 'ownerState', 'slotProps', and '$*'.\n */\nexport const rootShouldForwardProp = createShouldForwardProp();\n","import type { BreakpointKey, ChellaaTheme } from \"../theme/types\";\nimport { breakpointKeys } from \"../theme/breakpoints\";\nimport { defaultTheme } from \"../theme/createTheme\";\nimport type { SxProps, SxObject } from \"./types\";\n\nconst spacingProperties: Record<string, string[]> = {\n m: [\"margin\"],\n margin: [\"margin\"],\n mt: [\"marginTop\"],\n marginTop: [\"marginTop\"],\n mr: [\"marginRight\"],\n marginRight: [\"marginRight\"],\n mb: [\"marginBottom\"],\n marginBottom: [\"marginBottom\"],\n ml: [\"marginLeft\"],\n marginLeft: [\"marginLeft\"],\n mx: [\"marginInline\"],\n marginInline: [\"marginInline\"],\n my: [\"marginBlock\"],\n marginBlock: [\"marginBlock\"],\n\n p: [\"padding\"],\n padding: [\"padding\"],\n pt: [\"paddingTop\"],\n paddingTop: [\"paddingTop\"],\n pr: [\"paddingRight\"],\n paddingRight: [\"paddingRight\"],\n pb: [\"paddingBottom\"],\n paddingBottom: [\"paddingBottom\"],\n pl: [\"paddingLeft\"],\n paddingLeft: [\"paddingLeft\"],\n px: [\"paddingInline\"],\n paddingInline: [\"paddingInline\"],\n py: [\"paddingBlock\"],\n paddingBlock: [\"paddingBlock\"],\n\n gap: [\"gap\"],\n rowGap: [\"rowGap\"],\n columnGap: [\"columnGap\"],\n};\n\n/**\n * Resolves nested property path in theme palette (e.g. 'primary.main', 'text.secondary')\n */\nfunction resolvePalettePath(palette: ChellaaTheme[\"palette\"], path: string): string | undefined {\n if (!path || typeof path !== \"string\") return undefined;\n const parts = path.split(\".\");\n let current: any = palette;\n for (const part of parts) {\n if (current && typeof current === \"object\" && part in current) {\n current = current[part];\n } else {\n return undefined;\n }\n }\n return typeof current === \"string\" ? current : undefined;\n}\n\n/**\n * Resolves color values against theme palette\n */\nfunction resolveColor(theme: ChellaaTheme, value: any): any {\n if (typeof value !== \"string\") return value;\n const resolved = resolvePalettePath(theme.palette, value);\n return resolved ?? value;\n}\n\n/**\n * Resolves z-index token names against theme.zIndex\n */\nfunction resolveZIndex(theme: ChellaaTheme, value: any): any {\n if (typeof value === \"string\" && value in theme.zIndex) {\n return theme.zIndex[value as keyof typeof theme.zIndex];\n }\n return value;\n}\n\n/**\n * Resolves a single CSS property name and value into one or more CSS declarations\n */\nfunction resolveSingleProperty(\n theme: ChellaaTheme,\n prop: string,\n value: any\n): Record<string, any> {\n if (value === undefined || value === null) return {};\n\n // 1. Spacing properties\n if (prop in spacingProperties) {\n const cssProps = spacingProperties[prop]!;\n const formatted = typeof value === \"number\" ? theme.spacing(value) : value;\n const result: Record<string, any> = {};\n for (const cssProp of cssProps) {\n result[cssProp] = formatted;\n }\n return result;\n }\n\n // 2. Background color shorthand\n if (prop === \"bgcolor\") {\n return { backgroundColor: resolveColor(theme, value) };\n }\n\n // 3. Color properties\n if (\n prop === \"color\" ||\n prop === \"backgroundColor\" ||\n prop === \"borderColor\" ||\n prop === \"outlineColor\"\n ) {\n return { [prop]: resolveColor(theme, value) };\n }\n\n // 4. Elevation / BoxShadow\n if (prop === \"elevation\") {\n if (typeof value === \"number\" && theme.shadows[value]) {\n return { boxShadow: theme.shadows[value] };\n }\n return {};\n }\n if (prop === \"boxShadow\") {\n if (typeof value === \"number\" && theme.shadows[value]) {\n return { boxShadow: theme.shadows[value] };\n }\n return { boxShadow: value };\n }\n\n // 5. Border radius\n if (prop === \"borderRadius\") {\n if (typeof value === \"number\") {\n const radius = theme.shape?.borderRadius ?? 4;\n return { borderRadius: `${value * radius}px` };\n }\n return { borderRadius: value };\n }\n\n // 6. Z-Index\n if (prop === \"zIndex\") {\n return { zIndex: resolveZIndex(theme, value) };\n }\n\n // 7. Standard CSS Property pass-through\n return { [prop]: value };\n}\n\nfunction isObject(val: any): val is Record<string, any> {\n return val !== null && typeof val === \"object\" && !Array.isArray(val);\n}\n\n/**\n * Checks if a value is responsive (either an array or breakpoint keyed object)\n */\nfunction isResponsiveValue(val: any): boolean {\n if (Array.isArray(val)) return true;\n if (isObject(val)) {\n return Object.keys(val).some((k) => breakpointKeys.includes(k as BreakpointKey));\n }\n return false;\n}\n\n/**\n * Parses an individual SxObject with the current theme\n */\nfunction parseSxObject(\n theme: ChellaaTheme,\n sxObject: SxObject\n): Record<string, any> {\n const result: Record<string, any> = {};\n\n for (const [key, value] of Object.entries(sxObject)) {\n if (value === undefined || value === null) continue;\n\n // Handle nested selectors / media queries (&:hover, @media, etc.)\n if (key.startsWith(\"&\") || key.startsWith(\"@\") || key.startsWith(\".\")) {\n if (typeof value === \"function\") {\n result[key] = parseSxObject(theme, value(theme));\n } else if (isObject(value)) {\n result[key] = parseSxObject(theme, value as SxObject);\n }\n continue;\n }\n\n // Handle responsive values: array syntax [val1, val2, val3]\n if (Array.isArray(value)) {\n value.forEach((bpVal, index) => {\n if (bpVal === undefined || bpVal === null) return;\n const bpKey = breakpointKeys[index];\n if (!bpKey) return;\n\n const resolved = resolveSingleProperty(theme, key, bpVal);\n if (bpKey === \"xs\") {\n Object.assign(result, resolved);\n } else {\n const media = theme.breakpoints.up(bpKey);\n result[media] = {\n ...(result[media] || {}),\n ...resolved,\n };\n }\n });\n continue;\n }\n\n // Handle responsive values: object syntax { xs: val1, md: val2 }\n if (isResponsiveValue(value)) {\n const respObj = value as Partial<Record<BreakpointKey, any>>;\n for (const [bpKey, bpVal] of Object.entries(respObj)) {\n if (bpVal === undefined || bpVal === null) continue;\n\n const resolved = resolveSingleProperty(theme, key, bpVal);\n if (bpKey === \"xs\") {\n Object.assign(result, resolved);\n } else if (breakpointKeys.includes(bpKey as BreakpointKey)) {\n const media = theme.breakpoints.up(bpKey as BreakpointKey);\n result[media] = {\n ...(result[media] || {}),\n ...resolved,\n };\n }\n }\n continue;\n }\n\n // Handle nested sub-object that is not a selector or responsive breakpoint\n if (isObject(value)) {\n result[key] = parseSxObject(theme, value as SxObject);\n continue;\n }\n\n // Standard single property resolution\n const resolved = resolveSingleProperty(theme, key, value);\n Object.assign(result, resolved);\n }\n\n return result;\n}\n\n/**\n * Core responsive `sx` parser function.\n * Evaluates `sx` prop against current theme, expanding:\n * - Theme spacing shortcuts (m, p, mx, my, px, py, etc.)\n * - Theme palette tokens (color, bgcolor: 'primary.main', 'text.secondary')\n * - Elevation shadows (elevation: 0..24, boxShadow: 0..24)\n * - Breakpoint responsive arrays ([1, 2, 4]) and objects ({ xs: 1, md: 4 })\n * - Pseudo-classes (&:hover, &:focus) and nested selectors\n * - Theme function callbacks: `(theme) => ({ ... })`\n * - Array of sx items: `[sx1, condition && sx2, (theme) => sx3]`\n */\nexport function parseSx(\n themeInput?: ChellaaTheme,\n sx?: SxProps\n): Record<string, any> {\n if (!sx) return {};\n const theme =\n themeInput && typeof themeInput.spacing === \"function\"\n ? themeInput\n : defaultTheme;\n\n // If sx is a function, execute with theme\n if (typeof sx === \"function\") {\n return parseSxObject(theme, sx(theme));\n }\n\n // If sx is an array, merge in sequence\n if (Array.isArray(sx)) {\n return sx.reduce<Record<string, any>>((acc, item) => {\n if (!item) return acc;\n const parsed = parseSx(theme, item);\n return deepMergeStyles(acc, parsed);\n }, {});\n }\n\n // Object sx\n if (isObject(sx)) {\n return parseSxObject(theme, sx);\n }\n\n return {};\n}\n\n/**\n * Deep merge utility for style objects to safely merge nested media queries and selectors\n */\nfunction deepMergeStyles(\n target: Record<string, any>,\n source: Record<string, any>\n): Record<string, any> {\n const result: Record<string, any> = { ...target };\n\n for (const [key, value] of Object.entries(source)) {\n if (\n isObject(value) &&\n isObject(result[key]) &&\n !Array.isArray(value) &&\n !Array.isArray(result[key])\n ) {\n result[key] = deepMergeStyles(result[key], value);\n } else {\n result[key] = value;\n }\n }\n\n return result;\n}\n","import type { ChellaaTheme } from \"../theme/types\";\n\nexport interface ComponentOverrideOptions {\n name?: string;\n slot?: string;\n overridesResolver?: (\n props: any,\n styles: Record<string, any>\n ) => Record<string, any> | undefined;\n}\n\n/**\n * Resolves component-level style overrides defined in theme.components[name].styleOverrides\n * Supports both static style objects and dynamic functions: `({ theme, ownerState }) => ({ ... })`\n */\nexport function resolveComponentOverrides(\n theme: ChellaaTheme,\n options: ComponentOverrideOptions,\n props: Record<string, any>\n): Record<string, any> | undefined {\n const { name, slot = \"root\", overridesResolver } = options;\n if (!name || !theme.components?.[name]) {\n return undefined;\n }\n\n const componentConfig = theme.components[name];\n const styleOverrides = componentConfig.styleOverrides;\n if (!styleOverrides) {\n return undefined;\n }\n\n // If custom overrides resolver is supplied, execute it\n if (overridesResolver) {\n const resolved = overridesResolver(props, styleOverrides);\n if (resolved) return resolved;\n }\n\n // Fallback to slot-based lookup\n const slotLower = slot.toLowerCase();\n const matchedKey = Object.keys(styleOverrides).find(\n (k) => k.toLowerCase() === slotLower\n );\n\n if (matchedKey) {\n const override = styleOverrides[matchedKey];\n if (typeof override === \"function\") {\n return override({ theme, ownerState: props.ownerState ?? props });\n }\n return override;\n }\n\n return undefined;\n}\n","import React from \"react\";\nimport emotionStyled from \"@emotion/styled\";\nimport type { ChellaaTheme } from \"../theme/types\";\nimport { defaultTheme } from \"../theme/createTheme\";\nimport { rootShouldForwardProp } from \"./shouldForwardProp\";\nimport { parseSx } from \"./sx\";\nimport { resolveComponentOverrides } from \"./componentOverrides\";\nimport type { StyledOptions, SxProps } from \"./types\";\n\nexport type StyleInterpolation<Props extends object = {}> =\n | Record<string, any>\n | ((props: Props & { theme: ChellaaTheme }) => Record<string, any> | undefined | null | false);\n\n/**\n * Creates an Emotion-powered styled component with:\n * 1. Automatic `sx` prop parsing with responsive breakpoints & 8px theme spacing.\n * 2. Automatic resolution of `theme.components[name].styleOverrides[slot]`.\n * 3. Safe DOM prop filtering via `shouldForwardProp` preventing `sx` and private props from leaking.\n * 4. First-class polymorphism via `as` prop.\n *\n * @example\n * const MyBox = styled('div', {\n * name: 'ChellaaBox',\n * slot: 'Root'\n * })({\n * boxSizing: 'border-box'\n * });\n */\nexport function styled<\n Component extends React.ElementType,\n ExtraProps extends object = {}\n>(\n component: Component,\n options: StyledOptions<ExtraProps> = {}\n) {\n const {\n name,\n slot = \"Root\",\n label,\n target,\n shouldForwardProp: customShouldForwardProp,\n skipSx = false,\n } = options;\n\n const resolvedShouldForwardProp = customShouldForwardProp\n ? (prop: PropertyKey) =>\n rootShouldForwardProp(prop) && customShouldForwardProp(prop)\n : rootShouldForwardProp;\n\n const resolvedLabel = label ?? (name ? `${name}-${slot}` : undefined);\n\n const emotionOptions: {\n shouldForwardProp?: (prop: PropertyKey) => boolean;\n label?: string;\n target?: string;\n } = {\n shouldForwardProp: resolvedShouldForwardProp,\n };\n\n if (resolvedLabel !== undefined) {\n emotionOptions.label = resolvedLabel;\n }\n if (target !== undefined) {\n emotionOptions.target = target;\n }\n\n const emotionCreator = emotionStyled(component as any, emotionOptions);\n\n return <Props extends object = ExtraProps>(\n ...interpolations: StyleInterpolation<\n Props & { sx?: SxProps; as?: React.ElementType }\n >[]\n ) => {\n const wrappedInterpolations = interpolations.map((interpolation) => {\n if (typeof interpolation === \"function\") {\n return (rawProps: any) => {\n const activeTheme =\n rawProps.theme && typeof rawProps.theme.spacing === \"function\"\n ? (rawProps.theme as ChellaaTheme)\n : defaultTheme;\n return interpolation({\n ...rawProps,\n theme: activeTheme,\n });\n };\n }\n return interpolation;\n });\n\n return emotionCreator(\n // 1. Base component styles\n ...(wrappedInterpolations as any[]),\n\n // 2. Global theme overrides from theme.components[name].styleOverrides[slot]\n (props: any) => {\n if (!name) return null;\n const activeTheme =\n props.theme && typeof props.theme.spacing === \"function\"\n ? (props.theme as ChellaaTheme)\n : defaultTheme;\n return resolveComponentOverrides(activeTheme, options, props);\n },\n\n // 3. Local sx prop styles (highest precedence)\n (props: any) => {\n if (skipSx || !props.sx) return null;\n const activeTheme =\n props.theme && typeof props.theme.spacing === \"function\"\n ? (props.theme as ChellaaTheme)\n : defaultTheme;\n return parseSx(activeTheme, props.sx);\n }\n );\n };\n}\n","export type ClassValue =\n | string\n | number\n | boolean\n | undefined\n | null\n | Record<string, boolean | number | undefined | null>\n | ClassValue[];\n\n/**\n * Combines multiple conditional class names into a clean space-delimited string.\n * Zero external runtime dependencies.\n *\n * @example\n * classNames('cl-button', isActive && 'cl-button--active', { 'cl-button--disabled': isDisabled });\n */\nexport function classNames(...inputs: ClassValue[]): string {\n const classes: string[] = [];\n\n for (const input of inputs) {\n if (!input && input !== 0) continue;\n\n if (typeof input === \"string\" || typeof input === \"number\") {\n const trimmed = String(input).trim();\n if (trimmed) classes.push(trimmed);\n } else if (Array.isArray(input)) {\n const nested = classNames(...input);\n if (nested) classes.push(nested);\n } else if (typeof input === \"object\") {\n for (const [key, value] of Object.entries(input)) {\n if (value && key.trim()) {\n classes.push(key.trim());\n }\n }\n }\n }\n\n return classes.join(\" \");\n}\n","/**\n * Composes an optional consumer event handler with an internal library event handler.\n * If the consumer handler calls event.preventDefault(), the internal handler is skipped,\n * preserving consumer control over event delegation.\n *\n * @param originalHandler Optional consumer-provided event handler\n * @param ourHandler Internal component event handler\n * @param options Configuration options\n */\nexport function composeEventHandlers<E extends { defaultPrevented: boolean }>(\n originalHandler?: ((event: E) => void) | undefined,\n ourHandler?: ((event: E) => void) | undefined,\n {\n checkForDefaultPrevented = true,\n }: { checkForDefaultPrevented?: boolean } = {},\n): (event: E) => void {\n return function handleEvent(event: E) {\n originalHandler?.(event);\n\n if (!checkForDefaultPrevented || !event.defaultPrevented) {\n ourHandler?.(event);\n }\n };\n}\n","import * as React from \"react\";\n\ntype PossibleRef<T> = React.Ref<T> | undefined;\n\n/**\n * Assigns a value to a React ref (either RefCallback or MutableRefObject).\n */\nexport function setRef<T>(ref: PossibleRef<T>, value: T | null): void {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== undefined) {\n (ref as React.MutableRefObject<T | null>).current = value;\n }\n}\n\n/**\n * Combines multiple React refs into a single RefCallback.\n * Handles both object refs and callback refs, with proper unmount cleanup.\n */\nexport function useMergeRefs<T>(\n ...refs: PossibleRef<T>[]\n): React.RefCallback<T> {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback((current: T | null) => {\n for (const ref of refs) {\n setRef(ref, current);\n }\n }, refs);\n}\n","import * as React from \"react\";\nimport { classNames } from \"../utils/classNames\";\nimport { composeEventHandlers } from \"../utils/composeEventHandlers\";\nimport { setRef } from \"../hooks/useMergeRefs\";\n\nexport interface SlotProps extends React.HTMLAttributes<HTMLElement> {\n children?: React.ReactNode;\n}\n\n/**\n * Merges Slot props onto its immediate child element.\n * Preserves child identity, merges classNames, styles, ref forwarding, and event handlers.\n */\nexport const Slot = React.forwardRef<HTMLElement, SlotProps>(\n function Slot(props, forwardedRef) {\n const { children, ...slotProps } = props;\n\n if (React.isValidElement(children)) {\n return React.cloneElement(\n children,\n mergeProps(\n slotProps,\n children.props as Record<string, unknown>,\n forwardedRef,\n getElementRef(children),\n ),\n );\n }\n\n if (React.Children.count(children) > 1) {\n React.Children.only(null); // Will throw informative React.Children.only error\n }\n\n return null;\n },\n);\n\nSlot.displayName = \"Slot\";\n\n/**\n * Extracts a ref from a React element across React 18 and React 19.\n */\nfunction getElementRef(\n element: React.ReactElement,\n): React.Ref<HTMLElement> | undefined {\n // In React 18 and earlier, ref is a property on the element instance.\n // In React 19, ref is passed as a standard prop.\n // Checking element.ref first avoids the React 18 special-props warning.\n const elementRef = (element as unknown as { ref?: React.Ref<HTMLElement> })\n ?.ref;\n if (elementRef !== undefined) {\n return elementRef;\n }\n return (element.props as { ref?: React.Ref<HTMLElement> })?.ref;\n}\n\n/**\n * Merges slot parent props with child props.\n */\nfunction mergeProps(\n slotProps: Record<string, unknown>,\n childProps: Record<string, unknown>,\n slotRef: React.Ref<HTMLElement>,\n childRef?: React.Ref<HTMLElement>,\n): Record<string, unknown> {\n const overrideProps: Record<string, unknown> = { ...childProps };\n\n for (const propName in slotProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n\n const isEventHandler = /^on[A-Z]/.test(propName);\n\n if (isEventHandler) {\n if (\n typeof slotPropValue === \"function\" &&\n typeof childPropValue === \"function\"\n ) {\n overrideProps[propName] = composeEventHandlers(\n childPropValue as (event: { defaultPrevented: boolean }) => void,\n slotPropValue as (event: { defaultPrevented: boolean }) => void,\n );\n } else if (typeof slotPropValue === \"function\") {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"className\") {\n overrideProps[propName] = classNames(\n slotPropValue as string | undefined,\n childPropValue as string | undefined,\n );\n } else if (propName === \"style\") {\n overrideProps[propName] = {\n ...(slotPropValue as React.CSSProperties | undefined),\n ...(childPropValue as React.CSSProperties | undefined),\n };\n } else {\n overrideProps[propName] =\n slotPropValue !== undefined ? slotPropValue : childPropValue;\n }\n }\n\n // Ref merging\n overrideProps.ref = (node: HTMLElement | null) => {\n setRef(childRef, node);\n setRef(slotRef, node);\n };\n\n return overrideProps;\n}\n","import * as React from \"react\";\nimport type { ButtonGroupContextValue } from \"./ButtonGroup.types\";\n\nexport const ButtonGroupContext = React.createContext<\n ButtonGroupContextValue | undefined\n>(undefined);\n\n/**\n * Hook to access parent ButtonGroup context if present.\n */\nexport function useButtonGroupContext(): ButtonGroupContextValue | undefined {\n return React.useContext(ButtonGroupContext);\n}\n","import * as React from \"react\";\nimport { keyframes } from \"@emotion/react\";\nimport { styled } from \"../system/styled\";\n\nconst enterKeyframe = keyframes`\n 0% {\n transform: scale(0);\n opacity: 0.1;\n }\n 100% {\n transform: scale(1);\n opacity: 0.3;\n }\n`;\n\nconst exitKeyframe = keyframes`\n 0% {\n opacity: 0.3;\n }\n 100% {\n opacity: 0;\n }\n`;\n\nconst pulsateKeyframe = keyframes`\n 0% {\n transform: scale(1);\n }\n 50% {\n transform: scale(0.92);\n }\n 100% {\n transform: scale(1);\n }\n`;\n\nexport interface RippleItem {\n key: number;\n rippleX: number;\n rippleY: number;\n rippleSize: number;\n pulsating?: boolean;\n leaving?: boolean;\n}\n\nexport interface TouchRippleRef {\n start: (\n event?: React.SyntheticEvent,\n options?: { pulsate?: boolean; center?: boolean }\n ) => void;\n stop: (event?: React.SyntheticEvent) => void;\n pulsate: () => void;\n}\n\nexport interface TouchRippleProps extends React.HTMLAttributes<HTMLSpanElement> {\n /**\n * If true, the ripple will center on the element rather than pointer coordinates\n */\n center?: boolean;\n className?: string;\n}\n\nconst TouchRippleRoot = styled(\"span\", {\n name: \"ChellaaTouchRipple\",\n slot: \"Root\",\n})({\n overflow: \"hidden\",\n pointerEvents: \"none\",\n position: \"absolute\",\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: \"inherit\",\n});\n\nconst StyledRippleSpan = styled(\"span\", {\n shouldForwardProp: (prop) =>\n prop !== \"pulsating\" && prop !== \"leaving\",\n})<{ pulsating?: boolean; leaving?: boolean }>(({ pulsating, leaving }) => ({\n position: \"absolute\",\n borderRadius: \"50%\",\n backgroundColor: \"currentColor\",\n opacity: 0.3,\n animation: `${enterKeyframe} 550ms cubic-bezier(0.4, 0, 0.2, 1)`,\n ...(pulsating && {\n animation: `${pulsateKeyframe} 2500ms ease-in-out infinite 200ms`,\n }),\n ...(leaving && {\n opacity: 0,\n animation: `${exitKeyframe} 550ms cubic-bezier(0.4, 0, 0.2, 1) forwards`,\n }),\n}));\n\n/**\n * TouchRipple component delivers tactile Material Design touch/click ripple animations.\n */\nexport const TouchRipple = React.forwardRef<TouchRippleRef, TouchRippleProps>(\n function TouchRipple(props, ref) {\n const { center: centerProp = false, className, ...rest } = props;\n const [ripples, setRipples] = React.useState<RippleItem[]>([]);\n const nextKey = React.useRef(0);\n const containerRef = React.useRef<HTMLSpanElement | null>(null);\n\n const start = React.useCallback(\n (\n event?: React.SyntheticEvent,\n options: { pulsate?: boolean; center?: boolean } = {}\n ) => {\n const { pulsate = false, center = centerProp || pulsate } = options;\n\n const container = containerRef.current;\n if (!container) return;\n\n const rect = container.getBoundingClientRect();\n\n let rippleX: number;\n let rippleY: number;\n let rippleSize: number;\n\n if (\n center ||\n !event ||\n (event.nativeEvent as any).clientX === undefined\n ) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n rippleSize = Math.max(rect.width, rect.height);\n } else {\n const clientX =\n (event.nativeEvent as any).clientX ??\n (event.nativeEvent as any).touches?.[0]?.clientX;\n const clientY =\n (event.nativeEvent as any).clientY ??\n (event.nativeEvent as any).touches?.[0]?.clientY;\n\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n\n const sizeX =\n Math.max(Math.abs(container.clientWidth - rippleX), rippleX) * 2 + 2;\n const sizeY =\n Math.max(Math.abs(container.clientHeight - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);\n }\n\n const currentKey = nextKey.current;\n nextKey.current += 1;\n\n setRipples((prev) => [\n ...prev,\n {\n key: currentKey,\n rippleX,\n rippleY,\n rippleSize,\n pulsating: pulsate,\n leaving: false,\n },\n ]);\n },\n [centerProp]\n );\n\n const stop = React.useCallback(() => {\n setRipples((prev) => {\n if (prev.length === 0) return prev;\n return prev.map((ripple) => ({ ...ripple, leaving: true }));\n });\n\n // Cleanup finished ripples after transition animation completes\n setTimeout(() => {\n setRipples((prev) => prev.filter((r) => !r.leaving));\n }, 550);\n }, []);\n\n const pulsate = React.useCallback(() => {\n start(undefined, { pulsate: true });\n }, [start]);\n\n React.useImperativeHandle(\n ref,\n () => ({\n start,\n stop,\n pulsate,\n }),\n [start, stop, pulsate]\n );\n\n return (\n <TouchRippleRoot\n ref={containerRef}\n className={className}\n aria-hidden=\"true\"\n {...rest}\n >\n {ripples.map((item) => {\n const style: React.CSSProperties = {\n width: `${item.rippleSize}px`,\n height: `${item.rippleSize}px`,\n top: `${-(item.rippleSize / 2) + item.rippleY}px`,\n left: `${-(item.rippleSize / 2) + item.rippleX}px`,\n };\n\n return (\n <StyledRippleSpan\n key={item.key}\n pulsating={item.pulsating}\n leaving={item.leaving}\n style={style}\n />\n );\n })}\n </TouchRippleRoot>\n );\n }\n);\n\nTouchRipple.displayName = \"TouchRipple\";\n","import * as React from \"react\";\nimport type { TouchRippleRef, TouchRippleProps } from \"./TouchRipple\";\nimport { composeEventHandlers } from \"../utils/composeEventHandlers\";\n\nexport interface UseRippleOptions {\n disabled?: boolean;\n disableRipple?: boolean;\n center?: boolean;\n}\n\nexport interface UseRippleReturn {\n rippleRef: React.RefObject<TouchRippleRef>;\n rippleProps: TouchRippleProps & { ref: React.RefObject<TouchRippleRef> };\n getRippleHandlers: <T extends Record<string, any>>(props?: T) => T;\n}\n\n/**\n * Hook connecting user interactions (pointer/touch/keyboard) to TouchRipple.\n */\nexport function useRipple(options: UseRippleOptions = {}): UseRippleReturn {\n const { disabled = false, disableRipple = false, center = false } = options;\n const rippleRef = React.useRef<TouchRippleRef>(null);\n\n const onMouseDown = React.useCallback(\n (event: React.MouseEvent) => {\n if (disabled || disableRipple) return;\n rippleRef.current?.start(event);\n },\n [disabled, disableRipple]\n );\n\n const onMouseUp = React.useCallback(\n (event: React.MouseEvent) => {\n if (disabled || disableRipple) return;\n rippleRef.current?.stop(event);\n },\n [disabled, disableRipple]\n );\n\n const onMouseLeave = React.useCallback(\n (event: React.MouseEvent) => {\n if (disabled || disableRipple) return;\n rippleRef.current?.stop(event);\n },\n [disabled, disableRipple]\n );\n\n const onTouchStart = React.useCallback(\n (event: React.TouchEvent) => {\n if (disabled || disableRipple) return;\n rippleRef.current?.start(event);\n },\n [disabled, disableRipple]\n );\n\n const onTouchEnd = React.useCallback(\n (event: React.TouchEvent) => {\n if (disabled || disableRipple) return;\n rippleRef.current?.stop(event);\n },\n [disabled, disableRipple]\n );\n\n const onKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (disabled || disableRipple) return;\n if (event.key === \" \" || event.key === \"Enter\") {\n rippleRef.current?.start(undefined, { pulsate: true });\n }\n },\n [disabled, disableRipple]\n );\n\n const onKeyUp = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (disabled || disableRipple) return;\n if (event.key === \" \" || event.key === \"Enter\") {\n rippleRef.current?.stop();\n }\n },\n [disabled, disableRipple]\n );\n\n const onBlur = React.useCallback(() => {\n rippleRef.current?.stop();\n }, []);\n\n const getRippleHandlers = React.useCallback(\n <T extends Record<string, any>>(props: T = {} as T): T => {\n return {\n ...props,\n onMouseDown: composeEventHandlers(props.onMouseDown, onMouseDown),\n onMouseUp: composeEventHandlers(props.onMouseUp, onMouseUp),\n onMouseLeave: composeEventHandlers(props.onMouseLeave, onMouseLeave),\n onTouchStart: composeEventHandlers(props.onTouchStart, onTouchStart),\n onTouchEnd: composeEventHandlers(props.onTouchEnd, onTouchEnd),\n onKeyDown: composeEventHandlers(props.onKeyDown, onKeyDown),\n onKeyUp: composeEventHandlers(props.onKeyUp, onKeyUp),\n onBlur: composeEventHandlers(props.onBlur, onBlur),\n };\n },\n [\n onMouseDown,\n onMouseUp,\n onMouseLeave,\n onTouchStart,\n onTouchEnd,\n onKeyDown,\n onKeyUp,\n onBlur,\n ]\n );\n\n return {\n rippleRef,\n rippleProps: {\n ref: rippleRef,\n center,\n },\n getRippleHandlers,\n };\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useButtonGroupContext } from \"../ButtonGroup/ButtonGroupContext\";\nimport { styled } from \"../../system/styled\";\nimport { TouchRipple } from \"../../ripple/TouchRipple\";\nimport { useRipple } from \"../../ripple/useRipple\";\nimport type { ButtonProps } from \"./Button.types\";\n\n/**\n * Animated SVG spinner for loading states.\n */\nfunction ButtonSpinner() {\n return (\n <svg\n className=\"cl-button__spinner\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"9\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeOpacity=\"0.25\"\n />\n <path\n d=\"M12 3a9 9 0 0 1 9 9\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n}\n\nconst StyledButtonRoot = styled(\"button\", {\n name: \"ChellaaButton\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"variant\" &&\n prop !== \"colorScheme\" &&\n prop !== \"isFullWidth\" &&\n prop !== \"isLoading\" &&\n prop !== \"isDisabled\" &&\n prop !== \"loadingText\" &&\n prop !== \"loadingPosition\" &&\n prop !== \"startIcon\" &&\n prop !== \"endIcon\" &&\n prop !== \"disableRipple\" &&\n prop !== \"asChild\",\n})({});\n\n/**\n * Chellaa React Button component.\n *\n * Fundamental action primitive supporting 5 variants, 5 sizes, 7 color schemes,\n * tactile touch ripple feedback, loading states, icons, keyboard interaction,\n * theme overrides, and polymorphic slot delegation via `asChild`.\n */\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n function Button(props, forwardedRef) {\n const {\n asChild = false,\n variant: variantProp,\n size: sizeProp,\n colorScheme: colorSchemeProp,\n isLoading = false,\n loadingText,\n loadingPosition = \"start\",\n isDisabled: isDisabledProp,\n isFullWidth = false,\n startIcon,\n endIcon,\n className,\n children,\n disabled: disabledProp,\n type = \"button\",\n onClick,\n onKeyDown,\n disableRipple = false,\n sx,\n ...restProps\n } = props;\n\n const buttonGroup = useButtonGroupContext();\n\n const variant = variantProp ?? buttonGroup?.variant ?? \"solid\";\n const size = sizeProp ?? buttonGroup?.size ?? \"md\";\n const colorScheme =\n colorSchemeProp ?? buttonGroup?.colorScheme ?? \"primary\";\n const isDisabled =\n isDisabledProp ?? disabledProp ?? buttonGroup?.isDisabled ?? false;\n const isEffectivelyDisabled = isDisabled || isLoading;\n\n const { rippleProps, getRippleHandlers } = useRipple({\n disabled: isEffectivelyDisabled,\n disableRipple,\n });\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (isEffectivelyDisabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n onClick?.(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (isEffectivelyDisabled) {\n if (event.key === \" \" || event.key === \"Enter\") {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n onKeyDown?.(event);\n };\n\n const buttonClassName = classNames(\n \"cl-button\",\n `cl-button--${variant}`,\n `cl-button--${size}`,\n `cl-button--${colorScheme}`,\n isLoading && \"cl-button--loading\",\n isDisabled && \"cl-button--disabled\",\n isFullWidth && \"cl-button--full-width\",\n className,\n );\n\n const spinner = <ButtonSpinner />;\n\n // When asChild is enabled, delegate root rendering to child via Slot\n if (asChild) {\n return (\n <StyledButtonRoot\n as={Slot}\n ref={forwardedRef as React.Ref<HTMLElement>}\n className={buttonClassName}\n aria-disabled={isEffectivelyDisabled ? true : undefined}\n aria-busy={isLoading ? true : undefined}\n sx={sx}\n onClick={\n handleClick as unknown as React.MouseEventHandler<HTMLElement>\n }\n onKeyDown={\n handleKeyDown as unknown as React.KeyboardEventHandler<HTMLElement>\n }\n {...restProps}\n >\n {children}\n </StyledButtonRoot>\n );\n }\n\n // Center loading state: keep button dimensions identical by visually hiding label\n const isCenterLoading = isLoading && loadingPosition === \"center\";\n\n const buttonHandlers = getRippleHandlers({\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n ...restProps,\n });\n\n return (\n <StyledButtonRoot\n ref={forwardedRef}\n type={type}\n disabled={isEffectivelyDisabled ? true : undefined}\n aria-disabled={isEffectivelyDisabled ? true : undefined}\n aria-busy={isLoading ? true : undefined}\n className={buttonClassName}\n sx={sx}\n {...buttonHandlers}\n >\n {isCenterLoading ? (\n <>\n <span className=\"cl-button__spinner-wrapper--center\">\n {spinner}\n </span>\n <span className=\"cl-button__content--hidden\">\n {startIcon && (\n <span\n className=\"cl-button__icon cl-button__icon--start\"\n aria-hidden=\"true\"\n >\n {startIcon}\n </span>\n )}\n {children !== undefined && (\n <span className=\"cl-button__label\">{children}</span>\n )}\n {endIcon && (\n <span\n className=\"cl-button__icon cl-button__icon--end\"\n aria-hidden=\"true\"\n >\n {endIcon}\n </span>\n )}\n </span>\n </>\n ) : (\n <>\n {isLoading && loadingPosition === \"start\" && spinner}\n {!isLoading && startIcon && (\n <span\n className=\"cl-button__icon cl-button__icon--start\"\n aria-hidden=\"true\"\n >\n {startIcon}\n </span>\n )}\n {isLoading && loadingText ? (\n <span className=\"cl-button__label\">{loadingText}</span>\n ) : children !== undefined ? (\n <span className=\"cl-button__label\">{children}</span>\n ) : null}\n {isLoading && loadingPosition === \"end\" && spinner}\n {!isLoading && endIcon && (\n <span\n className=\"cl-button__icon cl-button__icon--end\"\n aria-hidden=\"true\"\n >\n {endIcon}\n </span>\n )}\n </>\n )}\n {!disableRipple && !isEffectivelyDisabled && (\n <TouchRipple {...rippleProps} />\n )}\n </StyledButtonRoot>\n );\n },\n);\n\nButton.displayName = \"Button\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport type {\n ButtonGroupContextValue,\n ButtonGroupProps,\n} from \"./ButtonGroup.types\";\nimport { ButtonGroupContext } from \"./ButtonGroupContext\";\n\n/**\n * Chellaa React ButtonGroup component.\n *\n * Container primitive for grouping related buttons with unified sizing,\n * visual variants, color schemes, disabled states, and attached border management.\n */\nexport const ButtonGroup = React.forwardRef<HTMLDivElement, ButtonGroupProps>(\n function ButtonGroup(props, forwardedRef) {\n const {\n asChild = false,\n size,\n variant,\n colorScheme,\n isDisabled,\n isAttached = false,\n orientation = \"horizontal\",\n spacing,\n className,\n style,\n children,\n role: roleProp,\n ...restProps\n } = props;\n\n const role =\n roleProp !== undefined ? roleProp : asChild ? undefined : \"group\";\n\n const contextValue = React.useMemo<ButtonGroupContextValue>(\n () => ({\n size,\n variant,\n colorScheme,\n isDisabled,\n }),\n [size, variant, colorScheme, isDisabled],\n );\n\n const groupClassName = classNames(\n \"cl-button-group\",\n `cl-button-group--${orientation}`,\n isAttached && \"cl-button-group--attached\",\n className,\n );\n\n const groupStyle: React.CSSProperties = {\n ...style,\n ...(spacing !== undefined && !isAttached\n ? { gap: typeof spacing === \"number\" ? `${spacing}px` : spacing }\n : {}),\n };\n\n if (asChild) {\n return (\n <ButtonGroupContext.Provider value={contextValue}>\n <Slot\n ref={forwardedRef as React.Ref<HTMLElement>}\n role={role}\n className={groupClassName}\n style={groupStyle}\n {...restProps}\n >\n {children}\n </Slot>\n </ButtonGroupContext.Provider>\n );\n }\n\n return (\n <ButtonGroupContext.Provider value={contextValue}>\n <div\n ref={forwardedRef}\n role={role}\n className={groupClassName}\n style={groupStyle}\n {...restProps}\n >\n {children}\n </div>\n </ButtonGroupContext.Provider>\n );\n },\n);\n\nButtonGroup.displayName = \"ButtonGroup\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport interface BoxProps extends React.HTMLAttributes<HTMLElement> {\n /**\n * If true, delegating rendering to immediate child element using Slot\n */\n asChild?: boolean;\n /**\n * The underlying HTML element or component to render (alias of `as`)\n */\n component?: React.ElementType;\n /**\n * The underlying HTML element or component to render\n */\n as?: React.ElementType;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledBoxRoot = styled(\"div\", {\n name: \"ChellaaBox\",\n slot: \"Root\",\n shouldForwardProp: (prop) => prop !== \"asChild\" && prop !== \"component\",\n})({});\n\n/**\n * Universal polymorphic layout container with theme-aware `sx` styling and `asChild` composition.\n *\n * @example\n * <Box sx={{ p: 2, bgcolor: 'background.paper', borderRadius: 2 }}>\n * Content\n * </Box>\n */\nexport const Box = React.forwardRef<HTMLElement, BoxProps>(\n function Box(props, ref) {\n const { asChild = false, component, as, className, style, sx, children, ...rest } = props;\n const targetTag = component || as;\n const boxClassName = classNames(\"cl-box\", className);\n\n if (asChild) {\n return (\n <StyledBoxRoot\n as={Slot}\n ref={ref as any}\n className={boxClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledBoxRoot>\n );\n }\n\n if (targetTag) {\n return (\n <StyledBoxRoot\n as={targetTag}\n ref={ref as any}\n className={boxClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledBoxRoot>\n );\n }\n\n return (\n <StyledBoxRoot\n ref={ref as any}\n className={boxClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledBoxRoot>\n );\n }\n);\n\nBox.displayName = \"Box\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport type { CSSProperties } from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { parseSx } from \"../../system/sx\";\nimport type { ResponsiveValue, SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport type StackDirection = \"row\" | \"row-reverse\" | \"column\" | \"column-reverse\";\n\nexport interface StackOwnerState {\n direction?: ResponsiveValue<StackDirection> | undefined;\n spacing?: ResponsiveValue<number | string> | undefined;\n alignItems?: ResponsiveValue<CSSProperties[\"alignItems\"]> | undefined;\n justifyContent?: ResponsiveValue<CSSProperties[\"justifyContent\"]> | undefined;\n flexWrap?: ResponsiveValue<CSSProperties[\"flexWrap\"]> | undefined;\n useFlexGap?: boolean | undefined;\n}\n\nexport interface StackProps\n extends React.HTMLAttributes<HTMLElement>,\n StackOwnerState {\n /**\n * If true, delegate rendering to immediate child element using Slot\n */\n asChild?: boolean;\n /**\n * Underlying HTML element or component\n */\n component?: React.ElementType;\n /**\n * Underlying HTML element or component\n */\n as?: React.ElementType;\n /**\n * Element placed between each child\n */\n divider?: React.ReactNode;\n /**\n * System-aware sx styling prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledStackRoot = styled(\"div\", {\n name: \"ChellaaStack\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"direction\" &&\n prop !== \"spacing\" &&\n prop !== \"alignItems\" &&\n prop !== \"justifyContent\" &&\n prop !== \"flexWrap\" &&\n prop !== \"useFlexGap\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})<{ ownerState: StackOwnerState }>(({ theme, ownerState }) => {\n const styles: Record<string, any> = {};\n\n // 1. Responsive direction (if array or object or non-default)\n if (typeof ownerState.direction === \"object\") {\n Object.assign(\n styles,\n parseSx(theme, { flexDirection: ownerState.direction })\n );\n }\n\n // 2. Responsive spacing (gap)\n if (ownerState.spacing !== undefined && ownerState.spacing !== 0) {\n Object.assign(\n styles,\n parseSx(theme, { gap: ownerState.spacing })\n );\n }\n\n // 3. Alignment and wrapping\n if (ownerState.alignItems !== undefined) {\n Object.assign(\n styles,\n parseSx(theme, { alignItems: ownerState.alignItems })\n );\n }\n if (ownerState.justifyContent !== undefined) {\n Object.assign(\n styles,\n parseSx(theme, { justifyContent: ownerState.justifyContent })\n );\n }\n if (ownerState.flexWrap !== undefined) {\n Object.assign(\n styles,\n parseSx(theme, { flexWrap: ownerState.flexWrap })\n );\n }\n\n return styles;\n});\n\n/**\n * 1D Flexbox layout container managing direction, spacing, alignment, and dividers.\n *\n * @example\n * <Stack direction=\"row\" spacing={2} alignItems=\"center\">\n * <Item>1</Item>\n * <Item>2</Item>\n * </Stack>\n */\nexport const Stack = React.forwardRef<HTMLElement, StackProps>(\n function Stack(props, ref) {\n const {\n asChild = false,\n component,\n as,\n direction = \"column\",\n spacing = 0,\n alignItems,\n justifyContent,\n flexWrap,\n useFlexGap = true,\n divider,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const ownerState: StackOwnerState = {\n direction,\n spacing,\n alignItems,\n justifyContent,\n flexWrap,\n useFlexGap,\n };\n\n const isSimpleDirection = typeof direction === \"string\";\n\n const stackClassName = classNames(\n \"cl-stack\",\n isSimpleDirection && `cl-stack--${direction}`,\n className\n );\n\n const targetTag = component || as;\n\n // Handle divider insertion between valid React children\n let renderedChildren = children;\n if (divider && !asChild) {\n const validChildren = React.Children.toArray(children).filter(\n React.isValidElement\n );\n renderedChildren = validChildren.reduce<React.ReactNode[]>(\n (acc, child, index) => {\n acc.push(child);\n if (index < validChildren.length - 1) {\n acc.push(\n React.isValidElement(divider)\n ? React.cloneElement(divider as React.ReactElement, {\n key: `stack-divider-${index}`,\n })\n : (\n <span key={`stack-divider-${index}`}>{divider}</span>\n )\n );\n }\n return acc;\n },\n []\n );\n }\n\n if (asChild) {\n return (\n <StyledStackRoot\n as={Slot}\n ref={ref as any}\n className={stackClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {renderedChildren}\n </StyledStackRoot>\n );\n }\n\n if (targetTag) {\n return (\n <StyledStackRoot\n as={targetTag}\n ref={ref as any}\n className={stackClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {renderedChildren}\n </StyledStackRoot>\n );\n }\n\n return (\n <StyledStackRoot\n ref={ref as any}\n className={stackClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {renderedChildren}\n </StyledStackRoot>\n );\n }\n);\n\nStack.displayName = \"Stack\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport type { CSSProperties } from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { parseSx } from \"../../system/sx\";\nimport type { ResponsiveValue, SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport type { StackDirection } from \"../Stack\";\n\nexport interface FlexOwnerState {\n direction?: ResponsiveValue<StackDirection> | undefined;\n spacing?: ResponsiveValue<number | string> | undefined;\n gap?: ResponsiveValue<number | string> | undefined;\n alignItems?: ResponsiveValue<CSSProperties[\"alignItems\"]> | undefined;\n align?: ResponsiveValue<CSSProperties[\"alignItems\"]> | undefined;\n justifyContent?: ResponsiveValue<CSSProperties[\"justifyContent\"]> | undefined;\n justify?: ResponsiveValue<CSSProperties[\"justifyContent\"]> | undefined;\n flexWrap?: ResponsiveValue<CSSProperties[\"flexWrap\"]> | undefined;\n wrap?: ResponsiveValue<CSSProperties[\"flexWrap\"]> | undefined;\n inline?: boolean | undefined;\n center?: boolean | undefined;\n}\n\nexport interface FlexProps\n extends React.HTMLAttributes<HTMLElement>,\n FlexOwnerState {\n /**\n * If true, delegate rendering to immediate child element using Slot\n */\n asChild?: boolean | undefined;\n /**\n * Underlying HTML element or component\n */\n component?: React.ElementType | undefined;\n /**\n * Underlying HTML element or component\n */\n as?: React.ElementType | undefined;\n /**\n * Element placed between each child\n */\n divider?: React.ReactNode | undefined;\n /**\n * System-aware sx styling prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledFlexRoot = styled(\"div\", {\n name: \"ChellaaFlex\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"direction\" &&\n prop !== \"spacing\" &&\n prop !== \"gap\" &&\n prop !== \"alignItems\" &&\n prop !== \"align\" &&\n prop !== \"justifyContent\" &&\n prop !== \"justify\" &&\n prop !== \"flexWrap\" &&\n prop !== \"wrap\" &&\n prop !== \"inline\" &&\n prop !== \"center\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})<{ ownerState: FlexOwnerState }>(({ theme, ownerState }) => {\n const isCenter = ownerState.center ?? false;\n const styles: Record<string, any> = {};\n\n // 1. Responsive direction (if array or object)\n if (typeof ownerState.direction === \"object\") {\n Object.assign(\n styles,\n parseSx(theme, { flexDirection: ownerState.direction })\n );\n }\n\n // 2. Responsive gap / spacing\n const gapValue = ownerState.gap ?? ownerState.spacing;\n if (gapValue !== undefined) {\n Object.assign(styles, parseSx(theme, { gap: gapValue }));\n }\n\n // 3. Align & Justify (if not center shorthand)\n if (!isCenter) {\n const alignVal = ownerState.align ?? ownerState.alignItems;\n if (alignVal !== undefined) {\n Object.assign(styles, parseSx(theme, { alignItems: alignVal }));\n }\n\n const justifyVal = ownerState.justify ?? ownerState.justifyContent;\n if (justifyVal !== undefined) {\n Object.assign(styles, parseSx(theme, { justifyContent: justifyVal }));\n }\n }\n\n // 4. Wrapping\n const wrapVal = ownerState.wrap ?? ownerState.flexWrap;\n if (wrapVal !== undefined) {\n Object.assign(styles, parseSx(theme, { flexWrap: wrapVal }));\n }\n\n return styles;\n});\n\n/**\n * 1D Flexbox layout container defaulting to horizontal row flow with convenient\n * shorthands: `center`, `inline`, `align`, `justify`, `wrap`, and `gap`.\n *\n * @example\n * <Flex center gap={2}>\n * <Avatar />\n * <Text>User Name</Text>\n * </Flex>\n */\nexport const Flex = React.forwardRef<HTMLElement, FlexProps>(\n function Flex(props, ref) {\n const {\n asChild = false,\n component,\n as,\n direction = \"row\",\n spacing,\n gap,\n alignItems,\n align,\n justifyContent,\n justify,\n flexWrap,\n wrap,\n inline = false,\n center = false,\n divider,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const ownerState: FlexOwnerState = {\n direction,\n spacing,\n gap,\n alignItems,\n align,\n justifyContent,\n justify,\n flexWrap,\n wrap,\n inline,\n center,\n };\n\n const isSimpleDirection = typeof direction === \"string\";\n\n const flexClassName = classNames(\n \"cl-flex\",\n inline && \"cl-flex--inline\",\n center && \"cl-flex--center\",\n isSimpleDirection && `cl-flex--${direction}`,\n className\n );\n\n const targetTag = component || as;\n\n let renderedChildren = children;\n if (divider && !asChild) {\n const validChildren = React.Children.toArray(children).filter(\n React.isValidElement\n );\n renderedChildren = validChildren.reduce<React.ReactNode[]>(\n (acc, child, index) => {\n acc.push(child);\n if (index < validChildren.length - 1) {\n acc.push(\n React.isValidElement(divider)\n ? React.cloneElement(divider as React.ReactElement, {\n key: `flex-divider-${index}`,\n })\n : <span key={`flex-divider-${index}`}>{divider}</span>\n );\n }\n return acc;\n },\n []\n );\n }\n\n if (asChild) {\n return (\n <StyledFlexRoot\n as={Slot}\n ref={ref as any}\n className={flexClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {renderedChildren}\n </StyledFlexRoot>\n );\n }\n\n if (targetTag) {\n return (\n <StyledFlexRoot\n as={targetTag}\n ref={ref as any}\n className={flexClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {renderedChildren}\n </StyledFlexRoot>\n );\n }\n\n return (\n <StyledFlexRoot\n ref={ref as any}\n className={flexClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {renderedChildren}\n </StyledFlexRoot>\n );\n }\n);\n\nFlex.displayName = \"Flex\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport type { BreakpointKey } from \"../../theme/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport interface ContainerOwnerState {\n maxWidth?: BreakpointKey | false | undefined;\n fixed?: boolean | undefined;\n disableGutters?: boolean | undefined;\n}\n\nexport interface ContainerProps\n extends React.HTMLAttributes<HTMLElement>,\n ContainerOwnerState {\n /**\n * If true, delegate rendering to immediate child element using Slot\n */\n asChild?: boolean;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType;\n /**\n * The underlying HTML element or component\n */\n as?: React.ElementType;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledContainerRoot = styled(\"div\", {\n name: \"ChellaaContainer\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"maxWidth\" &&\n prop !== \"fixed\" &&\n prop !== \"disableGutters\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Centered responsive max-width container with fluid gutters.\n *\n * @example\n * <Container maxWidth=\"md\">\n * <Typography variant=\"h1\">Header</Typography>\n * </Container>\n */\nexport const Container = React.forwardRef<HTMLElement, ContainerProps>(\n function Container(props, ref) {\n const {\n asChild = false,\n component,\n as,\n maxWidth = \"lg\",\n fixed = false,\n disableGutters = false,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const containerClassName = classNames(\n \"cl-container\",\n disableGutters && \"cl-container--disable-gutters\",\n fixed && \"cl-container--fixed\",\n maxWidth !== false && `cl-container--${maxWidth}`,\n className\n );\n\n const targetTag = component || as;\n\n if (asChild) {\n return (\n <StyledContainerRoot\n as={Slot}\n ref={ref as any}\n className={containerClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledContainerRoot>\n );\n }\n\n if (targetTag) {\n return (\n <StyledContainerRoot\n as={targetTag}\n ref={ref as any}\n className={containerClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledContainerRoot>\n );\n }\n\n return (\n <StyledContainerRoot\n ref={ref as any}\n className={containerClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledContainerRoot>\n );\n }\n);\n\nContainer.displayName = \"Container\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport type { CSSProperties } from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { parseSx } from \"../../system/sx\";\nimport type { ResponsiveValue, SxProps } from \"../../system/types\";\nimport type { BreakpointKey } from \"../../theme/types\";\nimport { breakpointKeys } from \"../../theme/breakpoints\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport type GridSize = boolean | \"auto\" | number;\nexport type GridWrap = \"nowrap\" | \"wrap\" | \"wrap-reverse\";\nexport type GridDirection = \"row\" | \"row-reverse\" | \"column\" | \"column-reverse\";\n\nexport interface GridOwnerState {\n container?: boolean | undefined;\n item?: boolean | undefined;\n columns?: number | undefined;\n spacing?: ResponsiveValue<number | string> | undefined;\n rowSpacing?: ResponsiveValue<number | string> | undefined;\n columnSpacing?: ResponsiveValue<number | string> | undefined;\n direction?: ResponsiveValue<GridDirection> | undefined;\n wrap?: GridWrap | undefined;\n alignItems?: ResponsiveValue<CSSProperties[\"alignItems\"]> | undefined;\n justifyContent?: ResponsiveValue<CSSProperties[\"justifyContent\"]> | undefined;\n xs?: GridSize | undefined;\n sm?: GridSize | undefined;\n md?: GridSize | undefined;\n lg?: GridSize | undefined;\n xl?: GridSize | undefined;\n}\n\nexport interface GridProps\n extends React.HTMLAttributes<HTMLElement>,\n GridOwnerState {\n /**\n * If true, delegate rendering to immediate child element using Slot\n */\n asChild?: boolean;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType;\n /**\n * The underlying HTML element or component\n */\n as?: React.ElementType;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nfunction generateGridSizeStyles(\n size: GridSize,\n columns: number = 12\n): Record<string, any> {\n if (size === true) {\n return {\n flexBasis: 0,\n flexGrow: 1,\n maxWidth: \"100%\",\n };\n }\n\n if (size === \"auto\") {\n return {\n flexBasis: \"auto\",\n flexGrow: 0,\n maxWidth: \"none\",\n };\n }\n\n if (typeof size === \"number\") {\n const widthPercentage = `${Math.round((size / columns) * 10e7) / 10e5}%`;\n return {\n flexBasis: widthPercentage,\n flexGrow: 0,\n maxWidth: widthPercentage,\n };\n }\n\n return {};\n}\n\nconst StyledGridRoot = styled(\"div\", {\n name: \"ChellaaGrid\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"container\" &&\n prop !== \"item\" &&\n prop !== \"columns\" &&\n prop !== \"spacing\" &&\n prop !== \"rowSpacing\" &&\n prop !== \"columnSpacing\" &&\n prop !== \"direction\" &&\n prop !== \"wrap\" &&\n prop !== \"alignItems\" &&\n prop !== \"justifyContent\" &&\n prop !== \"xs\" &&\n prop !== \"sm\" &&\n prop !== \"md\" &&\n prop !== \"lg\" &&\n prop !== \"xl\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})<{ ownerState: GridOwnerState }>(({ theme, ownerState }) => {\n const styles: Record<string, any> = {};\n const columns = ownerState.columns ?? 12;\n\n // 1. Container responsive styles\n if (ownerState.container) {\n if (typeof ownerState.direction === \"object\") {\n Object.assign(\n styles,\n parseSx(theme, { flexDirection: ownerState.direction })\n );\n }\n\n if (ownerState.spacing !== undefined) {\n Object.assign(styles, parseSx(theme, { gap: ownerState.spacing }));\n }\n if (ownerState.rowSpacing !== undefined) {\n Object.assign(styles, parseSx(theme, { rowGap: ownerState.rowSpacing }));\n }\n if (ownerState.columnSpacing !== undefined) {\n Object.assign(\n styles,\n parseSx(theme, { columnGap: ownerState.columnSpacing })\n );\n }\n if (ownerState.alignItems !== undefined) {\n Object.assign(\n styles,\n parseSx(theme, { alignItems: ownerState.alignItems })\n );\n }\n if (ownerState.justifyContent !== undefined) {\n Object.assign(\n styles,\n parseSx(theme, { justifyContent: ownerState.justifyContent })\n );\n }\n }\n\n // 2. Item sizing across breakpoints\n const bpSizes: Record<BreakpointKey, GridSize | undefined> = {\n xs: ownerState.xs,\n sm: ownerState.sm,\n md: ownerState.md,\n lg: ownerState.lg,\n xl: ownerState.xl,\n };\n\n for (const bp of breakpointKeys) {\n const size = bpSizes[bp];\n if (size !== undefined) {\n const sizeStyles = generateGridSizeStyles(size, columns);\n if (bp === \"xs\") {\n Object.assign(styles, sizeStyles);\n } else {\n const media = theme.breakpoints.up(bp);\n styles[media] = {\n ...(styles[media] || {}),\n ...sizeStyles,\n };\n }\n }\n }\n\n return styles;\n});\n\n/**\n * Material 12-column responsive layout grid.\n *\n * @example\n * <Grid container spacing={2}>\n * <Grid item xs={12} md={6}>Item 1</Grid>\n * <Grid item xs={12} md={6}>Item 2</Grid>\n * </Grid>\n */\nexport const Grid = React.forwardRef<HTMLElement, GridProps>(\n function Grid(props, ref) {\n const {\n asChild = false,\n component,\n as,\n container = false,\n item = false,\n columns = 12,\n spacing,\n rowSpacing,\n columnSpacing,\n direction = \"row\",\n wrap = \"wrap\",\n alignItems,\n justifyContent,\n xs,\n sm,\n md,\n lg,\n xl,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const ownerState: GridOwnerState = {\n container,\n item,\n columns,\n spacing,\n rowSpacing,\n columnSpacing,\n direction,\n wrap,\n alignItems,\n justifyContent,\n xs,\n sm,\n md,\n lg,\n xl,\n };\n\n const isSimpleDirection = typeof direction === \"string\";\n\n const gridClassName = classNames(\n \"cl-grid\",\n container && \"cl-grid--container\",\n item && \"cl-grid--item\",\n wrap && `cl-grid--${wrap}`,\n isSimpleDirection && `cl-grid--direction-${direction}`,\n className\n );\n\n const targetTag = component || as;\n\n if (asChild) {\n return (\n <StyledGridRoot\n as={Slot}\n ref={ref as any}\n className={gridClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledGridRoot>\n );\n }\n\n if (targetTag) {\n return (\n <StyledGridRoot\n as={targetTag}\n ref={ref as any}\n className={gridClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledGridRoot>\n );\n }\n\n return (\n <StyledGridRoot\n ref={ref as any}\n className={gridClassName}\n style={style}\n ownerState={ownerState}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledGridRoot>\n );\n }\n);\n\nGrid.displayName = \"Grid\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport type DividerOrientation = \"horizontal\" | \"vertical\";\nexport type DividerVariant = \"fullWidth\" | \"inset\" | \"middle\";\nexport type DividerTextAlign = \"center\" | \"left\" | \"right\";\nexport type DividerLineStyle = \"solid\" | \"dashed\" | \"dotted\";\n\nexport interface DividerOwnerState {\n orientation?: DividerOrientation | undefined;\n variant?: DividerVariant | undefined;\n lineStyle?: DividerLineStyle | undefined;\n flexItem?: boolean | undefined;\n light?: boolean | undefined;\n textAlign?: DividerTextAlign | undefined;\n hasChildren?: boolean | undefined;\n}\n\nexport interface DividerProps\n extends React.HTMLAttributes<HTMLElement>,\n DividerOwnerState {\n /**\n * If true, delegate rendering to immediate child element using Slot\n */\n asChild?: boolean;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType;\n /**\n * The underlying HTML element or component\n */\n as?: React.ElementType;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledDividerRoot = styled(\"hr\", {\n name: \"ChellaaDivider\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"orientation\" &&\n prop !== \"variant\" &&\n prop !== \"lineStyle\" &&\n prop !== \"flexItem\" &&\n prop !== \"light\" &&\n prop !== \"textAlign\" &&\n prop !== \"hasChildren\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Divider visual separator for grouping, lists, toolbars, and labeled sections.\n *\n * @example\n * <Divider />\n * <Divider>OR</Divider>\n * <Divider orientation=\"vertical\" flexItem />\n */\nexport const Divider = React.forwardRef<HTMLElement, DividerProps>(\n function Divider(props, ref) {\n const {\n asChild = false,\n component,\n as,\n orientation = \"horizontal\",\n variant = \"fullWidth\",\n lineStyle = \"solid\",\n flexItem = false,\n light = false,\n textAlign = \"center\",\n className,\n style,\n sx,\n children,\n role: roleProp,\n ...rest\n } = props;\n\n const hasChildren = Boolean(children);\n\n const dividerClassName = classNames(\n \"cl-divider\",\n `cl-divider--${orientation}`,\n variant !== \"fullWidth\" && `cl-divider--${variant}`,\n lineStyle !== \"solid\" && `cl-divider--${lineStyle}`,\n flexItem && \"cl-divider--flex-item\",\n light && \"cl-divider--light\",\n hasChildren && \"cl-divider--with-children\",\n hasChildren && `cl-divider--align-${textAlign}`,\n className\n );\n\n // Determine default semantic tag\n let defaultTag: React.ElementType = \"hr\";\n if (orientation === \"vertical\" || hasChildren) {\n defaultTag = \"div\";\n }\n\n const targetTag = component || as || defaultTag;\n\n // Accessibility attributes\n const isNativeHr = targetTag === \"hr\";\n const role = roleProp || (isNativeHr ? undefined : \"separator\");\n const ariaOrientation =\n isNativeHr\n ? undefined\n : orientation === \"vertical\"\n ? \"vertical\"\n : undefined;\n\n if (asChild) {\n return (\n <StyledDividerRoot\n as={Slot}\n ref={ref as any}\n className={dividerClassName}\n style={style}\n sx={sx}\n role={role}\n aria-orientation={ariaOrientation}\n {...rest}\n >\n {hasChildren ? (\n <span className=\"cl-divider__wrapper ChellaaDivider-wrapper\">{children}</span>\n ) : (\n children\n )}\n </StyledDividerRoot>\n );\n }\n\n return (\n <StyledDividerRoot\n as={targetTag}\n ref={ref as any}\n className={dividerClassName}\n style={style}\n sx={sx}\n role={role}\n aria-orientation={ariaOrientation}\n {...rest}\n >\n {hasChildren ? (\n <span className=\"cl-divider__wrapper ChellaaDivider-wrapper\">{children}</span>\n ) : null}\n </StyledDividerRoot>\n );\n }\n);\n\nDivider.displayName = \"Divider\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport type { TypographyVariant, ChellaaTheme } from \"../../theme/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport type TypographyAlign = \"inherit\" | \"left\" | \"center\" | \"right\" | \"justify\";\n\nexport interface TypographyOwnerState {\n variant?: TypographyVariant | undefined;\n align?: TypographyAlign | undefined;\n color?: string | undefined;\n gutterBottom?: boolean | undefined;\n noWrap?: boolean | undefined;\n lineClamp?: number | undefined;\n}\n\nexport interface TypographyProps\n extends React.HTMLAttributes<HTMLElement>,\n TypographyOwnerState {\n /**\n * If true, delegate rendering to immediate child element using Slot\n */\n asChild?: boolean;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType;\n /**\n * Alias for component\n */\n as?: React.ElementType;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst defaultVariantMapping: 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 button: \"span\",\n caption: \"span\",\n overline: \"span\",\n};\n\nexport function resolveTypographyColor(\n theme: ChellaaTheme,\n color?: string\n): string | undefined {\n if (!color || color === \"inherit\" || color === \"currentColor\") {\n return color;\n }\n\n // Check direct palette main colors (primary, secondary, error, warning, info, success)\n const paletteAny = theme.palette as Record<string, any>;\n if (paletteAny[color] && typeof paletteAny[color].main === \"string\") {\n return paletteAny[color].main;\n }\n\n // Check dotted paths (text.primary, text.secondary, background.paper, etc.)\n if (color.includes(\".\")) {\n const parts = color.split(\".\");\n let current: any = theme.palette;\n for (const part of parts) {\n if (current && typeof current === \"object\" && part in current) {\n current = current[part];\n } else {\n current = undefined;\n break;\n }\n }\n if (typeof current === \"string\") {\n return current;\n }\n }\n\n return color;\n}\n\nconst StyledTypographyRoot = styled(\"span\", {\n name: \"ChellaaTypography\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"variant\" &&\n prop !== \"align\" &&\n prop !== \"color\" &&\n prop !== \"gutterBottom\" &&\n prop !== \"noWrap\" &&\n prop !== \"lineClamp\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})<{ color?: string }>(({ theme, color }) => {\n if (color) {\n return {\n color: resolveTypographyColor(theme, color),\n };\n }\n return {};\n});\n\n/**\n * Foundational Typography component supporting all Material Design 3 scale variants,\n * truncation, line clamping, and semantic element delegation.\n *\n * @example\n * <Typography variant=\"h1\">Display Header</Typography>\n * <Typography variant=\"body1\" color=\"text.secondary\">Body text</Typography>\n * <Typography noWrap>Single line truncated text</Typography>\n */\nexport const Typography = React.forwardRef<HTMLElement, TypographyProps>(\n function Typography(props, ref) {\n const {\n asChild = false,\n component,\n as,\n variant = \"body1\",\n align = \"inherit\",\n color,\n gutterBottom = false,\n noWrap = false,\n lineClamp,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const typographyClassName = classNames(\n \"cl-typography\",\n `cl-typography--${variant}`,\n align && align !== \"inherit\" && `cl-typography--align-${align}`,\n gutterBottom && \"cl-typography--gutter-bottom\",\n noWrap && \"cl-typography--no-wrap\",\n lineClamp !== undefined && lineClamp > 0 && \"cl-typography--line-clamp\",\n className\n );\n\n const inlineStyle: React.CSSProperties = {\n ...(lineClamp !== undefined && lineClamp > 0\n ? ({ WebkitLineClamp: lineClamp } as React.CSSProperties)\n : {}),\n ...style,\n };\n\n const targetTag =\n component || as || defaultVariantMapping[variant] || \"span\";\n\n if (asChild) {\n return (\n <StyledTypographyRoot\n as={Slot}\n ref={ref as any}\n className={typographyClassName}\n style={inlineStyle}\n color={color}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledTypographyRoot>\n );\n }\n\n return (\n <StyledTypographyRoot\n as={targetTag}\n ref={ref as any}\n className={typographyClassName}\n style={inlineStyle}\n color={color}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledTypographyRoot>\n );\n }\n);\n\nTypography.displayName = \"Typography\";\n","import * as React from \"react\";\nimport { Typography, type TypographyProps } from \"./Typography\";\nimport type { TypographyVariant } from \"../../theme/types\";\n\nexport type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface HeadingProps extends Omit<TypographyProps, \"variant\"> {\n /**\n * Semantic heading level (1 to 6).\n * Determines both default HTML tag (h1..h6) and typography scale variant unless overridden.\n * @default 2\n */\n level?: HeadingLevel | undefined;\n /**\n * Optional visual scale variant to decouple styling from heading level.\n */\n variant?: TypographyVariant | undefined;\n}\n\n/**\n * Ergonomic semantic heading primitive.\n *\n * @example\n * <Heading level={1}>Page Title</Heading>\n * <Heading level={2} variant=\"h4\">Visually smaller Section Title</Heading>\n */\nexport const Heading = React.forwardRef<HTMLElement, HeadingProps>(\n function Heading(props, ref) {\n const { level = 2, variant, component, ...rest } = props;\n\n const levelTag = `h${level}` as \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\n const resolvedVariant = variant || levelTag;\n const resolvedComponent = component || levelTag;\n\n return (\n <Typography\n ref={ref}\n component={resolvedComponent}\n variant={resolvedVariant}\n {...rest}\n />\n );\n }\n);\n\nHeading.displayName = \"Heading\";\n","import * as React from \"react\";\nimport { Typography, type TypographyProps } from \"./Typography\";\nimport type { TypographyVariant } from \"../../theme/types\";\n\nexport type TextSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport interface TextProps extends TypographyProps {\n /**\n * Shorthand text size mapping to theme typographic scale:\n * - \"xs\": caption (12px)\n * - \"sm\": body2 (14px)\n * - \"md\": body1 (16px)\n * - \"lg\": subtitle1 (16px/medium)\n * - \"xl\": h6 (20px)\n */\n size?: TextSize | undefined;\n /**\n * If true, renders as block element ('div' or 'p'). Otherwise renders as inline 'span'.\n * @default false\n */\n block?: boolean | undefined;\n}\n\nconst sizeToVariant: Record<TextSize, TypographyVariant> = {\n xs: \"caption\",\n sm: \"body2\",\n md: \"body1\",\n lg: \"subtitle1\",\n xl: \"h6\",\n};\n\n/**\n * Ergonomic inline or block textual primitive.\n *\n * @example\n * <Text size=\"sm\" color=\"text.secondary\">Secondary caption</Text>\n * <Text block noWrap>Single line block item</Text>\n */\nexport const Text = React.forwardRef<HTMLElement, TextProps>(\n function Text(props, ref) {\n const { size, variant, block = false, component, ...rest } = props;\n\n const resolvedVariant = variant || (size ? sizeToVariant[size] : \"body1\");\n const defaultTag = block ? \"p\" : \"span\";\n const resolvedComponent = component || defaultTag;\n\n return (\n <Typography\n ref={ref}\n component={resolvedComponent}\n variant={resolvedVariant}\n {...rest}\n />\n );\n }\n);\n\nText.displayName = \"Text\";\n","import * as React from \"react\";\nimport { Typography, type TypographyProps } from \"./Typography\";\n\nexport interface ParagraphProps extends TypographyProps {\n /**\n * Shorthand spacing multiplier for bottom margin (defaults to standard gutterBottom).\n */\n spacing?: number | string | undefined;\n}\n\n/**\n * Ergonomic paragraph block primitive with standard reading margins.\n *\n * @example\n * <Paragraph>\n * This is standard paragraph text with built-in reading spacing.\n * </Paragraph>\n */\nexport const Paragraph = React.forwardRef<HTMLElement, ParagraphProps>(\n function Paragraph(props, ref) {\n const { component = \"p\", variant = \"body1\", gutterBottom = true, ...rest } = props;\n\n return (\n <Typography\n ref={ref}\n component={component}\n variant={variant}\n gutterBottom={gutterBottom}\n {...rest}\n />\n );\n }\n);\n\nParagraph.displayName = \"Paragraph\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport type CodeColorScheme = \"default\" | \"primary\" | \"secondary\";\n\nexport interface CodeOwnerState {\n colorScheme?: CodeColorScheme | undefined;\n}\n\nexport interface CodeProps\n extends React.HTMLAttributes<HTMLElement>,\n CodeOwnerState {\n asChild?: boolean | undefined;\n component?: React.ElementType | undefined;\n as?: React.ElementType | undefined;\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledCodeRoot = styled(\"code\", {\n name: \"ChellaaCode\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"colorScheme\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Inline monospace code chip primitive for identifiers, filenames, and CLI snippets.\n *\n * @example\n * <Text>Run <Code>npm install</Code> to install dependencies.</Text>\n * <Code colorScheme=\"primary\">package.json</Code>\n */\nexport const Code = React.forwardRef<HTMLElement, CodeProps>(\n function Code(props, ref) {\n const {\n asChild = false,\n component = \"code\",\n as,\n colorScheme = \"default\",\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const codeClassName = classNames(\n \"cl-code\",\n colorScheme !== \"default\" && `cl-code--${colorScheme}`,\n className\n );\n\n const targetTag = component || as || \"code\";\n\n if (asChild) {\n return (\n <StyledCodeRoot\n as={Slot}\n ref={ref as any}\n className={codeClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCodeRoot>\n );\n }\n\n return (\n <StyledCodeRoot\n as={targetTag}\n ref={ref as any}\n className={codeClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCodeRoot>\n );\n }\n);\n\nCode.displayName = \"Code\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport type KbdSize = \"sm\" | \"md\" | \"lg\";\nexport type KbdVariant = \"outline\" | \"subtle\" | \"solid\";\n\nexport type KbdModifier =\n | \"command\"\n | \"cmd\"\n | \"shift\"\n | \"option\"\n | \"alt\"\n | \"control\"\n | \"ctrl\"\n | \"enter\"\n | \"escape\"\n | \"esc\"\n | \"tab\"\n | \"backspace\"\n | \"delete\"\n | \"del\"\n | \"up\"\n | \"down\"\n | \"left\"\n | \"right\";\n\nexport const MODIFIER_SYMBOLS: Record<KbdModifier, string> = {\n command: \"⌘\",\n cmd: \"⌘\",\n shift: \"⇧\",\n option: \"⌥\",\n alt: \"⌥\",\n control: \"⌃\",\n ctrl: \"⌃\",\n enter: \"↵\",\n escape: \"Esc\",\n esc: \"Esc\",\n tab: \"⇥\",\n backspace: \"⌫\",\n delete: \"⌦\",\n del: \"⌦\",\n up: \"↑\",\n down: \"↓\",\n left: \"←\",\n right: \"→\",\n};\n\nexport interface KbdOwnerState {\n size?: KbdSize | undefined;\n variant?: KbdVariant | undefined;\n modifier?: KbdModifier | undefined;\n}\n\nexport interface KbdProps\n extends React.HTMLAttributes<HTMLElement>,\n KbdOwnerState {\n /**\n * If true, delegate rendering to immediate child element using Slot\n */\n asChild?: boolean;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType;\n /**\n * Alias for component\n */\n as?: React.ElementType;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledKbdRoot = styled(\"kbd\", {\n name: \"ChellaaKbd\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"size\" &&\n prop !== \"variant\" &&\n prop !== \"modifier\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Tactile keyboard shortcut keycap primitive representing user input keystrokes.\n *\n * @example\n * <Kbd>Ctrl</Kbd> + <Kbd>K</Kbd>\n * <Kbd modifier=\"command\" />\n * <Kbd size=\"sm\" variant=\"subtle\">Esc</Kbd>\n */\nexport const Kbd = React.forwardRef<HTMLElement, KbdProps>(\n function Kbd(props, ref) {\n const {\n asChild = false,\n component = \"kbd\",\n as,\n size = \"md\",\n variant = \"outline\",\n modifier,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const kbdClassName = classNames(\n \"cl-kbd\",\n `cl-kbd--${size}`,\n `cl-kbd--${variant}`,\n className\n );\n\n const targetTag = component || as || \"kbd\";\n\n // Resolve content: children takes precedence, then modifier symbol\n const content = children ?? (modifier ? MODIFIER_SYMBOLS[modifier] ?? modifier : null);\n\n if (asChild) {\n return (\n <StyledKbdRoot\n as={Slot}\n ref={ref as any}\n className={kbdClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {content}\n </StyledKbdRoot>\n );\n }\n\n return (\n <StyledKbdRoot\n as={targetTag}\n ref={ref as any}\n className={kbdClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {content}\n </StyledKbdRoot>\n );\n }\n);\n\nKbd.displayName = \"Kbd\";\n","import * as React from \"react\";\n\nexport interface FormFieldContextValue {\n id: string;\n name?: string | undefined;\n required?: boolean | undefined;\n disabled?: boolean | undefined;\n readOnly?: boolean | undefined;\n error?: boolean | undefined;\n labelId: string;\n helperTextId: string;\n errorMessageId: string;\n hasHelperText: boolean;\n hasErrorMessage: boolean;\n setHasHelperText: (has: boolean) => void;\n setHasErrorMessage: (has: boolean) => void;\n}\n\nexport const FormFieldContext = React.createContext<\n FormFieldContextValue | undefined\n>(undefined);\n\n/**\n * Hook to consume form field state, IDs, and validation flags.\n * Returns undefined if used outside a <FormField>.\n */\nexport function useFormField(): FormFieldContextValue | undefined {\n return React.useContext(FormFieldContext);\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useFormField } from \"../FormField/FormFieldContext\";\nimport type {\n InputProps,\n InputOwnerState,\n InputVariant,\n InputSize,\n} from \"./Input.types\";\n\nexport type { InputProps, InputOwnerState, InputVariant, InputSize };\n\n/**\n * Headless raw input primitive for backward compatibility.\n */\nexport const InputBase = React.forwardRef<\n HTMLInputElement,\n React.InputHTMLAttributes<HTMLInputElement> & { ownerState?: InputOwnerState }\n>(function InputBase({ className, ownerState: _ownerState, ...props }, ref) {\n return (\n <input\n ref={ref}\n className={classNames(\"cl-input__input\", className)}\n {...props}\n />\n );\n});\n\nInputBase.displayName = \"InputBase\";\n\nconst StyledInputRoot = styled(\"div\", {\n name: \"ChellaaInput\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"variant\" &&\n prop !== \"size\" &&\n prop !== \"fullWidth\" &&\n prop !== \"error\" &&\n prop !== \"disabled\" &&\n prop !== \"readOnly\" &&\n prop !== \"hasStartAdornment\" &&\n prop !== \"hasEndAdornment\" &&\n prop !== \"focused\" &&\n prop !== \"asChild\" &&\n prop !== \"component\" &&\n prop !== \"ownerState\",\n})({});\n\n/**\n * Chellaa React Input component.\n *\n * Fundamental single-line text entry primitive with Material Design 3 surface variants,\n * precompiled CSS cascade layers (@layer cl-components), zero-runtime static styling,\n * dynamic sx override bridge, and accessible form integration.\n */\nexport const Input = React.forwardRef<HTMLDivElement, InputProps>(\n function Input(props, ref) {\n const formField = useFormField();\n\n const {\n asChild = false,\n component,\n as,\n variant = \"outlined\",\n size = \"md\",\n fullWidth = false,\n error: errorProp,\n disabled: disabledProp,\n readOnly: readOnlyProp,\n required: requiredProp,\n startAdornment,\n endAdornment,\n clearable = false,\n onClear,\n inputRef: inputRefProp,\n value: valueProp,\n defaultValue,\n onChange,\n type = \"text\",\n id: idProp,\n className,\n style,\n sx,\n inputProps,\n \"aria-describedby\": ariaDescribedByProp,\n ...restInputProps\n } = props;\n\n const id = idProp ?? formField?.id;\n const error = errorProp ?? formField?.error ?? false;\n const disabled = disabledProp ?? formField?.disabled ?? false;\n const readOnly = readOnlyProp ?? formField?.readOnly ?? false;\n const required = requiredProp ?? formField?.required ?? false;\n\n const ariaDescribedBy = [\n ariaDescribedByProp,\n formField?.error && formField?.hasErrorMessage ? formField.errorMessageId : null,\n formField?.hasHelperText ? formField.helperTextId : null,\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n // Value tracking for clearable button\n const [internalValue, setInternalValue] = React.useState<string>(() => {\n if (valueProp !== undefined) return String(valueProp);\n if (defaultValue !== undefined) return String(defaultValue);\n return \"\";\n });\n\n const isControlled = valueProp !== undefined;\n const currentValue = isControlled ? String(valueProp ?? \"\") : internalValue;\n\n const innerInputRef = React.useRef<HTMLInputElement | null>(null);\n\n const handleInputRef = React.useCallback(\n (node: HTMLInputElement | null) => {\n innerInputRef.current = node;\n if (typeof inputRefProp === \"function\") {\n inputRefProp(node);\n } else if (inputRefProp && \"current\" in inputRefProp) {\n (inputRefProp as React.MutableRefObject<HTMLInputElement | null>).current = node;\n }\n },\n [inputRefProp]\n );\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalValue(event.target.value);\n }\n onChange?.(event);\n };\n\n const handleClear = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n if (!isControlled) {\n setInternalValue(\"\");\n }\n if (innerInputRef.current) {\n innerInputRef.current.value = \"\";\n const event = new Event(\"input\", { bubbles: true });\n innerInputRef.current.dispatchEvent(event);\n innerInputRef.current.focus();\n }\n onClear?.();\n };\n\n const handleWrapperClick = () => {\n if (innerInputRef.current && document.activeElement !== innerInputRef.current) {\n innerInputRef.current.focus();\n }\n };\n\n const showClear = clearable && !disabled && !readOnly && currentValue.length > 0;\n\n const clearButton = showClear ? (\n <button\n type=\"button\"\n className=\"cl-input__clear\"\n aria-label=\"Clear input\"\n onClick={handleClear}\n >\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n </button>\n ) : null;\n\n const inputWrapperClassName = classNames(\n \"cl-input\",\n `cl-input--${variant}`,\n `cl-input--${size}`,\n fullWidth && \"cl-input--full-width\",\n error && \"cl-input--error\",\n disabled && \"cl-input--disabled\",\n className\n );\n\n const targetTag = component || as;\n\n if (asChild) {\n return (\n <StyledInputRoot\n as={Slot}\n ref={ref as React.Ref<HTMLDivElement>}\n className={inputWrapperClassName}\n style={style}\n sx={sx}\n onClick={handleWrapperClick}\n >\n {startAdornment}\n <input\n ref={handleInputRef}\n id={id}\n type={type}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n aria-describedby={ariaDescribedBy}\n value={valueProp}\n defaultValue={defaultValue}\n onChange={handleChange}\n aria-invalid={error ? true : undefined}\n className=\"cl-input__input\"\n {...inputProps}\n {...restInputProps}\n />\n {clearButton}\n {endAdornment}\n </StyledInputRoot>\n );\n }\n\n return (\n <StyledInputRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLDivElement>}\n className={inputWrapperClassName}\n style={style}\n sx={sx}\n onClick={handleWrapperClick}\n >\n {startAdornment}\n <input\n ref={handleInputRef}\n id={id}\n type={type}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n aria-describedby={ariaDescribedBy}\n value={valueProp}\n defaultValue={defaultValue}\n onChange={handleChange}\n aria-invalid={error ? true : undefined}\n className=\"cl-input__input\"\n {...inputProps}\n {...restInputProps}\n />\n {clearButton}\n {endAdornment}\n </StyledInputRoot>\n );\n }\n);\n\nInput.displayName = \"Input\";\n","import * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Input, type InputProps } from \"./Input\";\n\nexport interface TextFieldProps extends InputProps {\n /**\n * The label text displayed above the input.\n */\n label?: React.ReactNode | undefined;\n /**\n * Explanatory helper text displayed below the input.\n */\n helperText?: React.ReactNode | undefined;\n /**\n * Error message displayed below the input when error is true.\n */\n errorMessage?: React.ReactNode | undefined;\n /**\n * If true, displays a required asterisk next to the label and marks input required.\n * @default false\n */\n required?: boolean | undefined;\n}\n\nconst StyledTextFieldRoot = styled(\"div\", {\n name: \"ChellaaTextField\",\n slot: \"Root\",\n shouldForwardProp: (prop) => prop !== \"fullWidth\",\n})<{ fullWidth?: boolean }>(({ fullWidth }) => ({\n display: \"inline-flex\",\n flexDirection: \"column\",\n position: \"relative\",\n width: fullWidth ? \"100%\" : \"auto\",\n verticalAlign: \"top\",\n}));\n\nconst StyledLabel = styled(\"label\")<{ required?: boolean; error?: boolean }>(\n ({ theme, error }) => ({\n display: \"block\",\n fontSize: \"0.875rem\",\n fontWeight: 500,\n lineHeight: 1.4,\n marginBottom: theme.spacing(0.75),\n color: error ? theme.palette.error.main : theme.palette.text.primary,\n userSelect: \"none\",\n \"& .ChellaaTextField-requiredAsterisk\": {\n color: theme.palette.error.main,\n marginLeft: 4,\n },\n })\n);\n\nconst StyledHelperText = styled(\"p\")<{ error?: boolean }>(\n ({ theme, error }) => ({\n fontSize: \"0.75rem\",\n lineHeight: 1.4,\n margin: 0,\n marginTop: theme.spacing(0.5),\n color: error ? theme.palette.error.main : theme.palette.text.secondary,\n })\n);\n\n/**\n * Enterprise composite form control combining label, input, helper text, and validation messaging.\n *\n * @example\n * <TextField\n * label=\"Email Address\"\n * type=\"email\"\n * placeholder=\"user@example.com\"\n * helperText=\"We will never share your email.\"\n * required\n * />\n */\nexport const TextField = React.forwardRef<HTMLDivElement, TextFieldProps>(\n function TextField(props, ref) {\n const {\n id: idProp,\n label,\n helperText,\n errorMessage,\n error = false,\n required = false,\n fullWidth = false,\n className,\n style,\n sx,\n ...inputProps\n } = props;\n\n const generatedId = React.useId();\n const inputId = idProp || generatedId;\n const helperId = `${inputId}-helper`;\n\n const activeHelperContent = error && errorMessage ? errorMessage : helperText;\n\n return (\n <StyledTextFieldRoot\n ref={ref}\n fullWidth={fullWidth}\n className={className}\n style={style}\n sx={sx}\n >\n {label && (\n <StyledLabel htmlFor={inputId} error={error} required={required}>\n {label}\n {required && <span className=\"ChellaaTextField-requiredAsterisk\">*</span>}\n </StyledLabel>\n )}\n\n <Input\n id={inputId}\n error={error}\n required={required}\n fullWidth={fullWidth}\n aria-describedby={activeHelperContent ? helperId : undefined}\n {...inputProps}\n />\n\n {activeHelperContent && (\n <StyledHelperText id={helperId} error={error}>\n {activeHelperContent}\n </StyledHelperText>\n )}\n </StyledTextFieldRoot>\n );\n }\n);\n\nTextField.displayName = \"TextField\";\n","import * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\n\nexport interface InputAdornmentProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Position of the adornment within the input track.\n */\n position: \"start\" | \"end\";\n /**\n * If true, prevents pointer events on the adornment (e.g. for purely decorative icons).\n * @default false\n */\n disablePointerEvents?: boolean | undefined;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledAdornmentRoot = styled(\"div\", {\n name: \"ChellaaInputAdornment\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"position\" && prop !== \"disablePointerEvents\",\n})<{ position: \"start\" | \"end\"; disablePointerEvents?: boolean }>(\n ({ theme, position, disablePointerEvents }) => ({\n display: \"flex\",\n height: \"100%\",\n maxHeight: \"2em\",\n alignItems: \"center\",\n justifyContent: \"center\",\n whiteSpace: \"nowrap\",\n color: theme.palette.text.secondary,\n marginLeft: position === \"end\" ? theme.spacing(1) : 0,\n marginRight: position === \"start\" ? theme.spacing(1) : 0,\n pointerEvents: disablePointerEvents ? \"none\" : \"auto\",\n userSelect: \"none\",\n })\n);\n\nexport const InputAdornment = React.forwardRef<\n HTMLDivElement,\n InputAdornmentProps\n>(function InputAdornment(props, ref) {\n const { position, disablePointerEvents = false, children, ...rest } = props;\n\n return (\n <StyledAdornmentRoot\n ref={ref}\n position={position}\n disablePointerEvents={disablePointerEvents}\n {...rest}\n >\n {children}\n </StyledAdornmentRoot>\n );\n});\n\nInputAdornment.displayName = \"InputAdornment\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useFormField } from \"../FormField/FormFieldContext\";\nimport type {\n TextareaProps,\n TextareaOwnerState,\n TextareaVariant,\n TextareaSize,\n TextareaResize,\n} from \"./Textarea.types\";\n\nexport type {\n TextareaProps,\n TextareaOwnerState,\n TextareaVariant,\n TextareaSize,\n TextareaResize,\n};\n\nconst StyledTextareaContainer = styled(\"div\", {\n name: \"ChellaaTextarea\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"variant\" &&\n prop !== \"size\" &&\n prop !== \"fullWidth\" &&\n prop !== \"error\" &&\n prop !== \"disabled\" &&\n prop !== \"readOnly\" &&\n prop !== \"autoResize\" &&\n prop !== \"resize\" &&\n prop !== \"hasCount\" &&\n prop !== \"asChild\" &&\n prop !== \"component\" &&\n prop !== \"ownerState\",\n})({});\n\n/**\n * Multi-line plain text editing control with Material Design surface variants,\n * auto-expansion support, and character counter capabilities.\n */\nexport const Textarea = React.forwardRef<HTMLDivElement, TextareaProps>(\n function Textarea(props, ref) {\n const formField = useFormField();\n\n const {\n asChild = false,\n component,\n as,\n variant = \"outlined\",\n size = \"md\",\n fullWidth = false,\n error: errorProp,\n disabled: disabledProp,\n readOnly: readOnlyProp,\n required: requiredProp,\n minRows = 3,\n maxRows,\n autoResize = false,\n resize = \"vertical\",\n showCount = false,\n maxLength,\n textareaRef: textareaRefProp,\n textareaProps = {},\n value: valueProp,\n defaultValue,\n onChange,\n id: idProp,\n className,\n style,\n sx,\n placeholder,\n name,\n rows,\n cols,\n autoFocus,\n onFocus,\n onBlur,\n onKeyDown,\n onKeyUp,\n \"aria-describedby\": ariaDescribedByProp,\n ...restContainerProps\n } = props;\n\n const id = idProp ?? formField?.id;\n const error = errorProp ?? formField?.error ?? false;\n const disabled = disabledProp ?? formField?.disabled ?? false;\n const readOnly = readOnlyProp ?? formField?.readOnly ?? false;\n const required = requiredProp ?? formField?.required ?? false;\n\n const ariaDescribedBy = [\n ariaDescribedByProp,\n formField?.error && formField?.hasErrorMessage ? formField.errorMessageId : null,\n formField?.hasHelperText ? formField.helperTextId : null,\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const [internalValue, setInternalValue] = React.useState<string>(() => {\n if (valueProp !== undefined) return String(valueProp);\n if (defaultValue !== undefined) return String(defaultValue);\n return \"\";\n });\n\n const isControlled = valueProp !== undefined;\n const currentValue = isControlled ? String(valueProp ?? \"\") : internalValue;\n\n const innerTextareaRef = React.useRef<HTMLTextAreaElement | null>(null);\n\n const handleTextareaRef = React.useCallback(\n (node: HTMLTextAreaElement | null) => {\n innerTextareaRef.current = node;\n if (typeof textareaRefProp === \"function\") {\n textareaRefProp(node);\n } else if (textareaRefProp && \"current\" in textareaRefProp) {\n (textareaRefProp as React.MutableRefObject<HTMLTextAreaElement | null>).current = node;\n }\n },\n [textareaRefProp]\n );\n\n // Auto-resize calculation\n React.useLayoutEffect(() => {\n if (!autoResize || !innerTextareaRef.current) return;\n\n const textarea = innerTextareaRef.current;\n textarea.style.height = \"auto\";\n\n const lineHeight = parseFloat(getComputedStyle(textarea).lineHeight) || 20;\n const minHeight = minRows * lineHeight;\n const maxHeight = maxRows ? maxRows * lineHeight : Infinity;\n\n const calculatedHeight = Math.min(\n Math.max(textarea.scrollHeight, minHeight),\n maxHeight\n );\n\n textarea.style.height = `${calculatedHeight}px`;\n textarea.style.overflowY =\n maxRows && textarea.scrollHeight > maxHeight ? \"auto\" : \"hidden\";\n }, [currentValue, autoResize, minRows, maxRows]);\n\n const handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (!isControlled) {\n setInternalValue(event.target.value);\n }\n onChange?.(event);\n };\n\n const handleWrapperClick = () => {\n if (innerTextareaRef.current && document.activeElement !== innerTextareaRef.current) {\n innerTextareaRef.current.focus();\n }\n };\n\n const containerClassName = classNames(\n \"cl-textarea\",\n `cl-textarea--${variant}`,\n `cl-textarea--${size}`,\n fullWidth && \"cl-textarea--full-width\",\n error && \"cl-textarea--error\",\n disabled && \"cl-textarea--disabled\",\n className\n );\n\n const targetTag = component || as;\n\n const textareaStyle: React.CSSProperties = {\n resize: autoResize ? \"none\" : resize,\n };\n\n const countDisplay = showCount ? (\n <div className=\"cl-textarea__counter\" aria-live=\"polite\">\n {currentValue.length}\n {maxLength ? ` / ${maxLength}` : \"\"}\n </div>\n ) : null;\n\n if (asChild) {\n return (\n <StyledTextareaContainer\n as={Slot}\n ref={ref as React.Ref<HTMLDivElement>}\n className={containerClassName}\n style={style}\n sx={sx}\n onClick={handleWrapperClick}\n {...restContainerProps}\n >\n <textarea\n ref={handleTextareaRef}\n id={id}\n name={name}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? true : undefined}\n value={valueProp}\n defaultValue={defaultValue}\n onChange={handleChange}\n maxLength={maxLength}\n rows={rows ?? minRows}\n cols={cols}\n autoFocus={autoFocus}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n style={textareaStyle}\n className=\"cl-textarea__input\"\n {...textareaProps}\n />\n {countDisplay}\n </StyledTextareaContainer>\n );\n }\n\n return (\n <StyledTextareaContainer\n as={targetTag}\n ref={ref as React.Ref<HTMLDivElement>}\n className={containerClassName}\n style={style}\n sx={sx}\n onClick={handleWrapperClick}\n {...restContainerProps}\n >\n <textarea\n ref={handleTextareaRef}\n id={id}\n name={name}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? true : undefined}\n value={valueProp}\n defaultValue={defaultValue}\n onChange={handleChange}\n maxLength={maxLength}\n rows={rows ?? minRows}\n cols={cols}\n autoFocus={autoFocus}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onKeyUp={onKeyUp}\n style={textareaStyle}\n className=\"cl-textarea__input\"\n {...textareaProps}\n />\n {countDisplay}\n </StyledTextareaContainer>\n );\n }\n);\n\nTextarea.displayName = \"Textarea\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { FormFieldContext, type FormFieldContextValue } from \"./FormFieldContext\";\n\nexport interface FormFieldProps extends React.HTMLAttributes<HTMLDivElement> {\n id?: string | undefined;\n name?: string | undefined;\n required?: boolean | undefined;\n disabled?: boolean | undefined;\n readOnly?: boolean | undefined;\n error?: boolean | undefined;\n fullWidth?: boolean | undefined;\n asChild?: boolean | undefined;\n component?: React.ElementType | undefined;\n as?: React.ElementType | undefined;\n sx?: SxProps;\n children?: React.ReactNode | undefined;\n}\n\nconst StyledFormFieldRoot = styled(\"div\", {\n name: \"ChellaaFormField\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"fullWidth\" &&\n prop !== \"asChild\" &&\n prop !== \"component\" &&\n prop !== \"error\" &&\n prop !== \"disabled\" &&\n prop !== \"readOnly\",\n})({});\n\n/**\n * Root form control container and accessibility context provider.\n * Automatically generates IDs and cascades validation states to child controls.\n *\n * @example\n * <FormField required error={hasError}>\n * <FormLabel>Email Address</FormLabel>\n * <Input type=\"email\" placeholder=\"alex@company.com\" />\n * <FormHelperText>We will never share your email.</FormHelperText>\n * <FormErrorMessage>Invalid email address.</FormErrorMessage>\n * </FormField>\n */\nexport const FormField = React.forwardRef<HTMLDivElement, FormFieldProps>(\n function FormField(props, ref) {\n const {\n id: idProp,\n name,\n required = false,\n disabled = false,\n readOnly = false,\n error = false,\n fullWidth = false,\n asChild = false,\n component,\n as,\n children,\n className,\n style,\n sx,\n ...rest\n } = props;\n\n const generatedId = React.useId();\n const id = idProp || generatedId;\n const labelId = `${id}-label`;\n const helperTextId = `${id}-helper`;\n const errorMessageId = `${id}-error`;\n\n const [hasHelperText, setHasHelperText] = React.useState(false);\n const [hasErrorMessage, setHasErrorMessage] = React.useState(false);\n\n const contextValue: FormFieldContextValue = React.useMemo(\n () => ({\n id,\n name,\n required,\n disabled,\n readOnly,\n error,\n labelId,\n helperTextId,\n errorMessageId,\n hasHelperText,\n hasErrorMessage,\n setHasHelperText,\n setHasErrorMessage,\n }),\n [\n id,\n name,\n required,\n disabled,\n readOnly,\n error,\n labelId,\n helperTextId,\n errorMessageId,\n hasHelperText,\n hasErrorMessage,\n ]\n );\n\n const fieldClassName = classNames(\n \"cl-form-field\",\n fullWidth && \"cl-form-field--full-width\",\n error && \"cl-form-field--error\",\n disabled && \"cl-form-field--disabled\",\n className\n );\n\n const targetTag = component || as;\n\n if (asChild) {\n return (\n <FormFieldContext.Provider value={contextValue}>\n <StyledFormFieldRoot\n as={Slot}\n ref={ref as React.Ref<HTMLDivElement>}\n className={fieldClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledFormFieldRoot>\n </FormFieldContext.Provider>\n );\n }\n\n return (\n <FormFieldContext.Provider value={contextValue}>\n <StyledFormFieldRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLDivElement>}\n className={fieldClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledFormFieldRoot>\n </FormFieldContext.Provider>\n );\n }\n);\n\nFormField.displayName = \"FormField\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useFormField } from \"./FormFieldContext\";\n\nexport interface FormLabelProps\n extends React.LabelHTMLAttributes<HTMLLabelElement> {\n /**\n * If true, displays a required asterisk. Inherits from FormField context if omitted.\n */\n required?: boolean | undefined;\n /**\n * If true, highlights label in error palette color. Inherits from FormField context if omitted.\n */\n error?: boolean | undefined;\n /**\n * If true, styles label in disabled state. Inherits from FormField context if omitted.\n */\n disabled?: boolean | undefined;\n /**\n * If true, delegates rendering to immediate child using Slot.\n */\n asChild?: boolean | undefined;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType | undefined;\n /**\n * Alias for component\n */\n as?: React.ElementType | undefined;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode | undefined;\n}\n\nconst StyledLabelRoot = styled(\"label\", {\n name: \"ChellaaFormLabel\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"required\" &&\n prop !== \"error\" &&\n prop !== \"disabled\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Accessible form label automatically linked to its associated input control.\n *\n * @example\n * <FormLabel>Email Address</FormLabel>\n */\nexport const FormLabel = React.forwardRef<HTMLLabelElement, FormLabelProps>(\n function FormLabel(props, ref) {\n const {\n htmlFor: htmlForProp,\n id: idProp,\n required: requiredProp,\n error: errorProp,\n disabled: disabledProp,\n asChild = false,\n component,\n as,\n children,\n className,\n style,\n sx,\n ...rest\n } = props;\n\n const formField = useFormField();\n\n const htmlFor = htmlForProp ?? formField?.id;\n const id = idProp ?? formField?.labelId;\n const required = requiredProp ?? formField?.required ?? false;\n const error = errorProp ?? formField?.error ?? false;\n const disabled = disabledProp ?? formField?.disabled ?? false;\n\n const labelClassName = classNames(\n \"cl-form-label\",\n error && \"cl-form-label--error\",\n disabled && \"cl-form-label--disabled\",\n className\n );\n\n const targetTag = component || as;\n\n if (asChild) {\n return (\n <StyledLabelRoot\n as={Slot}\n ref={ref as React.Ref<HTMLLabelElement>}\n htmlFor={htmlFor}\n id={id}\n className={labelClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledLabelRoot>\n );\n }\n\n return (\n <StyledLabelRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLLabelElement>}\n htmlFor={htmlFor}\n id={id}\n className={labelClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n {required && (\n <span className=\"cl-form-label__asterisk\" aria-hidden=\"true\">*</span>\n )}\n </StyledLabelRoot>\n );\n }\n);\n\nFormLabel.displayName = \"FormLabel\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useFormField } from \"./FormFieldContext\";\n\nexport interface FormHelperTextProps\n extends React.HTMLAttributes<HTMLParagraphElement> {\n /**\n * If true, styles helper text in disabled state.\n */\n disabled?: boolean | undefined;\n /**\n * If true, delegates rendering to immediate child using Slot.\n */\n asChild?: boolean | undefined;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType | undefined;\n /**\n * Alias for component\n */\n as?: React.ElementType | undefined;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode | undefined;\n}\n\nconst StyledHelperTextRoot = styled(\"p\", {\n name: \"ChellaaFormHelperText\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"disabled\" && prop !== \"asChild\" && prop !== \"component\",\n})({});\n\n/**\n * Contextual explanation text rendered beneath an input control,\n * automatically linked via aria-describedby.\n *\n * @example\n * <FormHelperText>We will never share your personal email.</FormHelperText>\n */\nexport const FormHelperText = React.forwardRef<\n HTMLParagraphElement,\n FormHelperTextProps\n>(function FormHelperText(props, ref) {\n const {\n id: idProp,\n disabled: disabledProp,\n asChild = false,\n component = \"p\",\n as,\n children,\n className,\n style,\n sx,\n ...rest\n } = props;\n\n const formField = useFormField();\n const setHasHelperText = formField?.setHasHelperText;\n\n React.useEffect(() => {\n setHasHelperText?.(true);\n return () => setHasHelperText?.(false);\n }, [setHasHelperText]);\n\n const id = idProp ?? formField?.helperTextId;\n const disabled = disabledProp ?? formField?.disabled ?? false;\n const targetTag = component || as;\n\n const helperClassName = classNames(\n \"cl-form-helper-text\",\n disabled && \"cl-form-helper-text--disabled\",\n className\n );\n\n if (asChild) {\n return (\n <StyledHelperTextRoot\n as={Slot}\n ref={ref as React.Ref<HTMLParagraphElement>}\n id={id}\n className={helperClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledHelperTextRoot>\n );\n }\n\n return (\n <StyledHelperTextRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLParagraphElement>}\n id={id}\n className={helperClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledHelperTextRoot>\n );\n});\n\nFormHelperText.displayName = \"FormHelperText\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useFormField } from \"./FormFieldContext\";\n\nexport interface FormErrorMessageProps\n extends React.HTMLAttributes<HTMLParagraphElement> {\n /**\n * If true, forces the error message to mount even if error is false.\n * @default false\n */\n forceMount?: boolean | undefined;\n /**\n * If true, delegates rendering to immediate child using Slot.\n */\n asChild?: boolean | undefined;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType | undefined;\n /**\n * Alias for component\n */\n as?: React.ElementType | undefined;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode | undefined;\n}\n\nconst StyledErrorMessageRoot = styled(\"p\", {\n name: \"ChellaaFormErrorMessage\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"forceMount\" && prop !== \"asChild\" && prop !== \"component\",\n})({});\n\n/**\n * Accessible error message primitive rendered conditionally when error is true,\n * possessing role=\"alert\" for immediate screen reader announcement.\n *\n * @example\n * <FormErrorMessage>Please enter a valid email address.</FormErrorMessage>\n */\nexport const FormErrorMessage = React.forwardRef<\n HTMLParagraphElement,\n FormErrorMessageProps\n>(function FormErrorMessage(props, ref) {\n const {\n id: idProp,\n forceMount = false,\n asChild = false,\n component = \"p\",\n as,\n children,\n className,\n style,\n sx,\n ...rest\n } = props;\n\n const formField = useFormField();\n const isError = formField?.error ?? false;\n const setHasErrorMessage = formField?.setHasErrorMessage;\n\n React.useEffect(() => {\n if (isError || forceMount) {\n setHasErrorMessage?.(true);\n return () => setHasErrorMessage?.(false);\n }\n }, [setHasErrorMessage, isError, forceMount]);\n\n if (!isError && !forceMount) {\n return null;\n }\n\n const id = idProp ?? formField?.errorMessageId;\n const targetTag = component || as;\n\n const errorClassName = classNames(\"cl-form-error-message\", className);\n\n if (asChild) {\n return (\n <StyledErrorMessageRoot\n as={Slot}\n ref={ref as React.Ref<HTMLParagraphElement>}\n id={id}\n role=\"alert\"\n aria-live=\"polite\"\n className={errorClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledErrorMessageRoot>\n );\n }\n\n return (\n <StyledErrorMessageRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLParagraphElement>}\n id={id}\n role=\"alert\"\n aria-live=\"polite\"\n className={errorClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledErrorMessageRoot>\n );\n});\n\nFormErrorMessage.displayName = \"FormErrorMessage\";\n","import * as React from \"react\";\nimport type { CheckboxContextValue } from \"./Checkbox.types\";\n\nexport const CheckboxContext = React.createContext<\n CheckboxContextValue | undefined\n>(undefined);\n\n/**\n * Hook to consume parent CheckboxGroup context.\n * Returns undefined if the checkbox is rendered standalone.\n */\nexport function useCheckboxGroup(): CheckboxContextValue | undefined {\n return React.useContext(CheckboxContext);\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\nimport { useCheckboxGroup } from \"./CheckboxContext\";\nimport { useFormField } from \"../FormField/FormFieldContext\";\nimport type {\n CheckboxProps,\n CheckboxSize,\n CheckboxColorScheme,\n} from \"./Checkbox.types\";\n\nexport type { CheckboxProps, CheckboxSize, CheckboxColorScheme };\n\nconst StyledCheckboxRoot = styled(\"label\", {\n name: \"ChellaaCheckbox\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"size\" &&\n prop !== \"colorScheme\" &&\n prop !== \"disabled\" &&\n prop !== \"readOnly\" &&\n prop !== \"error\" &&\n prop !== \"checked\" &&\n prop !== \"indeterminate\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Checkbox primitive with tri-state selection, custom color palettes,\n * keyboard accessibility, and automatic CheckboxGroup / FormField binding.\n *\n * @example\n * <Checkbox defaultChecked>Subscribe to updates</Checkbox>\n * <Checkbox indeterminate>Select all items</Checkbox>\n */\nexport const Checkbox = React.forwardRef<HTMLLabelElement, CheckboxProps>(\n function Checkbox(props, ref) {\n const group = useCheckboxGroup();\n const formField = useFormField();\n\n const {\n checked: checkedProp,\n defaultChecked = false,\n indeterminate = false,\n onChange: onChangeProp,\n value: valueProp,\n name: nameProp,\n size: sizeProp,\n colorScheme: colorSchemeProp,\n disabled: disabledProp,\n readOnly: readOnlyProp,\n required: requiredProp,\n error: errorProp,\n inputRef: inputRefProp,\n inputProps = {},\n asChild = false,\n component,\n as,\n children,\n className,\n style,\n sx,\n id: idProp,\n ...rest\n } = props;\n\n // Cascade resolution: Props > Group > FormField > Defaults\n const isGroupControlled = group !== undefined && valueProp !== undefined;\n const isCheckedInGroup = isGroupControlled\n ? group.value.includes(valueProp)\n : undefined;\n\n const checked =\n checkedProp !== undefined ? checkedProp : isCheckedInGroup;\n\n const size = sizeProp ?? group?.size ?? \"md\";\n const colorScheme = colorSchemeProp ?? group?.colorScheme ?? \"primary\";\n const disabled =\n disabledProp ?? group?.disabled ?? formField?.disabled ?? false;\n const readOnly =\n readOnlyProp ?? group?.readOnly ?? formField?.readOnly ?? false;\n const error = errorProp ?? group?.error ?? formField?.error ?? false;\n const required = requiredProp ?? formField?.required ?? false;\n const name = nameProp ?? group?.name ?? formField?.name;\n const id = idProp ?? (formField ? `${formField.id}-checkbox` : undefined);\n\n const [uncontrolledChecked, setUncontrolledChecked] = React.useState<boolean>(\n defaultChecked\n );\n\n const isControlled = checked !== undefined;\n const effectiveChecked = isControlled ? checked : uncontrolledChecked;\n\n const nativeInputRef = React.useRef<HTMLInputElement | null>(null);\n const mergedInputRef = useMergeRefs(nativeInputRef, inputRefProp);\n\n React.useEffect(() => {\n if (nativeInputRef.current) {\n nativeInputRef.current.indeterminate = Boolean(indeterminate);\n }\n }, [indeterminate]);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled || readOnly) {\n event.preventDefault();\n return;\n }\n\n if (isGroupControlled) {\n group.toggleValue(valueProp);\n } else if (!isControlled) {\n setUncontrolledChecked(event.target.checked);\n }\n\n onChangeProp?.(event);\n };\n\n const checkboxClassName = classNames(\n \"cl-checkbox\",\n `cl-checkbox--${size}`,\n `cl-checkbox--${colorScheme}`,\n effectiveChecked && \"cl-checkbox--checked\",\n indeterminate && \"cl-checkbox--indeterminate\",\n disabled && \"cl-checkbox--disabled\",\n error && \"cl-checkbox--error\",\n className\n );\n\n const targetTag = component || as;\n\n const controlBox = (\n <span className=\"cl-checkbox__control ChellaaCheckbox-Control\" aria-hidden=\"true\">\n {indeterminate ? (\n <svg\n className=\"cl-checkbox__icon ChellaaCheckbox-Icon ChellaaCheckbox-Icon--indeterminate\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n width={size === \"lg\" ? 18 : size === \"sm\" ? 12 : 14}\n height={size === \"lg\" ? 18 : size === \"sm\" ? 12 : 14}\n >\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" />\n </svg>\n ) : effectiveChecked ? (\n <svg\n className=\"cl-checkbox__icon ChellaaCheckbox-Icon ChellaaCheckbox-Icon--checked\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n width={size === \"lg\" ? 18 : size === \"sm\" ? 12 : 14}\n height={size === \"lg\" ? 18 : size === \"sm\" ? 12 : 14}\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n ) : null}\n </span>\n );\n\n const ariaDescribedBy = [\n inputProps[\"aria-describedby\"],\n formField?.error && formField?.hasErrorMessage ? formField.errorMessageId : null,\n formField?.hasHelperText ? formField.helperTextId : null,\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n if (asChild) {\n return (\n <StyledCheckboxRoot\n as={Slot}\n ref={ref as React.Ref<HTMLLabelElement>}\n className={checkboxClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCheckboxRoot>\n );\n }\n\n return (\n <StyledCheckboxRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLLabelElement>}\n className={checkboxClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n <input\n type=\"checkbox\"\n id={id}\n name={name}\n value={valueProp}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n checked={isControlled ? effectiveChecked : undefined}\n defaultChecked={!isControlled ? defaultChecked : undefined}\n onChange={handleChange}\n ref={mergedInputRef}\n aria-checked={indeterminate ? \"mixed\" : effectiveChecked}\n aria-invalid={error ? true : undefined}\n aria-describedby={ariaDescribedBy}\n className=\"cl-checkbox__input\"\n {...inputProps}\n />\n {controlBox}\n {children && (\n <span className=\"cl-checkbox__label ChellaaCheckbox-Label\">\n {children}\n </span>\n )}\n </StyledCheckboxRoot>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n","import * as React from \"react\";\n\nexport interface UseControllableStateParams<T> {\n value?: T | undefined;\n defaultValue?: T | (() => T) | undefined;\n onChange?: ((value: T) => void) | undefined;\n}\n\n/**\n * Manages state that can be either controlled (via `value`) or uncontrolled (via `defaultValue`).\n * When controlled, updates trigger `onChange` without mutating internal state directly.\n * When uncontrolled, internal state updates and `onChange` is notified.\n */\nexport function useControllableState<T>({\n value: valueProp,\n defaultValue,\n onChange,\n}: UseControllableStateParams<T>): [\n T,\n (nextValue: T | ((prev: T) => T)) => void,\n] {\n const isControlled = valueProp !== undefined;\n\n const [uncontrolledValue, setUncontrolledValue] = React.useState<T>(() => {\n if (defaultValue !== undefined) {\n return typeof defaultValue === \"function\"\n ? (defaultValue as () => T)()\n : defaultValue;\n }\n return undefined as unknown as T;\n });\n\n const value = isControlled ? (valueProp as T) : uncontrolledValue;\n\n const onChangeRef = React.useRef(onChange);\n React.useEffect(() => {\n onChangeRef.current = onChange;\n });\n\n const setValue = React.useCallback(\n (next: T | ((prev: T) => T)) => {\n const resolvedNext =\n typeof next === \"function\" ? (next as (prev: T) => T)(value) : next;\n\n if (!Object.is(value, resolvedNext)) {\n if (!isControlled) {\n setUncontrolledValue(resolvedNext);\n }\n onChangeRef.current?.(resolvedNext);\n }\n },\n [isControlled, value],\n );\n\n return [value, setValue];\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useControllableState } from \"../../hooks/useControllableState\";\nimport { useFormField } from \"../FormField/FormFieldContext\";\nimport { CheckboxContext } from \"./CheckboxContext\";\nimport type { CheckboxGroupProps, CheckboxContextValue } from \"./Checkbox.types\";\n\ninterface StyledCheckboxGroupRootProps {\n orientation?: \"vertical\" | \"horizontal\" | undefined;\n spacing?: number | string | undefined;\n}\n\nconst StyledCheckboxGroupRoot = styled(\"div\", {\n name: \"ChellaaCheckboxGroup\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"orientation\" &&\n prop !== \"spacing\" &&\n prop !== \"colorScheme\" &&\n prop !== \"error\" &&\n prop !== \"disabled\" &&\n prop !== \"readOnly\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})<StyledCheckboxGroupRootProps>(({ theme, spacing = 2 }) => {\n const gapValue =\n typeof spacing === \"number\" ? theme.spacing(spacing) : spacing;\n\n return {\n gap: gapValue,\n };\n});\n\n/**\n * CheckboxGroup manages selection state for a set of related checkboxes,\n * cascading shared properties and orchestrating multi-selection arrays.\n *\n * @example\n * <CheckboxGroup defaultValue={['react']} onChange={(val) => console.log(val)}>\n * <Checkbox value=\"react\">React</Checkbox>\n * <Checkbox value=\"vue\">Vue</Checkbox>\n * <Checkbox value=\"svelte\">Svelte</Checkbox>\n * </CheckboxGroup>\n */\nexport const CheckboxGroup = React.forwardRef<\n HTMLDivElement,\n CheckboxGroupProps\n>(function CheckboxGroup(props, ref) {\n const formField = useFormField();\n\n const {\n value: valueProp,\n defaultValue = [],\n onChange: onChangeProp,\n name: nameProp,\n size = \"md\",\n colorScheme = \"primary\",\n orientation = \"vertical\",\n spacing = 2,\n disabled: disabledProp,\n readOnly: readOnlyProp,\n error: errorProp,\n asChild = false,\n component,\n as,\n children,\n className,\n style,\n sx,\n ...rest\n } = props;\n\n const name = nameProp ?? formField?.name;\n const disabled = disabledProp ?? formField?.disabled ?? false;\n const readOnly = readOnlyProp ?? formField?.readOnly ?? false;\n const error = errorProp ?? formField?.error ?? false;\n\n const [value, setValue] = useControllableState<string[]>({\n value: valueProp,\n defaultValue,\n onChange: onChangeProp,\n });\n\n const toggleValue = React.useCallback(\n (itemValue: string) => {\n if (readOnly || disabled) return;\n const current = value || [];\n const next = current.includes(itemValue)\n ? current.filter((v) => v !== itemValue)\n : [...current, itemValue];\n setValue(next);\n },\n [value, setValue, readOnly, disabled]\n );\n\n const contextValue: CheckboxContextValue = React.useMemo(\n () => ({\n value: value || [],\n name,\n size,\n colorScheme,\n disabled,\n readOnly,\n error,\n toggleValue,\n }),\n [value, name, size, colorScheme, disabled, readOnly, error, toggleValue]\n );\n\n const groupClassName = classNames(\n \"cl-checkbox-group\",\n `cl-checkbox-group--${orientation}`,\n className\n );\n\n const targetTag = component || as;\n\n if (asChild) {\n return (\n <CheckboxContext.Provider value={contextValue}>\n <StyledCheckboxGroupRoot\n as={Slot}\n ref={ref as React.Ref<HTMLDivElement>}\n role=\"group\"\n orientation={orientation}\n spacing={spacing}\n className={groupClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCheckboxGroupRoot>\n </CheckboxContext.Provider>\n );\n }\n\n return (\n <CheckboxContext.Provider value={contextValue}>\n <StyledCheckboxGroupRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLDivElement>}\n role=\"group\"\n orientation={orientation}\n spacing={spacing}\n className={groupClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCheckboxGroupRoot>\n </CheckboxContext.Provider>\n );\n});\n\nCheckboxGroup.displayName = \"CheckboxGroup\";\n","import * as React from \"react\";\nimport type { RadioContextValue } from \"./Radio.types\";\n\nexport const RadioContext = React.createContext<\n RadioContextValue | undefined\n>(undefined);\n\n/**\n * Hook to consume parent RadioGroup context.\n * Returns undefined if the radio is rendered standalone.\n */\nexport function useRadioGroup(): RadioContextValue | undefined {\n return React.useContext(RadioContext);\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\nimport { useRadioGroup } from \"./RadioContext\";\nimport { useFormField } from \"../FormField/FormFieldContext\";\nimport type {\n RadioProps,\n RadioSize,\n RadioColorScheme,\n} from \"./Radio.types\";\n\nexport type { RadioProps, RadioSize, RadioColorScheme };\n\nconst StyledRadioRoot = styled(\"label\", {\n name: \"ChellaaRadio\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"size\" &&\n prop !== \"colorScheme\" &&\n prop !== \"disabled\" &&\n prop !== \"readOnly\" &&\n prop !== \"error\" &&\n prop !== \"checked\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Radio primitive for single-choice selection with animated circular dot indicator,\n * accessible keyboard arrow navigation, and automatic RadioGroup / FormField binding.\n *\n * @example\n * <Radio value=\"express\">Express Delivery</Radio>\n */\nexport const Radio = React.forwardRef<HTMLLabelElement, RadioProps>(\n function Radio(props, ref) {\n const group = useRadioGroup();\n const formField = useFormField();\n\n const {\n checked: checkedProp,\n defaultChecked = false,\n onChange: onChangeProp,\n value: valueProp,\n name: nameProp,\n size: sizeProp,\n colorScheme: colorSchemeProp,\n disabled: disabledProp,\n readOnly: readOnlyProp,\n required: requiredProp,\n error: errorProp,\n inputRef: inputRefProp,\n inputProps = {},\n asChild = false,\n component,\n as,\n children,\n className,\n style,\n sx,\n id: idProp,\n ...rest\n } = props;\n\n const isGroupControlled = group !== undefined && valueProp !== undefined;\n const isCheckedInGroup = isGroupControlled\n ? group.value !== undefined && String(group.value) === String(valueProp)\n : undefined;\n\n const checked =\n checkedProp !== undefined ? checkedProp : isCheckedInGroup;\n\n const size = sizeProp ?? group?.size ?? \"md\";\n const colorScheme = colorSchemeProp ?? group?.colorScheme ?? \"primary\";\n const disabled =\n disabledProp ?? group?.disabled ?? formField?.disabled ?? false;\n const readOnly =\n readOnlyProp ?? group?.readOnly ?? formField?.readOnly ?? false;\n const error = errorProp ?? group?.error ?? formField?.error ?? false;\n const required = requiredProp ?? formField?.required ?? false;\n const name = nameProp ?? group?.name ?? formField?.name;\n const id = idProp ?? (formField ? `${formField.id}-radio-${valueProp ?? \"\"}` : undefined);\n\n const [uncontrolledChecked, setUncontrolledChecked] = React.useState<boolean>(\n defaultChecked\n );\n\n const isControlled = checked !== undefined;\n const effectiveChecked = isControlled ? checked : uncontrolledChecked;\n\n const nativeInputRef = React.useRef<HTMLInputElement | null>(null);\n const mergedInputRef = useMergeRefs(nativeInputRef, inputRefProp);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled || readOnly) {\n event.preventDefault();\n return;\n }\n\n if (isGroupControlled && valueProp !== undefined) {\n group.onChange(valueProp);\n } else if (!isControlled) {\n setUncontrolledChecked(event.target.checked);\n }\n\n onChangeProp?.(event);\n };\n\n const radioClassName = classNames(\n \"cl-radio\",\n `cl-radio--${size}`,\n `cl-radio--${colorScheme}`,\n effectiveChecked && \"cl-radio--checked\",\n disabled && \"cl-radio--disabled\",\n error && \"cl-radio--error\",\n className\n );\n\n const targetTag = component || as;\n\n const controlBox = (\n <span className=\"cl-radio__control ChellaaRadio-Control\" aria-hidden=\"true\">\n <span className=\"cl-radio__dot ChellaaRadio-Dot\" />\n </span>\n );\n\n const ariaDescribedBy = [\n inputProps[\"aria-describedby\"],\n formField?.error && formField?.hasErrorMessage ? formField.errorMessageId : null,\n formField?.hasHelperText ? formField.helperTextId : null,\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n if (asChild) {\n return (\n <StyledRadioRoot\n as={Slot}\n ref={ref as React.Ref<HTMLLabelElement>}\n className={radioClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledRadioRoot>\n );\n }\n\n return (\n <StyledRadioRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLLabelElement>}\n className={radioClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n <input\n type=\"radio\"\n id={id}\n name={name}\n value={valueProp}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n checked={isControlled ? effectiveChecked : undefined}\n defaultChecked={!isControlled ? defaultChecked : undefined}\n onChange={handleChange}\n ref={mergedInputRef}\n aria-invalid={error ? true : undefined}\n aria-describedby={ariaDescribedBy}\n className=\"cl-radio__input\"\n {...inputProps}\n />\n {controlBox}\n {children && (\n <span className=\"cl-radio__label ChellaaRadio-Label\">\n {children}\n </span>\n )}\n </StyledRadioRoot>\n );\n }\n);\n\nRadio.displayName = \"Radio\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useControllableState } from \"../../hooks/useControllableState\";\nimport { useFormField } from \"../FormField/FormFieldContext\";\nimport { RadioContext } from \"./RadioContext\";\nimport type { RadioGroupProps, RadioContextValue } from \"./Radio.types\";\n\nconst StyledRadioGroupRoot = styled(\"div\", {\n name: \"ChellaaRadioGroup\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"orientation\" &&\n prop !== \"spacing\" &&\n prop !== \"colorScheme\" &&\n prop !== \"error\" &&\n prop !== \"disabled\" &&\n prop !== \"readOnly\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * RadioGroup manages single-selection state across a group of mutually exclusive Radios,\n * providing native roving keyboard navigation and shared property cascade.\n *\n * @example\n * <RadioGroup defaultValue=\"standard\" onChange={(val) => console.log(val)}>\n * <Radio value=\"standard\">Standard Shipping (3-5 days)</Radio>\n * <Radio value=\"express\">Express Shipping (1-2 days)</Radio>\n * <Radio value=\"overnight\">Overnight Delivery</Radio>\n * </RadioGroup>\n */\nexport const RadioGroup = React.forwardRef<HTMLDivElement, RadioGroupProps>(\n function RadioGroup(props, ref) {\n const formField = useFormField();\n\n const {\n value: valueProp,\n defaultValue,\n onChange: onChangeProp,\n name: nameProp,\n size = \"md\",\n colorScheme = \"primary\",\n orientation = \"vertical\",\n spacing = 2,\n disabled: disabledProp,\n readOnly: readOnlyProp,\n error: errorProp,\n asChild = false,\n component,\n as,\n children,\n className,\n style,\n sx,\n ...rest\n } = props;\n\n const generatedName = React.useId();\n const name = nameProp || formField?.name || generatedName;\n const disabled = disabledProp ?? formField?.disabled ?? false;\n const readOnly = readOnlyProp ?? formField?.readOnly ?? false;\n const error = errorProp ?? formField?.error ?? false;\n\n const [value, setValue] = useControllableState<string | number | undefined>({\n value: valueProp,\n defaultValue,\n onChange: (val) => {\n if (val !== undefined) {\n onChangeProp?.(val);\n }\n },\n });\n\n const handleChange = React.useCallback(\n (nextValue: string | number) => {\n if (readOnly || disabled) return;\n setValue(nextValue);\n },\n [readOnly, disabled, setValue]\n );\n\n const contextValue: RadioContextValue = React.useMemo(\n () => ({\n value,\n name,\n size,\n colorScheme,\n disabled,\n readOnly,\n error,\n onChange: handleChange,\n }),\n [value, name, size, colorScheme, disabled, readOnly, error, handleChange]\n );\n\n const targetTag = component || as;\n\n const groupClassName = classNames(\n \"cl-radio-group\",\n orientation === \"horizontal\"\n ? \"cl-radio-group--horizontal\"\n : \"cl-radio-group--vertical\",\n className\n );\n\n const gapStyle =\n spacing !== undefined\n ? {\n gap: typeof spacing === \"number\" ? `${spacing * 4}px` : spacing,\n ...style,\n }\n : style;\n\n if (asChild) {\n return (\n <RadioContext.Provider value={contextValue}>\n <StyledRadioGroupRoot\n as={Slot}\n ref={ref as React.Ref<HTMLDivElement>}\n role=\"radiogroup\"\n className={groupClassName}\n style={gapStyle}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledRadioGroupRoot>\n </RadioContext.Provider>\n );\n }\n\n return (\n <RadioContext.Provider value={contextValue}>\n <StyledRadioGroupRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLDivElement>}\n role=\"radiogroup\"\n className={groupClassName}\n style={gapStyle}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledRadioGroupRoot>\n </RadioContext.Provider>\n );\n }\n);\n\nRadioGroup.displayName = \"RadioGroup\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { useMergeRefs } from \"../../hooks/useMergeRefs\";\nimport { useFormField } from \"../FormField/FormFieldContext\";\nimport type {\n SwitchProps,\n SwitchSize,\n SwitchColorScheme,\n SwitchLabelPlacement,\n} from \"./Switch.types\";\n\nexport type {\n SwitchProps,\n SwitchSize,\n SwitchColorScheme,\n SwitchLabelPlacement,\n};\n\nconst StyledSwitchRoot = styled(\"label\", {\n name: \"ChellaaSwitch\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"size\" &&\n prop !== \"labelPlacement\" &&\n prop !== \"disabled\" &&\n prop !== \"readOnly\" &&\n prop !== \"error\" &&\n prop !== \"loading\" &&\n prop !== \"checked\" &&\n prop !== \"colorScheme\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Switch primitive representing an immediate binary toggle setting.\n * Conforms to the W3C WAI-ARIA 1.2 Switch Pattern (`role=\"switch\"`).\n *\n * @example\n * <Switch defaultChecked>Enable Notifications</Switch>\n */\nexport const Switch = React.forwardRef<HTMLLabelElement, SwitchProps>(\n function Switch(props, ref) {\n const formField = useFormField();\n\n const {\n checked: checkedProp,\n defaultChecked = false,\n onChange: onChangeProp,\n value,\n name: nameProp,\n size = \"md\",\n colorScheme = \"primary\",\n disabled: disabledProp,\n readOnly: readOnlyProp,\n required: requiredProp,\n error: errorProp,\n loading = false,\n checkedIcon,\n uncheckedIcon,\n labelPlacement = \"end\",\n inputRef: inputRefProp,\n inputProps = {},\n asChild = false,\n component,\n as,\n children,\n className,\n style,\n sx,\n id: idProp,\n ...rest\n } = props;\n\n const disabled =\n disabledProp ?? formField?.disabled ?? loading ? true : false;\n const readOnly = readOnlyProp ?? formField?.readOnly ?? false;\n const error = errorProp ?? formField?.error ?? false;\n const required = requiredProp ?? formField?.required ?? false;\n const name = nameProp ?? formField?.name;\n const id = idProp ?? (formField ? `${formField.id}-switch` : undefined);\n\n const [uncontrolledChecked, setUncontrolledChecked] = React.useState<boolean>(\n defaultChecked\n );\n\n const isControlled = checkedProp !== undefined;\n const effectiveChecked = isControlled ? checkedProp : uncontrolledChecked;\n\n const nativeInputRef = React.useRef<HTMLInputElement | null>(null);\n const mergedInputRef = useMergeRefs(nativeInputRef, inputRefProp);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled || readOnly || loading) {\n event.preventDefault();\n return;\n }\n\n if (!isControlled) {\n setUncontrolledChecked(event.target.checked);\n }\n\n onChangeProp?.(event);\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Enter\") {\n event.preventDefault();\n nativeInputRef.current?.click();\n }\n inputProps.onKeyDown?.(event);\n };\n\n const switchClassName = classNames(\n \"cl-switch\",\n `cl-switch--${size}`,\n `cl-switch--${colorScheme}`,\n `cl-switch--placement-${labelPlacement}`,\n effectiveChecked && \"cl-switch--checked\",\n disabled && \"cl-switch--disabled\",\n error && \"cl-switch--error\",\n className\n );\n\n const targetTag = component || as;\n\n const thumbIcon = loading ? (\n <svg\n className=\"cl-switch__spinner\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <circle\n cx=\"12\"\n cy=\"12\"\n r=\"9\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeDasharray=\"40 20\"\n strokeLinecap=\"round\"\n />\n </svg>\n ) : effectiveChecked ? (\n checkedIcon\n ) : (\n uncheckedIcon\n );\n\n const trackControl = (\n <span className=\"cl-switch__track ChellaaSwitch-Track\" aria-hidden=\"true\">\n <span className=\"cl-switch__thumb ChellaaSwitch-Thumb\">\n {thumbIcon}\n </span>\n </span>\n );\n\n const ariaDescribedBy = [\n inputProps[\"aria-describedby\"],\n formField?.error && formField?.hasErrorMessage ? formField.errorMessageId : null,\n formField?.hasHelperText ? formField.helperTextId : null,\n ]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n if (asChild) {\n return (\n <StyledSwitchRoot\n as={Slot}\n ref={ref as React.Ref<HTMLLabelElement>}\n className={switchClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledSwitchRoot>\n );\n }\n\n return (\n <StyledSwitchRoot\n as={targetTag}\n ref={ref as React.Ref<HTMLLabelElement>}\n className={switchClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n <input\n type=\"checkbox\"\n role=\"switch\"\n id={id}\n name={name}\n value={value}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n checked={isControlled ? effectiveChecked : undefined}\n defaultChecked={!isControlled ? defaultChecked : undefined}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n ref={mergedInputRef}\n aria-checked={effectiveChecked}\n aria-invalid={error ? true : undefined}\n aria-describedby={ariaDescribedBy}\n className=\"cl-switch__input\"\n {...inputProps}\n />\n {trackControl}\n {children && (\n <span className=\"cl-switch__label ChellaaSwitch-Label\">\n {children}\n </span>\n )}\n </StyledSwitchRoot>\n );\n }\n);\n\nSwitch.displayName = \"Switch\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport type { SxProps } from \"../../system/types\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\n\nexport type PaperVariant = \"elevation\" | \"outlined\";\n\nexport interface PaperOwnerState {\n elevation?: number | undefined;\n variant?: PaperVariant | undefined;\n square?: boolean | undefined;\n}\n\nexport interface PaperProps\n extends React.HTMLAttributes<HTMLElement>,\n PaperOwnerState {\n /**\n * If true, delegate rendering to immediate child element using Slot\n */\n asChild?: boolean | undefined;\n /**\n * The underlying HTML element or component\n */\n component?: React.ElementType | undefined;\n /**\n * The underlying HTML element or component\n */\n as?: React.ElementType | undefined;\n /**\n * The system-aware sx prop\n */\n sx?: SxProps;\n children?: React.ReactNode;\n}\n\nconst StyledPaperRoot = styled(\"div\", {\n name: \"ChellaaPaper\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"elevation\" &&\n prop !== \"variant\" &&\n prop !== \"square\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n/**\n * Material Paper elevation surface container with 24-level elevation shadows,\n * dark-mode surface elevation overlays, and outlined variants.\n *\n * @example\n * <Paper elevation={3} sx={{ p: 2 }}>\n * Elevated Content\n * </Paper>\n */\nexport const Paper = React.forwardRef<HTMLElement, PaperProps>(\n function Paper(props, ref) {\n const {\n asChild = false,\n component,\n as,\n elevation = 1,\n variant = \"elevation\",\n square = false,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const clampedElevation = Math.max(0, Math.min(24, elevation));\n\n const paperClassName = classNames(\n \"cl-paper\",\n square && \"cl-paper--square\",\n variant === \"outlined\" ? \"cl-paper--outlined\" : `cl-paper--elevation-${clampedElevation}`,\n className\n );\n\n const targetTag = component || as;\n\n if (asChild) {\n return (\n <StyledPaperRoot\n as={Slot}\n ref={ref as any}\n className={paperClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledPaperRoot>\n );\n }\n\n if (targetTag) {\n return (\n <StyledPaperRoot\n as={targetTag}\n ref={ref as any}\n className={paperClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledPaperRoot>\n );\n }\n\n return (\n <StyledPaperRoot\n ref={ref as any}\n className={paperClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledPaperRoot>\n );\n }\n);\n\nPaper.displayName = \"Paper\";\n","import * as React from \"react\";\nimport type { CardSize } from \"./Card.types\";\n\n/**\n * Internal context propagating Card root's `size` prop to all sub-components\n * (CardHeader, CardBody, CardFooter, CardActions) so they produce consistent\n * padding without consumers having to pass `size` to every child.\n */\nexport interface CardContextValue {\n size: CardSize;\n}\n\nexport const CardContext = React.createContext<CardContextValue>({\n size: \"md\",\n});\n\nexport function useCardContext(): CardContextValue {\n return React.useContext(CardContext);\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { styled } from \"../../system/styled\";\nimport { Slot } from \"../../primitives/Slot\";\nimport { classNames } from \"../../utils/classNames\";\nimport { CardContext } from \"./CardContext\";\nimport type {\n CardProps,\n CardHeaderProps,\n CardMediaProps,\n CardBodyProps,\n CardFooterProps,\n CardActionsProps,\n} from \"./Card.types\";\n\n// ─── Card Root Styled Component ──────────────────────────────────────────────\n\nconst StyledCardRoot = styled(\"div\", {\n name: \"ChellaaCard\",\n slot: \"Root\",\n shouldForwardProp: (prop) =>\n prop !== \"variant\" &&\n prop !== \"elevation\" &&\n prop !== \"hoverable\" &&\n prop !== \"square\" &&\n prop !== \"size\" &&\n prop !== \"asChild\" &&\n prop !== \"component\",\n})({});\n\n// ─── Card Component ──────────────────────────────────────────────────────────\n\n/**\n * Material Design 3-aligned surface container with compound sub-components.\n * Supports 3 visual variants, numeric M3 elevation, dark-mode overlay tinting,\n * and an optional hoverable lift mode.\n *\n * @example\n * <Card hoverable>\n * <CardMedia image=\"/hero.jpg\" alt=\"Hero\" />\n * <CardHeader title=\"Title\" subheader=\"Subtitle\" />\n * <CardBody>Content here</CardBody>\n * <CardActions>\n * <Button>Action</Button>\n * </CardActions>\n * </Card>\n */\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(\n function Card(props, ref) {\n const {\n variant = \"elevated\",\n elevation = 1,\n size = \"md\",\n hoverable = false,\n square = false,\n asChild = false,\n component,\n as,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const cardClassName = classNames(\n \"cl-card\",\n `cl-card--${size}`,\n `cl-card--${variant}`,\n square && \"cl-card--square\",\n hoverable && \"cl-card--hoverable\",\n className\n );\n\n const targetTag = component || as;\n\n return (\n <CardContext.Provider value={{ size }}>\n {asChild ? (\n <StyledCardRoot\n as={Slot as any}\n ref={ref as any}\n className={cardClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCardRoot>\n ) : (\n <StyledCardRoot\n as={targetTag}\n ref={ref as any}\n className={cardClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCardRoot>\n )}\n </CardContext.Provider>\n );\n }\n);\n\nCard.displayName = \"Card\";\n\n// ─── CardHeader Styled Components ────────────────────────────────────────────\n\nconst StyledCardHeaderRoot = styled(\"div\", {\n name: \"ChellaaCard\",\n slot: \"Header\",\n shouldForwardProp: (prop) => prop !== \"cardSize\" && prop !== \"asChild\",\n})({});\n\n// ─── CardHeader Component ────────────────────────────────────────────────────\n\n/**\n * Header zone of a Card. Supports avatar, title, subheader, and trailing action slots.\n * Automatically inherits `size` from the parent Card via CardContext.\n */\nexport const CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(\n function CardHeader(props, ref) {\n const {\n avatar,\n action,\n title,\n subheader,\n titleTypographyProps,\n subheaderTypographyProps,\n asChild = false,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const headerClassName = classNames(\n \"cl-card__header\",\n \"ChellaaCard-header\",\n className\n );\n\n if (asChild) {\n return (\n <StyledCardHeaderRoot\n as={Slot as any}\n ref={ref as any}\n className={headerClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCardHeaderRoot>\n );\n }\n\n return (\n <StyledCardHeaderRoot\n ref={ref as any}\n className={headerClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {avatar && (\n <div className=\"cl-card__header-avatar ChellaaCard-headerAvatar\">\n {avatar}\n </div>\n )}\n <div className=\"cl-card__header-content ChellaaCard-headerContent\">\n {title != null && (\n <span\n className={classNames(\n \"cl-card__header-title\",\n \"ChellaaCard-headerTitle\",\n titleTypographyProps?.className\n )}\n {...titleTypographyProps}\n >\n {title}\n </span>\n )}\n {subheader != null && (\n <span\n className={classNames(\n \"cl-card__header-subheader\",\n \"ChellaaCard-headerSubheader\",\n subheaderTypographyProps?.className\n )}\n {...subheaderTypographyProps}\n >\n {subheader}\n </span>\n )}\n {children}\n </div>\n {action && (\n <div className=\"cl-card__header-action ChellaaCard-headerAction\">\n {action}\n </div>\n )}\n </StyledCardHeaderRoot>\n );\n }\n);\n\nCardHeader.displayName = \"CardHeader\";\n\n// ─── CardMedia Styled Component ──────────────────────────────────────────────\n\nconst StyledCardMediaRoot = styled(\"div\", {\n name: \"ChellaaCard\",\n slot: \"Media\",\n shouldForwardProp: (prop) => prop !== \"image\" && prop !== \"aspectRatio\",\n})({});\n\n// ─── CardMedia Component ─────────────────────────────────────────────────────\n\n/**\n * Aspect-ratio-locked media zone that bleeds edge-to-edge within the card.\n * Use the `image` prop for a CSS background shorthand, or place an `<img>`\n * child for semantic HTML (preferred for accessibility).\n */\nexport const CardMedia = React.forwardRef<HTMLDivElement, CardMediaProps>(\n function CardMedia(props, ref) {\n const {\n image,\n alt,\n aspectRatio = \"16/9\",\n component,\n className,\n style,\n sx,\n children,\n ...rest\n } = props;\n\n const mediaStyle: React.CSSProperties = {\n ...(aspectRatio ? { aspectRatio } : {}),\n ...(image ? { backgroundImage: `url(${image})` } : {}),\n ...style,\n };\n\n const mediaClassName = classNames(\n \"cl-card__media\",\n \"ChellaaCard-media\",\n className\n );\n\n return (\n <StyledCardMediaRoot\n as={component}\n ref={ref as any}\n className={mediaClassName}\n style={mediaStyle}\n sx={sx}\n role={image && !children ? \"img\" : undefined}\n aria-label={image && !children ? alt : undefined}\n {...rest}\n >\n {children}\n </StyledCardMediaRoot>\n );\n }\n);\n\nCardMedia.displayName = \"CardMedia\";\n\n// ─── CardBody Styled Component ───────────────────────────────────────────────\n\nconst StyledCardBodyRoot = styled(\"div\", {\n name: \"ChellaaCard\",\n slot: \"Body\",\n shouldForwardProp: (prop) => prop !== \"cardSize\",\n})({});\n\n// ─── CardBody Component ──────────────────────────────────────────────────────\n\n/**\n * Main flexible content zone of a Card.\n * Inherits `size` from parent Card for consistent padding.\n */\nexport const CardBody = React.forwardRef<HTMLDivElement, CardBodyProps>(\n function CardBody(props, ref) {\n const { children, className, style, sx, ...rest } = props;\n const bodyClassName = classNames(\"cl-card__body\", \"ChellaaCard-body\", className);\n\n return (\n <StyledCardBodyRoot\n ref={ref as any}\n className={bodyClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCardBodyRoot>\n );\n }\n);\n\nCardBody.displayName = \"CardBody\";\n\n// ─── CardFooter Styled Component ─────────────────────────────────────────────\n\nconst StyledCardFooterRoot = styled(\"div\", {\n name: \"ChellaaCard\",\n slot: \"Footer\",\n shouldForwardProp: (prop) => prop !== \"divider\" && prop !== \"cardSize\",\n})({});\n\n// ─── CardFooter Component ────────────────────────────────────────────────────\n\n/**\n * Semantic footer zone of a Card. Use for metadata, tags, timestamps.\n * Set `divider` to render a 1px separator between the body and footer.\n */\nexport const CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(\n function CardFooter(props, ref) {\n const { divider = false, children, className, style, sx, ...rest } = props;\n const footerClassName = classNames(\n \"cl-card__footer\",\n \"ChellaaCard-footer\",\n divider && \"cl-card__footer--divider\",\n className\n );\n\n return (\n <StyledCardFooterRoot\n ref={ref as any}\n className={footerClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCardFooterRoot>\n );\n }\n);\n\nCardFooter.displayName = \"CardFooter\";\n\n// ─── CardActions Styled Component ────────────────────────────────────────────\n\nconst StyledCardActionsRoot = styled(\"div\", {\n name: \"ChellaaCard\",\n slot: \"Actions\",\n shouldForwardProp: (prop) => prop !== \"disableSpacing\" && prop !== \"cardSize\",\n})({});\n\n// ─── CardActions Component ───────────────────────────────────────────────────\n\n/**\n * Flex action strip for Button / Link controls inside a Card.\n * By default applies a slight negative margin to align icon-buttons\n * flush to the card's padding box. Use `disableSpacing` to remove this.\n */\nexport const CardActions = React.forwardRef<HTMLDivElement, CardActionsProps>(\n function CardActions(props, ref) {\n const { disableSpacing = false, children, className, style, sx, ...rest } = props;\n const actionsClassName = classNames(\n \"cl-card__actions\",\n \"ChellaaCard-actions\",\n disableSpacing && \"cl-card__actions--disable-spacing\",\n className\n );\n\n return (\n <StyledCardActionsRoot\n ref={ref as any}\n className={actionsClassName}\n style={style}\n sx={sx}\n {...rest}\n >\n {children}\n </StyledCardActionsRoot>\n );\n }\n);\n\nCardActions.displayName = \"CardActions\";\n"]}
|