@tenerife.music/ui 1.2.1 → 2.0.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/README.md +39 -2
- package/dist/Link-ZWr5iFB0.d.cts +60 -0
- package/dist/Link-ZWr5iFB0.d.ts +60 -0
- package/dist/extensions/next/index.cjs +406 -0
- package/dist/extensions/next/index.d.cts +37 -0
- package/dist/extensions/next/index.d.ts +37 -0
- package/dist/extensions/next/index.mjs +381 -0
- package/dist/{index-DXmHg8ji.d.cts → index-DGtRM9Db.d.cts} +193 -901
- package/dist/{index-DXmHg8ji.d.ts → index-DGtRM9Db.d.ts} +193 -901
- package/dist/index.cjs +8170 -4531
- package/dist/index.d.cts +2219 -673
- package/dist/index.d.ts +2219 -673
- package/dist/index.mjs +7860 -4246
- package/dist/preset.cjs +129 -321
- package/dist/preset.mjs +129 -321
- package/dist/styles.css +939 -93
- package/dist/theme/index.cjs +20 -230
- package/dist/theme/index.mjs +20 -230
- package/dist/tokens/index.cjs +501 -593
- package/dist/tokens/index.d.cts +165 -2
- package/dist/tokens/index.d.ts +165 -2
- package/dist/tokens/index.mjs +489 -577
- package/package.json +22 -7
package/dist/index.d.cts
CHANGED
|
@@ -1,16 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { A as ALERT_TOKENS,
|
|
1
|
+
import { cM as ResponsiveSideOffset, cw as ResponsiveAlignOffset, cF as ResponsiveModalSize, cG as ResponsiveModalWidth, cE as ResponsiveModalHeight, cN as ResponsiveSpace, cv as RadiusToken, c_ as SurfaceToken, cn as ModalFooterAlignToken, cI as ResponsiveRadius$1, cW as ShadowToken, cz as ResponsiveColor$1, d3 as Responsive, cA as ResponsiveContainerMaxWidth, cD as ResponsiveFlexBasis, cC as ResponsiveDelay, d4 as ResponsiveContextMenuSize, d5 as ResponsiveContextMenuWidth, d6 as ContextMenuItemToneToken, d7 as ResponsiveTabsSize, d8 as TabsVariantToken, d9 as TabsToneToken, z as IconColor, G as IconStroke, E as EmptyStateIconSize } from './index-DGtRM9Db.cjs';
|
|
2
|
+
export { A as ALERT_TOKENS, B as BUTTON_TOKENS, bp as BorderRadius, da as Breakpoint, k as ButtonFontSize, l as ButtonHeight, m as ButtonPaddingHorizontal, n as ButtonPaddingVertical, o as ButtonShadow, C as CARD_TOKENS, a as CHECKBOX_TOKENS, bW as CanonicalFontSize, bX as CanonicalFontWeight, bY as CanonicalLetterSpacing, bZ as CanonicalLineHeight, b_ as CanonicalTextColor, p as CardPadding, q as CardRadius, r as CardShadow, s as CardSize, t as CardSpacingVertical, u as CheckboxSize, v as CheckboxState, w as CheckboxVariant, bv as ColoredShadow, ba as ComponentMotionDuration, bb as ComponentMotionEasing, bd as ComponentMotionTransition, bq as ComponentRadius, bJ as ComponentSpacing, bK as ContainerSpacing, D as DATA_TOKENS, x as DataListLabelWidth, y as DataListRowPadding, bw as ElevationShadow, bx as FocusRing, b$ as FontFamily, c0 as FontSize, c1 as FontWeight, by as GlowEffect, bL as GridSpacing, I as ICON_TOKENS, c as INPUT_TOKENS, F as IconSize, H as InputFontSize, J as InputHeight, K as InputPaddingHorizontal, L as InputPaddingVertical, Q as InputRadius, U as InputSize, c2 as LetterSpacing, c3 as LineHeight, M as MENU_TOKENS, d as MOTION_TOKENS, V as MenuContentMinWidth, W as MenuContentPadding, X as MenuContentRadius, Y as MenuContentShadow, Z as MenuIndicatorOffset, _ as MenuIndicatorSize, $ as MenuItemGap, a0 as MenuItemHeight, a1 as MenuItemPadding, a2 as MenuItemRadius, a3 as MenuLabelPadding, a4 as MenuSeparatorMargin, a5 as MotionAnimation, b9 as MotionCombinedType, ba as MotionDuration, bb as MotionEasing, bc as MotionSlideDirection, bd as MotionTransition, a9 as MotionTransitionPreset, N as NAVIGATION_TOKENS, e as NOTIFICATION_TOKENS, aa as NavigationItemPadding, ab as NavigationListGap, ac as NavigationRadius, ad as NavigationShadow, ae as NavigationSize, af as NavigationState, ag as NotificationPanelWidth, ah as NotificationTokenVariant, O as OVERLAY_TOKENS, ai as OverlayBackdropVariant, aj as OverlayModalSize, P as POPOVER_TOKENS, ak as PopoverArrowOffset, al as PopoverArrowSize, am as PopoverContentPadding, an as PopoverContentRadius, ao as PopoverContentShadow, ap as PopoverContentWidth, R as RADIO_TOKENS, aq as RadioSize, ar as RadioState, as as RadioVariant, S as SECTION_TOKENS, g as SURFACE_TOKENS, h as SWITCH_TOKENS, at as SectionGap, au as SectionPadding, bM as SectionSpacing, bN as SemanticSpacing, aL as SkeletonAnimation, aM as SkeletonBackground, bO as Spacing, bP as StackSpacing, aO as SurfacePadding, aP as SurfaceRadius, aQ as SurfaceShadow, aR as SurfaceVariant, aS as SwitchSize, aT as SwitchState, aU as SwitchVariant, T as TEXT_TOKENS, i as TOAST_TOKENS, j as TOOLTIP_TOKENS, aV as TableCellPadding, aW as TableGap, aX as TableHeaderPadding, aY as TableRowHeight, aZ as TableShadow, a_ as TextFontSize, a$ as TextFontWeight, b0 as TextLetterSpacing, b1 as TextLineHeight, c4 as TextStyle, b2 as ToastVariant, b3 as TooltipContentRadius, b4 as TooltipContentShadow, bV as UI_COLORS, bz as accentColoredShadows, b5 as allCSSVariables, b6 as allCSSVariablesCSS, br as borderRadius, bs as componentRadius, bA as componentShadowMapping, bB as elevationShadows, bC as focusRings, c5 as fontFamily, c6 as fontSize, c7 as fontSizeWithMd, c8 as fontWeight, b7 as generateCSSVariablesCSS, bD as glowEffects, bQ as layoutSpacing, c9 as letterSpacing, ca as lineHeight, be as motionCSSVariables, bf as motionCombined, bg as motionDurations, bh as motionEasings, bi as motionFade, bj as motionReducedMotion, bk as motionScale, bl as motionSlide, bm as motionTailwindConfig, bn as motionTransitionProperty, bo as motionTransitions, bE as primaryColoredShadows, bt as radiusCSSVariables, bR as semanticSpacing, bF as shadowBase, bG as shadowCSSVariables, bH as shadowOpacity, bS as spacing, bT as spacingCSSVariables, bu as tailwindRadiusConfig, bI as tailwindShadowConfig, bU as tailwindSpacingConfig, cb as tailwindTypographyConfig, cc as textStyles, b8 as tokenSystemSummary, cd as typographyCSSVariables } from './index-DGtRM9Db.cjs';
|
|
3
3
|
export { B as BaseColorTokens, C as ChartColors, a as ColorScale, b as ColorTokens, M as Mode, S as SemanticColors, c as SurfaceColors, T as TextColors, d as accentColors, e as baseColors, f as chartColors, g as colorCSSVariables, h as cssVariableColorTokens, p as primaryColors, s as secondaryColors, i as semanticColors, j as surfaceColors, t as tailwindThemeColors, k as textColors } from './colors-BrFmCQv-.cjs';
|
|
4
4
|
import * as React$1 from 'react';
|
|
5
5
|
import React__default, { ReactNode } from 'react';
|
|
6
6
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
7
|
-
import {
|
|
7
|
+
import { L as LinkProps } from './Link-ZWr5iFB0.cjs';
|
|
8
|
+
export { a as Link, b as LinkSize, c as LinkVariant, l as linkVariants } from './Link-ZWr5iFB0.cjs';
|
|
8
9
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
10
|
+
import * as class_variance_authority from 'class-variance-authority';
|
|
11
|
+
import { VariantProps } from 'class-variance-authority';
|
|
9
12
|
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
10
13
|
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
11
14
|
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
15
|
+
import * as SeparatorPrimitive from '@radix-ui/react-separator';
|
|
16
|
+
import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
|
|
12
17
|
import * as ToastPrimitives from '@radix-ui/react-toast';
|
|
13
18
|
import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
|
|
19
|
+
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
14
20
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
15
21
|
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
16
22
|
|
|
@@ -27,24 +33,42 @@ type ButtonVariant = "primary" | "secondary" | "accent" | "outline" | "ghost" |
|
|
|
27
33
|
/**
|
|
28
34
|
* Button Size Type
|
|
29
35
|
*
|
|
30
|
-
* Type-level enforcement: Only
|
|
36
|
+
* Type-level enforcement: Only GlobalSize values are allowed.
|
|
31
37
|
* TypeScript will error if any other string is passed.
|
|
32
38
|
*
|
|
33
39
|
* @enforcement TUNG_BUTTON_CVA_ENFORCEMENT
|
|
40
|
+
* @enforcement VARIANTS_SIZE_CANON - Must use only GlobalSize values
|
|
41
|
+
*
|
|
42
|
+
* Canonical sizes: "sm" | "md" | "lg" (GlobalSize compliant)
|
|
43
|
+
* For icon-only buttons, use `iconOnly={true}` prop with any size.
|
|
34
44
|
*/
|
|
35
|
-
type ButtonSize = "sm" | "md" | "lg"
|
|
45
|
+
type ButtonSize = "sm" | "md" | "lg";
|
|
36
46
|
/**
|
|
37
47
|
* Button Component Props
|
|
38
48
|
*
|
|
39
49
|
* @enforcement TUNG_BUTTON_CVA_ENFORCEMENT
|
|
40
50
|
* @rule variant prop is restricted to ButtonVariant union type
|
|
41
|
-
* @rule size prop is restricted to ButtonSize union type
|
|
51
|
+
* @rule size prop is restricted to ButtonSize union type (GlobalSize values only: "sm" | "md" | "lg")
|
|
52
|
+
* @rule iconOnly prop creates square icon-only button using size for dimensions (canonical way to create icon buttons)
|
|
42
53
|
* @rule className prop cannot override color classes (tokenCVA validation in dev mode)
|
|
43
54
|
* @rule Button is fully token-based - no raw Tailwind colors allowed
|
|
44
55
|
*/
|
|
45
56
|
interface ButtonProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, "className" | "style"> {
|
|
46
57
|
variant?: ButtonVariant;
|
|
47
58
|
size?: ButtonSize;
|
|
59
|
+
/**
|
|
60
|
+
* Icon-only mode: Creates a square button (equal width and height) with icon-centered layout.
|
|
61
|
+
* When `iconOnly={true}`, the button uses the `size` prop to determine dimensions.
|
|
62
|
+
* This is the canonical way to create icon-only buttons (replaces deprecated `size="icon"`).
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```tsx
|
|
66
|
+
* <Button iconOnly size="md" aria-label="Search">
|
|
67
|
+
* <SearchIcon />
|
|
68
|
+
* </Button>
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
71
|
+
iconOnly?: boolean;
|
|
48
72
|
asChild?: boolean;
|
|
49
73
|
leftIcon?: React$1.ReactNode;
|
|
50
74
|
rightIcon?: React$1.ReactNode;
|
|
@@ -74,84 +98,124 @@ interface ButtonProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElemen
|
|
|
74
98
|
*/
|
|
75
99
|
declare const Button: React$1.ForwardRefExoticComponent<ButtonProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
76
100
|
|
|
77
|
-
declare const textVariants: (props?: ({
|
|
78
|
-
size?: "sm" | "md" | "lg" | "xl" | "xs" | null | undefined;
|
|
79
|
-
weight?: "normal" | "medium" | "semibold" | "bold" | null | undefined;
|
|
80
|
-
muted?: boolean | null | undefined;
|
|
81
|
-
variant?: "primary" | "secondary" | "muted" | "accent" | "destructive" | "outline" | "link" | "ghost" | null | undefined;
|
|
82
|
-
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
83
|
-
interface TextProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "className" | "style">, VariantProps<typeof textVariants> {
|
|
84
|
-
/**
|
|
85
|
-
* @deprecated Use muted prop or semantic text colors instead
|
|
86
|
-
*/
|
|
87
|
-
variant?: "primary" | "secondary" | "accent" | "outline" | "ghost" | "link" | "destructive" | "muted";
|
|
88
|
-
}
|
|
89
|
-
declare const Text: React$1.ForwardRefExoticComponent<TextProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
90
|
-
type TextSize = VariantProps<typeof textVariants>["size"];
|
|
91
|
-
type TextWeight = VariantProps<typeof textVariants>["weight"];
|
|
92
|
-
|
|
93
|
-
declare const alertVariants: (props?: ({
|
|
94
|
-
variant?: "primary" | "secondary" | "accent" | "destructive" | "default" | "success" | "warning" | "danger" | "info" | null | undefined;
|
|
95
|
-
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
96
|
-
interface AlertProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof alertVariants> {
|
|
97
|
-
}
|
|
98
|
-
declare const Alert: React$1.ForwardRefExoticComponent<AlertProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
99
|
-
|
|
100
101
|
/**
|
|
101
|
-
*
|
|
102
|
+
* Text size values (internal - used for type derivation only)
|
|
102
103
|
*
|
|
103
104
|
* @internal
|
|
104
105
|
*/
|
|
105
|
-
declare const
|
|
106
|
+
declare const _TEXT_SIZES: readonly ["xs", "sm", "md", "lg", "xl"];
|
|
106
107
|
/**
|
|
107
|
-
*
|
|
108
|
+
* Text size type
|
|
109
|
+
* Typography scale for Text component (separate from interactive scale)
|
|
108
110
|
*
|
|
109
111
|
* @public
|
|
110
112
|
*/
|
|
111
|
-
type
|
|
113
|
+
type TextSize = (typeof _TEXT_SIZES)[number];
|
|
112
114
|
/**
|
|
113
|
-
*
|
|
115
|
+
* Text weight values (internal - used for type derivation only)
|
|
114
116
|
*
|
|
115
117
|
* @internal
|
|
116
118
|
*/
|
|
117
|
-
declare const
|
|
119
|
+
declare const _TEXT_WEIGHTS: readonly ["normal", "medium", "semibold", "bold"];
|
|
118
120
|
/**
|
|
119
|
-
*
|
|
121
|
+
* Text weight type
|
|
122
|
+
* Font weight scale for Text component
|
|
120
123
|
*
|
|
121
124
|
* @public
|
|
122
125
|
*/
|
|
123
|
-
type
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
126
|
+
type TextWeight = (typeof _TEXT_WEIGHTS)[number];
|
|
127
|
+
/**
|
|
128
|
+
* Text tone values (internal - used for type derivation only)
|
|
129
|
+
*
|
|
130
|
+
* @internal
|
|
131
|
+
*/
|
|
132
|
+
declare const _TEXT_TONES: readonly ["default", "muted"];
|
|
133
|
+
/**
|
|
134
|
+
* Text tone type
|
|
135
|
+
* Color tone variant for Text component
|
|
136
|
+
*
|
|
137
|
+
* @public
|
|
138
|
+
*/
|
|
139
|
+
type TextTone = (typeof _TEXT_TONES)[number];
|
|
140
|
+
/**
|
|
141
|
+
* Text as element types
|
|
142
|
+
* Allowed HTML elements for polymorphic rendering
|
|
143
|
+
*
|
|
144
|
+
* @public
|
|
145
|
+
*/
|
|
146
|
+
type TextAsElement = "span" | "p" | "label" | "strong" | "em";
|
|
147
|
+
declare const textVariants: (props?: ({
|
|
148
|
+
size?: "sm" | "md" | "lg" | "xl" | "xs" | null | undefined;
|
|
149
|
+
weight?: "normal" | "medium" | "semibold" | "bold" | null | undefined;
|
|
150
|
+
tone?: "muted" | "default" | null | undefined;
|
|
127
151
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
152
|
+
/**
|
|
153
|
+
* Text component props
|
|
154
|
+
*
|
|
155
|
+
* @public
|
|
156
|
+
*/
|
|
157
|
+
interface TextProps extends Omit<React$1.HTMLAttributes<HTMLSpanElement>, "className" | "style"> {
|
|
158
|
+
/** HTML element to render (span, p, label, strong, em) */
|
|
159
|
+
as?: TextAsElement;
|
|
160
|
+
/** Typography size scale (xs, sm, md, lg, xl) */
|
|
161
|
+
size?: TextSize;
|
|
162
|
+
/** Font weight (normal, medium, semibold, bold) */
|
|
163
|
+
weight?: TextWeight;
|
|
164
|
+
/** Text color tone (default, muted) */
|
|
165
|
+
tone?: TextTone;
|
|
166
|
+
}
|
|
167
|
+
declare const Text: React$1.ForwardRefExoticComponent<TextProps & React$1.RefAttributes<HTMLElement>>;
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Alert variant values
|
|
171
|
+
*
|
|
172
|
+
* @public
|
|
173
|
+
*/
|
|
174
|
+
declare const ALERT_VARIANTS: readonly ["default", "primary", "secondary", "accent", "destructive"];
|
|
175
|
+
/**
|
|
176
|
+
* Alert variant type
|
|
177
|
+
*
|
|
178
|
+
* @public
|
|
179
|
+
*/
|
|
180
|
+
type AlertVariant = (typeof ALERT_VARIANTS)[number];
|
|
181
|
+
declare const alertVariants: (props?: ({
|
|
182
|
+
variant?: "primary" | "secondary" | "accent" | "destructive" | "default" | null | undefined;
|
|
183
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
184
|
+
interface AlertProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
143
185
|
/**
|
|
144
|
-
*
|
|
186
|
+
* Alert variant style
|
|
187
|
+
* @default "default"
|
|
145
188
|
*/
|
|
146
|
-
|
|
189
|
+
variant?: AlertVariant;
|
|
190
|
+
}
|
|
191
|
+
declare const Alert: React$1.ForwardRefExoticComponent<AlertProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* NavLink props interface
|
|
195
|
+
* Extends Link props with navigation state indicator
|
|
196
|
+
*
|
|
197
|
+
* @public
|
|
198
|
+
*/
|
|
199
|
+
interface NavLinkProps extends LinkProps {
|
|
147
200
|
/**
|
|
148
|
-
* Whether
|
|
149
|
-
* When
|
|
201
|
+
* Whether this link represents the current page
|
|
202
|
+
* When true, aria-current='page' is applied for accessibility
|
|
203
|
+
* NavLink does not determine this state; it only reflects externally provided state
|
|
204
|
+
*
|
|
150
205
|
* @default false
|
|
151
206
|
*/
|
|
152
|
-
|
|
207
|
+
current?: boolean;
|
|
153
208
|
}
|
|
154
|
-
|
|
209
|
+
/**
|
|
210
|
+
* NavLink component
|
|
211
|
+
*
|
|
212
|
+
* A navigation primitive built on top of the Foundation Link component.
|
|
213
|
+
* Represents a navigational link and reflects externally provided navigation state via aria-current.
|
|
214
|
+
* NavLink does not perform routing, route matching, or state detection.
|
|
215
|
+
*
|
|
216
|
+
* @public
|
|
217
|
+
*/
|
|
218
|
+
declare const NavLink: React$1.ForwardRefExoticComponent<NavLinkProps & React$1.RefAttributes<HTMLAnchorElement>>;
|
|
155
219
|
|
|
156
220
|
/**
|
|
157
221
|
* Badge variant values
|
|
@@ -177,6 +241,99 @@ interface BadgeProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
177
241
|
}
|
|
178
242
|
declare function Badge({ className, variant, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
|
|
179
243
|
|
|
244
|
+
/**
|
|
245
|
+
* Chip variant values
|
|
246
|
+
* @public
|
|
247
|
+
*/
|
|
248
|
+
declare const CHIP_VARIANTS: readonly ["primary", "secondary", "accent", "outline", "ghost", "destructive"];
|
|
249
|
+
/**
|
|
250
|
+
* Chip variant type
|
|
251
|
+
* @public
|
|
252
|
+
*/
|
|
253
|
+
type ChipVariant = (typeof CHIP_VARIANTS)[number];
|
|
254
|
+
/**
|
|
255
|
+
* Chip radius values
|
|
256
|
+
* @public
|
|
257
|
+
*/
|
|
258
|
+
declare const CHIP_RADIUS_VALUES: readonly ["sm", "md", "lg", "pill"];
|
|
259
|
+
/**
|
|
260
|
+
* Chip radius type
|
|
261
|
+
* @public
|
|
262
|
+
*/
|
|
263
|
+
type ChipRadius = (typeof CHIP_RADIUS_VALUES)[number];
|
|
264
|
+
/**
|
|
265
|
+
* Chip variants using tokenCVA
|
|
266
|
+
*/
|
|
267
|
+
declare const chipVariants: (props?: ({
|
|
268
|
+
variant?: "primary" | "secondary" | "accent" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
269
|
+
radius?: "sm" | "md" | "lg" | "pill" | null | undefined;
|
|
270
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
271
|
+
/**
|
|
272
|
+
* Chip props interface
|
|
273
|
+
* @public
|
|
274
|
+
*/
|
|
275
|
+
interface ChipProps extends Omit<React$1.HTMLAttributes<HTMLElement>, "onClick"> {
|
|
276
|
+
/**
|
|
277
|
+
* Chip variant style
|
|
278
|
+
* @default "primary"
|
|
279
|
+
*/
|
|
280
|
+
variant?: ChipVariant;
|
|
281
|
+
/**
|
|
282
|
+
* Border radius style
|
|
283
|
+
* @default "md"
|
|
284
|
+
*/
|
|
285
|
+
radius?: ChipRadius;
|
|
286
|
+
/**
|
|
287
|
+
* Whether the chip can be removed (shows X button)
|
|
288
|
+
* @default false
|
|
289
|
+
*/
|
|
290
|
+
removable?: boolean;
|
|
291
|
+
/**
|
|
292
|
+
* Whether the chip is selected (for selectable chips)
|
|
293
|
+
* @default false
|
|
294
|
+
*/
|
|
295
|
+
selected?: boolean;
|
|
296
|
+
/**
|
|
297
|
+
* Whether the chip is disabled
|
|
298
|
+
* @default false
|
|
299
|
+
*/
|
|
300
|
+
disabled?: boolean;
|
|
301
|
+
/**
|
|
302
|
+
* Click handler for the chip (makes it interactive)
|
|
303
|
+
*/
|
|
304
|
+
onClick?: (event: React$1.MouseEvent<HTMLElement>) => void;
|
|
305
|
+
/**
|
|
306
|
+
* Remove handler for removable chips
|
|
307
|
+
* Only called when removable={true} and remove button is clicked
|
|
308
|
+
*/
|
|
309
|
+
onRemove?: (event: React$1.MouseEvent<HTMLButtonElement>) => void;
|
|
310
|
+
/**
|
|
311
|
+
* Accessible label for the chip
|
|
312
|
+
* Required for icon-only chips or when children is not descriptive
|
|
313
|
+
*/
|
|
314
|
+
"aria-label"?: string;
|
|
315
|
+
/**
|
|
316
|
+
* ARIA pressed state for selectable chips
|
|
317
|
+
*/
|
|
318
|
+
"aria-pressed"?: boolean | "true" | "false" | "mixed";
|
|
319
|
+
/**
|
|
320
|
+
* Child content of the chip
|
|
321
|
+
*/
|
|
322
|
+
children: React$1.ReactNode;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Chip component
|
|
326
|
+
*
|
|
327
|
+
* COMPLIANCE NOTES:
|
|
328
|
+
* - ✅ Uses token system exclusively (CHIP_TOKENS)
|
|
329
|
+
* - ✅ No raw values (all styling via tokens)
|
|
330
|
+
* - ✅ Motion compliance (MOTION_TOKENS.transitionPreset.colors)
|
|
331
|
+
* - ✅ Accessibility (ARIA attributes, keyboard navigation)
|
|
332
|
+
* - ✅ Focus management (focus-visible, keyboard-only)
|
|
333
|
+
* - ✅ Interaction Authority (disabled: prefix for disabled states)
|
|
334
|
+
*/
|
|
335
|
+
declare const Chip: React$1.ForwardRefExoticComponent<ChipProps & React$1.RefAttributes<HTMLElement>>;
|
|
336
|
+
|
|
180
337
|
declare const headingVariants: (props?: ({
|
|
181
338
|
level?: 1 | 2 | 4 | 6 | 3 | 5 | null | undefined;
|
|
182
339
|
weight?: "normal" | "medium" | "semibold" | "bold" | null | undefined;
|
|
@@ -196,17 +353,9 @@ interface SelectRootProps extends React$1.ComponentPropsWithoutRef<typeof Select
|
|
|
196
353
|
declare const SelectRoot: React$1.FC<SelectRootProps>;
|
|
197
354
|
interface SelectTriggerProps extends Omit<React$1.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>, "size" | "variant" | "width"> {
|
|
198
355
|
/**
|
|
199
|
-
*
|
|
200
|
-
*/
|
|
201
|
-
size?: ResponsiveSelectSize;
|
|
202
|
-
/**
|
|
203
|
-
* Visual variant - token-based
|
|
356
|
+
* Invalid state - uses aria-invalid
|
|
204
357
|
*/
|
|
205
|
-
|
|
206
|
-
/**
|
|
207
|
-
* Width - token-based
|
|
208
|
-
*/
|
|
209
|
-
width?: ResponsiveSelectWidth;
|
|
358
|
+
"aria-invalid"?: boolean;
|
|
210
359
|
}
|
|
211
360
|
declare const SelectTrigger: React$1.ForwardRefExoticComponent<SelectTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
212
361
|
interface SelectValueProps extends React$1.ComponentPropsWithoutRef<typeof SelectPrimitive.Value> {
|
|
@@ -215,11 +364,7 @@ declare const SelectValue: React$1.ForwardRefExoticComponent<SelectValueProps &
|
|
|
215
364
|
interface SelectIconProps extends React$1.ComponentPropsWithoutRef<typeof SelectPrimitive.Icon> {
|
|
216
365
|
}
|
|
217
366
|
declare const SelectIcon: React$1.ForwardRefExoticComponent<SelectIconProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
218
|
-
interface SelectContentProps extends Omit<React$1.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>, "
|
|
219
|
-
/**
|
|
220
|
-
* Size variant - token-based
|
|
221
|
-
*/
|
|
222
|
-
size?: ResponsiveSelectSize;
|
|
367
|
+
interface SelectContentProps extends Omit<React$1.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>, "sideOffset" | "alignOffset"> {
|
|
223
368
|
/**
|
|
224
369
|
* Side offset - token-based
|
|
225
370
|
*/
|
|
@@ -234,10 +379,6 @@ interface SelectViewportProps extends React$1.ComponentPropsWithoutRef<typeof Se
|
|
|
234
379
|
}
|
|
235
380
|
declare const SelectViewport: React$1.ForwardRefExoticComponent<SelectViewportProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
236
381
|
interface SelectItemProps extends React$1.ComponentPropsWithoutRef<typeof SelectPrimitive.Item> {
|
|
237
|
-
/**
|
|
238
|
-
* Size variant - token-based
|
|
239
|
-
*/
|
|
240
|
-
size?: ResponsiveSelectSize;
|
|
241
382
|
}
|
|
242
383
|
declare const SelectItem: React$1.ForwardRefExoticComponent<SelectItemProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
243
384
|
interface SelectItemTextProps extends React$1.ComponentPropsWithoutRef<typeof SelectPrimitive.ItemText> {
|
|
@@ -247,20 +388,12 @@ interface SelectItemIndicatorProps extends React$1.ComponentPropsWithoutRef<type
|
|
|
247
388
|
}
|
|
248
389
|
declare const SelectItemIndicator: React$1.ForwardRefExoticComponent<SelectItemIndicatorProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
249
390
|
interface SelectSeparatorProps extends React$1.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator> {
|
|
250
|
-
/**
|
|
251
|
-
* Size variant - token-based
|
|
252
|
-
*/
|
|
253
|
-
size?: ResponsiveSelectSize;
|
|
254
391
|
}
|
|
255
392
|
declare const SelectSeparator: React$1.ForwardRefExoticComponent<SelectSeparatorProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
256
393
|
interface SelectGroupProps extends React$1.ComponentPropsWithoutRef<typeof SelectPrimitive.Group> {
|
|
257
394
|
}
|
|
258
395
|
declare const SelectGroup: React$1.ForwardRefExoticComponent<SelectGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
259
396
|
interface SelectLabelProps extends React$1.ComponentPropsWithoutRef<typeof SelectPrimitive.Label> {
|
|
260
|
-
/**
|
|
261
|
-
* Size variant - token-based
|
|
262
|
-
*/
|
|
263
|
-
size?: ResponsiveSelectSize;
|
|
264
397
|
}
|
|
265
398
|
declare const SelectLabel: React$1.ForwardRefExoticComponent<SelectLabelProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
266
399
|
|
|
@@ -280,23 +413,282 @@ declare const Select: {
|
|
|
280
413
|
};
|
|
281
414
|
|
|
282
415
|
/**
|
|
283
|
-
*
|
|
416
|
+
* Option type for MultiSelect
|
|
417
|
+
* @public
|
|
418
|
+
*/
|
|
419
|
+
interface MultiSelectOption {
|
|
420
|
+
value: string;
|
|
421
|
+
label: string;
|
|
422
|
+
disabled?: boolean;
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Size union type (explicit, not CVA-derived)
|
|
426
|
+
* @public
|
|
427
|
+
*/
|
|
428
|
+
type MultiSelectSize = "sm" | "md" | "lg";
|
|
429
|
+
/**
|
|
430
|
+
* MultiSelect props interface
|
|
431
|
+
* @public
|
|
432
|
+
*/
|
|
433
|
+
interface MultiSelectProps {
|
|
434
|
+
/**
|
|
435
|
+
* Selected values (controlled)
|
|
436
|
+
*/
|
|
437
|
+
value?: string[];
|
|
438
|
+
/**
|
|
439
|
+
* Default selected values (uncontrolled)
|
|
440
|
+
*/
|
|
441
|
+
defaultValue?: string[];
|
|
442
|
+
/**
|
|
443
|
+
* Callback when selection changes
|
|
444
|
+
*/
|
|
445
|
+
onValueChange?: (value: string[]) => void;
|
|
446
|
+
/**
|
|
447
|
+
* Options to display
|
|
448
|
+
*/
|
|
449
|
+
options: MultiSelectOption[];
|
|
450
|
+
/**
|
|
451
|
+
* Placeholder text when no items selected
|
|
452
|
+
*/
|
|
453
|
+
placeholder?: string;
|
|
454
|
+
/**
|
|
455
|
+
* Maximum number of tags to show in trigger
|
|
456
|
+
* @default undefined (show all tags)
|
|
457
|
+
*/
|
|
458
|
+
maxTags?: number;
|
|
459
|
+
/**
|
|
460
|
+
* Size of the component
|
|
461
|
+
* @default "md"
|
|
462
|
+
*/
|
|
463
|
+
size?: MultiSelectSize;
|
|
464
|
+
/**
|
|
465
|
+
* Whether the component is disabled
|
|
466
|
+
* @default false
|
|
467
|
+
*/
|
|
468
|
+
disabled?: boolean;
|
|
469
|
+
/**
|
|
470
|
+
* Accessible label for the component
|
|
471
|
+
* Required if no visible label
|
|
472
|
+
*/
|
|
473
|
+
"aria-label"?: string;
|
|
474
|
+
/**
|
|
475
|
+
* ID of the element that labels this component
|
|
476
|
+
*/
|
|
477
|
+
"aria-labelledby"?: string;
|
|
478
|
+
/**
|
|
479
|
+
* Custom render function for tags
|
|
480
|
+
* @param option - The option being rendered as a tag
|
|
481
|
+
* @param onRemove - Function to call to remove this tag
|
|
482
|
+
*/
|
|
483
|
+
renderTag?: (option: MultiSelectOption, onRemove: () => void) => React$1.ReactNode;
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* MultiSelect component
|
|
487
|
+
*
|
|
488
|
+
* COMPLIANCE NOTES:
|
|
489
|
+
* - ✅ Uses token system exclusively (INPUT_TOKENS, SELECT_TOKENS, CHECKBOX_TOKENS, CHIP_TOKENS)
|
|
490
|
+
* - ✅ Composes Foundation components (Select, Checkbox)
|
|
491
|
+
* - ✅ Motion compliance (MOTION_TOKENS.transitionPreset.colors)
|
|
492
|
+
* - ✅ A11Y compliance (aria-multiselectable, aria-checked, keyboard navigation)
|
|
493
|
+
* - ✅ Focus management (focus restore, keyboard-only indication)
|
|
494
|
+
*/
|
|
495
|
+
declare const MultiSelect: React$1.ForwardRefExoticComponent<MultiSelectProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
496
|
+
|
|
497
|
+
/**
|
|
498
|
+
* Avatar Component Variants
|
|
499
|
+
*
|
|
500
|
+
* Token-driven CVA (Class Variance Authority) variants for Avatar component.
|
|
501
|
+
* All values use token-based Tailwind classes via AVATAR_TOKENS.
|
|
502
|
+
*
|
|
503
|
+
* COMPLIANCE:
|
|
504
|
+
* - ✅ Uses tokenCVA (enforces token-driven styling)
|
|
505
|
+
* - ✅ Token-based sizing (h-* w-* map to spacing tokens)
|
|
506
|
+
* - ✅ Token-based radius (rounded-full = 9999px, rounded-md = 6px)
|
|
507
|
+
* - ✅ Token-based colors (semantic color tokens)
|
|
508
|
+
* - ✅ Type constraints with satisfies Record<Type, string>
|
|
509
|
+
*
|
|
510
|
+
* @see {@link Avatar} - Main Avatar component
|
|
511
|
+
* @see {@link AvatarGroup} - Avatar group component
|
|
512
|
+
*/
|
|
513
|
+
/**
|
|
514
|
+
* Type exports for Avatar variants
|
|
284
515
|
*/
|
|
285
|
-
type
|
|
516
|
+
type AvatarSize = "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
|
|
517
|
+
type AvatarShape = "circle" | "square";
|
|
518
|
+
type AvatarStatus = "online" | "offline" | "busy";
|
|
519
|
+
|
|
520
|
+
interface AvatarProps {
|
|
521
|
+
/**
|
|
522
|
+
* Image source URL
|
|
523
|
+
* @optional If not provided or fails to load, fallback is shown
|
|
524
|
+
*/
|
|
525
|
+
src?: string;
|
|
526
|
+
/**
|
|
527
|
+
* Alt text for image (required for accessibility)
|
|
528
|
+
* Used to extract initials if no fallback provided
|
|
529
|
+
* @required
|
|
530
|
+
* @example "John Doe" → initials "JD"
|
|
531
|
+
*/
|
|
532
|
+
alt: string;
|
|
533
|
+
/**
|
|
534
|
+
* Avatar size
|
|
535
|
+
* @default "md"
|
|
536
|
+
*/
|
|
537
|
+
size?: AvatarSize;
|
|
538
|
+
/**
|
|
539
|
+
* Avatar shape
|
|
540
|
+
* @default "circle"
|
|
541
|
+
*/
|
|
542
|
+
shape?: AvatarShape;
|
|
543
|
+
/**
|
|
544
|
+
* Custom fallback content (overrides initials extraction)
|
|
545
|
+
* @optional Can be initials string or React element (e.g., icon)
|
|
546
|
+
*/
|
|
547
|
+
fallback?: React$1.ReactNode;
|
|
548
|
+
/**
|
|
549
|
+
* Status indicator
|
|
550
|
+
* @optional Shows colored dot at bottom-right
|
|
551
|
+
*/
|
|
552
|
+
status?: AvatarStatus | null;
|
|
553
|
+
/**
|
|
554
|
+
* Additional CSS classes
|
|
555
|
+
*/
|
|
556
|
+
className?: string;
|
|
557
|
+
}
|
|
286
558
|
/**
|
|
287
|
-
*
|
|
559
|
+
* Avatar component
|
|
560
|
+
*
|
|
561
|
+
* COMPLIANCE NOTES:
|
|
562
|
+
* - ✅ Uses token system exclusively (no raw values)
|
|
563
|
+
* - ✅ Delegates behavior to Radix UI (@radix-ui/react-avatar)
|
|
564
|
+
* - ✅ Follows Extension Authority Contract
|
|
565
|
+
* - ✅ Token-based sizing (h-*, w-*)
|
|
566
|
+
* - ✅ Token-based radius (rounded-full, rounded-md)
|
|
567
|
+
* - ✅ Token-based colors (bg-muted, text-muted-foreground, bg-semantic-*)
|
|
568
|
+
* - ✅ Enhanced accessibility with computed aria-label
|
|
288
569
|
*/
|
|
289
|
-
|
|
570
|
+
declare const Avatar: React$1.ForwardRefExoticComponent<AvatarProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
571
|
+
|
|
290
572
|
/**
|
|
291
|
-
*
|
|
573
|
+
* AvatarGroup Component
|
|
574
|
+
*
|
|
575
|
+
* Displays multiple avatars with overlap effect.
|
|
576
|
+
* Shows a maximum number of avatars and indicates remaining count.
|
|
577
|
+
*
|
|
578
|
+
* @example
|
|
579
|
+
* ```tsx
|
|
580
|
+
* <AvatarGroup
|
|
581
|
+
* avatars={users.map(u => ({
|
|
582
|
+
* key: u.id, // Optional but recommended for dynamic lists
|
|
583
|
+
* src: u.image,
|
|
584
|
+
* alt: u.name
|
|
585
|
+
* }))}
|
|
586
|
+
* max={3}
|
|
587
|
+
* size="md"
|
|
588
|
+
* />
|
|
589
|
+
* ```
|
|
292
590
|
*/
|
|
293
|
-
|
|
591
|
+
|
|
592
|
+
type AvatarGroupSpacing = "tight" | "normal" | "loose";
|
|
593
|
+
interface AvatarGroupProps {
|
|
594
|
+
/**
|
|
595
|
+
* Array of avatar data
|
|
596
|
+
* @required Minimum 1 avatar
|
|
597
|
+
*
|
|
598
|
+
* @remarks
|
|
599
|
+
* For dynamic lists (items can be added/removed/reordered), provide a unique `key`
|
|
600
|
+
* for each avatar to ensure proper React reconciliation. If no key is provided,
|
|
601
|
+
* the component falls back to using `alt` or array index.
|
|
602
|
+
*/
|
|
603
|
+
avatars: Array<{
|
|
604
|
+
/**
|
|
605
|
+
* Optional unique identifier for React key
|
|
606
|
+
* @recommended For dynamic lists to ensure proper reconciliation
|
|
607
|
+
*/
|
|
608
|
+
key?: string | number;
|
|
609
|
+
src?: string;
|
|
610
|
+
alt: string;
|
|
611
|
+
fallback?: React$1.ReactNode;
|
|
612
|
+
}>;
|
|
613
|
+
/**
|
|
614
|
+
* Maximum avatars to show (remaining count shown as "+N")
|
|
615
|
+
* @default Show all avatars
|
|
616
|
+
* @optional
|
|
617
|
+
*/
|
|
618
|
+
max?: number;
|
|
619
|
+
/**
|
|
620
|
+
* Size for all avatars in group
|
|
621
|
+
* @default "md"
|
|
622
|
+
*/
|
|
623
|
+
size?: AvatarSize;
|
|
624
|
+
/**
|
|
625
|
+
* Shape for all avatars in group
|
|
626
|
+
* @default "circle"
|
|
627
|
+
*/
|
|
628
|
+
shape?: AvatarShape;
|
|
629
|
+
/**
|
|
630
|
+
* Spacing between avatars (negative margin for overlap)
|
|
631
|
+
* @default "normal"
|
|
632
|
+
*/
|
|
633
|
+
spacing?: AvatarGroupSpacing;
|
|
634
|
+
/**
|
|
635
|
+
* Additional CSS classes
|
|
636
|
+
*/
|
|
637
|
+
className?: string;
|
|
638
|
+
}
|
|
294
639
|
/**
|
|
295
|
-
*
|
|
640
|
+
* AvatarGroup component
|
|
641
|
+
*
|
|
642
|
+
* COMPLIANCE NOTES:
|
|
643
|
+
* - ✅ Uses token system exclusively (no raw values)
|
|
644
|
+
* - ✅ Composes Avatar component internally
|
|
645
|
+
* - ✅ Token-based spacing (negative margin via -space-x-*)
|
|
646
|
+
* - ✅ Follows Extension Authority Contract
|
|
647
|
+
* - ✅ Smart key management with fallback chain
|
|
648
|
+
* - ✅ Development-mode warnings for edge cases
|
|
296
649
|
*/
|
|
297
|
-
|
|
650
|
+
declare const AvatarGroup: React$1.ForwardRefExoticComponent<AvatarGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
298
651
|
|
|
299
652
|
/**
|
|
653
|
+
* ============================================================================
|
|
654
|
+
* ⏳ FOUNDATION · LEGACY · UNLOCKED_FOR_MIGRATION - Modal Component
|
|
655
|
+
* ============================================================================
|
|
656
|
+
*
|
|
657
|
+
* **STATUS:** ⏳ LEGACY UNLOCKED (Pending Canonical Migration)
|
|
658
|
+
* **UNLOCK DATE:** 2025-12-19
|
|
659
|
+
* **TASK:** TUNG_FOUNDATION_LEGACY_UNLOCK_01
|
|
660
|
+
*
|
|
661
|
+
* **UNLOCK RATIONALE:**
|
|
662
|
+
* Modal was declared as LOCKED but was implemented using legacy patterns and
|
|
663
|
+
* never passed the canonical Foundation Step Pipeline (0–13). The current lock
|
|
664
|
+
* is declarative only and blocks required migration.
|
|
665
|
+
*
|
|
666
|
+
* **MIGRATION PATH:**
|
|
667
|
+
* Modal will undergo canonical Foundation lock process (Steps 0–13) to ensure
|
|
668
|
+
* full compliance with all Authority Contracts and canonical lifecycle
|
|
669
|
+
* requirements, similar to Button/Link standards.
|
|
670
|
+
*
|
|
671
|
+
* **CONSTRAINTS DURING UNLOCK:**
|
|
672
|
+
* - ❌ No public API expansion
|
|
673
|
+
* - ❌ No new variants or sizes
|
|
674
|
+
* - ❌ No behavior changes outside canonicalization
|
|
675
|
+
* - ❌ No bypass of Authority Contracts
|
|
676
|
+
* - ✅ Refactor strictly via Foundation Step Pipeline
|
|
677
|
+
* - ✅ Canonical CVA, typing, and interaction refactor allowed
|
|
678
|
+
* - ✅ Authority Contract alignment allowed
|
|
679
|
+
*
|
|
680
|
+
* **EXIT CRITERIA:**
|
|
681
|
+
* - Component completes Steps 0–13
|
|
682
|
+
* - Foundation lock report exists
|
|
683
|
+
* - Public Type Surface is locked
|
|
684
|
+
* - Component re-marked as FOUNDATION · LOCKED
|
|
685
|
+
*
|
|
686
|
+
* **REFERENCE:**
|
|
687
|
+
* - docs/architecture/FOUNDATION_LOCK.md (Legacy Foundation Components section)
|
|
688
|
+
* - docs/workflows/foundation/COMPONENT_REFACTORING_PIPELINE.md
|
|
689
|
+
*
|
|
690
|
+
* ============================================================================
|
|
691
|
+
*
|
|
300
692
|
* Modal Component
|
|
301
693
|
*
|
|
302
694
|
* Radix-based modal component with token-driven styling.
|
|
@@ -304,6 +696,12 @@ type SelectState = SelectStateToken;
|
|
|
304
696
|
* Tenerife UI provides visual styling through tokens only.
|
|
305
697
|
*/
|
|
306
698
|
|
|
699
|
+
/**
|
|
700
|
+
* Modal size union type
|
|
701
|
+
* Explicit union type for Modal size prop (sm | md | lg)
|
|
702
|
+
* Per VARIANTS_SIZE_CANON: overlay components restricted to sm | md | lg only
|
|
703
|
+
*/
|
|
704
|
+
type ModalSize = "sm" | "md" | "lg";
|
|
307
705
|
interface ModalRootProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Root> {
|
|
308
706
|
}
|
|
309
707
|
/**
|
|
@@ -386,6 +784,20 @@ interface ModalContentProps extends Omit<React$1.ComponentPropsWithoutRef<typeof
|
|
|
386
784
|
* ```
|
|
387
785
|
*/
|
|
388
786
|
surface?: SurfaceToken;
|
|
787
|
+
/**
|
|
788
|
+
* Ref to the trigger element for focus restore on close
|
|
789
|
+
*
|
|
790
|
+
* When provided, Modal will deterministically restore focus to this element
|
|
791
|
+
* when the modal closes (via close button or Escape key).
|
|
792
|
+
*
|
|
793
|
+
* @example
|
|
794
|
+
* ```tsx
|
|
795
|
+
* const triggerRef = useRef<HTMLButtonElement>(null);
|
|
796
|
+
* <Button ref={triggerRef}>Open Modal</Button>
|
|
797
|
+
* <Modal.Content triggerRef={triggerRef}>...</Modal.Content>
|
|
798
|
+
* ```
|
|
799
|
+
*/
|
|
800
|
+
triggerRef?: React$1.RefObject<HTMLElement>;
|
|
389
801
|
}
|
|
390
802
|
/**
|
|
391
803
|
* Modal Content component
|
|
@@ -434,6 +846,12 @@ interface ModalDescriptionProps extends React$1.ComponentPropsWithoutRef<typeof
|
|
|
434
846
|
* Wrapper around Radix Dialog Description with token-based typography
|
|
435
847
|
*/
|
|
436
848
|
declare const ModalDescription: React$1.ForwardRefExoticComponent<ModalDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
849
|
+
interface ModalBodyProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
850
|
+
/**
|
|
851
|
+
* Body content
|
|
852
|
+
*/
|
|
853
|
+
children?: React$1.ReactNode;
|
|
854
|
+
}
|
|
437
855
|
interface ModalFooterProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
438
856
|
/**
|
|
439
857
|
* Gap between footer items - token-based
|
|
@@ -463,7 +881,7 @@ declare const ModalClose: React$1.ForwardRefExoticComponent<ModalCloseProps & Re
|
|
|
463
881
|
* Radix Dialog-based modal component with token-driven styling.
|
|
464
882
|
*
|
|
465
883
|
* **Usage:**
|
|
466
|
-
*
|
|
884
|
+
* @example
|
|
467
885
|
* <Modal.Root open={open} onOpenChange={setOpen}>
|
|
468
886
|
* <Modal.Trigger>Open</Modal.Trigger>
|
|
469
887
|
* <Modal.Content>
|
|
@@ -471,42 +889,372 @@ declare const ModalClose: React$1.ForwardRefExoticComponent<ModalCloseProps & Re
|
|
|
471
889
|
* <Modal.Title>Title</Modal.Title>
|
|
472
890
|
* <Modal.Description>Description</Modal.Description>
|
|
473
891
|
* </Modal.Header>
|
|
474
|
-
* <
|
|
892
|
+
* <Modal.Body>
|
|
893
|
+
* {/* Scrollable content *\/}
|
|
894
|
+
* </Modal.Body>
|
|
475
895
|
* <Modal.Footer>
|
|
476
896
|
* <Modal.Close>Close</Modal.Close>
|
|
477
897
|
* </Modal.Footer>
|
|
478
898
|
* <Modal.Close />
|
|
479
899
|
* </Modal.Content>
|
|
480
900
|
* </Modal.Root>
|
|
901
|
+
*
|
|
902
|
+
* **Note:** Modal.Portal and Modal.Overlay are internal and should not be used directly.
|
|
903
|
+
* ModalContent automatically handles portal and overlay rendering.
|
|
904
|
+
* Modal.Body is optional but recommended for scrollable content.
|
|
905
|
+
*/
|
|
906
|
+
declare const Modal: {
|
|
907
|
+
Root: React$1.FC<ModalRootProps>;
|
|
908
|
+
Trigger: React$1.ForwardRefExoticComponent<ModalTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
909
|
+
Overlay: React$1.ForwardRefExoticComponent<ModalOverlayProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
910
|
+
Content: React$1.ForwardRefExoticComponent<ModalContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
911
|
+
Header: React$1.ForwardRefExoticComponent<ModalHeaderProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
912
|
+
Title: React$1.ForwardRefExoticComponent<ModalTitleProps & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
913
|
+
Description: React$1.ForwardRefExoticComponent<ModalDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
914
|
+
Body: React$1.ForwardRefExoticComponent<ModalBodyProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
915
|
+
Footer: React$1.ForwardRefExoticComponent<ModalFooterProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
916
|
+
Close: React$1.ForwardRefExoticComponent<ModalCloseProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
917
|
+
};
|
|
918
|
+
|
|
919
|
+
/**
|
|
920
|
+
* FileUpload Types
|
|
921
|
+
*
|
|
922
|
+
* Type definitions for FileUpload component.
|
|
923
|
+
* All types follow TYPING_STANDARD (explicit union types, no CVA-derived types in public API).
|
|
924
|
+
*/
|
|
925
|
+
/**
|
|
926
|
+
* FileUpload Size Type
|
|
927
|
+
* Explicit union type for size variants
|
|
928
|
+
*/
|
|
929
|
+
type FileUploadSize = "sm" | "md" | "lg";
|
|
930
|
+
/**
|
|
931
|
+
* FileUpload Variant Type
|
|
932
|
+
* Explicit union type for visual variants
|
|
933
|
+
*/
|
|
934
|
+
type FileUploadVariant = "outline" | "filled";
|
|
935
|
+
/**
|
|
936
|
+
* FileUpload Error Type
|
|
937
|
+
* Error types for validation failures
|
|
938
|
+
*/
|
|
939
|
+
interface FileUploadError {
|
|
940
|
+
type: "file-too-large" | "file-type-not-supported" | "too-many-files" | "unknown";
|
|
941
|
+
message: string;
|
|
942
|
+
file?: File;
|
|
943
|
+
}
|
|
944
|
+
/**
|
|
945
|
+
* FileUpload Props
|
|
946
|
+
* Main component props interface
|
|
947
|
+
*
|
|
948
|
+
* Extension component: className/style allowed but excluded from type definition
|
|
949
|
+
* for consistency with FormData components pattern
|
|
950
|
+
*/
|
|
951
|
+
interface FileUploadProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange" | "defaultValue" | "onError"> {
|
|
952
|
+
/** Allow multiple file selection */
|
|
953
|
+
multiple?: boolean;
|
|
954
|
+
/** Accepted file types (e.g., "image/*", ".pdf,.doc") */
|
|
955
|
+
accept?: string;
|
|
956
|
+
/** Maximum file size in bytes */
|
|
957
|
+
maxSize?: number;
|
|
958
|
+
/** Maximum number of files (for multiple mode) */
|
|
959
|
+
maxFiles?: number;
|
|
960
|
+
/** Disabled state */
|
|
961
|
+
disabled?: boolean;
|
|
962
|
+
/** Loading state (upload in progress) */
|
|
963
|
+
loading?: boolean;
|
|
964
|
+
/** Controlled value (array of File objects) */
|
|
965
|
+
value?: File[];
|
|
966
|
+
/** Default value (uncontrolled mode) */
|
|
967
|
+
defaultValue?: File[];
|
|
968
|
+
/** Called when files are selected */
|
|
969
|
+
onFileSelect?: (files: File[]) => void;
|
|
970
|
+
/** Called when a file is removed */
|
|
971
|
+
onFileRemove?: (file: File) => void;
|
|
972
|
+
/** Called when validation error occurs */
|
|
973
|
+
onError?: (error: FileUploadError) => void;
|
|
974
|
+
/** Size variant */
|
|
975
|
+
size?: FileUploadSize;
|
|
976
|
+
/** Visual variant */
|
|
977
|
+
variant?: FileUploadVariant;
|
|
978
|
+
/** Accessible label for dropzone */
|
|
979
|
+
"aria-label"?: string;
|
|
980
|
+
/** ID of element describing the component */
|
|
981
|
+
"aria-describedby"?: string;
|
|
982
|
+
}
|
|
983
|
+
|
|
984
|
+
/**
|
|
985
|
+
* FileUpload Component
|
|
986
|
+
*
|
|
987
|
+
* Extension composite component for file upload with drag-and-drop,
|
|
988
|
+
* file preview, validation, and progress tracking.
|
|
989
|
+
*
|
|
990
|
+
* Features:
|
|
991
|
+
* - Drag-and-drop file selection
|
|
992
|
+
* - File preview with thumbnails (for images)
|
|
993
|
+
* - File validation (size, type, count)
|
|
994
|
+
* - Controlled and uncontrolled modes
|
|
995
|
+
* - Size variants (sm, md, lg)
|
|
996
|
+
* - Visual variants (outline, filled)
|
|
997
|
+
* - Error handling
|
|
998
|
+
* - ARIA compliance
|
|
999
|
+
* - Keyboard navigation
|
|
1000
|
+
*
|
|
1001
|
+
* @example Basic usage
|
|
1002
|
+
* ```tsx
|
|
1003
|
+
* <FileUpload onFileSelect={(files) => console.log(files)} />
|
|
481
1004
|
* ```
|
|
482
1005
|
*
|
|
483
|
-
*
|
|
484
|
-
*
|
|
1006
|
+
* @example Multiple files with validation
|
|
1007
|
+
* ```tsx
|
|
1008
|
+
* <FileUpload
|
|
1009
|
+
* multiple
|
|
1010
|
+
* maxSize={5 * 1024 * 1024} // 5MB
|
|
1011
|
+
* accept="image/*"
|
|
1012
|
+
* maxFiles={5}
|
|
1013
|
+
* onFileSelect={handleUpload}
|
|
1014
|
+
* onError={(error) => console.error(error)}
|
|
1015
|
+
* />
|
|
1016
|
+
* ```
|
|
1017
|
+
*
|
|
1018
|
+
* @example Controlled mode with loading state
|
|
1019
|
+
* ```tsx
|
|
1020
|
+
* <FileUpload
|
|
1021
|
+
* value={files}
|
|
1022
|
+
* loading={isUploading}
|
|
1023
|
+
* onFileSelect={setFiles}
|
|
1024
|
+
* onFileRemove={handleRemove}
|
|
1025
|
+
* />
|
|
1026
|
+
* ```
|
|
1027
|
+
*/
|
|
1028
|
+
|
|
1029
|
+
/**
|
|
1030
|
+
* FileUpload component
|
|
1031
|
+
*
|
|
1032
|
+
* COMPLIANCE NOTES:
|
|
1033
|
+
* - ✅ Uses token system exclusively (no raw values)
|
|
1034
|
+
* - ✅ Composes Foundation components (Button, Text)
|
|
1035
|
+
* - ✅ Follows Extension Authority Contract
|
|
1036
|
+
* - ✅ Uses descriptive, intent-based naming
|
|
1037
|
+
* - ✅ Does NOT duplicate Foundation functionality
|
|
1038
|
+
* - ✅ Motion compliance: uses .tm-motion-fade-in for file appearance
|
|
1039
|
+
* - ✅ A11Y compliance: aria-label, aria-describedby, aria-busy, aria-invalid
|
|
1040
|
+
* - ✅ Focus compliance: keyboard navigation, focus-visible styles
|
|
1041
|
+
*/
|
|
1042
|
+
declare const FileUpload: React$1.ForwardRefExoticComponent<FileUploadProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1043
|
+
|
|
1044
|
+
type RangeSliderSize = "sm" | "md" | "lg";
|
|
1045
|
+
type RangeSliderVariant = "primary" | "secondary" | "outline";
|
|
1046
|
+
type RangeSliderOrientation = "horizontal" | "vertical";
|
|
1047
|
+
interface RangeSliderMark {
|
|
1048
|
+
/**
|
|
1049
|
+
* Value at which the mark should be placed
|
|
1050
|
+
*/
|
|
1051
|
+
value: number;
|
|
1052
|
+
/**
|
|
1053
|
+
* Optional label to display at the mark
|
|
1054
|
+
*/
|
|
1055
|
+
label?: string | React$1.ReactNode;
|
|
1056
|
+
}
|
|
1057
|
+
interface RangeSliderProps {
|
|
1058
|
+
/**
|
|
1059
|
+
* Current value of the range slider (controlled)
|
|
1060
|
+
* Tuple of [min, max]
|
|
1061
|
+
*/
|
|
1062
|
+
value?: [number, number];
|
|
1063
|
+
/**
|
|
1064
|
+
* Default value of the range slider (uncontrolled)
|
|
1065
|
+
* Tuple of [min, max]
|
|
1066
|
+
* @default [25, 75]
|
|
1067
|
+
*/
|
|
1068
|
+
defaultValue?: [number, number];
|
|
1069
|
+
/**
|
|
1070
|
+
* Callback fired when the value changes
|
|
1071
|
+
*/
|
|
1072
|
+
onValueChange?: (value: [number, number]) => void;
|
|
1073
|
+
/**
|
|
1074
|
+
* Minimum value
|
|
1075
|
+
* @default 0
|
|
1076
|
+
*/
|
|
1077
|
+
min?: number;
|
|
1078
|
+
/**
|
|
1079
|
+
* Maximum value
|
|
1080
|
+
* @default 100
|
|
1081
|
+
*/
|
|
1082
|
+
max?: number;
|
|
1083
|
+
/**
|
|
1084
|
+
* Step increment
|
|
1085
|
+
* @default 1
|
|
1086
|
+
*/
|
|
1087
|
+
step?: number;
|
|
1088
|
+
/**
|
|
1089
|
+
* Visual size variant
|
|
1090
|
+
* @default "md"
|
|
1091
|
+
*/
|
|
1092
|
+
size?: RangeSliderSize;
|
|
1093
|
+
/**
|
|
1094
|
+
* Visual style variant
|
|
1095
|
+
* @default "primary"
|
|
1096
|
+
*/
|
|
1097
|
+
variant?: RangeSliderVariant;
|
|
1098
|
+
/**
|
|
1099
|
+
* Whether the range slider is disabled
|
|
1100
|
+
* @default false
|
|
1101
|
+
*/
|
|
1102
|
+
disabled?: boolean;
|
|
1103
|
+
/**
|
|
1104
|
+
* Orientation of the range slider
|
|
1105
|
+
* @default "horizontal"
|
|
1106
|
+
*/
|
|
1107
|
+
orientation?: RangeSliderOrientation;
|
|
1108
|
+
/**
|
|
1109
|
+
* Marks to display on the range slider
|
|
1110
|
+
* Can be an array of mark objects or just an array of values
|
|
1111
|
+
*/
|
|
1112
|
+
marks?: RangeSliderMark[] | number[];
|
|
1113
|
+
/**
|
|
1114
|
+
* Whether to show labels for marks
|
|
1115
|
+
* @default false
|
|
1116
|
+
*/
|
|
1117
|
+
showMarkLabels?: boolean;
|
|
1118
|
+
/**
|
|
1119
|
+
* Accessible label for the range slider
|
|
1120
|
+
*/
|
|
1121
|
+
"aria-label"?: string;
|
|
1122
|
+
/**
|
|
1123
|
+
* Name attribute for form submission
|
|
1124
|
+
*/
|
|
1125
|
+
name?: string;
|
|
1126
|
+
}
|
|
1127
|
+
/**
|
|
1128
|
+
* RangeSlider component
|
|
1129
|
+
*
|
|
1130
|
+
* COMPLIANCE NOTES:
|
|
1131
|
+
* - ✅ Uses token system exclusively (no raw values)
|
|
1132
|
+
* - ✅ Uses Radix UI Slider primitive with minStepsBetweenThumbs
|
|
1133
|
+
* - ✅ Follows Extension Authority Contract
|
|
1134
|
+
* - ✅ Interactive Size Scale Authority (sm/md/lg)
|
|
1135
|
+
* - ✅ InteractiveVariant subset (primary/secondary/outline)
|
|
1136
|
+
* - ✅ CVA pattern for variants and sizes
|
|
1137
|
+
*/
|
|
1138
|
+
declare const RangeSlider: React$1.ForwardRefExoticComponent<RangeSliderProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
1139
|
+
|
|
1140
|
+
type SliderSize = "sm" | "md" | "lg";
|
|
1141
|
+
type SliderVariant = "primary" | "secondary" | "outline";
|
|
1142
|
+
type SliderOrientation = "horizontal" | "vertical";
|
|
1143
|
+
interface SliderMark {
|
|
1144
|
+
/**
|
|
1145
|
+
* Value at which the mark should be placed
|
|
1146
|
+
*/
|
|
1147
|
+
value: number;
|
|
1148
|
+
/**
|
|
1149
|
+
* Optional label to display at the mark
|
|
1150
|
+
*/
|
|
1151
|
+
label?: string | React$1.ReactNode;
|
|
1152
|
+
}
|
|
1153
|
+
interface SliderProps {
|
|
1154
|
+
/**
|
|
1155
|
+
* Current value of the slider (controlled)
|
|
1156
|
+
*/
|
|
1157
|
+
value?: number;
|
|
1158
|
+
/**
|
|
1159
|
+
* Default value of the slider (uncontrolled)
|
|
1160
|
+
* @default 50
|
|
1161
|
+
*/
|
|
1162
|
+
defaultValue?: number;
|
|
1163
|
+
/**
|
|
1164
|
+
* Callback fired when the value changes
|
|
1165
|
+
*/
|
|
1166
|
+
onValueChange?: (value: number) => void;
|
|
1167
|
+
/**
|
|
1168
|
+
* Minimum value
|
|
1169
|
+
* @default 0
|
|
1170
|
+
*/
|
|
1171
|
+
min?: number;
|
|
1172
|
+
/**
|
|
1173
|
+
* Maximum value
|
|
1174
|
+
* @default 100
|
|
1175
|
+
*/
|
|
1176
|
+
max?: number;
|
|
1177
|
+
/**
|
|
1178
|
+
* Step increment
|
|
1179
|
+
* @default 1
|
|
1180
|
+
*/
|
|
1181
|
+
step?: number;
|
|
1182
|
+
/**
|
|
1183
|
+
* Visual size variant
|
|
1184
|
+
* @default "md"
|
|
1185
|
+
*/
|
|
1186
|
+
size?: SliderSize;
|
|
1187
|
+
/**
|
|
1188
|
+
* Visual style variant
|
|
1189
|
+
* @default "primary"
|
|
1190
|
+
*/
|
|
1191
|
+
variant?: SliderVariant;
|
|
1192
|
+
/**
|
|
1193
|
+
* Whether the slider is disabled
|
|
1194
|
+
* @default false
|
|
1195
|
+
*/
|
|
1196
|
+
disabled?: boolean;
|
|
1197
|
+
/**
|
|
1198
|
+
* Orientation of the slider
|
|
1199
|
+
* @default "horizontal"
|
|
1200
|
+
*/
|
|
1201
|
+
orientation?: SliderOrientation;
|
|
1202
|
+
/**
|
|
1203
|
+
* Marks to display on the slider
|
|
1204
|
+
* Can be an array of mark objects or just an array of values
|
|
1205
|
+
*/
|
|
1206
|
+
marks?: SliderMark[] | number[];
|
|
1207
|
+
/**
|
|
1208
|
+
* Whether to show labels for marks
|
|
1209
|
+
* @default false
|
|
1210
|
+
*/
|
|
1211
|
+
showMarkLabels?: boolean;
|
|
1212
|
+
/**
|
|
1213
|
+
* Accessible label for the slider
|
|
1214
|
+
*/
|
|
1215
|
+
"aria-label"?: string;
|
|
1216
|
+
/**
|
|
1217
|
+
* Name attribute for form submission
|
|
1218
|
+
*/
|
|
1219
|
+
name?: string;
|
|
1220
|
+
}
|
|
1221
|
+
/**
|
|
1222
|
+
* Slider component
|
|
1223
|
+
*
|
|
1224
|
+
* COMPLIANCE NOTES:
|
|
1225
|
+
* - ✅ Uses token system exclusively (SLIDER_TOKENS, no raw values)
|
|
1226
|
+
* - ✅ Uses Radix UI Slider primitive
|
|
1227
|
+
* - ✅ Follows Extension Authority Contract
|
|
1228
|
+
* - ✅ Interactive Size Scale Authority (sm/md/lg)
|
|
1229
|
+
* - ✅ InteractiveVariant subset (primary/secondary/outline)
|
|
1230
|
+
* - ✅ tokenCVA pattern for variants and sizes (Decision Matrix RULE 1 compliance)
|
|
485
1231
|
*/
|
|
486
|
-
declare const
|
|
487
|
-
Root: React$1.FC<ModalRootProps>;
|
|
488
|
-
Trigger: React$1.ForwardRefExoticComponent<ModalTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
489
|
-
Overlay: React$1.ForwardRefExoticComponent<ModalOverlayProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
490
|
-
Content: React$1.ForwardRefExoticComponent<ModalContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
491
|
-
Header: React$1.ForwardRefExoticComponent<ModalHeaderProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
492
|
-
Title: React$1.ForwardRefExoticComponent<ModalTitleProps & React$1.RefAttributes<HTMLHeadingElement>>;
|
|
493
|
-
Description: React$1.ForwardRefExoticComponent<ModalDescriptionProps & React$1.RefAttributes<HTMLParagraphElement>>;
|
|
494
|
-
Footer: React$1.ForwardRefExoticComponent<ModalFooterProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
495
|
-
Close: React$1.ForwardRefExoticComponent<ModalCloseProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
496
|
-
};
|
|
1232
|
+
declare const Slider: React$1.ForwardRefExoticComponent<SliderProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
497
1233
|
|
|
1234
|
+
/**
|
|
1235
|
+
* Checkbox Variant Types
|
|
1236
|
+
*
|
|
1237
|
+
* Explicit union types for Checkbox component.
|
|
1238
|
+
* Canonical size scale for interactive components: sm | md | lg
|
|
1239
|
+
*/
|
|
1240
|
+
type CheckboxVariant = "primary" | "secondary" | "outline" | "ghost" | "destructive";
|
|
1241
|
+
type CheckboxSize = "sm" | "md" | "lg";
|
|
1242
|
+
type CheckboxState = "default" | "checked" | "indeterminate" | "error" | "disabled" | "disabledChecked";
|
|
498
1243
|
/**
|
|
499
1244
|
* Checkbox Variants
|
|
500
1245
|
*
|
|
501
|
-
*
|
|
1246
|
+
* tokenCVA-based variant system for Checkbox component (token-driven axes).
|
|
502
1247
|
* Supports variants (primary, secondary, outline, ghost, destructive),
|
|
503
|
-
* sizes (
|
|
1248
|
+
* sizes (sm, md, lg - canonical interactive scale), and states (default, checked, disabled, error, indeterminate).
|
|
504
1249
|
* All styling uses token-based values with CSS variable references.
|
|
1250
|
+
*
|
|
1251
|
+
* NOTE: Size scale restricted to sm|md|lg per canonical interactive size scale (FOUNDATION_LOCK.md).
|
|
1252
|
+
* xs and xl sizes removed to comply with Button-defined canonical scale.
|
|
505
1253
|
*/
|
|
506
1254
|
declare const checkboxVariants: (props?: ({
|
|
507
1255
|
variant?: "primary" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
508
|
-
size?: "sm" | "md" | "lg" |
|
|
509
|
-
state?: "default" | "disabled" | "error" | "checked" | "indeterminate" | null | undefined;
|
|
1256
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
1257
|
+
state?: "default" | "disabled" | "error" | "checked" | "indeterminate" | "disabledChecked" | null | undefined;
|
|
510
1258
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
511
1259
|
|
|
512
1260
|
/**
|
|
@@ -514,23 +1262,26 @@ declare const checkboxVariants: (props?: ({
|
|
|
514
1262
|
*
|
|
515
1263
|
* Extends native button HTML attributes with variant props, checked state, and accessibility props.
|
|
516
1264
|
* Uses button role="checkbox" pattern for full keyboard accessibility.
|
|
1265
|
+
*
|
|
1266
|
+
* NOTE: Size scale restricted to sm|md|lg per canonical interactive size scale.
|
|
1267
|
+
* VariantProps removed — public API uses explicit union types only.
|
|
517
1268
|
*/
|
|
518
|
-
interface CheckboxProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, "size" | "onChange" | "className" | "style"
|
|
1269
|
+
interface CheckboxProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, "size" | "onChange" | "className" | "style"> {
|
|
519
1270
|
/**
|
|
520
1271
|
* Checkbox variant style
|
|
521
1272
|
* @default "outline"
|
|
522
1273
|
*/
|
|
523
|
-
variant?:
|
|
1274
|
+
variant?: CheckboxVariant;
|
|
524
1275
|
/**
|
|
525
|
-
* Checkbox size
|
|
1276
|
+
* Checkbox size (canonical interactive scale: sm | md | lg)
|
|
526
1277
|
* @default "md"
|
|
527
1278
|
*/
|
|
528
|
-
size?:
|
|
1279
|
+
size?: CheckboxSize;
|
|
529
1280
|
/**
|
|
530
1281
|
* Checkbox state
|
|
531
1282
|
* @default "default"
|
|
532
1283
|
*/
|
|
533
|
-
state?:
|
|
1284
|
+
state?: CheckboxState;
|
|
534
1285
|
/**
|
|
535
1286
|
* Whether checkbox is checked (controlled)
|
|
536
1287
|
*/
|
|
@@ -595,8 +1346,7 @@ interface CheckboxProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElem
|
|
|
595
1346
|
*/
|
|
596
1347
|
declare const Checkbox: React$1.ForwardRefExoticComponent<CheckboxProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
597
1348
|
|
|
598
|
-
|
|
599
|
-
interface LabelProps extends Omit<React$1.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>, "className" | "style">, VariantProps<typeof labelVariants> {
|
|
1349
|
+
interface LabelProps extends Omit<React$1.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>, "className" | "style"> {
|
|
600
1350
|
/**
|
|
601
1351
|
* Whether the field is required (shows asterisk)
|
|
602
1352
|
*/
|
|
@@ -606,35 +1356,83 @@ declare const Label: React$1.ForwardRefExoticComponent<LabelProps & React$1.RefA
|
|
|
606
1356
|
|
|
607
1357
|
/**
|
|
608
1358
|
* Field Container Component
|
|
609
|
-
*
|
|
1359
|
+
*
|
|
1360
|
+
* Provides vertical layout structure for form field elements with consistent spacing.
|
|
1361
|
+
* Composes Label, Control wrapper, Description, and Error into a Stack layout.
|
|
1362
|
+
*
|
|
1363
|
+
* @example
|
|
1364
|
+
* ```tsx
|
|
1365
|
+
* <Field>
|
|
1366
|
+
* <Field.Label htmlFor="email">Email</Field.Label>
|
|
1367
|
+
* <Field.Control>
|
|
1368
|
+
* <Input id="email" type="email" />
|
|
1369
|
+
* </Field.Control>
|
|
1370
|
+
* <Field.Description>We'll never share your email.</Field.Description>
|
|
1371
|
+
* </Field>
|
|
1372
|
+
* ```
|
|
610
1373
|
*/
|
|
611
1374
|
interface FieldProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
612
1375
|
}
|
|
613
1376
|
declare const Field: React$1.ForwardRefExoticComponent<FieldProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
614
1377
|
/**
|
|
615
1378
|
* Field Label Component
|
|
616
|
-
*
|
|
1379
|
+
*
|
|
1380
|
+
* Wraps the Foundation Label component for form field labels.
|
|
1381
|
+
* Delegates all behavior and styling to Label (Foundation component).
|
|
1382
|
+
*
|
|
1383
|
+
* @example
|
|
1384
|
+
* ```tsx
|
|
1385
|
+
* <Field.Label htmlFor="email">Email Address</Field.Label>
|
|
1386
|
+
* ```
|
|
617
1387
|
*/
|
|
618
1388
|
interface FieldLabelProps extends React$1.ComponentProps<typeof Label> {
|
|
619
1389
|
}
|
|
620
1390
|
declare const FieldLabel: React$1.ForwardRefExoticComponent<Omit<FieldLabelProps, "ref"> & React$1.RefAttributes<HTMLLabelElement>>;
|
|
621
1391
|
/**
|
|
622
1392
|
* Field Control Component
|
|
623
|
-
*
|
|
1393
|
+
*
|
|
1394
|
+
* Wrapper for form control elements (Input, Textarea, Select, etc.).
|
|
1395
|
+
* Provides ref forwarding and className merging for control elements.
|
|
1396
|
+
*
|
|
1397
|
+
* @example
|
|
1398
|
+
* ```tsx
|
|
1399
|
+
* <Field.Control>
|
|
1400
|
+
* <Input id="email" type="email" />
|
|
1401
|
+
* </Field.Control>
|
|
1402
|
+
* ```
|
|
624
1403
|
*/
|
|
625
1404
|
interface FieldControlProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
626
1405
|
}
|
|
627
1406
|
declare const FieldControl: React$1.ForwardRefExoticComponent<FieldControlProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
628
1407
|
/**
|
|
629
1408
|
* Field Description Component
|
|
630
|
-
*
|
|
1409
|
+
*
|
|
1410
|
+
* Helper text displayed below the control to provide additional context.
|
|
1411
|
+
* Uses Text component with size="sm" and muted styling by default.
|
|
1412
|
+
*
|
|
1413
|
+
* @example
|
|
1414
|
+
* ```tsx
|
|
1415
|
+
* <Field.Description>We'll never share your email with anyone else.</Field.Description>
|
|
1416
|
+
* ```
|
|
631
1417
|
*/
|
|
632
1418
|
interface FieldDescriptionProps extends React$1.ComponentProps<typeof Text> {
|
|
633
1419
|
}
|
|
634
1420
|
declare const FieldDescription: React$1.ForwardRefExoticComponent<Omit<FieldDescriptionProps, "ref"> & React$1.RefAttributes<HTMLSpanElement>>;
|
|
635
1421
|
/**
|
|
636
1422
|
* Field Error Component
|
|
637
|
-
*
|
|
1423
|
+
*
|
|
1424
|
+
* Error message displayed below the control for validation feedback.
|
|
1425
|
+
* Uses Text component with size="sm" wrapped in destructive color span.
|
|
1426
|
+
*
|
|
1427
|
+
* Note: Wrapper span with className="text-destructive" is used to apply
|
|
1428
|
+
* destructive color without modifying Text component (Foundation component).
|
|
1429
|
+
* This pattern allows Field (Composition component) to use className while
|
|
1430
|
+
* respecting Foundation Enforcement rules for Text.
|
|
1431
|
+
*
|
|
1432
|
+
* @example
|
|
1433
|
+
* ```tsx
|
|
1434
|
+
* <Field.Error>Email is required</Field.Error>
|
|
1435
|
+
* ```
|
|
638
1436
|
*/
|
|
639
1437
|
interface FieldErrorProps extends React$1.ComponentProps<typeof Text> {
|
|
640
1438
|
}
|
|
@@ -647,121 +1445,103 @@ declare const FieldRoot: typeof Field & {
|
|
|
647
1445
|
};
|
|
648
1446
|
|
|
649
1447
|
/**
|
|
650
|
-
* Input
|
|
651
|
-
*
|
|
652
|
-
* CVA-based variant system for Input component.
|
|
653
|
-
* Supports variants (primary, secondary, outline, ghost, destructive),
|
|
654
|
-
* sizes (xs, sm, md, lg, xl), and states (default, disabled, error, success).
|
|
655
|
-
* All styling uses token-based values with CSS variable references.
|
|
656
|
-
*/
|
|
657
|
-
declare const inputVariants: (props?: ({
|
|
658
|
-
variant?: "primary" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
659
|
-
size?: "sm" | "md" | "lg" | "xl" | "xs" | null | undefined;
|
|
660
|
-
state?: "default" | "disabled" | "success" | "error" | null | undefined;
|
|
661
|
-
fullWidth?: boolean | null | undefined;
|
|
662
|
-
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
663
|
-
|
|
664
|
-
/**
|
|
665
|
-
* Input variant type derived from INPUT_TOKENS
|
|
1448
|
+
* Input size type
|
|
666
1449
|
*
|
|
667
|
-
* Available
|
|
1450
|
+
* Available sizes: "sm" | "md" | "lg"
|
|
668
1451
|
*
|
|
669
1452
|
* @example
|
|
670
1453
|
* ```tsx
|
|
671
|
-
* const
|
|
1454
|
+
* const size: InputSize = "md";
|
|
672
1455
|
* ```
|
|
673
1456
|
*/
|
|
674
|
-
type
|
|
675
|
-
|
|
1457
|
+
type InputSize = "sm" | "md" | "lg";
|
|
676
1458
|
/**
|
|
677
1459
|
* Input Component Props
|
|
678
1460
|
*
|
|
679
|
-
*
|
|
1461
|
+
* Minimal native-aligned interface for low-level form control primitive.
|
|
1462
|
+
* Extends native input HTML attributes with size and invalid props.
|
|
680
1463
|
*/
|
|
681
|
-
interface InputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, "size" | "
|
|
1464
|
+
interface InputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, "size" | "color" | "className" | "style"> {
|
|
682
1465
|
/**
|
|
683
|
-
* Input
|
|
684
|
-
*
|
|
685
|
-
* Supports responsive values:
|
|
686
|
-
* - Single value: `variant="outline"`
|
|
687
|
-
* - Responsive object: `variant={{ base: "outline", md: "primary" }}`
|
|
1466
|
+
* Input size
|
|
688
1467
|
*
|
|
689
|
-
* @default "
|
|
1468
|
+
* @default "md"
|
|
690
1469
|
*
|
|
691
1470
|
* @example
|
|
692
1471
|
* ```tsx
|
|
693
|
-
*
|
|
694
|
-
* <Input variant="outline" />
|
|
695
|
-
*
|
|
696
|
-
* // Responsive
|
|
697
|
-
* <Input variant={{ base: "outline", md: "primary" }} />
|
|
1472
|
+
* <Input size="md" />
|
|
698
1473
|
* ```
|
|
699
1474
|
*/
|
|
700
|
-
|
|
1475
|
+
size?: InputSize;
|
|
701
1476
|
/**
|
|
702
|
-
*
|
|
1477
|
+
* Whether the input is in an invalid state
|
|
703
1478
|
*
|
|
704
|
-
*
|
|
705
|
-
* - Single value: `size="md"`
|
|
706
|
-
* - Responsive object: `size={{ base: "sm", md: "lg" }}`
|
|
707
|
-
*
|
|
708
|
-
* @default "md"
|
|
1479
|
+
* Maps to aria-invalid attribute for accessibility.
|
|
709
1480
|
*
|
|
710
1481
|
* @example
|
|
711
1482
|
* ```tsx
|
|
712
|
-
*
|
|
713
|
-
* <Input size="md" />
|
|
714
|
-
*
|
|
715
|
-
* // Responsive
|
|
716
|
-
* <Input size={{ base: "sm", md: "lg" }} />
|
|
1483
|
+
* <Input invalid />
|
|
717
1484
|
* ```
|
|
718
1485
|
*/
|
|
719
|
-
|
|
720
|
-
/**
|
|
721
|
-
* Input state
|
|
722
|
-
* @default "default"
|
|
723
|
-
*/
|
|
724
|
-
state?: "default" | "disabled" | "error" | "success";
|
|
725
|
-
/**
|
|
726
|
-
* Whether input should take full width
|
|
727
|
-
* @default true
|
|
728
|
-
*/
|
|
729
|
-
fullWidth?: boolean;
|
|
730
|
-
/**
|
|
731
|
-
* Icon to display on the left side of the input
|
|
732
|
-
*/
|
|
733
|
-
iconLeft?: React$1.ReactNode;
|
|
734
|
-
/**
|
|
735
|
-
* Icon to display on the right side of the input
|
|
736
|
-
*/
|
|
737
|
-
iconRight?: React$1.ReactNode;
|
|
1486
|
+
invalid?: boolean;
|
|
738
1487
|
}
|
|
739
1488
|
|
|
740
1489
|
/**
|
|
741
1490
|
* Input Component
|
|
742
1491
|
*
|
|
743
|
-
*
|
|
744
|
-
*
|
|
1492
|
+
* @semantic_role FOUNDATION_PRIMITIVE_TEXT_INPUT
|
|
1493
|
+
* @semantic_definition Input is a low-level form control primitive that wraps the native <input> element.
|
|
1494
|
+
* It is responsible only for visual styling via tokens, accessibility via native and ARIA attributes,
|
|
1495
|
+
* and forwarding all native input behavior. Input does not handle labels, errors, validation,
|
|
1496
|
+
* helper text, or form logic. Higher-level composition is delegated to FormField or domain-level form abstractions.
|
|
1497
|
+
*
|
|
1498
|
+
* @status FOUNDATION LOCK (Target - 2025-12-26)
|
|
1499
|
+
* @rule DO NOT modify, extend, or create alternatives (after Foundation Lock)
|
|
1500
|
+
*/
|
|
1501
|
+
|
|
1502
|
+
/**
|
|
1503
|
+
* Input Component
|
|
1504
|
+
*
|
|
1505
|
+
* A minimal, low-level form control primitive that wraps the native <input> element.
|
|
1506
|
+
* Supports size variants and invalid state for accessibility.
|
|
745
1507
|
*
|
|
746
1508
|
* @example
|
|
747
1509
|
* ```tsx
|
|
748
|
-
* <Input
|
|
749
|
-
*
|
|
750
|
-
* size="md"
|
|
751
|
-
* placeholder="Enter text..."
|
|
752
|
-
* iconLeft={<Icon name="search" />}
|
|
753
|
-
* />
|
|
1510
|
+
* <Input size="md" placeholder="Enter text..." />
|
|
1511
|
+
* <Input invalid aria-describedby="error-id" />
|
|
754
1512
|
* ```
|
|
755
1513
|
*/
|
|
756
1514
|
declare const Input: React$1.ForwardRefExoticComponent<InputProps & React$1.RefAttributes<HTMLInputElement>>;
|
|
757
1515
|
|
|
1516
|
+
/**
|
|
1517
|
+
* Input Variants
|
|
1518
|
+
*
|
|
1519
|
+
* Token-driven CVA system for Input component (size-only variant system).
|
|
1520
|
+
* All styling uses token-based values with CSS variable references.
|
|
1521
|
+
*
|
|
1522
|
+
* Invalid state styling is handled via CSS [aria-invalid="true"] selector (see base classes).
|
|
1523
|
+
*/
|
|
1524
|
+
declare const inputVariants: (props?: ({
|
|
1525
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
1526
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1527
|
+
|
|
1528
|
+
/**
|
|
1529
|
+
* Explicit union types for Radio component
|
|
1530
|
+
* Required for CVA type constraints (satisfies Record<Type, string>)
|
|
1531
|
+
*/
|
|
1532
|
+
type RadioVariant = "primary" | "secondary" | "outline" | "ghost" | "destructive";
|
|
1533
|
+
type RadioSize = "xs" | "sm" | "md" | "lg" | "xl";
|
|
1534
|
+
type RadioState = "default" | "checked" | "disabled" | "error";
|
|
758
1535
|
/**
|
|
759
1536
|
* Radio Variants
|
|
760
1537
|
*
|
|
761
|
-
*
|
|
1538
|
+
* tokenCVA-based variant system for Radio component.
|
|
762
1539
|
* Supports variants (primary, secondary, outline, ghost, destructive),
|
|
763
1540
|
* sizes (xs, sm, md, lg, xl), and states (default, checked, disabled, error).
|
|
764
1541
|
* All styling uses token-based values with CSS variable references.
|
|
1542
|
+
*
|
|
1543
|
+
* Uses tokenCVA (not cva) because component has token-driven axes (variant, size, state).
|
|
1544
|
+
* Per CVA Usage Decision Matrix RULE 1: tokenCVA is REQUIRED for token-driven axes.
|
|
765
1545
|
*/
|
|
766
1546
|
declare const radioVariants: (props?: ({
|
|
767
1547
|
variant?: "primary" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
@@ -769,28 +1549,49 @@ declare const radioVariants: (props?: ({
|
|
|
769
1549
|
state?: "default" | "disabled" | "error" | "checked" | null | undefined;
|
|
770
1550
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
771
1551
|
|
|
1552
|
+
/**
|
|
1553
|
+
* Radio component
|
|
1554
|
+
*/
|
|
1555
|
+
declare const Radio: React$1.ForwardRefExoticComponent<Omit<Omit<React$1.DetailedHTMLProps<React$1.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "className" | "size" | "style" | "onChange"> & class_variance_authority.VariantProps<(props?: ({
|
|
1556
|
+
variant?: "primary" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
|
|
1557
|
+
size?: "sm" | "md" | "lg" | "xl" | "xs" | null | undefined;
|
|
1558
|
+
state?: "default" | "disabled" | "error" | "checked" | null | undefined;
|
|
1559
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string> & {
|
|
1560
|
+
variant?: RadioVariant;
|
|
1561
|
+
size?: RadioSize;
|
|
1562
|
+
state?: RadioState;
|
|
1563
|
+
checked?: boolean;
|
|
1564
|
+
disabled?: boolean;
|
|
1565
|
+
value?: string;
|
|
1566
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
1567
|
+
icon?: React$1.ReactNode;
|
|
1568
|
+
"aria-label"?: string;
|
|
1569
|
+
"aria-labelledby"?: string;
|
|
1570
|
+
"aria-describedby"?: string;
|
|
1571
|
+
} & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1572
|
+
|
|
772
1573
|
/**
|
|
773
1574
|
* Radio Component Props
|
|
774
1575
|
*
|
|
775
1576
|
* Extends native button HTML attributes with variant props, checked state, and accessibility props.
|
|
776
1577
|
* Uses button role="radio" pattern for full keyboard accessibility.
|
|
777
1578
|
*/
|
|
778
|
-
|
|
1579
|
+
type RadioProps = Omit<React$1.ComponentPropsWithoutRef<"button">, "size" | "onChange" | "className" | "style"> & VariantProps<typeof radioVariants> & {
|
|
779
1580
|
/**
|
|
780
1581
|
* Radio variant style
|
|
781
1582
|
* @default "outline"
|
|
782
1583
|
*/
|
|
783
|
-
variant?:
|
|
1584
|
+
variant?: RadioVariant;
|
|
784
1585
|
/**
|
|
785
1586
|
* Radio size
|
|
786
1587
|
* @default "md"
|
|
787
1588
|
*/
|
|
788
|
-
size?:
|
|
1589
|
+
size?: RadioSize;
|
|
789
1590
|
/**
|
|
790
1591
|
* Radio state
|
|
791
1592
|
* @default "default"
|
|
792
1593
|
*/
|
|
793
|
-
state?:
|
|
1594
|
+
state?: RadioState;
|
|
794
1595
|
/**
|
|
795
1596
|
* Whether radio is checked (controlled)
|
|
796
1597
|
*/
|
|
@@ -828,29 +1629,7 @@ interface RadioProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement
|
|
|
828
1629
|
* Points to the ID of the element that describes this radio
|
|
829
1630
|
*/
|
|
830
1631
|
"aria-describedby"?: string;
|
|
831
|
-
}
|
|
832
|
-
|
|
833
|
-
/**
|
|
834
|
-
* Radio Component
|
|
835
|
-
*
|
|
836
|
-
* A fully accessible, theme-aware radio button component with variant support,
|
|
837
|
-
* keyboard navigation, and comprehensive state management.
|
|
838
|
-
* Uses button role="radio" pattern for full accessibility.
|
|
839
|
-
* Can be used standalone or within RadioGroup for group behavior.
|
|
840
|
-
*
|
|
841
|
-
* @example
|
|
842
|
-
* ```tsx
|
|
843
|
-
* <RadioGroup value={value} onValueChange={setValue}>
|
|
844
|
-
* <Radio value="option1" aria-label="Option 1" />
|
|
845
|
-
* <Radio value="option2" aria-label="Option 2" />
|
|
846
|
-
* </RadioGroup>
|
|
847
|
-
* ```
|
|
848
|
-
*/
|
|
849
|
-
|
|
850
|
-
/**
|
|
851
|
-
* Radio component
|
|
852
|
-
*/
|
|
853
|
-
declare const Radio: React$1.ForwardRefExoticComponent<RadioProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
1632
|
+
};
|
|
854
1633
|
|
|
855
1634
|
/**
|
|
856
1635
|
* RadioGroup Component Props
|
|
@@ -899,82 +1678,98 @@ interface RadioGroupProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
899
1678
|
*/
|
|
900
1679
|
declare const RadioGroup: React$1.ForwardRefExoticComponent<RadioGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
901
1680
|
|
|
1681
|
+
/**
|
|
1682
|
+
* Textarea size type
|
|
1683
|
+
* Limited to sm, md, lg sizes for strict primitive model
|
|
1684
|
+
*/
|
|
1685
|
+
type TextareaSize = "sm" | "md" | "lg";
|
|
902
1686
|
/**
|
|
903
1687
|
* Textarea Variants
|
|
904
1688
|
*
|
|
905
|
-
*
|
|
906
|
-
*
|
|
907
|
-
*
|
|
1689
|
+
* @enforcement Token-driven CVA system using tokenCVA
|
|
1690
|
+
* @rule ALL visual properties MUST use token-based utilities
|
|
1691
|
+
* @rule NO raw Tailwind color/spacing classes allowed
|
|
1692
|
+
*
|
|
1693
|
+
* Strict low-level primitive variant system for Textarea component.
|
|
1694
|
+
* Supports only size variants (sm, md, lg) and default styling.
|
|
908
1695
|
* All styling uses token-based values with CSS variable references.
|
|
1696
|
+
*
|
|
1697
|
+
* State styling (invalid, disabled) is handled via aria-invalid and disabled attributes,
|
|
1698
|
+
* not as CVA variant axis (per STATE_AUTHORITY).
|
|
909
1699
|
*/
|
|
910
1700
|
declare const textareaVariants: (props?: ({
|
|
911
|
-
|
|
912
|
-
size?: "sm" | "md" | "lg" | "xl" | "xs" | null | undefined;
|
|
913
|
-
state?: "default" | "disabled" | "success" | "error" | null | undefined;
|
|
914
|
-
fullWidth?: boolean | null | undefined;
|
|
1701
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
915
1702
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
916
1703
|
|
|
917
1704
|
/**
|
|
918
1705
|
* Textarea Component Props
|
|
919
1706
|
*
|
|
920
|
-
*
|
|
1707
|
+
* Strict low-level multiline form control primitive.
|
|
1708
|
+
* Thin wrapper around native <textarea> element with minimal API.
|
|
1709
|
+
*
|
|
1710
|
+
* Note: className and style props are excluded per Foundation Enforcement rule.
|
|
1711
|
+
* State styling (invalid, disabled) is handled via native HTML attributes (disabled, aria-invalid),
|
|
1712
|
+
* not as separate variant axis (per STATE_AUTHORITY).
|
|
921
1713
|
*/
|
|
922
|
-
interface TextareaProps extends Omit<React$1.TextareaHTMLAttributes<HTMLTextAreaElement>, "className" | "style"
|
|
923
|
-
/**
|
|
924
|
-
* Textarea variant style
|
|
925
|
-
* @default "outline"
|
|
926
|
-
*/
|
|
927
|
-
variant?: "primary" | "secondary" | "outline" | "ghost" | "destructive";
|
|
1714
|
+
interface TextareaProps extends Omit<React$1.TextareaHTMLAttributes<HTMLTextAreaElement>, "rows" | "className" | "style"> {
|
|
928
1715
|
/**
|
|
929
1716
|
* Textarea size
|
|
1717
|
+
* Limited to sm, md, lg sizes for strict primitive model
|
|
930
1718
|
* @default "md"
|
|
931
1719
|
*/
|
|
932
|
-
size?:
|
|
933
|
-
/**
|
|
934
|
-
* Textarea state
|
|
935
|
-
* @default "default"
|
|
936
|
-
*/
|
|
937
|
-
state?: "default" | "disabled" | "error" | "success";
|
|
938
|
-
/**
|
|
939
|
-
* Whether textarea should take full width
|
|
940
|
-
* @default true
|
|
941
|
-
*/
|
|
942
|
-
fullWidth?: boolean;
|
|
943
|
-
/**
|
|
944
|
-
* Maximum character length (for character counter)
|
|
945
|
-
*/
|
|
946
|
-
maxLength?: number;
|
|
1720
|
+
size?: TextareaSize;
|
|
947
1721
|
/**
|
|
948
|
-
*
|
|
949
|
-
*
|
|
1722
|
+
* Invalid state indicator
|
|
1723
|
+
* Maps to aria-invalid attribute for accessibility
|
|
950
1724
|
* @default false
|
|
951
1725
|
*/
|
|
952
|
-
|
|
1726
|
+
invalid?: boolean;
|
|
953
1727
|
}
|
|
954
1728
|
|
|
955
1729
|
/**
|
|
956
1730
|
* Textarea Component
|
|
957
1731
|
*
|
|
958
|
-
*
|
|
959
|
-
*
|
|
1732
|
+
* Strict low-level multiline form control primitive.
|
|
1733
|
+
* Thin wrapper around native <textarea> element aligned with Input canonical model.
|
|
1734
|
+
*
|
|
1735
|
+
* State handling follows STATE_AUTHORITY pattern:
|
|
1736
|
+
* - Invalid state: Use invalid={true} or aria-invalid={true} (native HTML attribute)
|
|
1737
|
+
* - Disabled state: Use disabled={true} (native HTML attribute)
|
|
1738
|
+
* - No separate "state" prop (states are derived from HTML attributes)
|
|
960
1739
|
*
|
|
961
1740
|
* @example
|
|
962
1741
|
* ```tsx
|
|
963
1742
|
* <Textarea
|
|
964
|
-
* variant="outline"
|
|
965
1743
|
* size="md"
|
|
966
1744
|
* placeholder="Enter text..."
|
|
967
|
-
* showCharacterCount
|
|
968
|
-
* maxLength={200}
|
|
969
1745
|
* />
|
|
1746
|
+
*
|
|
1747
|
+
* // Invalid state
|
|
1748
|
+
* <Textarea
|
|
1749
|
+
* invalid={true}
|
|
1750
|
+
* aria-describedby="error-message"
|
|
1751
|
+
* />
|
|
1752
|
+
*
|
|
1753
|
+
* // Disabled state
|
|
1754
|
+
* <Textarea disabled />
|
|
970
1755
|
* ```
|
|
971
1756
|
*/
|
|
972
1757
|
declare const Textarea: React$1.ForwardRefExoticComponent<TextareaProps & React$1.RefAttributes<HTMLTextAreaElement>>;
|
|
973
1758
|
|
|
1759
|
+
/**
|
|
1760
|
+
* Skeleton variant type
|
|
1761
|
+
* Explicit union type for variant prop
|
|
1762
|
+
*/
|
|
1763
|
+
type SkeletonVariant = "text" | "inline" | "block" | "card" | "circle";
|
|
974
1764
|
declare const skeletonVariants: (props?: ({
|
|
975
1765
|
variant?: "block" | "card" | "text" | "inline" | "circle" | null | undefined;
|
|
976
1766
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
977
|
-
interface SkeletonProps extends React$1.HTMLAttributes<HTMLDivElement
|
|
1767
|
+
interface SkeletonProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
1768
|
+
/**
|
|
1769
|
+
* Skeleton variant style
|
|
1770
|
+
* @default "text"
|
|
1771
|
+
*/
|
|
1772
|
+
variant?: SkeletonVariant;
|
|
978
1773
|
/**
|
|
979
1774
|
* Whether to hide from screen readers
|
|
980
1775
|
* @default true
|
|
@@ -991,7 +1786,182 @@ interface SkeletonProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantP
|
|
|
991
1786
|
* <Skeleton variant="card" />
|
|
992
1787
|
* ```
|
|
993
1788
|
*/
|
|
994
|
-
declare const Skeleton: React$1.ForwardRefExoticComponent<SkeletonProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1789
|
+
declare const Skeleton: React$1.ForwardRefExoticComponent<SkeletonProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1790
|
+
|
|
1791
|
+
/**
|
|
1792
|
+
* Progress size variants
|
|
1793
|
+
* Subset of GlobalSize scale (sm, md, lg)
|
|
1794
|
+
*/
|
|
1795
|
+
type ProgressSize = "sm" | "md" | "lg";
|
|
1796
|
+
/**
|
|
1797
|
+
* Progress component props
|
|
1798
|
+
*/
|
|
1799
|
+
interface ProgressProps {
|
|
1800
|
+
/**
|
|
1801
|
+
* Progress value (0-max)
|
|
1802
|
+
*/
|
|
1803
|
+
value: number;
|
|
1804
|
+
/**
|
|
1805
|
+
* Maximum progress value
|
|
1806
|
+
* @default 100
|
|
1807
|
+
*/
|
|
1808
|
+
max?: number;
|
|
1809
|
+
/**
|
|
1810
|
+
* Progress bar size
|
|
1811
|
+
* @default "md"
|
|
1812
|
+
*/
|
|
1813
|
+
size?: ProgressSize;
|
|
1814
|
+
/**
|
|
1815
|
+
* Additional CSS classes (Extension layer allows className)
|
|
1816
|
+
*/
|
|
1817
|
+
className?: string;
|
|
1818
|
+
}
|
|
1819
|
+
/**
|
|
1820
|
+
* Progress Component
|
|
1821
|
+
*
|
|
1822
|
+
* Displays visual feedback for operation progress from 0% to 100%.
|
|
1823
|
+
* Shows a filled bar proportional to the completion percentage.
|
|
1824
|
+
*
|
|
1825
|
+
* @example
|
|
1826
|
+
* ```tsx
|
|
1827
|
+
* // Default progress bar (md size)
|
|
1828
|
+
* <Progress value={45} />
|
|
1829
|
+
*
|
|
1830
|
+
* // Small progress bar
|
|
1831
|
+
* <Progress value={75} size="sm" />
|
|
1832
|
+
*
|
|
1833
|
+
* // Large progress bar
|
|
1834
|
+
* <Progress value={30} size="lg" />
|
|
1835
|
+
*
|
|
1836
|
+
* // With max value
|
|
1837
|
+
* <Progress value={3} max={10} /> // 30%
|
|
1838
|
+
* ```
|
|
1839
|
+
*/
|
|
1840
|
+
declare const Progress: React$1.ForwardRefExoticComponent<ProgressProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1841
|
+
|
|
1842
|
+
/**
|
|
1843
|
+
* Separator Color Variant Types
|
|
1844
|
+
*
|
|
1845
|
+
* Explicit union types for Separator component color variants.
|
|
1846
|
+
*/
|
|
1847
|
+
type SeparatorColor = "border" | "muted" | "primary" | "secondary" | "accent";
|
|
1848
|
+
/**
|
|
1849
|
+
* Separator Thickness Types
|
|
1850
|
+
*
|
|
1851
|
+
* Explicit union types for Separator component thickness variants.
|
|
1852
|
+
*/
|
|
1853
|
+
type SeparatorThickness = "1" | "2";
|
|
1854
|
+
/**
|
|
1855
|
+
* Separator variants using tokenCVA
|
|
1856
|
+
*
|
|
1857
|
+
* Token-based styling for:
|
|
1858
|
+
* - Orientation (horizontal/vertical)
|
|
1859
|
+
* - Color variants
|
|
1860
|
+
* - Thickness variants
|
|
1861
|
+
*/
|
|
1862
|
+
declare const separatorVariants: (props?: ({
|
|
1863
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
1864
|
+
color?: "primary" | "secondary" | "muted" | "accent" | "border" | null | undefined;
|
|
1865
|
+
thickness?: "1" | "2" | null | undefined;
|
|
1866
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1867
|
+
interface SeparatorProps extends React$1.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root> {
|
|
1868
|
+
/**
|
|
1869
|
+
* Orientation of the separator
|
|
1870
|
+
* @default "horizontal"
|
|
1871
|
+
*/
|
|
1872
|
+
orientation?: "horizontal" | "vertical";
|
|
1873
|
+
/**
|
|
1874
|
+
* Whether the separator is decorative (no semantic meaning)
|
|
1875
|
+
* @default true
|
|
1876
|
+
*/
|
|
1877
|
+
decorative?: boolean;
|
|
1878
|
+
/**
|
|
1879
|
+
* Color variant
|
|
1880
|
+
* @default "border"
|
|
1881
|
+
*/
|
|
1882
|
+
color?: SeparatorColor;
|
|
1883
|
+
/**
|
|
1884
|
+
* Thickness variant
|
|
1885
|
+
* @default "1"
|
|
1886
|
+
*/
|
|
1887
|
+
thickness?: SeparatorThickness;
|
|
1888
|
+
}
|
|
1889
|
+
/**
|
|
1890
|
+
* Separator component
|
|
1891
|
+
*
|
|
1892
|
+
* COMPLIANCE NOTES:
|
|
1893
|
+
* - ✅ Uses @radix-ui/react-separator for behavior
|
|
1894
|
+
* - ✅ Token-based styling (tokenCVA, SEPARATOR_TOKENS)
|
|
1895
|
+
* - ✅ Supports horizontal and vertical orientations
|
|
1896
|
+
* - ✅ Semantic (role="separator") vs decorative (role="none")
|
|
1897
|
+
* - ✅ ARIA attributes handled by Radix
|
|
1898
|
+
* - ✅ Follows Extension Authority Contract
|
|
1899
|
+
* - ✅ Explicit union types (SeparatorColor, SeparatorThickness)
|
|
1900
|
+
* - ✅ Type constraints (satisfies Record<Type, string>)
|
|
1901
|
+
*/
|
|
1902
|
+
declare const Separator: React$1.ForwardRefExoticComponent<SeparatorProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1903
|
+
|
|
1904
|
+
/**
|
|
1905
|
+
* AspectRatio Component
|
|
1906
|
+
*
|
|
1907
|
+
* Container that maintains a fixed aspect ratio for its content.
|
|
1908
|
+
* Useful for responsive images, videos, and cards.
|
|
1909
|
+
*
|
|
1910
|
+
* @example
|
|
1911
|
+
* ```tsx
|
|
1912
|
+
* // 16:9 aspect ratio (video)
|
|
1913
|
+
* <AspectRatio ratio={16 / 9}>
|
|
1914
|
+
* <img src="..." alt="..." />
|
|
1915
|
+
* </AspectRatio>
|
|
1916
|
+
*
|
|
1917
|
+
* // Square aspect ratio (1:1)
|
|
1918
|
+
* <AspectRatio ratio={1}>
|
|
1919
|
+
* <img src="..." alt="..." />
|
|
1920
|
+
* </AspectRatio>
|
|
1921
|
+
*
|
|
1922
|
+
* // Using preset
|
|
1923
|
+
* <AspectRatio preset="video">
|
|
1924
|
+
* <iframe src="..." />
|
|
1925
|
+
* </AspectRatio>
|
|
1926
|
+
* ```
|
|
1927
|
+
*/
|
|
1928
|
+
|
|
1929
|
+
/**
|
|
1930
|
+
* Common aspect ratio presets
|
|
1931
|
+
*/
|
|
1932
|
+
declare const ASPECT_RATIO_PRESETS: {
|
|
1933
|
+
readonly square: number;
|
|
1934
|
+
readonly video: number;
|
|
1935
|
+
readonly cinema: number;
|
|
1936
|
+
readonly portrait: number;
|
|
1937
|
+
readonly photo: number;
|
|
1938
|
+
readonly golden: number;
|
|
1939
|
+
};
|
|
1940
|
+
type AspectRatioPreset = keyof typeof ASPECT_RATIO_PRESETS;
|
|
1941
|
+
interface AspectRatioProps extends React$1.ComponentPropsWithoutRef<typeof AspectRatioPrimitive.Root> {
|
|
1942
|
+
/**
|
|
1943
|
+
* Aspect ratio as a number (width / height)
|
|
1944
|
+
* @example 16 / 9 for 16:9 ratio
|
|
1945
|
+
* @example 1 for square (1:1)
|
|
1946
|
+
*/
|
|
1947
|
+
ratio?: number;
|
|
1948
|
+
/**
|
|
1949
|
+
* Preset aspect ratio
|
|
1950
|
+
* Overrides `ratio` prop if provided
|
|
1951
|
+
*/
|
|
1952
|
+
preset?: AspectRatioPreset;
|
|
1953
|
+
}
|
|
1954
|
+
/**
|
|
1955
|
+
* AspectRatio component
|
|
1956
|
+
*
|
|
1957
|
+
* COMPLIANCE NOTES:
|
|
1958
|
+
* - ✅ Uses @radix-ui/react-aspect-ratio for behavior
|
|
1959
|
+
* - ✅ Pure layout utility (no visual tokens needed)
|
|
1960
|
+
* - ✅ Supports custom ratios and common presets
|
|
1961
|
+
* - ✅ Responsive by default
|
|
1962
|
+
* - ✅ Follows Extension Authority Contract
|
|
1963
|
+
*/
|
|
1964
|
+
declare const AspectRatio: React$1.ForwardRefExoticComponent<AspectRatioProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
995
1965
|
|
|
996
1966
|
/**
|
|
997
1967
|
* Layout Primitives Shared Types
|
|
@@ -1214,14 +2184,9 @@ interface StackProps extends Omit<BoxProps, "display" | "flexDirection" | "gap">
|
|
|
1214
2184
|
direction?: "vertical" | "horizontal";
|
|
1215
2185
|
/**
|
|
1216
2186
|
* Spacing between stack items - token-based (xs, sm, md, lg, xl, 2xl, 3xl, 4xl, 5xl)
|
|
1217
|
-
* This is the canonical prop for spacing.
|
|
2187
|
+
* This is the canonical prop for spacing.
|
|
1218
2188
|
*/
|
|
1219
2189
|
spacing?: ResponsiveSpacing;
|
|
1220
|
-
/**
|
|
1221
|
-
* Gap between stack items - token-based (xs, sm, md, lg, xl, 2xl, 3xl, 4xl, 5xl)
|
|
1222
|
-
* @deprecated Use `spacing` prop instead. This prop is kept for backward compatibility.
|
|
1223
|
-
*/
|
|
1224
|
-
gap?: ResponsiveSpacing;
|
|
1225
2190
|
/**
|
|
1226
2191
|
* Align items
|
|
1227
2192
|
*/
|
|
@@ -1378,6 +2343,27 @@ declare const Flex: React$1.ForwardRefExoticComponent<FlexProps & React$1.RefAtt
|
|
|
1378
2343
|
interface GridProps extends Omit<BoxProps, "display" | "align" | "justify"> {
|
|
1379
2344
|
/**
|
|
1380
2345
|
* Number of columns (1-6, 12, or none)
|
|
2346
|
+
*
|
|
2347
|
+
* Can be a simple value, a responsive object, or combined with shorthand props (sm, md, lg, xl, 2xl).
|
|
2348
|
+
* Merging behavior:
|
|
2349
|
+
* - If `cols` is a simple value and shorthand props are provided, `cols` becomes the base value
|
|
2350
|
+
* - If `cols` is undefined and shorthand props are provided, shorthand props are used directly
|
|
2351
|
+
* - If `cols` is a responsive object and shorthand props are provided, they are merged together
|
|
2352
|
+
*
|
|
2353
|
+
* @example
|
|
2354
|
+
* ```tsx
|
|
2355
|
+
* // Simple value
|
|
2356
|
+
* <Grid cols={3} />
|
|
2357
|
+
*
|
|
2358
|
+
* // Responsive object
|
|
2359
|
+
* <Grid cols={{ base: 1, md: 2, lg: 3 }} />
|
|
2360
|
+
*
|
|
2361
|
+
* // Shorthand props (cols becomes base)
|
|
2362
|
+
* <Grid cols={1} md={2} lg={3} />
|
|
2363
|
+
*
|
|
2364
|
+
* // Shorthand props only (no cols)
|
|
2365
|
+
* <Grid sm={1} md={2} lg={3} />
|
|
2366
|
+
* ```
|
|
1381
2367
|
*/
|
|
1382
2368
|
cols?: ResponsiveColumns;
|
|
1383
2369
|
/**
|
|
@@ -1451,14 +2437,19 @@ interface RowProps extends Omit<StackProps, "direction"> {
|
|
|
1451
2437
|
*/
|
|
1452
2438
|
declare const Row: React$1.ForwardRefExoticComponent<RowProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1453
2439
|
|
|
2440
|
+
/**
|
|
2441
|
+
* Surface variant type (canonical SurfaceVariant dictionary)
|
|
2442
|
+
* @see docs/architecture/VARIANTS_SIZE_CANON.md for canonical variant dictionary
|
|
2443
|
+
*/
|
|
2444
|
+
type SurfaceVariantType = "default" | "elevated" | "outlined" | "filled" | "subtle";
|
|
1454
2445
|
declare const surfaceVariants: (props?: ({
|
|
1455
|
-
variant?: "
|
|
2446
|
+
variant?: "default" | "subtle" | "elevated" | "outlined" | "filled" | null | undefined;
|
|
1456
2447
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1457
|
-
interface SurfaceProps extends Omit<BoxProps, "bg" | "shadow" | "radius" | "p"
|
|
2448
|
+
interface SurfaceProps extends Omit<BoxProps, "bg" | "shadow" | "radius" | "p"> {
|
|
1458
2449
|
/**
|
|
1459
|
-
* Surface variant
|
|
2450
|
+
* Surface variant (canonical SurfaceVariant dictionary)
|
|
1460
2451
|
*/
|
|
1461
|
-
variant?:
|
|
2452
|
+
variant?: SurfaceVariantType;
|
|
1462
2453
|
/**
|
|
1463
2454
|
* Padding - token-based (sm, md, lg, xl)
|
|
1464
2455
|
* Overrides default variant padding
|
|
@@ -1557,7 +2548,7 @@ declare const CardFooter: React$1.ForwardRefExoticComponent<CardFooterProps & Re
|
|
|
1557
2548
|
* All styling uses tokens exclusively (no raw CSS values).
|
|
1558
2549
|
*/
|
|
1559
2550
|
|
|
1560
|
-
interface SectionProps extends Omit<StackProps, "py" | "
|
|
2551
|
+
interface SectionProps extends Omit<StackProps, "py" | "spacing"> {
|
|
1561
2552
|
/**
|
|
1562
2553
|
* Vertical padding - token-based
|
|
1563
2554
|
* Accepts spacing tokens (xs, sm, md, lg, xl, 2xl, etc.) or responsive object
|
|
@@ -1566,12 +2557,12 @@ interface SectionProps extends Omit<StackProps, "py" | "gap"> {
|
|
|
1566
2557
|
*/
|
|
1567
2558
|
padding?: ResponsiveSpacing;
|
|
1568
2559
|
/**
|
|
1569
|
-
*
|
|
2560
|
+
* Spacing for content blocks - token-based
|
|
1570
2561
|
* Accepts spacing tokens (xs, sm, md, lg, xl, 2xl, etc.) or responsive object
|
|
1571
|
-
* @example
|
|
1572
|
-
* @example
|
|
2562
|
+
* @example spacing="md"
|
|
2563
|
+
* @example spacing={{ base: "sm", lg: "xl" }}
|
|
1573
2564
|
*/
|
|
1574
|
-
|
|
2565
|
+
spacing?: ResponsiveSpacing;
|
|
1575
2566
|
/**
|
|
1576
2567
|
* Render as different HTML element
|
|
1577
2568
|
*/
|
|
@@ -1702,31 +2693,51 @@ declare const Dialog: React$1.FC<DialogProps> & {
|
|
|
1702
2693
|
Footer: React$1.ForwardRefExoticComponent<DialogFooterProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
1703
2694
|
};
|
|
1704
2695
|
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
2696
|
+
/**
|
|
2697
|
+
* Toast variant type
|
|
2698
|
+
* Represents visual intent only (no behavior changes)
|
|
2699
|
+
*/
|
|
2700
|
+
type ToastVariant = "default" | "success" | "warning" | "error";
|
|
2701
|
+
/**
|
|
2702
|
+
* Toast data type for imperative toast creation
|
|
2703
|
+
* Used by useGlobalToast and other toast management hooks
|
|
2704
|
+
*/
|
|
1712
2705
|
interface ToastData {
|
|
1713
|
-
|
|
2706
|
+
variant?: ToastVariant;
|
|
1714
2707
|
title?: string;
|
|
1715
2708
|
description?: string;
|
|
1716
|
-
variant?: "default" | "success" | "info" | "warning" | "danger";
|
|
1717
|
-
action?: ToastActionData;
|
|
1718
|
-
/**
|
|
1719
|
-
* Toast duration - token-based
|
|
1720
|
-
* Uses motion duration tokens
|
|
1721
|
-
* Passed to Radix Toast.Root duration prop
|
|
1722
|
-
*/
|
|
1723
2709
|
duration?: ResponsiveDelay;
|
|
2710
|
+
action?: {
|
|
2711
|
+
label: string;
|
|
2712
|
+
onClick: () => void;
|
|
2713
|
+
};
|
|
1724
2714
|
}
|
|
2715
|
+
/**
|
|
2716
|
+
* Toast options type for toast configuration
|
|
2717
|
+
*/
|
|
2718
|
+
type ToastOptions = Partial<ToastData>;
|
|
2719
|
+
declare const toastVariants: (props?: ({
|
|
2720
|
+
variant?: "default" | "error" | "success" | "warning" | null | undefined;
|
|
2721
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1725
2722
|
interface ToastRootProps extends Omit<React$1.ComponentPropsWithoutRef<typeof ToastPrimitives.Root>, "duration">, VariantProps<typeof toastVariants> {
|
|
1726
2723
|
/**
|
|
1727
|
-
*
|
|
2724
|
+
* Controlled open state
|
|
2725
|
+
* Must be provided externally - Toast does not own state
|
|
2726
|
+
*/
|
|
2727
|
+
open: boolean;
|
|
2728
|
+
/**
|
|
2729
|
+
* Callback when open state changes
|
|
2730
|
+
* Must be provided externally - Toast does not own state
|
|
2731
|
+
*/
|
|
2732
|
+
onOpenChange: (open: boolean) => void;
|
|
2733
|
+
/**
|
|
2734
|
+
* Visual variant (visual only, no behavior changes)
|
|
1728
2735
|
*/
|
|
1729
|
-
|
|
2736
|
+
variant?: ToastVariant;
|
|
2737
|
+
/**
|
|
2738
|
+
* Children (use ToastTitle, ToastDescription, ToastAction, ToastClose)
|
|
2739
|
+
*/
|
|
2740
|
+
children: React$1.ReactNode;
|
|
1730
2741
|
}
|
|
1731
2742
|
/**
|
|
1732
2743
|
* Toast Action component
|
|
@@ -1742,7 +2753,7 @@ declare const ToastAction: React$1.ForwardRefExoticComponent<Omit<ToastPrimitive
|
|
|
1742
2753
|
* Rationale: Previous API used `Toast` as the main component name.
|
|
1743
2754
|
* This alias allows existing code to continue working without changes.
|
|
1744
2755
|
* Note: This is a simple alias - no legacy behavior is preserved.
|
|
1745
|
-
* The component is fully
|
|
2756
|
+
* The component is fully stateless regardless of which name is used.
|
|
1746
2757
|
*
|
|
1747
2758
|
* - ToastProps: Alias for ToastRootProps
|
|
1748
2759
|
* Rationale: Previous API used `ToastProps` as the type name.
|
|
@@ -1754,7 +2765,21 @@ declare const ToastAction: React$1.ForwardRefExoticComponent<Omit<ToastPrimitive
|
|
|
1754
2765
|
* - These legacy exports may be removed in a future major version
|
|
1755
2766
|
*/
|
|
1756
2767
|
type ToastProps = ToastRootProps;
|
|
1757
|
-
declare const Toast: React$1.ForwardRefExoticComponent<ToastRootProps & React$1.RefAttributes<HTMLLIElement>>;
|
|
2768
|
+
declare const Toast$1: React$1.ForwardRefExoticComponent<ToastRootProps & React$1.RefAttributes<HTMLLIElement>>;
|
|
2769
|
+
|
|
2770
|
+
interface ToastProviderProps extends React$1.ComponentPropsWithoutRef<typeof ToastPrimitives.Provider> {
|
|
2771
|
+
/**
|
|
2772
|
+
* Children to render
|
|
2773
|
+
*/
|
|
2774
|
+
children: React$1.ReactNode;
|
|
2775
|
+
}
|
|
2776
|
+
/**
|
|
2777
|
+
* ToastProvider component
|
|
2778
|
+
* Thin wrapper around Radix Toast.Provider with props passthrough.
|
|
2779
|
+
* Radix handles all state management, auto-dismiss, and queue management.
|
|
2780
|
+
* This component is stateless and does not own any state or business logic.
|
|
2781
|
+
*/
|
|
2782
|
+
declare function ToastProvider({ children, ...props }: ToastProviderProps): react_jsx_runtime.JSX.Element;
|
|
1758
2783
|
|
|
1759
2784
|
/**
|
|
1760
2785
|
* ToastViewport Component
|
|
@@ -1765,7 +2790,7 @@ declare const Toast: React$1.ForwardRefExoticComponent<ToastRootProps & React$1.
|
|
|
1765
2790
|
* Radix Toast.Viewport handles portal rendering internally.
|
|
1766
2791
|
* Tenerife UI provides visual styling and positioning through tokens only.
|
|
1767
2792
|
*
|
|
1768
|
-
* This component is locked as a foundation component per
|
|
2793
|
+
* This component is locked as a foundation component per UI_ARCHITECTURE_LOCK.md.
|
|
1769
2794
|
* DO NOT reimplement portal logic - Radix handles this internally.
|
|
1770
2795
|
*/
|
|
1771
2796
|
|
|
@@ -1783,99 +2808,69 @@ interface ToastViewportProps extends React$1.ComponentPropsWithoutRef<typeof Toa
|
|
|
1783
2808
|
*/
|
|
1784
2809
|
declare const ToastViewport: React$1.ForwardRefExoticComponent<ToastViewportProps & React$1.RefAttributes<HTMLOListElement>>;
|
|
1785
2810
|
|
|
1786
|
-
|
|
2811
|
+
type ToastType = "success" | "error" | "warning" | "info";
|
|
2812
|
+
interface Toast {
|
|
2813
|
+
id: string;
|
|
2814
|
+
type: ToastType;
|
|
1787
2815
|
title?: string;
|
|
1788
2816
|
description?: string;
|
|
1789
|
-
variant?: "default" | "success" | "info" | "warning" | "danger";
|
|
1790
|
-
action?: ToastActionData;
|
|
1791
2817
|
/**
|
|
1792
2818
|
* Toast duration - token-based
|
|
1793
2819
|
* Uses motion duration tokens
|
|
1794
|
-
* Passed to Radix Toast.Root duration prop (Radix handles auto-dismiss)
|
|
1795
2820
|
*/
|
|
1796
2821
|
duration?: ResponsiveDelay;
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
2822
|
+
action?: {
|
|
2823
|
+
label: string;
|
|
2824
|
+
onClick: () => void;
|
|
2825
|
+
};
|
|
2826
|
+
}
|
|
2827
|
+
interface UseToastReturn {
|
|
2828
|
+
toasts: Toast[];
|
|
2829
|
+
toast: (toast: Omit<Toast, "id">) => string;
|
|
2830
|
+
dismiss: (toastId: string) => void;
|
|
1801
2831
|
dismissAll: () => void;
|
|
1802
2832
|
}
|
|
1803
|
-
|
|
1804
|
-
/**
|
|
1805
|
-
* Children to render
|
|
1806
|
-
*/
|
|
1807
|
-
children: React$1.ReactNode;
|
|
1808
|
-
/**
|
|
1809
|
-
* Position of toast viewport
|
|
1810
|
-
*/
|
|
1811
|
-
position?: ToastPosition;
|
|
1812
|
-
/**
|
|
1813
|
-
* Swipe direction for toast dismissal
|
|
1814
|
-
* Radix handles swipe gestures internally
|
|
1815
|
-
*/
|
|
1816
|
-
swipeDirection?: "up" | "down" | "left" | "right";
|
|
1817
|
-
/**
|
|
1818
|
-
* Default duration for toasts in milliseconds
|
|
1819
|
-
* Radix handles auto-dismiss based on this value
|
|
1820
|
-
*
|
|
1821
|
-
* NOTE: This is a behavioral prop for Radix Toast.Provider API (requires number),
|
|
1822
|
-
* not a visual prop. The eslint rule is disabled for this specific case.
|
|
1823
|
-
*/
|
|
1824
|
-
duration?: number;
|
|
1825
|
-
}
|
|
1826
|
-
/**
|
|
1827
|
-
* ToastProvider component
|
|
1828
|
-
* Wrapper around Radix Toast.Provider with convenience toast() function.
|
|
1829
|
-
* Radix handles all state management, auto-dismiss, and queue management.
|
|
1830
|
-
*/
|
|
1831
|
-
declare function ToastProvider({ children, position, swipeDirection, duration, }: ToastProviderProps): react_jsx_runtime.JSX.Element;
|
|
1832
|
-
/**
|
|
1833
|
-
* Hook to use toast context
|
|
1834
|
-
*/
|
|
1835
|
-
declare function useToast(): ToastContextType;
|
|
2833
|
+
declare function useLocalToast(): UseToastReturn;
|
|
1836
2834
|
|
|
1837
2835
|
declare function Toaster(): react_jsx_runtime.JSX.Element;
|
|
1838
2836
|
|
|
1839
2837
|
/**
|
|
1840
2838
|
* ============================================================================
|
|
1841
|
-
*
|
|
2839
|
+
* ⏳ FOUNDATION · LEGACY · UNLOCKED_FOR_MIGRATION - ContextMenu Component
|
|
1842
2840
|
* ============================================================================
|
|
1843
2841
|
*
|
|
1844
|
-
*
|
|
1845
|
-
*
|
|
1846
|
-
* **
|
|
1847
|
-
*
|
|
1848
|
-
*
|
|
1849
|
-
*
|
|
1850
|
-
*
|
|
1851
|
-
*
|
|
1852
|
-
*
|
|
1853
|
-
*
|
|
1854
|
-
*
|
|
1855
|
-
*
|
|
1856
|
-
*
|
|
1857
|
-
*
|
|
1858
|
-
*
|
|
1859
|
-
* -
|
|
1860
|
-
* -
|
|
1861
|
-
* -
|
|
1862
|
-
* -
|
|
1863
|
-
* -
|
|
1864
|
-
* -
|
|
1865
|
-
*
|
|
1866
|
-
*
|
|
1867
|
-
*
|
|
1868
|
-
* -
|
|
1869
|
-
* -
|
|
1870
|
-
* -
|
|
1871
|
-
* -
|
|
1872
|
-
*
|
|
1873
|
-
*
|
|
1874
|
-
* -
|
|
1875
|
-
* -
|
|
1876
|
-
* - ❌ New props that change component behavior
|
|
1877
|
-
*
|
|
1878
|
-
* **If you believe changes are necessary, review TUI_ARCHITECTURE_LOCK.md first.**
|
|
2842
|
+
* **STATUS:** ⏳ LEGACY UNLOCKED (Pending Canonical Migration)
|
|
2843
|
+
* **UNLOCK DATE:** 2025-12-19
|
|
2844
|
+
* **TASK:** TUNG_FOUNDATION_LEGACY_UNLOCK_01
|
|
2845
|
+
*
|
|
2846
|
+
* **UNLOCK RATIONALE:**
|
|
2847
|
+
* ContextMenu was declared as LOCKED but was implemented using legacy patterns
|
|
2848
|
+
* and never passed the canonical Foundation Step Pipeline (0–13). The current
|
|
2849
|
+
* lock is declarative only and blocks required migration.
|
|
2850
|
+
*
|
|
2851
|
+
* **MIGRATION PATH:**
|
|
2852
|
+
* ContextMenu will undergo canonical Foundation lock process (Steps 0–13) to
|
|
2853
|
+
* ensure full compliance with all Authority Contracts and canonical lifecycle
|
|
2854
|
+
* requirements, similar to Button/Link standards.
|
|
2855
|
+
*
|
|
2856
|
+
* **CONSTRAINTS DURING UNLOCK:**
|
|
2857
|
+
* - ❌ No public API expansion
|
|
2858
|
+
* - ❌ No new variants or sizes
|
|
2859
|
+
* - ❌ No behavior changes outside canonicalization
|
|
2860
|
+
* - ❌ No bypass of Authority Contracts
|
|
2861
|
+
* - ✅ Refactor strictly via Foundation Step Pipeline
|
|
2862
|
+
* - ✅ Canonical CVA, typing, and interaction refactor allowed
|
|
2863
|
+
* - ✅ Authority Contract alignment allowed
|
|
2864
|
+
*
|
|
2865
|
+
* **EXIT CRITERIA:**
|
|
2866
|
+
* - Component completes Steps 0–13
|
|
2867
|
+
* - Foundation lock report exists
|
|
2868
|
+
* - Public Type Surface is locked
|
|
2869
|
+
* - Component re-marked as FOUNDATION · LOCKED
|
|
2870
|
+
*
|
|
2871
|
+
* **REFERENCE:**
|
|
2872
|
+
* - docs/architecture/FOUNDATION_LOCK.md (Legacy Foundation Components section)
|
|
2873
|
+
* - docs/workflows/foundation/COMPONENT_REFACTORING_PIPELINE.md
|
|
1879
2874
|
*
|
|
1880
2875
|
* ============================================================================
|
|
1881
2876
|
*
|
|
@@ -2119,6 +3114,303 @@ declare const ContextMenu: {
|
|
|
2119
3114
|
SubContent: React$1.ForwardRefExoticComponent<ContextMenuSubContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2120
3115
|
};
|
|
2121
3116
|
|
|
3117
|
+
/**
|
|
3118
|
+
* Spinner Component
|
|
3119
|
+
*
|
|
3120
|
+
* Animated loading indicator for visual feedback during async operations.
|
|
3121
|
+
* Provides multiple visual variants (circle/dots/bounce/linear/bars/pulse/wave/orbit/bars-horizontal/ripple), size variants (xs/sm/md/lg/xl/2xl/3xl),
|
|
3122
|
+
* tone variants (primary/muted/subtle), and optional text label with configurable positioning.
|
|
3123
|
+
*
|
|
3124
|
+
* @semantic_role EXTENSION_VISUAL_FEEDBACK
|
|
3125
|
+
*
|
|
3126
|
+
* @semantic_definition
|
|
3127
|
+
* Spinner is a visual feedback component that displays animated loading indicators in various styles.
|
|
3128
|
+
* It provides visual feedback during async operations (data loading, form submission, etc.).
|
|
3129
|
+
* Spinner supports multiple visual variants (circle, dots, bounce, linear, bars, pulse, wave, orbit, bars-horizontal, ripple), full size scale (xs-3xl),
|
|
3130
|
+
* and tone variants for different visual contexts. Optional text label can be displayed alongside spinner
|
|
3131
|
+
* with configurable positioning.
|
|
3132
|
+
*
|
|
3133
|
+
* **What Spinner IS:**
|
|
3134
|
+
* - Visual feedback component for loading states
|
|
3135
|
+
* - Multiple visual style variants (circle, dots, bounce, linear, bars, pulse, wave, orbit, bars-horizontal, ripple)
|
|
3136
|
+
* - Non-interactive display component
|
|
3137
|
+
* - Supports inline, page, data, and overlay loading scenarios
|
|
3138
|
+
*
|
|
3139
|
+
* **What Spinner IS NOT:**
|
|
3140
|
+
* - NOT an interactive component (no hover/active/focus states)
|
|
3141
|
+
* - NOT a progress indicator (use Progress component for progress bars)
|
|
3142
|
+
* - NOT a skeleton loader (use Skeleton component for content placeholders)
|
|
3143
|
+
* - NOT a Foundation component (Extension layer component)
|
|
3144
|
+
*
|
|
3145
|
+
* @example
|
|
3146
|
+
* ```tsx
|
|
3147
|
+
* // Basic spinner (circle variant, default)
|
|
3148
|
+
* <Spinner />
|
|
3149
|
+
*
|
|
3150
|
+
* // Dots variant
|
|
3151
|
+
* <Spinner variant="dots" size="md" tone="muted" />
|
|
3152
|
+
*
|
|
3153
|
+
* // Bounce variant
|
|
3154
|
+
* <Spinner variant="bounce" size="md" />
|
|
3155
|
+
*
|
|
3156
|
+
* // Linear variant
|
|
3157
|
+
* <Spinner variant="linear" size="sm" />
|
|
3158
|
+
*
|
|
3159
|
+
* // Spinner with label
|
|
3160
|
+
* <Spinner label="Loading..." labelPosition="right" />
|
|
3161
|
+
*
|
|
3162
|
+
* // Spinner with accessibility label
|
|
3163
|
+
* <Spinner aria-label="Loading data" />
|
|
3164
|
+
* ```
|
|
3165
|
+
*/
|
|
3166
|
+
|
|
3167
|
+
/**
|
|
3168
|
+
* Spinner size type
|
|
3169
|
+
* Full GlobalSize scale: xs, sm, md, lg, xl, 2xl, 3xl
|
|
3170
|
+
*/
|
|
3171
|
+
type SpinnerSize = "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl";
|
|
3172
|
+
/**
|
|
3173
|
+
* Spinner tone type
|
|
3174
|
+
* Color tone variants: primary, muted, subtle
|
|
3175
|
+
*/
|
|
3176
|
+
type SpinnerTone = "primary" | "muted" | "subtle";
|
|
3177
|
+
/**
|
|
3178
|
+
* Spinner variant type
|
|
3179
|
+
* Visual style variants: circle, dots, bounce, linear, bars, pulse, wave, orbit, bars-horizontal, ripple
|
|
3180
|
+
*/
|
|
3181
|
+
type SpinnerVariant = "circle" | "dots" | "bounce" | "linear" | "bars" | "pulse" | "wave" | "orbit" | "bars-horizontal" | "ripple";
|
|
3182
|
+
/**
|
|
3183
|
+
* Spinner label position type
|
|
3184
|
+
* Label position relative to spinner: top, right, bottom, left
|
|
3185
|
+
*/
|
|
3186
|
+
type SpinnerLabelPosition = "top" | "right" | "bottom" | "left";
|
|
3187
|
+
/**
|
|
3188
|
+
* Spinner easing type
|
|
3189
|
+
* Animation timing function: linear, ease-in, ease-out, ease-in-out
|
|
3190
|
+
*/
|
|
3191
|
+
type SpinnerEasing = "linear" | "ease-in" | "ease-out" | "ease-in-out";
|
|
3192
|
+
/**
|
|
3193
|
+
* Spinner component props
|
|
3194
|
+
*/
|
|
3195
|
+
interface SpinnerProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "className" | "style"> {
|
|
3196
|
+
/**
|
|
3197
|
+
* Visual style variant (circle/dots/bounce/linear/bars/pulse/wave/orbit/bars-horizontal/ripple)
|
|
3198
|
+
* @default "circle"
|
|
3199
|
+
*/
|
|
3200
|
+
variant?: SpinnerVariant;
|
|
3201
|
+
/**
|
|
3202
|
+
* Size of spinner (xs/sm/md/lg/xl/2xl/3xl)
|
|
3203
|
+
* @default "md"
|
|
3204
|
+
*/
|
|
3205
|
+
size?: SpinnerSize;
|
|
3206
|
+
/**
|
|
3207
|
+
* Color tone (primary/muted/subtle)
|
|
3208
|
+
* @default "primary"
|
|
3209
|
+
*/
|
|
3210
|
+
tone?: SpinnerTone;
|
|
3211
|
+
/**
|
|
3212
|
+
* Animation easing (linear/ease-in/ease-out/ease-in-out)
|
|
3213
|
+
* Controls how animation speed changes over time
|
|
3214
|
+
* @default "linear"
|
|
3215
|
+
*/
|
|
3216
|
+
easing?: SpinnerEasing;
|
|
3217
|
+
/**
|
|
3218
|
+
* Optional text label displayed alongside spinner
|
|
3219
|
+
*/
|
|
3220
|
+
label?: string;
|
|
3221
|
+
/**
|
|
3222
|
+
* Label position relative to spinner
|
|
3223
|
+
* @default "bottom"
|
|
3224
|
+
*/
|
|
3225
|
+
labelPosition?: SpinnerLabelPosition;
|
|
3226
|
+
/**
|
|
3227
|
+
* Accessibility label (required if no visual label)
|
|
3228
|
+
* Provides accessible name for screen readers
|
|
3229
|
+
*/
|
|
3230
|
+
"aria-label"?: string;
|
|
3231
|
+
}
|
|
3232
|
+
/**
|
|
3233
|
+
* Spinner Component
|
|
3234
|
+
*
|
|
3235
|
+
* Animated loading indicator for visual feedback during async operations.
|
|
3236
|
+
* Supports multiple visual variants (circle/dots/bounce/linear/bars/pulse/wave/orbit/bars-horizontal/ripple), full size scale (xs-3xl),
|
|
3237
|
+
* tone variants (primary/muted/subtle), and optional text label.
|
|
3238
|
+
*
|
|
3239
|
+
* @example
|
|
3240
|
+
* ```tsx
|
|
3241
|
+
* // Basic spinner (circle variant, default)
|
|
3242
|
+
* <Spinner />
|
|
3243
|
+
*
|
|
3244
|
+
* // Dots variant with size and tone
|
|
3245
|
+
* <Spinner variant="dots" size="lg" tone="muted" />
|
|
3246
|
+
*
|
|
3247
|
+
* // Dots variant
|
|
3248
|
+
* <Spinner variant="dots" size="md" />
|
|
3249
|
+
*
|
|
3250
|
+
* // Spinner with label on the right
|
|
3251
|
+
* <Spinner label="Loading..." labelPosition="right" />
|
|
3252
|
+
*
|
|
3253
|
+
* // Spinner with accessibility label
|
|
3254
|
+
* <Spinner aria-label="Loading data" />
|
|
3255
|
+
* ```
|
|
3256
|
+
*/
|
|
3257
|
+
declare const Spinner: React$1.ForwardRefExoticComponent<SpinnerProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3258
|
+
|
|
3259
|
+
/**
|
|
3260
|
+
* Accordion Component
|
|
3261
|
+
*
|
|
3262
|
+
* Vertically stacked set of interactive headings that reveal/hide associated content panels.
|
|
3263
|
+
* Provides accessible disclosure pattern with keyboard navigation and ARIA support.
|
|
3264
|
+
*
|
|
3265
|
+
* @semantic_role EXTENSION_COMPOSITE_DISCLOSURE
|
|
3266
|
+
*
|
|
3267
|
+
* @semantic_definition
|
|
3268
|
+
* Accordion is a composite disclosure component that allows users to toggle the visibility
|
|
3269
|
+
* of content sections. It supports single (only one item open) and multiple (multiple items
|
|
3270
|
+
* can be open) modes, semantic variants (primary/secondary/accent/neutral), and size variants
|
|
3271
|
+
* (sm/md/lg). All behavior (keyboard navigation, focus management, ARIA attributes) is delegated
|
|
3272
|
+
* to Radix Accordion primitives.
|
|
3273
|
+
*
|
|
3274
|
+
* **What Accordion IS:**
|
|
3275
|
+
* - Disclosure component for collapsible content sections
|
|
3276
|
+
* - Supports single and multiple open modes
|
|
3277
|
+
* - Provides keyboard navigation (Arrow Up/Down, Enter/Space)
|
|
3278
|
+
* - Accessible via ARIA attributes (role="region", aria-expanded, aria-labelledby)
|
|
3279
|
+
*
|
|
3280
|
+
* **What Accordion IS NOT:**
|
|
3281
|
+
* - NOT a Foundation component (Extension layer component)
|
|
3282
|
+
* - NOT a navigation component (use Tabs for navigation)
|
|
3283
|
+
* - NOT a menu component (use ContextMenu or DropdownMenu for menus)
|
|
3284
|
+
*
|
|
3285
|
+
* @example
|
|
3286
|
+
* ```tsx
|
|
3287
|
+
* // Single mode (default)
|
|
3288
|
+
* <Accordion.Root type="single" collapsible>
|
|
3289
|
+
* <Accordion.Item value="item-1">
|
|
3290
|
+
* <Accordion.Trigger variant="primary" size="md">
|
|
3291
|
+
* Section 1
|
|
3292
|
+
* </Accordion.Trigger>
|
|
3293
|
+
* <Accordion.Content>
|
|
3294
|
+
* Content for section 1
|
|
3295
|
+
* </Accordion.Content>
|
|
3296
|
+
* </Accordion.Item>
|
|
3297
|
+
* </Accordion.Root>
|
|
3298
|
+
*
|
|
3299
|
+
* // Multiple mode
|
|
3300
|
+
* <Accordion.Root type="multiple" defaultValue={["item-1", "item-2"]}>
|
|
3301
|
+
* <Accordion.Item value="item-1">
|
|
3302
|
+
* <Accordion.Trigger variant="secondary" size="lg">
|
|
3303
|
+
* Section 1
|
|
3304
|
+
* </Accordion.Trigger>
|
|
3305
|
+
* <Accordion.Content>
|
|
3306
|
+
* Content for section 1
|
|
3307
|
+
* </Accordion.Content>
|
|
3308
|
+
* </Accordion.Item>
|
|
3309
|
+
* </Accordion.Root>
|
|
3310
|
+
* ```
|
|
3311
|
+
*/
|
|
3312
|
+
|
|
3313
|
+
/**
|
|
3314
|
+
* Accordion variant type
|
|
3315
|
+
* Semantic variants: primary, secondary, accent, neutral
|
|
3316
|
+
*/
|
|
3317
|
+
type AccordionVariant = "primary" | "secondary" | "accent" | "neutral";
|
|
3318
|
+
/**
|
|
3319
|
+
* Accordion size type
|
|
3320
|
+
* Standard interactive component sizes: sm, md, lg
|
|
3321
|
+
*/
|
|
3322
|
+
type AccordionSize = "sm" | "md" | "lg";
|
|
3323
|
+
type AccordionRootProps = React$1.ComponentPropsWithoutRef<typeof AccordionPrimitive.Accordion>;
|
|
3324
|
+
interface AccordionItemProps extends React$1.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item> {
|
|
3325
|
+
/**
|
|
3326
|
+
* Unique value identifier for this item
|
|
3327
|
+
*/
|
|
3328
|
+
value: string;
|
|
3329
|
+
}
|
|
3330
|
+
interface AccordionTriggerProps extends Omit<React$1.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>, "size" | "variant"> {
|
|
3331
|
+
/**
|
|
3332
|
+
* Semantic variant (primary/secondary/accent/neutral)
|
|
3333
|
+
* @default "primary"
|
|
3334
|
+
*/
|
|
3335
|
+
variant?: AccordionVariant;
|
|
3336
|
+
/**
|
|
3337
|
+
* Size (sm/md/lg)
|
|
3338
|
+
* @default "md"
|
|
3339
|
+
*/
|
|
3340
|
+
size?: AccordionSize;
|
|
3341
|
+
}
|
|
3342
|
+
interface AccordionContentProps extends Omit<React$1.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>, "size" | "variant"> {
|
|
3343
|
+
/**
|
|
3344
|
+
* Size (sm/md/lg) - for padding and typography
|
|
3345
|
+
* @default "md"
|
|
3346
|
+
*/
|
|
3347
|
+
size?: AccordionSize;
|
|
3348
|
+
/**
|
|
3349
|
+
* Semantic variant (primary/secondary/accent/neutral) - for background and text colors
|
|
3350
|
+
* @default "primary"
|
|
3351
|
+
*/
|
|
3352
|
+
variant?: AccordionVariant;
|
|
3353
|
+
}
|
|
3354
|
+
declare const Accordion: {
|
|
3355
|
+
Root: React$1.FC<AccordionRootProps>;
|
|
3356
|
+
Item: React$1.ForwardRefExoticComponent<AccordionItemProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3357
|
+
Trigger: React$1.ForwardRefExoticComponent<AccordionTriggerProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
3358
|
+
Content: React$1.ForwardRefExoticComponent<AccordionContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
3359
|
+
};
|
|
3360
|
+
|
|
3361
|
+
/**
|
|
3362
|
+
* Combobox size type - Explicit union (TYPING_STANDARD compliant)
|
|
3363
|
+
* Interactive Size Scale: sm | md | lg
|
|
3364
|
+
*/
|
|
3365
|
+
type ComboboxSize = "sm" | "md" | "lg";
|
|
3366
|
+
/**
|
|
3367
|
+
* Option type
|
|
3368
|
+
*/
|
|
3369
|
+
interface ComboboxOption {
|
|
3370
|
+
value: string;
|
|
3371
|
+
label?: string;
|
|
3372
|
+
disabled?: boolean;
|
|
3373
|
+
}
|
|
3374
|
+
interface ComboboxRootProps {
|
|
3375
|
+
value?: string | string[];
|
|
3376
|
+
defaultValue?: string | string[];
|
|
3377
|
+
onValueChange?: (value: string | string[]) => void;
|
|
3378
|
+
multiple?: boolean;
|
|
3379
|
+
open?: boolean;
|
|
3380
|
+
onOpenChange?: (open: boolean) => void;
|
|
3381
|
+
size?: ComboboxSize;
|
|
3382
|
+
children: React$1.ReactNode;
|
|
3383
|
+
}
|
|
3384
|
+
/**
|
|
3385
|
+
* ComboboxRoot - Context provider for Combobox state
|
|
3386
|
+
*/
|
|
3387
|
+
declare function ComboboxRoot({ value: controlledValue, defaultValue, onValueChange, multiple, open: controlledOpen, onOpenChange, size, children, }: ComboboxRootProps): react_jsx_runtime.JSX.Element;
|
|
3388
|
+
interface ComboboxInputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, "size" | "value" | "onChange"> {
|
|
3389
|
+
placeholder?: string;
|
|
3390
|
+
disabled?: boolean;
|
|
3391
|
+
"aria-invalid"?: boolean;
|
|
3392
|
+
"aria-label"?: string;
|
|
3393
|
+
}
|
|
3394
|
+
/**
|
|
3395
|
+
* ComboboxInput - Input field for typing/filtering
|
|
3396
|
+
*/
|
|
3397
|
+
declare const ComboboxInput: React$1.ForwardRefExoticComponent<ComboboxInputProps & React$1.RefAttributes<HTMLInputElement>>;
|
|
3398
|
+
interface ComboboxListProps {
|
|
3399
|
+
options: ComboboxOption[];
|
|
3400
|
+
filterable?: boolean;
|
|
3401
|
+
onSearch?: (query: string) => void;
|
|
3402
|
+
loading?: boolean;
|
|
3403
|
+
emptyMessage?: string;
|
|
3404
|
+
}
|
|
3405
|
+
/**
|
|
3406
|
+
* ComboboxList - Dropdown list of options
|
|
3407
|
+
*/
|
|
3408
|
+
declare function ComboboxList({ options, filterable, onSearch, loading, emptyMessage, }: ComboboxListProps): react_jsx_runtime.JSX.Element;
|
|
3409
|
+
declare const Combobox: typeof ComboboxRoot & {
|
|
3410
|
+
Input: React$1.ForwardRefExoticComponent<ComboboxInputProps & React$1.RefAttributes<HTMLInputElement>>;
|
|
3411
|
+
List: typeof ComboboxList;
|
|
3412
|
+
};
|
|
3413
|
+
|
|
2122
3414
|
/**
|
|
2123
3415
|
* NotificationCenter.DismissAll Component
|
|
2124
3416
|
*
|
|
@@ -2187,7 +3479,7 @@ interface NotificationData {
|
|
|
2187
3479
|
description?: string;
|
|
2188
3480
|
variant?: NotificationVariant;
|
|
2189
3481
|
channel?: NotificationChannel;
|
|
2190
|
-
action?:
|
|
3482
|
+
action?: ToastData["action"];
|
|
2191
3483
|
/**
|
|
2192
3484
|
* Notification duration - token-based
|
|
2193
3485
|
* Uses motion duration tokens
|
|
@@ -2205,7 +3497,7 @@ interface NotificationOptions {
|
|
|
2205
3497
|
description?: string;
|
|
2206
3498
|
variant?: NotificationVariant;
|
|
2207
3499
|
channel?: NotificationChannel;
|
|
2208
|
-
action?:
|
|
3500
|
+
action?: ToastData["action"];
|
|
2209
3501
|
/**
|
|
2210
3502
|
* Notification duration - token-based
|
|
2211
3503
|
* Uses motion duration tokens
|
|
@@ -2280,10 +3572,6 @@ interface NotificationCenterItemProps extends Omit<React$1.HTMLAttributes<HTMLLI
|
|
|
2280
3572
|
* Callback when notification is clicked
|
|
2281
3573
|
*/
|
|
2282
3574
|
onClick?: (id: string) => void;
|
|
2283
|
-
/**
|
|
2284
|
-
* Show expandable details
|
|
2285
|
-
*/
|
|
2286
|
-
expandable?: boolean;
|
|
2287
3575
|
}
|
|
2288
3576
|
/**
|
|
2289
3577
|
* NotificationCenter.Item component - individual notification item
|
|
@@ -2352,7 +3640,7 @@ interface NotificationCenterPanelProps {
|
|
|
2352
3640
|
/**
|
|
2353
3641
|
* Element to return focus to when panel closes
|
|
2354
3642
|
*/
|
|
2355
|
-
returnFocusRef?: React$1.RefObject<HTMLElement>;
|
|
3643
|
+
returnFocusRef?: React$1.RefObject<HTMLElement | null>;
|
|
2356
3644
|
}
|
|
2357
3645
|
/**
|
|
2358
3646
|
* NotificationCenter.Panel component - side drawer notification panel
|
|
@@ -2442,10 +3730,24 @@ declare const NotificationCenter: {
|
|
|
2442
3730
|
DismissAll: React$1.ForwardRefExoticComponent<NotificationCenterDismissAllProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
2443
3731
|
};
|
|
2444
3732
|
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
3733
|
+
/**
|
|
3734
|
+
* Popover variant type - Explicit union (not derived from CVA)
|
|
3735
|
+
*/
|
|
3736
|
+
type PopoverVariant = "primary" | "secondary" | "accent" | "outline" | "ghost" | "link" | "destructive";
|
|
3737
|
+
/**
|
|
3738
|
+
* Popover size type - Explicit union (not derived from CVA)
|
|
3739
|
+
* Restricted to sm, md, lg per overlay size restriction rule (VARIANTS_SIZE_CANON.md)
|
|
3740
|
+
*/
|
|
3741
|
+
type PopoverSize = "sm" | "md" | "lg";
|
|
3742
|
+
/**
|
|
3743
|
+
* PopoverContent - Styled popover content component
|
|
3744
|
+
*
|
|
3745
|
+
* Use this component directly when composing custom popover implementations.
|
|
3746
|
+
* For simpler use cases, prefer PopoverWrapper.
|
|
3747
|
+
*/
|
|
3748
|
+
declare const PopoverContent: React$1.ForwardRefExoticComponent<Omit<Omit<PopoverPrimitive.PopoverContentProps & React$1.RefAttributes<HTMLDivElement>, "ref">, "sideOffset" | "alignOffset"> & {
|
|
3749
|
+
variant?: PopoverVariant;
|
|
3750
|
+
size?: PopoverSize;
|
|
2449
3751
|
sideOffset?: ResponsiveSideOffset;
|
|
2450
3752
|
alignOffset?: ResponsiveAlignOffset;
|
|
2451
3753
|
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
@@ -2458,7 +3760,15 @@ declare const PopoverContent: React$1.ForwardRefExoticComponent<Omit<Omit<Popove
|
|
|
2458
3760
|
*/
|
|
2459
3761
|
|
|
2460
3762
|
interface HoverCardContentProps extends Omit<React$1.ComponentPropsWithoutRef<typeof PopoverContent>, "onMouseEnter" | "onMouseLeave"> {
|
|
3763
|
+
/**
|
|
3764
|
+
* Mouse enter handler
|
|
3765
|
+
* Called when mouse enters the content area (keeps hover card open)
|
|
3766
|
+
*/
|
|
2461
3767
|
onMouseEnter?: React$1.MouseEventHandler<HTMLDivElement>;
|
|
3768
|
+
/**
|
|
3769
|
+
* Mouse leave handler
|
|
3770
|
+
* Called when mouse leaves the content area (closes hover card)
|
|
3771
|
+
*/
|
|
2462
3772
|
onMouseLeave?: React$1.MouseEventHandler<HTMLDivElement>;
|
|
2463
3773
|
}
|
|
2464
3774
|
/**
|
|
@@ -2489,10 +3799,12 @@ interface HoverCardRootProps {
|
|
|
2489
3799
|
onOpenChange?: (open: boolean) => void;
|
|
2490
3800
|
/**
|
|
2491
3801
|
* Default open state (uncontrolled mode)
|
|
3802
|
+
* @default false
|
|
2492
3803
|
*/
|
|
2493
3804
|
defaultOpen?: boolean;
|
|
2494
3805
|
/**
|
|
2495
3806
|
* Whether the hover card is modal (blocks interaction with other elements)
|
|
3807
|
+
* @default false
|
|
2496
3808
|
*/
|
|
2497
3809
|
modal?: boolean;
|
|
2498
3810
|
/**
|
|
@@ -2517,6 +3829,8 @@ declare namespace HoverCardRoot {
|
|
|
2517
3829
|
interface HoverCardTriggerProps extends React$1.HTMLAttributes<HTMLElement> {
|
|
2518
3830
|
/**
|
|
2519
3831
|
* Render as child element (composition pattern)
|
|
3832
|
+
* When true, the component will merge its props with its child element
|
|
3833
|
+
* @default false
|
|
2520
3834
|
*/
|
|
2521
3835
|
asChild?: boolean;
|
|
2522
3836
|
}
|
|
@@ -2526,35 +3840,57 @@ interface HoverCardTriggerProps extends React$1.HTMLAttributes<HTMLElement> {
|
|
|
2526
3840
|
declare const HoverCardTrigger: React$1.ForwardRefExoticComponent<HoverCardTriggerProps & React$1.RefAttributes<HTMLElement>>;
|
|
2527
3841
|
|
|
2528
3842
|
/**
|
|
2529
|
-
*
|
|
3843
|
+
* ============================================================================
|
|
3844
|
+
* 🔒 FOUNDATION · LOCKED - Tabs Component
|
|
3845
|
+
* ============================================================================
|
|
2530
3846
|
*
|
|
2531
|
-
*
|
|
2532
|
-
*
|
|
2533
|
-
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
|
|
2538
|
-
|
|
2539
|
-
|
|
2540
|
-
|
|
2541
|
-
|
|
2542
|
-
|
|
2543
|
-
*
|
|
3847
|
+
* **STATUS:** ✅ LOCKED (Pipeline 18A Complete, 2025-12-25)
|
|
3848
|
+
* **LOCK DATE:** 2025-12-25
|
|
3849
|
+
* **PIPELINE:** Pipeline 18A (Steps 0-12 complete)
|
|
3850
|
+
*
|
|
3851
|
+
* **LOCK RATIONALE:**
|
|
3852
|
+
* Tabs has completed canonical Foundation Step Pipeline (Steps 0-12) and
|
|
3853
|
+
* demonstrates full compliance with all Authority Contracts and canonical
|
|
3854
|
+
* lifecycle requirements.
|
|
3855
|
+
*
|
|
3856
|
+
* **REFERENCE:**
|
|
3857
|
+
* - docs/architecture/FOUNDATION_LOCK.md
|
|
3858
|
+
* - docs/workflows/foundation/COMPONENT_REFACTORING_PIPELINE.md
|
|
3859
|
+
* - docs/reports/audit/TABS_BASELINE_REPORT.md
|
|
3860
|
+
*
|
|
3861
|
+
* ============================================================================
|
|
3862
|
+
*
|
|
3863
|
+
* ARCHITECTURAL INVARIANTS (MANDATORY)
|
|
3864
|
+
* ============================================================================
|
|
3865
|
+
*
|
|
3866
|
+
* **RADIX OWNERSHIP INVARIANT:**
|
|
3867
|
+
* - All runtime behavior (keyboard navigation, focus management, ARIA attributes,
|
|
3868
|
+
* state management, disabled state handling) MUST be delegated to Radix primitives.
|
|
3869
|
+
* - Tabs component MUST NOT implement custom state management or interaction logic.
|
|
3870
|
+
* - Tabs component MUST NOT override or extend Radix behavior beyond visual styling.
|
|
3871
|
+
* - Violation: Adding useState, useEffect, useRef, or custom event handlers for behavior.
|
|
3872
|
+
*
|
|
3873
|
+
* **STYLING/TOKEN OWNERSHIP INVARIANT:**
|
|
3874
|
+
* - All visual styling MUST use TABS_TOKENS as the single source of truth.
|
|
3875
|
+
* - All spacing, typography, colors, radius, shadows MUST reference tokens, never raw values.
|
|
3876
|
+
* - Tabs component owns visual styling at COMPOSITION level, Foundation tokens own token definitions.
|
|
3877
|
+
* - Violation: Using raw CSS values, inline styles, or non-token Tailwind classes for styling.
|
|
3878
|
+
*
|
|
3879
|
+
* **VARIANT SYSTEM INVARIANT:**
|
|
3880
|
+
* - Variant system (underline, pill, segmented) is FINITE and EXPLICIT.
|
|
3881
|
+
* - Size system (sm, md, lg) is FINITE and EXPLICIT.
|
|
3882
|
+
* - Tone system (neutral, primary) is FINITE and EXPLICIT.
|
|
3883
|
+
* - Adding new variants, sizes, or tones REQUIRES Foundation Step Pipeline approval.
|
|
3884
|
+
* - Violation: Adding new variant/size/tone values without pipeline approval.
|
|
3885
|
+
*
|
|
3886
|
+
* **PUBLIC API INVARIANT:**
|
|
3887
|
+
* - Public API surface MUST remain minimal and expressive.
|
|
3888
|
+
* - Custom props (size, variant, tone, icon props) MUST be token-based unions.
|
|
3889
|
+
* - Radix props MUST be passed through without modification.
|
|
3890
|
+
* - Violation: Adding non-token props, changing prop types, or modifying Radix prop behavior.
|
|
3891
|
+
*
|
|
3892
|
+
* ============================================================================
|
|
2544
3893
|
*
|
|
2545
|
-
* @example
|
|
2546
|
-
* ```tsx
|
|
2547
|
-
* <DataList.Root>
|
|
2548
|
-
* <DataList.Item>
|
|
2549
|
-
* <DataList.Label>Name</DataList.Label>
|
|
2550
|
-
* <DataList.Value>John Doe</DataList.Value>
|
|
2551
|
-
* </DataList.Item>
|
|
2552
|
-
* </DataList.Root>
|
|
2553
|
-
* ```
|
|
2554
|
-
*/
|
|
2555
|
-
declare const DataListRoot: React$1.ForwardRefExoticComponent<DataListRootProps & React$1.RefAttributes<HTMLDListElement>>;
|
|
2556
|
-
|
|
2557
|
-
/**
|
|
2558
3894
|
* Tabs Component
|
|
2559
3895
|
*
|
|
2560
3896
|
* Radix-based tabs component with token-driven styling.
|
|
@@ -2576,15 +3912,15 @@ interface TabsListProps extends Omit<React$1.ComponentPropsWithoutRef<typeof Tab
|
|
|
2576
3912
|
}
|
|
2577
3913
|
interface TabsTriggerProps extends Omit<React$1.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>, "size" | "variant" | "tone"> {
|
|
2578
3914
|
/**
|
|
2579
|
-
* Size variant - token-based (
|
|
3915
|
+
* Size variant - token-based (defaults to "md" if not provided)
|
|
2580
3916
|
*/
|
|
2581
3917
|
size?: ResponsiveTabsSize;
|
|
2582
3918
|
/**
|
|
2583
|
-
* Visual variant - token-based (
|
|
3919
|
+
* Visual variant - token-based (defaults to "underline" if not provided)
|
|
2584
3920
|
*/
|
|
2585
3921
|
variant?: TabsVariantToken;
|
|
2586
3922
|
/**
|
|
2587
|
-
* Tone - token-based (
|
|
3923
|
+
* Tone - token-based (defaults to "primary" if not provided)
|
|
2588
3924
|
*/
|
|
2589
3925
|
tone?: TabsToneToken;
|
|
2590
3926
|
/**
|
|
@@ -2613,6 +3949,25 @@ declare const Tabs: {
|
|
|
2613
3949
|
Content: React$1.ForwardRefExoticComponent<TabsContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2614
3950
|
};
|
|
2615
3951
|
|
|
3952
|
+
/**
|
|
3953
|
+
* Size options for SegmentedControl
|
|
3954
|
+
* @public
|
|
3955
|
+
*/
|
|
3956
|
+
type SegmentedControlSize = "sm" | "md" | "lg";
|
|
3957
|
+
/**
|
|
3958
|
+
* Orientation options for SegmentedControl
|
|
3959
|
+
* @public
|
|
3960
|
+
*/
|
|
3961
|
+
type SegmentedControlOrientation = "horizontal" | "vertical";
|
|
3962
|
+
/**
|
|
3963
|
+
* Size Mapping Table (per SIZE_MAPPING_SPEC.md)
|
|
3964
|
+
*
|
|
3965
|
+
* | Size | heightToken | paddingXToken | paddingYToken | textToken | radiusToken |
|
|
3966
|
+
* |------|-------------|---------------|---------------|-----------|-------------|
|
|
3967
|
+
* | sm | NAVIGATION_TOKENS.sizes.sm.height | NAVIGATION_TOKENS.sizes.sm.padding.horizontal | NAVIGATION_TOKENS.sizes.sm.padding.vertical | NAVIGATION_TOKENS.sizes.sm.fontSize | NAVIGATION_TOKENS.radius.default |
|
|
3968
|
+
* | md | NAVIGATION_TOKENS.sizes.md.height | NAVIGATION_TOKENS.sizes.md.padding.horizontal | NAVIGATION_TOKENS.sizes.md.padding.vertical | NAVIGATION_TOKENS.sizes.md.fontSize | NAVIGATION_TOKENS.radius.default |
|
|
3969
|
+
* | lg | NAVIGATION_TOKENS.sizes.lg.height | NAVIGATION_TOKENS.sizes.lg.padding.horizontal | NAVIGATION_TOKENS.sizes.lg.padding.vertical | NAVIGATION_TOKENS.sizes.lg.fontSize | NAVIGATION_TOKENS.radius.default |
|
|
3970
|
+
*/
|
|
2616
3971
|
declare const segmentedControlRootVariants: (props?: ({
|
|
2617
3972
|
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
2618
3973
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
@@ -2621,7 +3976,7 @@ declare const segmentedControlItemVariants: (props?: ({
|
|
|
2621
3976
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
2622
3977
|
state?: "default" | "selected" | null | undefined;
|
|
2623
3978
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
2624
|
-
interface SegmentedControlRootProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "role"
|
|
3979
|
+
interface SegmentedControlRootProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, "role"> {
|
|
2625
3980
|
/**
|
|
2626
3981
|
* Controlled value
|
|
2627
3982
|
*/
|
|
@@ -2638,8 +3993,18 @@ interface SegmentedControlRootProps extends Omit<React$1.HTMLAttributes<HTMLDivE
|
|
|
2638
3993
|
* Name for the radio group
|
|
2639
3994
|
*/
|
|
2640
3995
|
name?: string;
|
|
3996
|
+
/**
|
|
3997
|
+
* Orientation of the segmented control
|
|
3998
|
+
* @default "horizontal"
|
|
3999
|
+
*/
|
|
4000
|
+
orientation?: SegmentedControlOrientation;
|
|
4001
|
+
/**
|
|
4002
|
+
* Size of the segmented control
|
|
4003
|
+
* @default "md"
|
|
4004
|
+
*/
|
|
4005
|
+
size?: SegmentedControlSize;
|
|
2641
4006
|
}
|
|
2642
|
-
interface SegmentedControlItemProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, "role"
|
|
4007
|
+
interface SegmentedControlItemProps extends Omit<React$1.ButtonHTMLAttributes<HTMLButtonElement>, "role"> {
|
|
2643
4008
|
/**
|
|
2644
4009
|
* Value of this item
|
|
2645
4010
|
*/
|
|
@@ -2648,6 +4013,10 @@ interface SegmentedControlItemProps extends Omit<React$1.ButtonHTMLAttributes<HT
|
|
|
2648
4013
|
* Whether this item is disabled
|
|
2649
4014
|
*/
|
|
2650
4015
|
disabled?: boolean;
|
|
4016
|
+
/**
|
|
4017
|
+
* Size of this item (overrides Root size if provided)
|
|
4018
|
+
*/
|
|
4019
|
+
size?: SegmentedControlSize;
|
|
2651
4020
|
}
|
|
2652
4021
|
declare const SegmentedControl: React$1.ForwardRefExoticComponent<SegmentedControlRootProps & React$1.RefAttributes<HTMLDivElement>> & {
|
|
2653
4022
|
Root: React$1.ForwardRefExoticComponent<SegmentedControlRootProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
@@ -2685,10 +4054,6 @@ interface BreadcrumbsRootProps extends React$1.HTMLAttributes<HTMLElement> {
|
|
|
2685
4054
|
ariaLabel?: string;
|
|
2686
4055
|
}
|
|
2687
4056
|
interface BreadcrumbsItemProps extends React$1.HTMLAttributes<HTMLLIElement> {
|
|
2688
|
-
/**
|
|
2689
|
-
* Whether this is the last item (current page)
|
|
2690
|
-
*/
|
|
2691
|
-
isLast?: boolean;
|
|
2692
4057
|
/**
|
|
2693
4058
|
* Whether this item is disabled
|
|
2694
4059
|
*/
|
|
@@ -2868,31 +4233,387 @@ interface StepperLabelProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
2868
4233
|
/**
|
|
2869
4234
|
* Whether this is the active step
|
|
2870
4235
|
*/
|
|
2871
|
-
isActive: boolean;
|
|
2872
|
-
}
|
|
2873
|
-
interface StepperContentProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
4236
|
+
isActive: boolean;
|
|
4237
|
+
}
|
|
4238
|
+
interface StepperContentProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
4239
|
+
/**
|
|
4240
|
+
* Step index this content belongs to
|
|
4241
|
+
*/
|
|
4242
|
+
stepIndex: number;
|
|
4243
|
+
/**
|
|
4244
|
+
* Whether this content should be visible
|
|
4245
|
+
*/
|
|
4246
|
+
isActive: boolean;
|
|
4247
|
+
}
|
|
4248
|
+
/**
|
|
4249
|
+
* Stepper.Item - Individual step container
|
|
4250
|
+
*/
|
|
4251
|
+
interface StepperItemPropsInternal extends StepperItemProps {
|
|
4252
|
+
orientation?: "horizontal" | "vertical";
|
|
4253
|
+
}
|
|
4254
|
+
declare const Stepper: React$1.ForwardRefExoticComponent<StepperRootProps & React$1.RefAttributes<HTMLDivElement>> & {
|
|
4255
|
+
Root: React$1.ForwardRefExoticComponent<StepperRootProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
4256
|
+
Item: React$1.ForwardRefExoticComponent<StepperItemPropsInternal & React$1.RefAttributes<HTMLDivElement>>;
|
|
4257
|
+
Indicator: React$1.ForwardRefExoticComponent<StepperIndicatorProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
4258
|
+
Label: React$1.ForwardRefExoticComponent<StepperLabelProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
4259
|
+
Content: React$1.ForwardRefExoticComponent<StepperContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
4260
|
+
};
|
|
4261
|
+
|
|
4262
|
+
interface NavSeparatorProps extends React$1.HTMLAttributes<HTMLSpanElement> {
|
|
4263
|
+
/**
|
|
4264
|
+
* Separator content
|
|
4265
|
+
* @default '/'
|
|
4266
|
+
*/
|
|
4267
|
+
children?: React$1.ReactNode;
|
|
4268
|
+
/**
|
|
4269
|
+
* Render as child element (composition pattern via Radix Slot)
|
|
4270
|
+
* When true, renders children through Slot component instead of <span>
|
|
4271
|
+
*/
|
|
4272
|
+
asChild?: boolean;
|
|
4273
|
+
}
|
|
4274
|
+
/**
|
|
4275
|
+
* NavSeparator component
|
|
4276
|
+
*
|
|
4277
|
+
* Renders a visual separator between navigation items.
|
|
4278
|
+
* This is a purely decorative element with `aria-hidden="true"`.
|
|
4279
|
+
*
|
|
4280
|
+
* COMPLIANCE NOTES:
|
|
4281
|
+
* - ✅ Uses token system exclusively (NAVIGATION_TOKENS)
|
|
4282
|
+
* - ✅ Purely visual component (no logic, no state)
|
|
4283
|
+
* - ✅ Follows Extension Authority Contract
|
|
4284
|
+
* - ✅ Uses descriptive, intent-based naming
|
|
4285
|
+
* - ✅ Does NOT duplicate Foundation functionality
|
|
4286
|
+
* - ✅ aria-hidden="true" always set
|
|
4287
|
+
*/
|
|
4288
|
+
declare const NavSeparator: React$1.ForwardRefExoticComponent<NavSeparatorProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
4289
|
+
|
|
4290
|
+
interface NavTextProps extends React$1.HTMLAttributes<HTMLSpanElement> {
|
|
4291
|
+
/**
|
|
4292
|
+
* Child content (text content for navigation)
|
|
4293
|
+
*/
|
|
4294
|
+
children: React$1.ReactNode;
|
|
4295
|
+
/**
|
|
4296
|
+
* ARIA current attribute for indicating current page/location
|
|
4297
|
+
* NavText MAY accept aria-current='page' for accessibility
|
|
4298
|
+
* NavText does NOT determine this state; it only passes through externally provided value
|
|
4299
|
+
*/
|
|
4300
|
+
"aria-current"?: "page";
|
|
4301
|
+
/**
|
|
4302
|
+
* Render as child element (composition pattern via Radix Slot)
|
|
4303
|
+
* When true, renders children through Slot component instead of <span>
|
|
4304
|
+
*/
|
|
4305
|
+
asChild?: boolean;
|
|
4306
|
+
}
|
|
4307
|
+
/**
|
|
4308
|
+
* NavText component
|
|
4309
|
+
*
|
|
4310
|
+
* Non-interactive navigation text primitive that renders semantic text
|
|
4311
|
+
* for navigation structures. This component is fully stateless and does
|
|
4312
|
+
* not perform routing, route matching, or state detection.
|
|
4313
|
+
*
|
|
4314
|
+
* COMPLIANCE NOTES:
|
|
4315
|
+
* - ✅ Uses token system exclusively (NAVIGATION_TOKENS)
|
|
4316
|
+
* - ✅ Purely semantic component (no logic, no state, no routing)
|
|
4317
|
+
* - ✅ Follows Extension Authority Contract
|
|
4318
|
+
* - ✅ Uses descriptive, intent-based naming
|
|
4319
|
+
* - ✅ Does NOT duplicate Foundation functionality
|
|
4320
|
+
* - ✅ Non-interactive (not focusable, no role overrides)
|
|
4321
|
+
* - ✅ Supports asChild pattern for composition
|
|
4322
|
+
*/
|
|
4323
|
+
declare const NavText: React$1.ForwardRefExoticComponent<NavTextProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
4324
|
+
|
|
4325
|
+
interface NavItemProps extends React$1.HTMLAttributes<HTMLLIElement> {
|
|
4326
|
+
/**
|
|
4327
|
+
* Render as child element (composition pattern via Radix Slot)
|
|
4328
|
+
* When true, renders children through Slot component instead of <li>
|
|
4329
|
+
*/
|
|
4330
|
+
asChild?: boolean;
|
|
4331
|
+
/**
|
|
4332
|
+
* Child elements
|
|
4333
|
+
*/
|
|
4334
|
+
children: React$1.ReactNode;
|
|
4335
|
+
}
|
|
4336
|
+
|
|
4337
|
+
/**
|
|
4338
|
+
* NavItem - Structural navigation item wrapper
|
|
4339
|
+
*
|
|
4340
|
+
* Renders a list item (`<li>`) for use inside NavList.
|
|
4341
|
+
* This is a pure structural wrapper with no styling or logic.
|
|
4342
|
+
*
|
|
4343
|
+
* **What NavItem IS:**
|
|
4344
|
+
* - Structural navigation list item
|
|
4345
|
+
* - List item wrapper for navigation primitives
|
|
4346
|
+
* - Pure composition container
|
|
4347
|
+
*
|
|
4348
|
+
* **What NavItem IS NOT:**
|
|
4349
|
+
* - Link
|
|
4350
|
+
* - Text renderer
|
|
4351
|
+
* - Separator
|
|
4352
|
+
* - Layout component
|
|
4353
|
+
* - Stateful component
|
|
4354
|
+
* - Logic container
|
|
4355
|
+
*
|
|
4356
|
+
* @example
|
|
4357
|
+
* <NavList>
|
|
4358
|
+
* <NavItem>Home</NavItem>
|
|
4359
|
+
* <NavItem>About</NavItem>
|
|
4360
|
+
* </NavList>
|
|
4361
|
+
*
|
|
4362
|
+
* @example
|
|
4363
|
+
* <NavList>
|
|
4364
|
+
* <NavItem asChild>
|
|
4365
|
+
* <div>Custom item</div>
|
|
4366
|
+
* </NavItem>
|
|
4367
|
+
* </NavList>
|
|
4368
|
+
*/
|
|
4369
|
+
declare const NavItem: React$1.ForwardRefExoticComponent<NavItemProps & React$1.RefAttributes<HTMLLIElement>>;
|
|
4370
|
+
|
|
4371
|
+
/**
|
|
4372
|
+
* NavRoot Component Props
|
|
4373
|
+
*
|
|
4374
|
+
* Pure semantic navigation boundary component.
|
|
4375
|
+
* Renders a <nav> element with required aria-label for accessibility.
|
|
4376
|
+
*/
|
|
4377
|
+
interface NavRootProps extends React$1.HTMLAttributes<HTMLElement> {
|
|
4378
|
+
/**
|
|
4379
|
+
* ARIA label for the navigation element (required for accessibility)
|
|
4380
|
+
*/
|
|
4381
|
+
"aria-label": string;
|
|
4382
|
+
/**
|
|
4383
|
+
* Render as child element (composition pattern via Radix Slot)
|
|
4384
|
+
* When true, renders children through Slot component instead of <nav>
|
|
4385
|
+
*/
|
|
4386
|
+
asChild?: boolean;
|
|
4387
|
+
/**
|
|
4388
|
+
* Child content (navigation primitives like NavLink, navigation lists, etc.)
|
|
4389
|
+
*/
|
|
4390
|
+
children: React$1.ReactNode;
|
|
4391
|
+
}
|
|
4392
|
+
/**
|
|
4393
|
+
* NavRoot Component
|
|
4394
|
+
*
|
|
4395
|
+
* Pure semantic navigation boundary component with zero logic.
|
|
4396
|
+
* Provides a semantic <nav> wrapper that enforces accessibility (required aria-label)
|
|
4397
|
+
* while remaining a pure composition wrapper with no assumptions about navigation
|
|
4398
|
+
* structure or styling.
|
|
4399
|
+
*
|
|
4400
|
+
* **What NavRoot IS:**
|
|
4401
|
+
* - Semantic navigation root
|
|
4402
|
+
* - Accessibility boundary (enforces aria-label)
|
|
4403
|
+
* - Composition wrapper for navigation primitives
|
|
4404
|
+
*
|
|
4405
|
+
* **What NavRoot IS NOT:**
|
|
4406
|
+
* - Layout component
|
|
4407
|
+
* - List renderer
|
|
4408
|
+
* - Navigation pattern
|
|
4409
|
+
* - Stateful component
|
|
4410
|
+
* - Logic container
|
|
4411
|
+
*
|
|
4412
|
+
* @example
|
|
4413
|
+
* ```tsx
|
|
4414
|
+
* <NavRoot aria-label="Main navigation">
|
|
4415
|
+
* <NavLink href="/">Home</NavLink>
|
|
4416
|
+
* <NavLink href="/about">About</NavLink>
|
|
4417
|
+
* </NavRoot>
|
|
4418
|
+
* ```
|
|
4419
|
+
*
|
|
4420
|
+
* @example
|
|
4421
|
+
* ```tsx
|
|
4422
|
+
* <NavRoot aria-label="Footer navigation" asChild>
|
|
4423
|
+
* <footer>
|
|
4424
|
+
* <NavLink href="/">Home</NavLink>
|
|
4425
|
+
* </footer>
|
|
4426
|
+
* </NavRoot>
|
|
4427
|
+
* ```
|
|
4428
|
+
*/
|
|
4429
|
+
declare const NavRoot: React$1.ForwardRefExoticComponent<NavRootProps & React$1.RefAttributes<HTMLElement>>;
|
|
4430
|
+
|
|
4431
|
+
interface NavListProps extends Omit<React$1.OlHTMLAttributes<HTMLOListElement>, "className" | "style"> {
|
|
4432
|
+
/**
|
|
4433
|
+
* HTML element to render
|
|
4434
|
+
* @default 'ol'
|
|
4435
|
+
*/
|
|
4436
|
+
as?: "ol" | "ul";
|
|
4437
|
+
/**
|
|
4438
|
+
* Render as child component (Radix pattern)
|
|
4439
|
+
* When true, renders children through Slot component instead of list element
|
|
4440
|
+
*/
|
|
4441
|
+
asChild?: boolean;
|
|
4442
|
+
/**
|
|
4443
|
+
* List items (NavItem components)
|
|
4444
|
+
*/
|
|
4445
|
+
children: React$1.ReactNode;
|
|
4446
|
+
}
|
|
4447
|
+
/**
|
|
4448
|
+
* NavList - Structural list container for navigation
|
|
4449
|
+
*
|
|
4450
|
+
* Renders an ordered (`<ol>`) or unordered (`<ul>`) list.
|
|
4451
|
+
* Default element is `<ol>` for semantic navigation lists.
|
|
4452
|
+
*
|
|
4453
|
+
* This component is a pure structural wrapper with no styling, layout, or logic.
|
|
4454
|
+
* All visual styling should be applied through child components or external wrappers.
|
|
4455
|
+
*/
|
|
4456
|
+
declare const NavList: React$1.ForwardRefExoticComponent<NavListProps & React$1.RefAttributes<HTMLOListElement | HTMLUListElement>>;
|
|
4457
|
+
|
|
4458
|
+
/**
|
|
4459
|
+
* Icon Props Interface
|
|
4460
|
+
*
|
|
4461
|
+
* Shared props interface for all icon components.
|
|
4462
|
+
* Ensures consistent API across all icons in the registry.
|
|
4463
|
+
*/
|
|
4464
|
+
|
|
4465
|
+
/**
|
|
4466
|
+
* Base props for all icon components
|
|
4467
|
+
*/
|
|
4468
|
+
interface IconProps$1 extends React$1.SVGProps<SVGSVGElement> {
|
|
4469
|
+
/**
|
|
4470
|
+
* Additional CSS classes
|
|
4471
|
+
*/
|
|
4472
|
+
className?: string;
|
|
4473
|
+
/**
|
|
4474
|
+
* Hide icon from screen readers
|
|
4475
|
+
* @default true
|
|
4476
|
+
*/
|
|
4477
|
+
"aria-hidden"?: boolean;
|
|
4478
|
+
/**
|
|
4479
|
+
* Accessible label for the icon
|
|
4480
|
+
*/
|
|
4481
|
+
"aria-label"?: string;
|
|
4482
|
+
}
|
|
4483
|
+
|
|
4484
|
+
/**
|
|
4485
|
+
* Arrow right icon component
|
|
4486
|
+
*/
|
|
4487
|
+
declare const IconArrowRight: React$1.FC<IconProps$1>;
|
|
4488
|
+
|
|
4489
|
+
/**
|
|
4490
|
+
* Calendar icon component
|
|
4491
|
+
*/
|
|
4492
|
+
declare const IconCalendar: React$1.FC<IconProps$1>;
|
|
4493
|
+
|
|
4494
|
+
/**
|
|
4495
|
+
* Check icon component (checkmark)
|
|
4496
|
+
*/
|
|
4497
|
+
declare const IconCheck: React$1.FC<IconProps$1>;
|
|
4498
|
+
|
|
4499
|
+
/**
|
|
4500
|
+
* Chevron down icon component
|
|
4501
|
+
*/
|
|
4502
|
+
declare const IconChevronDown: React$1.FC<IconProps$1>;
|
|
4503
|
+
|
|
4504
|
+
/**
|
|
4505
|
+
* Chevron right icon component
|
|
4506
|
+
*/
|
|
4507
|
+
declare const IconChevronRight: React$1.FC<IconProps$1>;
|
|
4508
|
+
|
|
4509
|
+
/**
|
|
4510
|
+
* Close icon component (X)
|
|
4511
|
+
*/
|
|
4512
|
+
declare const IconClose: React$1.FC<IconProps$1>;
|
|
4513
|
+
|
|
4514
|
+
/**
|
|
4515
|
+
* Error icon component (X in circle - used as fallback)
|
|
4516
|
+
*/
|
|
4517
|
+
declare const IconError: React$1.FC<IconProps$1>;
|
|
4518
|
+
|
|
4519
|
+
/**
|
|
4520
|
+
* Info icon component (information circle)
|
|
4521
|
+
*/
|
|
4522
|
+
declare const IconInfo: React$1.FC<IconProps$1>;
|
|
4523
|
+
|
|
4524
|
+
/**
|
|
4525
|
+
* Location icon component
|
|
4526
|
+
*/
|
|
4527
|
+
declare const IconLocation: React$1.FC<IconProps$1>;
|
|
4528
|
+
|
|
4529
|
+
/**
|
|
4530
|
+
* Menu icon component (hamburger menu)
|
|
4531
|
+
*/
|
|
4532
|
+
declare const IconMenu: React$1.FC<IconProps$1>;
|
|
4533
|
+
|
|
4534
|
+
/**
|
|
4535
|
+
* Search icon component
|
|
4536
|
+
*/
|
|
4537
|
+
declare const IconSearch: React$1.FC<IconProps$1>;
|
|
4538
|
+
|
|
4539
|
+
/**
|
|
4540
|
+
* Success icon component (checkmark in circle)
|
|
4541
|
+
*/
|
|
4542
|
+
declare const IconSuccess: React$1.FC<IconProps$1>;
|
|
4543
|
+
|
|
4544
|
+
/**
|
|
4545
|
+
* Warning icon component (warning triangle)
|
|
4546
|
+
*/
|
|
4547
|
+
declare const IconWarning: React$1.FC<IconProps$1>;
|
|
4548
|
+
|
|
4549
|
+
/**
|
|
4550
|
+
* Icon Registry
|
|
4551
|
+
*
|
|
4552
|
+
* Central registry for all icon components.
|
|
4553
|
+
* Supports tree-shaking through individual named exports.
|
|
4554
|
+
*/
|
|
4555
|
+
|
|
4556
|
+
/**
|
|
4557
|
+
* Icons map for registry lookup
|
|
4558
|
+
* Used by Icon component to resolve icon by name
|
|
4559
|
+
*/
|
|
4560
|
+
declare const ICONS_MAP: Record<string, React$1.FC<IconProps$1>>;
|
|
4561
|
+
/**
|
|
4562
|
+
* Icon name type - union of all available icon names
|
|
4563
|
+
*/
|
|
4564
|
+
type IconName = keyof typeof ICONS_MAP;
|
|
4565
|
+
|
|
4566
|
+
/**
|
|
4567
|
+
* Icon size type
|
|
4568
|
+
* Icon uses a visual size scale (sm, md, lg, xl) distinct from interactive components.
|
|
4569
|
+
* Per Foundation rule: "Semi-interactive components (Icon, Badge, Avatar) MUST NOT use size as interactive scale"
|
|
4570
|
+
*/
|
|
4571
|
+
type IconSizeSubset = "sm" | "md" | "lg" | "xl";
|
|
4572
|
+
declare const iconVariants: (props?: ({
|
|
4573
|
+
size?: "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
4574
|
+
color?: "muted" | "default" | "info" | "success" | "warning" | "danger" | null | undefined;
|
|
4575
|
+
stroke?: "normal" | "bold" | "thin" | null | undefined;
|
|
4576
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
4577
|
+
interface IconProps extends Omit<React$1.SVGProps<SVGSVGElement>, "color" | "stroke"> {
|
|
4578
|
+
/**
|
|
4579
|
+
* Icon name from registry
|
|
4580
|
+
*/
|
|
4581
|
+
name: IconName;
|
|
4582
|
+
/**
|
|
4583
|
+
* Icon size
|
|
4584
|
+
* Icon uses a visual size scale (sm, md, lg, xl) distinct from interactive components.
|
|
4585
|
+
*/
|
|
4586
|
+
size?: IconSizeSubset;
|
|
4587
|
+
/**
|
|
4588
|
+
* Icon color variant
|
|
4589
|
+
*/
|
|
4590
|
+
color?: IconColor;
|
|
2874
4591
|
/**
|
|
2875
|
-
*
|
|
4592
|
+
* Stroke width variant
|
|
2876
4593
|
*/
|
|
2877
|
-
|
|
4594
|
+
stroke?: IconStroke;
|
|
2878
4595
|
/**
|
|
2879
|
-
*
|
|
4596
|
+
* Render as child element (composition pattern)
|
|
4597
|
+
* Uses Radix UI Slot for composition
|
|
2880
4598
|
*/
|
|
2881
|
-
|
|
4599
|
+
asChild?: boolean;
|
|
2882
4600
|
}
|
|
2883
4601
|
/**
|
|
2884
|
-
*
|
|
4602
|
+
* Icon component
|
|
4603
|
+
*
|
|
4604
|
+
* Unified icon component with token-driven sizing, colors, and stroke.
|
|
4605
|
+
* Supports SSR-safe rendering and tree-shakeable icon registry.
|
|
4606
|
+
*
|
|
4607
|
+
* Icon is a semi-interactive primitive that provides pure visual representation
|
|
4608
|
+
* without interactive behavior. All interactivity (clicks, keyboard navigation)
|
|
4609
|
+
* is delegated to parent components.
|
|
4610
|
+
*
|
|
4611
|
+
* @example
|
|
4612
|
+
* ```tsx
|
|
4613
|
+
* <Icon name="search" size="md" color="default" />
|
|
4614
|
+
* ```
|
|
2885
4615
|
*/
|
|
2886
|
-
|
|
2887
|
-
orientation?: "horizontal" | "vertical";
|
|
2888
|
-
}
|
|
2889
|
-
declare const Stepper: React$1.ForwardRefExoticComponent<StepperRootProps & React$1.RefAttributes<HTMLDivElement>> & {
|
|
2890
|
-
Root: React$1.ForwardRefExoticComponent<StepperRootProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2891
|
-
Item: React$1.ForwardRefExoticComponent<StepperItemPropsInternal & React$1.RefAttributes<HTMLDivElement>>;
|
|
2892
|
-
Indicator: React$1.ForwardRefExoticComponent<StepperIndicatorProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2893
|
-
Label: React$1.ForwardRefExoticComponent<StepperLabelProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2894
|
-
Content: React$1.ForwardRefExoticComponent<StepperContentProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
2895
|
-
};
|
|
4616
|
+
declare const Icon: React$1.ForwardRefExoticComponent<Omit<IconProps, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
|
|
2896
4617
|
|
|
2897
4618
|
/**
|
|
2898
4619
|
* DataList Component Types
|
|
@@ -2900,6 +4621,16 @@ declare const Stepper: React$1.ForwardRefExoticComponent<StepperRootProps & Reac
|
|
|
2900
4621
|
* TypeScript interfaces and types for DataList component.
|
|
2901
4622
|
*/
|
|
2902
4623
|
|
|
4624
|
+
/**
|
|
4625
|
+
* DataList Root component props
|
|
4626
|
+
*/
|
|
4627
|
+
interface DataListRootProps extends React.HTMLAttributes<HTMLDListElement> {
|
|
4628
|
+
/**
|
|
4629
|
+
* Label width for desktop layout
|
|
4630
|
+
* @default "md"
|
|
4631
|
+
*/
|
|
4632
|
+
labelWidth?: "sm" | "md" | "lg";
|
|
4633
|
+
}
|
|
2903
4634
|
/**
|
|
2904
4635
|
* DataList Item component props
|
|
2905
4636
|
*/
|
|
@@ -2914,6 +4645,28 @@ interface DataListItemProps$1 extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
2914
4645
|
padding?: ResponsiveSpacing;
|
|
2915
4646
|
}
|
|
2916
4647
|
|
|
4648
|
+
/**
|
|
4649
|
+
* DataList Root Component
|
|
4650
|
+
*
|
|
4651
|
+
* Mobile-first data list component for displaying key-value pairs.
|
|
4652
|
+
* Uses Stack for vertical layout and DATA_LIST_TOKENS for spacing.
|
|
4653
|
+
*/
|
|
4654
|
+
|
|
4655
|
+
/**
|
|
4656
|
+
* DataList Root component
|
|
4657
|
+
*
|
|
4658
|
+
* @example
|
|
4659
|
+
* ```tsx
|
|
4660
|
+
* <DataList.Root labelWidth="lg">
|
|
4661
|
+
* <DataList.Item>
|
|
4662
|
+
* <DataList.Label>Name</DataList.Label>
|
|
4663
|
+
* <DataList.Value>John Doe</DataList.Value>
|
|
4664
|
+
* </DataList.Item>
|
|
4665
|
+
* </DataList.Root>
|
|
4666
|
+
* ```
|
|
4667
|
+
*/
|
|
4668
|
+
declare const DataListRoot: React$1.ForwardRefExoticComponent<DataListRootProps & React$1.RefAttributes<HTMLDListElement>>;
|
|
4669
|
+
|
|
2917
4670
|
/**
|
|
2918
4671
|
* DataList Item Component
|
|
2919
4672
|
*
|
|
@@ -2944,7 +4697,7 @@ interface DataListLabelProps extends React$1.HTMLAttributes<HTMLElement> {
|
|
|
2944
4697
|
/**
|
|
2945
4698
|
* DataList Label component
|
|
2946
4699
|
* Mobile: full width
|
|
2947
|
-
* Desktop: fixed width (from tokens)
|
|
4700
|
+
* Desktop: fixed width (from tokens, controlled by Root labelWidth prop)
|
|
2948
4701
|
*/
|
|
2949
4702
|
declare const DataListLabel: React$1.ForwardRefExoticComponent<DataListLabelProps & React$1.RefAttributes<HTMLElement>>;
|
|
2950
4703
|
|
|
@@ -3046,7 +4799,7 @@ interface EmptyStateIconProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
3046
4799
|
* Icon size
|
|
3047
4800
|
* @default "md"
|
|
3048
4801
|
*/
|
|
3049
|
-
size?:
|
|
4802
|
+
size?: EmptyStateIconSize;
|
|
3050
4803
|
}
|
|
3051
4804
|
/**
|
|
3052
4805
|
* EmptyState Icon component
|
|
@@ -3076,42 +4829,6 @@ declare const EmptyStateTitle: React$1.ForwardRefExoticComponent<EmptyStateTitle
|
|
|
3076
4829
|
* TypeScript interfaces and types for Table component.
|
|
3077
4830
|
*/
|
|
3078
4831
|
|
|
3079
|
-
/**
|
|
3080
|
-
* Table column definition
|
|
3081
|
-
*/
|
|
3082
|
-
interface TableColumn$1<T = Record<string, unknown>> {
|
|
3083
|
-
/**
|
|
3084
|
-
* Column key (must match a key in the data object)
|
|
3085
|
-
*/
|
|
3086
|
-
key: keyof T;
|
|
3087
|
-
/**
|
|
3088
|
-
* Column header title
|
|
3089
|
-
*/
|
|
3090
|
-
title: string;
|
|
3091
|
-
/**
|
|
3092
|
-
* Custom render function for cell content
|
|
3093
|
-
*/
|
|
3094
|
-
render?: (value: T[keyof T], item: T, index: number) => ReactNode;
|
|
3095
|
-
/**
|
|
3096
|
-
* Column alignment
|
|
3097
|
-
* @default "left"
|
|
3098
|
-
*/
|
|
3099
|
-
align?: "left" | "center" | "right";
|
|
3100
|
-
/**
|
|
3101
|
-
* Column width (CSS value or Tailwind class)
|
|
3102
|
-
*/
|
|
3103
|
-
width?: string;
|
|
3104
|
-
/**
|
|
3105
|
-
* Whether column is sortable
|
|
3106
|
-
* @default false
|
|
3107
|
-
*/
|
|
3108
|
-
sortable?: boolean;
|
|
3109
|
-
/**
|
|
3110
|
-
* Cell size
|
|
3111
|
-
* @default "md"
|
|
3112
|
-
*/
|
|
3113
|
-
size?: "sm" | "md" | "lg";
|
|
3114
|
-
}
|
|
3115
4832
|
/**
|
|
3116
4833
|
* Sort direction
|
|
3117
4834
|
*/
|
|
@@ -3153,60 +4870,16 @@ interface TableContextValue {
|
|
|
3153
4870
|
* Whether table has expandable rows
|
|
3154
4871
|
*/
|
|
3155
4872
|
expandable?: boolean;
|
|
3156
|
-
/**
|
|
3157
|
-
* Render function for expandable content
|
|
3158
|
-
*/
|
|
3159
|
-
renderExpandableContent?: (item: unknown, index: number) => ReactNode;
|
|
3160
4873
|
}
|
|
3161
4874
|
/**
|
|
3162
4875
|
* Table Root component props
|
|
3163
4876
|
*/
|
|
3164
|
-
interface TableRootProps
|
|
3165
|
-
/**
|
|
3166
|
-
* Table data array
|
|
3167
|
-
*/
|
|
3168
|
-
data: T[];
|
|
3169
|
-
/**
|
|
3170
|
-
* Column definitions
|
|
3171
|
-
*/
|
|
3172
|
-
columns: TableColumn$1<T>[];
|
|
3173
|
-
/**
|
|
3174
|
-
* Key to use for row identification
|
|
3175
|
-
*/
|
|
3176
|
-
rowKey: keyof T | ((item: T, index: number) => string | number);
|
|
3177
|
-
/**
|
|
3178
|
-
* Whether table supports sorting
|
|
3179
|
-
* @default false
|
|
3180
|
-
*/
|
|
3181
|
-
sortable?: boolean;
|
|
4877
|
+
interface TableRootProps extends React.HTMLAttributes<HTMLTableElement> {
|
|
3182
4878
|
/**
|
|
3183
4879
|
* Whether table supports expandable rows
|
|
3184
4880
|
* @default false
|
|
3185
4881
|
*/
|
|
3186
4882
|
expandable?: boolean;
|
|
3187
|
-
/**
|
|
3188
|
-
* Render function for expandable content
|
|
3189
|
-
*/
|
|
3190
|
-
renderExpandableContent?: (item: T, index: number) => ReactNode;
|
|
3191
|
-
/**
|
|
3192
|
-
* Whether table is in loading state
|
|
3193
|
-
* @default false
|
|
3194
|
-
*/
|
|
3195
|
-
loading?: boolean;
|
|
3196
|
-
/**
|
|
3197
|
-
* Empty state message (shown when data is empty)
|
|
3198
|
-
*/
|
|
3199
|
-
emptyMessage?: string;
|
|
3200
|
-
/**
|
|
3201
|
-
* Whether header is sticky
|
|
3202
|
-
* @default false
|
|
3203
|
-
*/
|
|
3204
|
-
stickyHeader?: boolean;
|
|
3205
|
-
/**
|
|
3206
|
-
* Row size
|
|
3207
|
-
* @default "md"
|
|
3208
|
-
*/
|
|
3209
|
-
rowSize?: "sm" | "md" | "lg";
|
|
3210
4883
|
}
|
|
3211
4884
|
/**
|
|
3212
4885
|
* Table Header component props
|
|
@@ -3261,10 +4934,6 @@ interface TableRowProps extends React.HTMLAttributes<HTMLTableRowElement> {
|
|
|
3261
4934
|
* @default false
|
|
3262
4935
|
*/
|
|
3263
4936
|
expandable?: boolean;
|
|
3264
|
-
/**
|
|
3265
|
-
* Row key (for expansion tracking)
|
|
3266
|
-
*/
|
|
3267
|
-
rowKey?: string | number;
|
|
3268
4937
|
/**
|
|
3269
4938
|
* Whether row is expanded
|
|
3270
4939
|
* @default false
|
|
@@ -3346,28 +5015,25 @@ declare function useTableContext(): TableContextValue;
|
|
|
3346
5015
|
*
|
|
3347
5016
|
* @example
|
|
3348
5017
|
* ```tsx
|
|
3349
|
-
* <Table
|
|
3350
|
-
* data={users}
|
|
3351
|
-
* columns={columns}
|
|
3352
|
-
* rowKey="id"
|
|
3353
|
-
* sortable
|
|
3354
|
-
* >
|
|
5018
|
+
* <Table expandable>
|
|
3355
5019
|
* <Table.Header>
|
|
3356
5020
|
* <Table.Row>
|
|
3357
|
-
* <Table.Head>Name</Table.Head>
|
|
5021
|
+
* <Table.Head sortable columnKey="name">Name</Table.Head>
|
|
5022
|
+
* <Table.Head>Email</Table.Head>
|
|
3358
5023
|
* </Table.Row>
|
|
3359
5024
|
* </Table.Header>
|
|
3360
5025
|
* <Table.Body>
|
|
3361
5026
|
* {users.map((user) => (
|
|
3362
|
-
* <Table.Row key={user.id}>
|
|
5027
|
+
* <Table.Row key={user.id} expandable expanded={expanded.has(user.id)}>
|
|
3363
5028
|
* <Table.Cell>{user.name}</Table.Cell>
|
|
5029
|
+
* <Table.Cell>{user.email}</Table.Cell>
|
|
3364
5030
|
* </Table.Row>
|
|
3365
5031
|
* ))}
|
|
3366
5032
|
* </Table.Body>
|
|
3367
|
-
* </Table
|
|
5033
|
+
* </Table>
|
|
3368
5034
|
* ```
|
|
3369
5035
|
*/
|
|
3370
|
-
declare function TableRoot
|
|
5036
|
+
declare function TableRoot({ expandable, className, children, ...props }: TableRootProps): react_jsx_runtime.JSX.Element;
|
|
3371
5037
|
declare namespace TableRoot {
|
|
3372
5038
|
var displayName: string;
|
|
3373
5039
|
}
|
|
@@ -3470,147 +5136,27 @@ declare const TableRow: React$1.ForwardRefExoticComponent<TableRowProps & React$
|
|
|
3470
5136
|
*/
|
|
3471
5137
|
declare const TableSortIcon: React$1.ForwardRefExoticComponent<TableSortIconProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
3472
5138
|
|
|
3473
|
-
interface TableColumn<T> {
|
|
3474
|
-
key: keyof T;
|
|
3475
|
-
title: string;
|
|
3476
|
-
render?: (value: T[keyof T], item: T) => React__default.ReactNode;
|
|
3477
|
-
}
|
|
3478
|
-
|
|
3479
5139
|
/**
|
|
3480
|
-
*
|
|
5140
|
+
* Table column configuration
|
|
3481
5141
|
*
|
|
3482
|
-
*
|
|
3483
|
-
* Ensures consistent API across all icons in the registry.
|
|
3484
|
-
*/
|
|
3485
|
-
|
|
3486
|
-
/**
|
|
3487
|
-
* Base props for all icon components
|
|
5142
|
+
* @template T - The type of data items in the table
|
|
3488
5143
|
*/
|
|
3489
|
-
interface
|
|
3490
|
-
/**
|
|
3491
|
-
* Additional CSS classes
|
|
3492
|
-
*/
|
|
3493
|
-
className?: string;
|
|
3494
|
-
/**
|
|
3495
|
-
* Hide icon from screen readers
|
|
3496
|
-
* @default true
|
|
3497
|
-
*/
|
|
3498
|
-
"aria-hidden"?: boolean;
|
|
5144
|
+
interface TableColumn<T> {
|
|
3499
5145
|
/**
|
|
3500
|
-
*
|
|
5146
|
+
* Key of the data item property to display in this column
|
|
3501
5147
|
*/
|
|
3502
|
-
|
|
3503
|
-
}
|
|
3504
|
-
|
|
3505
|
-
/**
|
|
3506
|
-
* Arrow right icon component
|
|
3507
|
-
*/
|
|
3508
|
-
declare const IconArrowRight: React$1.FC<IconProps$1>;
|
|
3509
|
-
|
|
3510
|
-
/**
|
|
3511
|
-
* Calendar icon component
|
|
3512
|
-
*/
|
|
3513
|
-
declare const IconCalendar: React$1.FC<IconProps$1>;
|
|
3514
|
-
|
|
3515
|
-
/**
|
|
3516
|
-
* Check icon component (checkmark)
|
|
3517
|
-
*/
|
|
3518
|
-
declare const IconCheck: React$1.FC<IconProps$1>;
|
|
3519
|
-
|
|
3520
|
-
/**
|
|
3521
|
-
* Chevron down icon component
|
|
3522
|
-
*/
|
|
3523
|
-
declare const IconChevronDown: React$1.FC<IconProps$1>;
|
|
3524
|
-
|
|
3525
|
-
/**
|
|
3526
|
-
* Chevron right icon component
|
|
3527
|
-
*/
|
|
3528
|
-
declare const IconChevronRight: React$1.FC<IconProps$1>;
|
|
3529
|
-
|
|
3530
|
-
/**
|
|
3531
|
-
* Close icon component (X)
|
|
3532
|
-
*/
|
|
3533
|
-
declare const IconClose: React$1.FC<IconProps$1>;
|
|
3534
|
-
|
|
3535
|
-
/**
|
|
3536
|
-
* Error icon component (X in circle - used as fallback)
|
|
3537
|
-
*/
|
|
3538
|
-
declare const IconError: React$1.FC<IconProps$1>;
|
|
3539
|
-
|
|
3540
|
-
/**
|
|
3541
|
-
* Info icon component (information circle)
|
|
3542
|
-
*/
|
|
3543
|
-
declare const IconInfo: React$1.FC<IconProps$1>;
|
|
3544
|
-
|
|
3545
|
-
/**
|
|
3546
|
-
* Location icon component
|
|
3547
|
-
*/
|
|
3548
|
-
declare const IconLocation: React$1.FC<IconProps$1>;
|
|
3549
|
-
|
|
3550
|
-
/**
|
|
3551
|
-
* Menu icon component (hamburger menu)
|
|
3552
|
-
*/
|
|
3553
|
-
declare const IconMenu: React$1.FC<IconProps$1>;
|
|
3554
|
-
|
|
3555
|
-
/**
|
|
3556
|
-
* Search icon component
|
|
3557
|
-
*/
|
|
3558
|
-
declare const IconSearch: React$1.FC<IconProps$1>;
|
|
3559
|
-
|
|
3560
|
-
/**
|
|
3561
|
-
* Success icon component (checkmark in circle)
|
|
3562
|
-
*/
|
|
3563
|
-
declare const IconSuccess: React$1.FC<IconProps$1>;
|
|
3564
|
-
|
|
3565
|
-
/**
|
|
3566
|
-
* Warning icon component (warning triangle)
|
|
3567
|
-
*/
|
|
3568
|
-
declare const IconWarning: React$1.FC<IconProps$1>;
|
|
3569
|
-
|
|
3570
|
-
/**
|
|
3571
|
-
* Icon Registry
|
|
3572
|
-
*
|
|
3573
|
-
* Central registry for all icon components.
|
|
3574
|
-
* Supports tree-shaking through individual named exports.
|
|
3575
|
-
*/
|
|
3576
|
-
|
|
3577
|
-
/**
|
|
3578
|
-
* Icons map for registry lookup
|
|
3579
|
-
* Used by Icon component to resolve icon by name
|
|
3580
|
-
*/
|
|
3581
|
-
declare const ICONS_MAP: Record<string, React$1.FC<IconProps$1>>;
|
|
3582
|
-
/**
|
|
3583
|
-
* Icon name type - union of all available icon names
|
|
3584
|
-
*/
|
|
3585
|
-
type IconName = keyof typeof ICONS_MAP;
|
|
3586
|
-
|
|
3587
|
-
declare const iconVariants: (props?: ({
|
|
3588
|
-
size?: "sm" | "md" | "lg" | "xl" | null | undefined;
|
|
3589
|
-
color?: "muted" | "default" | "success" | "warning" | "danger" | "info" | null | undefined;
|
|
3590
|
-
stroke?: "normal" | "bold" | "thin" | null | undefined;
|
|
3591
|
-
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
3592
|
-
interface IconProps extends Omit<React$1.SVGProps<SVGSVGElement>, "color" | "stroke">, VariantProps<typeof iconVariants> {
|
|
5148
|
+
key: keyof T;
|
|
3593
5149
|
/**
|
|
3594
|
-
*
|
|
5150
|
+
* Column header title
|
|
3595
5151
|
*/
|
|
3596
|
-
|
|
5152
|
+
title: string;
|
|
3597
5153
|
/**
|
|
3598
|
-
*
|
|
3599
|
-
*
|
|
5154
|
+
* Optional custom render function for cell content
|
|
5155
|
+
* @param value - The value of the cell
|
|
5156
|
+
* @param item - The entire data item
|
|
5157
|
+
* @returns React node to render in the cell
|
|
3600
5158
|
*/
|
|
3601
|
-
|
|
5159
|
+
render?: (value: T[keyof T], item: T) => React__default.ReactNode;
|
|
3602
5160
|
}
|
|
3603
|
-
/**
|
|
3604
|
-
* Icon component
|
|
3605
|
-
*
|
|
3606
|
-
* Unified icon component with token-driven sizing, colors, and stroke.
|
|
3607
|
-
* Supports SSR-safe rendering and tree-shakeable icon registry.
|
|
3608
|
-
*
|
|
3609
|
-
* @example
|
|
3610
|
-
* ```tsx
|
|
3611
|
-
* <Icon name="search" size="md" color="default" />
|
|
3612
|
-
* ```
|
|
3613
|
-
*/
|
|
3614
|
-
declare const Icon: React$1.ForwardRefExoticComponent<Omit<IconProps, "ref"> & React$1.RefAttributes<SVGSVGElement>>;
|
|
3615
5161
|
|
|
3616
|
-
export { Alert, type AlertProps, BADGE_VARIANTS, Backdrop, type BackdropProps, Badge, type BadgeProps, type BadgeVariant, Box, type BoxProps, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsItemProps, type BreadcrumbsRootProps, type BreadcrumbsSeparatorProps, Button, type ButtonProps, Card, CardBody, type CardBodyProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, Checkbox, type CheckboxProps, Column, type StackProps as ColumnProps, Container, type ContainerProps, Surface as ContainerSurface, type SurfaceProps as ContainerSurfaceProps, ContextMenu, ContextMenuCheckboxItem, type ContextMenuCheckboxItemProps, ContextMenuContent, type ContextMenuContentProps, ContextMenuItem, type ContextMenuItemProps, ContextMenuLabel, type ContextMenuLabelProps, ContextMenuRadioGroup, type ContextMenuRadioGroupProps, ContextMenuRadioItem, type ContextMenuRadioItemProps, ContextMenuRoot, type ContextMenuRootProps, ContextMenuSeparator, type ContextMenuSeparatorProps, ContextMenuSub, ContextMenuSubContent, type ContextMenuSubContentProps, type ContextMenuSubProps, ContextMenuSubTrigger, type ContextMenuSubTriggerProps, ContextMenuTrigger, type ContextMenuTriggerProps, DataListRoot as DataList, DataListItem, type DataListItemProps, DataListLabel, type DataListLabelProps, DataListRoot, type DataListRootProps, DataListValue, type DataListValueProps, Dialog, DialogBody, type DialogBodyProps, DialogDescription, type DialogDescriptionProps, DialogFooter, type DialogFooterProps, DialogHeader, type DialogHeaderProps, type DialogProps, DialogRoot, DialogTitle, type DialogTitleProps, EmptyState, EmptyStateAction, type EmptyStateActionProps, EmptyStateDescription, type EmptyStateDescriptionProps, EmptyStateIcon, type EmptyStateIconProps, type EmptyStateProps, EmptyStateTitle, type EmptyStateTitleProps, FieldRoot as Field, type FieldControlProps, type FieldDescriptionProps, type FieldErrorProps, type FieldLabelProps, type FieldProps, Flex, type FlexProps, Grid, type GridProps, type GroupByFunction, Heading, type HeadingProps, HoverCardContent, type HoverCardContentProps, HoverCardRoot, type HoverCardRootProps, HoverCardTrigger, type HoverCardTriggerProps, ICONS_MAP,
|
|
5162
|
+
export { ALERT_VARIANTS, ASPECT_RATIO_PRESETS, Accordion, type AccordionContentProps, type AccordionItemProps, type AccordionRootProps, type AccordionSize, type AccordionTriggerProps, type AccordionVariant, Alert, type AlertProps, type AlertVariant, AspectRatio, type AspectRatioPreset, type AspectRatioProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarGroupSpacing, type AvatarProps, type AvatarShape, type AvatarSize, type AvatarStatus, BADGE_VARIANTS, Backdrop, type BackdropProps, Badge, type BadgeProps, type BadgeVariant, Box, type BoxProps, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsItemProps, type BreadcrumbsRootProps, type BreadcrumbsSeparatorProps, Button, type ButtonProps, CHIP_RADIUS_VALUES, CHIP_VARIANTS, Card, CardBody, type CardBodyProps, CardFooter, type CardFooterProps, CardHeader, type CardHeaderProps, type CardProps, Checkbox, type CheckboxProps, Chip, type ChipProps, type ChipRadius, type ChipVariant, Column, type StackProps as ColumnProps, Combobox, ComboboxInput, type ComboboxInputProps, ComboboxList, type ComboboxListProps, type ComboboxOption, ComboboxRoot, type ComboboxRootProps, type ComboboxSize, Container, type ContainerProps, Surface as ContainerSurface, type SurfaceProps as ContainerSurfaceProps, ContextMenu, ContextMenuCheckboxItem, type ContextMenuCheckboxItemProps, ContextMenuContent, type ContextMenuContentProps, ContextMenuItem, type ContextMenuItemProps, ContextMenuLabel, type ContextMenuLabelProps, ContextMenuRadioGroup, type ContextMenuRadioGroupProps, ContextMenuRadioItem, type ContextMenuRadioItemProps, ContextMenuRoot, type ContextMenuRootProps, ContextMenuSeparator, type ContextMenuSeparatorProps, ContextMenuSub, ContextMenuSubContent, type ContextMenuSubContentProps, type ContextMenuSubProps, ContextMenuSubTrigger, type ContextMenuSubTriggerProps, ContextMenuTrigger, type ContextMenuTriggerProps, DataListRoot as DataList, DataListItem, type DataListItemProps, DataListLabel, type DataListLabelProps, DataListRoot, type DataListRootProps, DataListValue, type DataListValueProps, Dialog, DialogBody, type DialogBodyProps, DialogDescription, type DialogDescriptionProps, DialogFooter, type DialogFooterProps, DialogHeader, type DialogHeaderProps, type DialogProps, DialogRoot, DialogTitle, type DialogTitleProps, EmptyState, EmptyStateAction, type EmptyStateActionProps, EmptyStateDescription, type EmptyStateDescriptionProps, EmptyStateIcon, type EmptyStateIconProps, EmptyStateIconSize, type EmptyStateProps, EmptyStateTitle, type EmptyStateTitleProps, FieldRoot as Field, type FieldControlProps, type FieldDescriptionProps, type FieldErrorProps, type FieldLabelProps, type FieldProps, FileUpload, type FileUploadError, type FileUploadProps, type FileUploadSize, type FileUploadVariant, Flex, type FlexProps, Grid, type GridProps, type GroupByFunction, Heading, type HeadingProps, HoverCardContent, type HoverCardContentProps, HoverCardRoot, type HoverCardRootProps, HoverCardTrigger, type HoverCardTriggerProps, ICONS_MAP, Icon, IconArrowRight, IconCalendar, IconCheck, IconChevronDown, IconChevronRight, IconClose, IconColor, type IconProps$1 as IconComponentProps, IconError, IconInfo, IconLocation, IconMenu, type IconName, type IconProps, IconSearch, IconStroke, IconSuccess, IconWarning, Input, type InputProps, Label, type LabelProps, LinkProps, Modal, ModalClose, type ModalCloseProps, ModalContent, type ModalContentProps, ModalDescription, type ModalDescriptionProps, ModalFooter, type ModalFooterProps, ModalHeader, type ModalHeaderProps, ModalOverlay, type ModalOverlayProps, ModalRoot, type ModalRootProps, type ModalSize, ModalTitle, type ModalTitleProps, ModalTrigger, type ModalTriggerProps, MultiSelect, type MultiSelectOption, type MultiSelectProps, type MultiSelectSize, NavItem, type NavItemProps, NavLink, type NavLinkProps, NavList, type NavListProps, NavRoot, type NavRootProps, NavSeparator, type NavSeparatorProps, NavText, type NavTextProps, NotificationCenter, NotificationCenterDismissAll, type NotificationCenterDismissAllProps, NotificationCenterGroupHeader, type NotificationCenterGroupHeaderProps, NotificationCenterItem, type NotificationCenterItemProps, NotificationCenterList, type NotificationCenterListProps, NotificationCenterPanel, type NotificationCenterPanelProps, NotificationCenterProvider, type NotificationCenterProviderProps, NotificationCenterTrigger, type NotificationCenterTriggerProps, type NotificationChannel, type NotificationContextType, type NotificationData, type NotificationOptions, type NotificationVariant, Pagination, type PaginationEllipsisProps, type PaginationItemProps, type PaginationNextProps, type PaginationPrevProps, type PaginationRootProps, Portal, type PortalProps, Progress, type ProgressProps, type ProgressSize, Radio, RadioGroup, type RadioGroupProps, type RadioProps, RangeSlider, type RangeSliderProps, type RangeSliderSize, type RangeSliderVariant, Responsive, Row, type RowProps, Section, type SectionProps, SegmentedControl, type SegmentedControlItemProps, type SegmentedControlOrientation, type SegmentedControlRootProps, type SegmentedControlSize, Select, SelectContent, type SelectContentProps, SelectGroup, type SelectGroupProps, SelectIcon, type SelectIconProps, SelectItem, SelectItemIndicator, type SelectItemIndicatorProps, type SelectItemProps, SelectItemText, type SelectItemTextProps, SelectLabel, type SelectLabelProps, SelectRoot, type SelectRootProps, SelectSeparator, type SelectSeparatorProps, SelectTrigger, type SelectTriggerProps, SelectValue, type SelectValueProps, SelectViewport, type SelectViewportProps, Separator, type SeparatorProps, Skeleton, type SkeletonProps, type SkeletonVariant, Slider, type SliderProps, type SliderSize, type SliderVariant, type SortDirection, type SortState, Spinner, type SpinnerEasing, type SpinnerLabelPosition, type SpinnerProps, type SpinnerSize, type SpinnerTone, type SpinnerVariant, Stack, type StackProps, Stepper, type StepperContentProps, type StepperIndicatorProps, type StepperItemProps, type StepperLabelProps, type StepperRootProps, type StepperStep, Surface, type SurfaceProps, TableRoot as Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, type TableColumn, type TableContextValue, TableEmpty, type TableEmptyProps, TableExpandableContent, type TableExpandableContentProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, TableLoadingState, type TableLoadingStateProps, TableRoot, type TableRootProps, TableRow, type TableRowProps, TableSortIcon, type TableSortIconProps, Tabs, type TabsContentProps, type TabsListProps, type TabsRootProps, type TabsTriggerProps, Text, type TextProps, type TextSize, type TextWeight, Textarea, type TextareaProps, Toast$1 as Toast, ToastAction, type ToastData, type ToastOptions, type ToastPosition, type ToastProps, ToastProvider, type ToastProviderProps, ToastViewport, type ToastViewportProps, Toaster, alertVariants, badgeVariants, checkboxVariants, chipVariants, surfaceVariants as containerSurfaceVariants, headingVariants, iconVariants, inputVariants, radioVariants, segmentedControlItemVariants, segmentedControlRootVariants, separatorVariants, skeletonVariants, surfaceVariants, textVariants, textareaVariants, useNotificationCenter, useNotificationCenterContext, useTableContext, useLocalToast as useToast };
|