@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.d.ts CHANGED
@@ -1,50 +1,234 @@
1
1
  import * as React from 'react';
2
+ import React__default, { CSSProperties } from 'react';
3
+ import * as _emotion_styled from '@emotion/styled';
2
4
 
5
+ type ColorMode = "light" | "dark";
6
+ interface PaletteColor {
7
+ light: string;
8
+ main: string;
9
+ dark: string;
10
+ contrastText: string;
11
+ }
12
+ interface TypeText {
13
+ primary: string;
14
+ secondary: string;
15
+ disabled: string;
16
+ }
17
+ interface TypeBackground {
18
+ default: string;
19
+ paper: string;
20
+ surface: string;
21
+ }
22
+ interface TypeAction {
23
+ active: string;
24
+ hover: string;
25
+ hoverOpacity: number;
26
+ selected: string;
27
+ selectedOpacity: number;
28
+ disabled: string;
29
+ disabledBackground: string;
30
+ focus: string;
31
+ focusOpacity: number;
32
+ }
33
+ interface Palette {
34
+ mode: ColorMode;
35
+ primary: PaletteColor;
36
+ secondary: PaletteColor;
37
+ error: PaletteColor;
38
+ warning: PaletteColor;
39
+ info: PaletteColor;
40
+ success: PaletteColor;
41
+ text: TypeText;
42
+ background: TypeBackground;
43
+ divider: string;
44
+ action: TypeAction;
45
+ }
46
+ type BreakpointKey = "xs" | "sm" | "md" | "lg" | "xl";
47
+ interface Breakpoints {
48
+ values: Record<BreakpointKey, number>;
49
+ up: (key: BreakpointKey | number) => string;
50
+ down: (key: BreakpointKey | number) => string;
51
+ between: (start: BreakpointKey | number, end: BreakpointKey | number) => string;
52
+ only: (key: BreakpointKey) => string;
53
+ }
54
+ type TypographyVariant = "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "subtitle1" | "subtitle2" | "body1" | "body2" | "button" | "caption" | "overline";
55
+ interface TypographyStyle {
56
+ fontFamily?: string;
57
+ fontWeight?: number | string;
58
+ fontSize?: string;
59
+ lineHeight?: number | string;
60
+ letterSpacing?: string;
61
+ textTransform?: React.CSSProperties["textTransform"];
62
+ }
63
+ interface TypographyTheme {
64
+ fontFamily: string;
65
+ fontSize: number;
66
+ fontWeightLight: number;
67
+ fontWeightRegular: number;
68
+ fontWeightMedium: number;
69
+ fontWeightBold: number;
70
+ h1: TypographyStyle;
71
+ h2: TypographyStyle;
72
+ h3: TypographyStyle;
73
+ h4: TypographyStyle;
74
+ h5: TypographyStyle;
75
+ h6: TypographyStyle;
76
+ subtitle1: TypographyStyle;
77
+ subtitle2: TypographyStyle;
78
+ body1: TypographyStyle;
79
+ body2: TypographyStyle;
80
+ button: TypographyStyle;
81
+ caption: TypographyStyle;
82
+ overline: TypographyStyle;
83
+ }
84
+ interface Transitions {
85
+ easing: {
86
+ easeInOut: string;
87
+ easeOut: string;
88
+ easeIn: string;
89
+ sharp: string;
90
+ };
91
+ duration: {
92
+ shortest: number;
93
+ shorter: number;
94
+ short: number;
95
+ standard: number;
96
+ complex: number;
97
+ enteringScreen: number;
98
+ leavingScreen: number;
99
+ };
100
+ create: (props: string | string[], options?: {
101
+ duration?: number | string;
102
+ easing?: string;
103
+ delay?: number | string;
104
+ }) => string;
105
+ }
106
+ interface ZIndex {
107
+ mobileStepper: number;
108
+ fab: number;
109
+ speedDial: number;
110
+ appBar: number;
111
+ drawer: number;
112
+ modal: number;
113
+ snackbar: number;
114
+ tooltip: number;
115
+ }
116
+ interface ComponentOverride<P = any> {
117
+ defaultProps?: Partial<P>;
118
+ styleOverrides?: {
119
+ [slot: string]: React.CSSProperties | ((params: {
120
+ theme: ChellaaTheme;
121
+ ownerState: P;
122
+ }) => React.CSSProperties);
123
+ };
124
+ }
125
+ interface ChellaaTheme {
126
+ palette: Palette;
127
+ typography: TypographyTheme;
128
+ spacing: (...factors: (number | string)[]) => string;
129
+ shape: {
130
+ borderRadius: number;
131
+ };
132
+ breakpoints: Breakpoints;
133
+ shadows: string[];
134
+ transitions: Transitions;
135
+ zIndex: ZIndex;
136
+ components?: Record<string, ComponentOverride>;
137
+ }
138
+ type DeepPartial<T> = {
139
+ [P in keyof T]?: T[P] extends Function ? T[P] : T[P] extends Array<infer U> ? Array<DeepPartial<U>> : T[P] extends object ? DeepPartial<T[P]> : T[P];
140
+ };
141
+ type ThemeOptions = DeepPartial<ChellaaTheme>;
142
+
143
+ declare module "@emotion/react" {
144
+ interface Theme extends ChellaaTheme {
145
+ }
146
+ }
3
147
  type ThemeMode = "light" | "dark" | "system" | string;
4
148
  interface ThemeContextValue {
5
149
  theme: ThemeMode;
6
150
  setTheme: (theme: ThemeMode) => void;
7
151
  resolvedTheme: "light" | "dark";
8
152
  systemTheme: "light" | "dark" | undefined;
153
+ activeTheme: ChellaaTheme;
154
+ colorMode: ColorMode;
155
+ setColorMode: (mode: ColorMode) => void;
9
156
  }
10
157
  interface ThemeProviderProps {
11
158
  children?: React.ReactNode;
159
+ theme?: ChellaaTheme | ThemeOptions;
12
160
  defaultTheme?: ThemeMode;
13
161
  storageKey?: string;
14
162
  enableSystem?: boolean;
15
163
  tokens?: Record<string, string>;
16
164
  attribute?: string;
17
165
  }
18
- declare function ThemeProvider({ children, defaultTheme, storageKey, enableSystem, tokens, attribute, }: ThemeProviderProps): React.JSX.Element;
166
+ declare function ThemeProvider({ children, theme: customThemeProp, defaultTheme: defaultThemeMode, storageKey, enableSystem, tokens, attribute, }: ThemeProviderProps): React.JSX.Element;
19
167
 
168
+ interface ExtendedThemeContextValue extends ThemeContextValue {
169
+ /** The active ChellaaTheme object (colors, typography, spacing, shadows) */
170
+ themeObject: ChellaaTheme;
171
+ }
20
172
  /**
21
173
  * Accesses the active theme context, allowing components to read and update
22
- * the current theme mode (`light`, `dark`, `system`), resolved theme, and system preference.
174
+ * the current theme mode (`light`, `dark`, `system`), resolved theme, and active ChellaaTheme.
23
175
  */
24
- declare function useTheme(): ThemeContextValue;
176
+ declare function useTheme(): ExtendedThemeContextValue;
25
177
 
26
- interface CustomThemeConfig {
27
- name: string;
28
- tokens: Record<string, string>;
29
- }
30
- interface CustomThemeResult {
31
- name: string;
32
- tokens: Record<string, string>;
33
- cssText: string;
34
- }
35
178
  /**
36
- * Creates a structured custom theme definition and compiles it to valid CSS custom property text.
179
+ * Creates a Chellaa Material Theme with 24-level elevation shadows,
180
+ * 8px spacing, and complete Google Material 3 design tokens.
37
181
  *
38
182
  * @example
39
- * const emeraldTheme = createTheme({
40
- * name: 'emerald',
41
- * tokens: {
42
- * '--cl-color-primary-base': '#059669',
43
- * '--cl-color-primary-hover': '#047857',
44
- * }
183
+ * const theme = createTheme({
184
+ * palette: {
185
+ * mode: 'dark',
186
+ * primary: { main: '#6366f1' }
187
+ * },
188
+ * shape: { borderRadius: 8 }
45
189
  * });
46
190
  */
47
- declare function createTheme(config: CustomThemeConfig): CustomThemeResult;
191
+ declare function createTheme(options?: ThemeOptions): ChellaaTheme;
192
+ declare const defaultTheme: ChellaaTheme;
193
+ declare const defaultDarkTheme: ChellaaTheme;
194
+
195
+ /**
196
+ * Google Material Design 24-Level Elevation Shadow Matrix
197
+ *
198
+ * Each shadow is composed of 3 distinct light-source formulas:
199
+ * 1. Umbra: Key direct light source shadow
200
+ * 2. Penumbra: Secondary ambient light shadow
201
+ * 3. Ambient: Atmospheric fill shadow
202
+ */
203
+ declare function createShadows(): string[];
204
+ declare const defaultShadows: string[];
205
+
206
+ /**
207
+ * Google Material Design 8px Spacing Grid Function
208
+ *
209
+ * Supports single and multi-argument invocations:
210
+ * - spacing(1) => '8px'
211
+ * - spacing(2) => '16px'
212
+ * - spacing(1, 2) => '8px 16px'
213
+ * - spacing(1, 2, 3, 4) => '8px 16px 24px 32px'
214
+ * - spacing('auto') => 'auto'
215
+ */
216
+ declare function createSpacing(base?: number): (...factors: (number | string)[]) => string;
217
+ declare const defaultSpacing: (...factors: (number | string)[]) => string;
218
+
219
+ declare const breakpointKeys: BreakpointKey[];
220
+ declare function createBreakpoints(customValues?: Partial<Record<BreakpointKey, number>>): Breakpoints;
221
+ declare const defaultBreakpoints: Breakpoints;
222
+
223
+ declare const lightPalette: Palette;
224
+ declare const darkPalette: Palette;
225
+ declare function createPalette(mode?: ColorMode): Palette;
226
+
227
+ declare const defaultTypography: TypographyTheme;
228
+
229
+ declare const defaultTransitions: Transitions;
230
+
231
+ declare const defaultZIndex: ZIndex;
48
232
 
49
233
  interface ThemeScriptProps {
50
234
  storageKey?: string;
@@ -58,6 +242,182 @@ interface ThemeScriptProps {
58
242
  */
59
243
  declare function ThemeScript({ storageKey, defaultTheme, attribute, nonce, }: ThemeScriptProps): React.JSX.Element;
60
244
 
245
+ /**
246
+ * Responsive value supports:
247
+ * 1. Single value: 2 | "100%"
248
+ * 2. Array syntax: [1, 2, 4] (mapped to xs, sm, md...)
249
+ * 3. Object syntax: { xs: 1, sm: 2, md: 4 }
250
+ */
251
+ type ResponsiveValue<T> = T | (T | null | undefined)[] | Partial<Record<BreakpointKey, T>>;
252
+ /**
253
+ * Shorthand and theme-aware system properties
254
+ */
255
+ interface SystemStyleProperties {
256
+ m?: ResponsiveValue<number | string>;
257
+ margin?: ResponsiveValue<number | string>;
258
+ mt?: ResponsiveValue<number | string>;
259
+ marginTop?: ResponsiveValue<number | string>;
260
+ mr?: ResponsiveValue<number | string>;
261
+ marginRight?: ResponsiveValue<number | string>;
262
+ mb?: ResponsiveValue<number | string>;
263
+ marginBottom?: ResponsiveValue<number | string>;
264
+ ml?: ResponsiveValue<number | string>;
265
+ marginLeft?: ResponsiveValue<number | string>;
266
+ mx?: ResponsiveValue<number | string>;
267
+ marginInline?: ResponsiveValue<number | string>;
268
+ my?: ResponsiveValue<number | string>;
269
+ marginBlock?: ResponsiveValue<number | string>;
270
+ p?: ResponsiveValue<number | string>;
271
+ padding?: ResponsiveValue<number | string>;
272
+ pt?: ResponsiveValue<number | string>;
273
+ paddingTop?: ResponsiveValue<number | string>;
274
+ pr?: ResponsiveValue<number | string>;
275
+ paddingRight?: ResponsiveValue<number | string>;
276
+ pb?: ResponsiveValue<number | string>;
277
+ paddingBottom?: ResponsiveValue<number | string>;
278
+ pl?: ResponsiveValue<number | string>;
279
+ paddingLeft?: ResponsiveValue<number | string>;
280
+ px?: ResponsiveValue<number | string>;
281
+ paddingInline?: ResponsiveValue<number | string>;
282
+ py?: ResponsiveValue<number | string>;
283
+ paddingBlock?: ResponsiveValue<number | string>;
284
+ gap?: ResponsiveValue<number | string>;
285
+ rowGap?: ResponsiveValue<number | string>;
286
+ columnGap?: ResponsiveValue<number | string>;
287
+ color?: ResponsiveValue<string>;
288
+ bgcolor?: ResponsiveValue<string>;
289
+ backgroundColor?: ResponsiveValue<string>;
290
+ borderColor?: ResponsiveValue<string>;
291
+ elevation?: ResponsiveValue<number>;
292
+ boxShadow?: ResponsiveValue<number | string>;
293
+ borderRadius?: ResponsiveValue<number | string>;
294
+ zIndex?: ResponsiveValue<number | string>;
295
+ display?: ResponsiveValue<CSSProperties["display"]>;
296
+ flexDirection?: ResponsiveValue<CSSProperties["flexDirection"]>;
297
+ flexWrap?: ResponsiveValue<CSSProperties["flexWrap"]>;
298
+ justifyContent?: ResponsiveValue<CSSProperties["justifyContent"]>;
299
+ alignItems?: ResponsiveValue<CSSProperties["alignItems"]>;
300
+ alignContent?: ResponsiveValue<CSSProperties["alignContent"]>;
301
+ flexGrow?: ResponsiveValue<CSSProperties["flexGrow"]>;
302
+ flexShrink?: ResponsiveValue<CSSProperties["flexShrink"]>;
303
+ flexBasis?: ResponsiveValue<CSSProperties["flexBasis"]>;
304
+ flex?: ResponsiveValue<CSSProperties["flex"]>;
305
+ width?: ResponsiveValue<number | string>;
306
+ minWidth?: ResponsiveValue<number | string>;
307
+ maxWidth?: ResponsiveValue<number | string>;
308
+ height?: ResponsiveValue<number | string>;
309
+ minHeight?: ResponsiveValue<number | string>;
310
+ maxHeight?: ResponsiveValue<number | string>;
311
+ position?: ResponsiveValue<CSSProperties["position"]>;
312
+ top?: ResponsiveValue<number | string>;
313
+ right?: ResponsiveValue<number | string>;
314
+ bottom?: ResponsiveValue<number | string>;
315
+ left?: ResponsiveValue<number | string>;
316
+ overflow?: ResponsiveValue<CSSProperties["overflow"]>;
317
+ opacity?: ResponsiveValue<CSSProperties["opacity"]>;
318
+ }
319
+ type StandardCSSProperties = {
320
+ [K in keyof CSSProperties]?: ResponsiveValue<CSSProperties[K]>;
321
+ };
322
+ type SystemCssProperties = SystemStyleProperties & StandardCSSProperties;
323
+ interface SxObject extends SystemCssProperties {
324
+ [key: string]: ResponsiveValue<any> | SxObject | ((theme: ChellaaTheme) => SxObject) | undefined;
325
+ }
326
+ type SxPropValue = SxObject | ((theme: ChellaaTheme) => SxObject) | boolean | undefined | null;
327
+ type SxProps = SxPropValue | SxPropValue[];
328
+ interface StyledOptions<Props extends object = {}> {
329
+ /**
330
+ * Component name for theme overrides and debugging (e.g. 'ChellaaButton')
331
+ */
332
+ name?: string;
333
+ /**
334
+ * Component slot name (e.g. 'root', 'startIcon', 'thumb')
335
+ */
336
+ slot?: string;
337
+ /**
338
+ * Filter predicate determining which props should be forwarded to DOM element
339
+ */
340
+ shouldForwardProp?: (prop: PropertyKey) => boolean;
341
+ /**
342
+ * Descriptive label for generated emotion classes
343
+ */
344
+ label?: string;
345
+ /**
346
+ * CSS target class
347
+ */
348
+ target?: string;
349
+ /**
350
+ * If true, bypasses automatic sx prop resolution
351
+ */
352
+ skipSx?: boolean;
353
+ /**
354
+ * Optional custom resolver for theme style overrides
355
+ */
356
+ overridesResolver?: (props: Props, styles: Record<string, any>) => Record<string, any> | undefined;
357
+ }
358
+
359
+ /**
360
+ * Creates a shouldForwardProp predicate function for Emotion styled components.
361
+ * Automatically filters out transient props starting with '$' and default system props.
362
+ *
363
+ * @param customBlocked Array or Set of additional prop names to prevent forwarding to DOM
364
+ */
365
+ declare function createShouldForwardProp(customBlocked?: (string | PropertyKey)[] | Set<string | PropertyKey>): (prop: PropertyKey) => boolean;
366
+ /**
367
+ * Default root shouldForwardProp filter.
368
+ * Blocks 'sx', 'theme', 'as', 'ownerState', 'slotProps', and '$*'.
369
+ */
370
+ declare const rootShouldForwardProp: (prop: PropertyKey) => boolean;
371
+
372
+ /**
373
+ * Core responsive `sx` parser function.
374
+ * Evaluates `sx` prop against current theme, expanding:
375
+ * - Theme spacing shortcuts (m, p, mx, my, px, py, etc.)
376
+ * - Theme palette tokens (color, bgcolor: 'primary.main', 'text.secondary')
377
+ * - Elevation shadows (elevation: 0..24, boxShadow: 0..24)
378
+ * - Breakpoint responsive arrays ([1, 2, 4]) and objects ({ xs: 1, md: 4 })
379
+ * - Pseudo-classes (&:hover, &:focus) and nested selectors
380
+ * - Theme function callbacks: `(theme) => ({ ... })`
381
+ * - Array of sx items: `[sx1, condition && sx2, (theme) => sx3]`
382
+ */
383
+ declare function parseSx(themeInput?: ChellaaTheme, sx?: SxProps): Record<string, any>;
384
+
385
+ interface ComponentOverrideOptions {
386
+ name?: string;
387
+ slot?: string;
388
+ overridesResolver?: (props: any, styles: Record<string, any>) => Record<string, any> | undefined;
389
+ }
390
+ /**
391
+ * Resolves component-level style overrides defined in theme.components[name].styleOverrides
392
+ * Supports both static style objects and dynamic functions: `({ theme, ownerState }) => ({ ... })`
393
+ */
394
+ declare function resolveComponentOverrides(theme: ChellaaTheme, options: ComponentOverrideOptions, props: Record<string, any>): Record<string, any> | undefined;
395
+
396
+ type StyleInterpolation<Props extends object = {}> = Record<string, any> | ((props: Props & {
397
+ theme: ChellaaTheme;
398
+ }) => Record<string, any> | undefined | null | false);
399
+ /**
400
+ * Creates an Emotion-powered styled component with:
401
+ * 1. Automatic `sx` prop parsing with responsive breakpoints & 8px theme spacing.
402
+ * 2. Automatic resolution of `theme.components[name].styleOverrides[slot]`.
403
+ * 3. Safe DOM prop filtering via `shouldForwardProp` preventing `sx` and private props from leaking.
404
+ * 4. First-class polymorphism via `as` prop.
405
+ *
406
+ * @example
407
+ * const MyBox = styled('div', {
408
+ * name: 'ChellaaBox',
409
+ * slot: 'Root'
410
+ * })({
411
+ * boxSizing: 'border-box'
412
+ * });
413
+ */
414
+ declare function styled<Component extends React__default.ElementType, ExtraProps extends object = {}>(component: Component, options?: StyledOptions<ExtraProps>): <Props extends object = ExtraProps>(...interpolations: StyleInterpolation<Props & {
415
+ sx?: SxProps;
416
+ as?: React__default.ElementType;
417
+ }>[]) => _emotion_styled.StyledComponent<any, {}, {
418
+ ref?: React__default.Ref<any>;
419
+ }>;
420
+
61
421
  type ButtonVariant = "solid" | "outline" | "ghost" | "subtle" | "link";
62
422
  type ButtonSize = "xs" | "sm" | "md" | "lg" | "xl";
63
423
  type ButtonColorScheme = "primary" | "secondary" | "success" | "warning" | "danger" | "info" | "neutral";
@@ -119,6 +479,15 @@ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
119
479
  * @default false
120
480
  */
121
481
  asChild?: boolean;
482
+ /**
483
+ * If true, disables the tactile touch ripple effect.
484
+ * @default false
485
+ */
486
+ disableRipple?: boolean | undefined;
487
+ /**
488
+ * System-aware sx styling prop
489
+ */
490
+ sx?: SxProps;
122
491
  /**
123
492
  * Button content or label.
124
493
  */
@@ -129,7 +498,8 @@ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
129
498
  * Chellaa React Button component.
130
499
  *
131
500
  * Fundamental action primitive supporting 5 variants, 5 sizes, 7 color schemes,
132
- * loading states, icons, keyboard interaction, and polymorphic slot delegation via `asChild`.
501
+ * tactile touch ripple feedback, loading states, icons, keyboard interaction,
502
+ * theme overrides, and polymorphic slot delegation via `asChild`.
133
503
  */
134
504
  declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
135
505
 
@@ -200,4 +570,1513 @@ declare const ButtonGroupContext: React.Context<ButtonGroupContextValue | undefi
200
570
  */
201
571
  declare function useButtonGroupContext(): ButtonGroupContextValue | undefined;
202
572
 
203
- export { Button, type ButtonColorScheme, ButtonGroup, ButtonGroupContext, type ButtonGroupContextValue, type ButtonGroupOrientation, type ButtonGroupProps, type ButtonLoadingPosition, type ButtonProps, type ButtonSize, type ButtonVariant, type CustomThemeConfig, type CustomThemeResult, type ThemeContextValue, type ThemeMode, ThemeProvider, type ThemeProviderProps, ThemeScript, type ThemeScriptProps, createTheme, useButtonGroupContext, useTheme };
573
+ interface BoxProps extends React.HTMLAttributes<HTMLElement> {
574
+ /**
575
+ * If true, delegating rendering to immediate child element using Slot
576
+ */
577
+ asChild?: boolean;
578
+ /**
579
+ * The underlying HTML element or component to render (alias of `as`)
580
+ */
581
+ component?: React.ElementType;
582
+ /**
583
+ * The underlying HTML element or component to render
584
+ */
585
+ as?: React.ElementType;
586
+ /**
587
+ * The system-aware sx prop
588
+ */
589
+ sx?: SxProps;
590
+ children?: React.ReactNode;
591
+ }
592
+ /**
593
+ * Universal polymorphic layout container with theme-aware `sx` styling and `asChild` composition.
594
+ *
595
+ * @example
596
+ * <Box sx={{ p: 2, bgcolor: 'background.paper', borderRadius: 2 }}>
597
+ * Content
598
+ * </Box>
599
+ */
600
+ declare const Box: React.ForwardRefExoticComponent<BoxProps & React.RefAttributes<HTMLElement>>;
601
+
602
+ type StackDirection = "row" | "row-reverse" | "column" | "column-reverse";
603
+ interface StackOwnerState {
604
+ direction?: ResponsiveValue<StackDirection> | undefined;
605
+ spacing?: ResponsiveValue<number | string> | undefined;
606
+ alignItems?: ResponsiveValue<CSSProperties["alignItems"]> | undefined;
607
+ justifyContent?: ResponsiveValue<CSSProperties["justifyContent"]> | undefined;
608
+ flexWrap?: ResponsiveValue<CSSProperties["flexWrap"]> | undefined;
609
+ useFlexGap?: boolean | undefined;
610
+ }
611
+ interface StackProps extends React.HTMLAttributes<HTMLElement>, StackOwnerState {
612
+ /**
613
+ * If true, delegate rendering to immediate child element using Slot
614
+ */
615
+ asChild?: boolean;
616
+ /**
617
+ * Underlying HTML element or component
618
+ */
619
+ component?: React.ElementType;
620
+ /**
621
+ * Underlying HTML element or component
622
+ */
623
+ as?: React.ElementType;
624
+ /**
625
+ * Element placed between each child
626
+ */
627
+ divider?: React.ReactNode;
628
+ /**
629
+ * System-aware sx styling prop
630
+ */
631
+ sx?: SxProps;
632
+ children?: React.ReactNode;
633
+ }
634
+ /**
635
+ * 1D Flexbox layout container managing direction, spacing, alignment, and dividers.
636
+ *
637
+ * @example
638
+ * <Stack direction="row" spacing={2} alignItems="center">
639
+ * <Item>1</Item>
640
+ * <Item>2</Item>
641
+ * </Stack>
642
+ */
643
+ declare const Stack: React.ForwardRefExoticComponent<StackProps & React.RefAttributes<HTMLElement>>;
644
+
645
+ interface FlexOwnerState {
646
+ direction?: ResponsiveValue<StackDirection> | undefined;
647
+ spacing?: ResponsiveValue<number | string> | undefined;
648
+ gap?: ResponsiveValue<number | string> | undefined;
649
+ alignItems?: ResponsiveValue<CSSProperties["alignItems"]> | undefined;
650
+ align?: ResponsiveValue<CSSProperties["alignItems"]> | undefined;
651
+ justifyContent?: ResponsiveValue<CSSProperties["justifyContent"]> | undefined;
652
+ justify?: ResponsiveValue<CSSProperties["justifyContent"]> | undefined;
653
+ flexWrap?: ResponsiveValue<CSSProperties["flexWrap"]> | undefined;
654
+ wrap?: ResponsiveValue<CSSProperties["flexWrap"]> | undefined;
655
+ inline?: boolean | undefined;
656
+ center?: boolean | undefined;
657
+ }
658
+ interface FlexProps extends React.HTMLAttributes<HTMLElement>, FlexOwnerState {
659
+ /**
660
+ * If true, delegate rendering to immediate child element using Slot
661
+ */
662
+ asChild?: boolean | undefined;
663
+ /**
664
+ * Underlying HTML element or component
665
+ */
666
+ component?: React.ElementType | undefined;
667
+ /**
668
+ * Underlying HTML element or component
669
+ */
670
+ as?: React.ElementType | undefined;
671
+ /**
672
+ * Element placed between each child
673
+ */
674
+ divider?: React.ReactNode | undefined;
675
+ /**
676
+ * System-aware sx styling prop
677
+ */
678
+ sx?: SxProps;
679
+ children?: React.ReactNode;
680
+ }
681
+ /**
682
+ * 1D Flexbox layout container defaulting to horizontal row flow with convenient
683
+ * shorthands: `center`, `inline`, `align`, `justify`, `wrap`, and `gap`.
684
+ *
685
+ * @example
686
+ * <Flex center gap={2}>
687
+ * <Avatar />
688
+ * <Text>User Name</Text>
689
+ * </Flex>
690
+ */
691
+ declare const Flex: React.ForwardRefExoticComponent<FlexProps & React.RefAttributes<HTMLElement>>;
692
+
693
+ interface ContainerOwnerState {
694
+ maxWidth?: BreakpointKey | false | undefined;
695
+ fixed?: boolean | undefined;
696
+ disableGutters?: boolean | undefined;
697
+ }
698
+ interface ContainerProps extends React.HTMLAttributes<HTMLElement>, ContainerOwnerState {
699
+ /**
700
+ * If true, delegate rendering to immediate child element using Slot
701
+ */
702
+ asChild?: boolean;
703
+ /**
704
+ * The underlying HTML element or component
705
+ */
706
+ component?: React.ElementType;
707
+ /**
708
+ * The underlying HTML element or component
709
+ */
710
+ as?: React.ElementType;
711
+ /**
712
+ * The system-aware sx prop
713
+ */
714
+ sx?: SxProps;
715
+ children?: React.ReactNode;
716
+ }
717
+ /**
718
+ * Centered responsive max-width container with fluid gutters.
719
+ *
720
+ * @example
721
+ * <Container maxWidth="md">
722
+ * <Typography variant="h1">Header</Typography>
723
+ * </Container>
724
+ */
725
+ declare const Container: React.ForwardRefExoticComponent<ContainerProps & React.RefAttributes<HTMLElement>>;
726
+
727
+ type GridSize = boolean | "auto" | number;
728
+ type GridWrap = "nowrap" | "wrap" | "wrap-reverse";
729
+ type GridDirection = "row" | "row-reverse" | "column" | "column-reverse";
730
+ interface GridOwnerState {
731
+ container?: boolean | undefined;
732
+ item?: boolean | undefined;
733
+ columns?: number | undefined;
734
+ spacing?: ResponsiveValue<number | string> | undefined;
735
+ rowSpacing?: ResponsiveValue<number | string> | undefined;
736
+ columnSpacing?: ResponsiveValue<number | string> | undefined;
737
+ direction?: ResponsiveValue<GridDirection> | undefined;
738
+ wrap?: GridWrap | undefined;
739
+ alignItems?: ResponsiveValue<CSSProperties["alignItems"]> | undefined;
740
+ justifyContent?: ResponsiveValue<CSSProperties["justifyContent"]> | undefined;
741
+ xs?: GridSize | undefined;
742
+ sm?: GridSize | undefined;
743
+ md?: GridSize | undefined;
744
+ lg?: GridSize | undefined;
745
+ xl?: GridSize | undefined;
746
+ }
747
+ interface GridProps extends React.HTMLAttributes<HTMLElement>, GridOwnerState {
748
+ /**
749
+ * If true, delegate rendering to immediate child element using Slot
750
+ */
751
+ asChild?: boolean;
752
+ /**
753
+ * The underlying HTML element or component
754
+ */
755
+ component?: React.ElementType;
756
+ /**
757
+ * The underlying HTML element or component
758
+ */
759
+ as?: React.ElementType;
760
+ /**
761
+ * The system-aware sx prop
762
+ */
763
+ sx?: SxProps;
764
+ children?: React.ReactNode;
765
+ }
766
+ /**
767
+ * Material 12-column responsive layout grid.
768
+ *
769
+ * @example
770
+ * <Grid container spacing={2}>
771
+ * <Grid item xs={12} md={6}>Item 1</Grid>
772
+ * <Grid item xs={12} md={6}>Item 2</Grid>
773
+ * </Grid>
774
+ */
775
+ declare const Grid: React.ForwardRefExoticComponent<GridProps & React.RefAttributes<HTMLElement>>;
776
+
777
+ type DividerOrientation = "horizontal" | "vertical";
778
+ type DividerVariant = "fullWidth" | "inset" | "middle";
779
+ type DividerTextAlign = "center" | "left" | "right";
780
+ type DividerLineStyle = "solid" | "dashed" | "dotted";
781
+ interface DividerOwnerState {
782
+ orientation?: DividerOrientation | undefined;
783
+ variant?: DividerVariant | undefined;
784
+ lineStyle?: DividerLineStyle | undefined;
785
+ flexItem?: boolean | undefined;
786
+ light?: boolean | undefined;
787
+ textAlign?: DividerTextAlign | undefined;
788
+ hasChildren?: boolean | undefined;
789
+ }
790
+ interface DividerProps extends React.HTMLAttributes<HTMLElement>, DividerOwnerState {
791
+ /**
792
+ * If true, delegate rendering to immediate child element using Slot
793
+ */
794
+ asChild?: boolean;
795
+ /**
796
+ * The underlying HTML element or component
797
+ */
798
+ component?: React.ElementType;
799
+ /**
800
+ * The underlying HTML element or component
801
+ */
802
+ as?: React.ElementType;
803
+ /**
804
+ * The system-aware sx prop
805
+ */
806
+ sx?: SxProps;
807
+ children?: React.ReactNode;
808
+ }
809
+ /**
810
+ * Divider visual separator for grouping, lists, toolbars, and labeled sections.
811
+ *
812
+ * @example
813
+ * <Divider />
814
+ * <Divider>OR</Divider>
815
+ * <Divider orientation="vertical" flexItem />
816
+ */
817
+ declare const Divider: React.ForwardRefExoticComponent<DividerProps & React.RefAttributes<HTMLElement>>;
818
+
819
+ type TypographyAlign = "inherit" | "left" | "center" | "right" | "justify";
820
+ interface TypographyOwnerState {
821
+ variant?: TypographyVariant | undefined;
822
+ align?: TypographyAlign | undefined;
823
+ color?: string | undefined;
824
+ gutterBottom?: boolean | undefined;
825
+ noWrap?: boolean | undefined;
826
+ lineClamp?: number | undefined;
827
+ }
828
+ interface TypographyProps extends React.HTMLAttributes<HTMLElement>, TypographyOwnerState {
829
+ /**
830
+ * If true, delegate rendering to immediate child element using Slot
831
+ */
832
+ asChild?: boolean;
833
+ /**
834
+ * The underlying HTML element or component
835
+ */
836
+ component?: React.ElementType;
837
+ /**
838
+ * Alias for component
839
+ */
840
+ as?: React.ElementType;
841
+ /**
842
+ * The system-aware sx prop
843
+ */
844
+ sx?: SxProps;
845
+ children?: React.ReactNode;
846
+ }
847
+ declare function resolveTypographyColor(theme: ChellaaTheme, color?: string): string | undefined;
848
+ /**
849
+ * Foundational Typography component supporting all Material Design 3 scale variants,
850
+ * truncation, line clamping, and semantic element delegation.
851
+ *
852
+ * @example
853
+ * <Typography variant="h1">Display Header</Typography>
854
+ * <Typography variant="body1" color="text.secondary">Body text</Typography>
855
+ * <Typography noWrap>Single line truncated text</Typography>
856
+ */
857
+ declare const Typography: React.ForwardRefExoticComponent<TypographyProps & React.RefAttributes<HTMLElement>>;
858
+
859
+ type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
860
+ interface HeadingProps extends Omit<TypographyProps, "variant"> {
861
+ /**
862
+ * Semantic heading level (1 to 6).
863
+ * Determines both default HTML tag (h1..h6) and typography scale variant unless overridden.
864
+ * @default 2
865
+ */
866
+ level?: HeadingLevel | undefined;
867
+ /**
868
+ * Optional visual scale variant to decouple styling from heading level.
869
+ */
870
+ variant?: TypographyVariant | undefined;
871
+ }
872
+ /**
873
+ * Ergonomic semantic heading primitive.
874
+ *
875
+ * @example
876
+ * <Heading level={1}>Page Title</Heading>
877
+ * <Heading level={2} variant="h4">Visually smaller Section Title</Heading>
878
+ */
879
+ declare const Heading: React.ForwardRefExoticComponent<HeadingProps & React.RefAttributes<HTMLElement>>;
880
+
881
+ type TextSize = "xs" | "sm" | "md" | "lg" | "xl";
882
+ interface TextProps extends TypographyProps {
883
+ /**
884
+ * Shorthand text size mapping to theme typographic scale:
885
+ * - "xs": caption (12px)
886
+ * - "sm": body2 (14px)
887
+ * - "md": body1 (16px)
888
+ * - "lg": subtitle1 (16px/medium)
889
+ * - "xl": h6 (20px)
890
+ */
891
+ size?: TextSize | undefined;
892
+ /**
893
+ * If true, renders as block element ('div' or 'p'). Otherwise renders as inline 'span'.
894
+ * @default false
895
+ */
896
+ block?: boolean | undefined;
897
+ }
898
+ /**
899
+ * Ergonomic inline or block textual primitive.
900
+ *
901
+ * @example
902
+ * <Text size="sm" color="text.secondary">Secondary caption</Text>
903
+ * <Text block noWrap>Single line block item</Text>
904
+ */
905
+ declare const Text: React.ForwardRefExoticComponent<TextProps & React.RefAttributes<HTMLElement>>;
906
+
907
+ interface ParagraphProps extends TypographyProps {
908
+ /**
909
+ * Shorthand spacing multiplier for bottom margin (defaults to standard gutterBottom).
910
+ */
911
+ spacing?: number | string | undefined;
912
+ }
913
+ /**
914
+ * Ergonomic paragraph block primitive with standard reading margins.
915
+ *
916
+ * @example
917
+ * <Paragraph>
918
+ * This is standard paragraph text with built-in reading spacing.
919
+ * </Paragraph>
920
+ */
921
+ declare const Paragraph: React.ForwardRefExoticComponent<ParagraphProps & React.RefAttributes<HTMLElement>>;
922
+
923
+ type CodeColorScheme = "default" | "primary" | "secondary";
924
+ interface CodeOwnerState {
925
+ colorScheme?: CodeColorScheme | undefined;
926
+ }
927
+ interface CodeProps extends React.HTMLAttributes<HTMLElement>, CodeOwnerState {
928
+ asChild?: boolean | undefined;
929
+ component?: React.ElementType | undefined;
930
+ as?: React.ElementType | undefined;
931
+ sx?: SxProps;
932
+ children?: React.ReactNode;
933
+ }
934
+ /**
935
+ * Inline monospace code chip primitive for identifiers, filenames, and CLI snippets.
936
+ *
937
+ * @example
938
+ * <Text>Run <Code>npm install</Code> to install dependencies.</Text>
939
+ * <Code colorScheme="primary">package.json</Code>
940
+ */
941
+ declare const Code: React.ForwardRefExoticComponent<CodeProps & React.RefAttributes<HTMLElement>>;
942
+
943
+ type KbdSize = "sm" | "md" | "lg";
944
+ type KbdVariant = "outline" | "subtle" | "solid";
945
+ type KbdModifier = "command" | "cmd" | "shift" | "option" | "alt" | "control" | "ctrl" | "enter" | "escape" | "esc" | "tab" | "backspace" | "delete" | "del" | "up" | "down" | "left" | "right";
946
+ declare const MODIFIER_SYMBOLS: Record<KbdModifier, string>;
947
+ interface KbdOwnerState {
948
+ size?: KbdSize | undefined;
949
+ variant?: KbdVariant | undefined;
950
+ modifier?: KbdModifier | undefined;
951
+ }
952
+ interface KbdProps extends React.HTMLAttributes<HTMLElement>, KbdOwnerState {
953
+ /**
954
+ * If true, delegate rendering to immediate child element using Slot
955
+ */
956
+ asChild?: boolean;
957
+ /**
958
+ * The underlying HTML element or component
959
+ */
960
+ component?: React.ElementType;
961
+ /**
962
+ * Alias for component
963
+ */
964
+ as?: React.ElementType;
965
+ /**
966
+ * The system-aware sx prop
967
+ */
968
+ sx?: SxProps;
969
+ children?: React.ReactNode;
970
+ }
971
+ /**
972
+ * Tactile keyboard shortcut keycap primitive representing user input keystrokes.
973
+ *
974
+ * @example
975
+ * <Kbd>Ctrl</Kbd> + <Kbd>K</Kbd>
976
+ * <Kbd modifier="command" />
977
+ * <Kbd size="sm" variant="subtle">Esc</Kbd>
978
+ */
979
+ declare const Kbd: React.ForwardRefExoticComponent<KbdProps & React.RefAttributes<HTMLElement>>;
980
+
981
+ type InputVariant = "outlined" | "filled" | "standard" | "unstyled";
982
+ type InputSize = "sm" | "md" | "lg";
983
+ interface InputOwnerState {
984
+ variant?: InputVariant | undefined;
985
+ size?: InputSize | undefined;
986
+ fullWidth?: boolean | undefined;
987
+ error?: boolean | undefined;
988
+ disabled?: boolean | undefined;
989
+ readOnly?: boolean | undefined;
990
+ hasStartAdornment?: boolean | undefined;
991
+ hasEndAdornment?: boolean | undefined;
992
+ focused?: boolean | undefined;
993
+ }
994
+ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size" | "color">, InputOwnerState {
995
+ /**
996
+ * If true, delegate rendering to immediate child element using Slot
997
+ */
998
+ asChild?: boolean | undefined;
999
+ /**
1000
+ * The underlying HTML element or component for root wrapper
1001
+ */
1002
+ component?: React.ElementType | undefined;
1003
+ /**
1004
+ * Alias for component
1005
+ */
1006
+ as?: React.ElementType | undefined;
1007
+ /**
1008
+ * The system-aware sx prop for dynamic runtime overrides
1009
+ */
1010
+ sx?: SxProps;
1011
+ /**
1012
+ * Additional props forwarded to native input element
1013
+ */
1014
+ inputProps?: React.InputHTMLAttributes<HTMLInputElement> | undefined;
1015
+ /**
1016
+ * Content rendered at the start of the input track
1017
+ */
1018
+ startAdornment?: React.ReactNode | undefined;
1019
+ /**
1020
+ * Content rendered at the end of the input track
1021
+ */
1022
+ endAdornment?: React.ReactNode | undefined;
1023
+ /**
1024
+ * If true, displays an interactive clear button when text is present
1025
+ * @default false
1026
+ */
1027
+ clearable?: boolean | undefined;
1028
+ /**
1029
+ * Callback fired when the clear button is clicked
1030
+ */
1031
+ onClear?: () => void;
1032
+ /**
1033
+ * Ref forwarded directly to the native <input> element
1034
+ */
1035
+ inputRef?: React.Ref<HTMLInputElement>;
1036
+ }
1037
+
1038
+ /**
1039
+ * Headless raw input primitive for backward compatibility.
1040
+ */
1041
+ declare const InputBase: React.ForwardRefExoticComponent<React.InputHTMLAttributes<HTMLInputElement> & {
1042
+ ownerState?: InputOwnerState;
1043
+ } & React.RefAttributes<HTMLInputElement>>;
1044
+ /**
1045
+ * Chellaa React Input component.
1046
+ *
1047
+ * Fundamental single-line text entry primitive with Material Design 3 surface variants,
1048
+ * precompiled CSS cascade layers (@layer cl-components), zero-runtime static styling,
1049
+ * dynamic sx override bridge, and accessible form integration.
1050
+ */
1051
+ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLDivElement>>;
1052
+
1053
+ interface TextFieldProps extends InputProps {
1054
+ /**
1055
+ * The label text displayed above the input.
1056
+ */
1057
+ label?: React.ReactNode | undefined;
1058
+ /**
1059
+ * Explanatory helper text displayed below the input.
1060
+ */
1061
+ helperText?: React.ReactNode | undefined;
1062
+ /**
1063
+ * Error message displayed below the input when error is true.
1064
+ */
1065
+ errorMessage?: React.ReactNode | undefined;
1066
+ /**
1067
+ * If true, displays a required asterisk next to the label and marks input required.
1068
+ * @default false
1069
+ */
1070
+ required?: boolean | undefined;
1071
+ }
1072
+ /**
1073
+ * Enterprise composite form control combining label, input, helper text, and validation messaging.
1074
+ *
1075
+ * @example
1076
+ * <TextField
1077
+ * label="Email Address"
1078
+ * type="email"
1079
+ * placeholder="user@example.com"
1080
+ * helperText="We will never share your email."
1081
+ * required
1082
+ * />
1083
+ */
1084
+ declare const TextField: React.ForwardRefExoticComponent<TextFieldProps & React.RefAttributes<HTMLDivElement>>;
1085
+
1086
+ interface InputAdornmentProps extends React.HTMLAttributes<HTMLDivElement> {
1087
+ /**
1088
+ * Position of the adornment within the input track.
1089
+ */
1090
+ position: "start" | "end";
1091
+ /**
1092
+ * If true, prevents pointer events on the adornment (e.g. for purely decorative icons).
1093
+ * @default false
1094
+ */
1095
+ disablePointerEvents?: boolean | undefined;
1096
+ /**
1097
+ * The system-aware sx prop
1098
+ */
1099
+ sx?: SxProps;
1100
+ children?: React.ReactNode;
1101
+ }
1102
+ declare const InputAdornment: React.ForwardRefExoticComponent<InputAdornmentProps & React.RefAttributes<HTMLDivElement>>;
1103
+
1104
+ type TextareaVariant = "outlined" | "filled" | "standard" | "unstyled";
1105
+ type TextareaSize = "sm" | "md" | "lg";
1106
+ type TextareaResize = "none" | "vertical" | "horizontal" | "both";
1107
+ interface TextareaOwnerState {
1108
+ variant?: TextareaVariant | undefined;
1109
+ size?: TextareaSize | undefined;
1110
+ fullWidth?: boolean | undefined;
1111
+ error?: boolean | undefined;
1112
+ disabled?: boolean | undefined;
1113
+ readOnly?: boolean | undefined;
1114
+ autoResize?: boolean | undefined;
1115
+ resize?: TextareaResize | undefined;
1116
+ hasCount?: boolean | undefined;
1117
+ }
1118
+ interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, "size" | "color">, TextareaOwnerState {
1119
+ /**
1120
+ * If true, delegate rendering to immediate child element using Slot
1121
+ */
1122
+ asChild?: boolean | undefined;
1123
+ /**
1124
+ * The underlying HTML element or component for root wrapper
1125
+ */
1126
+ component?: React.ElementType | undefined;
1127
+ /**
1128
+ * Alias for component
1129
+ */
1130
+ as?: React.ElementType | undefined;
1131
+ /**
1132
+ * The system-aware sx prop
1133
+ */
1134
+ sx?: SxProps;
1135
+ /**
1136
+ * Minimum visible text lines when autoResize is enabled
1137
+ * @default 3
1138
+ */
1139
+ minRows?: number | undefined;
1140
+ /**
1141
+ * Maximum visible text lines before scrollbars appear when autoResize is enabled
1142
+ */
1143
+ maxRows?: number | undefined;
1144
+ /**
1145
+ * If true, displays live character counter below the input
1146
+ * @default false
1147
+ */
1148
+ showCount?: boolean | undefined;
1149
+ /**
1150
+ * Ref forwarded directly to native <textarea> element
1151
+ */
1152
+ textareaRef?: React.Ref<HTMLTextAreaElement>;
1153
+ /**
1154
+ * Additional HTML attributes forwarded to the native HTMLTextAreaElement.
1155
+ */
1156
+ textareaProps?: React.TextareaHTMLAttributes<HTMLTextAreaElement> | undefined;
1157
+ }
1158
+
1159
+ /**
1160
+ * Multi-line plain text editing control with Material Design surface variants,
1161
+ * auto-expansion support, and character counter capabilities.
1162
+ */
1163
+ declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLDivElement>>;
1164
+
1165
+ interface FormFieldProps extends React.HTMLAttributes<HTMLDivElement> {
1166
+ id?: string | undefined;
1167
+ name?: string | undefined;
1168
+ required?: boolean | undefined;
1169
+ disabled?: boolean | undefined;
1170
+ readOnly?: boolean | undefined;
1171
+ error?: boolean | undefined;
1172
+ fullWidth?: boolean | undefined;
1173
+ asChild?: boolean | undefined;
1174
+ component?: React.ElementType | undefined;
1175
+ as?: React.ElementType | undefined;
1176
+ sx?: SxProps;
1177
+ children?: React.ReactNode | undefined;
1178
+ }
1179
+ /**
1180
+ * Root form control container and accessibility context provider.
1181
+ * Automatically generates IDs and cascades validation states to child controls.
1182
+ *
1183
+ * @example
1184
+ * <FormField required error={hasError}>
1185
+ * <FormLabel>Email Address</FormLabel>
1186
+ * <Input type="email" placeholder="alex@company.com" />
1187
+ * <FormHelperText>We will never share your email.</FormHelperText>
1188
+ * <FormErrorMessage>Invalid email address.</FormErrorMessage>
1189
+ * </FormField>
1190
+ */
1191
+ declare const FormField: React.ForwardRefExoticComponent<FormFieldProps & React.RefAttributes<HTMLDivElement>>;
1192
+
1193
+ interface FormLabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {
1194
+ /**
1195
+ * If true, displays a required asterisk. Inherits from FormField context if omitted.
1196
+ */
1197
+ required?: boolean | undefined;
1198
+ /**
1199
+ * If true, highlights label in error palette color. Inherits from FormField context if omitted.
1200
+ */
1201
+ error?: boolean | undefined;
1202
+ /**
1203
+ * If true, styles label in disabled state. Inherits from FormField context if omitted.
1204
+ */
1205
+ disabled?: boolean | undefined;
1206
+ /**
1207
+ * If true, delegates rendering to immediate child using Slot.
1208
+ */
1209
+ asChild?: boolean | undefined;
1210
+ /**
1211
+ * The underlying HTML element or component
1212
+ */
1213
+ component?: React.ElementType | undefined;
1214
+ /**
1215
+ * Alias for component
1216
+ */
1217
+ as?: React.ElementType | undefined;
1218
+ /**
1219
+ * The system-aware sx prop
1220
+ */
1221
+ sx?: SxProps;
1222
+ children?: React.ReactNode | undefined;
1223
+ }
1224
+ /**
1225
+ * Accessible form label automatically linked to its associated input control.
1226
+ *
1227
+ * @example
1228
+ * <FormLabel>Email Address</FormLabel>
1229
+ */
1230
+ declare const FormLabel: React.ForwardRefExoticComponent<FormLabelProps & React.RefAttributes<HTMLLabelElement>>;
1231
+
1232
+ interface FormHelperTextProps extends React.HTMLAttributes<HTMLParagraphElement> {
1233
+ /**
1234
+ * If true, styles helper text in disabled state.
1235
+ */
1236
+ disabled?: boolean | undefined;
1237
+ /**
1238
+ * If true, delegates rendering to immediate child using Slot.
1239
+ */
1240
+ asChild?: boolean | undefined;
1241
+ /**
1242
+ * The underlying HTML element or component
1243
+ */
1244
+ component?: React.ElementType | undefined;
1245
+ /**
1246
+ * Alias for component
1247
+ */
1248
+ as?: React.ElementType | undefined;
1249
+ /**
1250
+ * The system-aware sx prop
1251
+ */
1252
+ sx?: SxProps;
1253
+ children?: React.ReactNode | undefined;
1254
+ }
1255
+ /**
1256
+ * Contextual explanation text rendered beneath an input control,
1257
+ * automatically linked via aria-describedby.
1258
+ *
1259
+ * @example
1260
+ * <FormHelperText>We will never share your personal email.</FormHelperText>
1261
+ */
1262
+ declare const FormHelperText: React.ForwardRefExoticComponent<FormHelperTextProps & React.RefAttributes<HTMLParagraphElement>>;
1263
+
1264
+ interface FormErrorMessageProps extends React.HTMLAttributes<HTMLParagraphElement> {
1265
+ /**
1266
+ * If true, forces the error message to mount even if error is false.
1267
+ * @default false
1268
+ */
1269
+ forceMount?: boolean | undefined;
1270
+ /**
1271
+ * If true, delegates rendering to immediate child using Slot.
1272
+ */
1273
+ asChild?: boolean | undefined;
1274
+ /**
1275
+ * The underlying HTML element or component
1276
+ */
1277
+ component?: React.ElementType | undefined;
1278
+ /**
1279
+ * Alias for component
1280
+ */
1281
+ as?: React.ElementType | undefined;
1282
+ /**
1283
+ * The system-aware sx prop
1284
+ */
1285
+ sx?: SxProps;
1286
+ children?: React.ReactNode | undefined;
1287
+ }
1288
+ /**
1289
+ * Accessible error message primitive rendered conditionally when error is true,
1290
+ * possessing role="alert" for immediate screen reader announcement.
1291
+ *
1292
+ * @example
1293
+ * <FormErrorMessage>Please enter a valid email address.</FormErrorMessage>
1294
+ */
1295
+ declare const FormErrorMessage: React.ForwardRefExoticComponent<FormErrorMessageProps & React.RefAttributes<HTMLParagraphElement>>;
1296
+
1297
+ interface FormFieldContextValue {
1298
+ id: string;
1299
+ name?: string | undefined;
1300
+ required?: boolean | undefined;
1301
+ disabled?: boolean | undefined;
1302
+ readOnly?: boolean | undefined;
1303
+ error?: boolean | undefined;
1304
+ labelId: string;
1305
+ helperTextId: string;
1306
+ errorMessageId: string;
1307
+ hasHelperText: boolean;
1308
+ hasErrorMessage: boolean;
1309
+ setHasHelperText: (has: boolean) => void;
1310
+ setHasErrorMessage: (has: boolean) => void;
1311
+ }
1312
+ declare const FormFieldContext: React.Context<FormFieldContextValue | undefined>;
1313
+ /**
1314
+ * Hook to consume form field state, IDs, and validation flags.
1315
+ * Returns undefined if used outside a <FormField>.
1316
+ */
1317
+ declare function useFormField(): FormFieldContextValue | undefined;
1318
+
1319
+ type CheckboxSize = "sm" | "md" | "lg";
1320
+ type CheckboxColorScheme = "primary" | "secondary" | "success" | "error" | "warning" | "info" | "default";
1321
+ interface CheckboxOwnerState {
1322
+ size: CheckboxSize;
1323
+ colorScheme: CheckboxColorScheme;
1324
+ checked: boolean;
1325
+ indeterminate: boolean;
1326
+ disabled: boolean;
1327
+ readOnly: boolean;
1328
+ error: boolean;
1329
+ hasLabel: boolean;
1330
+ }
1331
+ interface CheckboxProps extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, "onChange"> {
1332
+ /**
1333
+ * If true, the checkbox is checked (controlled).
1334
+ */
1335
+ checked?: boolean | undefined;
1336
+ /**
1337
+ * The default checked state when uncontrolled.
1338
+ * @default false
1339
+ */
1340
+ defaultChecked?: boolean | undefined;
1341
+ /**
1342
+ * If true, displays a dash icon and sets aria-checked="mixed".
1343
+ * Takes visual precedence over checked state.
1344
+ * @default false
1345
+ */
1346
+ indeterminate?: boolean | undefined;
1347
+ /**
1348
+ * Callback fired when the checked state changes.
1349
+ */
1350
+ onChange?: ((event: React.ChangeEvent<HTMLInputElement>) => void) | undefined;
1351
+ /**
1352
+ * The value of the checkbox when used inside a CheckboxGroup.
1353
+ */
1354
+ value?: string | undefined;
1355
+ /**
1356
+ * The name attribute of the hidden input element.
1357
+ */
1358
+ name?: string | undefined;
1359
+ /**
1360
+ * Size of the checkbox control box and label.
1361
+ * @default 'md'
1362
+ */
1363
+ size?: CheckboxSize | undefined;
1364
+ /**
1365
+ * Color palette theme scheme.
1366
+ * @default 'primary'
1367
+ */
1368
+ colorScheme?: CheckboxColorScheme | undefined;
1369
+ /**
1370
+ * If true, disables interaction and dims visual elements.
1371
+ * @default false
1372
+ */
1373
+ disabled?: boolean | undefined;
1374
+ /**
1375
+ * If true, prevents toggling while remaining focusable.
1376
+ * @default false
1377
+ */
1378
+ readOnly?: boolean | undefined;
1379
+ /**
1380
+ * If true, the input will be marked as required.
1381
+ * @default false
1382
+ */
1383
+ required?: boolean | undefined;
1384
+ /**
1385
+ * If true, displays an error state outline.
1386
+ * @default false
1387
+ */
1388
+ error?: boolean | undefined;
1389
+ /**
1390
+ * Ref forwarded directly to the hidden native HTMLInputElement.
1391
+ */
1392
+ inputRef?: React.Ref<HTMLInputElement> | undefined;
1393
+ /**
1394
+ * Additional HTML attributes forwarded to the hidden native HTMLInputElement.
1395
+ */
1396
+ inputProps?: React.InputHTMLAttributes<HTMLInputElement> | undefined;
1397
+ /**
1398
+ * If true, delegates rendering to immediate child element using Slot.
1399
+ * @default false
1400
+ */
1401
+ asChild?: boolean | undefined;
1402
+ /**
1403
+ * The underlying HTML element or component.
1404
+ */
1405
+ component?: React.ElementType | undefined;
1406
+ /**
1407
+ * Alias for component.
1408
+ */
1409
+ as?: React.ElementType | undefined;
1410
+ /**
1411
+ * System-aware sx prop.
1412
+ */
1413
+ sx?: SxProps;
1414
+ children?: React.ReactNode | undefined;
1415
+ }
1416
+ interface CheckboxGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
1417
+ /**
1418
+ * The controlled array of selected checkbox values.
1419
+ */
1420
+ value?: string[] | undefined;
1421
+ /**
1422
+ * The uncontrolled initial array of selected checkbox values.
1423
+ * @default []
1424
+ */
1425
+ defaultValue?: string[] | undefined;
1426
+ /**
1427
+ * Callback fired when selection changes.
1428
+ */
1429
+ onChange?: ((value: string[]) => void) | undefined;
1430
+ /**
1431
+ * The name attribute cascaded to all child checkboxes.
1432
+ */
1433
+ name?: string | undefined;
1434
+ /**
1435
+ * The size cascaded to all child checkboxes.
1436
+ * @default 'md'
1437
+ */
1438
+ size?: CheckboxSize | undefined;
1439
+ /**
1440
+ * The color scheme cascaded to all child checkboxes.
1441
+ * @default 'primary'
1442
+ */
1443
+ colorScheme?: CheckboxColorScheme | undefined;
1444
+ /**
1445
+ * The layout orientation of the group.
1446
+ * @default 'vertical'
1447
+ */
1448
+ orientation?: "vertical" | "horizontal" | undefined;
1449
+ /**
1450
+ * Spacing between individual checkboxes in the group.
1451
+ * Can be a theme spacing unit multiplier or custom CSS dimension.
1452
+ * @default 2
1453
+ */
1454
+ spacing?: number | string | undefined;
1455
+ /**
1456
+ * If true, disables all child checkboxes.
1457
+ * @default false
1458
+ */
1459
+ disabled?: boolean | undefined;
1460
+ /**
1461
+ * If true, marks all child checkboxes as read-only.
1462
+ * @default false
1463
+ */
1464
+ readOnly?: boolean | undefined;
1465
+ /**
1466
+ * If true, marks all child checkboxes with error state.
1467
+ * @default false
1468
+ */
1469
+ error?: boolean | undefined;
1470
+ /**
1471
+ * If true, delegates rendering to immediate child element using Slot.
1472
+ * @default false
1473
+ */
1474
+ asChild?: boolean | undefined;
1475
+ /**
1476
+ * The underlying HTML element or component.
1477
+ */
1478
+ component?: React.ElementType | undefined;
1479
+ /**
1480
+ * Alias for component.
1481
+ */
1482
+ as?: React.ElementType | undefined;
1483
+ /**
1484
+ * System-aware sx prop.
1485
+ */
1486
+ sx?: SxProps;
1487
+ children?: React.ReactNode | undefined;
1488
+ }
1489
+ interface CheckboxContextValue {
1490
+ value: string[];
1491
+ name?: string | undefined;
1492
+ size?: CheckboxSize | undefined;
1493
+ colorScheme?: CheckboxColorScheme | undefined;
1494
+ disabled?: boolean | undefined;
1495
+ readOnly?: boolean | undefined;
1496
+ error?: boolean | undefined;
1497
+ toggleValue: (itemValue: string) => void;
1498
+ }
1499
+
1500
+ /**
1501
+ * Checkbox primitive with tri-state selection, custom color palettes,
1502
+ * keyboard accessibility, and automatic CheckboxGroup / FormField binding.
1503
+ *
1504
+ * @example
1505
+ * <Checkbox defaultChecked>Subscribe to updates</Checkbox>
1506
+ * <Checkbox indeterminate>Select all items</Checkbox>
1507
+ */
1508
+ declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLLabelElement>>;
1509
+
1510
+ /**
1511
+ * CheckboxGroup manages selection state for a set of related checkboxes,
1512
+ * cascading shared properties and orchestrating multi-selection arrays.
1513
+ *
1514
+ * @example
1515
+ * <CheckboxGroup defaultValue={['react']} onChange={(val) => console.log(val)}>
1516
+ * <Checkbox value="react">React</Checkbox>
1517
+ * <Checkbox value="vue">Vue</Checkbox>
1518
+ * <Checkbox value="svelte">Svelte</Checkbox>
1519
+ * </CheckboxGroup>
1520
+ */
1521
+ declare const CheckboxGroup: React.ForwardRefExoticComponent<CheckboxGroupProps & React.RefAttributes<HTMLDivElement>>;
1522
+
1523
+ declare const CheckboxContext: React.Context<CheckboxContextValue | undefined>;
1524
+ /**
1525
+ * Hook to consume parent CheckboxGroup context.
1526
+ * Returns undefined if the checkbox is rendered standalone.
1527
+ */
1528
+ declare function useCheckboxGroup(): CheckboxContextValue | undefined;
1529
+
1530
+ type RadioSize = "sm" | "md" | "lg";
1531
+ type RadioColorScheme = "primary" | "secondary" | "success" | "error" | "warning" | "info" | "default";
1532
+ interface RadioOwnerState {
1533
+ size: RadioSize;
1534
+ colorScheme: RadioColorScheme;
1535
+ checked: boolean;
1536
+ disabled: boolean;
1537
+ readOnly: boolean;
1538
+ error: boolean;
1539
+ hasLabel: boolean;
1540
+ }
1541
+ interface RadioProps extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, "onChange"> {
1542
+ /**
1543
+ * If true, the radio button is selected (controlled).
1544
+ */
1545
+ checked?: boolean | undefined;
1546
+ /**
1547
+ * The default checked state when uncontrolled.
1548
+ * @default false
1549
+ */
1550
+ defaultChecked?: boolean | undefined;
1551
+ /**
1552
+ * Callback fired when the radio state changes.
1553
+ */
1554
+ onChange?: ((event: React.ChangeEvent<HTMLInputElement>) => void) | undefined;
1555
+ /**
1556
+ * Distinct value of this radio option.
1557
+ */
1558
+ value?: string | number | undefined;
1559
+ /**
1560
+ * Name attribute of the native input element. Inherited from RadioGroup if omitted.
1561
+ */
1562
+ name?: string | undefined;
1563
+ /**
1564
+ * Size of the radio control circle and label.
1565
+ * @default 'md'
1566
+ */
1567
+ size?: RadioSize | undefined;
1568
+ /**
1569
+ * Color palette theme scheme.
1570
+ * @default 'primary'
1571
+ */
1572
+ colorScheme?: RadioColorScheme | undefined;
1573
+ /**
1574
+ * If true, disables interaction and dims visual elements.
1575
+ * @default false
1576
+ */
1577
+ disabled?: boolean | undefined;
1578
+ /**
1579
+ * If true, prevents toggling while remaining focusable.
1580
+ * @default false
1581
+ */
1582
+ readOnly?: boolean | undefined;
1583
+ /**
1584
+ * If true, the input will be marked as required.
1585
+ * @default false
1586
+ */
1587
+ required?: boolean | undefined;
1588
+ /**
1589
+ * If true, displays an error state outline.
1590
+ * @default false
1591
+ */
1592
+ error?: boolean | undefined;
1593
+ /**
1594
+ * Ref forwarded directly to the hidden native HTMLInputElement.
1595
+ */
1596
+ inputRef?: React.Ref<HTMLInputElement> | undefined;
1597
+ /**
1598
+ * Additional HTML attributes forwarded to the hidden native HTMLInputElement.
1599
+ */
1600
+ inputProps?: React.InputHTMLAttributes<HTMLInputElement> | undefined;
1601
+ /**
1602
+ * If true, delegates rendering to immediate child element using Slot.
1603
+ * @default false
1604
+ */
1605
+ asChild?: boolean | undefined;
1606
+ /**
1607
+ * The underlying HTML element or component.
1608
+ */
1609
+ component?: React.ElementType | undefined;
1610
+ /**
1611
+ * Alias for component.
1612
+ */
1613
+ as?: React.ElementType | undefined;
1614
+ /**
1615
+ * System-aware sx prop.
1616
+ */
1617
+ sx?: SxProps;
1618
+ children?: React.ReactNode | undefined;
1619
+ }
1620
+ interface RadioGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue"> {
1621
+ /**
1622
+ * The controlled value of the selected radio button.
1623
+ */
1624
+ value?: string | number | undefined;
1625
+ /**
1626
+ * The uncontrolled initial value of the selected radio button.
1627
+ */
1628
+ defaultValue?: string | number | undefined;
1629
+ /**
1630
+ * Callback fired when selection changes.
1631
+ */
1632
+ onChange?: ((value: string | number) => void) | undefined;
1633
+ /**
1634
+ * The name attribute cascaded to all child radio buttons.
1635
+ * If omitted, a unique name is auto-generated.
1636
+ */
1637
+ name?: string | undefined;
1638
+ /**
1639
+ * The size cascaded to all child radio buttons.
1640
+ * @default 'md'
1641
+ */
1642
+ size?: RadioSize | undefined;
1643
+ /**
1644
+ * The color scheme cascaded to all child radio buttons.
1645
+ * @default 'primary'
1646
+ */
1647
+ colorScheme?: RadioColorScheme | undefined;
1648
+ /**
1649
+ * The layout orientation of the group.
1650
+ * @default 'vertical'
1651
+ */
1652
+ orientation?: "vertical" | "horizontal" | undefined;
1653
+ /**
1654
+ * Spacing between individual radio buttons in the group.
1655
+ * @default 2
1656
+ */
1657
+ spacing?: number | string | undefined;
1658
+ /**
1659
+ * If true, disables all child radio buttons.
1660
+ * @default false
1661
+ */
1662
+ disabled?: boolean | undefined;
1663
+ /**
1664
+ * If true, marks all child radio buttons as read-only.
1665
+ * @default false
1666
+ */
1667
+ readOnly?: boolean | undefined;
1668
+ /**
1669
+ * If true, marks all child radio buttons with error state.
1670
+ * @default false
1671
+ */
1672
+ error?: boolean | undefined;
1673
+ /**
1674
+ * If true, delegates rendering to immediate child element using Slot.
1675
+ * @default false
1676
+ */
1677
+ asChild?: boolean | undefined;
1678
+ /**
1679
+ * The underlying HTML element or component.
1680
+ */
1681
+ component?: React.ElementType | undefined;
1682
+ /**
1683
+ * Alias for component.
1684
+ */
1685
+ as?: React.ElementType | undefined;
1686
+ /**
1687
+ * System-aware sx prop.
1688
+ */
1689
+ sx?: SxProps;
1690
+ children?: React.ReactNode | undefined;
1691
+ }
1692
+ interface RadioContextValue {
1693
+ value?: string | number | undefined;
1694
+ name?: string | undefined;
1695
+ size?: RadioSize | undefined;
1696
+ colorScheme?: RadioColorScheme | undefined;
1697
+ disabled?: boolean | undefined;
1698
+ readOnly?: boolean | undefined;
1699
+ error?: boolean | undefined;
1700
+ onChange: (value: string | number) => void;
1701
+ }
1702
+
1703
+ /**
1704
+ * Radio primitive for single-choice selection with animated circular dot indicator,
1705
+ * accessible keyboard arrow navigation, and automatic RadioGroup / FormField binding.
1706
+ *
1707
+ * @example
1708
+ * <Radio value="express">Express Delivery</Radio>
1709
+ */
1710
+ declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLLabelElement>>;
1711
+
1712
+ /**
1713
+ * RadioGroup manages single-selection state across a group of mutually exclusive Radios,
1714
+ * providing native roving keyboard navigation and shared property cascade.
1715
+ *
1716
+ * @example
1717
+ * <RadioGroup defaultValue="standard" onChange={(val) => console.log(val)}>
1718
+ * <Radio value="standard">Standard Shipping (3-5 days)</Radio>
1719
+ * <Radio value="express">Express Shipping (1-2 days)</Radio>
1720
+ * <Radio value="overnight">Overnight Delivery</Radio>
1721
+ * </RadioGroup>
1722
+ */
1723
+ declare const RadioGroup: React.ForwardRefExoticComponent<RadioGroupProps & React.RefAttributes<HTMLDivElement>>;
1724
+
1725
+ declare const RadioContext: React.Context<RadioContextValue | undefined>;
1726
+ /**
1727
+ * Hook to consume parent RadioGroup context.
1728
+ * Returns undefined if the radio is rendered standalone.
1729
+ */
1730
+ declare function useRadioGroup(): RadioContextValue | undefined;
1731
+
1732
+ type SwitchSize = "sm" | "md" | "lg";
1733
+ type SwitchColorScheme = "primary" | "secondary" | "success" | "error" | "warning" | "info" | "default";
1734
+ type SwitchLabelPlacement = "end" | "start" | "top" | "bottom";
1735
+ interface SwitchOwnerState {
1736
+ size: SwitchSize;
1737
+ colorScheme: SwitchColorScheme;
1738
+ checked: boolean;
1739
+ disabled: boolean;
1740
+ readOnly: boolean;
1741
+ loading: boolean;
1742
+ error: boolean;
1743
+ labelPlacement: SwitchLabelPlacement;
1744
+ hasLabel: boolean;
1745
+ }
1746
+ interface SwitchProps extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, "onChange"> {
1747
+ /**
1748
+ * If true, the switch is toggled on (controlled).
1749
+ */
1750
+ checked?: boolean | undefined;
1751
+ /**
1752
+ * The default checked state when uncontrolled.
1753
+ * @default false
1754
+ */
1755
+ defaultChecked?: boolean | undefined;
1756
+ /**
1757
+ * Callback fired when the switch state changes.
1758
+ */
1759
+ onChange?: ((event: React.ChangeEvent<HTMLInputElement>) => void) | undefined;
1760
+ /**
1761
+ * The value of the switch for native form submission.
1762
+ */
1763
+ value?: string | undefined;
1764
+ /**
1765
+ * The name attribute of the hidden input element.
1766
+ */
1767
+ name?: string | undefined;
1768
+ /**
1769
+ * Size of the switch track and thumb.
1770
+ * @default 'md'
1771
+ */
1772
+ size?: SwitchSize | undefined;
1773
+ /**
1774
+ * Color palette theme scheme when active.
1775
+ * @default 'primary'
1776
+ */
1777
+ colorScheme?: SwitchColorScheme | undefined;
1778
+ /**
1779
+ * If true, disables interaction and dims visual elements.
1780
+ * @default false
1781
+ */
1782
+ disabled?: boolean | undefined;
1783
+ /**
1784
+ * If true, prevents toggling while remaining focusable.
1785
+ * @default false
1786
+ */
1787
+ readOnly?: boolean | undefined;
1788
+ /**
1789
+ * If true, the input will be marked as required.
1790
+ * @default false
1791
+ */
1792
+ required?: boolean | undefined;
1793
+ /**
1794
+ * If true, displays an error state outline.
1795
+ * @default false
1796
+ */
1797
+ error?: boolean | undefined;
1798
+ /**
1799
+ * If true, disables switch and renders a micro-loading spinner inside thumb.
1800
+ * @default false
1801
+ */
1802
+ loading?: boolean | undefined;
1803
+ /**
1804
+ * Custom icon rendered inside the thumb when checked.
1805
+ */
1806
+ checkedIcon?: React.ReactNode | undefined;
1807
+ /**
1808
+ * Custom icon rendered inside the thumb when unchecked.
1809
+ */
1810
+ uncheckedIcon?: React.ReactNode | undefined;
1811
+ /**
1812
+ * Position of the label relative to the switch track.
1813
+ * @default 'end'
1814
+ */
1815
+ labelPlacement?: SwitchLabelPlacement | undefined;
1816
+ /**
1817
+ * Ref forwarded directly to the hidden native HTMLInputElement.
1818
+ */
1819
+ inputRef?: React.Ref<HTMLInputElement> | undefined;
1820
+ /**
1821
+ * Additional HTML attributes forwarded to the hidden native HTMLInputElement.
1822
+ */
1823
+ inputProps?: React.InputHTMLAttributes<HTMLInputElement> | undefined;
1824
+ /**
1825
+ * If true, delegates rendering to immediate child element using Slot.
1826
+ * @default false
1827
+ */
1828
+ asChild?: boolean | undefined;
1829
+ /**
1830
+ * The underlying HTML element or component.
1831
+ */
1832
+ component?: React.ElementType | undefined;
1833
+ /**
1834
+ * Alias for component.
1835
+ */
1836
+ as?: React.ElementType | undefined;
1837
+ /**
1838
+ * System-aware sx prop.
1839
+ */
1840
+ sx?: SxProps;
1841
+ children?: React.ReactNode | undefined;
1842
+ }
1843
+
1844
+ /**
1845
+ * Switch primitive representing an immediate binary toggle setting.
1846
+ * Conforms to the W3C WAI-ARIA 1.2 Switch Pattern (`role="switch"`).
1847
+ *
1848
+ * @example
1849
+ * <Switch defaultChecked>Enable Notifications</Switch>
1850
+ */
1851
+ declare const Switch: React.ForwardRefExoticComponent<SwitchProps & React.RefAttributes<HTMLLabelElement>>;
1852
+
1853
+ type PaperVariant = "elevation" | "outlined";
1854
+ interface PaperOwnerState {
1855
+ elevation?: number | undefined;
1856
+ variant?: PaperVariant | undefined;
1857
+ square?: boolean | undefined;
1858
+ }
1859
+ interface PaperProps extends React.HTMLAttributes<HTMLElement>, PaperOwnerState {
1860
+ /**
1861
+ * If true, delegate rendering to immediate child element using Slot
1862
+ */
1863
+ asChild?: boolean | undefined;
1864
+ /**
1865
+ * The underlying HTML element or component
1866
+ */
1867
+ component?: React.ElementType | undefined;
1868
+ /**
1869
+ * The underlying HTML element or component
1870
+ */
1871
+ as?: React.ElementType | undefined;
1872
+ /**
1873
+ * The system-aware sx prop
1874
+ */
1875
+ sx?: SxProps;
1876
+ children?: React.ReactNode;
1877
+ }
1878
+ /**
1879
+ * Material Paper elevation surface container with 24-level elevation shadows,
1880
+ * dark-mode surface elevation overlays, and outlined variants.
1881
+ *
1882
+ * @example
1883
+ * <Paper elevation={3} sx={{ p: 2 }}>
1884
+ * Elevated Content
1885
+ * </Paper>
1886
+ */
1887
+ declare const Paper: React.ForwardRefExoticComponent<PaperProps & React.RefAttributes<HTMLElement>>;
1888
+
1889
+ type CardVariant = "elevated" | "outlined" | "filled";
1890
+ type CardSize = "sm" | "md" | "lg";
1891
+ interface CardOwnerState {
1892
+ variant: CardVariant;
1893
+ elevation: number;
1894
+ size: CardSize;
1895
+ hoverable: boolean;
1896
+ square: boolean;
1897
+ }
1898
+ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
1899
+ /**
1900
+ * Visual surface treatment of the card.
1901
+ * @default "elevated"
1902
+ */
1903
+ variant?: CardVariant;
1904
+ /**
1905
+ * Numeric M3 elevation level (0–24). Only applies to the "elevated" variant.
1906
+ * @default 1
1907
+ */
1908
+ elevation?: number;
1909
+ /**
1910
+ * Spatial padding scale applied to all inner sub-components.
1911
+ * @default "md"
1912
+ */
1913
+ size?: CardSize;
1914
+ /**
1915
+ * When true, raises elevation by 2 stops and lifts the card 2px on hover.
1916
+ * @default false
1917
+ */
1918
+ hoverable?: boolean;
1919
+ /**
1920
+ * If true, removes the card's border-radius.
1921
+ * @default false
1922
+ */
1923
+ square?: boolean;
1924
+ /**
1925
+ * If true, delegates rendering to the immediate child element via Slot.
1926
+ * @default false
1927
+ */
1928
+ asChild?: boolean;
1929
+ /** Override the root HTML element. */
1930
+ component?: React.ElementType;
1931
+ /** Alias for component. */
1932
+ as?: React.ElementType;
1933
+ /** System-aware sx styling prop. */
1934
+ sx?: SxProps;
1935
+ children?: React.ReactNode;
1936
+ }
1937
+ interface CardHeaderProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
1938
+ /** Leading avatar or icon node. */
1939
+ avatar?: React.ReactNode;
1940
+ /** Trailing action node (icon button, menu trigger). */
1941
+ action?: React.ReactNode;
1942
+ /** Primary title text or node. */
1943
+ title?: React.ReactNode;
1944
+ /** Secondary subtitle text or node. */
1945
+ subheader?: React.ReactNode;
1946
+ /** Props forwarded to the inner title `<span>`. */
1947
+ titleTypographyProps?: React.HTMLAttributes<HTMLSpanElement>;
1948
+ /** Props forwarded to the inner subheader `<span>`. */
1949
+ subheaderTypographyProps?: React.HTMLAttributes<HTMLSpanElement>;
1950
+ /** Delegates rendering to immediate child via Slot. */
1951
+ asChild?: boolean;
1952
+ sx?: SxProps;
1953
+ }
1954
+ interface CardMediaProps extends React.HTMLAttributes<HTMLDivElement> {
1955
+ /**
1956
+ * URL for the background-image shorthand. For semantic HTML prefer `<img>` children.
1957
+ */
1958
+ image?: string;
1959
+ /**
1960
+ * Alt text applied as `aria-label` when using the `image` prop.
1961
+ */
1962
+ alt?: string;
1963
+ /**
1964
+ * CSS aspect-ratio value e.g. "16/9", "4/3", "1".
1965
+ * @default "16/9"
1966
+ */
1967
+ aspectRatio?: string;
1968
+ /** Override the rendered HTML element. @default "div" */
1969
+ component?: React.ElementType;
1970
+ sx?: SxProps;
1971
+ }
1972
+ interface CardBodyProps extends React.HTMLAttributes<HTMLDivElement> {
1973
+ sx?: SxProps;
1974
+ }
1975
+ interface CardFooterProps extends React.HTMLAttributes<HTMLDivElement> {
1976
+ /**
1977
+ * When true, renders a 1px top divider between the body and footer.
1978
+ * @default false
1979
+ */
1980
+ divider?: boolean;
1981
+ sx?: SxProps;
1982
+ }
1983
+ interface CardActionsProps extends React.HTMLAttributes<HTMLDivElement> {
1984
+ /**
1985
+ * When true, removes the default negative horizontal margins that
1986
+ * align icon-buttons flush to the card's padding box.
1987
+ * @default false
1988
+ */
1989
+ disableSpacing?: boolean;
1990
+ sx?: SxProps;
1991
+ }
1992
+
1993
+ /**
1994
+ * Material Design 3-aligned surface container with compound sub-components.
1995
+ * Supports 3 visual variants, numeric M3 elevation, dark-mode overlay tinting,
1996
+ * and an optional hoverable lift mode.
1997
+ *
1998
+ * @example
1999
+ * <Card hoverable>
2000
+ * <CardMedia image="/hero.jpg" alt="Hero" />
2001
+ * <CardHeader title="Title" subheader="Subtitle" />
2002
+ * <CardBody>Content here</CardBody>
2003
+ * <CardActions>
2004
+ * <Button>Action</Button>
2005
+ * </CardActions>
2006
+ * </Card>
2007
+ */
2008
+ declare const Card: React.ForwardRefExoticComponent<CardProps & React.RefAttributes<HTMLDivElement>>;
2009
+ /**
2010
+ * Header zone of a Card. Supports avatar, title, subheader, and trailing action slots.
2011
+ * Automatically inherits `size` from the parent Card via CardContext.
2012
+ */
2013
+ declare const CardHeader: React.ForwardRefExoticComponent<CardHeaderProps & React.RefAttributes<HTMLDivElement>>;
2014
+ /**
2015
+ * Aspect-ratio-locked media zone that bleeds edge-to-edge within the card.
2016
+ * Use the `image` prop for a CSS background shorthand, or place an `<img>`
2017
+ * child for semantic HTML (preferred for accessibility).
2018
+ */
2019
+ declare const CardMedia: React.ForwardRefExoticComponent<CardMediaProps & React.RefAttributes<HTMLDivElement>>;
2020
+ /**
2021
+ * Main flexible content zone of a Card.
2022
+ * Inherits `size` from parent Card for consistent padding.
2023
+ */
2024
+ declare const CardBody: React.ForwardRefExoticComponent<CardBodyProps & React.RefAttributes<HTMLDivElement>>;
2025
+ /**
2026
+ * Semantic footer zone of a Card. Use for metadata, tags, timestamps.
2027
+ * Set `divider` to render a 1px separator between the body and footer.
2028
+ */
2029
+ declare const CardFooter: React.ForwardRefExoticComponent<CardFooterProps & React.RefAttributes<HTMLDivElement>>;
2030
+ /**
2031
+ * Flex action strip for Button / Link controls inside a Card.
2032
+ * By default applies a slight negative margin to align icon-buttons
2033
+ * flush to the card's padding box. Use `disableSpacing` to remove this.
2034
+ */
2035
+ declare const CardActions: React.ForwardRefExoticComponent<CardActionsProps & React.RefAttributes<HTMLDivElement>>;
2036
+
2037
+ interface RippleItem {
2038
+ key: number;
2039
+ rippleX: number;
2040
+ rippleY: number;
2041
+ rippleSize: number;
2042
+ pulsating?: boolean;
2043
+ leaving?: boolean;
2044
+ }
2045
+ interface TouchRippleRef {
2046
+ start: (event?: React.SyntheticEvent, options?: {
2047
+ pulsate?: boolean;
2048
+ center?: boolean;
2049
+ }) => void;
2050
+ stop: (event?: React.SyntheticEvent) => void;
2051
+ pulsate: () => void;
2052
+ }
2053
+ interface TouchRippleProps extends React.HTMLAttributes<HTMLSpanElement> {
2054
+ /**
2055
+ * If true, the ripple will center on the element rather than pointer coordinates
2056
+ */
2057
+ center?: boolean;
2058
+ className?: string;
2059
+ }
2060
+ /**
2061
+ * TouchRipple component delivers tactile Material Design touch/click ripple animations.
2062
+ */
2063
+ declare const TouchRipple: React.ForwardRefExoticComponent<TouchRippleProps & React.RefAttributes<TouchRippleRef>>;
2064
+
2065
+ interface UseRippleOptions {
2066
+ disabled?: boolean;
2067
+ disableRipple?: boolean;
2068
+ center?: boolean;
2069
+ }
2070
+ interface UseRippleReturn {
2071
+ rippleRef: React.RefObject<TouchRippleRef>;
2072
+ rippleProps: TouchRippleProps & {
2073
+ ref: React.RefObject<TouchRippleRef>;
2074
+ };
2075
+ getRippleHandlers: <T extends Record<string, any>>(props?: T) => T;
2076
+ }
2077
+ /**
2078
+ * Hook connecting user interactions (pointer/touch/keyboard) to TouchRipple.
2079
+ */
2080
+ declare function useRipple(options?: UseRippleOptions): UseRippleReturn;
2081
+
2082
+ export { Box, type BoxProps, type BreakpointKey, type Breakpoints, Button, type ButtonColorScheme, ButtonGroup, ButtonGroupContext, type ButtonGroupContextValue, type ButtonGroupOrientation, type ButtonGroupProps, type ButtonLoadingPosition, type ButtonProps, type ButtonSize, type ButtonVariant, Card, CardActions, type CardActionsProps, CardBody, type CardBodyProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, CardMedia, type CardMediaProps, type CardOwnerState, type CardProps, type CardSize, type CardVariant, Checkbox, type CheckboxColorScheme, CheckboxContext, type CheckboxContextValue, CheckboxGroup, type CheckboxGroupProps, type CheckboxOwnerState, type CheckboxProps, type CheckboxSize, type ChellaaTheme, Code, type CodeColorScheme, type CodeOwnerState, type CodeProps, type ColorMode, type ComponentOverride, type ComponentOverrideOptions, Container, type ContainerOwnerState, type ContainerProps, type DeepPartial, Divider, type DividerLineStyle, type DividerOrientation, type DividerOwnerState, type DividerProps, type DividerTextAlign, type DividerVariant, type ExtendedThemeContextValue, Flex, type FlexOwnerState, type FlexProps, FormErrorMessage, type FormErrorMessageProps, FormField, FormFieldContext, type FormFieldContextValue, type FormFieldProps, FormHelperText, type FormHelperTextProps, FormLabel, type FormLabelProps, Grid, type GridDirection, type GridOwnerState, type GridProps, type GridSize, type GridWrap, Heading, type HeadingLevel, type HeadingProps, Input, InputAdornment, type InputAdornmentProps, InputBase, type InputOwnerState, type InputProps, type InputSize, type InputVariant, Kbd, type KbdModifier, type KbdOwnerState, type KbdProps, type KbdSize, type KbdVariant, MODIFIER_SYMBOLS, type Palette, type PaletteColor, Paper, type PaperOwnerState, type PaperProps, type PaperVariant, Paragraph, type ParagraphProps, Radio, type RadioColorScheme, RadioContext, type RadioContextValue, RadioGroup, type RadioGroupProps, type RadioOwnerState, type RadioProps, type RadioSize, type ResponsiveValue, type RippleItem, Stack, type StackDirection, type StackOwnerState, type StackProps, type StandardCSSProperties, type StyleInterpolation, type StyledOptions, Switch, type SwitchColorScheme, type SwitchLabelPlacement, type SwitchOwnerState, type SwitchProps, type SwitchSize, type SxObject, type SxPropValue, type SxProps, type SystemCssProperties, type SystemStyleProperties, Text, TextField, type TextFieldProps, type TextProps, type TextSize, Textarea, type TextareaOwnerState, type TextareaProps, type TextareaResize, type TextareaSize, type TextareaVariant, type ThemeContextValue, type ThemeMode, type ThemeOptions, ThemeProvider, type ThemeProviderProps, ThemeScript, type ThemeScriptProps, TouchRipple, type TouchRippleProps, type TouchRippleRef, type Transitions, type TypeAction, type TypeBackground, type TypeText, Typography, type TypographyAlign, type TypographyOwnerState, type TypographyProps, type TypographyStyle, type TypographyTheme, type TypographyVariant, type UseRippleOptions, type UseRippleReturn, type ZIndex, breakpointKeys, createBreakpoints, createPalette, createShadows, createShouldForwardProp, createSpacing, createTheme, darkPalette, defaultBreakpoints, defaultDarkTheme, defaultShadows, defaultSpacing, defaultTheme, defaultTransitions, defaultTypography, defaultZIndex, lightPalette, parseSx, resolveComponentOverrides, resolveTypographyColor, rootShouldForwardProp, styled, useButtonGroupContext, useCheckboxGroup, useFormField, useRadioGroup, useRipple, useTheme };