@ship-it-ui/ui 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +62 -0
- package/dist/index.cjs +3581 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1353 -0
- package/dist/index.d.ts +1353 -0
- package/dist/index.js +3410 -0
- package/dist/index.js.map +1 -0
- package/package.json +94 -0
- package/src/styles/animations.css +123 -0
- package/src/styles/globals.css +144 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,1353 @@
|
|
|
1
|
+
import { ClassValue } from 'clsx';
|
|
2
|
+
import * as react from 'react';
|
|
3
|
+
import { KeyboardEvent, RefObject, ButtonHTMLAttributes, ReactNode, HTMLAttributes, InputHTMLAttributes, TextareaHTMLAttributes, AnchorHTMLAttributes, Ref, FC, SVGAttributes } from 'react';
|
|
4
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
5
|
+
import { VariantProps } from 'class-variance-authority';
|
|
6
|
+
import * as RadixCheckbox from '@radix-ui/react-checkbox';
|
|
7
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
8
|
+
import * as RadixRadio from '@radix-ui/react-radio-group';
|
|
9
|
+
import * as RadixSelect from '@radix-ui/react-select';
|
|
10
|
+
import * as RadixSlider from '@radix-ui/react-slider';
|
|
11
|
+
import * as RadixSwitch from '@radix-ui/react-switch';
|
|
12
|
+
import * as RadixContext from '@radix-ui/react-context-menu';
|
|
13
|
+
import * as RadixDialog from '@radix-ui/react-dialog';
|
|
14
|
+
import * as RadixAlert from '@radix-ui/react-alert-dialog';
|
|
15
|
+
import * as RadixMenu from '@radix-ui/react-dropdown-menu';
|
|
16
|
+
import * as RadixHoverCard from '@radix-ui/react-hover-card';
|
|
17
|
+
import * as RadixPopover from '@radix-ui/react-popover';
|
|
18
|
+
import * as RadixTooltip from '@radix-ui/react-tooltip';
|
|
19
|
+
import * as RadixMenubar from '@radix-ui/react-menubar';
|
|
20
|
+
import * as RadixTabs from '@radix-ui/react-tabs';
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Combine class names with conflict-aware Tailwind merging.
|
|
24
|
+
*
|
|
25
|
+
* cn('px-2 py-1', condition && 'px-4') → 'py-1 px-4'
|
|
26
|
+
*
|
|
27
|
+
* Use anywhere you'd otherwise concatenate strings of Tailwind classes.
|
|
28
|
+
*/
|
|
29
|
+
declare function cn(...inputs: ClassValue[]): string;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Standard controlled/uncontrolled state hook. Mirrors Radix's
|
|
33
|
+
* `useControllableState` — when `value` is provided, the hook stays in sync
|
|
34
|
+
* with it; otherwise it manages an internal state seeded by `defaultValue`.
|
|
35
|
+
*
|
|
36
|
+
* Use this for any composite that needs to support both modes (Tabs,
|
|
37
|
+
* Combobox, Tree, DatePicker, Switch, etc.).
|
|
38
|
+
*/
|
|
39
|
+
interface UseControllableStateProps<T> {
|
|
40
|
+
/** Controlled value. When provided, the hook is in controlled mode. */
|
|
41
|
+
value?: T;
|
|
42
|
+
/** Default for uncontrolled mode. Used only when `value` is undefined. */
|
|
43
|
+
defaultValue?: T;
|
|
44
|
+
/** Change callback fired in both modes whenever the value would change. */
|
|
45
|
+
onChange?: (value: T) => void;
|
|
46
|
+
}
|
|
47
|
+
declare function useControllableState<T>({ value: controlledValue, defaultValue, onChange, }: UseControllableStateProps<T>): [
|
|
48
|
+
T | undefined,
|
|
49
|
+
(next: T | ((prev: T | undefined) => T)) => void
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Standardized open/close state for overlays.
|
|
54
|
+
* Returns the same shape Radix and shadcn-style libraries use, so passing it as
|
|
55
|
+
* `{...disclosure}` props works with any overlay primitive.
|
|
56
|
+
*/
|
|
57
|
+
declare function useDisclosure(initial?: boolean): {
|
|
58
|
+
open: boolean;
|
|
59
|
+
onOpen: () => void;
|
|
60
|
+
onClose: () => void;
|
|
61
|
+
onToggle: () => void;
|
|
62
|
+
setOpen: (open: boolean) => void;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Calls `handler` when Escape is pressed while `enabled` is true.
|
|
67
|
+
* Most overlay components (Dialog, Popover, Drawer) get this for free via Radix,
|
|
68
|
+
* but custom popovers and inline editors need it.
|
|
69
|
+
*/
|
|
70
|
+
declare function useEscape(handler: () => void, enabled?: boolean): void;
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Keyboard navigation for arrow-key selectable lists (Combobox, CommandPalette,
|
|
74
|
+
* filtered dropdown bodies). Tracks the highlighted cursor and exposes a
|
|
75
|
+
* `getKeyDownHandler` you can spread on the input/list element.
|
|
76
|
+
*
|
|
77
|
+
* Supports ↑/↓, Home/End, optional Enter, and a `loop` option that wraps from
|
|
78
|
+
* end → start. The `count` arg drives bounds; pass `0` and the hook becomes a
|
|
79
|
+
* no-op until you hydrate it.
|
|
80
|
+
*/
|
|
81
|
+
interface UseKeyboardListOptions {
|
|
82
|
+
/** Total number of items currently in the list. */
|
|
83
|
+
count: number;
|
|
84
|
+
/** Wrap around at the ends. Default true. */
|
|
85
|
+
loop?: boolean;
|
|
86
|
+
/** Initial cursor. Default 0. */
|
|
87
|
+
defaultCursor?: number;
|
|
88
|
+
/** Called with the current cursor index when Enter is pressed. */
|
|
89
|
+
onSelect?: (index: number) => void;
|
|
90
|
+
}
|
|
91
|
+
interface UseKeyboardListResult {
|
|
92
|
+
cursor: number;
|
|
93
|
+
setCursor: (index: number) => void;
|
|
94
|
+
/** Handler for `onKeyDown` — does NOT call `preventDefault` for unhandled keys. */
|
|
95
|
+
onKeyDown: (event: KeyboardEvent) => void;
|
|
96
|
+
}
|
|
97
|
+
declare function useKeyboardList({ count, loop, defaultCursor, onSelect, }: UseKeyboardListOptions): UseKeyboardListResult;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Calls `handler` when a mousedown occurs outside the element referenced by `ref`.
|
|
101
|
+
*
|
|
102
|
+
* Pass `enabled=false` to detach (typically while the popover is closed). Listens on
|
|
103
|
+
* `mousedown` rather than `click` so the trigger sees the close before its own click
|
|
104
|
+
* fires — matches the behavior of most popover libraries.
|
|
105
|
+
*/
|
|
106
|
+
declare function useOutsideClick<T extends HTMLElement>(ref: RefObject<T | null>, handler: () => void, enabled?: boolean): void;
|
|
107
|
+
|
|
108
|
+
type Theme = 'dark' | 'light';
|
|
109
|
+
/**
|
|
110
|
+
* Read and toggle the active theme (`[data-theme]` on `<html>`).
|
|
111
|
+
*
|
|
112
|
+
* `dark` is the default — when the attribute is absent, dark theme applies.
|
|
113
|
+
* `light` is the opt-in: setting it adds `data-theme="light"` to the document root.
|
|
114
|
+
*
|
|
115
|
+
* Usage:
|
|
116
|
+
* const { theme, setTheme, toggle } = useTheme();
|
|
117
|
+
* <Switch on={theme === 'light'} onChange={toggle} />
|
|
118
|
+
*/
|
|
119
|
+
declare function useTheme(): {
|
|
120
|
+
theme: Theme;
|
|
121
|
+
setTheme: (next: Theme) => void;
|
|
122
|
+
toggle: () => void;
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Seven variants × three sizes × five states. One primary per surface — everything
|
|
127
|
+
* else defers. Variants and sizes match `design-handoff/project/components/Button.jsx`.
|
|
128
|
+
*/
|
|
129
|
+
declare const buttonStyles: (props?: ({
|
|
130
|
+
variant?: "primary" | "secondary" | "ghost" | "outline" | "destructive" | "success" | "link" | null | undefined;
|
|
131
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
132
|
+
fullWidth?: boolean | null | undefined;
|
|
133
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
134
|
+
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonStyles> {
|
|
135
|
+
/** Icon shown to the left of the label (or replacing the spinner when `loading`). */
|
|
136
|
+
icon?: ReactNode;
|
|
137
|
+
/** Icon/text shown to the right of the label. Often a chevron, kbd hint, or arrow. */
|
|
138
|
+
trailing?: ReactNode;
|
|
139
|
+
/** When true, hides the icon, swaps in a spinner, and disables the button. */
|
|
140
|
+
loading?: boolean;
|
|
141
|
+
/**
|
|
142
|
+
* Render the inner content as a child element instead of a `<button>`. Useful for
|
|
143
|
+
* link wrappers — `<Button asChild><Link href="/" /></Button>`.
|
|
144
|
+
*/
|
|
145
|
+
asChild?: boolean;
|
|
146
|
+
}
|
|
147
|
+
declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
|
|
148
|
+
|
|
149
|
+
declare const iconButtonStyles: (props?: ({
|
|
150
|
+
variant?: "primary" | "secondary" | "ghost" | "outline" | null | undefined;
|
|
151
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
152
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
153
|
+
interface IconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'>, VariantProps<typeof iconButtonStyles> {
|
|
154
|
+
/** The glyph or icon node to render. Pure decoration — set `aria-label` for screen readers. */
|
|
155
|
+
icon: ReactNode;
|
|
156
|
+
/**
|
|
157
|
+
* Required: an accessible label since icon buttons have no visible text.
|
|
158
|
+
* Mapped to `aria-label`.
|
|
159
|
+
*/
|
|
160
|
+
'aria-label': string;
|
|
161
|
+
}
|
|
162
|
+
declare const IconButton: react.ForwardRefExoticComponent<IconButtonProps & react.RefAttributes<HTMLButtonElement>>;
|
|
163
|
+
|
|
164
|
+
interface ButtonGroupProps extends HTMLAttributes<HTMLDivElement> {
|
|
165
|
+
/**
|
|
166
|
+
* `orientation="horizontal"` (default) joins children edge-to-edge with shared
|
|
167
|
+
* borders; `vertical` does the same column-wise.
|
|
168
|
+
*/
|
|
169
|
+
orientation?: 'horizontal' | 'vertical';
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Joins a row of `<Button>`s into a segmented control. The group owns the rounded
|
|
173
|
+
* corners and outer border; child buttons render flush.
|
|
174
|
+
*
|
|
175
|
+
* Pass children as `<Button variant="secondary">…</Button>` — the group strips
|
|
176
|
+
* each child's individual radius and adds the connecting borders.
|
|
177
|
+
*/
|
|
178
|
+
declare const ButtonGroup: react.ForwardRefExoticComponent<ButtonGroupProps & react.RefAttributes<HTMLDivElement>>;
|
|
179
|
+
|
|
180
|
+
interface SplitButtonProps extends HTMLAttributes<HTMLDivElement> {
|
|
181
|
+
/** Visual variant applied to BOTH segments. Defaults to `primary`. */
|
|
182
|
+
variant?: ButtonProps['variant'];
|
|
183
|
+
/** Size applied to both segments. Defaults to `md`. */
|
|
184
|
+
size?: ButtonProps['size'];
|
|
185
|
+
/** Click handler for the main action button. */
|
|
186
|
+
onClick?: () => void;
|
|
187
|
+
/** Click handler for the trailing menu (caret) button. */
|
|
188
|
+
onMenu?: () => void;
|
|
189
|
+
/** Disable both segments. */
|
|
190
|
+
disabled?: boolean;
|
|
191
|
+
children: ReactNode;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Two-segment button: a primary action on the left, a menu chevron on the right.
|
|
195
|
+
* Common pattern for "Deploy ▾" or "Save and …" controls.
|
|
196
|
+
*/
|
|
197
|
+
declare const SplitButton: react.ForwardRefExoticComponent<SplitButtonProps & react.RefAttributes<HTMLDivElement>>;
|
|
198
|
+
|
|
199
|
+
interface FABProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
|
|
200
|
+
/** Icon or glyph rendered inside the FAB. Defaults to `✦`. */
|
|
201
|
+
icon?: ReactNode;
|
|
202
|
+
/** Required: accessible label. Maps to `aria-label`. */
|
|
203
|
+
'aria-label': string;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Floating action button — round, accent-bg, accent-glow shadow. Use for the
|
|
207
|
+
* single most-prominent action on a surface (e.g., "Ask anything" trigger).
|
|
208
|
+
*/
|
|
209
|
+
declare const FAB: react.ForwardRefExoticComponent<FABProps & react.RefAttributes<HTMLButtonElement>>;
|
|
210
|
+
|
|
211
|
+
interface CheckboxProps extends Omit<RadixCheckbox.CheckboxProps, 'asChild' | 'children'> {
|
|
212
|
+
/** Optional inline label rendered to the right of the box. */
|
|
213
|
+
label?: ReactNode;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Tri-state checkbox. Set `checked="indeterminate"` for the dash-mark state used
|
|
217
|
+
* in select-all rows.
|
|
218
|
+
*/
|
|
219
|
+
declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.RefAttributes<HTMLButtonElement>>;
|
|
220
|
+
|
|
221
|
+
interface FieldProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
222
|
+
/** Visible label rendered above the control. */
|
|
223
|
+
label?: ReactNode;
|
|
224
|
+
/** Helper text shown below the control when no error is present. */
|
|
225
|
+
hint?: ReactNode;
|
|
226
|
+
/** Error message shown below the control. Displaces `hint` when set. */
|
|
227
|
+
error?: ReactNode;
|
|
228
|
+
/** Marks the field with a visual asterisk (does not enforce validity). */
|
|
229
|
+
required?: boolean;
|
|
230
|
+
/**
|
|
231
|
+
* The control. Receives `id`, `aria-describedby`, and `aria-invalid` automatically.
|
|
232
|
+
* Pass via render prop so the field can wire IDs without consumers thinking about it.
|
|
233
|
+
*/
|
|
234
|
+
children: (props: {
|
|
235
|
+
id: string;
|
|
236
|
+
'aria-describedby': string | undefined;
|
|
237
|
+
'aria-invalid': boolean | undefined;
|
|
238
|
+
}) => ReactNode;
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Form-field wrapper: label + control + hint/error. Wires up the IDs so screen
|
|
242
|
+
* readers connect the label and helper text to the input.
|
|
243
|
+
*
|
|
244
|
+
* <Field label="Email" hint="We never share it">
|
|
245
|
+
* {(p) => <Input type="email" placeholder="me@org.com" {...p} />}
|
|
246
|
+
* </Field>
|
|
247
|
+
*/
|
|
248
|
+
declare function Field({ label, hint, error, required, className, children, ...props }: FieldProps): react_jsx_runtime.JSX.Element;
|
|
249
|
+
|
|
250
|
+
declare const inputWrapperStyles: (props?: ({
|
|
251
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
252
|
+
tone?: "error" | "default" | null | undefined;
|
|
253
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
254
|
+
interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'>, VariantProps<typeof inputWrapperStyles> {
|
|
255
|
+
/** Element rendered to the left of the input (an `IconGlyph`, `@`, etc.). */
|
|
256
|
+
icon?: ReactNode;
|
|
257
|
+
/** Element rendered to the right (a unit suffix, kbd hint, clear button). */
|
|
258
|
+
trailing?: ReactNode;
|
|
259
|
+
/** When true, swaps the wrapper border to error tone (independent of `aria-invalid`). */
|
|
260
|
+
error?: boolean;
|
|
261
|
+
/** Pixel width override; otherwise the wrapper grows to fill its container. */
|
|
262
|
+
width?: number | string;
|
|
263
|
+
}
|
|
264
|
+
declare const Input: react.ForwardRefExoticComponent<InputProps & react.RefAttributes<HTMLInputElement>>;
|
|
265
|
+
|
|
266
|
+
interface SearchInputProps extends InputHTMLAttributes<HTMLInputElement> {
|
|
267
|
+
/** Optional keyboard shortcut hint (e.g., `⌘K`) shown on the right edge. */
|
|
268
|
+
shortcut?: string;
|
|
269
|
+
/** Pixel width or any CSS length. Defaults to `360px`. */
|
|
270
|
+
width?: number | string;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* The hero search field — taller than a regular Input, with a leading magnifying-glass
|
|
274
|
+
* glyph and an optional trailing keyboard-shortcut chip. Used for command bars,
|
|
275
|
+
* topbar search, and entity search.
|
|
276
|
+
*/
|
|
277
|
+
declare const SearchInput: react.ForwardRefExoticComponent<SearchInputProps & react.RefAttributes<HTMLInputElement>>;
|
|
278
|
+
|
|
279
|
+
interface OTPProps {
|
|
280
|
+
/** Number of digit slots. Defaults to 6. */
|
|
281
|
+
length?: number;
|
|
282
|
+
/** Called with the assembled string when every slot has a value. */
|
|
283
|
+
onComplete?: (code: string) => void;
|
|
284
|
+
/** Called with the partial string on every change. */
|
|
285
|
+
onChange?: (value: string) => void;
|
|
286
|
+
/** Initial value (string of digits). */
|
|
287
|
+
defaultValue?: string;
|
|
288
|
+
/** Aria label applied to each individual slot, suffixed with " {n} of {N}". */
|
|
289
|
+
ariaLabel?: string;
|
|
290
|
+
className?: string;
|
|
291
|
+
disabled?: boolean;
|
|
292
|
+
}
|
|
293
|
+
type OTPHandle = {
|
|
294
|
+
focus: () => void;
|
|
295
|
+
reset: () => void;
|
|
296
|
+
};
|
|
297
|
+
/**
|
|
298
|
+
* Six-slot one-time-password input with auto-advance, backspace navigation, and
|
|
299
|
+
* paste-to-fill. Each slot is a single-character `<input>` for screen-reader clarity.
|
|
300
|
+
*/
|
|
301
|
+
declare const OTP: react.ForwardRefExoticComponent<OTPProps & react.RefAttributes<OTPHandle>>;
|
|
302
|
+
|
|
303
|
+
type RadioGroupProps = Omit<RadixRadio.RadioGroupProps, 'asChild'>;
|
|
304
|
+
/**
|
|
305
|
+
* Container for radio items. Wires up roving focus + arrow-key navigation.
|
|
306
|
+
*
|
|
307
|
+
* <RadioGroup value={v} onValueChange={setV}>
|
|
308
|
+
* <Radio value="team" label="Everyone on team" />
|
|
309
|
+
* <Radio value="admins" label="Admins only" />
|
|
310
|
+
* </RadioGroup>
|
|
311
|
+
*/
|
|
312
|
+
declare const RadioGroup: react.ForwardRefExoticComponent<RadioGroupProps & react.RefAttributes<HTMLDivElement>>;
|
|
313
|
+
interface RadioProps extends Omit<RadixRadio.RadioGroupItemProps, 'asChild' | 'children'> {
|
|
314
|
+
/** Optional inline label. */
|
|
315
|
+
label?: ReactNode;
|
|
316
|
+
}
|
|
317
|
+
declare const Radio: react.ForwardRefExoticComponent<RadioProps & react.RefAttributes<HTMLButtonElement>>;
|
|
318
|
+
|
|
319
|
+
declare const SelectRoot: react.FC<RadixSelect.SelectProps>;
|
|
320
|
+
declare const SelectValue: react.ForwardRefExoticComponent<RadixSelect.SelectValueProps & react.RefAttributes<HTMLSpanElement>>;
|
|
321
|
+
declare const SelectGroup: react.ForwardRefExoticComponent<RadixSelect.SelectGroupProps & react.RefAttributes<HTMLDivElement>>;
|
|
322
|
+
declare const SelectLabel: react.ForwardRefExoticComponent<RadixSelect.SelectLabelProps & react.RefAttributes<HTMLDivElement>>;
|
|
323
|
+
declare const triggerClasses: {
|
|
324
|
+
readonly sm: "h-7 px-2 text-[12px]";
|
|
325
|
+
readonly md: "h-[34px] px-[10px] text-[13px]";
|
|
326
|
+
readonly lg: "h-10 px-3 text-[14px]";
|
|
327
|
+
};
|
|
328
|
+
declare const SelectTrigger: react.ForwardRefExoticComponent<RadixSelect.SelectTriggerProps & {
|
|
329
|
+
size?: keyof typeof triggerClasses;
|
|
330
|
+
} & react.RefAttributes<HTMLButtonElement>>;
|
|
331
|
+
declare const SelectContent: react.ForwardRefExoticComponent<RadixSelect.SelectContentProps & react.RefAttributes<HTMLDivElement>>;
|
|
332
|
+
declare const SelectItem: react.ForwardRefExoticComponent<RadixSelect.SelectItemProps & react.RefAttributes<HTMLDivElement>>;
|
|
333
|
+
type SelectOption = string | {
|
|
334
|
+
value: string;
|
|
335
|
+
label: ReactNode;
|
|
336
|
+
};
|
|
337
|
+
interface SelectProps extends Omit<RadixSelect.SelectProps, 'children'> {
|
|
338
|
+
/** Array of strings, or `{value, label}` objects. */
|
|
339
|
+
options: SelectOption[];
|
|
340
|
+
/** Placeholder shown when nothing is selected. */
|
|
341
|
+
placeholder?: string;
|
|
342
|
+
/** Trigger size. */
|
|
343
|
+
size?: keyof typeof triggerClasses;
|
|
344
|
+
/** Optional className for the trigger. */
|
|
345
|
+
className?: string;
|
|
346
|
+
/** Accessible label forwarded to the trigger button. */
|
|
347
|
+
'aria-label'?: string;
|
|
348
|
+
/** ID of an element labelling the trigger. */
|
|
349
|
+
'aria-labelledby'?: string;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* One-line Select. For composition (groups, separators), use the lower-level
|
|
353
|
+
* `SelectRoot/Trigger/Content/Item` exports directly.
|
|
354
|
+
*/
|
|
355
|
+
declare function Select({ options, placeholder, size, className, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, ...rootProps }: SelectProps): react_jsx_runtime.JSX.Element;
|
|
356
|
+
|
|
357
|
+
interface SliderProps extends Omit<RadixSlider.SliderProps, 'asChild'> {
|
|
358
|
+
/** Show the numeric value to the right of the track. */
|
|
359
|
+
showValue?: boolean;
|
|
360
|
+
/** Pixel width or any CSS length. Defaults to `240`. */
|
|
361
|
+
width?: number | string;
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Range slider. Built on Radix Slider for keyboard support (arrow keys nudge,
|
|
365
|
+
* Page Up/Down jumps, Home/End snap to extremes).
|
|
366
|
+
*/
|
|
367
|
+
declare const Slider: react.ForwardRefExoticComponent<SliderProps & react.RefAttributes<HTMLSpanElement>>;
|
|
368
|
+
|
|
369
|
+
interface SwitchProps extends Omit<RadixSwitch.SwitchProps, 'asChild' | 'children'> {
|
|
370
|
+
/** Optional inline label rendered to the right of the switch. */
|
|
371
|
+
label?: ReactNode;
|
|
372
|
+
/** Visual size. Default `md`. */
|
|
373
|
+
size?: 'sm' | 'md';
|
|
374
|
+
}
|
|
375
|
+
declare const Switch: react.ForwardRefExoticComponent<SwitchProps & react.RefAttributes<HTMLButtonElement>>;
|
|
376
|
+
|
|
377
|
+
declare const textareaStyles: (props?: ({
|
|
378
|
+
tone?: "error" | "default" | null | undefined;
|
|
379
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
380
|
+
interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement>, VariantProps<typeof textareaStyles> {
|
|
381
|
+
/** Error tone shortcut. Sets `aria-invalid` and the error border. */
|
|
382
|
+
error?: boolean;
|
|
383
|
+
}
|
|
384
|
+
declare const Textarea: react.ForwardRefExoticComponent<TextareaProps & react.RefAttributes<HTMLTextAreaElement>>;
|
|
385
|
+
|
|
386
|
+
type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
387
|
+
type AvatarStatus = 'ok' | 'warn' | 'err' | 'off';
|
|
388
|
+
interface AvatarProps extends HTMLAttributes<HTMLSpanElement> {
|
|
389
|
+
/** Display name. Used to derive initials and a deterministic background color. */
|
|
390
|
+
name?: string;
|
|
391
|
+
/** Image source. Falls back to initials if loading fails. */
|
|
392
|
+
src?: string;
|
|
393
|
+
/** Predefined size: xs (20) / sm (24) / md (32) / lg (40) / xl (56). */
|
|
394
|
+
size?: AvatarSize;
|
|
395
|
+
/** Optional presence indicator. */
|
|
396
|
+
status?: AvatarStatus;
|
|
397
|
+
/** Override the auto-generated initials (e.g., for non-Latin scripts). */
|
|
398
|
+
initials?: string;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Person/entity avatar. Auto-generates initials and a stable background color from
|
|
402
|
+
* `name`. When `src` is provided, it's the primary; initials show during load and
|
|
403
|
+
* after a load failure.
|
|
404
|
+
*/
|
|
405
|
+
declare const Avatar: react.ForwardRefExoticComponent<AvatarProps & react.RefAttributes<HTMLSpanElement>>;
|
|
406
|
+
|
|
407
|
+
interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {
|
|
408
|
+
/** Names rendered as stacked avatars. */
|
|
409
|
+
names: string[];
|
|
410
|
+
/** Maximum avatars before collapsing into a `+N` chip. Defaults to 3. */
|
|
411
|
+
max?: number;
|
|
412
|
+
/** Avatar size for the whole group. */
|
|
413
|
+
size?: AvatarSize;
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Stacked avatars with overflow chip. Each avatar's initials and color is
|
|
417
|
+
* deterministic from its name.
|
|
418
|
+
*/
|
|
419
|
+
declare const AvatarGroup: react.ForwardRefExoticComponent<AvatarGroupProps & react.RefAttributes<HTMLDivElement>>;
|
|
420
|
+
|
|
421
|
+
declare const badgeStyles: (props?: ({
|
|
422
|
+
variant?: "outline" | "pink" | "purple" | "solid" | "ok" | "warn" | "err" | "neutral" | "accent" | null | undefined;
|
|
423
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
424
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
425
|
+
interface BadgeProps extends HTMLAttributes<HTMLSpanElement>, VariantProps<typeof badgeStyles> {
|
|
426
|
+
/** Show a colored leading dot. */
|
|
427
|
+
dot?: boolean;
|
|
428
|
+
/** Optional leading icon (defers to children). */
|
|
429
|
+
icon?: ReactNode;
|
|
430
|
+
}
|
|
431
|
+
declare const Badge: react.ForwardRefExoticComponent<BadgeProps & react.RefAttributes<HTMLSpanElement>>;
|
|
432
|
+
|
|
433
|
+
declare const cardStyles: (props?: ({
|
|
434
|
+
variant?: "ghost" | "default" | "elevated" | null | undefined;
|
|
435
|
+
interactive?: boolean | null | undefined;
|
|
436
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
437
|
+
interface CardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'>, VariantProps<typeof cardStyles> {
|
|
438
|
+
/** Render a header row with this title (and optional `actions`). */
|
|
439
|
+
title?: ReactNode;
|
|
440
|
+
/** Description shown under the title (or above children when no title). */
|
|
441
|
+
description?: ReactNode;
|
|
442
|
+
/** Action slot rendered to the right of the title. */
|
|
443
|
+
actions?: ReactNode;
|
|
444
|
+
/** Footer slot rendered with a top divider beneath children. */
|
|
445
|
+
footer?: ReactNode;
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Standard surface for a chunk of content. All cards share the same chrome
|
|
449
|
+
* (panel bg, 1px border, 10px radius); variation comes from what's inside.
|
|
450
|
+
*
|
|
451
|
+
* Compose with the `<Card title="…" actions={…} footer={…}>` API for simple
|
|
452
|
+
* cases, or pass children directly for full control.
|
|
453
|
+
*/
|
|
454
|
+
declare const Card: react.ForwardRefExoticComponent<CardProps & react.RefAttributes<HTMLDivElement>>;
|
|
455
|
+
|
|
456
|
+
type StatTrend = 'up' | 'down' | 'flat';
|
|
457
|
+
interface StatCardProps extends HTMLAttributes<HTMLDivElement> {
|
|
458
|
+
/** UPPERCASE eyebrow label above the value. */
|
|
459
|
+
label: ReactNode;
|
|
460
|
+
/** The big number / value. Renders in tabular-nums monospace for ticker comparison. */
|
|
461
|
+
value: ReactNode;
|
|
462
|
+
/** Optional delta string ("+284 today", "-0.3%"). */
|
|
463
|
+
delta?: ReactNode;
|
|
464
|
+
/** Pairs with `delta` to color the change: up = ok, down = err, flat = neutral. */
|
|
465
|
+
trend?: StatTrend;
|
|
466
|
+
/** Optional trailing icon, top-right. */
|
|
467
|
+
icon?: ReactNode;
|
|
468
|
+
}
|
|
469
|
+
/**
|
|
470
|
+
* Card subclass for a single metric. Use in dashboard grids; cap at 4 per row.
|
|
471
|
+
*/
|
|
472
|
+
declare const StatCard: react.ForwardRefExoticComponent<StatCardProps & react.RefAttributes<HTMLDivElement>>;
|
|
473
|
+
|
|
474
|
+
interface ChipProps extends HTMLAttributes<HTMLSpanElement> {
|
|
475
|
+
/** Pill-style leading icon (typically a glyph or `@`/`#`). */
|
|
476
|
+
icon?: ReactNode;
|
|
477
|
+
/** Optional remove handler — renders an inset close button. */
|
|
478
|
+
removable?: boolean;
|
|
479
|
+
onRemove?: () => void;
|
|
480
|
+
children: ReactNode;
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Pill-shaped filter chip. Used in command palette tag rows, search filter strips,
|
|
484
|
+
* and AI suggestion lists. Differs from `Tag` by being pill-shaped (full radius)
|
|
485
|
+
* and slightly more decorative.
|
|
486
|
+
*/
|
|
487
|
+
declare const Chip: react.ForwardRefExoticComponent<ChipProps & react.RefAttributes<HTMLSpanElement>>;
|
|
488
|
+
|
|
489
|
+
type KbdProps = HTMLAttributes<HTMLElement>;
|
|
490
|
+
/**
|
|
491
|
+
* Keyboard shortcut display — `<Kbd>⌘</Kbd><Kbd>K</Kbd>`. Uses `<kbd>` semantics
|
|
492
|
+
* so screen readers announce it as a key.
|
|
493
|
+
*/
|
|
494
|
+
declare const Kbd: react.ForwardRefExoticComponent<KbdProps & react.RefAttributes<HTMLElement>>;
|
|
495
|
+
|
|
496
|
+
declare const skeletonStyles: (props?: ({
|
|
497
|
+
shape?: "circle" | "line" | "block" | null | undefined;
|
|
498
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
499
|
+
interface SkeletonProps extends HTMLAttributes<HTMLDivElement>, VariantProps<typeof skeletonStyles> {
|
|
500
|
+
/** Width override — accepts any CSS length, e.g. `'70%'`, `120`. */
|
|
501
|
+
width?: number | string;
|
|
502
|
+
/** Height override. Defaults differ by shape: `line` = 14, `block` = 80, `circle` = 40. */
|
|
503
|
+
height?: number | string;
|
|
504
|
+
}
|
|
505
|
+
declare const Skeleton: react.ForwardRefExoticComponent<SkeletonProps & react.RefAttributes<HTMLDivElement>>;
|
|
506
|
+
|
|
507
|
+
type StatusState = 'ok' | 'warn' | 'err' | 'off' | 'sync' | 'accent';
|
|
508
|
+
interface StatusDotProps extends HTMLAttributes<HTMLSpanElement> {
|
|
509
|
+
/** Semantic status. */
|
|
510
|
+
state?: StatusState;
|
|
511
|
+
/** Optional label rendered next to the dot. */
|
|
512
|
+
label?: ReactNode;
|
|
513
|
+
/** Pulse the dot — used for `sync` state to indicate live activity. */
|
|
514
|
+
pulse?: boolean;
|
|
515
|
+
/** Pixel diameter. Defaults to 8px. */
|
|
516
|
+
size?: number;
|
|
517
|
+
}
|
|
518
|
+
declare const StatusDot: react.ForwardRefExoticComponent<StatusDotProps & react.RefAttributes<HTMLSpanElement>>;
|
|
519
|
+
|
|
520
|
+
interface TagProps extends HTMLAttributes<HTMLSpanElement> {
|
|
521
|
+
/** Optional close button. When provided, a `×` rendered on the right calls it. */
|
|
522
|
+
onRemove?: () => void;
|
|
523
|
+
/** Optional leading icon. */
|
|
524
|
+
icon?: ReactNode;
|
|
525
|
+
/** Pixel height. Defaults to 22px. */
|
|
526
|
+
size?: number;
|
|
527
|
+
children: ReactNode;
|
|
528
|
+
}
|
|
529
|
+
/**
|
|
530
|
+
* Compact label with optional remove button. Used for selected filters,
|
|
531
|
+
* applied tags, mention tokens.
|
|
532
|
+
*/
|
|
533
|
+
declare const Tag: react.ForwardRefExoticComponent<TagProps & react.RefAttributes<HTMLSpanElement>>;
|
|
534
|
+
|
|
535
|
+
declare const ContextMenuRoot: react.FC<RadixContext.ContextMenuProps>;
|
|
536
|
+
declare const ContextMenuTrigger: react.ForwardRefExoticComponent<RadixContext.ContextMenuTriggerProps & react.RefAttributes<HTMLSpanElement>>;
|
|
537
|
+
declare const ContextMenuPortal: react.FC<RadixContext.ContextMenuPortalProps>;
|
|
538
|
+
declare const ContextMenuContent: react.ForwardRefExoticComponent<RadixContext.ContextMenuContentProps & react.RefAttributes<HTMLDivElement>>;
|
|
539
|
+
interface ContextMenuItemProps extends RadixContext.ContextMenuItemProps {
|
|
540
|
+
icon?: ReactNode;
|
|
541
|
+
trailing?: ReactNode;
|
|
542
|
+
destructive?: boolean;
|
|
543
|
+
}
|
|
544
|
+
declare const ContextMenuItem: react.ForwardRefExoticComponent<ContextMenuItemProps & react.RefAttributes<HTMLDivElement>>;
|
|
545
|
+
declare const ContextMenuSeparator: react.ForwardRefExoticComponent<RadixContext.ContextMenuSeparatorProps & react.RefAttributes<HTMLDivElement>>;
|
|
546
|
+
declare const ContextMenu: react.FC<RadixContext.ContextMenuProps>;
|
|
547
|
+
|
|
548
|
+
/**
|
|
549
|
+
* Modal dialog. Built on Radix Dialog so focus trap, ESC, and ARIA come for free.
|
|
550
|
+
*
|
|
551
|
+
* Two APIs:
|
|
552
|
+
* 1. Composition: `<Dialog open={…}><DialogContent>…</DialogContent></Dialog>`
|
|
553
|
+
* 2. Convenience: `<Dialog open={…} title="…" description="…" footer={…}>body</Dialog>`
|
|
554
|
+
*/
|
|
555
|
+
declare const DialogRoot: react.FC<RadixDialog.DialogProps>;
|
|
556
|
+
declare const DialogTrigger: react.ForwardRefExoticComponent<RadixDialog.DialogTriggerProps & react.RefAttributes<HTMLButtonElement>>;
|
|
557
|
+
declare const DialogClose: react.ForwardRefExoticComponent<RadixDialog.DialogCloseProps & react.RefAttributes<HTMLButtonElement>>;
|
|
558
|
+
declare const DialogPortal: react.FC<RadixDialog.DialogPortalProps>;
|
|
559
|
+
declare const DialogOverlay: react.ForwardRefExoticComponent<RadixDialog.DialogOverlayProps & react.RefAttributes<HTMLDivElement>>;
|
|
560
|
+
interface DialogContentProps extends RadixDialog.DialogContentProps {
|
|
561
|
+
/** Pixel max-width of the panel. Defaults to 460. */
|
|
562
|
+
width?: number | string;
|
|
563
|
+
}
|
|
564
|
+
declare const DialogContent: react.ForwardRefExoticComponent<DialogContentProps & react.RefAttributes<HTMLDivElement>>;
|
|
565
|
+
interface DialogProps extends RadixDialog.DialogProps {
|
|
566
|
+
/** Convenience: title rendered with proper heading semantics. */
|
|
567
|
+
title?: ReactNode;
|
|
568
|
+
/** Convenience: description rendered with proper a11y description. */
|
|
569
|
+
description?: ReactNode;
|
|
570
|
+
/** Footer slot — typically buttons. */
|
|
571
|
+
footer?: ReactNode;
|
|
572
|
+
/** Pixel max-width of the panel. */
|
|
573
|
+
width?: number | string;
|
|
574
|
+
/** When set, content is wrapped in a content frame; omit for full custom layout. */
|
|
575
|
+
children?: ReactNode;
|
|
576
|
+
}
|
|
577
|
+
declare function Dialog({ title, description, footer, width, children, ...rootProps }: DialogProps): react_jsx_runtime.JSX.Element;
|
|
578
|
+
|
|
579
|
+
type DrawerSide = 'left' | 'right';
|
|
580
|
+
interface DrawerProps extends RadixDialog.DialogProps {
|
|
581
|
+
/** Side the drawer slides in from. */
|
|
582
|
+
side?: DrawerSide;
|
|
583
|
+
/** Title rendered in the drawer header (with built-in close button). */
|
|
584
|
+
title?: ReactNode;
|
|
585
|
+
/** Width override. Defaults to 420. */
|
|
586
|
+
width?: number | string;
|
|
587
|
+
children?: ReactNode;
|
|
588
|
+
}
|
|
589
|
+
/**
|
|
590
|
+
* Side-panel overlay. Same focus-trap + ESC + backdrop semantics as Dialog,
|
|
591
|
+
* just slid in from the side.
|
|
592
|
+
*/
|
|
593
|
+
declare const Drawer: react.ForwardRefExoticComponent<DrawerProps & react.RefAttributes<HTMLDivElement>>;
|
|
594
|
+
|
|
595
|
+
interface SheetProps extends RadixDialog.DialogProps {
|
|
596
|
+
/** Optional title rendered above the body. */
|
|
597
|
+
title?: ReactNode;
|
|
598
|
+
/** Width override. Defaults to `min(640px, 90vw)`. */
|
|
599
|
+
width?: number | string;
|
|
600
|
+
children?: ReactNode;
|
|
601
|
+
}
|
|
602
|
+
/**
|
|
603
|
+
* Bottom sheet overlay. Slides up from the bottom edge of the viewport, with a
|
|
604
|
+
* subtle drag-handle. Useful for quick actions on mobile-leaning surfaces.
|
|
605
|
+
*/
|
|
606
|
+
declare const Sheet: react.ForwardRefExoticComponent<SheetProps & react.RefAttributes<HTMLDivElement>>;
|
|
607
|
+
|
|
608
|
+
/**
|
|
609
|
+
* Confirmation dialog. Stricter than Dialog: cannot be closed by clicking the
|
|
610
|
+
* backdrop, requires an explicit cancel/confirm action.
|
|
611
|
+
*/
|
|
612
|
+
declare const AlertDialogRoot: react.FC<RadixAlert.AlertDialogProps>;
|
|
613
|
+
declare const AlertDialogTrigger: react.ForwardRefExoticComponent<RadixAlert.AlertDialogTriggerProps & react.RefAttributes<HTMLButtonElement>>;
|
|
614
|
+
declare const AlertDialogAction: react.ForwardRefExoticComponent<RadixAlert.AlertDialogActionProps & react.RefAttributes<HTMLButtonElement>>;
|
|
615
|
+
declare const AlertDialogCancel: react.ForwardRefExoticComponent<RadixAlert.AlertDialogCancelProps & react.RefAttributes<HTMLButtonElement>>;
|
|
616
|
+
interface AlertDialogProps extends RadixAlert.AlertDialogProps {
|
|
617
|
+
title: ReactNode;
|
|
618
|
+
description?: ReactNode;
|
|
619
|
+
/** Confirm + cancel buttons or any custom footer slot. */
|
|
620
|
+
footer?: ReactNode;
|
|
621
|
+
width?: number | string;
|
|
622
|
+
}
|
|
623
|
+
declare const AlertDialog: react.ForwardRefExoticComponent<AlertDialogProps & react.RefAttributes<HTMLDivElement>>;
|
|
624
|
+
|
|
625
|
+
declare const DropdownMenuRoot: react.FC<RadixMenu.DropdownMenuProps>;
|
|
626
|
+
declare const DropdownMenuTrigger: react.ForwardRefExoticComponent<RadixMenu.DropdownMenuTriggerProps & react.RefAttributes<HTMLButtonElement>>;
|
|
627
|
+
declare const DropdownMenuPortal: react.FC<RadixMenu.DropdownMenuPortalProps>;
|
|
628
|
+
declare const DropdownMenuGroup: react.ForwardRefExoticComponent<RadixMenu.DropdownMenuGroupProps & react.RefAttributes<HTMLDivElement>>;
|
|
629
|
+
declare const DropdownMenuLabel: react.ForwardRefExoticComponent<RadixMenu.DropdownMenuLabelProps & react.RefAttributes<HTMLDivElement>>;
|
|
630
|
+
declare const DropdownMenuRadioGroup: react.ForwardRefExoticComponent<RadixMenu.DropdownMenuRadioGroupProps & react.RefAttributes<HTMLDivElement>>;
|
|
631
|
+
declare const DropdownMenuContent: react.ForwardRefExoticComponent<RadixMenu.DropdownMenuContentProps & react.RefAttributes<HTMLDivElement>>;
|
|
632
|
+
interface MenuItemProps extends RadixMenu.DropdownMenuItemProps {
|
|
633
|
+
/** Icon rendered to the left of the label. */
|
|
634
|
+
icon?: ReactNode;
|
|
635
|
+
/** Trailing hint — typically a kbd shortcut. */
|
|
636
|
+
trailing?: ReactNode;
|
|
637
|
+
/** Style as destructive (red). Doesn't change behavior. */
|
|
638
|
+
destructive?: boolean;
|
|
639
|
+
}
|
|
640
|
+
declare const MenuItem: react.ForwardRefExoticComponent<MenuItemProps & react.RefAttributes<HTMLDivElement>>;
|
|
641
|
+
declare const MenuCheckboxItem: react.ForwardRefExoticComponent<RadixMenu.DropdownMenuCheckboxItemProps & react.RefAttributes<HTMLDivElement>>;
|
|
642
|
+
declare const MenuSeparator: react.ForwardRefExoticComponent<RadixMenu.DropdownMenuSeparatorProps & react.RefAttributes<HTMLDivElement>>;
|
|
643
|
+
/** Convenience export so consumers can `<DropdownMenu>...</DropdownMenu>`. */
|
|
644
|
+
declare const DropdownMenu: react.FC<RadixMenu.DropdownMenuProps>;
|
|
645
|
+
|
|
646
|
+
declare const HoverCardRoot: react.FC<RadixHoverCard.HoverCardProps>;
|
|
647
|
+
declare const HoverCardTrigger: react.ForwardRefExoticComponent<RadixHoverCard.HoverCardTriggerProps & react.RefAttributes<HTMLAnchorElement>>;
|
|
648
|
+
declare const HoverCardPortal: react.FC<RadixHoverCard.HoverCardPortalProps>;
|
|
649
|
+
declare const HoverCardContent: react.ForwardRefExoticComponent<RadixHoverCard.HoverCardContentProps & react.RefAttributes<HTMLDivElement>>;
|
|
650
|
+
interface HoverCardProps extends RadixHoverCard.HoverCardProps {
|
|
651
|
+
trigger: ReactNode;
|
|
652
|
+
content: ReactNode;
|
|
653
|
+
}
|
|
654
|
+
/** Convenience wrapper — pass `trigger` and `content` as props. */
|
|
655
|
+
declare function HoverCard({ trigger, content, ...rootProps }: HoverCardProps): react_jsx_runtime.JSX.Element;
|
|
656
|
+
|
|
657
|
+
declare const PopoverRoot: react.FC<RadixPopover.PopoverProps>;
|
|
658
|
+
declare const PopoverTrigger: react.ForwardRefExoticComponent<RadixPopover.PopoverTriggerProps & react.RefAttributes<HTMLButtonElement>>;
|
|
659
|
+
declare const PopoverAnchor: react.ForwardRefExoticComponent<RadixPopover.PopoverAnchorProps & react.RefAttributes<HTMLDivElement>>;
|
|
660
|
+
declare const PopoverPortal: react.FC<RadixPopover.PopoverPortalProps>;
|
|
661
|
+
declare const PopoverClose: react.ForwardRefExoticComponent<RadixPopover.PopoverCloseProps & react.RefAttributes<HTMLButtonElement>>;
|
|
662
|
+
declare const PopoverArrow: react.ForwardRefExoticComponent<RadixPopover.PopoverArrowProps & react.RefAttributes<SVGSVGElement>>;
|
|
663
|
+
declare const PopoverContent: react.ForwardRefExoticComponent<RadixPopover.PopoverContentProps & react.RefAttributes<HTMLDivElement>>;
|
|
664
|
+
/**
|
|
665
|
+
* Convenience export — the Radix Root with our default styles applied to Content.
|
|
666
|
+
*
|
|
667
|
+
* <Popover>
|
|
668
|
+
* <PopoverTrigger asChild><Button>Open</Button></PopoverTrigger>
|
|
669
|
+
* <PopoverContent>…</PopoverContent>
|
|
670
|
+
* </Popover>
|
|
671
|
+
*/
|
|
672
|
+
declare const Popover: react.FC<RadixPopover.PopoverProps>;
|
|
673
|
+
|
|
674
|
+
type ToastVariant = 'default' | 'info' | 'ok' | 'warn' | 'err';
|
|
675
|
+
interface ToastInput {
|
|
676
|
+
/** Optional ID; auto-generated when omitted. Useful for `dismiss(id)`. */
|
|
677
|
+
id?: string;
|
|
678
|
+
variant?: ToastVariant;
|
|
679
|
+
title: ReactNode;
|
|
680
|
+
description?: ReactNode;
|
|
681
|
+
/** Inline action — typically a Button. */
|
|
682
|
+
action?: ReactNode;
|
|
683
|
+
/** Auto-dismiss after N ms. Default 4000. Set to 0 to require manual dismiss. */
|
|
684
|
+
duration?: number;
|
|
685
|
+
}
|
|
686
|
+
interface ToastEntry extends ToastInput {
|
|
687
|
+
id: string;
|
|
688
|
+
}
|
|
689
|
+
interface ToastContextValue {
|
|
690
|
+
toast: (t: ToastInput) => string;
|
|
691
|
+
dismiss: (id: string) => void;
|
|
692
|
+
}
|
|
693
|
+
/**
|
|
694
|
+
* Wrap your app once at the root. Components inside can call `useToast()` to
|
|
695
|
+
* push transient messages from anywhere.
|
|
696
|
+
*/
|
|
697
|
+
declare function ToastProvider({ children }: {
|
|
698
|
+
children: ReactNode;
|
|
699
|
+
}): react_jsx_runtime.JSX.Element;
|
|
700
|
+
declare function useToast(): ToastContextValue;
|
|
701
|
+
interface ToastCardProps {
|
|
702
|
+
toast: ToastEntry;
|
|
703
|
+
onDismiss: () => void;
|
|
704
|
+
}
|
|
705
|
+
declare const ToastCard: react.ForwardRefExoticComponent<ToastCardProps & react.RefAttributes<HTMLLIElement>>;
|
|
706
|
+
|
|
707
|
+
/**
|
|
708
|
+
* Tooltip — small, transient label that appears on hover/focus.
|
|
709
|
+
*
|
|
710
|
+
* Wrap your app once in `<TooltipProvider>` (Radix's provider) for shared delay
|
|
711
|
+
* configuration; a single tooltip can be used standalone via `<Tooltip>` shorthand.
|
|
712
|
+
*/
|
|
713
|
+
declare const TooltipProvider: react.FC<RadixTooltip.TooltipProviderProps>;
|
|
714
|
+
declare const TooltipRoot: react.FC<RadixTooltip.TooltipProps>;
|
|
715
|
+
declare const TooltipTrigger: react.ForwardRefExoticComponent<RadixTooltip.TooltipTriggerProps & react.RefAttributes<HTMLButtonElement>>;
|
|
716
|
+
declare const TooltipPortal: react.FC<RadixTooltip.TooltipPortalProps>;
|
|
717
|
+
declare const TooltipArrow: react.ForwardRefExoticComponent<RadixTooltip.TooltipArrowProps & react.RefAttributes<SVGSVGElement>>;
|
|
718
|
+
declare const TooltipContent: react.ForwardRefExoticComponent<RadixTooltip.TooltipContentProps & react.RefAttributes<HTMLDivElement>>;
|
|
719
|
+
interface TooltipProps {
|
|
720
|
+
/** Tooltip text/content. */
|
|
721
|
+
content: ReactNode;
|
|
722
|
+
/** Trigger element — usually a Button or IconButton. */
|
|
723
|
+
children: ReactNode;
|
|
724
|
+
/** Side: top (default) | right | bottom | left. */
|
|
725
|
+
side?: RadixTooltip.TooltipContentProps['side'];
|
|
726
|
+
/** Open/close delay in ms (overrides provider default). */
|
|
727
|
+
delayDuration?: number;
|
|
728
|
+
}
|
|
729
|
+
/**
|
|
730
|
+
* One-liner tooltip wrapper. Wraps a trigger child with the full Radix stack.
|
|
731
|
+
* For composition (multiple triggers in a list), use the lower-level exports.
|
|
732
|
+
*/
|
|
733
|
+
declare function Tooltip({ content, children, side, delayDuration }: TooltipProps): react_jsx_runtime.JSX.Element;
|
|
734
|
+
|
|
735
|
+
/**
|
|
736
|
+
* Alert — inline messaging block. Four tones (info / ok / warn / err) with a
|
|
737
|
+
* matching glyph, a left accent rule, and an optional dismiss action.
|
|
738
|
+
*
|
|
739
|
+
* For interrupting alerts (errors that need acknowledgment) use AlertDialog.
|
|
740
|
+
* For transient feedback use Toast.
|
|
741
|
+
*/
|
|
742
|
+
type AlertVariant = 'info' | 'ok' | 'warn' | 'err';
|
|
743
|
+
declare const alertStyles: (props?: ({
|
|
744
|
+
variant?: "ok" | "warn" | "err" | "info" | null | undefined;
|
|
745
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
746
|
+
interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'>, VariantProps<typeof alertStyles> {
|
|
747
|
+
/** Bold title text. */
|
|
748
|
+
title?: ReactNode;
|
|
749
|
+
/** Body description. */
|
|
750
|
+
description?: ReactNode;
|
|
751
|
+
/** Icon override; defaults to a glyph matched to the variant. */
|
|
752
|
+
icon?: ReactNode;
|
|
753
|
+
/** Optional trailing actions (rendered to the right of the description). */
|
|
754
|
+
action?: ReactNode;
|
|
755
|
+
}
|
|
756
|
+
declare const Alert: react.ForwardRefExoticComponent<AlertProps & react.RefAttributes<HTMLDivElement>>;
|
|
757
|
+
|
|
758
|
+
/**
|
|
759
|
+
* Banner — top-of-page notice. Spans the full width of its container, uses a
|
|
760
|
+
* tinted background derived from the variant color, and supports `sticky`
|
|
761
|
+
* positioning so it stays at the top of the viewport on scroll.
|
|
762
|
+
*/
|
|
763
|
+
type BannerVariant = 'info' | 'ok' | 'warn' | 'err';
|
|
764
|
+
declare const bannerStyles: (props?: ({
|
|
765
|
+
variant?: "ok" | "warn" | "err" | "info" | null | undefined;
|
|
766
|
+
sticky?: boolean | null | undefined;
|
|
767
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
768
|
+
interface BannerProps extends HTMLAttributes<HTMLDivElement>, VariantProps<typeof bannerStyles> {
|
|
769
|
+
/** Override the leading glyph. */
|
|
770
|
+
icon?: ReactNode;
|
|
771
|
+
/** Optional trailing action (e.g., a link). Rendered with `ml-auto`. */
|
|
772
|
+
action?: ReactNode;
|
|
773
|
+
}
|
|
774
|
+
declare const Banner: react.ForwardRefExoticComponent<BannerProps & react.RefAttributes<HTMLDivElement>>;
|
|
775
|
+
|
|
776
|
+
/**
|
|
777
|
+
* Breadcrumbs — composed of `<Crumb>` children. The last crumb is treated as
|
|
778
|
+
* the current page (rendered as plain text with `aria-current="page"`); earlier
|
|
779
|
+
* crumbs render as links if `href` is provided. Pass `separator` to swap the
|
|
780
|
+
* default `/` divider.
|
|
781
|
+
*/
|
|
782
|
+
interface BreadcrumbsProps extends HTMLAttributes<HTMLElement> {
|
|
783
|
+
/** Element to render between crumbs. Defaults to a dim `/`. */
|
|
784
|
+
separator?: ReactNode;
|
|
785
|
+
}
|
|
786
|
+
declare const Breadcrumbs: react.ForwardRefExoticComponent<BreadcrumbsProps & react.RefAttributes<HTMLElement>>;
|
|
787
|
+
interface CrumbProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
788
|
+
/** Marks this crumb as the current page — disables the link and applies emphasis styling. */
|
|
789
|
+
current?: boolean;
|
|
790
|
+
}
|
|
791
|
+
declare const Crumb: react.ForwardRefExoticComponent<CrumbProps & react.RefAttributes<HTMLAnchorElement>>;
|
|
792
|
+
|
|
793
|
+
/**
|
|
794
|
+
* Combobox — text input with an attached, type-to-filter listbox. Implements
|
|
795
|
+
* the WAI-ARIA combobox pattern (input owns focus; listbox is referenced via
|
|
796
|
+
* aria-controls; highlighted option via aria-activedescendant).
|
|
797
|
+
*
|
|
798
|
+
* Selection (`value`) and the visible query are independent. Selecting an
|
|
799
|
+
* option syncs the query to the option's label so the user sees what was
|
|
800
|
+
* picked; subsequent typing reopens the list and re-filters.
|
|
801
|
+
*/
|
|
802
|
+
type ComboboxOption = string | {
|
|
803
|
+
value: string;
|
|
804
|
+
label?: ReactNode;
|
|
805
|
+
description?: ReactNode;
|
|
806
|
+
/** Disable selection without removing the option from the list. */
|
|
807
|
+
disabled?: boolean;
|
|
808
|
+
};
|
|
809
|
+
interface ComboboxProps {
|
|
810
|
+
/** Available options. Strings are normalized to `{ value, label: value }`. */
|
|
811
|
+
options: ReadonlyArray<ComboboxOption>;
|
|
812
|
+
/** Controlled selected option value. */
|
|
813
|
+
value?: string;
|
|
814
|
+
/** Default selected value (uncontrolled). */
|
|
815
|
+
defaultValue?: string;
|
|
816
|
+
/** Fires with the option's `value` when a selection is committed. */
|
|
817
|
+
onValueChange?: (value: string) => void;
|
|
818
|
+
/** Controlled query. */
|
|
819
|
+
query?: string;
|
|
820
|
+
/** Default query (uncontrolled). */
|
|
821
|
+
defaultQuery?: string;
|
|
822
|
+
/** Fires whenever the query changes. */
|
|
823
|
+
onQueryChange?: (query: string) => void;
|
|
824
|
+
placeholder?: string;
|
|
825
|
+
/** Custom matcher. Default: case-insensitive substring on label/description. */
|
|
826
|
+
filter?: (option: NormalizedOption, query: string) => boolean;
|
|
827
|
+
/** Empty-state node rendered when filtering yields nothing. */
|
|
828
|
+
emptyState?: ReactNode;
|
|
829
|
+
/** Pixel or CSS width of the wrapper. Default 260. */
|
|
830
|
+
width?: number | string;
|
|
831
|
+
disabled?: boolean;
|
|
832
|
+
name?: string;
|
|
833
|
+
id?: string;
|
|
834
|
+
'aria-label'?: string;
|
|
835
|
+
}
|
|
836
|
+
interface NormalizedOption {
|
|
837
|
+
value: string;
|
|
838
|
+
label: ReactNode;
|
|
839
|
+
description?: ReactNode;
|
|
840
|
+
searchText: string;
|
|
841
|
+
disabled?: boolean;
|
|
842
|
+
}
|
|
843
|
+
declare const Combobox: react.ForwardRefExoticComponent<ComboboxProps & react.RefAttributes<HTMLInputElement>>;
|
|
844
|
+
|
|
845
|
+
/**
|
|
846
|
+
* CommandPalette — keyboard-driven command launcher. Built on Radix Dialog
|
|
847
|
+
* (focus trap, Esc, scroll lock for free) with a controlled query input,
|
|
848
|
+
* grouped results, and arrow-key navigation provided by `useKeyboardList`.
|
|
849
|
+
*
|
|
850
|
+
* The component is presentation-only over its results: the consumer owns the
|
|
851
|
+
* query state and is responsible for filtering. Pass already-matched groups
|
|
852
|
+
* via `groups`. For the common substring case, `filterCommandItems(query, …)`
|
|
853
|
+
* is exported as a one-liner.
|
|
854
|
+
*/
|
|
855
|
+
interface CommandPaletteItem {
|
|
856
|
+
/** Stable id passed back to `onSelect`. */
|
|
857
|
+
id: string;
|
|
858
|
+
/** Visible label / title. */
|
|
859
|
+
label: ReactNode;
|
|
860
|
+
/** Secondary line beneath the label. */
|
|
861
|
+
description?: ReactNode;
|
|
862
|
+
/** Leading glyph or icon node. */
|
|
863
|
+
glyph?: ReactNode;
|
|
864
|
+
/** Trailing hint, often a kbd shortcut. */
|
|
865
|
+
trailing?: ReactNode;
|
|
866
|
+
/** Lower-cased haystack used by `filterCommandItems`. Defaults to `label + description`. */
|
|
867
|
+
searchText?: string;
|
|
868
|
+
}
|
|
869
|
+
interface CommandPaletteGroup {
|
|
870
|
+
/** Group heading label. */
|
|
871
|
+
label?: ReactNode;
|
|
872
|
+
items: ReadonlyArray<CommandPaletteItem>;
|
|
873
|
+
}
|
|
874
|
+
interface CommandPaletteProps {
|
|
875
|
+
open: boolean;
|
|
876
|
+
onOpenChange: (open: boolean) => void;
|
|
877
|
+
query: string;
|
|
878
|
+
onQueryChange: (query: string) => void;
|
|
879
|
+
/** Already-matched, ready-to-render groups. Use `filterCommandItems` for the simple case. */
|
|
880
|
+
groups: ReadonlyArray<CommandPaletteGroup>;
|
|
881
|
+
/** Called with the item id when the user picks an item (click or Enter). */
|
|
882
|
+
onSelect: (id: string) => void;
|
|
883
|
+
/** Placeholder text for the search input. */
|
|
884
|
+
placeholder?: string;
|
|
885
|
+
/** Footer hint row (kbd legend). Accepts free-form children. */
|
|
886
|
+
footer?: ReactNode;
|
|
887
|
+
/** Empty-state node when groups resolve to zero items. */
|
|
888
|
+
emptyState?: ReactNode;
|
|
889
|
+
/** Pixel width of the palette panel. Default 540. */
|
|
890
|
+
width?: number;
|
|
891
|
+
}
|
|
892
|
+
declare const CommandPalette: react.ForwardRefExoticComponent<CommandPaletteProps & react.RefAttributes<HTMLDivElement>>;
|
|
893
|
+
/**
|
|
894
|
+
* Substring filter helper. Lower-cases `query` and matches any item whose
|
|
895
|
+
* `searchText` (or computed `label + description`) contains it. Preserves
|
|
896
|
+
* groups; drops empty ones.
|
|
897
|
+
*/
|
|
898
|
+
declare function filterCommandItems(query: string, groups: ReadonlyArray<CommandPaletteGroup>): CommandPaletteGroup[];
|
|
899
|
+
|
|
900
|
+
/**
|
|
901
|
+
* DataTable — generic, sortable, selectable table. The component is a
|
|
902
|
+
* "headless-with-defaults": you bring your data and column definitions, the
|
|
903
|
+
* table handles sort state, selection (with indeterminate "select-all"),
|
|
904
|
+
* sticky header, and basic ARIA.
|
|
905
|
+
*
|
|
906
|
+
* Sort: if a column declares an `accessor`, clicking its header toggles the
|
|
907
|
+
* direction. Selection: pass `selectable` to render a checkbox column with a
|
|
908
|
+
* select-all in the header.
|
|
909
|
+
*/
|
|
910
|
+
interface DataTableColumn<T> {
|
|
911
|
+
/** Stable id used for sorting state. */
|
|
912
|
+
key: string;
|
|
913
|
+
/** Header content. */
|
|
914
|
+
header: ReactNode;
|
|
915
|
+
/** Custom cell renderer. Defaults to the accessor's stringified value. */
|
|
916
|
+
cell?: (row: T) => ReactNode;
|
|
917
|
+
/** Returns the sort key for `row`. When omitted, the column is not sortable. */
|
|
918
|
+
accessor?: (row: T) => string | number;
|
|
919
|
+
align?: 'left' | 'right' | 'center';
|
|
920
|
+
/** CSS width — string or number (px). */
|
|
921
|
+
width?: number | string;
|
|
922
|
+
}
|
|
923
|
+
interface DataTableSort {
|
|
924
|
+
key: string;
|
|
925
|
+
direction: 'asc' | 'desc';
|
|
926
|
+
}
|
|
927
|
+
interface DataTableProps<T> {
|
|
928
|
+
data: ReadonlyArray<T>;
|
|
929
|
+
columns: ReadonlyArray<DataTableColumn<T>>;
|
|
930
|
+
/** Returns a stable id for `row`. Required for selection + React keys. */
|
|
931
|
+
rowKey: (row: T) => string;
|
|
932
|
+
/** Controlled sort state. */
|
|
933
|
+
sort?: DataTableSort | null;
|
|
934
|
+
defaultSort?: DataTableSort | null;
|
|
935
|
+
onSortChange?: (sort: DataTableSort | null) => void;
|
|
936
|
+
/** Show the leading checkbox column. */
|
|
937
|
+
selectable?: boolean;
|
|
938
|
+
/** Controlled selection. */
|
|
939
|
+
selected?: ReadonlySet<string>;
|
|
940
|
+
defaultSelected?: ReadonlyArray<string>;
|
|
941
|
+
onSelectionChange?: (selection: Set<string>) => void;
|
|
942
|
+
/** Rendered when `data` is empty. */
|
|
943
|
+
emptyState?: ReactNode;
|
|
944
|
+
/** Sticky table header (requires the table to live in a scroll container). */
|
|
945
|
+
stickyHeader?: boolean;
|
|
946
|
+
/** Caption for screen readers. */
|
|
947
|
+
caption?: ReactNode;
|
|
948
|
+
className?: string;
|
|
949
|
+
}
|
|
950
|
+
declare function DataTable<T>(props: DataTableProps<T> & {
|
|
951
|
+
ref?: Ref<HTMLTableElement>;
|
|
952
|
+
}): react_jsx_runtime.JSX.Element;
|
|
953
|
+
|
|
954
|
+
interface CalendarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {
|
|
955
|
+
/** Currently selected date. */
|
|
956
|
+
selected?: Date;
|
|
957
|
+
/** Default selected date (uncontrolled). */
|
|
958
|
+
defaultSelected?: Date;
|
|
959
|
+
/** Fires with the selected date. */
|
|
960
|
+
onSelect?: (date: Date) => void;
|
|
961
|
+
/** Currently visible month (0-indexed) and year. */
|
|
962
|
+
month?: number;
|
|
963
|
+
year?: number;
|
|
964
|
+
/** Default visible month (0-indexed) and year (uncontrolled). */
|
|
965
|
+
defaultMonth?: number;
|
|
966
|
+
defaultYear?: number;
|
|
967
|
+
/** Fires when the visible month changes. */
|
|
968
|
+
onVisibleMonthChange?: (params: {
|
|
969
|
+
month: number;
|
|
970
|
+
year: number;
|
|
971
|
+
}) => void;
|
|
972
|
+
/** Optional disable predicate. */
|
|
973
|
+
isDateDisabled?: (date: Date) => boolean;
|
|
974
|
+
}
|
|
975
|
+
declare const Calendar: react.ForwardRefExoticComponent<CalendarProps & react.RefAttributes<HTMLDivElement>>;
|
|
976
|
+
|
|
977
|
+
/**
|
|
978
|
+
* DatePicker — a button-style trigger that opens a popover containing a
|
|
979
|
+
* `Calendar`. Pass `value` / `onValueChange` for the selected date.
|
|
980
|
+
*/
|
|
981
|
+
interface DatePickerProps {
|
|
982
|
+
value?: Date;
|
|
983
|
+
defaultValue?: Date;
|
|
984
|
+
onValueChange?: (value: Date) => void;
|
|
985
|
+
placeholder?: string;
|
|
986
|
+
/** Format the selected date for display. Default: `toLocaleDateString()`. */
|
|
987
|
+
format?: (date: Date) => string;
|
|
988
|
+
/** Optional disable predicate forwarded to Calendar. */
|
|
989
|
+
isDateDisabled?: (date: Date) => boolean;
|
|
990
|
+
/** Pixel width of the trigger button. Default 200. */
|
|
991
|
+
width?: number | string;
|
|
992
|
+
disabled?: boolean;
|
|
993
|
+
/** Content for the trigger when no date is selected. Defaults to `placeholder`. */
|
|
994
|
+
emptyLabel?: ReactNode;
|
|
995
|
+
'aria-label'?: string;
|
|
996
|
+
id?: string;
|
|
997
|
+
name?: string;
|
|
998
|
+
}
|
|
999
|
+
declare const DatePicker: react.ForwardRefExoticComponent<DatePickerProps & react.RefAttributes<HTMLButtonElement>>;
|
|
1000
|
+
|
|
1001
|
+
/**
|
|
1002
|
+
* Dots — progress dots for carousels and onboarding tours. The current dot
|
|
1003
|
+
* widens into a pill (per the handoff spec); the rest stay circular.
|
|
1004
|
+
*/
|
|
1005
|
+
interface DotsProps extends Omit<HTMLAttributes<HTMLElement>, 'onChange'> {
|
|
1006
|
+
/** Total dot count. */
|
|
1007
|
+
total: number;
|
|
1008
|
+
/** Zero-based index of the active dot. */
|
|
1009
|
+
current: number;
|
|
1010
|
+
/** Optional click handler — when provided, dots become focusable buttons. */
|
|
1011
|
+
onChange?: (index: number) => void;
|
|
1012
|
+
/** Accessible label. Defaults to `Progress`. */
|
|
1013
|
+
'aria-label'?: string;
|
|
1014
|
+
}
|
|
1015
|
+
declare const Dots: react.ForwardRefExoticComponent<DotsProps & react.RefAttributes<HTMLElement>>;
|
|
1016
|
+
|
|
1017
|
+
/**
|
|
1018
|
+
* EmptyState — placeholder for empty lists, no-results states, and error
|
|
1019
|
+
* surfaces. A 48×48 icon plate sits above a title + description and an
|
|
1020
|
+
* optional action area (button or chip stack).
|
|
1021
|
+
*/
|
|
1022
|
+
declare const plateStyles: (props?: ({
|
|
1023
|
+
tone?: "accent" | "danger" | "muted" | null | undefined;
|
|
1024
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1025
|
+
interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'>, VariantProps<typeof plateStyles> {
|
|
1026
|
+
/** Glyph or icon node shown in the rounded plate. */
|
|
1027
|
+
icon?: ReactNode;
|
|
1028
|
+
/** Title heading. */
|
|
1029
|
+
title: ReactNode;
|
|
1030
|
+
/** Body description. */
|
|
1031
|
+
description?: ReactNode;
|
|
1032
|
+
/** Optional primary action (e.g., a Button) below the description. */
|
|
1033
|
+
action?: ReactNode;
|
|
1034
|
+
/** Optional list of chip-style suggestions instead of (or below) the action. */
|
|
1035
|
+
chips?: ReadonlyArray<{
|
|
1036
|
+
label: ReactNode;
|
|
1037
|
+
onClick?: () => void;
|
|
1038
|
+
}>;
|
|
1039
|
+
}
|
|
1040
|
+
declare const EmptyState: react.ForwardRefExoticComponent<EmptyStateProps & react.RefAttributes<HTMLDivElement>>;
|
|
1041
|
+
|
|
1042
|
+
/**
|
|
1043
|
+
* FileChip — file attachment chip with thumb, name, size, optional progress
|
|
1044
|
+
* bar, and a remove affordance. The thumb defaults to the file extension; pass
|
|
1045
|
+
* `icon` to override.
|
|
1046
|
+
*/
|
|
1047
|
+
interface FileChipProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
|
|
1048
|
+
/** Filename to display. */
|
|
1049
|
+
name: string;
|
|
1050
|
+
/** Right-of-name label (size, status). Often `2.4 MB` or `failed`. */
|
|
1051
|
+
size?: ReactNode;
|
|
1052
|
+
/** When set, renders a progress bar at the bottom (0..100). Used for upload UX. */
|
|
1053
|
+
progress?: number;
|
|
1054
|
+
/** Replace the file-extension thumb. */
|
|
1055
|
+
icon?: ReactNode;
|
|
1056
|
+
/** When provided, renders a remove (×) button. */
|
|
1057
|
+
onRemove?: () => void;
|
|
1058
|
+
/** When true, signals an error state (red status text + red bar). */
|
|
1059
|
+
failed?: boolean;
|
|
1060
|
+
}
|
|
1061
|
+
declare const FileChip: react.ForwardRefExoticComponent<FileChipProps & react.RefAttributes<HTMLDivElement>>;
|
|
1062
|
+
|
|
1063
|
+
/**
|
|
1064
|
+
* Menubar — desktop-style horizontal menu strip (File, Edit, View, …) built on
|
|
1065
|
+
* Radix Menubar. Owns ARIA + keyboard semantics; ShipIt owns styling.
|
|
1066
|
+
*
|
|
1067
|
+
* Compose with `<MenubarMenu>` per top-level entry. Inside each menu use
|
|
1068
|
+
* `<MenubarTrigger>` (the visible button), `<MenubarContent>` (the dropdown),
|
|
1069
|
+
* and `<MenuItem>` / `<MenuSeparator>` from the existing primitive surface.
|
|
1070
|
+
*/
|
|
1071
|
+
declare const Menubar: react.ForwardRefExoticComponent<RadixMenubar.MenubarProps & react.RefAttributes<HTMLDivElement>>;
|
|
1072
|
+
declare const MenubarMenu: FC<RadixMenubar.MenubarMenuProps>;
|
|
1073
|
+
declare const MenubarTrigger: react.ForwardRefExoticComponent<RadixMenubar.MenubarTriggerProps & react.RefAttributes<HTMLButtonElement>>;
|
|
1074
|
+
declare const MenubarContent: react.ForwardRefExoticComponent<RadixMenubar.MenubarContentProps & react.RefAttributes<HTMLDivElement>>;
|
|
1075
|
+
interface MenubarItemProps extends RadixMenubar.MenubarItemProps {
|
|
1076
|
+
/** Trailing hint — typically a kbd shortcut. */
|
|
1077
|
+
trailing?: ReactNode;
|
|
1078
|
+
/** Style as destructive (red). */
|
|
1079
|
+
destructive?: boolean;
|
|
1080
|
+
}
|
|
1081
|
+
declare const MenubarItem: react.ForwardRefExoticComponent<MenubarItemProps & react.RefAttributes<HTMLDivElement>>;
|
|
1082
|
+
declare const MenubarSeparator: react.ForwardRefExoticComponent<RadixMenubar.MenubarSeparatorProps & react.RefAttributes<HTMLDivElement>>;
|
|
1083
|
+
|
|
1084
|
+
/**
|
|
1085
|
+
* Pagination — page selector for paginated lists/tables. Renders prev/next
|
|
1086
|
+
* arrows plus a compact range of numbered pages. Use `siblings` to control how
|
|
1087
|
+
* many pages flank the current page; ellipses are inserted automatically.
|
|
1088
|
+
*/
|
|
1089
|
+
interface PaginationProps extends Omit<HTMLAttributes<HTMLElement>, 'onChange'> {
|
|
1090
|
+
/** Currently selected page (1-indexed). */
|
|
1091
|
+
page: number;
|
|
1092
|
+
/** Total number of pages. */
|
|
1093
|
+
total: number;
|
|
1094
|
+
/** Called with the new page when the user clicks a page or arrow. */
|
|
1095
|
+
onPageChange: (page: number) => void;
|
|
1096
|
+
/** How many sibling pages to show on each side of the current page. Default 1. */
|
|
1097
|
+
siblings?: number;
|
|
1098
|
+
}
|
|
1099
|
+
declare const Pagination: react.ForwardRefExoticComponent<PaginationProps & react.RefAttributes<HTMLElement>>;
|
|
1100
|
+
|
|
1101
|
+
/**
|
|
1102
|
+
* Progress — linear bar in determinate (`value`) or `indeterminate` mode.
|
|
1103
|
+
* Pass `label` for an accessible name and a visible label row above the bar.
|
|
1104
|
+
*
|
|
1105
|
+
* For value rounding: the bar's width is the raw value clamped to [0, max];
|
|
1106
|
+
* the label/aria-valuenow are rounded to whole percent.
|
|
1107
|
+
*/
|
|
1108
|
+
declare const trackStyles: (props?: ({
|
|
1109
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
1110
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1111
|
+
declare const fillStyles: (props?: ({
|
|
1112
|
+
tone?: "ok" | "warn" | "err" | "accent" | null | undefined;
|
|
1113
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1114
|
+
interface ProgressProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'>, VariantProps<typeof trackStyles>, VariantProps<typeof fillStyles> {
|
|
1115
|
+
/** Numeric progress, 0..max. Ignored when `indeterminate`. */
|
|
1116
|
+
value?: number;
|
|
1117
|
+
/** Maximum value. Default 100. */
|
|
1118
|
+
max?: number;
|
|
1119
|
+
/** When true, shows an indeterminate sliding pill instead of a determinate fill. */
|
|
1120
|
+
indeterminate?: boolean;
|
|
1121
|
+
/** Optional visible label (rendered above the bar with the percent). */
|
|
1122
|
+
label?: ReactNode;
|
|
1123
|
+
/** When false, hides the percent readout next to the label. Default true. */
|
|
1124
|
+
showValue?: boolean;
|
|
1125
|
+
}
|
|
1126
|
+
declare const Progress: react.ForwardRefExoticComponent<ProgressProps & react.RefAttributes<HTMLDivElement>>;
|
|
1127
|
+
|
|
1128
|
+
/**
|
|
1129
|
+
* RadialProgress — circular SVG progress ring. Renders the percent label in the
|
|
1130
|
+
* center by default; pass `children` to override (e.g., a glyph or a count).
|
|
1131
|
+
*
|
|
1132
|
+
* Tones: accent (default) and ok (auto-applied when value === max).
|
|
1133
|
+
*/
|
|
1134
|
+
type RadialTone = 'accent' | 'ok' | 'warn' | 'err';
|
|
1135
|
+
interface RadialProgressProps extends HTMLAttributes<HTMLDivElement> {
|
|
1136
|
+
/** Current value, 0..max. */
|
|
1137
|
+
value: number;
|
|
1138
|
+
/** Maximum value. Default 100. */
|
|
1139
|
+
max?: number;
|
|
1140
|
+
/** Pixel size of the SVG. Default 64. */
|
|
1141
|
+
size?: number;
|
|
1142
|
+
/** Stroke width. Default 4. */
|
|
1143
|
+
thickness?: number;
|
|
1144
|
+
/** Color tone. Auto-flips to `ok` on completion unless explicitly set. */
|
|
1145
|
+
tone?: RadialTone;
|
|
1146
|
+
/** Replaces the centered percent label. */
|
|
1147
|
+
children?: ReactNode;
|
|
1148
|
+
/** Accessible label. Falls back to `${pct}%`. */
|
|
1149
|
+
'aria-label'?: string;
|
|
1150
|
+
}
|
|
1151
|
+
declare const RadialProgress: react.ForwardRefExoticComponent<RadialProgressProps & react.RefAttributes<HTMLDivElement>>;
|
|
1152
|
+
|
|
1153
|
+
/**
|
|
1154
|
+
* Sidebar — primary app navigation column. A simple flex column with the
|
|
1155
|
+
* panel background and a right border. Compose with `<NavItem>` and
|
|
1156
|
+
* `<NavSection>` for the standard ShipIt sidebar shape.
|
|
1157
|
+
*/
|
|
1158
|
+
interface SidebarProps extends HTMLAttributes<HTMLElement> {
|
|
1159
|
+
/** Width in pixels. Default 240. */
|
|
1160
|
+
width?: number;
|
|
1161
|
+
}
|
|
1162
|
+
declare const Sidebar: react.ForwardRefExoticComponent<SidebarProps & react.RefAttributes<HTMLElement>>;
|
|
1163
|
+
interface NavItemProps extends HTMLAttributes<HTMLAnchorElement> {
|
|
1164
|
+
/** Left-side glyph or icon node. */
|
|
1165
|
+
icon?: ReactNode;
|
|
1166
|
+
/** Visible label. */
|
|
1167
|
+
label: ReactNode;
|
|
1168
|
+
/** Highlights the row in the accent palette. */
|
|
1169
|
+
active?: boolean;
|
|
1170
|
+
/** Optional trailing badge text. */
|
|
1171
|
+
badge?: ReactNode;
|
|
1172
|
+
/** Optional href — when omitted, the row is rendered as a button. */
|
|
1173
|
+
href?: string;
|
|
1174
|
+
/** Disabled / read-only display. */
|
|
1175
|
+
disabled?: boolean;
|
|
1176
|
+
}
|
|
1177
|
+
declare const NavItem: react.ForwardRefExoticComponent<NavItemProps & react.RefAttributes<HTMLAnchorElement>>;
|
|
1178
|
+
interface NavSectionProps extends HTMLAttributes<HTMLDivElement> {
|
|
1179
|
+
/** Eyebrow heading. Rendered uppercase, mono, dim. */
|
|
1180
|
+
label: ReactNode;
|
|
1181
|
+
/** Optional trailing element next to the heading (e.g., a `+` add affordance). */
|
|
1182
|
+
action?: ReactNode;
|
|
1183
|
+
}
|
|
1184
|
+
declare const NavSection: react.ForwardRefExoticComponent<NavSectionProps & react.RefAttributes<HTMLDivElement>>;
|
|
1185
|
+
|
|
1186
|
+
/**
|
|
1187
|
+
* Sparkline — small inline SVG chart for showing trend at a glance. Computes
|
|
1188
|
+
* a polyline path from `values`; optionally fills the area under the line.
|
|
1189
|
+
*
|
|
1190
|
+
* The only chart we ship — the design system's stance on charting is that
|
|
1191
|
+
* production apps should bring their own (Recharts, Visx, etc.) when they
|
|
1192
|
+
* need anything more than a quiet trend cue.
|
|
1193
|
+
*/
|
|
1194
|
+
interface SparklineProps extends Omit<SVGAttributes<SVGSVGElement>, 'children' | 'fill' | 'values'> {
|
|
1195
|
+
/** Numeric series. Drawn at uniform horizontal spacing. */
|
|
1196
|
+
values: ReadonlyArray<number>;
|
|
1197
|
+
/** Pixel width. Default 160. */
|
|
1198
|
+
width?: number;
|
|
1199
|
+
/** Pixel height. Default 32. */
|
|
1200
|
+
height?: number;
|
|
1201
|
+
/** Stroke color (CSS color or var). Defaults to `currentColor`. */
|
|
1202
|
+
stroke?: string;
|
|
1203
|
+
/** Stroke width. Default 1.5. */
|
|
1204
|
+
strokeWidth?: number;
|
|
1205
|
+
/** When true, fills the area under the line at 16% opacity. */
|
|
1206
|
+
fill?: boolean;
|
|
1207
|
+
/** Accessible label. Defaults to `Trend`. */
|
|
1208
|
+
'aria-label'?: string;
|
|
1209
|
+
}
|
|
1210
|
+
declare const Sparkline: react.ForwardRefExoticComponent<SparklineProps & react.RefAttributes<SVGSVGElement>>;
|
|
1211
|
+
|
|
1212
|
+
/**
|
|
1213
|
+
* Spinner — circular loading indicator. Three sizes; respects
|
|
1214
|
+
* `prefers-reduced-motion` via the global motion override in `tokens.css`.
|
|
1215
|
+
*/
|
|
1216
|
+
declare const sizes: {
|
|
1217
|
+
readonly sm: {
|
|
1218
|
+
readonly box: "h-3 w-3";
|
|
1219
|
+
readonly border: "border-[2px]";
|
|
1220
|
+
};
|
|
1221
|
+
readonly md: {
|
|
1222
|
+
readonly box: "h-4 w-4";
|
|
1223
|
+
readonly border: "border-[2px]";
|
|
1224
|
+
};
|
|
1225
|
+
readonly lg: {
|
|
1226
|
+
readonly box: "h-5 w-5";
|
|
1227
|
+
readonly border: "border-[2px]";
|
|
1228
|
+
};
|
|
1229
|
+
};
|
|
1230
|
+
interface SpinnerProps extends HTMLAttributes<HTMLSpanElement> {
|
|
1231
|
+
size?: keyof typeof sizes;
|
|
1232
|
+
/** Accessible label. Defaults to `Loading`. */
|
|
1233
|
+
label?: string;
|
|
1234
|
+
}
|
|
1235
|
+
declare const Spinner: react.ForwardRefExoticComponent<SpinnerProps & react.RefAttributes<HTMLSpanElement>>;
|
|
1236
|
+
|
|
1237
|
+
/**
|
|
1238
|
+
* Stepper — wizard / multi-step progress indicator. Computes done / current /
|
|
1239
|
+
* upcoming state from the `current` index so the consumer just passes labels.
|
|
1240
|
+
*/
|
|
1241
|
+
type StepState = 'done' | 'current' | 'upcoming';
|
|
1242
|
+
interface StepperProps extends HTMLAttributes<HTMLDivElement> {
|
|
1243
|
+
/** Ordered step labels. */
|
|
1244
|
+
steps: ReadonlyArray<string>;
|
|
1245
|
+
/** Zero-based index of the current step. Steps before are `done`, after are `upcoming`. */
|
|
1246
|
+
current: number;
|
|
1247
|
+
}
|
|
1248
|
+
declare const Stepper: react.ForwardRefExoticComponent<StepperProps & react.RefAttributes<HTMLDivElement>>;
|
|
1249
|
+
|
|
1250
|
+
/**
|
|
1251
|
+
* Tabs — two visual styles built on Radix Tabs.
|
|
1252
|
+
*
|
|
1253
|
+
* `variant="underline"` (default) is the navigation tab style: text labels with
|
|
1254
|
+
* a moving 2px underline. `variant="pill"` is the segmented-control style: a
|
|
1255
|
+
* rounded panel housing pill buttons. Both share Radix's keyboard semantics
|
|
1256
|
+
* (←/→ to move, Home/End to jump, Enter/Space to activate when activation is
|
|
1257
|
+
* manual).
|
|
1258
|
+
*/
|
|
1259
|
+
type TabsVariant = 'underline' | 'pill';
|
|
1260
|
+
declare const tabsTriggerStyles: (props?: ({
|
|
1261
|
+
variant?: "underline" | "pill" | null | undefined;
|
|
1262
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1263
|
+
interface TabsProps extends RadixTabs.TabsProps {
|
|
1264
|
+
/** Visual style — `underline` (default) or segmented `pill`. */
|
|
1265
|
+
variant?: TabsVariant;
|
|
1266
|
+
}
|
|
1267
|
+
declare const Tabs: react.ForwardRefExoticComponent<TabsProps & react.RefAttributes<HTMLDivElement>>;
|
|
1268
|
+
declare const TabsList: react.ForwardRefExoticComponent<RadixTabs.TabsListProps & react.RefAttributes<HTMLDivElement>>;
|
|
1269
|
+
interface TabProps extends RadixTabs.TabsTriggerProps {
|
|
1270
|
+
children?: ReactNode;
|
|
1271
|
+
}
|
|
1272
|
+
declare const Tab: react.ForwardRefExoticComponent<TabProps & react.RefAttributes<HTMLButtonElement>>;
|
|
1273
|
+
declare const TabsContent: react.ForwardRefExoticComponent<RadixTabs.TabsContentProps & react.RefAttributes<HTMLDivElement>>;
|
|
1274
|
+
type TabsVariantProps = VariantProps<typeof tabsTriggerStyles>;
|
|
1275
|
+
|
|
1276
|
+
/**
|
|
1277
|
+
* Timeline — vertical event list with a connecting rule between markers.
|
|
1278
|
+
* Pass `events` (preferred) for the simple shape, or compose with
|
|
1279
|
+
* `<TimelineItem>` children for custom layouts.
|
|
1280
|
+
*/
|
|
1281
|
+
type TimelineEventTone = 'accent' | 'ok' | 'warn' | 'err' | 'muted';
|
|
1282
|
+
interface TimelineEvent {
|
|
1283
|
+
title: ReactNode;
|
|
1284
|
+
description?: ReactNode;
|
|
1285
|
+
/** Time label rendered in mono. */
|
|
1286
|
+
time?: ReactNode;
|
|
1287
|
+
/** Marker color tone. Defaults to `accent`. */
|
|
1288
|
+
tone?: TimelineEventTone;
|
|
1289
|
+
}
|
|
1290
|
+
interface TimelineProps extends HTMLAttributes<HTMLOListElement> {
|
|
1291
|
+
/** Convenience prop — when provided, renders `<TimelineItem>` for each event. */
|
|
1292
|
+
events?: ReadonlyArray<TimelineEvent>;
|
|
1293
|
+
}
|
|
1294
|
+
declare const Timeline: react.ForwardRefExoticComponent<TimelineProps & react.RefAttributes<HTMLOListElement>>;
|
|
1295
|
+
interface TimelineItemProps extends HTMLAttributes<HTMLLIElement> {
|
|
1296
|
+
tone?: TimelineEventTone;
|
|
1297
|
+
description?: ReactNode;
|
|
1298
|
+
time?: ReactNode;
|
|
1299
|
+
}
|
|
1300
|
+
declare const TimelineItem: react.ForwardRefExoticComponent<TimelineItemProps & react.RefAttributes<HTMLLIElement>>;
|
|
1301
|
+
|
|
1302
|
+
/**
|
|
1303
|
+
* Topbar — slim header strip across the top of an app surface. The title
|
|
1304
|
+
* lives on the left, the rest of the row is yours via `actions` (search,
|
|
1305
|
+
* settings, avatar, etc.).
|
|
1306
|
+
*/
|
|
1307
|
+
interface TopbarProps extends Omit<HTMLAttributes<HTMLElement>, 'title'> {
|
|
1308
|
+
/** Title rendered on the left. */
|
|
1309
|
+
title?: ReactNode;
|
|
1310
|
+
/** Left-of-title slot — typically a logo or breadcrumbs. */
|
|
1311
|
+
leading?: ReactNode;
|
|
1312
|
+
/** Right-side action group. Rendered with `gap-3`. */
|
|
1313
|
+
actions?: ReactNode;
|
|
1314
|
+
}
|
|
1315
|
+
declare const Topbar: react.ForwardRefExoticComponent<TopbarProps & react.RefAttributes<HTMLElement>>;
|
|
1316
|
+
|
|
1317
|
+
/**
|
|
1318
|
+
* Tree — recursive expandable list. Pass a nested `items` tree; the component
|
|
1319
|
+
* handles expand/collapse and selection state. Both can be uncontrolled
|
|
1320
|
+
* (`defaultExpanded` / `defaultSelected`) or controlled (`expanded` /
|
|
1321
|
+
* `selected` + change callbacks).
|
|
1322
|
+
*
|
|
1323
|
+
* Implements the simple `aria-tree` pattern: `role="tree"` on the container,
|
|
1324
|
+
* `role="treeitem"` on each row, `aria-level`, `aria-expanded`, `aria-selected`.
|
|
1325
|
+
*/
|
|
1326
|
+
interface TreeItem {
|
|
1327
|
+
id: string;
|
|
1328
|
+
label: ReactNode;
|
|
1329
|
+
/** Leading glyph or icon node. */
|
|
1330
|
+
icon?: ReactNode;
|
|
1331
|
+
/** Trailing badge / hint. */
|
|
1332
|
+
trailing?: ReactNode;
|
|
1333
|
+
children?: ReadonlyArray<TreeItem>;
|
|
1334
|
+
}
|
|
1335
|
+
interface TreeProps extends Omit<HTMLAttributes<HTMLUListElement>, 'onSelect'> {
|
|
1336
|
+
/** Tree data. */
|
|
1337
|
+
items: ReadonlyArray<TreeItem>;
|
|
1338
|
+
/** Controlled set of expanded node ids. */
|
|
1339
|
+
expanded?: ReadonlySet<string>;
|
|
1340
|
+
/** Default expanded ids (uncontrolled). */
|
|
1341
|
+
defaultExpanded?: ReadonlyArray<string>;
|
|
1342
|
+
/** Fires with the new expanded set whenever a node toggles. */
|
|
1343
|
+
onExpandedChange?: (expanded: Set<string>) => void;
|
|
1344
|
+
/** Controlled selected node id. */
|
|
1345
|
+
selected?: string;
|
|
1346
|
+
/** Default selected (uncontrolled). */
|
|
1347
|
+
defaultSelected?: string;
|
|
1348
|
+
/** Fires with the selected node id. */
|
|
1349
|
+
onSelect?: (id: string) => void;
|
|
1350
|
+
}
|
|
1351
|
+
declare const Tree: react.ForwardRefExoticComponent<TreeProps & react.RefAttributes<HTMLUListElement>>;
|
|
1352
|
+
|
|
1353
|
+
export { Alert, AlertDialog, AlertDialogAction, AlertDialogCancel, type AlertDialogProps, AlertDialogRoot, AlertDialogTrigger, type AlertProps, type AlertVariant, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, type AvatarSize, type AvatarStatus, Badge, type BadgeProps, Banner, type BannerProps, type BannerVariant, Breadcrumbs, type BreadcrumbsProps, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, Calendar, type CalendarProps, Card, type CardProps, Checkbox, type CheckboxProps, Chip, type ChipProps, Combobox, type ComboboxOption, type ComboboxProps, CommandPalette, type CommandPaletteGroup, type CommandPaletteItem, type CommandPaletteProps, ContextMenu, ContextMenuContent, ContextMenuItem, type ContextMenuItemProps, ContextMenuPortal, ContextMenuRoot, ContextMenuSeparator, ContextMenuTrigger, Crumb, type CrumbProps, DataTable, type DataTableColumn, type DataTableProps, type DataTableSort, DatePicker, type DatePickerProps, Dialog, DialogClose, DialogContent, type DialogContentProps, DialogOverlay, DialogPortal, type DialogProps, DialogRoot, DialogTrigger, Dots, type DotsProps, Drawer, type DrawerProps, type DrawerSide, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRoot, DropdownMenuTrigger, EmptyState, type EmptyStateProps, FAB, type FABProps, Field, type FieldProps, FileChip, type FileChipProps, HoverCard, HoverCardContent, HoverCardPortal, type HoverCardProps, HoverCardRoot, HoverCardTrigger, IconButton, type IconButtonProps, Input, type InputProps, Kbd, type KbdProps, MenuCheckboxItem, MenuItem, type MenuItemProps, MenuSeparator, Menubar, MenubarContent, MenubarItem, type MenubarItemProps, MenubarMenu, MenubarSeparator, MenubarTrigger, NavItem, type NavItemProps, NavSection, type NavSectionProps, type NormalizedOption, OTP, type OTPHandle, type OTPProps, Pagination, type PaginationProps, Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, PopoverPortal, PopoverRoot, PopoverTrigger, Progress, type ProgressProps, RadialProgress, type RadialProgressProps, type RadialTone, Radio, RadioGroup, type RadioGroupProps, type RadioProps, SearchInput, type SearchInputProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, type SelectOption, type SelectProps, SelectRoot, SelectTrigger, SelectValue, Sheet, type SheetProps, Sidebar, type SidebarProps, Skeleton, type SkeletonProps, Slider, type SliderProps, Sparkline, type SparklineProps, Spinner, type SpinnerProps, SplitButton, type SplitButtonProps, StatCard, type StatCardProps, type StatTrend, StatusDot, type StatusDotProps, type StatusState, type StepState, Stepper, type StepperProps, Switch, type SwitchProps, Tab, type TabProps, Tabs, TabsContent, TabsList, type TabsProps, type TabsVariantProps, Tag, type TagProps, Textarea, type TextareaProps, type Theme, Timeline, type TimelineEvent, type TimelineEventTone, TimelineItem, type TimelineItemProps, type TimelineProps, ToastCard, type ToastInput, ToastProvider, type ToastVariant, Tooltip, TooltipArrow, TooltipContent, TooltipPortal, type TooltipProps, TooltipProvider, TooltipRoot, TooltipTrigger, Topbar, type TopbarProps, Tree, type TreeItem, type TreeProps, type UseControllableStateProps, type UseKeyboardListOptions, type UseKeyboardListResult, badgeStyles, buttonStyles, cardStyles, cn, filterCommandItems, iconButtonStyles, useControllableState, useDisclosure, useEscape, useKeyboardList, useOutsideClick, useTheme, useToast };
|