@mirror-physics/fractal-ui 0.2.0-next.8 → 0.2.0-next.82
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -0
- package/dist/chunk-UNMOINWV.js +339 -0
- package/dist/chunk-UNMOINWV.js.map +1 -0
- package/dist/column-editor.cjs +377 -0
- package/dist/column-editor.cjs.map +1 -0
- package/dist/column-editor.css +36 -0
- package/dist/column-editor.css.map +1 -0
- package/dist/column-editor.d.cts +20 -0
- package/dist/column-editor.d.ts +20 -0
- package/dist/column-editor.js +7 -0
- package/dist/column-editor.js.map +1 -0
- package/dist/index.cjs +2716 -385
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +3200 -829
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +476 -22
- package/dist/index.d.ts +476 -22
- package/dist/index.js +2478 -515
- package/dist/index.js.map +1 -1
- package/dist/lattice-FAYE5KWW.svg +3 -0
- package/dist/tokens.css +114 -9
- package/package.json +21 -4
package/dist/index.d.cts
CHANGED
|
@@ -1,16 +1,22 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { ReactNode } from 'react';
|
|
2
|
+
import { HTMLAttributes, ReactNode, CSSProperties, ReactElement } from 'react';
|
|
3
3
|
import { ClassValue } from 'clsx';
|
|
4
|
+
export { ColumnEditor, ColumnEditorItem, ColumnEditorProps } from './column-editor.cjs';
|
|
5
|
+
|
|
6
|
+
/** Shared density scale for single-line controls and their labels. */
|
|
7
|
+
type ControlSize = 'sm' | 'md' | 'lg' | 'xl';
|
|
4
8
|
|
|
5
9
|
type ButtonType = 'primary' | 'secondary' | 'ghost' | 'danger';
|
|
6
|
-
type ButtonSize =
|
|
10
|
+
type ButtonSize = ControlSize;
|
|
7
11
|
type ButtonColor = 'blue' | 'pink' | 'orange' | 'green';
|
|
8
12
|
interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
9
13
|
/** Visual hierarchy. Primary = strongest action, Secondary = neutral bordered, Ghost = minimal, Danger = destructive. */
|
|
10
14
|
buttonType?: ButtonType;
|
|
11
|
-
/**
|
|
15
|
+
/** Shared visual density; takes precedence over the buttonSize alias. */
|
|
16
|
+
controlSize?: ControlSize;
|
|
17
|
+
/** Backward-compatible alias for controlSize. */
|
|
12
18
|
buttonSize?: ButtonSize;
|
|
13
|
-
/**
|
|
19
|
+
/** Explicit primary color preset. Omit to inherit the application's primary tokens. */
|
|
14
20
|
color?: ButtonColor;
|
|
15
21
|
/** Icon element. */
|
|
16
22
|
icon?: React.ReactNode;
|
|
@@ -21,6 +27,48 @@ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
|
21
27
|
}
|
|
22
28
|
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
23
29
|
|
|
30
|
+
interface CodeBlockProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'onChange'> {
|
|
31
|
+
/** Code or structured text displayed by the component. */
|
|
32
|
+
value: string;
|
|
33
|
+
/** Language name or common alias, such as `json`, `typescript`, `python`, or `bash`. */
|
|
34
|
+
language?: string;
|
|
35
|
+
/** Optional file name. Used for display and language detection when `language` is omitted. */
|
|
36
|
+
fileName?: string;
|
|
37
|
+
/** Optional title shown in the toolbar. */
|
|
38
|
+
label?: ReactNode;
|
|
39
|
+
/** Enables editing. Read-only viewer mode is the default. */
|
|
40
|
+
editable?: boolean;
|
|
41
|
+
/** Called when an editable block changes. */
|
|
42
|
+
onChange?: (value: string) => void;
|
|
43
|
+
/** Shows line numbers and a fold gutter. */
|
|
44
|
+
lineNumbers?: boolean;
|
|
45
|
+
/** Wraps long lines instead of requiring horizontal scrolling. */
|
|
46
|
+
wrap?: boolean;
|
|
47
|
+
/** Shows a copy action in the toolbar. */
|
|
48
|
+
copyable?: boolean;
|
|
49
|
+
/** Accessible name for the editing or viewing surface. */
|
|
50
|
+
ariaLabel?: string;
|
|
51
|
+
/** CodeMirror height constraints. Any valid CSS length is accepted. */
|
|
52
|
+
height?: string;
|
|
53
|
+
minHeight?: string;
|
|
54
|
+
maxHeight?: string;
|
|
55
|
+
placeholder?: string;
|
|
56
|
+
autoFocus?: boolean;
|
|
57
|
+
}
|
|
58
|
+
declare function CodeBlock({ value, language, fileName, label, editable, onChange, lineNumbers, wrap, copyable, ariaLabel, height, minHeight, maxHeight, placeholder, autoFocus, className, ...props }: CodeBlockProps): React.JSX.Element;
|
|
59
|
+
|
|
60
|
+
interface BreadcrumbItem {
|
|
61
|
+
label: React.ReactNode;
|
|
62
|
+
href?: string;
|
|
63
|
+
onClick?: React.MouseEventHandler<HTMLAnchorElement>;
|
|
64
|
+
}
|
|
65
|
+
interface BreadcrumbsProps extends Omit<React.HTMLAttributes<HTMLElement>, 'children'> {
|
|
66
|
+
items: BreadcrumbItem[];
|
|
67
|
+
ariaLabel?: string;
|
|
68
|
+
separator?: React.ReactNode;
|
|
69
|
+
}
|
|
70
|
+
declare function Breadcrumbs({ items, ariaLabel, separator, className, ...props }: BreadcrumbsProps): React.JSX.Element | null;
|
|
71
|
+
|
|
24
72
|
declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
25
73
|
declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
26
74
|
declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
|
|
@@ -57,10 +105,59 @@ interface PromptGridProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
57
105
|
declare const PromptGrid: React.ForwardRefExoticComponent<PromptGridProps & React.RefAttributes<HTMLDivElement>>;
|
|
58
106
|
|
|
59
107
|
interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {
|
|
108
|
+
/** Visual density; native `size` still controls the character-width hint. */
|
|
109
|
+
controlSize?: ControlSize;
|
|
110
|
+
/** Persistent title that floats into the border on focus or when filled. Search uses it only as an accessible name. */
|
|
111
|
+
fieldLabel?: string;
|
|
60
112
|
}
|
|
61
113
|
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
62
114
|
|
|
115
|
+
type TableSearchType = 'text' | 'glob';
|
|
116
|
+
interface TableSearchProps extends Omit<InputProps, 'type'> {
|
|
117
|
+
/** Controls the search affordance. Filtering remains controlled by the table's data owner. */
|
|
118
|
+
searchType?: TableSearchType;
|
|
119
|
+
inputClassName?: string;
|
|
120
|
+
}
|
|
121
|
+
declare const TableSearch: React.ForwardRefExoticComponent<TableSearchProps & React.RefAttributes<HTMLInputElement>>;
|
|
122
|
+
|
|
123
|
+
interface NumberInputProps extends Omit<InputProps, 'type'> {
|
|
124
|
+
unit?: string;
|
|
125
|
+
}
|
|
126
|
+
declare function NumberInput({ unit, controlSize, className, value, defaultValue, disabled, readOnly, min, max, ...props }: NumberInputProps): React.JSX.Element;
|
|
127
|
+
|
|
128
|
+
type SliderBaseProps = {
|
|
129
|
+
min?: number;
|
|
130
|
+
max?: number;
|
|
131
|
+
step?: number;
|
|
132
|
+
disabled?: boolean;
|
|
133
|
+
className?: string;
|
|
134
|
+
showValues?: boolean;
|
|
135
|
+
formatValue?: (value: number) => React.ReactNode;
|
|
136
|
+
};
|
|
137
|
+
type SingleSliderProps = SliderBaseProps & {
|
|
138
|
+
knobs?: 1;
|
|
139
|
+
value: number;
|
|
140
|
+
onValueChange: (value: number) => void;
|
|
141
|
+
ariaLabel?: string;
|
|
142
|
+
};
|
|
143
|
+
type RangeSliderProps = SliderBaseProps & {
|
|
144
|
+
knobs: 2;
|
|
145
|
+
value: [number, number];
|
|
146
|
+
onValueChange: (value: [number, number]) => void;
|
|
147
|
+
lowerAriaLabel?: string;
|
|
148
|
+
upperAriaLabel?: string;
|
|
149
|
+
};
|
|
150
|
+
type SliderProps = SingleSliderProps | RangeSliderProps;
|
|
151
|
+
declare function Slider(props: SliderProps): React.JSX.Element;
|
|
152
|
+
|
|
153
|
+
interface PasswordInputProps extends Omit<InputProps, 'type'> {
|
|
154
|
+
showPasswordLabel?: string;
|
|
155
|
+
hidePasswordLabel?: string;
|
|
156
|
+
}
|
|
157
|
+
declare const PasswordInput: React.ForwardRefExoticComponent<PasswordInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
158
|
+
|
|
63
159
|
interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {
|
|
160
|
+
controlSize?: ControlSize;
|
|
64
161
|
}
|
|
65
162
|
declare const Label: React.ForwardRefExoticComponent<LabelProps & React.RefAttributes<HTMLLabelElement>>;
|
|
66
163
|
|
|
@@ -73,6 +170,31 @@ declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttri
|
|
|
73
170
|
declare const AlertTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
|
|
74
171
|
declare const AlertDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
75
172
|
|
|
173
|
+
type ToastVariant = 'default' | 'info' | 'success' | 'warning' | 'error';
|
|
174
|
+
type ToastPosition = 'top-center' | 'top-right' | 'bottom-center';
|
|
175
|
+
interface ToastProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
176
|
+
/** Semantic tone. Error toasts announce assertively; all other tones announce politely. */
|
|
177
|
+
variant?: ToastVariant;
|
|
178
|
+
/** Replaces the default semantic icon. */
|
|
179
|
+
icon?: React.ReactNode;
|
|
180
|
+
/** Optional action control, such as an Undo or View button. */
|
|
181
|
+
action?: React.ReactNode;
|
|
182
|
+
/** Called by the close control or after the auto-dismiss duration. */
|
|
183
|
+
onDismiss: () => void;
|
|
184
|
+
/** Accessible label for the close control. */
|
|
185
|
+
dismissLabel?: string;
|
|
186
|
+
/** Auto-dismiss delay in milliseconds. Pass null to keep the toast open. Defaults to 5 seconds, except errors, which persist. */
|
|
187
|
+
duration?: number | null;
|
|
188
|
+
}
|
|
189
|
+
interface ToastViewportProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
190
|
+
/** Screen edge used for the toast stack. */
|
|
191
|
+
position?: ToastPosition;
|
|
192
|
+
/** Render into document.body so the stack is not clipped by product layout. */
|
|
193
|
+
portal?: boolean;
|
|
194
|
+
}
|
|
195
|
+
declare const Toast: React.ForwardRefExoticComponent<ToastProps & React.RefAttributes<HTMLDivElement>>;
|
|
196
|
+
declare const ToastViewport: React.ForwardRefExoticComponent<ToastViewportProps & React.RefAttributes<HTMLDivElement>>;
|
|
197
|
+
|
|
76
198
|
interface ToggleProps {
|
|
77
199
|
checked: boolean;
|
|
78
200
|
onChange: (checked: boolean) => void;
|
|
@@ -94,19 +216,61 @@ interface ModalProps {
|
|
|
94
216
|
footer?: React.ReactNode;
|
|
95
217
|
/** When true, prevents closing via overlay click or Escape. */
|
|
96
218
|
noClose?: boolean;
|
|
219
|
+
/** Keeps the close control visible but disables every dismissal route. */
|
|
220
|
+
closeDisabled?: boolean;
|
|
97
221
|
/** Modal width: 'sm' (420px), 'md' (756px), 'lg' (near-fullscreen). */
|
|
98
222
|
size?: 'sm' | 'md' | 'lg';
|
|
223
|
+
/** Replaces the body with a whole-surface loading state while retaining the modal chrome. */
|
|
224
|
+
loading?: boolean;
|
|
225
|
+
loadingLabel?: string;
|
|
226
|
+
/** Constrains the modal to the viewport, scrolls the body, and separates the fixed footer with a full-width divider. */
|
|
227
|
+
scrollable?: boolean;
|
|
99
228
|
className?: string;
|
|
100
229
|
}
|
|
101
|
-
declare function Modal({ open, onClose, title, children, danger, warn, footer, noClose, size, className }: ModalProps): React.ReactPortal | null;
|
|
230
|
+
declare function Modal({ open, onClose, title, children, danger, warn, footer, noClose, closeDisabled, size, loading, loadingLabel, scrollable, className }: ModalProps): React.ReactPortal | null;
|
|
231
|
+
|
|
232
|
+
interface TableOverflowMenuItem {
|
|
233
|
+
value: string;
|
|
234
|
+
label: string;
|
|
235
|
+
icon?: ReactNode;
|
|
236
|
+
disabled?: boolean;
|
|
237
|
+
}
|
|
238
|
+
interface TableOverflowMenuConfig<T> {
|
|
239
|
+
items: (row: T, index: number) => TableOverflowMenuItem[];
|
|
240
|
+
onSelect: (value: string, row: T, index: number) => void;
|
|
241
|
+
getLabel?: (row: T, index: number) => string;
|
|
242
|
+
isDisabled?: (row: T, index: number) => boolean;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
interface TableColumnSizing {
|
|
246
|
+
/** Preferred column width. Percentage widths require layout="fill". */
|
|
247
|
+
width?: string;
|
|
248
|
+
/** Minimum content width, including cell padding. */
|
|
249
|
+
minWidth?: number | string;
|
|
250
|
+
/** Maximum content width, including cell padding. Defaults adapt to the table container. */
|
|
251
|
+
maxWidth?: number | string;
|
|
252
|
+
}
|
|
253
|
+
interface TableLayoutProps {
|
|
254
|
+
/** Defaults to fill: distribute spare width across content-sized columns; overflow at their preferred widths. Content opts out of expansion. */
|
|
255
|
+
layout?: 'content' | 'fill';
|
|
256
|
+
/** Keeps column headers at the top of this table's scroll viewport. */
|
|
257
|
+
stickyHeader?: boolean;
|
|
258
|
+
/** Keeps the first data column (and selection column, if present) visible. */
|
|
259
|
+
stickyFirstColumn?: boolean;
|
|
260
|
+
/** Bounds vertical scrolling. Required for sticky headers during vertical scrolling. */
|
|
261
|
+
maxHeight?: number | string;
|
|
262
|
+
}
|
|
102
263
|
|
|
103
|
-
interface DataTableColumn<T> {
|
|
264
|
+
interface DataTableColumn<T> extends TableColumnSizing {
|
|
104
265
|
key: string;
|
|
105
266
|
header: string;
|
|
106
267
|
width?: string;
|
|
107
268
|
render: (row: T, index: number) => ReactNode;
|
|
108
269
|
}
|
|
109
|
-
interface DataTableProps<T> {
|
|
270
|
+
interface DataTableProps<T> extends TableLayoutProps {
|
|
271
|
+
'aria-label'?: string;
|
|
272
|
+
/** Adds a trailing, sticky row-actions column with an overflow menu. */
|
|
273
|
+
overflowMenu?: TableOverflowMenuConfig<T>;
|
|
110
274
|
columns: DataTableColumn<T>[];
|
|
111
275
|
data: T[];
|
|
112
276
|
emptyMessage?: string;
|
|
@@ -114,7 +278,7 @@ interface DataTableProps<T> {
|
|
|
114
278
|
size?: 'sm' | 'md' | 'lg';
|
|
115
279
|
className?: string;
|
|
116
280
|
}
|
|
117
|
-
declare function DataTable<T>({ columns, data, emptyMessage, header, size, className }: DataTableProps<T>): React.JSX.Element;
|
|
281
|
+
declare function DataTable<T>({ columns, data, emptyMessage, header, size, className, overflowMenu, layout, stickyHeader, stickyFirstColumn, maxHeight, 'aria-label': ariaLabel }: DataTableProps<T>): React.JSX.Element;
|
|
118
282
|
|
|
119
283
|
interface DropdownItem {
|
|
120
284
|
value: string;
|
|
@@ -126,22 +290,46 @@ interface DropdownItem {
|
|
|
126
290
|
}
|
|
127
291
|
interface DropdownProps {
|
|
128
292
|
items: DropdownItem[];
|
|
129
|
-
selectedValue
|
|
130
|
-
onSelect
|
|
293
|
+
selectedValue?: string;
|
|
294
|
+
onSelect?: (value: string) => void;
|
|
295
|
+
/** Checkbox-style options that remain open after selection. */
|
|
296
|
+
multiple?: boolean;
|
|
297
|
+
selectedValues?: string[];
|
|
298
|
+
onSelectionChange?: (values: string[]) => void;
|
|
299
|
+
searchable?: boolean;
|
|
300
|
+
searchPlaceholder?: string;
|
|
301
|
+
emptyMessage?: string;
|
|
131
302
|
triggerLabel?: string;
|
|
132
|
-
|
|
303
|
+
/** Floating field title. Empty selectedValue is the unfilled state. */
|
|
304
|
+
fieldLabel?: string;
|
|
305
|
+
direction?: 'up' | 'down' | 'left' | 'right';
|
|
306
|
+
/** Preferred alignment; shifted as needed to stay inside visible bounds. */
|
|
133
307
|
align?: 'left' | 'right';
|
|
308
|
+
/** Maximum menu height in pixels, further limited by available space. Default: 320. */
|
|
309
|
+
maxHeight?: number;
|
|
310
|
+
/** Minimum inset from the viewport and clipping ancestors in pixels. Default: 8. */
|
|
311
|
+
collisionPadding?: number;
|
|
312
|
+
/** Arranges the trigger content vertically without rotating the dropdown panel. */
|
|
313
|
+
triggerOrientation?: 'horizontal' | 'vertical';
|
|
134
314
|
triggerContent?: React.ReactNode;
|
|
135
315
|
label?: React.ReactNode;
|
|
316
|
+
/** Renders the trigger as a square icon button. Requires an accessible triggerLabel. */
|
|
317
|
+
iconOnly?: boolean;
|
|
136
318
|
noChevron?: boolean;
|
|
137
|
-
|
|
319
|
+
/** Shared visual density; takes precedence over size. */
|
|
320
|
+
controlSize?: ControlSize;
|
|
321
|
+
/** Backward-compatible size alias. */
|
|
322
|
+
size?: ControlSize;
|
|
323
|
+
/** Connect a persistent Label with htmlFor to the trigger. */
|
|
324
|
+
triggerId?: string;
|
|
138
325
|
triggerVariant?: 'outline' | 'tertiary';
|
|
139
326
|
className?: string;
|
|
140
327
|
triggerClassName?: string;
|
|
141
328
|
panelClassName?: string;
|
|
142
329
|
closeOnSelect?: boolean;
|
|
330
|
+
disabled?: boolean;
|
|
143
331
|
}
|
|
144
|
-
declare function Dropdown({ items, selectedValue, onSelect, triggerLabel, direction, align, triggerContent, label, noChevron, size, triggerVariant, className, triggerClassName, panelClassName, closeOnSelect, }: DropdownProps): React.JSX.Element | null;
|
|
332
|
+
declare function Dropdown({ items, selectedValue, onSelect, multiple, selectedValues, onSelectionChange, searchable, searchPlaceholder, emptyMessage, triggerLabel, fieldLabel, direction, align, maxHeight, collisionPadding, triggerOrientation, triggerContent, label, iconOnly, noChevron, size: sizeAlias, controlSize, triggerId, triggerVariant, className, triggerClassName, panelClassName, closeOnSelect, disabled, }: DropdownProps): React.JSX.Element | null;
|
|
145
333
|
|
|
146
334
|
type LinkTheme = 'default' | 'muted' | 'accent';
|
|
147
335
|
type LinkSize = 'sm' | 'md' | 'lg';
|
|
@@ -157,8 +345,26 @@ interface ChipProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
|
157
345
|
}
|
|
158
346
|
declare const Chip: React.ForwardRefExoticComponent<ChipProps & React.RefAttributes<HTMLSpanElement>>;
|
|
159
347
|
|
|
348
|
+
interface CheckboxProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'> {
|
|
349
|
+
checked: boolean;
|
|
350
|
+
indeterminate?: boolean;
|
|
351
|
+
onCheckedChange: (checked: boolean) => void;
|
|
352
|
+
}
|
|
353
|
+
declare function Checkbox({ checked, indeterminate, onCheckedChange, className, disabled, onClick, onKeyDown, ...props }: CheckboxProps): React.JSX.Element;
|
|
354
|
+
|
|
355
|
+
interface RadioProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'children' | 'onChange' | 'type'> {
|
|
356
|
+
label: React.ReactNode;
|
|
357
|
+
description?: React.ReactNode;
|
|
358
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
359
|
+
}
|
|
360
|
+
declare function Radio({ checked, className, description, disabled, label, onCheckedChange, ...props }: RadioProps): React.JSX.Element;
|
|
361
|
+
|
|
160
362
|
type SortDirection = 'asc' | 'desc' | null;
|
|
161
|
-
interface
|
|
363
|
+
interface SortableTableDefaultSort {
|
|
364
|
+
key: string;
|
|
365
|
+
direction: Exclude<SortDirection, null>;
|
|
366
|
+
}
|
|
367
|
+
interface SortableTableColumn<T> extends TableColumnSizing {
|
|
162
368
|
key: string;
|
|
163
369
|
header: string;
|
|
164
370
|
width?: string;
|
|
@@ -167,23 +373,70 @@ interface SortableTableColumn<T> {
|
|
|
167
373
|
render: (row: T, index: number) => ReactNode;
|
|
168
374
|
align?: 'left' | 'right';
|
|
169
375
|
}
|
|
170
|
-
interface
|
|
376
|
+
interface SortableTableRowAction<T> {
|
|
377
|
+
label: (row: T, index: number) => string;
|
|
378
|
+
icon: (row: T, index: number) => ReactNode;
|
|
379
|
+
}
|
|
380
|
+
interface SortableTableSelection<T> {
|
|
381
|
+
/** Returns whether a row is selected. Selection is controlled by the consumer. */
|
|
382
|
+
isSelected: (row: T) => boolean;
|
|
383
|
+
/** Called when an individual row changes selection. */
|
|
384
|
+
onSelectedChange: (row: T, selected: boolean) => void;
|
|
385
|
+
/**
|
|
386
|
+
* Handles the complete selectable row set in one update when the header
|
|
387
|
+
* checkbox changes. Falls back to `onSelectedChange` for each row when omitted.
|
|
388
|
+
*/
|
|
389
|
+
onSelectAllChange?: (rows: T[], selected: boolean) => void;
|
|
390
|
+
/** Accessible name for an individual row's checkbox. */
|
|
391
|
+
getRowLabel: (row: T) => string;
|
|
392
|
+
/** Accessible name for the header checkbox. */
|
|
393
|
+
selectAllLabel?: string;
|
|
394
|
+
}
|
|
395
|
+
interface SortableTablePagination {
|
|
396
|
+
page: number;
|
|
397
|
+
pageSize: number;
|
|
398
|
+
}
|
|
399
|
+
interface SortableTableProps<T> extends TableLayoutProps {
|
|
400
|
+
/** Adds a trailing, sticky row-actions column with an overflow menu. */
|
|
401
|
+
overflowMenu?: TableOverflowMenuConfig<T>;
|
|
171
402
|
columns: SortableTableColumn<T>[];
|
|
172
403
|
data: T[];
|
|
404
|
+
/** Accessible name applied to the underlying table element. */
|
|
405
|
+
'aria-label'?: string;
|
|
173
406
|
emptyMessage?: string;
|
|
174
407
|
header?: ReactNode;
|
|
175
408
|
size?: 'sm' | 'md' | 'lg';
|
|
409
|
+
/** Removes the table's outer border and radius for use inside another framed surface. */
|
|
410
|
+
embedded?: boolean;
|
|
176
411
|
className?: string;
|
|
412
|
+
/** Required baseline row ordering that does not appear as an active user sort. */
|
|
413
|
+
defaultSort: SortableTableDefaultSort;
|
|
414
|
+
/** Initial visible user sort state. */
|
|
177
415
|
defaultSortKey?: string;
|
|
178
416
|
defaultSortDirection?: SortDirection;
|
|
179
417
|
sortKey?: string | null;
|
|
180
418
|
sortDirection?: SortDirection;
|
|
181
419
|
onSortChange?: (key: string | null, direction: SortDirection) => void;
|
|
420
|
+
/**
|
|
421
|
+
* Slices the globally sorted dataset for display. Always pass the complete
|
|
422
|
+
* filtered dataset in `data`; sorting is applied before pagination.
|
|
423
|
+
*/
|
|
424
|
+
pagination?: SortableTablePagination;
|
|
182
425
|
highlightRow?: (row: T, index: number) => boolean;
|
|
426
|
+
/** Adds a leading checkbox column with controlled row selection. */
|
|
427
|
+
selection?: SortableTableSelection<T>;
|
|
428
|
+
/** Disabled rows remain visible but cannot be selected or activated. */
|
|
429
|
+
isRowDisabled?: (row: T) => boolean;
|
|
430
|
+
/** Disables only a row's selection control while preserving row activation. */
|
|
431
|
+
isRowSelectionDisabled?: (row: T) => boolean;
|
|
183
432
|
/** Invoked when a row is selected. Enables pointer and keyboard row activation. */
|
|
184
433
|
onRowClick?: (row: T, index: number) => void;
|
|
434
|
+
/** Invoked when a row is double-clicked. */
|
|
435
|
+
onRowDoubleClick?: (row: T, index: number) => void;
|
|
436
|
+
/** Directional affordance displayed over the right edge of an interactive row. */
|
|
437
|
+
rowAction?: SortableTableRowAction<T>;
|
|
185
438
|
}
|
|
186
|
-
declare function SortableTable<T>({ columns, data, emptyMessage, header, size, className, defaultSortKey, defaultSortDirection, sortKey: controlledKey, sortDirection: controlledDirection, onSortChange, highlightRow, onRowClick, }: SortableTableProps<T>): React.JSX.Element;
|
|
439
|
+
declare function SortableTable<T>({ columns, data, 'aria-label': ariaLabel, emptyMessage, header, size, embedded, layout, stickyHeader, stickyFirstColumn, maxHeight, overflowMenu, className, defaultSort, defaultSortKey, defaultSortDirection, sortKey: controlledKey, sortDirection: controlledDirection, onSortChange, pagination, highlightRow, selection, isRowDisabled, isRowSelectionDisabled, onRowClick, onRowDoubleClick, rowAction, }: SortableTableProps<T>): React.JSX.Element;
|
|
187
440
|
|
|
188
441
|
interface TabItem {
|
|
189
442
|
id: string;
|
|
@@ -191,6 +444,7 @@ interface TabItem {
|
|
|
191
444
|
content: ReactNode;
|
|
192
445
|
disabled?: boolean;
|
|
193
446
|
}
|
|
447
|
+
type TabsVariant = 'line' | 'surface';
|
|
194
448
|
interface TabsProps {
|
|
195
449
|
items: TabItem[];
|
|
196
450
|
defaultValue?: string;
|
|
@@ -198,8 +452,27 @@ interface TabsProps {
|
|
|
198
452
|
onValueChange?: (id: string) => void;
|
|
199
453
|
className?: string;
|
|
200
454
|
ariaLabel?: string;
|
|
455
|
+
/** Extends a subtle divider across the entire tab list. */
|
|
456
|
+
divider?: boolean;
|
|
457
|
+
/** Visual treatment. Surface tabs sit on a full-width secondary surface with the active tab connected to its panel. */
|
|
458
|
+
variant?: TabsVariant;
|
|
459
|
+
}
|
|
460
|
+
declare function Tabs({ items, defaultValue, value: controlledValue, onValueChange, className, ariaLabel, divider, variant, }: TabsProps): React.JSX.Element;
|
|
461
|
+
|
|
462
|
+
interface ContentSwitcherItem {
|
|
463
|
+
value: string;
|
|
464
|
+
label: React.ReactNode;
|
|
465
|
+
disabled?: boolean;
|
|
201
466
|
}
|
|
202
|
-
|
|
467
|
+
interface ContentSwitcherProps {
|
|
468
|
+
items: ContentSwitcherItem[];
|
|
469
|
+
value: string;
|
|
470
|
+
onValueChange: (value: string) => void;
|
|
471
|
+
ariaLabel: string;
|
|
472
|
+
fullWidth?: boolean;
|
|
473
|
+
className?: string;
|
|
474
|
+
}
|
|
475
|
+
declare function ContentSwitcher({ items, value, onValueChange, ariaLabel, fullWidth, className }: ContentSwitcherProps): React.JSX.Element;
|
|
203
476
|
|
|
204
477
|
interface DisclosureProps {
|
|
205
478
|
title: ReactNode;
|
|
@@ -208,18 +481,140 @@ interface DisclosureProps {
|
|
|
208
481
|
defaultOpen?: boolean;
|
|
209
482
|
open?: boolean;
|
|
210
483
|
onOpenChange?: (open: boolean) => void;
|
|
484
|
+
disabled?: boolean;
|
|
211
485
|
className?: string;
|
|
212
486
|
variant?: 'card' | 'plain';
|
|
213
487
|
}
|
|
214
|
-
declare function Disclosure({ title, meta, children, defaultOpen, open: controlledOpen, onOpenChange, className, variant, }: DisclosureProps): React.JSX.Element;
|
|
488
|
+
declare function Disclosure({ title, meta, children, defaultOpen, open: controlledOpen, onOpenChange, disabled, className, variant, }: DisclosureProps): React.JSX.Element;
|
|
489
|
+
|
|
490
|
+
interface LatticeLoaderProps extends HTMLAttributes<HTMLSpanElement> {
|
|
491
|
+
label?: string;
|
|
492
|
+
}
|
|
493
|
+
declare function LatticeLoader({ className, label, ...props }: LatticeLoaderProps): React.JSX.Element;
|
|
494
|
+
|
|
495
|
+
type UILoaderTone = 'neutral' | 'blue' | 'green';
|
|
496
|
+
interface UILoaderProps {
|
|
497
|
+
/** Visual height. Width follows the mark's aspect ratio. */
|
|
498
|
+
size?: number | string;
|
|
499
|
+
tone?: UILoaderTone;
|
|
500
|
+
className?: string;
|
|
501
|
+
style?: CSSProperties;
|
|
502
|
+
label?: string;
|
|
503
|
+
/** Use when another nearby element already announces loading. */
|
|
504
|
+
ariaHidden?: boolean;
|
|
505
|
+
}
|
|
506
|
+
/** A branded shine loader for whole UI surfaces, not component-level content. */
|
|
507
|
+
declare function UILoader({ size, tone, className, style, label, ariaHidden }: UILoaderProps): React.JSX.Element;
|
|
508
|
+
|
|
509
|
+
type GhostLength = number | string;
|
|
510
|
+
interface GhostProps extends HTMLAttributes<HTMLDivElement> {
|
|
511
|
+
/** Width of the placeholder. Numbers are interpreted as pixels. */
|
|
512
|
+
width?: GhostLength;
|
|
513
|
+
/** Height of the placeholder. Numbers are interpreted as pixels. */
|
|
514
|
+
height?: GhostLength;
|
|
515
|
+
/** Border radius override. */
|
|
516
|
+
radius?: GhostLength;
|
|
517
|
+
}
|
|
518
|
+
interface GhostLineProps extends Omit<GhostProps, 'height'> {
|
|
519
|
+
/** Text-line size. */
|
|
520
|
+
size?: 'sm' | 'md' | 'lg';
|
|
521
|
+
}
|
|
522
|
+
/**
|
|
523
|
+
* An intentionally content-free, shimmering placeholder. Use the composed
|
|
524
|
+
* ghosts below for standard Fractal components; use this primitive for custom
|
|
525
|
+
* product layouts.
|
|
526
|
+
*/
|
|
527
|
+
declare function Ghost({ className, width, height, radius, style, ...props }: GhostProps): React.JSX.Element;
|
|
528
|
+
declare function GhostLine({ className, size, width, ...props }: GhostLineProps): React.JSX.Element;
|
|
529
|
+
interface ButtonGhostProps extends Omit<GhostProps, 'height'> {
|
|
530
|
+
size?: ControlSize;
|
|
531
|
+
controlSize?: ControlSize;
|
|
532
|
+
iconOnly?: boolean;
|
|
533
|
+
}
|
|
534
|
+
declare function ButtonGhost({ className, size, controlSize, iconOnly, width, ...props }: ButtonGhostProps): React.JSX.Element;
|
|
535
|
+
interface CardGhostProps extends HTMLAttributes<HTMLDivElement> {
|
|
536
|
+
lines?: number;
|
|
537
|
+
showHeader?: boolean;
|
|
538
|
+
}
|
|
539
|
+
declare function CardGhost({ className, lines, showHeader, ...props }: CardGhostProps): React.JSX.Element;
|
|
540
|
+
interface DataTableGhostProps extends HTMLAttributes<HTMLDivElement> {
|
|
541
|
+
/** Display placeholder cells for a header that is itself still loading. */
|
|
542
|
+
showHeader?: boolean;
|
|
543
|
+
/** Static header labels to retain while only rows are loading. */
|
|
544
|
+
headers?: ReactNode[];
|
|
545
|
+
/** Number of column placeholders. */
|
|
546
|
+
columns?: number;
|
|
547
|
+
/** Number of data row placeholders. */
|
|
548
|
+
rows?: number;
|
|
549
|
+
/** Optional CSS widths mirroring the eventual table columns. */
|
|
550
|
+
columnWidths?: string[];
|
|
551
|
+
size?: 'sm' | 'md' | 'lg';
|
|
552
|
+
}
|
|
553
|
+
declare function DataTableGhost({ className, showHeader, headers, columns, rows, columnWidths, size, ...props }: DataTableGhostProps): React.JSX.Element;
|
|
554
|
+
interface FormFieldGhostProps extends HTMLAttributes<HTMLDivElement> {
|
|
555
|
+
labelWidth?: GhostLength;
|
|
556
|
+
controlSize?: ControlSize;
|
|
557
|
+
multiline?: boolean;
|
|
558
|
+
}
|
|
559
|
+
declare function InputGhost({ className, labelWidth, ...props }: FormFieldGhostProps): React.JSX.Element;
|
|
560
|
+
declare function TextareaGhost({ className, labelWidth, ...props }: FormFieldGhostProps): React.JSX.Element;
|
|
561
|
+
declare function LabelGhost({ className, width, ...props }: Omit<GhostLineProps, 'size'>): React.JSX.Element;
|
|
562
|
+
declare function AlertGhost({ className, ...props }: HTMLAttributes<HTMLDivElement>): React.JSX.Element;
|
|
563
|
+
declare function CheckboxGhost({ className, ...props }: HTMLAttributes<HTMLDivElement>): React.JSX.Element;
|
|
564
|
+
declare const ToggleGhost: typeof CheckboxGhost;
|
|
565
|
+
declare function ChipGhost({ className, width, ...props }: Omit<GhostProps, 'height'>): React.JSX.Element;
|
|
566
|
+
declare function LinkGhost({ className, width, ...props }: Omit<GhostLineProps, 'size'>): React.JSX.Element;
|
|
567
|
+
declare const TextButtonGhost: typeof LinkGhost;
|
|
568
|
+
declare function DropdownGhost({ className, controlSize, ...props }: HTMLAttributes<HTMLDivElement> & {
|
|
569
|
+
controlSize?: ControlSize;
|
|
570
|
+
}): React.JSX.Element;
|
|
571
|
+
declare function ContentSwitcherGhost({ className, options, ...props }: HTMLAttributes<HTMLDivElement> & {
|
|
572
|
+
options?: number;
|
|
573
|
+
}): React.JSX.Element;
|
|
574
|
+
declare const TabsGhost: typeof ContentSwitcherGhost;
|
|
575
|
+
declare function DisclosureGhost({ className, ...props }: HTMLAttributes<HTMLDivElement>): React.JSX.Element;
|
|
576
|
+
declare function PaginationGhost({ className, pages, ...props }: HTMLAttributes<HTMLDivElement> & {
|
|
577
|
+
pages?: number;
|
|
578
|
+
}): React.JSX.Element;
|
|
579
|
+
declare function FileDropzoneGhost({ className, ...props }: HTMLAttributes<HTMLDivElement>): React.JSX.Element;
|
|
580
|
+
declare function PromptCardGhost({ className, ...props }: HTMLAttributes<HTMLDivElement>): React.JSX.Element;
|
|
581
|
+
type ConversationGhostProps = HTMLAttributes<HTMLDivElement>;
|
|
582
|
+
declare function ConversationGhost({ className, 'aria-label': ariaLabel, ...props }: ConversationGhostProps): React.JSX.Element;
|
|
583
|
+
declare function SortableTableGhost(props: DataTableGhostProps): React.JSX.Element;
|
|
584
|
+
interface SidebarGhostProps extends HTMLAttributes<HTMLDivElement> {
|
|
585
|
+
items?: number;
|
|
586
|
+
}
|
|
587
|
+
declare function SidebarGhost({ className, items, ...props }: SidebarGhostProps): React.JSX.Element;
|
|
588
|
+
interface SurfaceGhostProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
589
|
+
title?: ReactNode;
|
|
590
|
+
lines?: number;
|
|
591
|
+
}
|
|
592
|
+
declare function ModalGhost({ className, title, lines, ...props }: SurfaceGhostProps): React.JSX.Element;
|
|
593
|
+
declare function SidePanelGhost({ className, title, lines, ...props }: SurfaceGhostProps): React.JSX.Element;
|
|
215
594
|
|
|
216
595
|
interface SidebarProps extends React.HTMLAttributes<HTMLElement> {
|
|
217
596
|
/** Fixed sidebar width. Defaults to the standard application width. */
|
|
218
597
|
width?: string;
|
|
598
|
+
/** Collapses the sidebar to an icon rail until it is hovered or receives focus. */
|
|
599
|
+
compact?: boolean;
|
|
219
600
|
}
|
|
220
601
|
declare const Sidebar: React.ForwardRefExoticComponent<SidebarProps & React.RefAttributes<HTMLElement>>;
|
|
221
602
|
declare const SidebarHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
222
603
|
declare const SidebarBrand: React.ForwardRefExoticComponent<React.ButtonHTMLAttributes<HTMLButtonElement> & React.RefAttributes<HTMLButtonElement>>;
|
|
604
|
+
interface SidebarAccountMenuProps {
|
|
605
|
+
/** Person or workspace label shown in the sidebar header. */
|
|
606
|
+
name: string;
|
|
607
|
+
/** Available account actions. */
|
|
608
|
+
items: DropdownItem[];
|
|
609
|
+
/** Invoked when an account action is selected. */
|
|
610
|
+
onSelect: (value: string) => void;
|
|
611
|
+
/** Accessible label for the account actions menu. */
|
|
612
|
+
triggerLabel?: string;
|
|
613
|
+
/** Leading profile or workspace mark. */
|
|
614
|
+
icon?: React.ReactNode;
|
|
615
|
+
className?: string;
|
|
616
|
+
}
|
|
617
|
+
declare function SidebarAccountMenu({ name, items, onSelect, triggerLabel, icon, className, }: SidebarAccountMenuProps): React.JSX.Element;
|
|
223
618
|
declare const SidebarNav: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLElement>>;
|
|
224
619
|
declare const SidebarSection: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
225
620
|
interface SidebarNavItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
@@ -240,16 +635,60 @@ interface SidePanelProps {
|
|
|
240
635
|
description?: React.ReactNode;
|
|
241
636
|
children: React.ReactNode;
|
|
242
637
|
footer?: React.ReactNode;
|
|
243
|
-
/** Panel width: sm (420px), md (540px),
|
|
244
|
-
size?: 'sm' | 'md' | 'lg';
|
|
638
|
+
/** Panel width: sm (420px), md (540px), lg (680px), or xl (960px). */
|
|
639
|
+
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
640
|
+
/** Replaces the body with a whole-surface loading state while retaining the panel header. */
|
|
641
|
+
loading?: boolean;
|
|
642
|
+
loadingLabel?: string;
|
|
245
643
|
className?: string;
|
|
246
644
|
}
|
|
247
|
-
declare function SidePanel({ open, onClose, title, description, children, footer, size, className }: SidePanelProps): React.ReactPortal | null;
|
|
645
|
+
declare function SidePanel({ open, onClose, title, description, children, footer, size, loading, loadingLabel, className }: SidePanelProps): React.ReactPortal | null;
|
|
248
646
|
|
|
249
647
|
interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
|
|
648
|
+
/** Persistent title: starts on the first line, floats into the border on focus or when filled. */
|
|
649
|
+
fieldLabel?: string;
|
|
650
|
+
/** Prose uses the input font; source preserves the existing monospace treatment. */
|
|
651
|
+
textStyle?: 'prose' | 'source';
|
|
250
652
|
}
|
|
251
653
|
declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
|
|
252
654
|
|
|
655
|
+
type TextButtonSize = 'sm' | 'md';
|
|
656
|
+
type TextButtonIconPosition = 'start' | 'end';
|
|
657
|
+
type TextButtonTone = 'primary' | 'secondary';
|
|
658
|
+
interface TextButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
659
|
+
icon?: React.ReactNode;
|
|
660
|
+
iconPosition?: TextButtonIconPosition;
|
|
661
|
+
size?: TextButtonSize;
|
|
662
|
+
tone?: TextButtonTone;
|
|
663
|
+
}
|
|
664
|
+
declare const TextButton: React.ForwardRefExoticComponent<TextButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
665
|
+
|
|
666
|
+
interface FileDropzoneProps {
|
|
667
|
+
files: File[];
|
|
668
|
+
onFilesChange: (files: File[]) => void;
|
|
669
|
+
accept?: string;
|
|
670
|
+
multiple?: boolean;
|
|
671
|
+
disabled?: boolean;
|
|
672
|
+
title?: React.ReactNode;
|
|
673
|
+
description?: React.ReactNode;
|
|
674
|
+
className?: string;
|
|
675
|
+
}
|
|
676
|
+
declare function FileDropzone({ files, onFilesChange, accept, multiple, disabled, title, description, className, }: FileDropzoneProps): React.JSX.Element;
|
|
677
|
+
|
|
678
|
+
interface PaginationProps {
|
|
679
|
+
/** One-based active page. */
|
|
680
|
+
page: number;
|
|
681
|
+
pageSize: number;
|
|
682
|
+
totalItems: number;
|
|
683
|
+
onPageChange: (page: number) => void;
|
|
684
|
+
/** Optional page sizes, rendered as an unframed selector in the pagination footer. */
|
|
685
|
+
pageSizeOptions?: number[];
|
|
686
|
+
onPageSizeChange?: (pageSize: number) => void;
|
|
687
|
+
ariaLabel?: string;
|
|
688
|
+
className?: string;
|
|
689
|
+
}
|
|
690
|
+
declare function Pagination({ page, pageSize, totalItems, onPageChange, pageSizeOptions, onPageSizeChange, ariaLabel, className, }: PaginationProps): React.JSX.Element;
|
|
691
|
+
|
|
253
692
|
/**
|
|
254
693
|
* Register an Escape-key dismiss handler with the global priority stack.
|
|
255
694
|
*
|
|
@@ -261,4 +700,19 @@ declare function useEscapeDismiss(priority: number, handler: () => void, enabled
|
|
|
261
700
|
|
|
262
701
|
declare function cn(...inputs: ClassValue[]): string;
|
|
263
702
|
|
|
264
|
-
|
|
703
|
+
interface TooltipProps {
|
|
704
|
+
/** Supplementary, non-interactive help. Keep essential instructions visible. */
|
|
705
|
+
content: ReactNode;
|
|
706
|
+
/** One focusable element that forwards its props and ref (for example Button). */
|
|
707
|
+
children: ReactElement;
|
|
708
|
+
placement?: 'top' | 'right' | 'bottom' | 'left';
|
|
709
|
+
maxWidth?: number | string;
|
|
710
|
+
/** Delay before opening on hover, in milliseconds. Keyboard focus is immediate. */
|
|
711
|
+
delay?: number;
|
|
712
|
+
disabled?: boolean;
|
|
713
|
+
className?: string;
|
|
714
|
+
}
|
|
715
|
+
/** Hover/focus help with a portal, viewport collision handling and Escape dismissal. */
|
|
716
|
+
declare function Tooltip({ content, children, placement, maxWidth, delay, disabled, className, }: TooltipProps): React.JSX.Element;
|
|
717
|
+
|
|
718
|
+
export { Alert, AlertDescription, AlertGhost, AlertTitle, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, Button, type ButtonColor, ButtonGhost, type ButtonGhostProps, type ButtonProps, type ButtonSize, type ButtonType, Card, CardContent, CardDescription, CardFooter, CardGhost, type CardGhostProps, CardHeader, CardTitle, Checkbox, CheckboxGhost, type CheckboxProps, Chip, ChipGhost, type ChipProps, type ChipTone, CodeBlock, type CodeBlockProps, ContentSwitcher, ContentSwitcherGhost, type ContentSwitcherItem, type ContentSwitcherProps, type ControlSize, ConversationGhost, type ConversationGhostProps, DataTable, type DataTableColumn, DataTableGhost, type DataTableGhostProps, type DataTableProps, Disclosure, DisclosureGhost, type DisclosureProps, Dropdown, DropdownGhost, type DropdownItem, type DropdownProps, FeatureCard, type FeatureCardProps, FileDropzone, FileDropzoneGhost, type FileDropzoneProps, FolderCard, type FolderCardProps, type FormFieldGhostProps, Ghost, GhostLine, type GhostLineProps, type GhostProps, Input, InputGhost, type InputProps, Label, LabelGhost, type LabelProps, LatticeLoader, type LatticeLoaderProps, Link, LinkGhost, type LinkProps, type LinkSize, type LinkTheme, Modal, ModalGhost, type ModalProps, NumberInput, type NumberInputProps, Pagination, PaginationGhost, type PaginationProps, PasswordInput, type PasswordInputProps, PromptCard, PromptCardGhost, type PromptCardProps, type PromptCardTone, PromptGrid, type PromptGridProps, Radio, type RadioProps, type RangeSliderProps, SidePanel, SidePanelGhost, type SidePanelProps, Sidebar, SidebarAccountMenu, type SidebarAccountMenuProps, SidebarBrand, SidebarFooter, SidebarGhost, type SidebarGhostProps, SidebarHeader, SidebarNav, SidebarNavItem, type SidebarNavItemProps, type SidebarProps, SidebarSection, type SingleSliderProps, Slider, type SliderProps, type SortDirection, SortableTable, type SortableTableColumn, type SortableTableDefaultSort, SortableTableGhost, type SortableTablePagination, type SortableTableProps, type SortableTableRowAction, type SortableTableSelection, type SurfaceGhostProps, type TabItem, type TableColumnSizing, type TableLayoutProps, type TableOverflowMenuConfig, type TableOverflowMenuItem, TableSearch, type TableSearchProps, type TableSearchType, Tabs, TabsGhost, type TabsProps, type TabsVariant, TextButton, TextButtonGhost, type TextButtonIconPosition, type TextButtonProps, type TextButtonSize, type TextButtonTone, Textarea, TextareaGhost, type TextareaProps, Toast, type ToastPosition, type ToastProps, type ToastVariant, ToastViewport, type ToastViewportProps, Toggle, ToggleGhost, type ToggleProps, Tooltip, type TooltipProps, UILoader, type UILoaderProps, type UILoaderTone, cn, useEscapeDismiss };
|