cetec-design-system 2.2.2-next.0 → 2.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{cetec-preset-CcvrY8wh.js → cetec-preset-CZJA5UR0.js} +1696 -1331
- package/dist/cetec-preset-CZJA5UR0.js.map +1 -0
- package/dist/index.js +12655 -9360
- package/dist/index.js.map +1 -1
- package/dist/panda.buildinfo.json +461 -365
- package/dist/playroom-static.css +68887 -180258
- package/dist/preset.js +1 -1
- package/dist/specs/recipes.json +126 -25
- package/dist/styles.css +1315 -642
- package/dist/types/index.d.ts +3001 -273
- package/dist/types/preset.d.ts +15 -0
- package/package.json +6 -1
- package/src/recipes/autocomplete.ts +266 -0
- package/src/recipes/calendar.ts +92 -0
- package/src/recipes/chip.ts +6 -0
- package/src/recipes/dateMenus.ts +40 -0
- package/src/recipes/dateTimeMenus.ts +43 -0
- package/src/recipes/menu.ts +13 -1
- package/src/recipes/modal.ts +1 -1
- package/src/recipes/recipes-slot.ts +7 -2
- package/src/recipes/segmentedFields.ts +192 -0
- package/src/recipes/segmentedInputs.ts +106 -0
- package/src/recipes/text.ts +32 -28
- package/src/recipes/timeMenus.ts +110 -0
- package/src/styles/primitives/zIndex.ts +1 -0
- package/src/styles/semantics/colors.ts +44 -0
- package/src/styles/semantics/zIndex.ts +2 -0
- package/src/styles/utilities/conditions.ts +1 -0
- package/src/styles/utilities/transitions.ts +2 -1
- package/src/utils/dsChain.ts +113 -0
- package/src/utils/dsComponent.ts +44 -0
- package/src/utils/dsPart.ts +41 -0
- package/src/utils/splitProps.ts +15 -0
- package/dist/cetec-preset-CcvrY8wh.js.map +0 -1
- package/src/recipes/datePicker.ts +0 -230
- package/src/recipes/timePicker.ts +0 -206
package/dist/types/index.d.ts
CHANGED
|
@@ -7,14 +7,14 @@ import { ElementType } from 'react';
|
|
|
7
7
|
import { HTMLProps } from 'react';
|
|
8
8
|
import { JSX } from 'react/jsx-runtime';
|
|
9
9
|
import { JSX as JSX_2 } from 'react';
|
|
10
|
-
import {
|
|
10
|
+
import { KeyboardEventHandler } from 'react';
|
|
11
11
|
import { MouseEvent as MouseEvent_2 } from 'react';
|
|
12
12
|
import { Placement } from '@floating-ui/react';
|
|
13
13
|
import { Preset } from '@pandacss/dev';
|
|
14
14
|
import { ReactElement } from 'react';
|
|
15
15
|
import { ReactNode } from 'react';
|
|
16
|
+
import { Ref } from 'react';
|
|
16
17
|
import { RefObject } from 'react';
|
|
17
|
-
import { SVGAttributes } from 'react';
|
|
18
18
|
|
|
19
19
|
declare type AdvancedPseudos =
|
|
20
20
|
| ":-moz-any()"
|
|
@@ -42,6 +42,12 @@ declare type AdvancedPseudos =
|
|
|
42
42
|
| ":nth-of-type"
|
|
43
43
|
| ":where";
|
|
44
44
|
|
|
45
|
+
/**
|
|
46
|
+
* Numeric design-token sizes supported by the icon recipe. Non-numeric sizes
|
|
47
|
+
* do not have corresponding recipe variants.
|
|
48
|
+
*/
|
|
49
|
+
export declare type AllowedIconSizes = keyof typeof numericSizes;
|
|
50
|
+
|
|
45
51
|
declare type AnimationToken = "spin" | "ping" | "pulse" | "bounce" | "skeletonWave"
|
|
46
52
|
|
|
47
53
|
declare type AnySelector = `${string}&` | `&${string}` | `@${AtRuleType}${string}`
|
|
@@ -65,6 +71,8 @@ declare type AriaAttributes =
|
|
|
65
71
|
declare type AspectRatioToken = "square" | "landscape" | "portrait" | "wide" | "ultrawide" | "golden"
|
|
66
72
|
|
|
67
73
|
declare type AsProp<T extends ElementType> = {
|
|
74
|
+
/** Element or component rendered by the polymorphic component. */
|
|
75
|
+
/** @default "div" */
|
|
68
76
|
as?: T;
|
|
69
77
|
};
|
|
70
78
|
|
|
@@ -84,38 +92,199 @@ declare type AtRuleType = 'media' | 'layer' | 'container' | 'supports' | 'page'
|
|
|
84
92
|
declare type AttributeSelector = `&${Pseudos | DataAttributes | AriaAttributes}`
|
|
85
93
|
|
|
86
94
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
95
|
+
* Filters and selects one or more metadata-only `Option` values.
|
|
96
|
+
*
|
|
97
|
+
* Use controlled `value` and `onValueChange`, or initialize uncontrolled state
|
|
98
|
+
* with `defaultValue`. The input uses combobox semantics; arrow keys navigate,
|
|
99
|
+
* Enter selects, and Escape closes the listbox. Supply `aria-label` or
|
|
100
|
+
* `aria-labelledby` when no external label is associated with the input.
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```tsx
|
|
104
|
+
* <Autocomplete defaultValue="active" aria-label="Status">
|
|
105
|
+
* <Option value="active" label="Active" />
|
|
106
|
+
* <Option value="archived" label="Archived" />
|
|
107
|
+
* </Autocomplete>
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
export declare const Autocomplete: (props: AutocompleteProps) => JSX.Element;
|
|
111
|
+
|
|
112
|
+
declare type AutocompleteBaseProps = Omit<BoxProps, keyof AutocompleteVariantProps | 'children' | 'defaultValue' | 'onChange' | 'value'> & AutocompleteVariantProps & {
|
|
113
|
+
/** Controlled text displayed in the input. */
|
|
114
|
+
inputValue?: string;
|
|
115
|
+
/** Initial input text when `inputValue` is not provided. */
|
|
116
|
+
defaultInputValue?: string;
|
|
117
|
+
/** Runs when typing, selection, or clearing changes the input text. */
|
|
118
|
+
onInputValueChange?: (value: string, reason: AutocompleteInputChangeReason) => void;
|
|
119
|
+
/**
|
|
120
|
+
* Runs when the input text changes.
|
|
121
|
+
*
|
|
122
|
+
* @deprecated Use `onInputValueChange`.
|
|
123
|
+
*/
|
|
124
|
+
onInputChange?: (value: string, reason: AutocompleteInputChangeReason) => void;
|
|
125
|
+
/** Controlled listbox visibility. Pair with `onOpenChange`. */
|
|
126
|
+
open?: boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Initial listbox visibility when `open` is not provided.
|
|
129
|
+
*
|
|
130
|
+
* @default false
|
|
131
|
+
*/
|
|
132
|
+
defaultOpen?: boolean;
|
|
133
|
+
/** Runs when interaction requests that the listbox open or close. */
|
|
134
|
+
onOpenChange?: (open: boolean, reason: AutocompleteOpenChangeReason) => void;
|
|
135
|
+
/**
|
|
136
|
+
* Offers the current input as a selectable option when it has no exact
|
|
137
|
+
* match.
|
|
138
|
+
*
|
|
139
|
+
* @default false
|
|
140
|
+
*/
|
|
141
|
+
allowCustomValue?: boolean;
|
|
142
|
+
/** Creates the visible label for a custom-value option. */
|
|
143
|
+
getCreateOptionLabel?: (inputValue: string) => string;
|
|
144
|
+
/**
|
|
145
|
+
* Maximum selected tokens shown while an unfocused multiple Autocomplete
|
|
146
|
+
* is collapsed. Negative values and `undefined` show every token.
|
|
147
|
+
*/
|
|
148
|
+
limitTags?: number;
|
|
149
|
+
/**
|
|
150
|
+
* Input hint shown while no value is selected.
|
|
151
|
+
*
|
|
152
|
+
* @default 'Select...'
|
|
153
|
+
*/
|
|
154
|
+
placeholder?: string;
|
|
155
|
+
/**
|
|
156
|
+
* Floating UI placement of the listbox relative to the control.
|
|
157
|
+
*
|
|
158
|
+
* @default 'bottom-start'
|
|
159
|
+
*/
|
|
160
|
+
placement?: Placement;
|
|
161
|
+
/**
|
|
162
|
+
* Gap between the control and listbox, in pixels.
|
|
163
|
+
*
|
|
164
|
+
* @default 4
|
|
165
|
+
*/
|
|
166
|
+
offset?: number;
|
|
167
|
+
/** Metadata-only `Option` children used to populate the listbox. */
|
|
168
|
+
children?: ReactNode;
|
|
169
|
+
/** Identifier for the combobox input. A generated identifier is used when omitted. */
|
|
170
|
+
id?: string;
|
|
171
|
+
/** Form field name used by hidden inputs for selected values. */
|
|
172
|
+
name?: string;
|
|
173
|
+
/** Prevents focus and interaction. Overrides field context when provided. */
|
|
174
|
+
disabled?: boolean;
|
|
175
|
+
/** Allows focus and text selection while preventing value changes. */
|
|
176
|
+
readOnly?: boolean;
|
|
177
|
+
/** Applies error styling and `aria-invalid`. Overrides field context when provided. */
|
|
178
|
+
error?: boolean;
|
|
179
|
+
/** Applies valid styling to the control. */
|
|
180
|
+
valid?: boolean;
|
|
181
|
+
/** Applies invalid styling and `aria-invalid`. Overrides field context when provided. */
|
|
182
|
+
invalid?: boolean;
|
|
183
|
+
/** Spacing density used by listbox options. */
|
|
184
|
+
density?: MenuDensity;
|
|
185
|
+
/**
|
|
186
|
+
* Shows a loading indicator and replaces an empty list with `loadingText`.
|
|
187
|
+
*
|
|
188
|
+
* @default false
|
|
189
|
+
*/
|
|
190
|
+
loading?: boolean;
|
|
191
|
+
/**
|
|
192
|
+
* Shows `loadingText` after the current options during incremental loading.
|
|
193
|
+
*
|
|
194
|
+
* @default false
|
|
195
|
+
*/
|
|
196
|
+
loadingMore?: boolean;
|
|
197
|
+
/** Indicates that scrolling can request another page of options. */
|
|
198
|
+
hasMore?: boolean;
|
|
199
|
+
/** Runs near the end of the list when more options are available. */
|
|
200
|
+
onLoadMore?: () => void;
|
|
201
|
+
/**
|
|
202
|
+
* Status content shown while options are loading.
|
|
203
|
+
*
|
|
204
|
+
* @default 'Loading options…'
|
|
205
|
+
*/
|
|
206
|
+
loadingText?: ReactNode;
|
|
207
|
+
/**
|
|
208
|
+
* Status content shown when filtering produces no options.
|
|
209
|
+
*
|
|
210
|
+
* @default 'No options'
|
|
211
|
+
*/
|
|
212
|
+
noOptionsText?: ReactNode;
|
|
213
|
+
};
|
|
214
|
+
|
|
215
|
+
/** User actions that can change the selected Autocomplete value. */
|
|
216
|
+
export declare type AutocompleteChangeReason = 'select-option' | 'remove-option' | 'clear' | 'create-option';
|
|
217
|
+
|
|
218
|
+
/** Actions that can change the text displayed in the Autocomplete input. */
|
|
219
|
+
export declare type AutocompleteInputChangeReason = 'input' | 'selection' | 'clear';
|
|
220
|
+
|
|
221
|
+
/** Interactions that can request an Autocomplete listbox visibility change. */
|
|
222
|
+
export declare type AutocompleteOpenChangeReason = 'input' | 'focus' | 'keyboard' | 'selection' | 'escape' | 'outside-press';
|
|
223
|
+
|
|
224
|
+
/** Props accepted by {@link Autocomplete}, discriminated by `multiple`. */
|
|
225
|
+
export declare type AutocompleteProps<Multiple extends boolean = boolean> = Multiple extends true ? MultipleAutocompleteProps : Multiple extends false ? SingleAutocompleteProps : SingleAutocompleteProps | MultipleAutocompleteProps;
|
|
226
|
+
|
|
227
|
+
/** Selected value shape for single- or multiple-selection `Autocomplete`. */
|
|
228
|
+
export declare type AutocompleteValue<Multiple extends boolean = false> = Multiple extends true ? string[] : Multiple extends false ? string | null : string | string[] | null;
|
|
229
|
+
|
|
230
|
+
declare interface AutocompleteVariant {
|
|
231
|
+
/**
|
|
232
|
+
* @default "md"
|
|
233
|
+
*/
|
|
234
|
+
size: "sm" | "md" | "lg" | "xl"
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
declare type AutocompleteVariantProps = {
|
|
238
|
+
[key in keyof AutocompleteVariant]?: ConditionalValue<AutocompleteVariant[key]> | undefined
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Represents a person or entity with an image and deterministic fallback.
|
|
243
|
+
*
|
|
244
|
+
* Presence and status indicators are visual only. Supply equivalent text when
|
|
245
|
+
* either state is meaningful to assistive technology.
|
|
246
|
+
*
|
|
247
|
+
* @example
|
|
248
|
+
* ```tsx
|
|
249
|
+
* <Avatar src="/people/ada.jpg" alt="Ada Lovelace" name="Ada Lovelace" />
|
|
250
|
+
* ```
|
|
89
251
|
*/
|
|
90
252
|
export declare const Avatar: (props: AvatarProps) => JSX.Element;
|
|
91
253
|
|
|
254
|
+
/** Presence states displayed at the bottom-right of an avatar. */
|
|
92
255
|
declare type AvatarPresence = 'online' | 'busy' | 'offline' | 'focus';
|
|
93
256
|
|
|
94
|
-
|
|
95
|
-
|
|
257
|
+
/** Props accepted by {@link Avatar}. */
|
|
258
|
+
export declare type AvatarProps = Omit<BoxProps, keyof AvatarVariantProps> & Omit<AvatarVariantProps, 'size' | 'shape'> & {
|
|
259
|
+
/** Image URL. A failed or missing image falls back to custom content, initials, or a user icon. */
|
|
96
260
|
src?: string;
|
|
97
|
-
/**
|
|
261
|
+
/** Alternative text for the image. Use an empty string when nearby text already identifies the entity. */
|
|
262
|
+
/** @default "" */
|
|
98
263
|
alt?: string;
|
|
99
|
-
/** Name
|
|
264
|
+
/** Name used to generate first-and-last initials when no image is available. */
|
|
100
265
|
name?: string;
|
|
101
|
-
/**
|
|
266
|
+
/** Visual size. An explicit value takes precedence over slot context. */
|
|
102
267
|
size?: AvatarSize;
|
|
103
|
-
/**
|
|
268
|
+
/** Outline shape of the avatar. */
|
|
269
|
+
/** @default "circle" */
|
|
104
270
|
shape?: AvatarShape;
|
|
105
|
-
/**
|
|
271
|
+
/** Decorative presence indicator shown at the bottom-right. Provide equivalent text elsewhere when the state matters. */
|
|
106
272
|
presence?: AvatarPresence;
|
|
107
|
-
/**
|
|
273
|
+
/** Decorative status indicator shown at the top-right. Provide equivalent text elsewhere when the state matters. */
|
|
108
274
|
status?: AvatarStatus;
|
|
109
|
-
/**
|
|
275
|
+
/** Fallback content that takes precedence over generated initials and the default user icon. */
|
|
110
276
|
fallback?: ReactNode;
|
|
111
|
-
/**
|
|
277
|
+
/** CSS border color applied to the avatar root. */
|
|
112
278
|
borderColor?: string;
|
|
113
279
|
};
|
|
114
280
|
|
|
281
|
+
/** Supported outline shapes for {@link Avatar}. */
|
|
115
282
|
declare type AvatarShape = AvatarVariantProps['shape'];
|
|
116
283
|
|
|
284
|
+
/** Supported visual sizes for {@link Avatar}. */
|
|
117
285
|
declare type AvatarSize = NonNullable<AvatarVariantProps['size']>;
|
|
118
286
|
|
|
287
|
+
/** Status states displayed at the top-right of an avatar. */
|
|
119
288
|
declare type AvatarStatus = 'approved' | 'declined' | 'locked';
|
|
120
289
|
|
|
121
290
|
declare interface AvatarVariant {
|
|
@@ -134,26 +303,36 @@ declare type AvatarVariantProps = {
|
|
|
134
303
|
}
|
|
135
304
|
|
|
136
305
|
/**
|
|
137
|
-
*
|
|
306
|
+
* Displays a notification count or compact status indicator.
|
|
307
|
+
*
|
|
308
|
+
* Without `children`, the badge is standalone. With children, it positions the
|
|
309
|
+
* indicator at the anchor's top-right. Omitting `count` renders a dot. The
|
|
310
|
+
* badge does not announce updates by itself; add an accessible label or live
|
|
311
|
+
* region when the value conveys essential information.
|
|
138
312
|
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
313
|
+
* @example
|
|
314
|
+
* ```tsx
|
|
315
|
+
* <Badge count={3}><Icon name="bell" aria-label="Notifications" /></Badge>
|
|
316
|
+
* ```
|
|
143
317
|
*/
|
|
144
318
|
export declare const Badge: (props: BadgeProps) => JSX.Element | null;
|
|
145
319
|
|
|
146
|
-
|
|
147
|
-
|
|
320
|
+
/** Props accepted by {@link Badge}. */
|
|
321
|
+
export declare type BadgeProps = Omit<BoxProps, keyof BadgeVariantProps> & Omit<BadgeVariantProps, 'standalone' | 'dot'> & {
|
|
322
|
+
/** Numeric content. Providing a value switches the badge from dot mode to count mode. */
|
|
148
323
|
count?: number;
|
|
149
|
-
/**
|
|
324
|
+
/** Keeps the indicator visible when `count` is zero. */
|
|
325
|
+
/** @default false */
|
|
150
326
|
showZero?: boolean;
|
|
151
|
-
/**
|
|
327
|
+
/** Largest count shown directly; larger values render as `{overflowCount}+`. */
|
|
328
|
+
/** @default 99 */
|
|
152
329
|
overflowCount?: number;
|
|
153
|
-
/**
|
|
330
|
+
/** Semantic color treatment of the indicator. */
|
|
331
|
+
/** @default "danger" */
|
|
154
332
|
variant?: BadgeVariantProps['variant'];
|
|
155
|
-
/** Content
|
|
333
|
+
/** Content used as the positioning anchor. Without children, the badge is standalone. */
|
|
156
334
|
children?: ReactNode;
|
|
335
|
+
/** Visual indicator size. An explicit value takes precedence over slot context. */
|
|
157
336
|
size?: BadgeVariantProps['size'];
|
|
158
337
|
};
|
|
159
338
|
|
|
@@ -199,13 +378,25 @@ declare type BorderToken = "default" | "bold" | "inverse" | "disabled" | "input"
|
|
|
199
378
|
declare type BorderWidthToken = "0" | "1" | "2" | "4" | "8" | "16"
|
|
200
379
|
|
|
201
380
|
/**
|
|
202
|
-
*
|
|
203
|
-
*
|
|
381
|
+
* Renders a token-aware polymorphic foundation for design-system components.
|
|
382
|
+
*
|
|
383
|
+
* `Box` renders a `div` by default. Set `as` to use another semantic element or
|
|
384
|
+
* component; compatible native props and the React 19 `ref` prop follow that
|
|
385
|
+
* selection. Prefer a semantic component when one already expresses the
|
|
386
|
+
* intended behavior.
|
|
387
|
+
*
|
|
388
|
+
* @example
|
|
389
|
+
* ```tsx
|
|
390
|
+
* <Box as="section" p="16" aria-labelledby="summary-heading">
|
|
391
|
+
* Summary content
|
|
392
|
+
* </Box>
|
|
393
|
+
* ```
|
|
204
394
|
*/
|
|
205
|
-
export declare const Box: <T extends ElementType = "div">(props: BoxProps<T>) =>
|
|
395
|
+
export declare const Box: <T extends ElementType = "div">(props: BoxProps<T>) => JSX.Element;
|
|
206
396
|
|
|
207
397
|
declare type BoxOwnProps = SystemStyleObject_2 & BoxVariantProps;
|
|
208
398
|
|
|
399
|
+
/** Props accepted by {@link Box}, including Panda style and native element props. */
|
|
209
400
|
export declare type BoxProps<T extends ElementType = ElementType> = PolymorphicComponentProps<T, BoxOwnProps>;
|
|
210
401
|
|
|
211
402
|
declare interface BoxVariant {
|
|
@@ -216,9 +407,32 @@ declare type BoxVariantProps = {
|
|
|
216
407
|
[key in keyof BoxVariant]?: ConditionalValue<BoxVariant[key]> | undefined
|
|
217
408
|
}
|
|
218
409
|
|
|
410
|
+
/**
|
|
411
|
+
* Displays the current navigation path as a semantic unordered list.
|
|
412
|
+
*
|
|
413
|
+
* Linked segments use {@link Link}; segments without `href` are rendered as
|
|
414
|
+
* plain text. Use page navigation instead when the hierarchy is not a path to
|
|
415
|
+
* the current location.
|
|
416
|
+
*
|
|
417
|
+
* @example
|
|
418
|
+
* ```tsx
|
|
419
|
+
* <Breadcrumbs
|
|
420
|
+
* items={[
|
|
421
|
+
* { id: 'home', label: 'Home', href: '/' },
|
|
422
|
+
* { id: 'invoices', label: 'Invoices' },
|
|
423
|
+
* ]}
|
|
424
|
+
* />
|
|
425
|
+
* ```
|
|
426
|
+
*/
|
|
219
427
|
export declare const Breadcrumbs: (props: BreadcrumbsProps) => JSX.Element;
|
|
220
428
|
|
|
221
|
-
|
|
429
|
+
/** Props for {@link Breadcrumbs}. */
|
|
430
|
+
export declare type BreadcrumbsProps = Omit<BoxProps, keyof BreadcrumbsVariantProps> & BreadcrumbsVariantProps & {
|
|
431
|
+
/**
|
|
432
|
+
* Ordered path segments. A segment with `href` renders as a link; a segment
|
|
433
|
+
* without it renders as plain text, which is normally the current page.
|
|
434
|
+
* Keep the final segment non-linked when it represents the current page.
|
|
435
|
+
*/
|
|
222
436
|
items: {
|
|
223
437
|
id: string;
|
|
224
438
|
label: string;
|
|
@@ -234,9 +448,23 @@ declare type BreadcrumbsVariantProps = {
|
|
|
234
448
|
[key in keyof BreadcrumbsVariant]?: ConditionalValue<BreadcrumbsVariant[key]> | undefined
|
|
235
449
|
}
|
|
236
450
|
|
|
451
|
+
/**
|
|
452
|
+
* Displays the largest currently matching design-system breakpoint.
|
|
453
|
+
*
|
|
454
|
+
* This is a development aid, not user-facing application content. It renders a
|
|
455
|
+
* colored `Tag` from `@media/base` through `@media/2xl` based on media-query
|
|
456
|
+
* hooks.
|
|
457
|
+
*
|
|
458
|
+
* @example
|
|
459
|
+
* ```tsx
|
|
460
|
+
* <BreakpointIndicator />
|
|
461
|
+
* ```
|
|
462
|
+
*/
|
|
237
463
|
export declare const BreakpointIndicator: (props: BreakpointIndicatorProps) => JSX.Element;
|
|
238
464
|
|
|
239
|
-
|
|
465
|
+
/** Props for {@link BreakpointIndicator}, a development breakpoint readout. */
|
|
466
|
+
export declare type BreakpointIndicatorProps = Omit<BoxProps, keyof BreakpointIndicatorVariantProps> & BreakpointIndicatorVariantProps & {
|
|
467
|
+
/** Recipe variant for the indicator's visual treatment. */
|
|
240
468
|
variant?: BreakpointIndicatorVariantProps['variant'];
|
|
241
469
|
};
|
|
242
470
|
|
|
@@ -251,6 +479,7 @@ declare type BreakpointIndicatorVariantProps = {
|
|
|
251
479
|
[key in keyof BreakpointIndicatorVariant]?: ConditionalValue<BreakpointIndicatorVariant[key]> | undefined
|
|
252
480
|
}
|
|
253
481
|
|
|
482
|
+
/** Key of a Cetec viewport breakpoint token. */
|
|
254
483
|
declare type BreakpointKey = keyof typeof breakpoints;
|
|
255
484
|
|
|
256
485
|
declare const breakpoints: {
|
|
@@ -264,20 +493,78 @@ declare const breakpoints: {
|
|
|
264
493
|
|
|
265
494
|
declare type BreakpointToken = "xs" | "sm" | "md" | "lg" | "xl" | "2xl"
|
|
266
495
|
|
|
496
|
+
/**
|
|
497
|
+
* Performs an action or navigates to a location.
|
|
498
|
+
*
|
|
499
|
+
* Renders a native `button` by default, or an anchor when `href` is supplied.
|
|
500
|
+
* Use {@link IconButton} for actions represented only by an icon. In a
|
|
501
|
+
* `FormField` or slot context, explicitly supplied `size`, `error`, `invalid`,
|
|
502
|
+
* and `disabled` values take precedence over slot context, which takes
|
|
503
|
+
* precedence over field context. Its recipe defaults to the `standard` variant
|
|
504
|
+
* and `md` size.
|
|
505
|
+
*
|
|
506
|
+
* @example
|
|
507
|
+
* ```tsx
|
|
508
|
+
* <Button onClick={saveInvoice}>Save invoice</Button>
|
|
509
|
+
* ```
|
|
510
|
+
*/
|
|
267
511
|
export declare const Button: (props: ButtonProps) => JSX.Element;
|
|
268
512
|
|
|
269
|
-
|
|
513
|
+
/**
|
|
514
|
+
* Props for {@link Button}. Extends {@link BoxProps} for layout and native
|
|
515
|
+
* element attributes while reserving the button recipe's visual variants.
|
|
516
|
+
*/
|
|
517
|
+
export declare type ButtonProps = Omit<BoxProps, keyof ButtonVariantProps | 'fontSize' | 'fontVariant'> & Omit<ButtonVariantProps, 'before' | 'after' | 'iconBefore' | 'iconAfter'> & {
|
|
518
|
+
/** Content rendered before the button label. Takes precedence over `iconBefore`. */
|
|
270
519
|
before?: ReactNode;
|
|
520
|
+
/** Content rendered after the button label. Takes precedence over `iconAfter`. */
|
|
271
521
|
after?: ReactNode;
|
|
522
|
+
/**
|
|
523
|
+
* Legacy icon name rendered before the label when `before` is not provided.
|
|
524
|
+
*
|
|
525
|
+
* @deprecated Use `before={<Icon name="..." aria-hidden />}`. This alias
|
|
526
|
+
* will be removed in a future major release.
|
|
527
|
+
*/
|
|
272
528
|
iconBefore?: IconNamesList;
|
|
529
|
+
/**
|
|
530
|
+
* Legacy icon name rendered after the label when `after` is not provided.
|
|
531
|
+
*
|
|
532
|
+
* @deprecated Use `after={<Icon name="..." aria-hidden />}`. This alias
|
|
533
|
+
* will be removed in a future major release.
|
|
534
|
+
*/
|
|
273
535
|
iconAfter?: IconNamesList;
|
|
536
|
+
/** When provided, renders an anchor instead of a native button. */
|
|
274
537
|
href?: string;
|
|
538
|
+
/**
|
|
539
|
+
* Shows a centered spinner, hides the visible content, and sets
|
|
540
|
+
* `aria-busy`. Loading does not disable the control; set `disabled` when
|
|
541
|
+
* the action must not be available.
|
|
542
|
+
*
|
|
543
|
+
* @default false
|
|
544
|
+
*/
|
|
275
545
|
loading?: boolean;
|
|
546
|
+
/** Visible label and optional inline content for the action. */
|
|
276
547
|
children: string | ReactNode;
|
|
548
|
+
/** Marks the control as having an error for styling and descendant slots. */
|
|
277
549
|
error?: boolean;
|
|
550
|
+
/** Sets `aria-invalid` and marks the control invalid for styling and slots. */
|
|
278
551
|
invalid?: boolean;
|
|
552
|
+
/**
|
|
553
|
+
* Disables a native button. For links, marks the anchor `aria-disabled` and
|
|
554
|
+
* prevents its default click navigation.
|
|
555
|
+
*/
|
|
279
556
|
disabled?: boolean;
|
|
557
|
+
/**
|
|
558
|
+
* Native button type; ignored when `href` causes the component to render an
|
|
559
|
+
* anchor.
|
|
560
|
+
*
|
|
561
|
+
* @default 'button'
|
|
562
|
+
*/
|
|
280
563
|
type?: 'submit' | 'reset' | 'button';
|
|
564
|
+
/** Font size forwarded to the button's text treatment. */
|
|
565
|
+
fontSize?: BoxProps['fontSize'];
|
|
566
|
+
/** Font variant forwarded to the button's text treatment. */
|
|
567
|
+
fontVariant?: BoxProps['fontVariant'];
|
|
281
568
|
};
|
|
282
569
|
|
|
283
570
|
declare interface ButtonVariant {
|
|
@@ -297,13 +584,91 @@ declare type ButtonVariantProps = {
|
|
|
297
584
|
[key in keyof ButtonVariant]?: ConditionalValue<ButtonVariant[key]> | undefined
|
|
298
585
|
}
|
|
299
586
|
|
|
587
|
+
/**
|
|
588
|
+
* Displays an accessible day, month, and year selection grid.
|
|
589
|
+
*
|
|
590
|
+
* Use `value` and `onChange` for date selection. `viewDate` separately controls
|
|
591
|
+
* the visible month; omit it to let Calendar manage navigation internally.
|
|
592
|
+
* Dates outside `minDate` and `maxDate` remain visible but unavailable.
|
|
593
|
+
*
|
|
594
|
+
* @example
|
|
595
|
+
* ```tsx
|
|
596
|
+
* <Calendar value={date} onChange={setDate} label="Choose invoice date" />
|
|
597
|
+
* ```
|
|
598
|
+
*/
|
|
599
|
+
export declare const Calendar: (props: CalendarProps) => JSX.Element;
|
|
600
|
+
|
|
601
|
+
/** Props for {@link Calendar}, including selection, bounds, and visible-month state. */
|
|
602
|
+
export declare type CalendarProps = Omit<BoxProps, keyof CalendarVariantProps | 'children'> & Omit<CalendarVariantProps, 'type'> & {
|
|
603
|
+
/** Controlled selected date. */
|
|
604
|
+
value?: DateValue | null;
|
|
605
|
+
/** Runs when a selectable day is chosen. Calendar never clears its own value. */
|
|
606
|
+
onChange?: (value: DateValue) => void;
|
|
607
|
+
/**
|
|
608
|
+
* Range-selection endpoints, for DateRangeMenu. Independent of `value` —
|
|
609
|
+
* a Calendar can show a range highlight (start/end fill + in-between
|
|
610
|
+
* tint) regardless of which month it's currently displaying, since a
|
|
611
|
+
* range's two endpoints may fall in months neither calendar is showing.
|
|
612
|
+
*/
|
|
613
|
+
rangeStart?: DateValue | null;
|
|
614
|
+
/** End of the optional visual range highlight. */
|
|
615
|
+
rangeEnd?: DateValue | null;
|
|
616
|
+
/** Earliest selectable date. */
|
|
617
|
+
minDate?: DateValue;
|
|
618
|
+
/** Latest selectable date. */
|
|
619
|
+
maxDate?: DateValue;
|
|
620
|
+
/** Controlled visible month and year. */
|
|
621
|
+
viewDate?: ViewDate;
|
|
622
|
+
/** Initial visible month and year when `viewDate` is not provided. Defaults to `value`, then today. */
|
|
623
|
+
defaultViewDate?: ViewDate;
|
|
624
|
+
/** Runs when month or year navigation requests a new visible month. */
|
|
625
|
+
onViewDateChange?: (viewDate: ViewDate) => void;
|
|
626
|
+
/** Prevents navigation and date selection. */
|
|
627
|
+
disabled?: boolean;
|
|
628
|
+
/** Accessible label prefix for the calendar grid. */
|
|
629
|
+
label?: string;
|
|
630
|
+
};
|
|
631
|
+
|
|
632
|
+
declare interface CalendarVariant {
|
|
633
|
+
/**
|
|
634
|
+
* @default "days"
|
|
635
|
+
*/
|
|
636
|
+
type: "days" | "months" | "years"
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
declare type CalendarVariantProps = {
|
|
640
|
+
[key in keyof CalendarVariant]?: ConditionalValue<CalendarVariant[key]> | undefined
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
/**
|
|
644
|
+
* Groups related content in a visual container that can optionally navigate or
|
|
645
|
+
* act as a control.
|
|
646
|
+
*
|
|
647
|
+
* A card with `href` renders an anchor. A card that is otherwise interactive
|
|
648
|
+
* renders a button; a non-interactive card renders a `div`. Avoid nesting other
|
|
649
|
+
* interactive elements inside an interactive card.
|
|
650
|
+
*
|
|
651
|
+
* @example
|
|
652
|
+
* ```tsx
|
|
653
|
+
* <Card href="/orders/123">Order 123</Card>
|
|
654
|
+
* ```
|
|
655
|
+
*/
|
|
300
656
|
export declare const Card: (props: CardProps) => JSX.Element;
|
|
301
657
|
|
|
302
|
-
|
|
658
|
+
/** Props accepted by {@link Card}. */
|
|
659
|
+
export declare type CardProps = Omit<BoxProps, keyof CardVariantProps> & CardVariantProps & {
|
|
660
|
+
/** Destination that makes the entire card render as a link. */
|
|
303
661
|
href?: string;
|
|
662
|
+
/** Card content. */
|
|
304
663
|
children?: string | ReactNode;
|
|
664
|
+
/** Marks the card as currently grabbed by a drag interaction. */
|
|
665
|
+
/** @default false */
|
|
305
666
|
grabbed?: boolean;
|
|
667
|
+
/** Disables the rendered button or prevents link navigation. */
|
|
668
|
+
/** @default false */
|
|
306
669
|
disabled?: boolean;
|
|
670
|
+
/** Forces button semantics and interactive styling without an `href`. */
|
|
671
|
+
/** @default false */
|
|
307
672
|
interactive?: boolean;
|
|
308
673
|
};
|
|
309
674
|
|
|
@@ -319,46 +684,89 @@ declare type CardVariantProps = {
|
|
|
319
684
|
[key in keyof CardVariant]?: ConditionalValue<CardVariant[key]> | undefined
|
|
320
685
|
}
|
|
321
686
|
|
|
687
|
+
/**
|
|
688
|
+
* Panda CSS preset containing Cetec tokens, semantic tokens, recipes,
|
|
689
|
+
* utilities, patterns, global CSS, and conditions.
|
|
690
|
+
*
|
|
691
|
+
* Add this preset to a Panda configuration to generate styles that match the
|
|
692
|
+
* design system. It extends Panda's base preset while replacing its
|
|
693
|
+
* `dropShadow` utility and omitting the base `box` and `divider` patterns.
|
|
694
|
+
*
|
|
695
|
+
* @example
|
|
696
|
+
* ```ts
|
|
697
|
+
* import { cetecPreset } from 'cetec-design-system';
|
|
698
|
+
*
|
|
699
|
+
* export default defineConfig({ presets: [cetecPreset] });
|
|
700
|
+
* ```
|
|
701
|
+
*/
|
|
322
702
|
export declare const cetecPreset: Preset;
|
|
323
703
|
|
|
324
704
|
/**
|
|
325
|
-
*
|
|
705
|
+
* A native checkbox control without a visible label.
|
|
706
|
+
*
|
|
707
|
+
* Use {@link CheckboxInput} when the checkbox needs a text label. Supply
|
|
708
|
+
* `checked` with `onChange` for controlled state, or `defaultChecked` for
|
|
709
|
+
* uncontrolled state. The primitive renders an `<input type="checkbox">`, so
|
|
710
|
+
* its `name` participates in native form submission. Associate it with a
|
|
711
|
+
* visible label using `id`; `indeterminate` is a visual mixed state only.
|
|
326
712
|
*
|
|
327
713
|
* @example
|
|
328
|
-
*
|
|
714
|
+
* ```tsx
|
|
715
|
+
* <Checkbox name="notifications" defaultChecked />
|
|
716
|
+
* ```
|
|
329
717
|
*
|
|
330
718
|
* @example
|
|
719
|
+
* ```tsx
|
|
331
720
|
* const [checked, setChecked] = useState(false);
|
|
332
|
-
* <Checkbox checked={checked} onChange={(
|
|
721
|
+
* <Checkbox name="notifications" checked={checked} onChange={(event) => setChecked(event.target.checked)} />
|
|
722
|
+
* ```
|
|
333
723
|
*/
|
|
334
724
|
export declare const Checkbox: (props: CheckboxProps) => JSX.Element;
|
|
335
725
|
|
|
336
726
|
/**
|
|
337
|
-
*
|
|
727
|
+
* Native change event emitted by {@link Checkbox}.
|
|
338
728
|
* @example
|
|
339
729
|
* const handleChange: CheckboxChangeHandler = (e) => setChecked(e.target.checked);
|
|
340
730
|
*/
|
|
341
|
-
declare type CheckboxChangeEvent = ChangeEvent<HTMLInputElement>;
|
|
731
|
+
export declare type CheckboxChangeEvent = ChangeEvent<HTMLInputElement>;
|
|
342
732
|
|
|
343
733
|
/**
|
|
344
|
-
*
|
|
734
|
+
* Handler for a {@link Checkbox} native change event.
|
|
345
735
|
* @example
|
|
346
736
|
* const handleChange: CheckboxChangeHandler = (e) => setChecked(e.target.checked);
|
|
347
737
|
*/
|
|
348
|
-
declare type CheckboxChangeHandler = (e: CheckboxChangeEvent) => void;
|
|
738
|
+
export declare type CheckboxChangeHandler = (e: CheckboxChangeEvent) => void;
|
|
349
739
|
|
|
740
|
+
/**
|
|
741
|
+
* A checkbox paired with a clickable label.
|
|
742
|
+
*
|
|
743
|
+
* Use this instead of {@link Checkbox} for ordinary labelled form controls.
|
|
744
|
+
* It generates an input ID when needed and connects it to the rendered label.
|
|
745
|
+
* Its checked-state and field-context behavior match `Checkbox`; explicit
|
|
746
|
+
* `disabled`, `error`, and `invalid` props override field context.
|
|
747
|
+
*
|
|
748
|
+
* @example
|
|
749
|
+
* ```tsx
|
|
750
|
+
* <CheckboxInput name="terms" defaultChecked>
|
|
751
|
+
* I agree to the terms
|
|
752
|
+
* </CheckboxInput>
|
|
753
|
+
* ```
|
|
754
|
+
*/
|
|
350
755
|
export declare const CheckboxInput: (props: CheckboxInputProps) => JSX.Element;
|
|
351
756
|
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
checked
|
|
757
|
+
/** Props for {@link CheckboxInput}, a labelled {@link Checkbox}. */
|
|
758
|
+
export declare type CheckboxInputProps = Omit<BoxProps, keyof CheckboxInputVariantProps> & CheckboxInputVariantProps & {
|
|
759
|
+
/** Form field name submitted when checked. */ name: string;
|
|
760
|
+
/** Controlled checked state. Pair with `onChange`; do not combine with `defaultChecked`. */ checked?: boolean;
|
|
761
|
+
/** Initial uncontrolled checked state; updates after mount are ignored. */
|
|
762
|
+
/** @default false */
|
|
355
763
|
defaultChecked?: boolean;
|
|
356
|
-
onChange?: CheckboxChangeHandler;
|
|
357
|
-
id?: string;
|
|
358
|
-
error?: boolean;
|
|
359
|
-
invalid?: boolean;
|
|
360
|
-
children?: string | ReactNode;
|
|
361
|
-
disabled?: boolean;
|
|
764
|
+
/** Runs when the contained native checkbox changes. */ onChange?: CheckboxChangeHandler;
|
|
765
|
+
/** Input ID. When omitted, a stable React ID is generated for the label association. */ id?: string;
|
|
766
|
+
/** Applies error styling to the checkbox and overrides field context. */ error?: boolean;
|
|
767
|
+
/** Marks the checkbox invalid and overrides field context. */ invalid?: boolean;
|
|
768
|
+
/** Visible label content. Provide text or an accessible label element; this wrapper supplies `htmlFor`. */ children?: string | ReactNode;
|
|
769
|
+
/** Disables the label and checkbox, overriding field context. */ disabled?: boolean;
|
|
362
770
|
};
|
|
363
771
|
|
|
364
772
|
declare interface CheckboxInputVariant {
|
|
@@ -369,16 +777,19 @@ declare type CheckboxInputVariantProps = {
|
|
|
369
777
|
[key in keyof CheckboxInputVariant]?: ConditionalValue<CheckboxInputVariant[key]> | undefined
|
|
370
778
|
}
|
|
371
779
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
checked
|
|
780
|
+
/** Props for {@link Checkbox}, the unlabelled native checkbox primitive. */
|
|
781
|
+
export declare type CheckboxProps = Omit<BoxProps, 'checked' | 'defaultChecked' | 'onChange' | keyof CheckboxVariantProps> & CheckboxVariantProps & {
|
|
782
|
+
/** Form field name submitted when the checkbox is checked. */ name: string;
|
|
783
|
+
/** Controlled checked state. Pair with `onChange`; do not combine with `defaultChecked`. */ checked?: boolean;
|
|
784
|
+
/** Initial uncontrolled checked state; later updates are ignored. */
|
|
785
|
+
/** @default false */
|
|
375
786
|
defaultChecked?: boolean;
|
|
376
|
-
onChange?: CheckboxChangeHandler;
|
|
377
|
-
id?: string;
|
|
378
|
-
error?: boolean;
|
|
379
|
-
invalid?: boolean;
|
|
380
|
-
disabled?: boolean;
|
|
381
|
-
indeterminate?: boolean;
|
|
787
|
+
/** Runs for the native input change event; read the next state from `event.target.checked`. */ onChange?: CheckboxChangeHandler;
|
|
788
|
+
/** Native input ID. Use it to associate an external `<label>` with the checkbox. */ id?: string;
|
|
789
|
+
/** Applies error styling, taking precedence over field context. */ error?: boolean;
|
|
790
|
+
/** Marks the native input invalid with `aria-invalid` and takes precedence over field context. */ invalid?: boolean;
|
|
791
|
+
/** Disables interaction and takes precedence over field context. */ disabled?: boolean;
|
|
792
|
+
/** Displays the mixed state and sets the native `indeterminate` property. This does not change `checked`. */ indeterminate?: boolean;
|
|
382
793
|
};
|
|
383
794
|
|
|
384
795
|
declare interface CheckboxVariant {
|
|
@@ -389,51 +800,135 @@ declare type CheckboxVariantProps = {
|
|
|
389
800
|
[key in keyof CheckboxVariant]?: ConditionalValue<CheckboxVariant[key]> | undefined
|
|
390
801
|
}
|
|
391
802
|
|
|
803
|
+
/**
|
|
804
|
+
* Renders a compact label, optionally with an action or dismissal control.
|
|
805
|
+
*
|
|
806
|
+
* A chip is static unless it has `onClick` or both a `value` and a parent
|
|
807
|
+
* `ChipGroup`. Grouped single-select chips use radio behavior and arrow-key
|
|
808
|
+
* roving focus; grouped multi-select chips use checkbox behavior. `before` and
|
|
809
|
+
* `after` slots inherit state through slot context.
|
|
810
|
+
*
|
|
811
|
+
* @example
|
|
812
|
+
* ```tsx
|
|
813
|
+
* <Chip dismissable onDismiss={() => remove('design')}>Design</Chip>
|
|
814
|
+
* ```
|
|
815
|
+
*/
|
|
392
816
|
export declare const Chip: (props: ChipProps) => JSX.Element;
|
|
393
817
|
|
|
818
|
+
/**
|
|
819
|
+
* Coordinates the selection and keyboard behavior of child {@link Chip} values.
|
|
820
|
+
*
|
|
821
|
+
* Use `value` with `onChange` for controlled selection, or `defaultValue` for
|
|
822
|
+
* initialization only. In a single-select group, arrow keys move focus and
|
|
823
|
+
* select the newly focused chip. Label the group with `label` when it needs an
|
|
824
|
+
* accessible name.
|
|
825
|
+
*
|
|
826
|
+
* @example
|
|
827
|
+
* ```tsx
|
|
828
|
+
* <ChipGroup type="single" defaultValue="all" label="Status">
|
|
829
|
+
* <Chip value="all">All</Chip>
|
|
830
|
+
* <Chip value="open">Open</Chip>
|
|
831
|
+
* </ChipGroup>
|
|
832
|
+
* ```
|
|
833
|
+
*/
|
|
394
834
|
export declare const ChipGroup: (props: ChipGroupProps) => JSX.Element;
|
|
395
835
|
|
|
836
|
+
/** Shared selection and keyboard-navigation state for a {@link ChipGroup}. */
|
|
396
837
|
declare type ChipGroupContextValue = {
|
|
838
|
+
/** The group's single- or multi-select behavior. */
|
|
397
839
|
type: ChipGroupType;
|
|
840
|
+
/** Optional size inherited by child chips. */
|
|
398
841
|
size?: ChipGroupSize;
|
|
842
|
+
/** Current selected value or values. */
|
|
399
843
|
value: string | string[];
|
|
844
|
+
/** Updates the group's selected value or values. */
|
|
400
845
|
onChange: (value: string | string[]) => void;
|
|
846
|
+
/** Optional shared form metadata supplied by the group. */
|
|
401
847
|
name?: string;
|
|
848
|
+
/** Registers a selectable child chip for keyboard navigation. */
|
|
402
849
|
registerChip: (value: string, ref: RefObject<HTMLButtonElement | null>) => void;
|
|
850
|
+
/** Removes a child chip from keyboard navigation. */
|
|
403
851
|
unregisterChip: (value: string) => void;
|
|
852
|
+
/** Moves focus to the next or previous registered chip. */
|
|
404
853
|
focusChip: (direction: 'next' | 'prev', currentValue: string) => void;
|
|
854
|
+
/** Registered selectable chip values in DOM registration order. */
|
|
405
855
|
chipValues: string[];
|
|
406
856
|
};
|
|
407
857
|
|
|
408
|
-
declare type
|
|
858
|
+
declare type ChipGroupOwnProps = {
|
|
859
|
+
/** Required selection model. `'single'` uses radio semantics; `'multi'` uses checkbox semantics. */
|
|
409
860
|
type: ChipGroupType;
|
|
861
|
+
/** Controlled selected value. Use a string for `'single'` or a string array for `'multi'`, with `onChange` to accept updates. */
|
|
410
862
|
value?: string | string[];
|
|
863
|
+
/**
|
|
864
|
+
* Initial selected value for an uncontrolled group. It is used only on first render.
|
|
865
|
+
* @default '' for `'single'`; [] for `'multi'`
|
|
866
|
+
*/
|
|
411
867
|
defaultValue?: string | string[];
|
|
868
|
+
/** Called with the next selection when a child chip is activated. */
|
|
412
869
|
onChange?: (value: string | string[]) => void;
|
|
870
|
+
/** `Chip` children. Chips require a unique `value` to participate in selection. */
|
|
413
871
|
children: ReactNode;
|
|
872
|
+
/** Size inherited by child chips unless a child supplies its own size. */
|
|
414
873
|
size?: ChipGroupSize;
|
|
874
|
+
/** Accessible name applied to the group container. */
|
|
415
875
|
label?: string;
|
|
876
|
+
/** Container identifier. When supplied, the container references `${id}-label`, which consumers must render themselves. */
|
|
416
877
|
id?: string;
|
|
878
|
+
/** Shared form metadata exposed to child-chip context; it does not create native form inputs. */
|
|
417
879
|
name?: string;
|
|
418
880
|
};
|
|
419
881
|
|
|
882
|
+
/** Props for {@link ChipGroup}, which coordinates selectable child chips. */
|
|
883
|
+
export declare type ChipGroupProps = Omit<BoxProps, keyof ChipGroupWrapProps | keyof ChipGroupOwnProps | 'role'> & ChipGroupWrapProps & ChipGroupOwnProps;
|
|
884
|
+
|
|
885
|
+
/** Chip recipe size inherited by `Chip` descendants of a group. */
|
|
420
886
|
declare type ChipGroupSize = ChipVariantProps['size'];
|
|
421
887
|
|
|
888
|
+
/** Selection model used by {@link ChipGroup}. */
|
|
422
889
|
declare type ChipGroupType = 'single' | 'multi';
|
|
423
890
|
|
|
424
|
-
declare type
|
|
891
|
+
declare type ChipGroupWrapProps = Pick<WrapProps, 'align' | 'columnGap' | 'gap' | 'justify' | 'rowGap'>;
|
|
892
|
+
|
|
893
|
+
/** Props for {@link Chip}, a compact label that can be static, actionable, selectable, or dismissible. */
|
|
894
|
+
export declare type ChipProps = Omit<BoxProps, keyof ChipVariantProps> & Omit<ChipVariantProps, 'before' | 'after' | 'dismissable'> & {
|
|
895
|
+
/** Visible chip label, also used in the default dismissal label. */
|
|
425
896
|
children: string;
|
|
897
|
+
/** Content displayed before the chip label. */
|
|
426
898
|
before?: ReactNode;
|
|
899
|
+
/** Content displayed after the chip label and before the dismiss control. */
|
|
427
900
|
after?: ReactNode;
|
|
901
|
+
/** Disables the primary action and dismiss button. The local value takes precedence over slot and field context. */
|
|
428
902
|
disabled?: boolean;
|
|
903
|
+
/** Shows a spinner and disables chip interaction. */
|
|
429
904
|
loading?: boolean;
|
|
905
|
+
/** Applies deleted styling without removing the chip from the DOM. */
|
|
430
906
|
deleted?: boolean;
|
|
907
|
+
/** Adds a dismiss button after the chip content. */
|
|
431
908
|
dismissable?: boolean;
|
|
909
|
+
/**
|
|
910
|
+
* Accessible name for the dismiss button.
|
|
911
|
+
* @default `Remove ${children}`
|
|
912
|
+
*/
|
|
432
913
|
dismissLabel?: string;
|
|
914
|
+
/** Ref forwarded to the dismiss button. */
|
|
915
|
+
dismissButtonRef?: Ref<HTMLButtonElement>;
|
|
916
|
+
/** Tab order override for the dismiss button. */
|
|
917
|
+
dismissButtonTabIndex?: number;
|
|
918
|
+
/** Applies error styling. The local value takes precedence over slot and field context. */
|
|
433
919
|
error?: boolean;
|
|
920
|
+
/** Marks the chip invalid with `aria-invalid`. The local value takes precedence over slot and field context. */
|
|
434
921
|
invalid?: boolean;
|
|
922
|
+
/** Called when the dismiss button is activated. The button is disabled when this callback is absent. */
|
|
435
923
|
onDismiss?: () => void;
|
|
924
|
+
/** Keyboard handler composed onto the dismiss button. */
|
|
925
|
+
onDismissKeyDown?: KeyboardEventHandler<HTMLButtonElement>;
|
|
926
|
+
/**
|
|
927
|
+
* Native type for the chip's primary button when it is selectable or has `onClick`.
|
|
928
|
+
* @default 'button'
|
|
929
|
+
*/
|
|
436
930
|
type?: 'button' | 'submit' | 'reset';
|
|
931
|
+
/** Value used by a parent `ChipGroup` to identify and select this chip. */
|
|
437
932
|
value?: string;
|
|
438
933
|
};
|
|
439
934
|
|
|
@@ -451,10 +946,24 @@ declare type ChipVariantProps = {
|
|
|
451
946
|
[key in keyof ChipVariant]?: ConditionalValue<ChipVariant[key]> | undefined
|
|
452
947
|
}
|
|
453
948
|
|
|
949
|
+
/**
|
|
950
|
+
* Renders code content in a native `code` element.
|
|
951
|
+
*
|
|
952
|
+
* Use `Pre` for a preformatted code block. `lang` supplies element language
|
|
953
|
+
* metadata; it does not perform syntax highlighting.
|
|
954
|
+
*
|
|
955
|
+
* @example
|
|
956
|
+
* ```tsx
|
|
957
|
+
* <Code>npm run build</Code>
|
|
958
|
+
* ```
|
|
959
|
+
*/
|
|
454
960
|
export declare const Code: (props: CodeProps) => JSX.Element;
|
|
455
961
|
|
|
456
|
-
|
|
962
|
+
/** Props accepted by {@link Code}. */
|
|
963
|
+
export declare type CodeProps = Omit<BoxProps, keyof CodeVariantProps | keyof TextProps> & CodeVariantProps & TextProps & {
|
|
964
|
+
/** Source code or inline content to render. */
|
|
457
965
|
children?: string | ReactNode;
|
|
966
|
+
/** Language metadata forwarded to the native `code` element. */
|
|
458
967
|
lang?: string;
|
|
459
968
|
};
|
|
460
969
|
|
|
@@ -808,6 +1317,7 @@ declare interface Conditions {
|
|
|
808
1317
|
"base": string
|
|
809
1318
|
}
|
|
810
1319
|
|
|
1320
|
+
/** Key of a Cetec container-size token. */
|
|
811
1321
|
declare type ContainerSizeKey = keyof typeof containerSizes;
|
|
812
1322
|
|
|
813
1323
|
declare const containerSizes: {
|
|
@@ -1236,90 +1746,512 @@ declare namespace DataType {
|
|
|
1236
1746
|
type VisualBox = "border-box" | "content-box" | "padding-box";
|
|
1237
1747
|
}
|
|
1238
1748
|
|
|
1239
|
-
|
|
1749
|
+
/** Segment order and separator convention used to display a date. */
|
|
1750
|
+
export declare type DateFormat = 'MM/DD/YYYY' | 'YYYY-MM-DD';
|
|
1751
|
+
|
|
1752
|
+
/**
|
|
1753
|
+
* Renders a segmented date field with optional leading and trailing content.
|
|
1754
|
+
*
|
|
1755
|
+
* The field accepts keyboard entry and stepping through year, month, and day
|
|
1756
|
+
* segments. Use `DatePicker` when a calendar menu is also needed.
|
|
1757
|
+
*
|
|
1758
|
+
* @example
|
|
1759
|
+
* ```tsx
|
|
1760
|
+
* <DateInput label="Invoice date" defaultValue={{ year: 2026, month: 8, day: 3 }} />
|
|
1761
|
+
* ```
|
|
1762
|
+
*/
|
|
1763
|
+
export declare const DateInput: (props: DateInputProps) => JSX.Element;
|
|
1240
1764
|
|
|
1241
|
-
|
|
1242
|
-
|
|
1765
|
+
/** Props for {@link DateInput}, including segmented date state and field slots. */
|
|
1766
|
+
export declare type DateInputProps = Omit<BoxProps, keyof SegmentedFieldsVariantProps | 'children'> & Omit<SegmentedFieldsVariantProps, 'field' | 'range' | 'before' | 'after'> & {
|
|
1767
|
+
/** Identifier forwarded to the segmented date group. */
|
|
1768
|
+
id?: string;
|
|
1769
|
+
/** Controlled date. Pair with `onChange`. */
|
|
1243
1770
|
value?: DateValue | null;
|
|
1244
|
-
/** Initial
|
|
1771
|
+
/** Initial date when `value` is not provided. */
|
|
1245
1772
|
defaultValue?: DateValue | null;
|
|
1246
|
-
/**
|
|
1773
|
+
/** Runs when the segmented date becomes complete or is cleared. */
|
|
1247
1774
|
onChange?: (value: DateValue | null) => void;
|
|
1248
|
-
/**
|
|
1249
|
-
|
|
1250
|
-
/**
|
|
1251
|
-
maxDate?: DateValue;
|
|
1252
|
-
/** Accessible label for the input group */
|
|
1775
|
+
/** Segment order and separator convention. */
|
|
1776
|
+
dateFormat?: DateFormat;
|
|
1777
|
+
/** Accessible name for the segmented date group. */
|
|
1253
1778
|
label?: string;
|
|
1254
|
-
|
|
1779
|
+
/** Content before the date field. Takes precedence over `iconBefore`. */
|
|
1780
|
+
before?: ReactNode;
|
|
1781
|
+
/** Content after the date field. Takes precedence over `iconAfter`. */
|
|
1782
|
+
after?: ReactNode;
|
|
1783
|
+
/** Legacy icon rendered before the field when `before` is absent. */
|
|
1784
|
+
iconBefore?: IconNamesList;
|
|
1785
|
+
/** Legacy icon rendered after the field when `after` is absent. */
|
|
1786
|
+
iconAfter?: IconNamesList;
|
|
1787
|
+
/** Applies error styling. Overrides field context when provided. */
|
|
1255
1788
|
error?: boolean;
|
|
1789
|
+
/** Prevents editing. Overrides field context when provided. */
|
|
1790
|
+
disabled?: boolean;
|
|
1791
|
+
/** Applies invalid styling. Overrides field context when provided. */
|
|
1256
1792
|
invalid?: boolean;
|
|
1257
|
-
|
|
1258
|
-
name?: string;
|
|
1259
|
-
/** Controlled popover open state */
|
|
1793
|
+
/** Reflected through to the segmented field — lets a wrapping Menu/Picker show "active anchor" styling */
|
|
1260
1794
|
open?: boolean;
|
|
1261
|
-
/**
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1795
|
+
/** Forwarded to the segmented field — see SegmentedDate's onFocusWithin */
|
|
1796
|
+
onFocusWithin?: () => void;
|
|
1797
|
+
/** Forwarded to the segmented field — see SegmentedDate's onBlurWithin */
|
|
1798
|
+
onBlurWithin?: (relatedTarget: Node | null) => void;
|
|
1265
1799
|
};
|
|
1266
1800
|
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
}
|
|
1277
|
-
|
|
1278
|
-
|
|
1801
|
+
/**
|
|
1802
|
+
* Presents a calendar in a Menu and commits a selected day immediately.
|
|
1803
|
+
*
|
|
1804
|
+
* Supply a `trigger`, or set inherited `inline` to render the calendar in
|
|
1805
|
+
* normal flow. Selecting an enabled date calls `onChange` and closes a
|
|
1806
|
+
* triggered menu.
|
|
1807
|
+
*
|
|
1808
|
+
* @example
|
|
1809
|
+
* ```tsx
|
|
1810
|
+
* <DateMenu trigger={<Button>Choose date</Button>} onChange={setDate} />
|
|
1811
|
+
* ```
|
|
1812
|
+
*/
|
|
1813
|
+
export declare const DateMenu: (props: DateMenuProps) => any;
|
|
1279
1814
|
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
/** Called when end date changes */
|
|
1288
|
-
onEndChange?: (value: DateValue | null) => void;
|
|
1289
|
-
/** Earliest selectable date (applies to both pickers) */
|
|
1815
|
+
/** Props for {@link DateMenu}, a Calendar presented through Menu behavior. */
|
|
1816
|
+
export declare type DateMenuProps = Omit<MenuProps, 'children' | 'onChange' | 'value'> & {
|
|
1817
|
+
/** Selected date shown by the calendar. */
|
|
1818
|
+
value?: DateValue | null;
|
|
1819
|
+
/** Commits immediately on day selection, then closes the menu. */
|
|
1820
|
+
onChange?: (value: DateValue | null) => void;
|
|
1821
|
+
/** Earliest selectable date. */
|
|
1290
1822
|
minDate?: DateValue;
|
|
1291
|
-
/** Latest selectable date
|
|
1823
|
+
/** Latest selectable date. */
|
|
1292
1824
|
maxDate?: DateValue;
|
|
1825
|
+
/** Controlled visible calendar month. */
|
|
1826
|
+
viewDate?: ViewDate_2;
|
|
1827
|
+
/** Initial visible month when `viewDate` is not provided. */
|
|
1828
|
+
defaultViewDate?: ViewDate_2;
|
|
1829
|
+
/** Runs when calendar navigation requests a new visible month. */
|
|
1830
|
+
onViewDateChange?: (viewDate: ViewDate_2) => void;
|
|
1831
|
+
/** Prevents opening or selection and returns only the trigger. */
|
|
1293
1832
|
disabled?: boolean;
|
|
1294
|
-
|
|
1295
|
-
/** Size passed to both DatePickers */
|
|
1296
|
-
size?: DatePickerVariantProps['size'];
|
|
1297
|
-
/** Accessible label prefix — used to build "Start date" and "End date" labels */
|
|
1833
|
+
/** Accessible label passed to the calendar grid. */
|
|
1298
1834
|
label?: string;
|
|
1299
1835
|
};
|
|
1300
1836
|
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1837
|
+
/**
|
|
1838
|
+
* Combines keyboard date entry with a calendar selection menu.
|
|
1839
|
+
*
|
|
1840
|
+
* Focusing the segmented input opens the menu. Typed dates and calendar
|
|
1841
|
+
* selections update the same controlled or uncontrolled value.
|
|
1842
|
+
*
|
|
1843
|
+
* @example
|
|
1844
|
+
* ```tsx
|
|
1845
|
+
* <DatePicker label="Due date" value={date} onChange={setDate} />
|
|
1846
|
+
* ```
|
|
1847
|
+
*/
|
|
1848
|
+
export declare const DatePicker: (props: DatePickerProps) => JSX.Element;
|
|
1306
1849
|
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1850
|
+
/** Props for {@link DatePicker}, combining a segmented input and calendar menu. */
|
|
1851
|
+
export declare type DatePickerProps = Pick<DateInputProps, 'id' | 'label' | 'before' | 'after' | 'iconBefore' | 'iconAfter' | 'error' | 'disabled' | 'invalid' | 'dateFormat' | 'size'> & {
|
|
1852
|
+
/** Controlled selected date. Pair with `onChange`. */
|
|
1853
|
+
value?: DateValue | null;
|
|
1854
|
+
/** Initial selected date when `value` is not provided. */
|
|
1855
|
+
defaultValue?: DateValue | null;
|
|
1856
|
+
/** Runs when typing or calendar selection commits a date. */
|
|
1857
|
+
onChange?: (value: DateValue | null) => void;
|
|
1858
|
+
/** Earliest selectable calendar date. */
|
|
1859
|
+
minDate?: DateValue;
|
|
1860
|
+
/** Latest selectable calendar date. */
|
|
1861
|
+
maxDate?: DateValue;
|
|
1862
|
+
/** Controlled visible calendar month. */
|
|
1863
|
+
viewDate?: ViewDate_4;
|
|
1864
|
+
/** Initial visible month when `viewDate` is not provided. */
|
|
1865
|
+
defaultViewDate?: ViewDate_4;
|
|
1866
|
+
/** Runs when calendar navigation requests a new visible month. */
|
|
1867
|
+
onViewDateChange?: (viewDate: ViewDate_4) => void;
|
|
1868
|
+
/** Floating UI placement of the calendar menu. */
|
|
1869
|
+
placement?: Placement;
|
|
1870
|
+
/** Controlled menu visibility. Pair with `onOpenChange`. */
|
|
1871
|
+
open?: boolean;
|
|
1872
|
+
/**
|
|
1873
|
+
* Initial menu visibility when `open` is not provided.
|
|
1874
|
+
*
|
|
1875
|
+
* @default false
|
|
1876
|
+
*/
|
|
1877
|
+
defaultOpen?: boolean;
|
|
1878
|
+
/** Runs when interaction requests that the menu open or close. */
|
|
1879
|
+
onOpenChange?: (open: boolean) => void;
|
|
1880
|
+
};
|
|
1881
|
+
|
|
1882
|
+
/**
|
|
1883
|
+
* Renders start and end dates as two coordinated segmented fields.
|
|
1884
|
+
*
|
|
1885
|
+
* Each endpoint commits independently while the component preserves the other
|
|
1886
|
+
* endpoint. Use `DateRangePicker` when a calendar menu and Apply/Cancel flow
|
|
1887
|
+
* are also needed.
|
|
1888
|
+
*
|
|
1889
|
+
* @example
|
|
1890
|
+
* ```tsx
|
|
1891
|
+
* <DateRangeInput startLabel="Arrival" endLabel="Departure" />
|
|
1892
|
+
* ```
|
|
1893
|
+
*/
|
|
1894
|
+
export declare const DateRangeInput: (props: DateRangeInputProps) => JSX.Element;
|
|
1895
|
+
|
|
1896
|
+
/** Props for {@link DateRangeInput}, including range state and field slots. */
|
|
1897
|
+
export declare type DateRangeInputProps = Omit<BoxProps, keyof SegmentedFieldsVariantProps | 'children'> & Omit<SegmentedFieldsVariantProps, 'field' | 'range' | 'before' | 'after'> & {
|
|
1898
|
+
/** Identifier applied to the range container. */
|
|
1899
|
+
id?: string;
|
|
1900
|
+
/** Controlled start and end dates. Pair with `onChange`. */
|
|
1901
|
+
value?: DateRangeValue | null;
|
|
1902
|
+
/** Initial range when `value` is not provided. */
|
|
1903
|
+
defaultValue?: DateRangeValue | null;
|
|
1904
|
+
/** Runs whenever either endpoint becomes complete or is cleared. */
|
|
1905
|
+
onChange?: (value: DateRangeValue | null) => void;
|
|
1906
|
+
/** Segment order and separator convention shared by both endpoints. */
|
|
1907
|
+
dateFormat?: DateFormat;
|
|
1908
|
+
/** Accessible name for the start-date segments. */
|
|
1909
|
+
startLabel?: string;
|
|
1910
|
+
/** Accessible name for the end-date segments. */
|
|
1911
|
+
endLabel?: string;
|
|
1912
|
+
/** Content before the range. Takes precedence over `iconBefore`. */
|
|
1913
|
+
before?: ReactNode;
|
|
1914
|
+
/** Content after the range. Takes precedence over `iconAfter`. */
|
|
1915
|
+
after?: ReactNode;
|
|
1916
|
+
/** Legacy icon rendered before the range when `before` is absent. */
|
|
1917
|
+
iconBefore?: IconNamesList;
|
|
1918
|
+
/** Legacy icon rendered after the range when `after` is absent. */
|
|
1919
|
+
iconAfter?: IconNamesList;
|
|
1920
|
+
/** Applies error styling. Overrides field context when provided. */
|
|
1921
|
+
error?: boolean;
|
|
1922
|
+
/** Prevents editing both endpoints. Overrides field context when provided. */
|
|
1923
|
+
disabled?: boolean;
|
|
1924
|
+
/** Applies invalid styling. Overrides field context when provided. */
|
|
1925
|
+
invalid?: boolean;
|
|
1926
|
+
/** Reflected through to the segmented fields — lets a wrapping Menu/Picker show "active anchor" styling */
|
|
1927
|
+
open?: boolean;
|
|
1928
|
+
/** Forwarded to both segmented fields — see SegmentedDate's onFocusWithin */
|
|
1929
|
+
onFocusWithin?: () => void;
|
|
1930
|
+
/** Forwarded to both segmented fields — see SegmentedDate's onBlurWithin */
|
|
1931
|
+
onBlurWithin?: (relatedTarget: Node | null) => void;
|
|
1932
|
+
};
|
|
1933
|
+
|
|
1934
|
+
/**
|
|
1935
|
+
* Selects a date range from two independently navigable calendars.
|
|
1936
|
+
*
|
|
1937
|
+
* Selection is held as a draft until Apply is pressed. Cancel restores the
|
|
1938
|
+
* committed `value`. Apply is unavailable until both endpoints are selected.
|
|
1939
|
+
*
|
|
1940
|
+
* @example
|
|
1941
|
+
* ```tsx
|
|
1942
|
+
* <DateRangeMenu
|
|
1943
|
+
* trigger={<Button>Choose dates</Button>}
|
|
1944
|
+
* value={range}
|
|
1945
|
+
* onChange={setRange}
|
|
1946
|
+
* />
|
|
1947
|
+
* ```
|
|
1948
|
+
*/
|
|
1949
|
+
export declare const DateRangeMenu: (props: DateRangeMenuProps) => any;
|
|
1950
|
+
|
|
1951
|
+
/** Props for {@link DateRangeMenu}, including committed range and bounds. */
|
|
1952
|
+
export declare type DateRangeMenuProps = Omit<MenuProps, 'children' | 'onChange' | 'value'> & {
|
|
1953
|
+
/** Committed start and end dates used to initialize the menu draft. */
|
|
1954
|
+
value?: DateRangeValue | null;
|
|
1955
|
+
/** Commits the complete draft when Apply is pressed; Cancel discards it. */
|
|
1956
|
+
onChange?: (value: DateRangeValue | null) => void;
|
|
1957
|
+
/** Earliest selectable date for both calendars. */
|
|
1958
|
+
minDate?: DateValue;
|
|
1959
|
+
/** Latest selectable date for both calendars. */
|
|
1960
|
+
maxDate?: DateValue;
|
|
1961
|
+
/** Prevents opening or selection and returns only the trigger. */
|
|
1962
|
+
disabled?: boolean;
|
|
1963
|
+
/** Accessible label for the first calendar. */
|
|
1964
|
+
startLabel?: string;
|
|
1965
|
+
/** Accessible label for the second calendar. */
|
|
1966
|
+
endLabel?: string;
|
|
1967
|
+
};
|
|
1968
|
+
|
|
1969
|
+
/**
|
|
1970
|
+
* Combines segmented range entry with a two-calendar selection menu.
|
|
1971
|
+
*
|
|
1972
|
+
* Typed endpoints commit immediately. Calendar choices remain a draft until
|
|
1973
|
+
* Apply is pressed; Cancel restores the currently committed range.
|
|
1974
|
+
*
|
|
1975
|
+
* @example
|
|
1976
|
+
* ```tsx
|
|
1977
|
+
* <DateRangePicker startLabel="Arrival" endLabel="Departure" />
|
|
1978
|
+
* ```
|
|
1979
|
+
*/
|
|
1980
|
+
export declare const DateRangePicker: (props: DateRangePickerProps) => JSX.Element;
|
|
1981
|
+
|
|
1982
|
+
/** Props for {@link DateRangePicker}, combining range input and calendar menu. */
|
|
1983
|
+
export declare type DateRangePickerProps = Pick<DateRangeInputProps, 'id' | 'startLabel' | 'endLabel' | 'before' | 'after' | 'iconBefore' | 'iconAfter' | 'error' | 'disabled' | 'invalid' | 'dateFormat' | 'size'> & {
|
|
1984
|
+
/** Controlled start and end dates. Pair with `onChange`. */
|
|
1985
|
+
value?: DateRangeValue | null;
|
|
1986
|
+
/** Initial range when `value` is not provided. */
|
|
1987
|
+
defaultValue?: DateRangeValue | null;
|
|
1988
|
+
/** Runs for typed endpoint changes and applied calendar drafts. */
|
|
1989
|
+
onChange?: (value: DateRangeValue | null) => void;
|
|
1990
|
+
/** Earliest selectable date for both calendars. */
|
|
1991
|
+
minDate?: DateValue;
|
|
1992
|
+
/** Latest selectable date for both calendars. */
|
|
1993
|
+
maxDate?: DateValue;
|
|
1994
|
+
/** Floating UI placement of the calendar menu. */
|
|
1995
|
+
placement?: Placement;
|
|
1996
|
+
/** Controlled menu visibility. Pair with `onOpenChange`. */
|
|
1997
|
+
open?: boolean;
|
|
1998
|
+
/**
|
|
1999
|
+
* Initial menu visibility when `open` is not provided.
|
|
2000
|
+
*
|
|
2001
|
+
* @default false
|
|
2002
|
+
*/
|
|
2003
|
+
defaultOpen?: boolean;
|
|
2004
|
+
/** Runs when interaction requests that the menu open or close. */
|
|
2005
|
+
onOpenChange?: (open: boolean) => void;
|
|
2006
|
+
};
|
|
2007
|
+
|
|
2008
|
+
/** A committed date range — either endpoint may be null while only partially filled in. */
|
|
2009
|
+
export declare interface DateRangeValue {
|
|
2010
|
+
start: DateValue | null;
|
|
2011
|
+
end: DateValue | null;
|
|
2012
|
+
}
|
|
2013
|
+
|
|
2014
|
+
/**
|
|
2015
|
+
* Renders coordinated segmented date and time fields in one control.
|
|
2016
|
+
*
|
|
2017
|
+
* Each complete portion is preserved while the other changes. Use
|
|
2018
|
+
* `DateTimePicker` when calendar and time-selection menus are also needed.
|
|
2019
|
+
*
|
|
2020
|
+
* @example
|
|
2021
|
+
* ```tsx
|
|
2022
|
+
* <DateTimeInput dateLabel="Due date" timeLabel="Due time" />
|
|
2023
|
+
* ```
|
|
2024
|
+
*/
|
|
2025
|
+
export declare const DateTimeInput: (props: DateTimeInputProps) => JSX.Element;
|
|
2026
|
+
|
|
2027
|
+
/** Props for {@link DateTimeInput}, including combined state and field slots. */
|
|
2028
|
+
export declare type DateTimeInputProps = Omit<BoxProps, keyof SegmentedFieldsVariantProps | 'children'> & Omit<SegmentedFieldsVariantProps, 'field' | 'range' | 'before' | 'after'> & {
|
|
2029
|
+
/** Identifier applied to the combined field container. */
|
|
2030
|
+
id?: string;
|
|
2031
|
+
/** Controlled date and time. Pair with `onChange`. */
|
|
2032
|
+
value?: DateTimeValue | null;
|
|
2033
|
+
/** Initial date and time when `value` is not provided. */
|
|
2034
|
+
defaultValue?: DateTimeValue | null;
|
|
2035
|
+
/** Runs whenever the date or time portion changes. */
|
|
2036
|
+
onChange?: (value: DateTimeValue | null) => void;
|
|
2037
|
+
/** Segment order and separator convention for the date portion. */
|
|
2038
|
+
dateFormat?: DateFormat;
|
|
2039
|
+
/** Display cycle for the time portion. */
|
|
2040
|
+
timeFormat?: TimeFormat;
|
|
2041
|
+
/** Minute increment used by keyboard stepping. */
|
|
2042
|
+
minuteStep?: number;
|
|
2043
|
+
/** Accessible name for the date segments. */
|
|
2044
|
+
dateLabel?: string;
|
|
2045
|
+
/** Accessible name for the time segments. */
|
|
2046
|
+
timeLabel?: string;
|
|
2047
|
+
/** Content before the combined field. Takes precedence over `iconBefore`. */
|
|
2048
|
+
before?: ReactNode;
|
|
2049
|
+
/** Content after the combined field. Takes precedence over `iconAfter`. */
|
|
2050
|
+
after?: ReactNode;
|
|
2051
|
+
/** Legacy icon rendered before the field when `before` is absent. */
|
|
2052
|
+
iconBefore?: IconNamesList;
|
|
2053
|
+
/** Legacy icon rendered after the field when `after` is absent. */
|
|
2054
|
+
iconAfter?: IconNamesList;
|
|
2055
|
+
/** Applies error styling. Overrides field context when provided. */
|
|
2056
|
+
error?: boolean;
|
|
2057
|
+
/** Prevents editing both portions. Overrides field context when provided. */
|
|
2058
|
+
disabled?: boolean;
|
|
2059
|
+
/** Applies invalid styling. Overrides field context when provided. */
|
|
2060
|
+
invalid?: boolean;
|
|
2061
|
+
/** Reflected through to the segmented fields — lets a wrapping Menu/Picker show "active anchor" styling */
|
|
2062
|
+
open?: boolean;
|
|
2063
|
+
/** Forwarded to both segmented fields — see SegmentedDate/SegmentedTime's onFocusWithin */
|
|
2064
|
+
onFocusWithin?: () => void;
|
|
2065
|
+
/** Forwarded to both segmented fields — see SegmentedDate/SegmentedTime's onBlurWithin */
|
|
2066
|
+
onBlurWithin?: (relatedTarget: Node | null) => void;
|
|
2067
|
+
};
|
|
2068
|
+
|
|
2069
|
+
/**
|
|
2070
|
+
* Selects a date and time from a calendar and aligned time columns.
|
|
2071
|
+
*
|
|
2072
|
+
* Changes remain a draft until Apply is pressed. Cancel restores `value`, and
|
|
2073
|
+
* Apply is unavailable until both the date and time portions are complete.
|
|
2074
|
+
*
|
|
2075
|
+
* @example
|
|
2076
|
+
* ```tsx
|
|
2077
|
+
* <DateTimeMenu
|
|
2078
|
+
* trigger={<Button>Schedule</Button>}
|
|
2079
|
+
* value={scheduledAt}
|
|
2080
|
+
* onChange={setScheduledAt}
|
|
2081
|
+
* />
|
|
2082
|
+
* ```
|
|
2083
|
+
*/
|
|
2084
|
+
export declare const DateTimeMenu: (props: DateTimeMenuProps) => any;
|
|
2085
|
+
|
|
2086
|
+
/** Props for {@link DateTimeMenu}, including committed value and constraints. */
|
|
2087
|
+
export declare type DateTimeMenuProps = Omit<MenuProps, 'children' | 'onChange' | 'value'> & {
|
|
2088
|
+
/** Committed date and time used to initialize the menu draft. */
|
|
2089
|
+
value?: DateTimeValue | null;
|
|
2090
|
+
/** Commits the complete draft when Apply is pressed; Cancel discards it. */
|
|
2091
|
+
onChange?: (value: DateTimeValue | null) => void;
|
|
2092
|
+
/** Earliest selectable calendar date. */
|
|
2093
|
+
minDate?: DateValue;
|
|
2094
|
+
/** Latest selectable calendar date. */
|
|
2095
|
+
maxDate?: DateValue;
|
|
2096
|
+
/** Controlled visible calendar month. */
|
|
2097
|
+
viewDate?: ViewDate_3;
|
|
2098
|
+
/** Initial visible calendar month when `viewDate` is not provided. */
|
|
2099
|
+
defaultViewDate?: ViewDate_3;
|
|
2100
|
+
/** Runs when calendar navigation requests a new visible month. */
|
|
2101
|
+
onViewDateChange?: (viewDate: ViewDate_3) => void;
|
|
2102
|
+
/** Display cycle for the time columns. */
|
|
2103
|
+
timeFormat?: TimeFormat;
|
|
2104
|
+
/** Interval used to generate minute choices. */
|
|
2105
|
+
minuteStep?: number;
|
|
2106
|
+
/** Prevents opening or selection and returns only the trigger. */
|
|
2107
|
+
disabled?: boolean;
|
|
2108
|
+
/** Accessible label passed to the calendar grid. */
|
|
2109
|
+
dateLabel?: string;
|
|
2110
|
+
};
|
|
2111
|
+
|
|
2112
|
+
/**
|
|
2113
|
+
* Combines segmented date-time entry with a calendar and time menu.
|
|
2114
|
+
*
|
|
2115
|
+
* Typed portions commit immediately. Menu choices remain a draft until Apply
|
|
2116
|
+
* is pressed; Cancel restores the currently committed value.
|
|
2117
|
+
*
|
|
2118
|
+
* @example
|
|
2119
|
+
* ```tsx
|
|
2120
|
+
* <DateTimePicker dateLabel="Due date" timeLabel="Due time" />
|
|
2121
|
+
* ```
|
|
2122
|
+
*/
|
|
2123
|
+
export declare const DateTimePicker: (props: DateTimePickerProps) => JSX.Element;
|
|
2124
|
+
|
|
2125
|
+
/** Props for {@link DateTimePicker}, combining segmented entry and menu. */
|
|
2126
|
+
export declare type DateTimePickerProps = Pick<DateTimeInputProps, 'id' | 'dateLabel' | 'timeLabel' | 'before' | 'after' | 'iconBefore' | 'iconAfter' | 'error' | 'disabled' | 'invalid' | 'dateFormat' | 'timeFormat' | 'size'> & {
|
|
2127
|
+
/** Controlled combined date and time. Pair with `onChange`. */
|
|
2128
|
+
value?: DateTimeValue | null;
|
|
2129
|
+
/** Initial combined value when `value` is not provided. */
|
|
2130
|
+
defaultValue?: DateTimeValue | null;
|
|
2131
|
+
/** Runs for typed changes and applied menu drafts. */
|
|
2132
|
+
onChange?: (value: DateTimeValue | null) => void;
|
|
2133
|
+
/** Minute interval used by segmented stepping and menu choices. */
|
|
2134
|
+
minuteStep?: number;
|
|
2135
|
+
/** Earliest selectable calendar date. */
|
|
2136
|
+
minDate?: DateValue;
|
|
2137
|
+
/** Latest selectable calendar date. */
|
|
2138
|
+
maxDate?: DateValue;
|
|
2139
|
+
/** Controlled visible calendar month. */
|
|
2140
|
+
viewDate?: ViewDate_5;
|
|
2141
|
+
/** Initial visible month when `viewDate` is not provided. */
|
|
2142
|
+
defaultViewDate?: ViewDate_5;
|
|
2143
|
+
/** Runs when calendar navigation requests a new visible month. */
|
|
2144
|
+
onViewDateChange?: (viewDate: ViewDate_5) => void;
|
|
2145
|
+
/** Floating UI placement of the date-time menu. */
|
|
2146
|
+
placement?: Placement;
|
|
2147
|
+
/** Controlled menu visibility. Pair with `onOpenChange`. */
|
|
2148
|
+
open?: boolean;
|
|
2149
|
+
/**
|
|
2150
|
+
* Initial menu visibility when `open` is not provided.
|
|
2151
|
+
*
|
|
2152
|
+
* @default false
|
|
2153
|
+
*/
|
|
2154
|
+
defaultOpen?: boolean;
|
|
2155
|
+
/** Runs when interaction requests that the menu open or close. */
|
|
2156
|
+
onOpenChange?: (open: boolean) => void;
|
|
2157
|
+
};
|
|
2158
|
+
|
|
2159
|
+
/**
|
|
2160
|
+
* Coordinates independent start and end `DateTimePicker` controls.
|
|
2161
|
+
*
|
|
2162
|
+
* The controls render side by side when space allows and stack at narrow
|
|
2163
|
+
* widths. Each endpoint has its own menu and commits independently.
|
|
2164
|
+
*
|
|
2165
|
+
* @example
|
|
2166
|
+
* ```tsx
|
|
2167
|
+
* <DateTimeRangePicker
|
|
2168
|
+
* startDateLabel="Starts on"
|
|
2169
|
+
* startTimeLabel="Starts at"
|
|
2170
|
+
* endDateLabel="Ends on"
|
|
2171
|
+
* endTimeLabel="Ends at"
|
|
2172
|
+
* />
|
|
2173
|
+
* ```
|
|
2174
|
+
*/
|
|
2175
|
+
export declare const DateTimeRangePicker: (props: DateTimeRangePickerProps) => JSX.Element;
|
|
2176
|
+
|
|
2177
|
+
/** Props for {@link DateTimeRangePicker}, which coordinates two pickers. */
|
|
2178
|
+
export declare type DateTimeRangePickerProps = Pick<DateTimeInputProps, 'before' | 'after' | 'iconBefore' | 'iconAfter' | 'error' | 'disabled' | 'invalid' | 'dateFormat' | 'timeFormat' | 'size'> & {
|
|
2179
|
+
/** Controlled start and end date-times. Pair with `onChange`. */
|
|
2180
|
+
value?: DateTimeRangeValue | null;
|
|
2181
|
+
/** Initial range when `value` is not provided. */
|
|
2182
|
+
defaultValue?: DateTimeRangeValue | null;
|
|
2183
|
+
/** Runs whenever either endpoint commits a new value. */
|
|
2184
|
+
onChange?: (value: DateTimeRangeValue | null) => void;
|
|
2185
|
+
/** Minute interval shared by both endpoint pickers. */
|
|
2186
|
+
minuteStep?: number;
|
|
2187
|
+
/** Earliest selectable date for both endpoints. */
|
|
2188
|
+
minDate?: DateValue;
|
|
2189
|
+
/** Latest selectable date for both endpoints. */
|
|
2190
|
+
maxDate?: DateValue;
|
|
2191
|
+
/** Accessible date label for the start picker. */
|
|
2192
|
+
startDateLabel?: string;
|
|
2193
|
+
/** Accessible time label for the start picker. */
|
|
2194
|
+
startTimeLabel?: string;
|
|
2195
|
+
/** Accessible date label for the end picker. */
|
|
2196
|
+
endDateLabel?: string;
|
|
2197
|
+
/** Accessible time label for the end picker. */
|
|
2198
|
+
endTimeLabel?: string;
|
|
2199
|
+
/** Floating UI placement shared by both endpoint menus. */
|
|
2200
|
+
placement?: Placement;
|
|
2201
|
+
};
|
|
2202
|
+
|
|
2203
|
+
/** A committed date+time range — either endpoint may be null while only partially filled in. */
|
|
2204
|
+
export declare interface DateTimeRangeValue {
|
|
2205
|
+
start: DateTimeValue | null;
|
|
2206
|
+
end: DateTimeValue | null;
|
|
2207
|
+
}
|
|
2208
|
+
|
|
2209
|
+
/** A combined date+time value — either half may be null while only partially filled in. */
|
|
2210
|
+
export declare interface DateTimeValue {
|
|
2211
|
+
date: DateValue | null;
|
|
2212
|
+
time: TimeValue | null;
|
|
2213
|
+
}
|
|
2214
|
+
|
|
2215
|
+
/** A calendar date. Month is 1-indexed (1 = January) to match human-readable input. */
|
|
2216
|
+
export declare interface DateValue {
|
|
2217
|
+
year: number;
|
|
2218
|
+
month: number;
|
|
2219
|
+
day: number;
|
|
2220
|
+
}
|
|
2221
|
+
|
|
2222
|
+
/** Returns explicit `textValue` when present, otherwise derives searchable text from item metadata. */
|
|
2223
|
+
export declare const deriveItemTextValue: ({ textValue, label, description, getItemText, }: {
|
|
2224
|
+
textValue?: string;
|
|
2225
|
+
label?: string;
|
|
2226
|
+
description?: string;
|
|
2227
|
+
getItemText: (item: {
|
|
2228
|
+
label?: string;
|
|
2229
|
+
description?: string;
|
|
2230
|
+
}) => string;
|
|
2231
|
+
}) => string;
|
|
1316
2232
|
|
|
1317
2233
|
declare type DistributiveOmit<T, K extends keyof any> = T extends unknown ? Omit<T, K> : never
|
|
1318
2234
|
|
|
2235
|
+
/**
|
|
2236
|
+
* Draws a visual separator between adjacent regions.
|
|
2237
|
+
*
|
|
2238
|
+
* `Divider` is decorative and renders a `div`; use semantic sectioning and
|
|
2239
|
+
* headings when the separation must also be conveyed to assistive technology.
|
|
2240
|
+
*
|
|
2241
|
+
* @example
|
|
2242
|
+
* ```tsx
|
|
2243
|
+
* <Divider />
|
|
2244
|
+
* ```
|
|
2245
|
+
*/
|
|
1319
2246
|
export declare const Divider: (props: DividerProps) => JSX.Element;
|
|
1320
2247
|
|
|
1321
|
-
|
|
2248
|
+
/** Props accepted by {@link Divider}. */
|
|
2249
|
+
export declare type DividerProps = Omit<BoxProps, keyof DividerVariantProps> & DividerVariantProps & {
|
|
2250
|
+
/** Axis along which the visual divider extends. */
|
|
2251
|
+
/** @default "horizontal" */
|
|
1322
2252
|
direction?: DividerVariantProps['direction'];
|
|
2253
|
+
/** Visual thickness of the divider. */
|
|
2254
|
+
/** @default "thin" */
|
|
1323
2255
|
weight?: DividerVariantProps['weight'];
|
|
1324
2256
|
};
|
|
1325
2257
|
|
|
@@ -1338,6 +2270,43 @@ declare type DividerVariantProps = {
|
|
|
1338
2270
|
[key in keyof DividerVariant]?: ConditionalValue<DividerVariant[key]> | undefined
|
|
1339
2271
|
}
|
|
1340
2272
|
|
|
2273
|
+
/**
|
|
2274
|
+
* Adds a test id to the interaction chain shared with a subtree.
|
|
2275
|
+
*
|
|
2276
|
+
* Design-system components pick this up automatically: `Box` opens a scope
|
|
2277
|
+
* whenever it receives a `data-testid`, so anything rendered through the
|
|
2278
|
+
* library already contributes. Reach for `DsChainScope` only around raw DOM
|
|
2279
|
+
* that does not render through `Box` and still needs to appear in the chain,
|
|
2280
|
+
* such as an application-owned wrapper element.
|
|
2281
|
+
*
|
|
2282
|
+
* The chain exists so portaled content can be attributed back to the subtree
|
|
2283
|
+
* that opened it. A menu, modal, or tooltip renders into `document.body` and
|
|
2284
|
+
* has no DOM ancestry to its opener, but React context follows the React tree
|
|
2285
|
+
* through a portal, so the chain resolves correctly on either side.
|
|
2286
|
+
*
|
|
2287
|
+
* Renders no DOM of its own. The chain keeps the five nearest ids.
|
|
2288
|
+
*
|
|
2289
|
+
* @example
|
|
2290
|
+
* ```tsx
|
|
2291
|
+
* <DsChainScope testId="order-row">
|
|
2292
|
+
* <tr data-testid="order-row">{cells}</tr>
|
|
2293
|
+
* </DsChainScope>
|
|
2294
|
+
* ```
|
|
2295
|
+
*/
|
|
2296
|
+
export declare const DsChainScope: ({ testId, children }: DsChainScopeProps) => JSX.Element;
|
|
2297
|
+
|
|
2298
|
+
/** Props accepted by {@link DsChainScope}. */
|
|
2299
|
+
export declare type DsChainScopeProps = {
|
|
2300
|
+
/**
|
|
2301
|
+
* `data-testid` value appended to the chain inherited by `children`. Match it
|
|
2302
|
+
* to the `data-testid` written on the element this scope describes so the
|
|
2303
|
+
* chain and the DOM agree.
|
|
2304
|
+
*/
|
|
2305
|
+
testId: string;
|
|
2306
|
+
/** Subtree that resolves the extended chain. */
|
|
2307
|
+
children?: ReactNode;
|
|
2308
|
+
};
|
|
2309
|
+
|
|
1341
2310
|
declare type DurationToken = "fastest" | "faster" | "fast" | "normal" | "slow" | "slower" | "slowest"
|
|
1342
2311
|
|
|
1343
2312
|
declare type EasingToken = "default" | "linear" | "in" | "out" | "in-out"
|
|
@@ -1350,24 +2319,81 @@ declare type FontToken = "heading" | "body" | "mono"
|
|
|
1350
2319
|
|
|
1351
2320
|
declare type FontWeightToken = "light" | "normal" | "medium" | "bold" | "black"
|
|
1352
2321
|
|
|
2322
|
+
/**
|
|
2323
|
+
* Groups a label, control, help text, and validation message into one field.
|
|
2324
|
+
*
|
|
2325
|
+
* `labelFor` must match the `id` of the nested input. The component provides
|
|
2326
|
+
* `size`, `error`, `invalid`, and `disabled` through field context to
|
|
2327
|
+
* compatible descendants, but it does not add native input attributes for
|
|
2328
|
+
* them. If `success` and an error state are both true, success messaging wins.
|
|
2329
|
+
*
|
|
2330
|
+
* @example
|
|
2331
|
+
* ```tsx
|
|
2332
|
+
* <FormField label="Email" labelFor="email" required>
|
|
2333
|
+
* <TextInput id="email" type="email" required />
|
|
2334
|
+
* </FormField>
|
|
2335
|
+
* ```
|
|
2336
|
+
*/
|
|
1353
2337
|
export declare const FormField: (props: FormFieldProps) => JSX.Element;
|
|
1354
2338
|
|
|
1355
|
-
|
|
2339
|
+
/**
|
|
2340
|
+
* Props for {@link FormField}. It supplies field state to compatible
|
|
2341
|
+
* descendants through `FieldContext`.
|
|
2342
|
+
*/
|
|
2343
|
+
export declare type FormFieldProps = Omit<BoxProps, keyof FormFieldVariantProps | 'gap'> & FormFieldVariantProps & {
|
|
2344
|
+
/** Visible label text for the field. */
|
|
1356
2345
|
label: string;
|
|
2346
|
+
/**
|
|
2347
|
+
* The `id` of the labeled input. The child input must use this exact `id`
|
|
2348
|
+
* for the rendered label's `htmlFor` relationship to work.
|
|
2349
|
+
*/
|
|
1357
2350
|
labelFor: string;
|
|
2351
|
+
/** Input or control content associated with this field. */
|
|
1358
2352
|
children: ReactNode;
|
|
2353
|
+
/** Supporting guidance displayed near the input. */
|
|
1359
2354
|
helpText?: string;
|
|
2355
|
+
/**
|
|
2356
|
+
* Displays a visual required indicator. Also set `required` on the native
|
|
2357
|
+
* input when browser validation or required semantics are needed.
|
|
2358
|
+
*/
|
|
1360
2359
|
required?: boolean;
|
|
2360
|
+
/** Marks the field and compatible descendants as having an error. */
|
|
1361
2361
|
error?: boolean;
|
|
2362
|
+
/** Marks the field invalid and supplies invalid state to compatible descendants. */
|
|
1362
2363
|
invalid?: boolean;
|
|
2364
|
+
/** Marks the field successful. Success text takes precedence over error text. */
|
|
1363
2365
|
success?: boolean;
|
|
2366
|
+
/** Message displayed when `error` or `invalid` is true and `success` is false. */
|
|
1364
2367
|
errorText?: string;
|
|
2368
|
+
/** Message displayed when `success` is true, including when error state is also set. */
|
|
1365
2369
|
successText?: string;
|
|
2370
|
+
/**
|
|
2371
|
+
* Marks the field `aria-disabled`, applies disabled styling, and supplies
|
|
2372
|
+
* disabled state to compatible descendants. Native child controls must
|
|
2373
|
+
* still receive `disabled` themselves.
|
|
2374
|
+
*/
|
|
1366
2375
|
disabled?: boolean;
|
|
2376
|
+
/** Optional title shown by the label-help tooltip when `tooltipText` is provided. */
|
|
1367
2377
|
tooltipTitle?: string;
|
|
2378
|
+
/**
|
|
2379
|
+
* Help text that enables the informational tooltip beside the label. The
|
|
2380
|
+
* tooltip is not rendered without this value.
|
|
2381
|
+
*/
|
|
1368
2382
|
tooltipText?: string;
|
|
2383
|
+
/**
|
|
2384
|
+
* Field size passed to compatible descendants and used by the field recipe.
|
|
2385
|
+
*
|
|
2386
|
+
* @default 'md'
|
|
2387
|
+
*/
|
|
1369
2388
|
size?: FormFieldVariantProps['size'];
|
|
2389
|
+
/**
|
|
2390
|
+
* Uses a stacked field by default; `inline` places label and control in a
|
|
2391
|
+
* two-column layout.
|
|
2392
|
+
*
|
|
2393
|
+
* @default 'default'
|
|
2394
|
+
*/
|
|
1370
2395
|
layout?: FormFieldVariantProps['layout'];
|
|
2396
|
+
/** Spacing token applied between controls in the field's input container. */
|
|
1371
2397
|
gap?: SpacingToken;
|
|
1372
2398
|
};
|
|
1373
2399
|
|
|
@@ -1386,8 +2412,10 @@ declare type FormFieldVariantProps = {
|
|
|
1386
2412
|
[key in keyof FormFieldVariant]?: ConditionalValue<FormFieldVariant[key]> | undefined
|
|
1387
2413
|
}
|
|
1388
2414
|
|
|
2415
|
+
/** Returns the internal menu compound-component marker for a React element, or `null` for other values. */
|
|
1389
2416
|
export declare const getComponentType: (node: unknown) => string | null;
|
|
1390
2417
|
|
|
2418
|
+
/** Splits text into case-insensitive query-match parts for highlight rendering. */
|
|
1391
2419
|
export declare const getHighlightedTextParts: (value: string, query: string) => {
|
|
1392
2420
|
text: string;
|
|
1393
2421
|
match: boolean;
|
|
@@ -1397,12 +2425,27 @@ declare type Globals = "-moz-initial" | "inherit" | "initial" | "revert" | "reve
|
|
|
1397
2425
|
|
|
1398
2426
|
export declare type GlobalStyleObject = Record<string, unknown>;
|
|
1399
2427
|
|
|
2428
|
+
/** Returns whether a child tree contains any visible menu item, subgroup, or submenu for a filter. */
|
|
1400
2429
|
export declare const hasMatchingItems: (children: ReactNode, filterContext: MenuFilterContextValue) => boolean;
|
|
1401
2430
|
|
|
2431
|
+
/**
|
|
2432
|
+
* Renders a semantic document heading with the matching typography.
|
|
2433
|
+
*
|
|
2434
|
+
* Choose `level` from the page outline rather than for visual size alone.
|
|
2435
|
+
*
|
|
2436
|
+
* @example
|
|
2437
|
+
* ```tsx
|
|
2438
|
+
* <Heading level="h2">Shipping details</Heading>
|
|
2439
|
+
* ```
|
|
2440
|
+
*/
|
|
1402
2441
|
export declare const Heading: (props: HeadingProps) => JSX.Element;
|
|
1403
2442
|
|
|
1404
|
-
|
|
2443
|
+
/** Props accepted by {@link Heading}. */
|
|
2444
|
+
export declare type HeadingProps = Omit<TextProps, keyof HeadingVariantProps> & HeadingVariantProps & {
|
|
2445
|
+
/** Heading content. */
|
|
1405
2446
|
children?: string | ReactNode;
|
|
2447
|
+
/** Semantic heading level and matching visual treatment. */
|
|
2448
|
+
/** @default "h2" */
|
|
1406
2449
|
level?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
1407
2450
|
};
|
|
1408
2451
|
|
|
@@ -1418,11 +2461,33 @@ declare type HeadingVariantProps = {
|
|
|
1418
2461
|
[key in keyof HeadingVariant]?: ConditionalValue<HeadingVariant[key]> | undefined
|
|
1419
2462
|
}
|
|
1420
2463
|
|
|
2464
|
+
/**
|
|
2465
|
+
* Renders case-insensitive literal matches in text using semantic `mark`
|
|
2466
|
+
* elements.
|
|
2467
|
+
*
|
|
2468
|
+
* Empty or whitespace-only queries, and `enabled={false}`, render the original
|
|
2469
|
+
* string without wrapper markup. Use it directly for custom content; default
|
|
2470
|
+
* {@link ListItem} content uses it automatically when highlighting is enabled.
|
|
2471
|
+
*
|
|
2472
|
+
* @example
|
|
2473
|
+
* ```tsx
|
|
2474
|
+
* <HighlightText value="Account settings" query="account" />
|
|
2475
|
+
* ```
|
|
2476
|
+
*/
|
|
1421
2477
|
export declare const HighlightText: (props: HighlightTextProps) => JSX.Element;
|
|
1422
2478
|
|
|
1423
|
-
|
|
2479
|
+
/** Props for {@link HighlightText}. */
|
|
2480
|
+
export declare type HighlightTextProps = Omit<BoxProps, keyof HighlightTextVariantProps> & HighlightTextVariantProps & {
|
|
2481
|
+
/** Text to render and search within. */
|
|
1424
2482
|
value: string;
|
|
2483
|
+
/** Case-insensitive literal text to mark within `value`. */
|
|
1425
2484
|
query: string;
|
|
2485
|
+
/**
|
|
2486
|
+
* When false, returns `value` without creating highlight markup or applying
|
|
2487
|
+
* styling props.
|
|
2488
|
+
*
|
|
2489
|
+
* @default true
|
|
2490
|
+
*/
|
|
1426
2491
|
enabled?: boolean;
|
|
1427
2492
|
};
|
|
1428
2493
|
|
|
@@ -1434,22 +2499,74 @@ declare type HighlightTextVariantProps = {
|
|
|
1434
2499
|
[key in keyof HighlightTextVariant]?: ConditionalValue<HighlightTextVariant[key]> | undefined
|
|
1435
2500
|
}
|
|
1436
2501
|
|
|
1437
|
-
declare type HourCycle = '12' | '24';
|
|
1438
|
-
|
|
1439
2502
|
declare type HTMLStyledProps<T extends ElementType> = JsxHTMLProps<ComponentProps<T> & UnstyledProps & AsProps, JsxStyleProps>
|
|
1440
2503
|
|
|
2504
|
+
/**
|
|
2505
|
+
* Renders an SVG symbol from the configured icon sprite.
|
|
2506
|
+
*
|
|
2507
|
+
* Icons are visual content, not automatically hidden or named. Pass
|
|
2508
|
+
* `aria-hidden` for decorative icons; give meaningful standalone icons an
|
|
2509
|
+
* accessible name such as `aria-label`. Wrap meaningful actions in
|
|
2510
|
+
* {@link IconButton} rather than using a bare clickable SVG.
|
|
2511
|
+
*
|
|
2512
|
+
* @example
|
|
2513
|
+
* ```tsx
|
|
2514
|
+
* <Icon name="info" aria-label="More information" />
|
|
2515
|
+
* ```
|
|
2516
|
+
*/
|
|
1441
2517
|
export declare const Icon: (props: IconProps) => JSX.Element;
|
|
1442
2518
|
|
|
2519
|
+
/**
|
|
2520
|
+
* Performs an icon-only action or navigation with a required accessible label.
|
|
2521
|
+
*
|
|
2522
|
+
* Renders a native `button` by default, or an anchor when `href` is supplied.
|
|
2523
|
+
* Its explicit `size`, `error`, `invalid`, and `disabled` values take
|
|
2524
|
+
* precedence over slot context, which takes precedence over field context.
|
|
2525
|
+
* Its recipe defaults to the `standard` variant and `md` size.
|
|
2526
|
+
*
|
|
2527
|
+
* @example
|
|
2528
|
+
* ```tsx
|
|
2529
|
+
* <IconButton iconName="edit" altText="Edit invoice" onClick={editInvoice} />
|
|
2530
|
+
* ```
|
|
2531
|
+
*/
|
|
1443
2532
|
export declare const IconButton: (props: IconButtonProps) => JSX.Element;
|
|
1444
2533
|
|
|
1445
|
-
|
|
2534
|
+
/**
|
|
2535
|
+
* Props for {@link IconButton}. Extends {@link BoxProps} for layout and native
|
|
2536
|
+
* element attributes while reserving its visual recipe variants.
|
|
2537
|
+
*/
|
|
2538
|
+
export declare type IconButtonProps = Omit<BoxProps, keyof IconButtonVariantProps> & IconButtonVariantProps & {
|
|
2539
|
+
/** Icon symbol rendered for the action. */
|
|
1446
2540
|
iconName: IconNamesList;
|
|
2541
|
+
/**
|
|
2542
|
+
* Required accessible label for the button and text used by its tooltip.
|
|
2543
|
+
* Describe the action, not the icon's shape.
|
|
2544
|
+
*/
|
|
1447
2545
|
altText: string;
|
|
2546
|
+
/** When provided, renders an anchor instead of a native button. */
|
|
1448
2547
|
href?: string;
|
|
2548
|
+
/**
|
|
2549
|
+
* Shows a centered spinner, hides the icon, and sets `aria-busy`. Loading
|
|
2550
|
+
* does not disable the control; set `disabled` when the action is unavailable.
|
|
2551
|
+
*
|
|
2552
|
+
* @default false
|
|
2553
|
+
*/
|
|
1449
2554
|
loading?: boolean;
|
|
2555
|
+
/** Marks the control as having an error for styling. */
|
|
1450
2556
|
error?: boolean;
|
|
2557
|
+
/** Sets `aria-invalid` and marks the control invalid for styling. */
|
|
1451
2558
|
invalid?: boolean;
|
|
2559
|
+
/**
|
|
2560
|
+
* Disables a native button. For links, marks the anchor `aria-disabled` and
|
|
2561
|
+
* prevents its default click navigation.
|
|
2562
|
+
*/
|
|
1452
2563
|
disabled?: boolean;
|
|
2564
|
+
/**
|
|
2565
|
+
* Native button type; ignored when `href` causes the component to render an
|
|
2566
|
+
* anchor.
|
|
2567
|
+
*
|
|
2568
|
+
* @default 'button'
|
|
2569
|
+
*/
|
|
1453
2570
|
type?: 'submit' | 'reset' | 'button';
|
|
1454
2571
|
};
|
|
1455
2572
|
|
|
@@ -1468,10 +2585,12 @@ declare type IconButtonVariantProps = {
|
|
|
1468
2585
|
[key in keyof IconButtonVariant]?: ConditionalValue<IconButtonVariant[key]> | undefined
|
|
1469
2586
|
}
|
|
1470
2587
|
|
|
2588
|
+
/** Resolved SVG sprite configuration shared by {@link IconProvider}. */
|
|
1471
2589
|
declare type IconConfigContextValue = {
|
|
1472
2590
|
spritePath: string;
|
|
1473
2591
|
};
|
|
1474
2592
|
|
|
2593
|
+
/** Runtime catalog of icon names accepted by `Icon`. */
|
|
1475
2594
|
export declare const IconNames: {
|
|
1476
2595
|
readonly 'aa-placeholder': "aa-placeholder";
|
|
1477
2596
|
readonly alarm: "alarm";
|
|
@@ -2099,16 +3218,57 @@ declare type IconNamesList =
|
|
|
2099
3218
|
| 'zoom-in'
|
|
2100
3219
|
| 'zoom-out';
|
|
2101
3220
|
|
|
2102
|
-
declare type
|
|
3221
|
+
declare type IconOwnProps = {
|
|
3222
|
+
/** Symbol identifier from the configured SVG sprite. */
|
|
2103
3223
|
name: IconNamesList;
|
|
3224
|
+
/**
|
|
3225
|
+
* Icon size recipe variant. Responsive/conditional recipe values are
|
|
3226
|
+
* supported. An explicit value takes precedence over slot context.
|
|
3227
|
+
*
|
|
3228
|
+
* @default 24px when no size is supplied by the icon or its slot context
|
|
3229
|
+
*/
|
|
2104
3230
|
size?: IconVariantProps['size'];
|
|
3231
|
+
/**
|
|
3232
|
+
* Design-token fill color. An explicit value takes precedence over slot
|
|
3233
|
+
* context; otherwise the recipe uses the decorative icon color.
|
|
3234
|
+
*
|
|
3235
|
+
* @default 'icon.decorative'
|
|
3236
|
+
*/
|
|
2105
3237
|
fill?: ColorToken;
|
|
2106
3238
|
};
|
|
2107
3239
|
|
|
3240
|
+
/**
|
|
3241
|
+
* Props for {@link Icon}. Extends SVG and Box props for presentation and
|
|
3242
|
+
* accessibility attributes.
|
|
3243
|
+
*/
|
|
3244
|
+
export declare type IconProps = Omit<BoxProps, keyof IconVariantProps | keyof IconOwnProps> & Omit<IconVariantProps, keyof IconOwnProps> & IconOwnProps;
|
|
3245
|
+
|
|
3246
|
+
/**
|
|
3247
|
+
* Configures the SVG sprite used by descendant {@link Icon} components.
|
|
3248
|
+
*
|
|
3249
|
+
* Use it at an application or embedded-library boundary when the default
|
|
3250
|
+
* `/sprite.svg` location is not available. Nested providers override the
|
|
3251
|
+
* sprite path for their own descendants.
|
|
3252
|
+
*
|
|
3253
|
+
* @example
|
|
3254
|
+
* ```tsx
|
|
3255
|
+
* <IconProvider spritePath="/assets/icons.svg">
|
|
3256
|
+
* <App />
|
|
3257
|
+
* </IconProvider>
|
|
3258
|
+
* ```
|
|
3259
|
+
*/
|
|
2108
3260
|
export declare const IconProvider: ({ children, spritePath }: IconProviderProps) => JSX.Element;
|
|
2109
3261
|
|
|
3262
|
+
/** Props for {@link IconProvider}. */
|
|
2110
3263
|
export declare type IconProviderProps = {
|
|
3264
|
+
/** Components that should resolve sprite symbols from this provider. */
|
|
2111
3265
|
children: ReactNode;
|
|
3266
|
+
/**
|
|
3267
|
+
* URL or path to the SVG sprite file. This provider value applies to all
|
|
3268
|
+
* descendant `Icon` components.
|
|
3269
|
+
*
|
|
3270
|
+
* @default '/sprite.svg'
|
|
3271
|
+
*/
|
|
2112
3272
|
spritePath?: string;
|
|
2113
3273
|
};
|
|
2114
3274
|
|
|
@@ -2125,6 +3285,7 @@ declare type Important = ImportantMark | WhitespaceImportant
|
|
|
2125
3285
|
|
|
2126
3286
|
declare type ImportantMark = "!" | "!important"
|
|
2127
3287
|
|
|
3288
|
+
/** Returns whether text is visible for the supplied filtering mode and query. */
|
|
2128
3289
|
export declare const isItemMatch: ({ textValue, query, filterMode, }: {
|
|
2129
3290
|
textValue: string;
|
|
2130
3291
|
query: string;
|
|
@@ -2139,23 +3300,46 @@ P
|
|
|
2139
3300
|
declare type JsxStyleProps = SystemStyleObject_2 & WithCss
|
|
2140
3301
|
|
|
2141
3302
|
/**
|
|
2142
|
-
*
|
|
2143
|
-
*
|
|
2144
|
-
*
|
|
2145
|
-
*
|
|
3303
|
+
* Displays a keyboard shortcut as a group of native `kbd` elements.
|
|
3304
|
+
*
|
|
3305
|
+
* Known symbols receive readable tooltip labels: ⌘ command, ⌥ option,
|
|
3306
|
+
* ⌃ control, ⇪ shift, ⎋ escape, ⌫ delete, ↩ return, ⇥ tab, and the four arrow
|
|
3307
|
+
* symbols. `Kbd` describes a shortcut; it is not an interactive control.
|
|
3308
|
+
*
|
|
3309
|
+
* @example
|
|
3310
|
+
* ```tsx
|
|
3311
|
+
* <Kbd keys={['⌘', 'K']} />
|
|
3312
|
+
* ```
|
|
2146
3313
|
*/
|
|
2147
3314
|
export declare const Kbd: (props: KbdProps) => JSX.Element;
|
|
2148
3315
|
|
|
3316
|
+
/** Props accepted by {@link Kbd}. */
|
|
2149
3317
|
export declare type KbdProps = Omit<BoxProps, 'children'> & {
|
|
3318
|
+
/** Ordered key labels that make up the shortcut. */
|
|
2150
3319
|
keys: KbdValue[];
|
|
2151
3320
|
};
|
|
2152
3321
|
|
|
3322
|
+
/** A visible key label accepted by `Kbd`. */
|
|
2153
3323
|
declare type KbdValue = string;
|
|
2154
3324
|
|
|
3325
|
+
/**
|
|
3326
|
+
* Renders a native label for a form control.
|
|
3327
|
+
*
|
|
3328
|
+
* `htmlFor` must match the target control's `id`. Use `FormField` when the
|
|
3329
|
+
* control also needs help text, validation messaging, or shared field state.
|
|
3330
|
+
*
|
|
3331
|
+
* @example
|
|
3332
|
+
* ```tsx
|
|
3333
|
+
* <Label htmlFor="email">Email address</Label>
|
|
3334
|
+
* ```
|
|
3335
|
+
*/
|
|
2155
3336
|
export declare const Label: (props: LabelProps) => JSX.Element;
|
|
2156
3337
|
|
|
2157
|
-
|
|
3338
|
+
/** Props accepted by {@link Label}. */
|
|
3339
|
+
export declare type LabelProps = Omit<BoxProps, keyof LabelVariantProps> & LabelVariantProps & {
|
|
3340
|
+
/** ID of the form control labeled by this element. */
|
|
2158
3341
|
htmlFor: string;
|
|
3342
|
+
/** Visible label content. */
|
|
2159
3343
|
children?: string | ReactNode;
|
|
2160
3344
|
};
|
|
2161
3345
|
|
|
@@ -2182,18 +3366,45 @@ declare type LetterSpacingToken = "tighter" | "tight" | "normal" | "wide" | "wid
|
|
|
2182
3366
|
|
|
2183
3367
|
declare type LineHeightToken = "none" | "tight" | "default" | "loose"
|
|
2184
3368
|
|
|
3369
|
+
/**
|
|
3370
|
+
* Navigates to another location using a native anchor.
|
|
3371
|
+
*
|
|
3372
|
+
* Set `external` for destinations that should open in a new tab. Use `Button`
|
|
3373
|
+
* for actions that do not navigate.
|
|
3374
|
+
*
|
|
3375
|
+
* @example
|
|
3376
|
+
* ```tsx
|
|
3377
|
+
* <Link href="/orders">View orders</Link>
|
|
3378
|
+
* ```
|
|
3379
|
+
*/
|
|
2185
3380
|
export declare const Link: (props: LinkProps) => JSX.Element;
|
|
2186
3381
|
|
|
2187
|
-
|
|
3382
|
+
/** Props accepted by {@link Link}. */
|
|
3383
|
+
export declare type LinkProps = Omit<BoxProps, keyof LinkVariantProps> & LinkVariantProps & {
|
|
3384
|
+
/** Destination URL for the native anchor. */
|
|
2188
3385
|
href: string;
|
|
3386
|
+
/** Opens the destination in a new tab and displays an external-link icon. */
|
|
3387
|
+
/** @default false */
|
|
2189
3388
|
external?: boolean;
|
|
3389
|
+
/** Prevents navigation and removes the link from sequential keyboard focus. */
|
|
3390
|
+
/** @default false */
|
|
2190
3391
|
disabled?: boolean;
|
|
3392
|
+
/** Visual text size. */
|
|
2191
3393
|
size?: LinkVariantProps['size'];
|
|
3394
|
+
/** Font family token used for the link text. */
|
|
3395
|
+
/** @default "body" */
|
|
2192
3396
|
family?: FontToken;
|
|
3397
|
+
/** Applies italic styling to the link text. */
|
|
3398
|
+
/** @default false */
|
|
2193
3399
|
italic?: boolean;
|
|
3400
|
+
/** Applies the recipe's bold link treatment. */
|
|
3401
|
+
/** @default false */
|
|
2194
3402
|
bold?: boolean;
|
|
3403
|
+
/** Explicit font-weight token. */
|
|
2195
3404
|
weight?: FontWeightToken;
|
|
3405
|
+
/** Additional class name merged with the link recipe class. */
|
|
2196
3406
|
className?: string;
|
|
3407
|
+
/** Link label and inline content. */
|
|
2197
3408
|
children?: ReactNode;
|
|
2198
3409
|
};
|
|
2199
3410
|
|
|
@@ -2216,27 +3427,88 @@ declare type LinkVariantProps = {
|
|
|
2216
3427
|
[key in keyof LinkVariant]?: ConditionalValue<LinkVariant[key]> | undefined
|
|
2217
3428
|
}
|
|
2218
3429
|
|
|
3430
|
+
/**
|
|
3431
|
+
* Lays out related {@link ListItem} controls and shares density and search
|
|
3432
|
+
* highlighting settings with its descendants.
|
|
3433
|
+
*
|
|
3434
|
+
* The component renders a `div` and does not assign an ARIA role. When its
|
|
3435
|
+
* children are interactive options, provide the appropriate role and label
|
|
3436
|
+
* (for example, `role="listbox"` and `aria-label`).
|
|
3437
|
+
*
|
|
3438
|
+
* @example
|
|
3439
|
+
* ```tsx
|
|
3440
|
+
* <List role="listbox" aria-label="Account settings">
|
|
3441
|
+
* <ListItem label="Profile" />
|
|
3442
|
+
* </List>
|
|
3443
|
+
* ```
|
|
3444
|
+
*/
|
|
2219
3445
|
export declare const List: (props: ListProps) => JSX.Element;
|
|
2220
3446
|
|
|
3447
|
+
/** Values inherited by descendants of a {@link ListProvider}. */
|
|
2221
3448
|
declare type ListContextValue = {
|
|
3449
|
+
/** Resolved list spacing density. */
|
|
2222
3450
|
density: ListDensity;
|
|
3451
|
+
/** Search text for default list-item content. */
|
|
2223
3452
|
query: string;
|
|
3453
|
+
/** Whether default list-item text should mark query matches. */
|
|
2224
3454
|
highlightMatches: boolean;
|
|
3455
|
+
/** Reserved list-item variant metadata for custom list composition. */
|
|
2225
3456
|
variant?: ListItemVariantProps['variant'];
|
|
3457
|
+
/** Reserved leading icon metadata for custom list composition. */
|
|
2226
3458
|
iconBefore?: IconNamesList;
|
|
3459
|
+
/** Reserved trailing icon metadata for custom list composition. */
|
|
2227
3460
|
iconAfter?: IconNamesList;
|
|
2228
3461
|
};
|
|
2229
3462
|
|
|
3463
|
+
/** Responsive density value shared by List primitives. */
|
|
2230
3464
|
declare type ListDensity = ListItemVariantProps['density'];
|
|
2231
3465
|
|
|
3466
|
+
/**
|
|
3467
|
+
* Renders an interactive option, link, selection control, or visual divider.
|
|
3468
|
+
*
|
|
3469
|
+
* Except for the `divider` variant, it renders a native `button` with
|
|
3470
|
+
* `type="button"` by default, or an anchor when `href` is provided, and sets
|
|
3471
|
+
* `role="option"`. Place interactive items in a suitably labeled parent such
|
|
3472
|
+
* as `<List role="listbox">`. Pass custom `children` for fully custom item
|
|
3473
|
+
* content; doing so replaces the label, description, controls, icons, and
|
|
3474
|
+
* match highlighting.
|
|
3475
|
+
*
|
|
3476
|
+
* @example
|
|
3477
|
+
* ```tsx
|
|
3478
|
+
* <ListItem label="Profile" description="Manage your account" />
|
|
3479
|
+
* ```
|
|
3480
|
+
*/
|
|
2232
3481
|
export declare const ListItem: (props: ListItemProps) => JSX.Element;
|
|
2233
3482
|
|
|
3483
|
+
/**
|
|
3484
|
+
* Groups related list items under an optional label and can add a trailing
|
|
3485
|
+
* separator.
|
|
3486
|
+
*
|
|
3487
|
+
* The group inherits search settings from its parent list and provides its
|
|
3488
|
+
* resolved density to descendants. Use {@link List} as the parent when items
|
|
3489
|
+
* should share list semantics and configuration.
|
|
3490
|
+
*
|
|
3491
|
+
* @example
|
|
3492
|
+
* ```tsx
|
|
3493
|
+
* <ListItemGroup label="Account">
|
|
3494
|
+
* <ListItem label="Profile" />
|
|
3495
|
+
* </ListItemGroup>
|
|
3496
|
+
* ```
|
|
3497
|
+
*/
|
|
2234
3498
|
export declare const ListItemGroup: (props: ListItemGroupProps) => JSX.Element;
|
|
2235
3499
|
|
|
2236
|
-
|
|
3500
|
+
/** Props for {@link ListItemGroup}. */
|
|
3501
|
+
export declare type ListItemGroupProps = Omit<BoxProps, keyof ListItemGroupVariantProps | 'children'> & ListItemGroupVariantProps & {
|
|
3502
|
+
/** Optional heading displayed above the group's children. */
|
|
2237
3503
|
label?: string;
|
|
3504
|
+
/** Items or other content belonging to this group. */
|
|
2238
3505
|
children: BoxProps['children'];
|
|
3506
|
+
/** Displays a separator after the group. */
|
|
2239
3507
|
divider?: boolean;
|
|
3508
|
+
/**
|
|
3509
|
+
* Density inherited by descendant list items unless they provide their own
|
|
3510
|
+
* value. Responsive recipe values are supported.
|
|
3511
|
+
*/
|
|
2240
3512
|
density?: ListDensity;
|
|
2241
3513
|
};
|
|
2242
3514
|
|
|
@@ -2251,20 +3523,64 @@ declare type ListItemGroupVariantProps = {
|
|
|
2251
3523
|
[key in keyof ListItemGroupVariant]?: ConditionalValue<ListItemGroupVariant[key]> | undefined
|
|
2252
3524
|
}
|
|
2253
3525
|
|
|
2254
|
-
|
|
3526
|
+
/**
|
|
3527
|
+
* Props for {@link ListItem}. It extends button-like Box props, except its
|
|
3528
|
+
* semantic element and button type are controlled by the component.
|
|
3529
|
+
*/
|
|
3530
|
+
export declare type ListItemProps = Omit<BoxProps, keyof ListItemVariantProps | 'as' | 'type' | 'href'> & Omit<ListItemVariantProps, 'selected' | 'iconBefore' | 'iconAfter'> & {
|
|
3531
|
+
/** When provided, renders an anchor instead of the default native button. */
|
|
2255
3532
|
href?: string;
|
|
3533
|
+
/** Content rendered before the default label and description. */
|
|
3534
|
+
before?: ReactNode;
|
|
3535
|
+
/** Primary text rendered when custom `children` are not supplied. */
|
|
2256
3536
|
label?: string;
|
|
3537
|
+
/** Secondary text rendered below `label` when custom `children` are not supplied. */
|
|
2257
3538
|
description?: string;
|
|
3539
|
+
/** Search text used to highlight this item's default `label` and `description`. */
|
|
2258
3540
|
query?: string;
|
|
3541
|
+
/**
|
|
3542
|
+
* Enables highlighting for this item's default text. When omitted, inherits
|
|
3543
|
+
* the nearest {@link List} setting.
|
|
3544
|
+
*/
|
|
2259
3545
|
highlightMatches?: boolean;
|
|
3546
|
+
/**
|
|
3547
|
+
* Native `name` passed to the checkbox or toggle created by the matching
|
|
3548
|
+
* `variant`.
|
|
3549
|
+
*
|
|
3550
|
+
* @default 'list-item'
|
|
3551
|
+
*/
|
|
2260
3552
|
controlName?: string;
|
|
3553
|
+
/**
|
|
3554
|
+
* Runs for the native change event from a checkbox or toggle variant. It
|
|
3555
|
+
* does not update `selected`; update that prop from the owning state.
|
|
3556
|
+
*/
|
|
2261
3557
|
onControlChange?: ChangeEventHandler<HTMLInputElement>;
|
|
3558
|
+
/**
|
|
3559
|
+
* Sets `aria-selected` and selected styling. This is controlled state and
|
|
3560
|
+
* does not change when the item is clicked.
|
|
3561
|
+
*
|
|
3562
|
+
* @default false
|
|
3563
|
+
*/
|
|
2262
3564
|
selected?: boolean;
|
|
3565
|
+
/**
|
|
3566
|
+
* Chooses default content, a checkbox, a toggle, or a noninteractive
|
|
3567
|
+
* divider. The `divider` variant ignores item content and other Box props.
|
|
3568
|
+
*
|
|
3569
|
+
* @default 'default'
|
|
3570
|
+
*/
|
|
2263
3571
|
variant?: ListItemVariantProps['variant'];
|
|
3572
|
+
/**
|
|
3573
|
+
* Overrides the nearest {@link List} or {@link ListItemGroup} density.
|
|
3574
|
+
* Responsive recipe values are supported.
|
|
3575
|
+
*/
|
|
2264
3576
|
density?: ListDensity;
|
|
3577
|
+
/** Icon symbol rendered before the default text content. */
|
|
2265
3578
|
iconBefore?: IconNamesList;
|
|
3579
|
+
/** Icon symbol rendered after the default text content. */
|
|
2266
3580
|
iconAfter?: IconNamesList;
|
|
3581
|
+
/** Fill token for `iconBefore`. */
|
|
2267
3582
|
iconBeforeFill?: IconProps['fill'];
|
|
3583
|
+
/** Fill token for `iconAfter`. */
|
|
2268
3584
|
iconAfterFill?: IconProps['fill'];
|
|
2269
3585
|
};
|
|
2270
3586
|
|
|
@@ -2286,10 +3602,33 @@ declare type ListItemVariantProps = {
|
|
|
2286
3602
|
[key in keyof ListItemVariant]?: ConditionalValue<ListItemVariant[key]> | undefined
|
|
2287
3603
|
}
|
|
2288
3604
|
|
|
2289
|
-
|
|
3605
|
+
/**
|
|
3606
|
+
* Props for {@link List}. Its values are provided to nested list primitives
|
|
3607
|
+
* through list context.
|
|
3608
|
+
*/
|
|
3609
|
+
export declare type ListProps = Omit<BoxProps, keyof ListVariantProps | 'children'> & ListVariantProps & {
|
|
3610
|
+
/** List items and optional {@link ListItemGroup} sections. */
|
|
2290
3611
|
children: ReactNode;
|
|
3612
|
+
/**
|
|
3613
|
+
* Shared spacing density for descendants that do not set their own density.
|
|
3614
|
+
* Responsive recipe values are supported.
|
|
3615
|
+
*
|
|
3616
|
+
* @default 'compact'
|
|
3617
|
+
*/
|
|
2291
3618
|
density?: ListDensity;
|
|
3619
|
+
/**
|
|
3620
|
+
* Search text inherited by descendants that do not provide their own
|
|
3621
|
+
* `query`. It is used only when highlighting is enabled.
|
|
3622
|
+
*
|
|
3623
|
+
* @default ''
|
|
3624
|
+
*/
|
|
2292
3625
|
query?: string;
|
|
3626
|
+
/**
|
|
3627
|
+
* Enables highlighting of inherited `query` matches in default
|
|
3628
|
+
* `ListItem` labels and descriptions. Child items can override it.
|
|
3629
|
+
*
|
|
3630
|
+
* @default false
|
|
3631
|
+
*/
|
|
2293
3632
|
highlightMatches?: boolean;
|
|
2294
3633
|
};
|
|
2295
3634
|
|
|
@@ -2304,10 +3643,27 @@ declare type ListVariantProps = {
|
|
|
2304
3643
|
[key in keyof ListVariant]?: ConditionalValue<ListVariant[key]> | undefined
|
|
2305
3644
|
}
|
|
2306
3645
|
|
|
3646
|
+
/**
|
|
3647
|
+
* Displays a keyboard-navigable action list from a trigger or inline in a layout.
|
|
3648
|
+
*
|
|
3649
|
+
* Use `MenuItem`, `MenuGroup`, and `SubMenu` as children. A triggered menu
|
|
3650
|
+
* restores the trigger relationship through Floating UI and dismisses on Escape
|
|
3651
|
+
* or outside press. Use an inline menu when the list should always be visible.
|
|
3652
|
+
*
|
|
3653
|
+
* @example
|
|
3654
|
+
* ```tsx
|
|
3655
|
+
* <Menu trigger={<Button>Actions</Button>}>
|
|
3656
|
+
* <MenuItem label="Edit" onClick={edit} />
|
|
3657
|
+
* <MenuItem label="Archive" onClick={archive} />
|
|
3658
|
+
* </Menu>
|
|
3659
|
+
* ```
|
|
3660
|
+
*/
|
|
2307
3661
|
export declare const Menu: (props: MenuProps) => JSX.Element;
|
|
2308
3662
|
|
|
3663
|
+
/** Spacing density shared by a menu panel and its rows. */
|
|
2309
3664
|
export declare type MenuDensity = ListDensity;
|
|
2310
3665
|
|
|
3666
|
+
/** Filtering state consumed by menu compound components. */
|
|
2311
3667
|
declare type MenuFilterContextValue = {
|
|
2312
3668
|
query: string;
|
|
2313
3669
|
filterMode: MenuFilterMode;
|
|
@@ -2318,37 +3674,89 @@ declare type MenuFilterContextValue = {
|
|
|
2318
3674
|
}) => string;
|
|
2319
3675
|
};
|
|
2320
3676
|
|
|
3677
|
+
/** Determines whether `query` hides non-matching menu items. */
|
|
2321
3678
|
declare type MenuFilterMode = 'none' | 'contains';
|
|
2322
3679
|
|
|
3680
|
+
/**
|
|
3681
|
+
* Groups related menu rows under an optional label.
|
|
3682
|
+
*
|
|
3683
|
+
* A group is hidden when none of its supported menu children match the parent
|
|
3684
|
+
* menu's active filter.
|
|
3685
|
+
*
|
|
3686
|
+
* @example
|
|
3687
|
+
* ```tsx
|
|
3688
|
+
* <MenuGroup label="File">
|
|
3689
|
+
* <MenuItem label="Download" />
|
|
3690
|
+
* </MenuGroup>
|
|
3691
|
+
* ```
|
|
3692
|
+
*/
|
|
2323
3693
|
export declare const MenuGroup: (props: MenuGroupProps) => JSX.Element | null;
|
|
2324
3694
|
|
|
2325
|
-
|
|
3695
|
+
declare type MenuGroupOwnProps = {
|
|
3696
|
+
/** Optional group heading. */
|
|
2326
3697
|
label?: string;
|
|
3698
|
+
/** Menu children shown only when at least one child matches the current filter. */
|
|
2327
3699
|
children: ReactNode;
|
|
3700
|
+
/** Adds a divider before the group. */
|
|
2328
3701
|
divider?: boolean;
|
|
2329
3702
|
};
|
|
2330
3703
|
|
|
3704
|
+
/** Props for {@link MenuGroup}, a labeled group of related menu children. */
|
|
3705
|
+
export declare type MenuGroupProps = Omit<BoxProps, keyof MenuGroupOwnProps> & MenuGroupOwnProps;
|
|
3706
|
+
|
|
3707
|
+
/**
|
|
3708
|
+
* Renders an actionable row within a {@link Menu}.
|
|
3709
|
+
*
|
|
3710
|
+
* It renders a button by default, or an anchor when `href` is supplied. Arrow
|
|
3711
|
+
* keys and typeahead participate in the parent menu's roving focus behavior.
|
|
3712
|
+
* Use `variant="checkbox"` or `"toggle"` when `selected` is meaningful.
|
|
3713
|
+
*
|
|
3714
|
+
* @example
|
|
3715
|
+
* ```tsx
|
|
3716
|
+
* <MenuItem label="Duplicate" iconBefore="copy" onClick={duplicate} />
|
|
3717
|
+
* ```
|
|
3718
|
+
*/
|
|
2331
3719
|
export declare const MenuItem: (props: MenuItemProps) => JSX.Element | null;
|
|
2332
3720
|
|
|
2333
|
-
|
|
3721
|
+
/** Props for {@link MenuItem}, a selectable row inside a {@link Menu}. */
|
|
3722
|
+
export declare type MenuItemProps = Omit<BoxProps, 'as' | 'ref' | 'onClick' | 'type'> & Omit<MenuVariantProps, 'iconBefore' | 'iconAfter'> & {
|
|
3723
|
+
/** Primary visible text, also used for typeahead and filtering unless `textValue` is supplied. */
|
|
2334
3724
|
label?: string;
|
|
3725
|
+
/** Secondary visible text included in filtering by default. */
|
|
2335
3726
|
description?: string;
|
|
3727
|
+
/**
|
|
3728
|
+
* Chooses a regular item, checkable item, toggle item, or divider.
|
|
3729
|
+
* @default 'default'
|
|
3730
|
+
*/
|
|
2336
3731
|
variant?: MenuItemVariant;
|
|
3732
|
+
/** Prevents activation and marks the row unavailable to assistive technology. */
|
|
2337
3733
|
disabled?: boolean;
|
|
3734
|
+
/** Sets selected styling and `aria-checked` for checkbox and toggle variants. */
|
|
2338
3735
|
selected?: boolean;
|
|
3736
|
+
/** Icon displayed before the item text. */
|
|
2339
3737
|
iconBefore?: IconNamesList;
|
|
3738
|
+
/** Icon displayed after the item text. */
|
|
2340
3739
|
iconAfter?: IconNamesList;
|
|
3740
|
+
/** Renders the item as an anchor instead of a button. */
|
|
2341
3741
|
href?: string;
|
|
3742
|
+
/** Browsing context for an anchor item. */
|
|
2342
3743
|
target?: string;
|
|
3744
|
+
/** Relationship attribute for an anchor item, such as `noopener` for a new tab. */
|
|
2343
3745
|
rel?: string;
|
|
3746
|
+
/** Overrides the parent menu's `closeOnSelect` behavior for this item. */
|
|
2344
3747
|
closeOnSelect?: boolean;
|
|
3748
|
+
/** Overrides the parent menu's row density for this item. */
|
|
2345
3749
|
density?: MenuDensity;
|
|
3750
|
+
/** Explicit text used for typeahead and filtering instead of label and description. */
|
|
2346
3751
|
textValue?: string;
|
|
3752
|
+
/** Called for pointer selection before the menu closes. Call `event.preventDefault()` to prevent the automatic close and tree click event. */
|
|
2347
3753
|
onClick?: (event: MouseEvent_2<HTMLElement>) => void;
|
|
2348
3754
|
};
|
|
2349
3755
|
|
|
3756
|
+
/** Visual and ARIA role variants supported by {@link MenuItem}. */
|
|
2350
3757
|
export declare type MenuItemVariant = 'default' | 'checkbox' | 'toggle' | 'divider';
|
|
2351
3758
|
|
|
3759
|
+
/** Roving-focus state for one menu level. */
|
|
2352
3760
|
declare type MenuListContextValue = {
|
|
2353
3761
|
activeIndex: number | null;
|
|
2354
3762
|
getItemProps: (userProps?: HTMLProps<HTMLElement>) => HTMLProps<HTMLElement>;
|
|
@@ -2360,30 +3768,96 @@ declare type MenuListContextValue = {
|
|
|
2360
3768
|
closeParentSubMenuFlyout?: () => void;
|
|
2361
3769
|
};
|
|
2362
3770
|
|
|
2363
|
-
|
|
3771
|
+
declare type MenuOwnProps = {
|
|
3772
|
+
/** Trigger element cloned with the menu's event handlers and ARIA attributes. Omit it, or use `inline`, to render the menu in place. */
|
|
2364
3773
|
trigger?: ReactElement;
|
|
3774
|
+
/** `MenuItem`, `MenuGroup`, and `SubMenu` children that make up the menu. */
|
|
2365
3775
|
children: ReactNode;
|
|
3776
|
+
/** Controlled popup state. Pair with `onOpenChange`; omit it to use `defaultOpen`. */
|
|
2366
3777
|
open?: boolean;
|
|
3778
|
+
/**
|
|
3779
|
+
* Initial popup state for an uncontrolled triggered menu. It is used only on first render.
|
|
3780
|
+
* @default false
|
|
3781
|
+
*/
|
|
2367
3782
|
defaultOpen?: boolean;
|
|
3783
|
+
/** Called when interaction requests that a triggered menu open or close. */
|
|
2368
3784
|
onOpenChange?: (open: boolean) => void;
|
|
3785
|
+
/**
|
|
3786
|
+
* Floating UI placement of a triggered menu relative to its trigger.
|
|
3787
|
+
* @default 'bottom-start'
|
|
3788
|
+
*/
|
|
2369
3789
|
placement?: Placement;
|
|
3790
|
+
/**
|
|
3791
|
+
* Positioning strategy for a triggered menu.
|
|
3792
|
+
* @default 'absolute'
|
|
3793
|
+
*/
|
|
2370
3794
|
strategy?: 'absolute' | 'fixed';
|
|
3795
|
+
/**
|
|
3796
|
+
* Closes the root menu after a `MenuItem` is selected unless that item overrides it.
|
|
3797
|
+
* @default true
|
|
3798
|
+
*/
|
|
2371
3799
|
closeOnSelect?: boolean;
|
|
3800
|
+
/**
|
|
3801
|
+
* Renders the panel in normal document flow without requiring a trigger.
|
|
3802
|
+
* @default false
|
|
3803
|
+
*/
|
|
2372
3804
|
inline?: boolean;
|
|
3805
|
+
/**
|
|
3806
|
+
* Pointer interactions that open the trigger.
|
|
3807
|
+
* @default 'click'
|
|
3808
|
+
*/
|
|
2373
3809
|
triggerInteraction?: MenuTriggerInteraction;
|
|
3810
|
+
/**
|
|
3811
|
+
* Delay before hover interaction opens the menu, in milliseconds.
|
|
3812
|
+
* @default 75
|
|
3813
|
+
*/
|
|
2374
3814
|
triggerOpenDelay?: number;
|
|
3815
|
+
/**
|
|
3816
|
+
* Delay before hover interaction closes the menu, in milliseconds.
|
|
3817
|
+
* @default 100
|
|
3818
|
+
*/
|
|
2375
3819
|
triggerCloseDelay?: number;
|
|
3820
|
+
/**
|
|
3821
|
+
* Default presentation for descendant `SubMenu` components.
|
|
3822
|
+
* @default 'hover'
|
|
3823
|
+
*/
|
|
2376
3824
|
subMenuInteraction?: SubMenuInteraction;
|
|
3825
|
+
/**
|
|
3826
|
+
* Spacing density for menu rows.
|
|
3827
|
+
* @default 'compact'
|
|
3828
|
+
*/
|
|
2377
3829
|
density?: MenuDensity;
|
|
3830
|
+
/**
|
|
3831
|
+
* Text used to filter `MenuItem` and `SubMenu` labels when `filterMode` is `'contains'`.
|
|
3832
|
+
* @default ''
|
|
3833
|
+
*/
|
|
2378
3834
|
query?: string;
|
|
3835
|
+
/** Reserved for external filtering controls; this component does not call it. */
|
|
2379
3836
|
onQueryChange?: (query: string) => void;
|
|
3837
|
+
/**
|
|
3838
|
+
* Enables case-insensitive substring filtering when set to `'contains'`.
|
|
3839
|
+
* @default 'none'
|
|
3840
|
+
*/
|
|
2380
3841
|
filterMode?: MenuFilterMode;
|
|
3842
|
+
/**
|
|
3843
|
+
* Content rendered when filtering leaves no visible menu children.
|
|
3844
|
+
* @default 'No results found'
|
|
3845
|
+
*/
|
|
2381
3846
|
renderNoResults?: ReactNode;
|
|
3847
|
+
/**
|
|
3848
|
+
* Highlights case-insensitive query matches in visible labels and descriptions.
|
|
3849
|
+
* @default Boolean(query)
|
|
3850
|
+
*/
|
|
2382
3851
|
highlightMatches?: boolean;
|
|
3852
|
+
/**
|
|
3853
|
+
* Derives searchable text when an item does not provide `textValue`. It receives the item's label and description.
|
|
3854
|
+
* @default joins label and description with a space
|
|
3855
|
+
*/
|
|
2383
3856
|
getItemText?: (item: {
|
|
2384
3857
|
label?: string;
|
|
2385
3858
|
description?: string;
|
|
2386
3859
|
}) => string;
|
|
3860
|
+
/** Applies the recipe's panel visual treatment. */
|
|
2387
3861
|
panel?: MenuVariantProps['panel'];
|
|
2388
3862
|
/**
|
|
2389
3863
|
* When this `Menu` is used as one section of a horizontal menubar, pass a
|
|
@@ -2396,16 +3870,37 @@ export declare type MenuProps = {
|
|
|
2396
3870
|
* row and horizontal menubar keys would not run on the trigger).
|
|
2397
3871
|
*/
|
|
2398
3872
|
onMenubarEdgeNavigate?: (direction: 1 | -1) => void;
|
|
2399
|
-
}
|
|
3873
|
+
};
|
|
2400
3874
|
|
|
3875
|
+
/** Props for {@link Menu}, including popup state, filtering, and nested-menu behavior. */
|
|
3876
|
+
export declare type MenuProps = Omit<BoxProps, keyof MenuOwnProps> & MenuOwnProps;
|
|
3877
|
+
|
|
3878
|
+
/**
|
|
3879
|
+
* Provides menu root and filter context for custom compound-menu composition.
|
|
3880
|
+
*
|
|
3881
|
+
* Normal menus provide this context automatically. Use this provider only when
|
|
3882
|
+
* composing `MenuItem`, `MenuGroup`, or `SubMenu` outside a `Menu`.
|
|
3883
|
+
*
|
|
3884
|
+
* @example
|
|
3885
|
+
* ```tsx
|
|
3886
|
+
* <MenuProvider>
|
|
3887
|
+
* <MenuItem label="Refresh" />
|
|
3888
|
+
* </MenuProvider>
|
|
3889
|
+
* ```
|
|
3890
|
+
*/
|
|
2401
3891
|
export declare const MenuProvider: ({ children, root, filter }: MenuProviderProps) => JSX.Element;
|
|
2402
3892
|
|
|
3893
|
+
/** Props for {@link MenuProvider}, an escape hatch for custom menu composition. */
|
|
2403
3894
|
export declare type MenuProviderProps = {
|
|
3895
|
+
/** Descendants that consume the supplied menu contexts. */
|
|
2404
3896
|
children: ReactNode;
|
|
3897
|
+
/** Partial root behavior merged with the normal menu defaults. */
|
|
2405
3898
|
root?: Partial<MenuRootContextValue>;
|
|
3899
|
+
/** Partial filtering behavior merged with the normal menu defaults. */
|
|
2406
3900
|
filter?: Partial<MenuFilterContextValue>;
|
|
2407
3901
|
};
|
|
2408
3902
|
|
|
3903
|
+
/** Shared root behavior consumed by menu compound components. */
|
|
2409
3904
|
declare type MenuRootContextValue = {
|
|
2410
3905
|
density: MenuDensity;
|
|
2411
3906
|
panel?: MenuVariantProps['panel'];
|
|
@@ -2420,7 +3915,8 @@ declare type MenuRootContextValue = {
|
|
|
2420
3915
|
onMenubarEdgeNavigate?: (direction: 1 | -1) => void;
|
|
2421
3916
|
};
|
|
2422
3917
|
|
|
2423
|
-
|
|
3918
|
+
/** Pointer or focus interactions that can open a menu trigger. */
|
|
3919
|
+
declare type MenuTriggerInteraction = 'click' | 'hover' | 'focus' | 'click-and-hover';
|
|
2424
3920
|
|
|
2425
3921
|
declare interface MenuVariant {
|
|
2426
3922
|
/**
|
|
@@ -2434,54 +3930,119 @@ declare type MenuVariantProps = {
|
|
|
2434
3930
|
[key in keyof MenuVariant]?: ConditionalValue<MenuVariant[key]> | undefined
|
|
2435
3931
|
}
|
|
2436
3932
|
|
|
3933
|
+
/**
|
|
3934
|
+
* Renders a controlled modal dialog in a portal with focus management and a
|
|
3935
|
+
* scroll-locking overlay.
|
|
3936
|
+
*
|
|
3937
|
+
* Escape always calls `onOpenChange(false)`. By default, pressing the overlay
|
|
3938
|
+
* does too. The dialog remains mounted for a 150 ms closing animation. Supply
|
|
3939
|
+
* an accessible name through `aria-label` or `aria-labelledby`; a visible
|
|
3940
|
+
* `ModalHeader` title alone is not linked automatically.
|
|
3941
|
+
*
|
|
3942
|
+
* @example
|
|
3943
|
+
* ```tsx
|
|
3944
|
+
* <Modal open={open} onOpenChange={setOpen} aria-label="Delete project">
|
|
3945
|
+
* <ModalHeader title="Delete project" />
|
|
3946
|
+
* <ModalBody>This cannot be undone.</ModalBody>
|
|
3947
|
+
* <ModalFooter><Button onClick={remove}>Delete</Button></ModalFooter>
|
|
3948
|
+
* </Modal>
|
|
3949
|
+
* ```
|
|
3950
|
+
*/
|
|
2437
3951
|
export declare const Modal: (props: ModalProps) => JSX.Element | null;
|
|
2438
3952
|
|
|
3953
|
+
/**
|
|
3954
|
+
* Renders the main content region of a {@link Modal}.
|
|
3955
|
+
*
|
|
3956
|
+
* @example
|
|
3957
|
+
* ```tsx
|
|
3958
|
+
* <ModalBody>Changes are saved automatically.</ModalBody>
|
|
3959
|
+
* ```
|
|
3960
|
+
*/
|
|
2439
3961
|
export declare const ModalBody: (props: ModalBodyProps) => JSX.Element;
|
|
2440
3962
|
|
|
2441
|
-
|
|
2442
|
-
|
|
3963
|
+
/** Props for {@link ModalBody}, the main content region of a modal. */
|
|
3964
|
+
export declare type ModalBodyProps = Omit<BoxProps, 'children'> & {
|
|
3965
|
+
/** Content displayed in the modal's body region. */
|
|
2443
3966
|
children: ReactNode;
|
|
2444
3967
|
};
|
|
2445
3968
|
|
|
3969
|
+
/** State and close behavior shared with descendants of {@link Modal}. */
|
|
2446
3970
|
declare interface ModalContextValue {
|
|
2447
|
-
/** Whether the modal is open */
|
|
3971
|
+
/** Whether the modal is currently in its open phase. */
|
|
2448
3972
|
open: boolean;
|
|
2449
|
-
/**
|
|
3973
|
+
/** Requests closing through the parent modal's `onOpenChange(false)`. */
|
|
2450
3974
|
onClose: () => void;
|
|
2451
|
-
/** Whether
|
|
3975
|
+
/** Whether the parent modal blocks overlay-triggered closing. */
|
|
2452
3976
|
preventOverlayClose?: boolean;
|
|
2453
3977
|
}
|
|
2454
3978
|
|
|
3979
|
+
/**
|
|
3980
|
+
* Renders the action region of a {@link Modal}.
|
|
3981
|
+
*
|
|
3982
|
+
* @example
|
|
3983
|
+
* ```tsx
|
|
3984
|
+
* <ModalFooter><Button>Save</Button></ModalFooter>
|
|
3985
|
+
* ```
|
|
3986
|
+
*/
|
|
2455
3987
|
export declare const ModalFooter: (props: ModalFooterProps) => JSX.Element;
|
|
2456
3988
|
|
|
2457
|
-
|
|
2458
|
-
|
|
3989
|
+
/** Props for {@link ModalFooter}, the action region of a modal. */
|
|
3990
|
+
export declare type ModalFooterProps = Omit<BoxProps, 'children'> & {
|
|
3991
|
+
/** Content displayed in the footer, typically dialog action buttons. */
|
|
2459
3992
|
children: ReactNode;
|
|
2460
3993
|
};
|
|
2461
3994
|
|
|
3995
|
+
/**
|
|
3996
|
+
* Renders the optional header region of a parent {@link Modal}.
|
|
3997
|
+
*
|
|
3998
|
+
* Use `title` for the standard heading or provide `children` for custom header
|
|
3999
|
+
* content. It must be rendered inside `Modal` because it uses modal context to
|
|
4000
|
+
* close the dialog.
|
|
4001
|
+
*
|
|
4002
|
+
* @example
|
|
4003
|
+
* ```tsx
|
|
4004
|
+
* <ModalHeader title="Edit profile" />
|
|
4005
|
+
* ```
|
|
4006
|
+
*/
|
|
2462
4007
|
export declare const ModalHeader: (props: ModalHeaderProps) => JSX.Element;
|
|
2463
4008
|
|
|
2464
|
-
|
|
2465
|
-
|
|
4009
|
+
/** Props for {@link ModalHeader}, the optional heading and close-control region. */
|
|
4010
|
+
export declare type ModalHeaderProps = Omit<BoxProps, 'children'> & {
|
|
4011
|
+
/** Text rendered as the default level-three heading when `children` is omitted. */
|
|
2466
4012
|
title?: string;
|
|
2467
|
-
/**
|
|
4013
|
+
/**
|
|
4014
|
+
* Shows the built-in button that calls the parent modal's `onOpenChange(false)`.
|
|
4015
|
+
* @default true
|
|
4016
|
+
*/
|
|
2468
4017
|
showCloseButton?: boolean;
|
|
2469
|
-
/**
|
|
4018
|
+
/** Custom header content. When supplied, it replaces both `title` and the built-in close button. */
|
|
2470
4019
|
children?: ReactNode;
|
|
2471
4020
|
};
|
|
2472
4021
|
|
|
2473
|
-
|
|
2474
|
-
|
|
4022
|
+
/** Props for {@link Modal}, a controlled, portalled dialog. */
|
|
4023
|
+
export declare type ModalProps = Omit<BoxProps, keyof ModalVariantProps> & ModalVariantProps & {
|
|
4024
|
+
/** Controlled dialog state. Render state changes by updating this value after `onOpenChange`. */
|
|
2475
4025
|
open: boolean;
|
|
2476
|
-
/**
|
|
4026
|
+
/** Called when Escape, overlay interaction, or a descendant close control requests closing. */
|
|
2477
4027
|
onOpenChange: (open: boolean) => void;
|
|
2478
|
-
/**
|
|
4028
|
+
/**
|
|
4029
|
+
* Prevents overlay clicks from requesting close. Escape still requests close.
|
|
4030
|
+
* @default false
|
|
4031
|
+
*/
|
|
2479
4032
|
preventOverlayClose?: boolean;
|
|
2480
|
-
/**
|
|
4033
|
+
/** Dialog content, typically composed from `ModalHeader`, `ModalBody`, and `ModalFooter`. */
|
|
2481
4034
|
children: ReactNode;
|
|
2482
|
-
/**
|
|
4035
|
+
/** Identifier applied to the dialog element. Provide accessible naming with `aria-label` or `aria-labelledby`. */
|
|
2483
4036
|
id?: string;
|
|
4037
|
+
/**
|
|
4038
|
+
* Recipe size for the dialog panel.
|
|
4039
|
+
* @default 'md'
|
|
4040
|
+
*/
|
|
2484
4041
|
size?: ModalVariantProps['size'];
|
|
4042
|
+
/**
|
|
4043
|
+
* Recipe position for the dialog panel.
|
|
4044
|
+
* @default 'centered'
|
|
4045
|
+
*/
|
|
2485
4046
|
position?: ModalVariantProps['position'];
|
|
2486
4047
|
};
|
|
2487
4048
|
|
|
@@ -2592,6 +4153,24 @@ declare interface ModernCssProperties {
|
|
|
2592
4153
|
WebkitTextSecurity?: Globals | 'none' | 'circle' | 'disc' | 'square'
|
|
2593
4154
|
}
|
|
2594
4155
|
|
|
4156
|
+
/** Props for a multiple-selection {@link Autocomplete}. */
|
|
4157
|
+
declare type MultipleAutocompleteProps = AutocompleteBaseProps & {
|
|
4158
|
+
/** Enables multiple selection and renders selected values as tokens. */
|
|
4159
|
+
multiple: true;
|
|
4160
|
+
/** Controlled selected values. Pair with `onValueChange`. */
|
|
4161
|
+
value?: AutocompleteValue<true>;
|
|
4162
|
+
/** Initial selected values when `value` is not provided. */
|
|
4163
|
+
defaultValue?: AutocompleteValue<true>;
|
|
4164
|
+
/** Runs when selection, removal, clearing, or creation requests new values. */
|
|
4165
|
+
onValueChange?: (value: AutocompleteValue<true>, reason: AutocompleteChangeReason) => void;
|
|
4166
|
+
/**
|
|
4167
|
+
* Runs when the selected values change.
|
|
4168
|
+
*
|
|
4169
|
+
* @deprecated Use `onValueChange`.
|
|
4170
|
+
*/
|
|
4171
|
+
onChange?: (value: AutocompleteValue<true>, reason: AutocompleteChangeReason) => void;
|
|
4172
|
+
};
|
|
4173
|
+
|
|
2595
4174
|
declare type Nested<P> = P & {
|
|
2596
4175
|
[K in Selectors]?: Nested<P>
|
|
2597
4176
|
} & {
|
|
@@ -2602,6 +4181,162 @@ declare type Nested<P> = P & {
|
|
|
2602
4181
|
|
|
2603
4182
|
declare type Number_2 = number & {}
|
|
2604
4183
|
|
|
4184
|
+
declare const numericSizes: {
|
|
4185
|
+
'0': {
|
|
4186
|
+
value: string;
|
|
4187
|
+
};
|
|
4188
|
+
'1': {
|
|
4189
|
+
value: string;
|
|
4190
|
+
};
|
|
4191
|
+
'2': {
|
|
4192
|
+
value: string;
|
|
4193
|
+
};
|
|
4194
|
+
'3': {
|
|
4195
|
+
value: string;
|
|
4196
|
+
};
|
|
4197
|
+
'4': {
|
|
4198
|
+
value: string;
|
|
4199
|
+
};
|
|
4200
|
+
'5': {
|
|
4201
|
+
value: string;
|
|
4202
|
+
};
|
|
4203
|
+
'6': {
|
|
4204
|
+
value: string;
|
|
4205
|
+
};
|
|
4206
|
+
'7': {
|
|
4207
|
+
value: string;
|
|
4208
|
+
};
|
|
4209
|
+
'8': {
|
|
4210
|
+
value: string;
|
|
4211
|
+
};
|
|
4212
|
+
'9': {
|
|
4213
|
+
value: string;
|
|
4214
|
+
};
|
|
4215
|
+
'10': {
|
|
4216
|
+
value: string;
|
|
4217
|
+
};
|
|
4218
|
+
'12': {
|
|
4219
|
+
value: string;
|
|
4220
|
+
};
|
|
4221
|
+
'14': {
|
|
4222
|
+
value: string;
|
|
4223
|
+
};
|
|
4224
|
+
'16': {
|
|
4225
|
+
value: string;
|
|
4226
|
+
};
|
|
4227
|
+
'18': {
|
|
4228
|
+
value: string;
|
|
4229
|
+
};
|
|
4230
|
+
'20': {
|
|
4231
|
+
value: string;
|
|
4232
|
+
};
|
|
4233
|
+
'22': {
|
|
4234
|
+
value: string;
|
|
4235
|
+
};
|
|
4236
|
+
'24': {
|
|
4237
|
+
value: string;
|
|
4238
|
+
};
|
|
4239
|
+
'28': {
|
|
4240
|
+
value: string;
|
|
4241
|
+
};
|
|
4242
|
+
'32': {
|
|
4243
|
+
value: string;
|
|
4244
|
+
};
|
|
4245
|
+
'40': {
|
|
4246
|
+
value: string;
|
|
4247
|
+
};
|
|
4248
|
+
'48': {
|
|
4249
|
+
value: string;
|
|
4250
|
+
};
|
|
4251
|
+
'56': {
|
|
4252
|
+
value: string;
|
|
4253
|
+
};
|
|
4254
|
+
'64': {
|
|
4255
|
+
value: string;
|
|
4256
|
+
};
|
|
4257
|
+
'72': {
|
|
4258
|
+
value: string;
|
|
4259
|
+
};
|
|
4260
|
+
'80': {
|
|
4261
|
+
value: string;
|
|
4262
|
+
};
|
|
4263
|
+
'88': {
|
|
4264
|
+
value: string;
|
|
4265
|
+
};
|
|
4266
|
+
'96': {
|
|
4267
|
+
value: string;
|
|
4268
|
+
};
|
|
4269
|
+
'104': {
|
|
4270
|
+
value: string;
|
|
4271
|
+
};
|
|
4272
|
+
'112': {
|
|
4273
|
+
value: string;
|
|
4274
|
+
};
|
|
4275
|
+
'120': {
|
|
4276
|
+
value: string;
|
|
4277
|
+
};
|
|
4278
|
+
'128': {
|
|
4279
|
+
value: string;
|
|
4280
|
+
};
|
|
4281
|
+
'136': {
|
|
4282
|
+
value: string;
|
|
4283
|
+
};
|
|
4284
|
+
'144': {
|
|
4285
|
+
value: string;
|
|
4286
|
+
};
|
|
4287
|
+
'152': {
|
|
4288
|
+
value: string;
|
|
4289
|
+
};
|
|
4290
|
+
'160': {
|
|
4291
|
+
value: string;
|
|
4292
|
+
};
|
|
4293
|
+
'168': {
|
|
4294
|
+
value: string;
|
|
4295
|
+
};
|
|
4296
|
+
'176': {
|
|
4297
|
+
value: string;
|
|
4298
|
+
};
|
|
4299
|
+
'184': {
|
|
4300
|
+
value: string;
|
|
4301
|
+
};
|
|
4302
|
+
'192': {
|
|
4303
|
+
value: string;
|
|
4304
|
+
};
|
|
4305
|
+
'200': {
|
|
4306
|
+
value: string;
|
|
4307
|
+
};
|
|
4308
|
+
'208': {
|
|
4309
|
+
value: string;
|
|
4310
|
+
};
|
|
4311
|
+
'216': {
|
|
4312
|
+
value: string;
|
|
4313
|
+
};
|
|
4314
|
+
'224': {
|
|
4315
|
+
value: string;
|
|
4316
|
+
};
|
|
4317
|
+
'232': {
|
|
4318
|
+
value: string;
|
|
4319
|
+
};
|
|
4320
|
+
'240': {
|
|
4321
|
+
value: string;
|
|
4322
|
+
};
|
|
4323
|
+
'248': {
|
|
4324
|
+
value: string;
|
|
4325
|
+
};
|
|
4326
|
+
'256': {
|
|
4327
|
+
value: string;
|
|
4328
|
+
};
|
|
4329
|
+
'264': {
|
|
4330
|
+
value: string;
|
|
4331
|
+
};
|
|
4332
|
+
'272': {
|
|
4333
|
+
value: string;
|
|
4334
|
+
};
|
|
4335
|
+
'280': {
|
|
4336
|
+
value: string;
|
|
4337
|
+
};
|
|
4338
|
+
};
|
|
4339
|
+
|
|
2605
4340
|
declare type NumericSizeToken = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "12" | "14" | "16" | "18" | "20" | "22" | "24" | "28" | "32" | "40" | "48" | "56" | "64" | "72" | "80" | "88" | "96" | "104" | "112" | "120" | "128" | "136" | "144" | "152" | "160" | "168" | "176" | "184" | "192" | "200" | "208" | "216" | "224" | "232" | "240" | "248" | "256" | "264" | "272" | "280"
|
|
2606
4341
|
|
|
2607
4342
|
declare interface ObsoleteProperties<TLength = (string & {}) | 0, TTime = string & {}> {
|
|
@@ -3663,6 +5398,38 @@ declare type ObsoletePropertiesFallback<TLength = (string & {}) | 0, TTime = str
|
|
|
3663
5398
|
|
|
3664
5399
|
declare type OmittedHTMLProps = 'color' | 'translate' | 'transition' | 'width' | 'height' | 'content'
|
|
3665
5400
|
|
|
5401
|
+
/**
|
|
5402
|
+
* Declares selectable metadata for a parent `Autocomplete`.
|
|
5403
|
+
*
|
|
5404
|
+
* `Option` renders no DOM by itself. Place it directly inside `Autocomplete`;
|
|
5405
|
+
* the parent builds the visible listbox and selection behavior.
|
|
5406
|
+
*
|
|
5407
|
+
* @example
|
|
5408
|
+
* ```tsx
|
|
5409
|
+
* <Autocomplete aria-label="Assignee">
|
|
5410
|
+
* <Option value="ada" label="Ada Lovelace" />
|
|
5411
|
+
* </Autocomplete>
|
|
5412
|
+
* ```
|
|
5413
|
+
*/
|
|
5414
|
+
declare const Option_2: (_props: OptionProps) => null;
|
|
5415
|
+
export { Option_2 as Option }
|
|
5416
|
+
|
|
5417
|
+
/** Metadata accepted by an {@link Option} inside `Autocomplete`. */
|
|
5418
|
+
export declare type OptionProps = {
|
|
5419
|
+
/** Stable value reported when this option is selected. */
|
|
5420
|
+
value: string;
|
|
5421
|
+
/** Visible option text and selected-value label. */
|
|
5422
|
+
label: string;
|
|
5423
|
+
/** Prevents the option from receiving navigation or selection. */
|
|
5424
|
+
disabled?: boolean;
|
|
5425
|
+
/** Secondary text included when filtering options. */
|
|
5426
|
+
description?: string;
|
|
5427
|
+
/** Icon rendered before the option label. */
|
|
5428
|
+
iconLeft?: IconNamesList;
|
|
5429
|
+
/** Icon rendered after the option label. */
|
|
5430
|
+
iconRight?: IconNamesList;
|
|
5431
|
+
};
|
|
5432
|
+
|
|
3666
5433
|
export declare namespace Panda {
|
|
3667
5434
|
export type RecipeConfig<V extends RecipeVariantRecord = RecipeVariantRecord> = BaseRecipeConfig<V>;
|
|
3668
5435
|
export type SlotRecipeConfig<S extends string = string, V extends SlotRecipeVariantRecord<S> = SlotRecipeVariantRecord<S>> = BaseSlotRecipeConfig<S, V>;
|
|
@@ -3688,6 +5455,10 @@ export declare type PatternConfig<T extends PatternProperties = PatternPropertie
|
|
|
3688
5455
|
|
|
3689
5456
|
export declare type PatternProperties = Record<string, unknown>;
|
|
3690
5457
|
|
|
5458
|
+
/**
|
|
5459
|
+
* Combines custom props with the compatible native props and ref for the
|
|
5460
|
+
* element selected by `as`.
|
|
5461
|
+
*/
|
|
3691
5462
|
declare type PolymorphicComponentProps<T extends ElementType, Props extends object = object> = Props & AsProp<T> & Omit<ComponentPropsWithRef<T>, PropsToOmit<T, Props>>;
|
|
3692
5463
|
|
|
3693
5464
|
declare type PositionAreaAxis =
|
|
@@ -3754,14 +5525,31 @@ declare type PositionTry =
|
|
|
3754
5525
|
| 'inline-end'
|
|
3755
5526
|
| DashedIdent
|
|
3756
5527
|
|
|
5528
|
+
/**
|
|
5529
|
+
* Renders a preformatted code block using native `pre` and `code` semantics.
|
|
5530
|
+
*
|
|
5531
|
+
* Whitespace in string content is preserved. The component does not perform
|
|
5532
|
+
* syntax highlighting.
|
|
5533
|
+
*
|
|
5534
|
+
* @example
|
|
5535
|
+
* ```tsx
|
|
5536
|
+
* <Pre lang="typescript">{'const ready = true;'}</Pre>
|
|
5537
|
+
* ```
|
|
5538
|
+
*/
|
|
3757
5539
|
export declare const Pre: (props: PreProps) => JSX.Element;
|
|
3758
5540
|
|
|
3759
|
-
declare type
|
|
5541
|
+
declare type PreOwnProps = {
|
|
5542
|
+
/** Preformatted code content. */
|
|
3760
5543
|
children: string | ReactNode;
|
|
5544
|
+
/** Language metadata forwarded to the nested `Code` element. */
|
|
3761
5545
|
lang?: string;
|
|
5546
|
+
/** Element override for the rendered `pre` container. */
|
|
3762
5547
|
as?: string;
|
|
3763
5548
|
};
|
|
3764
5549
|
|
|
5550
|
+
/** Props accepted by {@link Pre}. */
|
|
5551
|
+
export declare type PreProps = Omit<BoxProps, keyof PreOwnProps> & PreOwnProps;
|
|
5552
|
+
|
|
3765
5553
|
declare interface PropertiesFallback<TLength = (string & {}) | 0, TTime = string & {}>
|
|
3766
5554
|
extends StandardPropertiesFallback<TLength, TTime>,
|
|
3767
5555
|
VendorPropertiesFallback<TLength, TTime>,
|
|
@@ -5512,68 +7300,117 @@ declare namespace Property {
|
|
|
5512
7300
|
type VectorEffect = Globals | "non-scaling-stroke" | "none";
|
|
5513
7301
|
}
|
|
5514
7302
|
|
|
7303
|
+
/** Record of native attributes and Panda CSS properties accepted by `splitProps`. */
|
|
5515
7304
|
declare type PropsRecord = Record<string, unknown>;
|
|
5516
7305
|
|
|
5517
7306
|
declare type PropsToOmit<T extends ElementType, P extends object> = keyof (AsProp<T> & P);
|
|
5518
7307
|
|
|
5519
7308
|
declare type Pseudos = AdvancedPseudos | SimplePseudos;
|
|
5520
7309
|
|
|
7310
|
+
/** Direction used when comparing a viewport or container size token. */
|
|
5521
7311
|
declare type QueryDirection = 'min' | 'max';
|
|
5522
7312
|
|
|
7313
|
+
/** Direction used when comparing a viewport or container size token. */
|
|
5523
7314
|
declare type QueryDirection_2 = 'min' | 'max';
|
|
5524
7315
|
|
|
5525
7316
|
/**
|
|
5526
|
-
*
|
|
7317
|
+
* A native radio control without a visible label.
|
|
7318
|
+
*
|
|
7319
|
+
* Prefer {@link RadioInput} inside {@link RadioGroup} for a labelled,
|
|
7320
|
+
* keyboard-navigable choice group. For standalone use, group radios by `name`
|
|
7321
|
+
* and associate each with a label using `id`. Use `checked` with `onChange` for
|
|
7322
|
+
* controlled state, or `defaultChecked` only for uncontrolled state.
|
|
5527
7323
|
*
|
|
5528
7324
|
* @example
|
|
5529
|
-
*
|
|
7325
|
+
* ```tsx
|
|
7326
|
+
* <Radio name="shipping" defaultChecked />
|
|
7327
|
+
* ```
|
|
5530
7328
|
*
|
|
5531
7329
|
* @example
|
|
7330
|
+
* ```tsx
|
|
5532
7331
|
* const [checked, setChecked] = useState(false);
|
|
5533
|
-
* <Radio checked={checked} onChange={(
|
|
7332
|
+
* <Radio name="shipping" checked={checked} onChange={(event) => setChecked(event.target.checked)} />
|
|
7333
|
+
* ```
|
|
5534
7334
|
*/
|
|
5535
7335
|
export declare const Radio: (props: RadioProps) => JSX.Element;
|
|
5536
7336
|
|
|
5537
7337
|
/**
|
|
5538
|
-
*
|
|
7338
|
+
* Native change event emitted by {@link Radio}.
|
|
5539
7339
|
* @example
|
|
5540
7340
|
* const handleChange: RadioChangeHandler = (e) => setChecked(e.target.checked);
|
|
5541
7341
|
*/
|
|
5542
|
-
declare type RadioChangeEvent = ChangeEvent<HTMLInputElement>;
|
|
7342
|
+
export declare type RadioChangeEvent = ChangeEvent<HTMLInputElement>;
|
|
5543
7343
|
|
|
5544
7344
|
/**
|
|
5545
|
-
*
|
|
7345
|
+
* Handler for a {@link Radio} native change event.
|
|
5546
7346
|
* @example
|
|
5547
7347
|
* const handleChange: RadioChangeHandler = (e) => setChecked(e.target.checked);
|
|
5548
7348
|
*/
|
|
5549
|
-
declare type RadioChangeHandler = (e: RadioChangeEvent) => void;
|
|
7349
|
+
export declare type RadioChangeHandler = (e: RadioChangeEvent) => void;
|
|
5550
7350
|
|
|
7351
|
+
/**
|
|
7352
|
+
* Coordinates a mutually exclusive set of {@link RadioInput} controls.
|
|
7353
|
+
*
|
|
7354
|
+
* It renders a `radiogroup` and shares its name, selected value, and disabled
|
|
7355
|
+
* state through context. Each grouped `RadioInput` needs a `value`; its native
|
|
7356
|
+
* radio behavior provides arrow-key navigation. Use `value` with `onChange` for
|
|
7357
|
+
* controlled state or `defaultValue` for uncontrolled state, never both.
|
|
7358
|
+
*
|
|
7359
|
+
* @example
|
|
7360
|
+
* ```tsx
|
|
7361
|
+
* <RadioGroup name="size" defaultValue="medium" label="Size">
|
|
7362
|
+
* <RadioInput value="small">Small</RadioInput>
|
|
7363
|
+
* <RadioInput value="medium">Medium</RadioInput>
|
|
7364
|
+
* </RadioGroup>
|
|
7365
|
+
* ```
|
|
7366
|
+
*/
|
|
5551
7367
|
export declare const RadioGroup: (props: RadioGroupProps) => JSX.Element;
|
|
5552
7368
|
|
|
5553
|
-
|
|
5554
|
-
|
|
5555
|
-
|
|
7369
|
+
/** Props for {@link RadioGroup}, which coordinates descendant {@link RadioInput} controls. */
|
|
7370
|
+
export declare type RadioGroupProps = Omit<BoxProps, 'children' | 'role'> & {
|
|
7371
|
+
/** Shared native name for descendant grouped radios. */ name: string;
|
|
7372
|
+
/** Controlled selected value. Pair with `onChange`; use `null` for no selection. */ value?: string | null;
|
|
7373
|
+
/** Initial uncontrolled selected value; later updates are ignored. */
|
|
7374
|
+
/** @default null */
|
|
5556
7375
|
defaultValue?: string | null;
|
|
5557
|
-
onChange?: (value: string) => void;
|
|
5558
|
-
children: ReactNode;
|
|
5559
|
-
label?: string;
|
|
5560
|
-
id?: string;
|
|
5561
|
-
disabled?: boolean;
|
|
7376
|
+
/** Runs with the selected child `value` after a grouped radio changes. */ onChange?: (value: string) => void;
|
|
7377
|
+
/** Grouped `RadioInput` children. */ children: ReactNode;
|
|
7378
|
+
/** Accessible name applied as `aria-label`. Use when no separate visible group label is available. */ label?: string;
|
|
7379
|
+
/** Group ID. When supplied, descendants should provide an element with `${id}-label` as the visible group label. */ id?: string;
|
|
7380
|
+
/** Disables descendant grouped radios unless a child explicitly supplies `disabled`. */ disabled?: boolean;
|
|
5562
7381
|
};
|
|
5563
7382
|
|
|
7383
|
+
/**
|
|
7384
|
+
* A labelled radio option.
|
|
7385
|
+
*
|
|
7386
|
+
* Place it in {@link RadioGroup} with a unique `value` to receive shared
|
|
7387
|
+
* selection state, its name, and group-disabled state. Outside a group it acts
|
|
7388
|
+
* like a labelled {@link Radio}; supply `name` to form a native radio group.
|
|
7389
|
+
* Explicit `disabled` wins over group and field context.
|
|
7390
|
+
*
|
|
7391
|
+
* @example
|
|
7392
|
+
* ```tsx
|
|
7393
|
+
* <RadioGroup name="plan" defaultValue="standard" label="Plan">
|
|
7394
|
+
* <RadioInput value="standard">Standard</RadioInput>
|
|
7395
|
+
* </RadioGroup>
|
|
7396
|
+
* ```
|
|
7397
|
+
*/
|
|
5564
7398
|
export declare const RadioInput: (props: RadioInputProps) => JSX.Element;
|
|
5565
7399
|
|
|
5566
|
-
|
|
5567
|
-
|
|
5568
|
-
|
|
5569
|
-
|
|
7400
|
+
/** Props for {@link RadioInput}, a labelled radio that can join a {@link RadioGroup}. */
|
|
7401
|
+
export declare type RadioInputProps = Omit<BoxProps, keyof RadioInputVariantProps> & RadioInputVariantProps & {
|
|
7402
|
+
/** Native group name when the input is not inside a `RadioGroup`; group context takes precedence. */ name?: string;
|
|
7403
|
+
/** Value reported to the nearest `RadioGroup`; required for the input to participate in that group. */ value?: string;
|
|
7404
|
+
/** Controlled state for standalone use. Group context takes precedence when `value` is supplied. */ checked?: boolean;
|
|
7405
|
+
/** Initial standalone selected state; ignored for grouped radios and after mount. */
|
|
7406
|
+
/** @default false */
|
|
5570
7407
|
defaultChecked?: boolean;
|
|
5571
|
-
onChange?: RadioChangeHandler;
|
|
5572
|
-
id?: string;
|
|
5573
|
-
error?: boolean;
|
|
5574
|
-
invalid?: boolean;
|
|
5575
|
-
children?: string | ReactNode;
|
|
5576
|
-
disabled?: boolean;
|
|
7408
|
+
/** Runs after group selection is requested and for standalone native changes. The group `onChange` receives the selected value. */ onChange?: RadioChangeHandler;
|
|
7409
|
+
/** Input ID. A stable ID is generated when omitted and associated with the wrapper label. */ id?: string;
|
|
7410
|
+
/** Applies error styling, overriding field context. */ error?: boolean;
|
|
7411
|
+
/** Marks the radio invalid, overriding field context. */ invalid?: boolean;
|
|
7412
|
+
/** Visible label content. */ children?: string | ReactNode;
|
|
7413
|
+
/** Disables the radio, overriding group and field context. */ disabled?: boolean;
|
|
5577
7414
|
};
|
|
5578
7415
|
|
|
5579
7416
|
declare interface RadioInputVariant {
|
|
@@ -5584,15 +7421,18 @@ declare type RadioInputVariantProps = {
|
|
|
5584
7421
|
[key in keyof RadioInputVariant]?: ConditionalValue<RadioInputVariant[key]> | undefined
|
|
5585
7422
|
}
|
|
5586
7423
|
|
|
5587
|
-
|
|
5588
|
-
|
|
5589
|
-
|
|
7424
|
+
/** Props for {@link Radio}, the unlabelled native radio primitive. */
|
|
7425
|
+
export declare type RadioProps = Omit<BoxProps, 'checked' | 'defaultChecked' | 'onChange' | keyof RadioVariantProps> & RadioVariantProps & {
|
|
7426
|
+
/** Native radio group name. Radios with the same name are mutually exclusive. */ name?: string;
|
|
7427
|
+
/** Controlled selected state. Pair with `onChange`; do not combine with `defaultChecked`. */ checked?: boolean;
|
|
7428
|
+
/** Initial selected state for uncontrolled use; later updates are ignored. */
|
|
7429
|
+
/** @default false */
|
|
5590
7430
|
defaultChecked?: boolean;
|
|
5591
|
-
onChange?: RadioChangeHandler;
|
|
5592
|
-
id?: string;
|
|
5593
|
-
error?: boolean;
|
|
5594
|
-
invalid?: boolean;
|
|
5595
|
-
disabled?: boolean;
|
|
7431
|
+
/** Runs for the native input change event when this radio becomes selected. */ onChange?: RadioChangeHandler;
|
|
7432
|
+
/** Native input ID used by an external label. */ id?: string;
|
|
7433
|
+
/** Applies error styling, overriding field context. */ error?: boolean;
|
|
7434
|
+
/** Marks the native input invalid with `aria-invalid`, overriding field context. */ invalid?: boolean;
|
|
7435
|
+
/** Disables interaction, overriding field context. */ disabled?: boolean;
|
|
5596
7436
|
};
|
|
5597
7437
|
|
|
5598
7438
|
declare interface RadioVariant {
|
|
@@ -5609,38 +7449,333 @@ export declare type RecipeConfig<V extends RecipeVariantRecord = RecipeVariantRe
|
|
|
5609
7449
|
|
|
5610
7450
|
export declare type RecipeVariantRecord = Record<string, Record<string, unknown> | string | number | boolean | null | undefined>;
|
|
5611
7451
|
|
|
7452
|
+
/**
|
|
7453
|
+
* Edits a date as separate year, month, and day spinbutton segments.
|
|
7454
|
+
*
|
|
7455
|
+
* The component clamps days to the selected month and emits only complete
|
|
7456
|
+
* dates or a fully cleared `null` value. Use `DateInput` when leading or
|
|
7457
|
+
* trailing slots and field validation styling are needed.
|
|
7458
|
+
*
|
|
7459
|
+
* @example
|
|
7460
|
+
* ```tsx
|
|
7461
|
+
* <SegmentedDate defaultValue={{ year: 2026, month: 8, day: 3 }} />
|
|
7462
|
+
* ```
|
|
7463
|
+
*/
|
|
7464
|
+
export declare const SegmentedDate: (props: SegmentedDateProps) => JSX.Element;
|
|
7465
|
+
|
|
7466
|
+
declare type SegmentedDateFormat = DateFormat;
|
|
7467
|
+
|
|
7468
|
+
/** Props for {@link SegmentedDate}, a keyboard-editable date field. */
|
|
7469
|
+
export declare type SegmentedDateProps = Omit<BoxProps, keyof SegmentedInputsVariantProps | 'children' | 'onChange' | 'value'> & SegmentedInputVariantProps & {
|
|
7470
|
+
/** Ref attached to the segmented group container. */
|
|
7471
|
+
ref?: Ref<HTMLDivElement>;
|
|
7472
|
+
/** Controlled date. Pair with `onChange`; `null` clears every segment. */
|
|
7473
|
+
value?: DateValue | null;
|
|
7474
|
+
/** Initial date when `value` is not provided. */
|
|
7475
|
+
defaultValue?: DateValue | null;
|
|
7476
|
+
/** Runs after all date segments form a date, or after every segment is cleared. */
|
|
7477
|
+
onChange?: (value: DateValue | null) => void;
|
|
7478
|
+
/**
|
|
7479
|
+
* Segment order and default separator.
|
|
7480
|
+
*
|
|
7481
|
+
* @default 'YYYY-MM-DD'
|
|
7482
|
+
*/
|
|
7483
|
+
format?: SegmentedDateFormat;
|
|
7484
|
+
/** Overrides separator content or spacing between date segments. */
|
|
7485
|
+
separators?: SeparatorConfig;
|
|
7486
|
+
/**
|
|
7487
|
+
* Accessible name for the segmented group.
|
|
7488
|
+
*
|
|
7489
|
+
* @default 'Date'
|
|
7490
|
+
*/
|
|
7491
|
+
label?: string;
|
|
7492
|
+
/** Prevents editing and keyboard interaction. */
|
|
7493
|
+
disabled?: boolean;
|
|
7494
|
+
/** Runs when focus enters any date segment. */
|
|
7495
|
+
onFocusWithin?: () => void;
|
|
7496
|
+
/** Runs when focus leaves a date segment and provides the next focused node. */
|
|
7497
|
+
onBlurWithin?: (relatedTarget: Node | null) => void;
|
|
7498
|
+
};
|
|
7499
|
+
|
|
7500
|
+
declare interface SegmentedFieldsVariant {
|
|
7501
|
+
/**
|
|
7502
|
+
* @default "md"
|
|
7503
|
+
*/
|
|
7504
|
+
size: "sm" | "md" | "lg" | "xl"
|
|
7505
|
+
field: "date" | "time" | "dateTime"
|
|
7506
|
+
range: "date" | "time"
|
|
7507
|
+
before: boolean
|
|
7508
|
+
after: boolean
|
|
7509
|
+
}
|
|
7510
|
+
|
|
7511
|
+
declare type SegmentedFieldsVariantProps = {
|
|
7512
|
+
[key in keyof SegmentedFieldsVariant]?: ConditionalValue<SegmentedFieldsVariant[key]> | undefined
|
|
7513
|
+
}
|
|
7514
|
+
|
|
7515
|
+
/**
|
|
7516
|
+
* Renders a keyboard-editable group of numeric and choice segments.
|
|
7517
|
+
*
|
|
7518
|
+
* This is the low-level primitive used by `SegmentedDate` and
|
|
7519
|
+
* `SegmentedTime`. Each segment uses spinbutton semantics; arrow keys step
|
|
7520
|
+
* values, number or choice keys enter values, and focus advances between
|
|
7521
|
+
* completed numeric segments.
|
|
7522
|
+
*
|
|
7523
|
+
* @example
|
|
7524
|
+
* ```tsx
|
|
7525
|
+
* <SegmentedInput
|
|
7526
|
+
* label="Quantity"
|
|
7527
|
+
* items={[{
|
|
7528
|
+
* type: 'segment', kind: 'numeric', id: 'quantity',
|
|
7529
|
+
* label: 'Quantity', placeholder: '0', value: null,
|
|
7530
|
+
* min: 0, max: 99, digits: 2,
|
|
7531
|
+
* }]}
|
|
7532
|
+
* />
|
|
7533
|
+
* ```
|
|
7534
|
+
*/
|
|
7535
|
+
export declare const SegmentedInput: (props: SegmentedInputProps) => JSX.Element;
|
|
7536
|
+
|
|
7537
|
+
/** Change payload containing the complete value map and changed segment. */
|
|
7538
|
+
declare type SegmentedInputChange = {
|
|
7539
|
+
values: SegmentedInputValueMap;
|
|
7540
|
+
changedSegmentId: string;
|
|
7541
|
+
};
|
|
7542
|
+
|
|
7543
|
+
/** Editable segment or visual separator accepted by `SegmentedInput`. */
|
|
7544
|
+
export declare type SegmentedInputItem = SegmentItem | SeparatorItem;
|
|
7545
|
+
|
|
7546
|
+
/** Props for the low-level {@link SegmentedInput} composition primitive. */
|
|
7547
|
+
export declare type SegmentedInputProps = Omit<BoxProps, keyof SegmentedInputsVariantProps | 'children' | 'onChange' | 'value'> & SegmentedInputVariantProps_2 & {
|
|
7548
|
+
/** Ref attached to the segment group container. */
|
|
7549
|
+
ref?: Ref<HTMLDivElement>;
|
|
7550
|
+
/** Ordered editable segments and visual separators. */
|
|
7551
|
+
items: readonly SegmentedInputItem[];
|
|
7552
|
+
/** Accessible name announced for the complete group. */
|
|
7553
|
+
label: string;
|
|
7554
|
+
/** Prevents editing and keyboard interaction. Overrides field context. */
|
|
7555
|
+
disabled?: boolean;
|
|
7556
|
+
/** Controlled values keyed by segment identifier. */
|
|
7557
|
+
value?: SegmentedInputValueMap;
|
|
7558
|
+
/** Runs after a segment changes with the complete next value map. */
|
|
7559
|
+
onChange?: (change: SegmentedInputChange) => void;
|
|
7560
|
+
/** Runs when focus enters any editable segment. */
|
|
7561
|
+
onFocusWithin?: () => void;
|
|
7562
|
+
/** Runs when focus leaves a segment and provides the next focused node. */
|
|
7563
|
+
onBlurWithin?: (relatedTarget: Node | null) => void;
|
|
7564
|
+
};
|
|
7565
|
+
|
|
7566
|
+
declare interface SegmentedInputsVariant {
|
|
7567
|
+
/**
|
|
7568
|
+
* @default "md"
|
|
7569
|
+
*/
|
|
7570
|
+
size: "sm" | "md" | "lg" | "xl"
|
|
7571
|
+
}
|
|
7572
|
+
|
|
7573
|
+
declare type SegmentedInputsVariantProps = {
|
|
7574
|
+
[key in keyof SegmentedInputsVariant]?: ConditionalValue<SegmentedInputsVariant[key]> | undefined
|
|
7575
|
+
}
|
|
7576
|
+
|
|
7577
|
+
/** Current segment values keyed by each segment's stable identifier. */
|
|
7578
|
+
export declare type SegmentedInputValueMap = Record<string, SegmentValue>;
|
|
7579
|
+
|
|
7580
|
+
declare type SegmentedInputVariantProps = Omit<SegmentedInputsVariantProps, 'bare'>;
|
|
7581
|
+
|
|
7582
|
+
declare type SegmentedInputVariantProps_2 = Omit<SegmentedInputsVariantProps, 'bare'>;
|
|
7583
|
+
|
|
7584
|
+
declare type SegmentedInputVariantProps_3 = Omit<SegmentedInputsVariantProps, 'bare'>;
|
|
7585
|
+
|
|
7586
|
+
/**
|
|
7587
|
+
* Edits a time as separate hour, minute, and optional meridiem segments.
|
|
7588
|
+
*
|
|
7589
|
+
* Display may use 12- or 24-hour time, but values always store hours from 0
|
|
7590
|
+
* through 23. Use `TimeInput` when leading or trailing slots and field
|
|
7591
|
+
* validation styling are needed.
|
|
7592
|
+
*
|
|
7593
|
+
* @example
|
|
7594
|
+
* ```tsx
|
|
7595
|
+
* <SegmentedTime defaultValue={{ hour: 13, minute: 30 }} timeFormat="12" />
|
|
7596
|
+
* ```
|
|
7597
|
+
*/
|
|
7598
|
+
export declare const SegmentedTime: (props: SegmentedTimeProps) => JSX.Element;
|
|
7599
|
+
|
|
7600
|
+
/** Props for {@link SegmentedTime}, a keyboard-editable time field. */
|
|
7601
|
+
export declare type SegmentedTimeProps = Omit<BoxProps, keyof SegmentedInputsVariantProps | 'children' | 'onChange' | 'value'> & SegmentedInputVariantProps_3 & {
|
|
7602
|
+
/** Ref attached to the segmented group container. */
|
|
7603
|
+
ref?: Ref<HTMLDivElement>;
|
|
7604
|
+
/** Controlled 24-hour time value. Pair with `onChange`. */
|
|
7605
|
+
value?: TimeValue | null;
|
|
7606
|
+
/** Initial time when `value` is not provided. */
|
|
7607
|
+
defaultValue?: TimeValue | null;
|
|
7608
|
+
/** Runs when the hour and minute segments form a complete time. */
|
|
7609
|
+
onChange?: (value: TimeValue | null) => void;
|
|
7610
|
+
/**
|
|
7611
|
+
* Display cycle; emitted values always use 24-hour hours.
|
|
7612
|
+
*
|
|
7613
|
+
* @default '12'
|
|
7614
|
+
*/
|
|
7615
|
+
timeFormat?: TimeFormat;
|
|
7616
|
+
/**
|
|
7617
|
+
* Minute increment used by keyboard stepping. Unsupported values are normalized.
|
|
7618
|
+
*
|
|
7619
|
+
* @default 1
|
|
7620
|
+
*/
|
|
7621
|
+
minuteStep?: number;
|
|
7622
|
+
/** Overrides content or spacing around time and meridiem separators. */
|
|
7623
|
+
separators?: {
|
|
7624
|
+
time?: SeparatorConfig;
|
|
7625
|
+
meridiem?: SeparatorConfig;
|
|
7626
|
+
};
|
|
7627
|
+
/**
|
|
7628
|
+
* Accessible name for the segmented group.
|
|
7629
|
+
*
|
|
7630
|
+
* @default 'Time'
|
|
7631
|
+
*/
|
|
7632
|
+
label?: string;
|
|
7633
|
+
/** Prevents editing and keyboard interaction. */
|
|
7634
|
+
disabled?: boolean;
|
|
7635
|
+
/** Runs when focus enters any time segment. */
|
|
7636
|
+
onFocusWithin?: () => void;
|
|
7637
|
+
/** Runs when focus leaves a time segment and provides the next focused node. */
|
|
7638
|
+
onBlurWithin?: (relatedTarget: Node | null) => void;
|
|
7639
|
+
};
|
|
7640
|
+
|
|
7641
|
+
/** Metadata for an editable numeric or choice segment. */
|
|
7642
|
+
declare type SegmentItem = {
|
|
7643
|
+
type: 'segment';
|
|
7644
|
+
id: string;
|
|
7645
|
+
label: string;
|
|
7646
|
+
placeholder: string;
|
|
7647
|
+
value: SegmentValue;
|
|
7648
|
+
disabled?: boolean;
|
|
7649
|
+
} & ({
|
|
7650
|
+
kind: 'numeric';
|
|
7651
|
+
min: number;
|
|
7652
|
+
max: number;
|
|
7653
|
+
digits: number;
|
|
7654
|
+
step?: number;
|
|
7655
|
+
format?: (value: number) => string;
|
|
7656
|
+
clampValue?: (value: number, values: SegmentedInputValueMap) => number;
|
|
7657
|
+
} | {
|
|
7658
|
+
kind: 'choice';
|
|
7659
|
+
choices: readonly string[];
|
|
7660
|
+
inputKeys?: Record<string, string>;
|
|
7661
|
+
});
|
|
7662
|
+
|
|
7663
|
+
/** Value stored by one editable segment. */
|
|
7664
|
+
declare type SegmentValue = number | string | null;
|
|
7665
|
+
|
|
7666
|
+
/**
|
|
7667
|
+
* Chooses one or more values from metadata-only {@link SelectOption} children.
|
|
7668
|
+
*
|
|
7669
|
+
* The trigger uses combobox/listbox semantics. Arrow keys, Enter, and Space open
|
|
7670
|
+
* it; typeahead and arrow keys navigate options; Escape or outside press closes
|
|
7671
|
+
* it. Focus stays on the trigger when the non-modal popup opens.
|
|
7672
|
+
*
|
|
7673
|
+
* @example
|
|
7674
|
+
* ```tsx
|
|
7675
|
+
* <Select defaultValue="draft" name="status">
|
|
7676
|
+
* <SelectOption value="draft" label="Draft" />
|
|
7677
|
+
* <SelectOption value="published" label="Published" />
|
|
7678
|
+
* </Select>
|
|
7679
|
+
* ```
|
|
7680
|
+
*/
|
|
5612
7681
|
export declare const Select: (props: SelectProps) => JSX.Element;
|
|
5613
7682
|
|
|
7683
|
+
/**
|
|
7684
|
+
* Declares an option for a parent {@link Select}.
|
|
7685
|
+
*
|
|
7686
|
+
* This component returns `null`; place it directly inside `Select` so the
|
|
7687
|
+
* parent can interpret its metadata.
|
|
7688
|
+
*
|
|
7689
|
+
* @example
|
|
7690
|
+
* ```tsx
|
|
7691
|
+
* <SelectOption value="medium" label="Medium" />
|
|
7692
|
+
* ```
|
|
7693
|
+
*/
|
|
5614
7694
|
export declare const SelectOption: (_props: SelectOptionProps) => null;
|
|
5615
7695
|
|
|
7696
|
+
/** Metadata consumed by {@link Select}; `SelectOption` does not render an element itself. */
|
|
5616
7697
|
export declare type SelectOptionProps = Omit<BoxProps, 'children'> & {
|
|
7698
|
+
/** Stable value emitted by the parent `Select`. */
|
|
5617
7699
|
value: string;
|
|
7700
|
+
/** Visible option text and the value used for keyboard typeahead. */
|
|
5618
7701
|
label: string;
|
|
7702
|
+
/** Excludes the option from pointer and keyboard selection. */
|
|
5619
7703
|
disabled?: boolean;
|
|
7704
|
+
/** Supporting text displayed below the label in the popup. */
|
|
5620
7705
|
description?: string;
|
|
7706
|
+
/** Icon displayed before the option label. */
|
|
5621
7707
|
iconLeft?: IconNamesList;
|
|
7708
|
+
/** Icon displayed after the option label. */
|
|
5622
7709
|
iconRight?: IconNamesList;
|
|
5623
7710
|
};
|
|
5624
7711
|
|
|
5625
7712
|
declare type Selectors = AttributeSelector | ParentSelector
|
|
5626
7713
|
|
|
5627
|
-
|
|
7714
|
+
/** Props for {@link Select}, an ARIA listbox-based single or multiple select. */
|
|
7715
|
+
export declare type SelectProps = Omit<BoxProps, keyof SelectVariantProps | 'children' | 'onChange' | 'type' | 'value'> & SelectVariantProps & {
|
|
7716
|
+
/** Controlled selected value. Use a string for single selection or a string array for multiple selection, with `onChange` to accept changes. */
|
|
5628
7717
|
value?: SelectValue;
|
|
7718
|
+
/**
|
|
7719
|
+
* Initial selected value for an uncontrolled select. It is used only on first render.
|
|
7720
|
+
* @default null
|
|
7721
|
+
*/
|
|
5629
7722
|
defaultValue?: SelectValue;
|
|
7723
|
+
/** Called when the user selects, deselects, or clears an option. In controlled mode, update `value` with the supplied value. */
|
|
5630
7724
|
onChange?: (value: SelectValue) => void;
|
|
7725
|
+
/**
|
|
7726
|
+
* Allows several options to be selected and renders selected options as removable chips.
|
|
7727
|
+
* @default false
|
|
7728
|
+
*/
|
|
5631
7729
|
multiple?: boolean;
|
|
7730
|
+
/**
|
|
7731
|
+
* Text shown while no option is selected.
|
|
7732
|
+
* @default 'Select...'
|
|
7733
|
+
*/
|
|
5632
7734
|
placeholder?: string;
|
|
7735
|
+
/** Controlled popup state. Pair with `onOpenChange`; omit it to use `defaultOpen`. */
|
|
5633
7736
|
open?: boolean;
|
|
7737
|
+
/**
|
|
7738
|
+
* Initial popup state for an uncontrolled select. It is used only on first render.
|
|
7739
|
+
* @default false
|
|
7740
|
+
*/
|
|
5634
7741
|
defaultOpen?: boolean;
|
|
7742
|
+
/** Called when user interaction requests that the popup open or close. */
|
|
5635
7743
|
onOpenChange?: (open: boolean) => void;
|
|
7744
|
+
/**
|
|
7745
|
+
* Floating UI placement for the listbox relative to the trigger.
|
|
7746
|
+
* @default 'bottom-start'
|
|
7747
|
+
*/
|
|
5636
7748
|
placement?: Placement;
|
|
7749
|
+
/**
|
|
7750
|
+
* Gap between the trigger and listbox, in pixels.
|
|
7751
|
+
* @default 4
|
|
7752
|
+
*/
|
|
5637
7753
|
offset?: number;
|
|
7754
|
+
/** Metadata-only `SelectOption` children used to build the listbox. Other children are ignored. */
|
|
5638
7755
|
children?: ReactNode;
|
|
7756
|
+
/** Identifier for the combobox trigger. A generated identifier is used when omitted. */
|
|
5639
7757
|
id?: string;
|
|
7758
|
+
/** Form field name. Each selected value is submitted through a hidden input. */
|
|
5640
7759
|
name?: string;
|
|
7760
|
+
/**
|
|
7761
|
+
* Prevents opening, selection, and hidden-input submission.
|
|
7762
|
+
* @default false
|
|
7763
|
+
*/
|
|
5641
7764
|
disabled?: boolean;
|
|
7765
|
+
/**
|
|
7766
|
+
* Marks the combobox as invalid with `aria-invalid` and error styling.
|
|
7767
|
+
* @default false
|
|
7768
|
+
*/
|
|
5642
7769
|
error?: boolean;
|
|
7770
|
+
/**
|
|
7771
|
+
* Density applied to the popup options.
|
|
7772
|
+
* @default 'compact'
|
|
7773
|
+
*/
|
|
5643
7774
|
density?: MenuDensity;
|
|
7775
|
+
/**
|
|
7776
|
+
* Shrinks the trigger to its content instead of using the standard select width.
|
|
7777
|
+
* @default false
|
|
7778
|
+
*/
|
|
5644
7779
|
autoSize?: boolean;
|
|
5645
7780
|
};
|
|
5646
7781
|
|
|
@@ -5659,6 +7794,25 @@ declare type SelectVariantProps = {
|
|
|
5659
7794
|
[key in keyof SelectVariant]?: ConditionalValue<SelectVariant[key]> | undefined
|
|
5660
7795
|
}
|
|
5661
7796
|
|
|
7797
|
+
/** Content and spacing used for a separator between editable segments. */
|
|
7798
|
+
export declare type SeparatorConfig = {
|
|
7799
|
+
/** Visual separator content. */
|
|
7800
|
+
content?: ReactNode;
|
|
7801
|
+
/** Space placed around the separator. */
|
|
7802
|
+
gap?: SeparatorGap;
|
|
7803
|
+
};
|
|
7804
|
+
|
|
7805
|
+
/** Spacing applied around a visual separator between editable segments. */
|
|
7806
|
+
export declare type SeparatorGap = 'none' | 'tight' | 'normal' | 'loose';
|
|
7807
|
+
|
|
7808
|
+
/** Metadata for non-editable content between segments. */
|
|
7809
|
+
declare type SeparatorItem = {
|
|
7810
|
+
type: 'separator';
|
|
7811
|
+
id: string;
|
|
7812
|
+
content: ReactNode;
|
|
7813
|
+
gap?: SeparatorGap;
|
|
7814
|
+
};
|
|
7815
|
+
|
|
5662
7816
|
declare type ShadowToken = "zeroBase" | "raisedBase" | "elevatedBase" | "overlayBase" | "overflowBase" | "zero" | "raised" | "elevated" | "overlay" | "overflow"
|
|
5663
7817
|
|
|
5664
7818
|
declare type SimplePseudos =
|
|
@@ -5773,21 +7927,62 @@ declare type SimplePseudos =
|
|
|
5773
7927
|
| ":valid"
|
|
5774
7928
|
| ":visited";
|
|
5775
7929
|
|
|
7930
|
+
/** Props for a single-selection {@link Autocomplete}. */
|
|
7931
|
+
declare type SingleAutocompleteProps = AutocompleteBaseProps & {
|
|
7932
|
+
/** Selects at most one value. */
|
|
7933
|
+
multiple?: false;
|
|
7934
|
+
/** Controlled selected value. Pair with `onValueChange`. */
|
|
7935
|
+
value?: AutocompleteValue<false>;
|
|
7936
|
+
/** Initial selected value when `value` is not provided. */
|
|
7937
|
+
defaultValue?: AutocompleteValue<false>;
|
|
7938
|
+
/** Runs when selection, removal, clearing, or creation requests a new value. */
|
|
7939
|
+
onValueChange?: (value: AutocompleteValue<false>, reason: AutocompleteChangeReason) => void;
|
|
7940
|
+
/**
|
|
7941
|
+
* Runs when the selected value changes.
|
|
7942
|
+
*
|
|
7943
|
+
* @deprecated Use `onValueChange`.
|
|
7944
|
+
*/
|
|
7945
|
+
onChange?: (value: AutocompleteValue<false>, reason: AutocompleteChangeReason) => void;
|
|
7946
|
+
};
|
|
7947
|
+
|
|
5776
7948
|
declare type SizeToken = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "12" | "14" | "16" | "18" | "20" | "22" | "24" | "28" | "32" | "40" | "48" | "56" | "64" | "72" | "80" | "88" | "96" | "104" | "112" | "120" | "128" | "136" | "144" | "152" | "160" | "168" | "176" | "184" | "192" | "200" | "208" | "216" | "224" | "232" | "240" | "248" | "256" | "264" | "272" | "280" | "full" | "half" | "min" | "max" | "fit" | "prose" | "auto" | "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | "7xl" | "8xl" | "breakpoint-xs" | "breakpoint-sm" | "breakpoint-md" | "breakpoint-lg" | "breakpoint-xl" | "breakpoint-2xl"
|
|
5777
7949
|
|
|
7950
|
+
/**
|
|
7951
|
+
* Reserves the shape of content while that content is loading.
|
|
7952
|
+
*
|
|
7953
|
+
* `Skeleton` is visual only and does not announce loading. Put it in a region
|
|
7954
|
+
* with an appropriate accessible loading state when users need that feedback.
|
|
7955
|
+
*
|
|
7956
|
+
* @example
|
|
7957
|
+
* ```tsx
|
|
7958
|
+
* <Skeleton width="full" height="40" aria-hidden />
|
|
7959
|
+
* ```
|
|
7960
|
+
*/
|
|
5778
7961
|
export declare const Skeleton: (props: SkeletonProps) => JSX.Element;
|
|
5779
7962
|
|
|
7963
|
+
/** Supported animation modes for {@link Skeleton}. */
|
|
5780
7964
|
declare type SkeletonAnimation = 'pulse' | 'wave' | false;
|
|
5781
7965
|
|
|
5782
|
-
|
|
7966
|
+
/** Props accepted by {@link Skeleton}. */
|
|
7967
|
+
export declare type SkeletonProps = Omit<BoxProps, 'as' | 'children' | 'width' | 'height'> & {
|
|
7968
|
+
/** Loading animation, or `false` for a static placeholder. */
|
|
7969
|
+
/** @default "pulse" */
|
|
5783
7970
|
animation?: SkeletonAnimation;
|
|
7971
|
+
/** Placeholder shape. */
|
|
7972
|
+
/** @default "text" */
|
|
5784
7973
|
variant?: SkeletonVariant;
|
|
7974
|
+
/** Element or component rendered as the placeholder root. */
|
|
7975
|
+
/** @default "span" */
|
|
5785
7976
|
component?: ElementType;
|
|
7977
|
+
/** Explicit placeholder width; content determines width when omitted. */
|
|
5786
7978
|
width?: string | number;
|
|
7979
|
+
/** Explicit placeholder height; content determines height when omitted. */
|
|
5787
7980
|
height?: string | number;
|
|
7981
|
+
/** Content whose dimensions the skeleton should match. */
|
|
5788
7982
|
children?: ReactNode;
|
|
5789
7983
|
};
|
|
5790
7984
|
|
|
7985
|
+
/** Supported placeholder shapes for {@link Skeleton}. */
|
|
5791
7986
|
declare type SkeletonVariant = 'text' | 'circular' | 'rounded' | 'rectangular';
|
|
5792
7987
|
|
|
5793
7988
|
export declare type SlotRecipeConfig<S extends string = string, V extends SlotRecipeVariantRecord<S> = SlotRecipeVariantRecord<S>> = BaseSlotRecipeConfig<S, V>;
|
|
@@ -5796,11 +7991,28 @@ export declare type SlotRecipeVariantRecord<S extends string = string> = Record<
|
|
|
5796
7991
|
|
|
5797
7992
|
declare type SpacingToken = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "12" | "14" | "16" | "18" | "20" | "22" | "24" | "28" | "32" | "40" | "48" | "56" | "64" | "72" | "80" | "88" | "96" | "104" | "112" | "120" | "128" | "136" | "144" | "152" | "160" | "168" | "176" | "184" | "192" | "200" | "208" | "216" | "224" | "232" | "240" | "248" | "256" | "264" | "272" | "280" | "full" | "half" | "min" | "max" | "fit" | "prose" | "auto" | "-0" | "-1" | "-2" | "-3" | "-4" | "-5" | "-6" | "-7" | "-8" | "-9" | "-10" | "-12" | "-14" | "-16" | "-18" | "-20" | "-22" | "-24" | "-28" | "-32" | "-40" | "-48" | "-56" | "-64" | "-72" | "-80" | "-88" | "-96" | "-104" | "-112" | "-120" | "-128" | "-136" | "-144" | "-152" | "-160" | "-168" | "-176" | "-184" | "-192" | "-200" | "-208" | "-216" | "-224" | "-232" | "-240" | "-248" | "-256" | "-264" | "-272" | "-280" | "-full" | "-half" | "-min" | "-max" | "-fit" | "-prose" | "-auto"
|
|
5798
7993
|
|
|
7994
|
+
/**
|
|
7995
|
+
* Displays an indeterminate visual loading indicator.
|
|
7996
|
+
*
|
|
7997
|
+
* `Spinner` does not create a live region or loading label. Apply `aria-busy`
|
|
7998
|
+
* and visible or screen-reader text to the region whose state is changing.
|
|
7999
|
+
*
|
|
8000
|
+
* @example
|
|
8001
|
+
* ```tsx
|
|
8002
|
+
* <Box aria-busy="true" aria-label="Loading orders"><Spinner /></Box>
|
|
8003
|
+
* ```
|
|
8004
|
+
*/
|
|
5799
8005
|
export declare const Spinner: (props: SpinnerProps) => JSX.Element;
|
|
5800
8006
|
|
|
5801
|
-
|
|
8007
|
+
/** Props accepted by {@link Spinner}. */
|
|
8008
|
+
export declare type SpinnerProps = Omit<BoxProps, keyof SpinnerVariantProps> & SpinnerVariantProps & {
|
|
8009
|
+
/** Uses the inverse-color treatment for dark or bold surfaces. */
|
|
8010
|
+
/** @default false */
|
|
5802
8011
|
inverse?: boolean;
|
|
8012
|
+
/** Absolutely centers the spinner within its positioned container. */
|
|
8013
|
+
/** @default false */
|
|
5803
8014
|
centered?: boolean;
|
|
8015
|
+
/** Visual size. An explicit value takes precedence over slot context. */
|
|
5804
8016
|
size?: SpinnerVariantProps['size'];
|
|
5805
8017
|
};
|
|
5806
8018
|
|
|
@@ -5817,6 +8029,20 @@ declare type SpinnerVariantProps = {
|
|
|
5817
8029
|
[key in keyof SpinnerVariant]?: ConditionalValue<SpinnerVariant[key]> | undefined
|
|
5818
8030
|
}
|
|
5819
8031
|
|
|
8032
|
+
/**
|
|
8033
|
+
* Separates Panda CSS props from remaining element props and returns a merged
|
|
8034
|
+
* class name for the generated styles.
|
|
8035
|
+
*
|
|
8036
|
+
* The first tuple value combines an existing string `className` with styles
|
|
8037
|
+
* generated from Panda CSS props, including the `css` prop. The second value
|
|
8038
|
+
* excludes those styling props and `className`, so it can be spread onto an
|
|
8039
|
+
* element without leaking them to the DOM.
|
|
8040
|
+
*
|
|
8041
|
+
* @example
|
|
8042
|
+
* ```tsx
|
|
8043
|
+
* const [className, elementProps] = splitProps({ p: '4', id: 'profile' });
|
|
8044
|
+
* ```
|
|
8045
|
+
*/
|
|
5820
8046
|
export declare const splitProps: (props: PropsRecord) => [string, PropsRecord];
|
|
5821
8047
|
|
|
5822
8048
|
declare interface StandardLonghandProperties<TLength = (string & {}) | 0, TTime = string & {}> {
|
|
@@ -11931,19 +14157,47 @@ declare type String_2 = string & {}
|
|
|
11931
14157
|
|
|
11932
14158
|
declare type StringToMultiple<T extends string> = T | `${T}, ${T}`
|
|
11933
14159
|
|
|
14160
|
+
/**
|
|
14161
|
+
* Opens nested menu content from a row in a parent {@link Menu}.
|
|
14162
|
+
*
|
|
14163
|
+
* Hover submenus open as positioned flyouts; `interaction="digin"` replaces
|
|
14164
|
+
* the parent level in the same panel. Arrow Right opens a flyout and Arrow Left
|
|
14165
|
+
* returns focus to its trigger. Filtering also searches nested children.
|
|
14166
|
+
*
|
|
14167
|
+
* @example
|
|
14168
|
+
* ```tsx
|
|
14169
|
+
* <SubMenu label="More actions">
|
|
14170
|
+
* <MenuItem label="Duplicate" />
|
|
14171
|
+
* </SubMenu>
|
|
14172
|
+
* ```
|
|
14173
|
+
*/
|
|
11934
14174
|
export declare const SubMenu: (props: SubMenuProps) => JSX.Element | null;
|
|
11935
14175
|
|
|
14176
|
+
/** Opens a submenu as a positioned flyout or as an in-panel drill-in level. */
|
|
11936
14177
|
declare type SubMenuInteraction = 'hover' | 'digin';
|
|
11937
14178
|
|
|
14179
|
+
/** Props for {@link SubMenu}, a nested menu trigger and its child menu. */
|
|
11938
14180
|
export declare type SubMenuProps = Omit<BoxProps, 'as'> & Omit<MenuVariantProps, 'iconBefore' | 'iconAfter'> & {
|
|
14181
|
+
/** Visible submenu trigger text. */
|
|
11939
14182
|
label: string;
|
|
14183
|
+
/** Secondary visible text included in filtering by default. */
|
|
11940
14184
|
description?: string;
|
|
14185
|
+
/** Prevents opening the nested menu. */
|
|
11941
14186
|
disabled?: boolean;
|
|
14187
|
+
/** Applies selected styling to the nested-menu trigger. */
|
|
11942
14188
|
selected?: boolean;
|
|
14189
|
+
/** Icon displayed before the trigger text. */
|
|
11943
14190
|
iconBefore?: IconNamesList;
|
|
14191
|
+
/** Overrides the parent menu's submenu interaction mode. */
|
|
11944
14192
|
interaction?: SubMenuInteraction;
|
|
14193
|
+
/**
|
|
14194
|
+
* Floating placement for a hover submenu.
|
|
14195
|
+
* @default 'right-start'
|
|
14196
|
+
*/
|
|
11945
14197
|
placement?: Placement;
|
|
14198
|
+
/** `MenuItem`, `MenuGroup`, or nested `SubMenu` children. */
|
|
11946
14199
|
children: ReactNode;
|
|
14200
|
+
/** Explicit text used for typeahead and filtering instead of label and description. */
|
|
11947
14201
|
textValue?: string;
|
|
11948
14202
|
};
|
|
11949
14203
|
|
|
@@ -19495,13 +21749,32 @@ export declare type SystemStyleObject = Record<string, unknown>;
|
|
|
19495
21749
|
|
|
19496
21750
|
declare type SystemStyleObject_2 = Omit<Nested<SystemProperties & CssVarProperties>, 'base'>
|
|
19497
21751
|
|
|
21752
|
+
/**
|
|
21753
|
+
* Displays a compact, non-interactive category or status label.
|
|
21754
|
+
*
|
|
21755
|
+
* Use `Chip` when the item can be selected or dismissed. Icons are decorative,
|
|
21756
|
+
* so the text must communicate the tag's meaning.
|
|
21757
|
+
*
|
|
21758
|
+
* @example
|
|
21759
|
+
* ```tsx
|
|
21760
|
+
* <Tag hue="green">Approved</Tag>
|
|
21761
|
+
* ```
|
|
21762
|
+
*/
|
|
19498
21763
|
export declare const Tag: (props: TagProps) => JSX.Element;
|
|
19499
21764
|
|
|
19500
|
-
|
|
21765
|
+
/** Props accepted by {@link Tag}. */
|
|
21766
|
+
export declare type TagProps = Omit<BoxProps, keyof TagVariantProps> & Omit<TagVariantProps, 'iconBefore' | 'iconAfter'> & {
|
|
21767
|
+
/** Visible tag label. */
|
|
19501
21768
|
children: string;
|
|
21769
|
+
/** Decorative icon shown before the label. */
|
|
19502
21770
|
iconBefore?: IconNamesList;
|
|
21771
|
+
/** Decorative icon shown after the label. */
|
|
19503
21772
|
iconAfter?: IconNamesList;
|
|
21773
|
+
/** Visual emphasis treatment. */
|
|
21774
|
+
/** @default "default" */
|
|
19504
21775
|
variant?: TagVariantProps['variant'];
|
|
21776
|
+
/** Color family used by the tag treatment. */
|
|
21777
|
+
/** @default "slate" */
|
|
19505
21778
|
hue?: TagVariantProps['hue'];
|
|
19506
21779
|
};
|
|
19507
21780
|
|
|
@@ -19523,17 +21796,50 @@ declare type TagVariantProps = {
|
|
|
19523
21796
|
[key in keyof TagVariant]?: TagVariant[key] | undefined
|
|
19524
21797
|
}
|
|
19525
21798
|
|
|
21799
|
+
/**
|
|
21800
|
+
* Renders design-system typography without imposing document semantics.
|
|
21801
|
+
*
|
|
21802
|
+
* The component renders a `span` by default. Choose `as` based on the content's
|
|
21803
|
+
* semantic role; use `Heading` for document headings and `Label` for form
|
|
21804
|
+
* labels.
|
|
21805
|
+
*
|
|
21806
|
+
* @example
|
|
21807
|
+
* ```tsx
|
|
21808
|
+
* <Text as="p" size="md">Account details</Text>
|
|
21809
|
+
* ```
|
|
21810
|
+
*/
|
|
19526
21811
|
declare const Text_2: (props: TextProps) => JSX.Element;
|
|
19527
21812
|
export { Text_2 as Text }
|
|
19528
21813
|
|
|
21814
|
+
/**
|
|
21815
|
+
* Renders a multi-line native textarea.
|
|
21816
|
+
*
|
|
21817
|
+
* Use a `Label` or `FormField` to provide its accessible name. Local `size`,
|
|
21818
|
+
* error, invalid, and disabled values override matching field-context values.
|
|
21819
|
+
*
|
|
21820
|
+
* @example
|
|
21821
|
+
* ```tsx
|
|
21822
|
+
* <Textarea id="notes" name="notes" rows={4} />
|
|
21823
|
+
* ```
|
|
21824
|
+
*/
|
|
19529
21825
|
export declare const Textarea: (props: TextareaProps) => JSX.Element;
|
|
19530
21826
|
|
|
19531
|
-
|
|
21827
|
+
/** Props for {@link Textarea}, a multi-line native text input. */
|
|
21828
|
+
export declare type TextareaProps = Omit<BoxProps, keyof TextareaVariantProps> & TextareaVariantProps & {
|
|
21829
|
+
/** Form field name submitted with the textarea value. */
|
|
19532
21830
|
name: string;
|
|
21831
|
+
/**
|
|
21832
|
+
* Applies the recipe's content-sized visual treatment; it does not measure or resize the native element.
|
|
21833
|
+
* @default false
|
|
21834
|
+
*/
|
|
19533
21835
|
autoSize?: boolean;
|
|
21836
|
+
/** Applies error styling. The local value takes precedence over field context. */
|
|
19534
21837
|
error?: boolean;
|
|
21838
|
+
/** Marks the native textarea invalid with `aria-invalid` and applies invalid styling. */
|
|
19535
21839
|
invalid?: boolean;
|
|
21840
|
+
/** Disables the native textarea. The local value takes precedence over field context. */
|
|
19536
21841
|
disabled?: boolean;
|
|
21842
|
+
/** Identifier used to associate a visible `Label` with this textarea. */
|
|
19537
21843
|
id?: string;
|
|
19538
21844
|
};
|
|
19539
21845
|
|
|
@@ -19549,19 +21855,51 @@ declare type TextareaVariantProps = {
|
|
|
19549
21855
|
[key in keyof TextareaVariant]?: ConditionalValue<TextareaVariant[key]> | undefined
|
|
19550
21856
|
}
|
|
19551
21857
|
|
|
21858
|
+
/**
|
|
21859
|
+
* Renders a single-line native input with optional leading and trailing slots.
|
|
21860
|
+
*
|
|
21861
|
+
* Use a `Label` or `FormField` to provide an accessible name. `before` and
|
|
21862
|
+
* `after` can contain controls; they inherit size and state through slot
|
|
21863
|
+
* context. Explicit slots take precedence over `iconBefore` and `iconAfter`.
|
|
21864
|
+
*
|
|
21865
|
+
* @example
|
|
21866
|
+
* ```tsx
|
|
21867
|
+
* <TextInput id="email" name="email" type="email" iconBefore="mail" />
|
|
21868
|
+
* ```
|
|
21869
|
+
*/
|
|
19552
21870
|
export declare const TextInput: (props: TextInputProps) => JSX.Element;
|
|
19553
21871
|
|
|
19554
|
-
|
|
21872
|
+
/** Props for {@link TextInput}, a single-line native input with optional slots. */
|
|
21873
|
+
export declare type TextInputProps = Omit<BoxProps, keyof TextInputVariantProps> & Omit<TextInputVariantProps, 'before' | 'after' | 'iconBefore' | 'iconAfter'> & {
|
|
21874
|
+
/** Form field name submitted with the input value. */
|
|
19555
21875
|
name: string;
|
|
21876
|
+
/** Identifier used to associate a visible `Label` with this input. */
|
|
19556
21877
|
id?: string;
|
|
21878
|
+
/** Content rendered before the native input. Takes precedence over `iconBefore`. */
|
|
19557
21879
|
before?: ReactNode;
|
|
21880
|
+
/** Content rendered after the native input. Takes precedence over `iconAfter`. */
|
|
19558
21881
|
after?: ReactNode;
|
|
21882
|
+
/** Decorative icon rendered before the input when `before` is omitted. */
|
|
19559
21883
|
iconBefore?: IconNamesList;
|
|
21884
|
+
/** Decorative icon rendered after the input when `after` is omitted. */
|
|
19560
21885
|
iconAfter?: IconNamesList;
|
|
21886
|
+
/** Applies error styling. The local value takes precedence over field context. */
|
|
19561
21887
|
error?: boolean;
|
|
21888
|
+
/** Disables the native input. The local value takes precedence over slot and field context. */
|
|
19562
21889
|
disabled?: boolean;
|
|
21890
|
+
/** Applies valid styling without changing native constraint validation. */
|
|
19563
21891
|
valid?: boolean;
|
|
21892
|
+
/** Marks the native input invalid with `aria-invalid` and applies invalid styling. */
|
|
19564
21893
|
invalid?: boolean;
|
|
21894
|
+
/**
|
|
21895
|
+
* Native autocomplete hint for the input. This component disables browser autocomplete by default.
|
|
21896
|
+
* @default 'off'
|
|
21897
|
+
*/
|
|
21898
|
+
autoComplete?: string;
|
|
21899
|
+
/**
|
|
21900
|
+
* Native input type.
|
|
21901
|
+
* @default 'text'
|
|
21902
|
+
*/
|
|
19565
21903
|
type?: 'text' | 'number' | 'email' | 'password' | 'search' | 'tel' | 'url' | 'date' | 'time' | 'datetime-local' | 'month' | 'week';
|
|
19566
21904
|
};
|
|
19567
21905
|
|
|
@@ -19579,10 +21917,16 @@ declare type TextInputVariantProps = {
|
|
|
19579
21917
|
[key in keyof TextInputVariant]?: ConditionalValue<TextInputVariant[key]> | undefined
|
|
19580
21918
|
}
|
|
19581
21919
|
|
|
19582
|
-
|
|
21920
|
+
/** Props accepted by {@link Text}. */
|
|
21921
|
+
export declare type TextProps = Omit<BoxProps, keyof TextVariantProps> & TextVariantProps & {
|
|
21922
|
+
/** Text or inline content to render. */
|
|
19583
21923
|
children: string | ReactNode;
|
|
21924
|
+
/** Semantic element or component used for the text. */
|
|
21925
|
+
/** @default "span" */
|
|
19584
21926
|
as?: ElementType;
|
|
21927
|
+
/** Explicit ARIA role when the rendered element does not provide it. */
|
|
19585
21928
|
role?: string;
|
|
21929
|
+
/** Adds the text to sequential keyboard focus when a composite widget requires it. */
|
|
19586
21930
|
tabIndex?: number;
|
|
19587
21931
|
};
|
|
19588
21932
|
|
|
@@ -19601,122 +21945,382 @@ declare type TextVariantProps = {
|
|
|
19601
21945
|
[key in keyof TextVariant]?: ConditionalValue<TextVariant[key]> | undefined
|
|
19602
21946
|
}
|
|
19603
21947
|
|
|
21948
|
+
/** Supported document color modes. */
|
|
19604
21949
|
declare type Theme = 'light' | 'dark';
|
|
19605
21950
|
|
|
21951
|
+
/** Value returned by {@link useTheme} and provided by {@link ThemeProvider}. */
|
|
19606
21952
|
declare interface ThemeContextType {
|
|
21953
|
+
/** Currently active color mode. */
|
|
19607
21954
|
theme: Theme;
|
|
21955
|
+
/**
|
|
21956
|
+
* Sets the active color mode and persists it as the user's browser
|
|
21957
|
+
* preference.
|
|
21958
|
+
*/
|
|
19608
21959
|
setTheme: (theme: Theme) => void;
|
|
19609
21960
|
}
|
|
19610
21961
|
|
|
21962
|
+
/**
|
|
21963
|
+
* Provides the active color mode and persists explicit user choices in browser
|
|
21964
|
+
* storage.
|
|
21965
|
+
*
|
|
21966
|
+
* Without a saved preference, the initial mode follows
|
|
21967
|
+
* `prefers-color-scheme`; subsequent system changes are followed only until a
|
|
21968
|
+
* preference is saved through {@link useTheme}. This provider updates the
|
|
21969
|
+
* document's `data-color-mode` attribute and requires a browser environment.
|
|
21970
|
+
*
|
|
21971
|
+
* @example
|
|
21972
|
+
* ```tsx
|
|
21973
|
+
* <ThemeProvider>
|
|
21974
|
+
* <App />
|
|
21975
|
+
* </ThemeProvider>
|
|
21976
|
+
* ```
|
|
21977
|
+
*/
|
|
19611
21978
|
export declare function ThemeProvider({ children }: {
|
|
19612
21979
|
children: ReactNode;
|
|
19613
21980
|
}): JSX.Element;
|
|
19614
21981
|
|
|
21982
|
+
/**
|
|
21983
|
+
* Renders an icon-only control that toggles the nearest theme provider between
|
|
21984
|
+
* light and dark themes.
|
|
21985
|
+
*
|
|
21986
|
+
* It obtains state from `useTheme`, so it must be rendered below the design
|
|
21987
|
+
* system's theme provider. The accessible label always describes the theme that
|
|
21988
|
+
* will be selected next.
|
|
21989
|
+
*
|
|
21990
|
+
* @example
|
|
21991
|
+
* ```tsx
|
|
21992
|
+
* <ThemeSwitcher />
|
|
21993
|
+
* ```
|
|
21994
|
+
*/
|
|
19615
21995
|
export declare const ThemeSwitcher: () => JSX.Element;
|
|
19616
21996
|
|
|
19617
|
-
|
|
21997
|
+
/** Display cycle used for time input while values remain normalized to 24-hour time. */
|
|
21998
|
+
export declare type TimeFormat = '12' | '24';
|
|
19618
21999
|
|
|
19619
|
-
|
|
19620
|
-
|
|
22000
|
+
/**
|
|
22001
|
+
* Renders a segmented time field with optional leading and trailing content.
|
|
22002
|
+
*
|
|
22003
|
+
* Display can use 12- or 24-hour time while values remain normalized to
|
|
22004
|
+
* 24-hour hours. Use `TimePicker` when a time-selection menu is also needed.
|
|
22005
|
+
*
|
|
22006
|
+
* @example
|
|
22007
|
+
* ```tsx
|
|
22008
|
+
* <TimeInput label="Start time" defaultValue={{ hour: 9, minute: 30 }} />
|
|
22009
|
+
* ```
|
|
22010
|
+
*/
|
|
22011
|
+
export declare const TimeInput: (props: TimeInputProps) => JSX.Element;
|
|
22012
|
+
|
|
22013
|
+
/** Props for {@link TimeInput}, including segmented time state and field slots. */
|
|
22014
|
+
export declare type TimeInputProps = Omit<BoxProps, keyof SegmentedFieldsVariantProps | 'children'> & Omit<SegmentedFieldsVariantProps, 'field' | 'range' | 'before' | 'after'> & {
|
|
22015
|
+
/** Identifier forwarded to the segmented time group. */
|
|
22016
|
+
id?: string;
|
|
22017
|
+
/** Controlled 24-hour time value. Pair with `onChange`. */
|
|
19621
22018
|
value?: TimeValue | null;
|
|
19622
|
-
/** Initial
|
|
22019
|
+
/** Initial time when `value` is not provided. */
|
|
19623
22020
|
defaultValue?: TimeValue | null;
|
|
19624
|
-
/**
|
|
22021
|
+
/** Runs when the time segments form a complete value. */
|
|
19625
22022
|
onChange?: (value: TimeValue | null) => void;
|
|
19626
|
-
/**
|
|
19627
|
-
|
|
19628
|
-
/** Minute
|
|
22023
|
+
/** Display cycle; emitted values always use 24-hour hours. */
|
|
22024
|
+
timeFormat?: TimeFormat;
|
|
22025
|
+
/** Minute increment used by keyboard stepping. */
|
|
19629
22026
|
minuteStep?: number;
|
|
19630
|
-
/** Accessible
|
|
22027
|
+
/** Accessible name for the segmented time group. */
|
|
19631
22028
|
label?: string;
|
|
19632
|
-
|
|
22029
|
+
/** Content before the time field. Takes precedence over `iconBefore`. */
|
|
22030
|
+
before?: ReactNode;
|
|
22031
|
+
/** Content after the time field. Takes precedence over `iconAfter`. */
|
|
22032
|
+
after?: ReactNode;
|
|
22033
|
+
/** Legacy icon rendered before the field when `before` is absent. */
|
|
22034
|
+
iconBefore?: IconNamesList;
|
|
22035
|
+
/** Legacy icon rendered after the field when `after` is absent. */
|
|
22036
|
+
iconAfter?: IconNamesList;
|
|
22037
|
+
/** Applies error styling. Overrides field context when provided. */
|
|
19633
22038
|
error?: boolean;
|
|
22039
|
+
/** Prevents editing. Overrides field context when provided. */
|
|
22040
|
+
disabled?: boolean;
|
|
22041
|
+
/** Applies invalid styling. Overrides field context when provided. */
|
|
19634
22042
|
invalid?: boolean;
|
|
19635
|
-
|
|
19636
|
-
name?: string;
|
|
19637
|
-
/** Controlled popover open state */
|
|
22043
|
+
/** Reflected through to the segmented field — lets a wrapping Menu/Picker show "active anchor" styling */
|
|
19638
22044
|
open?: boolean;
|
|
19639
|
-
/**
|
|
19640
|
-
|
|
19641
|
-
|
|
19642
|
-
|
|
22045
|
+
/** Forwarded to the segmented field — see SegmentedTime's onFocusWithin */
|
|
22046
|
+
onFocusWithin?: () => void;
|
|
22047
|
+
/** Forwarded to the segmented field — see SegmentedTime's onBlurWithin */
|
|
22048
|
+
onBlurWithin?: (relatedTarget: Node | null) => void;
|
|
19643
22049
|
};
|
|
19644
22050
|
|
|
19645
|
-
|
|
22051
|
+
/**
|
|
22052
|
+
* Presents hour, minute, and optional meridiem selection columns in a Menu.
|
|
22053
|
+
*
|
|
22054
|
+
* Each selection commits immediately while the menu remains open. Supply a
|
|
22055
|
+
* `trigger`, or set inherited `inline` to render the columns in normal flow.
|
|
22056
|
+
*
|
|
22057
|
+
* @example
|
|
22058
|
+
* ```tsx
|
|
22059
|
+
* <TimeMenu trigger={<Button>Choose time</Button>} onChange={setTime} />
|
|
22060
|
+
* ```
|
|
22061
|
+
*/
|
|
22062
|
+
export declare const TimeMenu: (props: TimeMenuProps) => any;
|
|
22063
|
+
|
|
22064
|
+
/** Props for {@link TimeMenu}, including selected time and display cycle. */
|
|
22065
|
+
export declare type TimeMenuProps = Omit<MenuProps, 'children' | 'onChange' | 'value'> & {
|
|
22066
|
+
/** Selected 24-hour time reflected in the menu columns. */
|
|
22067
|
+
value?: TimeValue | null;
|
|
22068
|
+
/** Runs immediately when an hour, minute, or meridiem choice is selected. */
|
|
22069
|
+
onChange?: (value: TimeValue | null) => void;
|
|
19646
22070
|
/**
|
|
19647
|
-
*
|
|
22071
|
+
* Display cycle; emitted values always use 24-hour hours.
|
|
22072
|
+
*
|
|
22073
|
+
* @default '12'
|
|
19648
22074
|
*/
|
|
19649
|
-
|
|
19650
|
-
|
|
22075
|
+
timeFormat?: TimeFormat;
|
|
22076
|
+
/**
|
|
22077
|
+
* Interval used to generate minute choices.
|
|
22078
|
+
*
|
|
22079
|
+
* @default 1
|
|
22080
|
+
*/
|
|
22081
|
+
minuteStep?: number;
|
|
22082
|
+
/** Prevents opening or selection and returns only the trigger. */
|
|
22083
|
+
disabled?: boolean;
|
|
22084
|
+
};
|
|
19651
22085
|
|
|
19652
|
-
|
|
19653
|
-
|
|
19654
|
-
|
|
22086
|
+
/**
|
|
22087
|
+
* Combines keyboard time entry with hour and minute selection columns.
|
|
22088
|
+
*
|
|
22089
|
+
* Focusing the segmented input opens the menu. Input and menu interactions
|
|
22090
|
+
* update the same value, normalized to 24-hour hours.
|
|
22091
|
+
*
|
|
22092
|
+
* @example
|
|
22093
|
+
* ```tsx
|
|
22094
|
+
* <TimePicker label="Start time" value={time} onChange={setTime} />
|
|
22095
|
+
* ```
|
|
22096
|
+
*/
|
|
22097
|
+
export declare const TimePicker: (props: TimePickerProps) => JSX.Element;
|
|
19655
22098
|
|
|
19656
|
-
|
|
19657
|
-
|
|
19658
|
-
|
|
19659
|
-
|
|
19660
|
-
|
|
19661
|
-
|
|
19662
|
-
|
|
19663
|
-
|
|
19664
|
-
|
|
19665
|
-
/** Called when end time changes */
|
|
19666
|
-
onEndChange?: (value: TimeValue | null) => void;
|
|
19667
|
-
hourCycle?: HourCycle;
|
|
22099
|
+
/** Props for {@link TimePicker}, combining segmented entry and a time menu. */
|
|
22100
|
+
export declare type TimePickerProps = Pick<TimeInputProps, 'id' | 'label' | 'before' | 'after' | 'iconBefore' | 'iconAfter' | 'error' | 'disabled' | 'invalid' | 'timeFormat' | 'size'> & {
|
|
22101
|
+
/** Controlled 24-hour time value. Pair with `onChange`. */
|
|
22102
|
+
value?: TimeValue | null;
|
|
22103
|
+
/** Initial time when `value` is not provided. */
|
|
22104
|
+
defaultValue?: TimeValue | null;
|
|
22105
|
+
/** Runs when typing or menu selection commits a time. */
|
|
22106
|
+
onChange?: (value: TimeValue | null) => void;
|
|
22107
|
+
/** Minute interval used by segmented stepping and menu choices. */
|
|
19668
22108
|
minuteStep?: number;
|
|
19669
|
-
|
|
22109
|
+
/** Floating UI placement of the time menu. */
|
|
22110
|
+
placement?: Placement;
|
|
22111
|
+
/** Controlled menu visibility. Pair with `onOpenChange`. */
|
|
22112
|
+
open?: boolean;
|
|
22113
|
+
/**
|
|
22114
|
+
* Initial menu visibility when `open` is not provided.
|
|
22115
|
+
*
|
|
22116
|
+
* @default false
|
|
22117
|
+
*/
|
|
22118
|
+
defaultOpen?: boolean;
|
|
22119
|
+
/** Runs when interaction requests that the menu open or close. */
|
|
22120
|
+
onOpenChange?: (open: boolean) => void;
|
|
22121
|
+
};
|
|
22122
|
+
|
|
22123
|
+
/**
|
|
22124
|
+
* Renders start and end times as two coordinated segmented fields.
|
|
22125
|
+
*
|
|
22126
|
+
* Values remain normalized to 24-hour time regardless of display cycle. Use
|
|
22127
|
+
* `TimeRangePicker` when a menu and Apply/Cancel flow are also needed.
|
|
22128
|
+
*
|
|
22129
|
+
* @example
|
|
22130
|
+
* ```tsx
|
|
22131
|
+
* <TimeRangeInput startLabel="Opens" endLabel="Closes" />
|
|
22132
|
+
* ```
|
|
22133
|
+
*/
|
|
22134
|
+
export declare const TimeRangeInput: (props: TimeRangeInputProps) => JSX.Element;
|
|
22135
|
+
|
|
22136
|
+
/** Props for {@link TimeRangeInput}, including range state and field slots. */
|
|
22137
|
+
export declare type TimeRangeInputProps = Omit<BoxProps, keyof SegmentedFieldsVariantProps | 'children'> & Omit<SegmentedFieldsVariantProps, 'field' | 'range' | 'before' | 'after'> & {
|
|
22138
|
+
/** Identifier applied to the range container. */
|
|
22139
|
+
id?: string;
|
|
22140
|
+
/** Controlled start and end times. Pair with `onChange`. */
|
|
22141
|
+
value?: TimeRangeValue | null;
|
|
22142
|
+
/** Initial time range when `value` is not provided. */
|
|
22143
|
+
defaultValue?: TimeRangeValue | null;
|
|
22144
|
+
/** Runs whenever either endpoint becomes complete or is cleared. */
|
|
22145
|
+
onChange?: (value: TimeRangeValue | null) => void;
|
|
22146
|
+
/** Display cycle shared by both endpoints. */
|
|
22147
|
+
timeFormat?: TimeFormat;
|
|
22148
|
+
/** Minute increment used by keyboard stepping. */
|
|
22149
|
+
minuteStep?: number;
|
|
22150
|
+
/** Accessible name for the start-time segments. */
|
|
22151
|
+
startLabel?: string;
|
|
22152
|
+
/** Accessible name for the end-time segments. */
|
|
22153
|
+
endLabel?: string;
|
|
22154
|
+
/** Content before the range. Takes precedence over `iconBefore`. */
|
|
22155
|
+
before?: ReactNode;
|
|
22156
|
+
/** Content after the range. Takes precedence over `iconAfter`. */
|
|
22157
|
+
after?: ReactNode;
|
|
22158
|
+
/** Legacy icon rendered before the range when `before` is absent. */
|
|
22159
|
+
iconBefore?: IconNamesList;
|
|
22160
|
+
/** Legacy icon rendered after the range when `after` is absent. */
|
|
22161
|
+
iconAfter?: IconNamesList;
|
|
22162
|
+
/** Applies error styling. Overrides field context when provided. */
|
|
19670
22163
|
error?: boolean;
|
|
19671
|
-
/**
|
|
19672
|
-
|
|
19673
|
-
/**
|
|
19674
|
-
|
|
22164
|
+
/** Prevents editing both endpoints. Overrides field context when provided. */
|
|
22165
|
+
disabled?: boolean;
|
|
22166
|
+
/** Applies invalid styling. Overrides field context when provided. */
|
|
22167
|
+
invalid?: boolean;
|
|
22168
|
+
/** Reflected through to the segmented fields — lets a wrapping Menu/Picker show "active anchor" styling */
|
|
22169
|
+
open?: boolean;
|
|
22170
|
+
/** Forwarded to both segmented fields — see SegmentedTime's onFocusWithin */
|
|
22171
|
+
onFocusWithin?: () => void;
|
|
22172
|
+
/** Forwarded to both segmented fields — see SegmentedTime's onBlurWithin */
|
|
22173
|
+
onBlurWithin?: (relatedTarget: Node | null) => void;
|
|
22174
|
+
};
|
|
22175
|
+
|
|
22176
|
+
/**
|
|
22177
|
+
* Selects a start and end time from parallel selection columns.
|
|
22178
|
+
*
|
|
22179
|
+
* Changes remain a draft until Apply is pressed. Cancel restores the
|
|
22180
|
+
* committed `value`; Apply is unavailable until both endpoints are complete.
|
|
22181
|
+
*
|
|
22182
|
+
* @example
|
|
22183
|
+
* ```tsx
|
|
22184
|
+
* <TimeRangeMenu
|
|
22185
|
+
* trigger={<Button>Choose hours</Button>}
|
|
22186
|
+
* value={range}
|
|
22187
|
+
* onChange={setRange}
|
|
22188
|
+
* />
|
|
22189
|
+
* ```
|
|
22190
|
+
*/
|
|
22191
|
+
export declare const TimeRangeMenu: (props: TimeRangeMenuProps) => any;
|
|
22192
|
+
|
|
22193
|
+
/** Props for {@link TimeRangeMenu}, including committed range and display. */
|
|
22194
|
+
export declare type TimeRangeMenuProps = Omit<MenuProps, 'children' | 'onChange' | 'value'> & {
|
|
22195
|
+
/** Committed start and end times used to initialize the menu draft. */
|
|
22196
|
+
value?: TimeRangeValue | null;
|
|
22197
|
+
/** Commits the complete draft when Apply is pressed; Cancel discards it. */
|
|
22198
|
+
onChange?: (value: TimeRangeValue | null) => void;
|
|
22199
|
+
/** Display cycle shared by both endpoints. */
|
|
22200
|
+
timeFormat?: TimeFormat;
|
|
22201
|
+
/** Interval used to generate minute choices. */
|
|
22202
|
+
minuteStep?: number;
|
|
22203
|
+
/** Prevents opening or selection and returns only the trigger. */
|
|
22204
|
+
disabled?: boolean;
|
|
22205
|
+
/** Accessible prefix for the start-time columns. */
|
|
22206
|
+
startLabel?: string;
|
|
22207
|
+
/** Accessible prefix for the end-time columns. */
|
|
22208
|
+
endLabel?: string;
|
|
22209
|
+
};
|
|
22210
|
+
|
|
22211
|
+
/**
|
|
22212
|
+
* Combines segmented range entry with start and end time-selection columns.
|
|
22213
|
+
*
|
|
22214
|
+
* Typed endpoints commit immediately. Menu choices remain a draft until Apply
|
|
22215
|
+
* is pressed; Cancel restores the currently committed range.
|
|
22216
|
+
*
|
|
22217
|
+
* @example
|
|
22218
|
+
* ```tsx
|
|
22219
|
+
* <TimeRangePicker startLabel="Opens" endLabel="Closes" />
|
|
22220
|
+
* ```
|
|
22221
|
+
*/
|
|
22222
|
+
export declare const TimeRangePicker: (props: TimeRangePickerProps) => JSX.Element;
|
|
22223
|
+
|
|
22224
|
+
/** Props for {@link TimeRangePicker}, combining range input and time menu. */
|
|
22225
|
+
export declare type TimeRangePickerProps = Pick<TimeRangeInputProps, 'id' | 'startLabel' | 'endLabel' | 'before' | 'after' | 'iconBefore' | 'iconAfter' | 'error' | 'disabled' | 'invalid' | 'timeFormat' | 'size'> & {
|
|
22226
|
+
/** Controlled start and end times. Pair with `onChange`. */
|
|
22227
|
+
value?: TimeRangeValue | null;
|
|
22228
|
+
/** Initial time range when `value` is not provided. */
|
|
22229
|
+
defaultValue?: TimeRangeValue | null;
|
|
22230
|
+
/** Runs for typed endpoint changes and applied menu drafts. */
|
|
22231
|
+
onChange?: (value: TimeRangeValue | null) => void;
|
|
22232
|
+
/** Minute interval used by segmented stepping and menu choices. */
|
|
22233
|
+
minuteStep?: number;
|
|
22234
|
+
/** Floating UI placement of the time menu. */
|
|
22235
|
+
placement?: Placement;
|
|
22236
|
+
/** Controlled menu visibility. Pair with `onOpenChange`. */
|
|
22237
|
+
open?: boolean;
|
|
22238
|
+
/**
|
|
22239
|
+
* Initial menu visibility when `open` is not provided.
|
|
22240
|
+
*
|
|
22241
|
+
* @default false
|
|
22242
|
+
*/
|
|
22243
|
+
defaultOpen?: boolean;
|
|
22244
|
+
/** Runs when interaction requests that the menu open or close. */
|
|
22245
|
+
onOpenChange?: (open: boolean) => void;
|
|
19675
22246
|
};
|
|
19676
22247
|
|
|
19677
|
-
|
|
22248
|
+
/** A committed time range — either endpoint may be null while only partially filled in. */
|
|
22249
|
+
export declare interface TimeRangeValue {
|
|
22250
|
+
start: TimeValue | null;
|
|
22251
|
+
end: TimeValue | null;
|
|
22252
|
+
}
|
|
22253
|
+
|
|
22254
|
+
/** A time of day. Hour is always 24-hour (0-23) internally, regardless of display cycle. */
|
|
22255
|
+
export declare interface TimeValue {
|
|
19678
22256
|
hour: number;
|
|
19679
22257
|
minute: number;
|
|
19680
22258
|
}
|
|
19681
22259
|
|
|
19682
22260
|
/**
|
|
19683
|
-
*
|
|
22261
|
+
* A native checkbox styled as an on/off toggle, without a visible label.
|
|
22262
|
+
*
|
|
22263
|
+
* Use {@link ToggleInput} when a visible label is needed. `Toggle` renders an
|
|
22264
|
+
* `<input type="checkbox">`, not an ARIA `switch`; use `checked` with
|
|
22265
|
+
* `onChange` for controlled state or `defaultChecked` for uncontrolled state.
|
|
22266
|
+
* Provide `id` and an associated label so the control has an accessible name.
|
|
19684
22267
|
*
|
|
19685
22268
|
* @example
|
|
19686
|
-
*
|
|
22269
|
+
* ```tsx
|
|
22270
|
+
* <Toggle name="marketing" defaultChecked />
|
|
22271
|
+
* ```
|
|
19687
22272
|
*
|
|
19688
22273
|
* @example
|
|
22274
|
+
* ```tsx
|
|
19689
22275
|
* const [checked, setChecked] = useState(false);
|
|
19690
|
-
* <Toggle checked={checked} onChange={(
|
|
22276
|
+
* <Toggle name="marketing" checked={checked} onChange={(event) => setChecked(event.target.checked)} />
|
|
22277
|
+
* ```
|
|
19691
22278
|
*/
|
|
19692
22279
|
export declare const Toggle: (props: ToggleProps) => JSX.Element;
|
|
19693
22280
|
|
|
19694
22281
|
/**
|
|
19695
|
-
*
|
|
22282
|
+
* Native change event emitted by {@link Toggle}.
|
|
19696
22283
|
* @example
|
|
19697
22284
|
* const handleChange: ToggleChangeHandler = (e) => setChecked(e.target.checked);
|
|
19698
22285
|
*/
|
|
19699
|
-
declare type ToggleChangeEvent = ChangeEvent<HTMLInputElement>;
|
|
22286
|
+
export declare type ToggleChangeEvent = ChangeEvent<HTMLInputElement>;
|
|
19700
22287
|
|
|
19701
22288
|
/**
|
|
19702
|
-
*
|
|
22289
|
+
* Handler for a {@link Toggle} native change event.
|
|
19703
22290
|
* @example
|
|
19704
22291
|
* const handleChange: ToggleChangeHandler = (e) => setChecked(e.target.checked);
|
|
19705
22292
|
*/
|
|
19706
|
-
declare type ToggleChangeHandler = (e: ToggleChangeEvent) => void;
|
|
22293
|
+
export declare type ToggleChangeHandler = (e: ToggleChangeEvent) => void;
|
|
19707
22294
|
|
|
22295
|
+
/**
|
|
22296
|
+
* A toggle paired with a clickable label.
|
|
22297
|
+
*
|
|
22298
|
+
* Use it for binary settings with a visible text label. It generates an ID when
|
|
22299
|
+
* needed and associates that ID with the label. Its state and field-context
|
|
22300
|
+
* precedence match {@link Toggle}.
|
|
22301
|
+
*
|
|
22302
|
+
* @example
|
|
22303
|
+
* ```tsx
|
|
22304
|
+
* <ToggleInput name="emailUpdates" defaultChecked>
|
|
22305
|
+
* Email updates
|
|
22306
|
+
* </ToggleInput>
|
|
22307
|
+
* ```
|
|
22308
|
+
*/
|
|
19708
22309
|
export declare const ToggleInput: (props: ToggleInputProps) => JSX.Element;
|
|
19709
22310
|
|
|
19710
|
-
|
|
19711
|
-
|
|
19712
|
-
|
|
22311
|
+
/** Props for {@link ToggleInput}, a labelled {@link Toggle}. */
|
|
22312
|
+
export declare type ToggleInputProps = Omit<BoxProps, keyof ToggleInputVariantProps> & ToggleInputVariantProps & {
|
|
22313
|
+
/** Form field name submitted when the toggle is on. */ name: string;
|
|
22314
|
+
/** Controlled on/off state. Pair with `onChange`; do not combine with `defaultChecked`. */ checked?: boolean;
|
|
22315
|
+
/** Initial uncontrolled on/off state; later updates are ignored. */
|
|
22316
|
+
/** @default false */
|
|
19713
22317
|
defaultChecked?: boolean;
|
|
19714
|
-
onChange?: ToggleChangeHandler;
|
|
19715
|
-
id?: string;
|
|
19716
|
-
error?: boolean;
|
|
19717
|
-
invalid?: boolean;
|
|
19718
|
-
disabled?: boolean;
|
|
19719
|
-
children?: string | ReactNode;
|
|
22318
|
+
/** Runs when the contained native checkbox changes. */ onChange?: ToggleChangeHandler;
|
|
22319
|
+
/** Input ID. A stable ID is generated when omitted and associated with the label. */ id?: string;
|
|
22320
|
+
/** Applies error styling, overriding field context. */ error?: boolean;
|
|
22321
|
+
/** Marks the toggle invalid, overriding field context. */ invalid?: boolean;
|
|
22322
|
+
/** Disables the label and toggle, overriding field context. */ disabled?: boolean;
|
|
22323
|
+
/** Visible label content. */ children?: string | ReactNode;
|
|
19720
22324
|
};
|
|
19721
22325
|
|
|
19722
22326
|
declare interface ToggleInputVariant {
|
|
@@ -19727,15 +22331,18 @@ declare type ToggleInputVariantProps = {
|
|
|
19727
22331
|
[key in keyof ToggleInputVariant]?: ConditionalValue<ToggleInputVariant[key]> | undefined
|
|
19728
22332
|
}
|
|
19729
22333
|
|
|
19730
|
-
|
|
19731
|
-
|
|
19732
|
-
|
|
22334
|
+
/** Props for {@link Toggle}, the unlabelled native checkbox styled as a switch. */
|
|
22335
|
+
export declare type ToggleProps = Omit<BoxProps, 'checked' | 'defaultChecked' | 'onChange' | keyof ToggleVariantProps> & ToggleVariantProps & {
|
|
22336
|
+
/** Form field name submitted when the toggle is on. */ name: string;
|
|
22337
|
+
/** Controlled on/off state. Pair with `onChange`; do not combine with `defaultChecked`. */ checked?: boolean;
|
|
22338
|
+
/** Initial uncontrolled on/off state; later updates are ignored. */
|
|
22339
|
+
/** @default false */
|
|
19733
22340
|
defaultChecked?: boolean;
|
|
19734
|
-
onChange?: ToggleChangeHandler;
|
|
19735
|
-
id?: string;
|
|
19736
|
-
error?: boolean;
|
|
19737
|
-
invalid?: boolean;
|
|
19738
|
-
disabled?: boolean;
|
|
22341
|
+
/** Runs for the native checkbox change event; read the next state from `event.target.checked`. */ onChange?: ToggleChangeHandler;
|
|
22342
|
+
/** Native input ID used by an external label. */ id?: string;
|
|
22343
|
+
/** Applies error styling, overriding field context. */ error?: boolean;
|
|
22344
|
+
/** Marks the native checkbox invalid with `aria-invalid`, overriding field context. */ invalid?: boolean;
|
|
22345
|
+
/** Disables interaction, overriding field context. */ disabled?: boolean;
|
|
19739
22346
|
};
|
|
19740
22347
|
|
|
19741
22348
|
declare interface ToggleVariant {
|
|
@@ -19773,26 +22380,52 @@ declare type Tokens = {
|
|
|
19773
22380
|
breakpoints: BreakpointToken
|
|
19774
22381
|
} & { [token: string]: never }
|
|
19775
22382
|
|
|
22383
|
+
/**
|
|
22384
|
+
* Shows nonessential contextual text for a trigger on hover and keyboard focus.
|
|
22385
|
+
*
|
|
22386
|
+
* The trigger is wrapped in a span and linked with `aria-describedby`; Escape
|
|
22387
|
+
* dismisses the portalled tooltip. Do not use a tooltip as the only accessible
|
|
22388
|
+
* name or instruction for an interactive control.
|
|
22389
|
+
*
|
|
22390
|
+
* @example
|
|
22391
|
+
* ```tsx
|
|
22392
|
+
* <Tooltip text="Copies the link"><IconButton iconName="copy" altText="Copy link" /></Tooltip>
|
|
22393
|
+
* ```
|
|
22394
|
+
*/
|
|
19776
22395
|
export declare const Tooltip: (props: TooltipProps) => JSX.Element;
|
|
19777
22396
|
|
|
19778
|
-
|
|
19779
|
-
|
|
22397
|
+
/** Props for {@link Tooltip}, nonessential contextual text shown on hover or focus. */
|
|
22398
|
+
export declare type TooltipProps = Omit<BoxProps, keyof TooltipVariantProps | 'children'> & TooltipVariantProps & {
|
|
22399
|
+
/** Text displayed in the tooltip body. Use an accessible label instead when this is essential control information. */
|
|
19780
22400
|
text: string;
|
|
19781
|
-
/** Optional
|
|
22401
|
+
/** Optional title displayed above the tooltip body. */
|
|
19782
22402
|
title?: string;
|
|
19783
|
-
/**
|
|
22403
|
+
/**
|
|
22404
|
+
* Shows the arrow pointing at the trigger.
|
|
22405
|
+
* @default true
|
|
22406
|
+
*/
|
|
19784
22407
|
caret?: boolean;
|
|
19785
|
-
/**
|
|
22408
|
+
/**
|
|
22409
|
+
* Preferred placement relative to the trigger. The overlay can flip when it does not fit.
|
|
22410
|
+
* @default 'bottom'
|
|
22411
|
+
*/
|
|
19786
22412
|
placement?: Placement;
|
|
19787
|
-
/**
|
|
22413
|
+
/**
|
|
22414
|
+
* Gap between trigger and tooltip, in pixels.
|
|
22415
|
+
* @default 8
|
|
22416
|
+
*/
|
|
19788
22417
|
offset?: number;
|
|
19789
|
-
/** Hover open/close delay in
|
|
22418
|
+
/** Hover open/close delay in milliseconds, or separate `open` and `close` delays. */
|
|
19790
22419
|
delay?: number | {
|
|
19791
22420
|
open: number;
|
|
19792
22421
|
close: number;
|
|
19793
22422
|
};
|
|
19794
|
-
/** Trigger
|
|
22423
|
+
/** Trigger content, wrapped in an inline-flex span to receive floating interaction props. */
|
|
19795
22424
|
children?: ReactNode;
|
|
22425
|
+
/**
|
|
22426
|
+
* Tooltip recipe size.
|
|
22427
|
+
* @default 'md'
|
|
22428
|
+
*/
|
|
19796
22429
|
size?: TooltipVariantProps['size'];
|
|
19797
22430
|
};
|
|
19798
22431
|
|
|
@@ -19818,24 +22451,94 @@ declare interface UnstyledProps {
|
|
|
19818
22451
|
unstyled?: boolean | undefined
|
|
19819
22452
|
}
|
|
19820
22453
|
|
|
22454
|
+
/** Returns the nearest `ChipGroup` context, or `null` when a chip is not grouped. */
|
|
19821
22455
|
export declare const useChipGroup: () => ChipGroupContextValue | null;
|
|
19822
22456
|
|
|
22457
|
+
/**
|
|
22458
|
+
* Reports whether a referenced element meets a Cetec container-size threshold.
|
|
22459
|
+
*
|
|
22460
|
+
* The ref must point to a mounted `HTMLElement`. Returns `false` during server
|
|
22461
|
+
* rendering or until the element is available. It uses a container-query API
|
|
22462
|
+
* when the element supplies one, otherwise observes size changes with
|
|
22463
|
+
* `ResizeObserver`; sizes are compared in `rem` using the root font size.
|
|
22464
|
+
*
|
|
22465
|
+
* @param containerRef - Ref for the element whose width is measured.
|
|
22466
|
+
* @param size - Cetec container-size token such as `lg`.
|
|
22467
|
+
* @param direction - Whether the width must meet or remain below the threshold.
|
|
22468
|
+
* @default direction 'min'
|
|
22469
|
+
* @example
|
|
22470
|
+
* ```tsx
|
|
22471
|
+
* const panelRef = useRef<HTMLDivElement>(null);
|
|
22472
|
+
* const isWide = useContainerQuery(panelRef, 'lg');
|
|
22473
|
+
* ```
|
|
22474
|
+
*/
|
|
19823
22475
|
export declare function useContainerQuery(containerRef: RefObject<HTMLElement>, size: ContainerSizeKey, direction?: QueryDirection_2): boolean;
|
|
19824
22476
|
|
|
22477
|
+
/**
|
|
22478
|
+
* Returns the sprite path supplied by the nearest {@link IconProvider}.
|
|
22479
|
+
* Falls back to `/sprite.svg` when no provider is present.
|
|
22480
|
+
*/
|
|
19825
22481
|
export declare const useIconConfig: () => IconConfigContextValue;
|
|
19826
22482
|
|
|
22483
|
+
/**
|
|
22484
|
+
* Returns configuration from the nearest {@link ListProvider}, or compact,
|
|
22485
|
+
* empty-query, no-highlighting defaults when no provider is present.
|
|
22486
|
+
*/
|
|
19827
22487
|
export declare const useListContext: () => ListContextValue;
|
|
19828
22488
|
|
|
22489
|
+
/**
|
|
22490
|
+
* Reports whether the viewport matches a Cetec breakpoint media query.
|
|
22491
|
+
*
|
|
22492
|
+
* Returns `false` during server rendering. The hook subscribes to browser
|
|
22493
|
+
* media-query changes after mounting. Use `min` for the breakpoint and wider,
|
|
22494
|
+
* or `max` for the generated maximum-width query.
|
|
22495
|
+
*
|
|
22496
|
+
* @param breakpoint - Cetec breakpoint token such as `md`.
|
|
22497
|
+
* @param direction - Whether to create a minimum- or maximum-width query.
|
|
22498
|
+
* @default direction 'min'
|
|
22499
|
+
* @example
|
|
22500
|
+
* ```tsx
|
|
22501
|
+
* const isDesktop = useMediaQuery('lg');
|
|
22502
|
+
* ```
|
|
22503
|
+
*/
|
|
19829
22504
|
export declare function useMediaQuery(breakpoint: BreakpointKey, direction?: QueryDirection): boolean;
|
|
19830
22505
|
|
|
22506
|
+
/** Returns the active menu filtering configuration, or the default configuration outside a `Menu`. */
|
|
19831
22507
|
export declare const useMenuFilterContext: () => MenuFilterContextValue;
|
|
19832
22508
|
|
|
22509
|
+
/** Returns roving-focus state for the current menu level, or `null` when none is provided. */
|
|
19833
22510
|
export declare const useMenuListContext: () => MenuListContextValue | null;
|
|
19834
22511
|
|
|
22512
|
+
/**
|
|
22513
|
+
* Returns the enclosing menu's shared behavior.
|
|
22514
|
+
*
|
|
22515
|
+
* Must be called below `Menu` or `MenuProvider`; otherwise it throws.
|
|
22516
|
+
*/
|
|
19835
22517
|
export declare const useMenuRootContext: () => MenuRootContextValue;
|
|
19836
22518
|
|
|
22519
|
+
/**
|
|
22520
|
+
* Returns state and close behavior from the closest parent {@link Modal}.
|
|
22521
|
+
*
|
|
22522
|
+
* Call only in a modal descendant; it throws when no modal context is present.
|
|
22523
|
+
*
|
|
22524
|
+
* @example
|
|
22525
|
+
* ```tsx
|
|
22526
|
+
* const { onClose } = useModalContext();
|
|
22527
|
+
* ```
|
|
22528
|
+
*/
|
|
19837
22529
|
export declare const useModalContext: () => ModalContextValue;
|
|
19838
22530
|
|
|
22531
|
+
/**
|
|
22532
|
+
* Returns the active color mode and a function to persist a new preference.
|
|
22533
|
+
*
|
|
22534
|
+
* Must be called beneath {@link ThemeProvider}; throws when no provider is
|
|
22535
|
+
* available.
|
|
22536
|
+
*
|
|
22537
|
+
* @example
|
|
22538
|
+
* ```tsx
|
|
22539
|
+
* const { theme, setTheme } = useTheme();
|
|
22540
|
+
* ```
|
|
22541
|
+
*/
|
|
19839
22542
|
export declare function useTheme(): ThemeContextType;
|
|
19840
22543
|
|
|
19841
22544
|
declare type UtilitySizeToken = "full" | "half" | "min" | "max" | "fit" | "prose" | "auto"
|
|
@@ -21973,6 +24676,31 @@ declare interface VendorShorthandProperties<TLength = (string & {}) | 0, TTime =
|
|
|
21973
24676
|
|
|
21974
24677
|
declare type VendorShorthandPropertiesFallback<TLength = (string & {}) | 0, TTime = string & {}> = Fallback<VendorShorthandProperties<TLength, TTime>>;
|
|
21975
24678
|
|
|
24679
|
+
declare type ViewDate = {
|
|
24680
|
+
year: number;
|
|
24681
|
+
month: number;
|
|
24682
|
+
};
|
|
24683
|
+
|
|
24684
|
+
declare type ViewDate_2 = {
|
|
24685
|
+
year: number;
|
|
24686
|
+
month: number;
|
|
24687
|
+
};
|
|
24688
|
+
|
|
24689
|
+
declare type ViewDate_3 = {
|
|
24690
|
+
year: number;
|
|
24691
|
+
month: number;
|
|
24692
|
+
};
|
|
24693
|
+
|
|
24694
|
+
declare type ViewDate_4 = {
|
|
24695
|
+
year: number;
|
|
24696
|
+
month: number;
|
|
24697
|
+
};
|
|
24698
|
+
|
|
24699
|
+
declare type ViewDate_5 = {
|
|
24700
|
+
year: number;
|
|
24701
|
+
month: number;
|
|
24702
|
+
};
|
|
24703
|
+
|
|
21976
24704
|
declare type WhitespaceImportant = ` ${ImportantMark}`
|
|
21977
24705
|
|
|
21978
24706
|
declare type WithColorOpacityModifier<T> = [T] extends [string] ? `${T}/${string}` & { __colorOpacityModifier?: true } : never
|