@nebutra/ui 0.2.1 → 0.2.2
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 -676
- package/README.md +81 -86
- package/dist/agent/index.d.ts +119 -0
- package/dist/agent/index.js +135 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/canonical-CrO71UPO.d.ts +4058 -0
- package/dist/components/index.d.ts +51 -56
- package/dist/components/index.js +1467 -1160
- package/dist/components/index.js.map +1 -1
- package/dist/hooks/index.d.ts +62 -15
- package/dist/hooks/index.js +56 -34
- package/dist/hooks/index.js.map +1 -1
- package/dist/index-CKLIGfiU.d.ts +19 -0
- package/dist/index-Dg4jRJV2.d.ts +57 -0
- package/dist/layout/index.d.ts +5 -1
- package/dist/layout/index.js +427 -533
- package/dist/layout/index.js.map +1 -1
- package/dist/layouts/index.js +11 -9
- package/dist/layouts/index.js.map +1 -1
- package/dist/patterns/index.d.ts +128 -2
- package/dist/patterns/index.js +1478 -786
- package/dist/patterns/index.js.map +1 -1
- package/dist/primitives/canonical.d.ts +25 -0
- package/dist/primitives/canonical.js +11903 -0
- package/dist/primitives/canonical.js.map +1 -0
- package/dist/primitives/index.d.ts +577 -3545
- package/dist/primitives/index.js +8002 -6159
- package/dist/primitives/index.js.map +1 -1
- package/dist/shared/animation/css/index.d.ts +1 -0
- package/dist/shared/animation/css/index.js +14 -0
- package/dist/shared/animation/css/index.js.map +1 -0
- package/dist/shared/animation/index.d.ts +6 -0
- package/dist/shared/animation/index.js +272 -0
- package/dist/shared/animation/index.js.map +1 -0
- package/dist/shared/animation/motion/index.d.ts +4 -0
- package/dist/shared/animation/motion/index.js +205 -0
- package/dist/shared/animation/motion/index.js.map +1 -0
- package/dist/styles/brand-override.css +11 -11
- package/dist/tailwind.preset.d.ts +10 -10
- package/dist/tailwind.preset.js +7 -4
- package/dist/tailwind.preset.js.map +1 -1
- package/dist/theme/index.d.ts +2 -2
- package/dist/tokens-EAC6uPem.d.ts +302 -0
- package/dist/typography/fonts.css +31 -12
- package/dist/typography/index.d.ts +27 -27
- package/dist/typography/index.js +24 -4
- package/dist/typography/index.js.map +1 -1
- package/dist/utils/index.d.ts +36 -14
- package/dist/utils/index.js +44 -10
- package/dist/utils/index.js.map +1 -1
- package/package.json +38 -12
- package/src/styles/brand-override.css +61 -0
- package/src/styles/preset.css +29 -0
- package/src/styles/sources.css +27 -0
- package/src/typography/fonts.css +129 -0
|
@@ -0,0 +1,4058 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { Accordion as Accordion$1 } from '@base-ui/react/accordion';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import React__default, { ElementType, SVGProps, ReactElement, ReactNode, Ref, HTMLAttributes, RefObject, FieldsetHTMLAttributes, LabelHTMLAttributes, ComponentProps } from 'react';
|
|
5
|
+
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
6
|
+
import { VariantProps } from 'class-variance-authority';
|
|
7
|
+
import * as _base_ui_react from '@base-ui/react';
|
|
8
|
+
import { AlertDialog as AlertDialog$1 } from '@base-ui/react/alert-dialog';
|
|
9
|
+
import * as framer_motion from 'framer-motion';
|
|
10
|
+
import { motion } from 'framer-motion';
|
|
11
|
+
import { Avatar as Avatar$1 } from '@base-ui/react/avatar';
|
|
12
|
+
import { Command as Command$1 } from 'cmdk';
|
|
13
|
+
import { Dialog as Dialog$1 } from '@base-ui/react/dialog';
|
|
14
|
+
import { ContextMenu as ContextMenu$1 } from '@base-ui/react/context-menu';
|
|
15
|
+
import { Drawer as Drawer$1 } from 'vaul';
|
|
16
|
+
import { Menu as Menu$1 } from '@base-ui/react/menu';
|
|
17
|
+
import * as react_hook_form from 'react-hook-form';
|
|
18
|
+
import { FieldValues, FieldPath, ControllerProps } from 'react-hook-form';
|
|
19
|
+
import { Popover as Popover$1 } from '@base-ui/react/popover';
|
|
20
|
+
import { RenderProps } from 'input-otp';
|
|
21
|
+
import { Progress as Progress$1 } from '@base-ui/react/progress';
|
|
22
|
+
import { Separator as Separator$1, Panel, Group } from 'react-resizable-panels';
|
|
23
|
+
import { SelectRoot, Select as Select$1 } from '@base-ui/react/select';
|
|
24
|
+
import { Separator as Separator$2 } from '@base-ui/react/separator';
|
|
25
|
+
import { ToasterProps } from 'sonner';
|
|
26
|
+
import { Tooltip as Tooltip$1 } from '@base-ui/react/tooltip';
|
|
27
|
+
import '@nebutra/brand';
|
|
28
|
+
|
|
29
|
+
type AccordionSize = "default" | "small";
|
|
30
|
+
declare const Accordion: <Value = any>(props: Accordion$1.Root.Props<Value>) => React.JSX.Element;
|
|
31
|
+
declare const AccordionItem: {
|
|
32
|
+
({ className, ref, ...props }: React.ComponentPropsWithoutRef<"div"> & {
|
|
33
|
+
value: string;
|
|
34
|
+
disabled?: boolean;
|
|
35
|
+
} & {
|
|
36
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
37
|
+
}): react_jsx_runtime.JSX.Element;
|
|
38
|
+
displayName: string;
|
|
39
|
+
};
|
|
40
|
+
declare const AccordionTrigger: {
|
|
41
|
+
({ className, children, size, ref, ...props }: React.ComponentPropsWithoutRef<"button"> & {
|
|
42
|
+
/** Size variant matching Geist Collapse */
|
|
43
|
+
size?: AccordionSize;
|
|
44
|
+
} & {
|
|
45
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
46
|
+
}): react_jsx_runtime.JSX.Element;
|
|
47
|
+
displayName: string;
|
|
48
|
+
};
|
|
49
|
+
declare const AccordionContent: {
|
|
50
|
+
({ className, children, size, keepMounted, ref, ...props }: React.ComponentPropsWithoutRef<"div"> & {
|
|
51
|
+
/** Size variant matching Geist Collapse */
|
|
52
|
+
size?: AccordionSize;
|
|
53
|
+
/**
|
|
54
|
+
* Keep the panel content in the DOM when closed. Lets browser find-in-page
|
|
55
|
+
* and search crawlers hit hidden content. Forwarded to Base UI's Panel.
|
|
56
|
+
* @default false (Base UI's default)
|
|
57
|
+
*/
|
|
58
|
+
keepMounted?: boolean;
|
|
59
|
+
} & {
|
|
60
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
61
|
+
}): react_jsx_runtime.JSX.Element;
|
|
62
|
+
displayName: string;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
declare const alertVariants: (props?: ({
|
|
66
|
+
variant?: "info" | "secondary" | "primary" | "destructive" | "success" | "mono" | "warning" | null | undefined;
|
|
67
|
+
icon?: "info" | "primary" | "destructive" | "success" | "warning" | null | undefined;
|
|
68
|
+
appearance?: "solid" | "outline" | "light" | "stroke" | null | undefined;
|
|
69
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
70
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
71
|
+
/**
|
|
72
|
+
* Alert variant types
|
|
73
|
+
*/
|
|
74
|
+
type AlertVariant = "secondary" | "primary" | "destructive" | "success" | "info" | "mono" | "warning";
|
|
75
|
+
/**
|
|
76
|
+
* Alert appearance types
|
|
77
|
+
*/
|
|
78
|
+
type AlertAppearance = "solid" | "outline" | "light" | "stroke";
|
|
79
|
+
/**
|
|
80
|
+
* Alert size types
|
|
81
|
+
*/
|
|
82
|
+
type AlertSize = "sm" | "md" | "lg";
|
|
83
|
+
/**
|
|
84
|
+
* Props for Alert component
|
|
85
|
+
*
|
|
86
|
+
* @description
|
|
87
|
+
* A versatile alert component with multiple variants, appearances, and sizes.
|
|
88
|
+
* Supports icons, close button, and rich content.
|
|
89
|
+
*
|
|
90
|
+
* **UX Scenarios:**
|
|
91
|
+
* - Success/error/warning notifications
|
|
92
|
+
* - Form validation messages
|
|
93
|
+
* - System status alerts
|
|
94
|
+
* - Informational banners
|
|
95
|
+
* - Toast notifications
|
|
96
|
+
*
|
|
97
|
+
* **Accessibility:**
|
|
98
|
+
* - role="alert" for screen readers
|
|
99
|
+
* - Dismissible with close button
|
|
100
|
+
* - Proper ARIA labeling
|
|
101
|
+
*/
|
|
102
|
+
interface AlertProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof alertVariants> {
|
|
103
|
+
/**
|
|
104
|
+
* Show close button
|
|
105
|
+
* @default false
|
|
106
|
+
*/
|
|
107
|
+
close?: boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Callback when close button is clicked
|
|
110
|
+
*/
|
|
111
|
+
onClose?: () => void;
|
|
112
|
+
}
|
|
113
|
+
interface AlertIconProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof alertVariants> {
|
|
114
|
+
}
|
|
115
|
+
type AlertTitleProps = React.HTMLAttributes<HTMLDivElement>;
|
|
116
|
+
type AlertDescriptionProps = React.HTMLAttributes<HTMLDivElement>;
|
|
117
|
+
type AlertContentProps = React.HTMLAttributes<HTMLDivElement>;
|
|
118
|
+
type AlertToolbarProps = React.HTMLAttributes<HTMLDivElement>;
|
|
119
|
+
/**
|
|
120
|
+
* Alert - Contextual feedback messages
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```tsx
|
|
124
|
+
* import {
|
|
125
|
+
* Alert, * AlertIcon, * AlertTitle, * AlertDescription, * AlertContent, * } from "@nebutra/ui";
|
|
126
|
+
* import { CheckCircle as CircleCheck, Warning as CircleAlert, Warning as TriangleAlert } from "@nebutra/icons";
|
|
127
|
+
*
|
|
128
|
+
* // Basic alert
|
|
129
|
+
* <Alert>
|
|
130
|
+
* <AlertIcon><CircleAlert /></AlertIcon>
|
|
131
|
+
* <AlertTitle>Default alert message</AlertTitle>
|
|
132
|
+
* </Alert>
|
|
133
|
+
*
|
|
134
|
+
* // Success alert with close
|
|
135
|
+
* <Alert variant="success" appearance="light" close onClose={() => {}}>
|
|
136
|
+
* <AlertIcon><CircleCheck /></AlertIcon>
|
|
137
|
+
* <AlertTitle>Operation successful!</AlertTitle>
|
|
138
|
+
* </Alert>
|
|
139
|
+
*
|
|
140
|
+
* // Destructive alert with description
|
|
141
|
+
* <Alert variant="destructive" appearance="outline">
|
|
142
|
+
* <AlertIcon><TriangleAlert /></AlertIcon>
|
|
143
|
+
* <AlertContent>
|
|
144
|
+
* <AlertTitle>Error occurred</AlertTitle>
|
|
145
|
+
* <AlertDescription>
|
|
146
|
+
* Please try again or contact support.
|
|
147
|
+
* </AlertDescription>
|
|
148
|
+
* </AlertContent>
|
|
149
|
+
* </Alert>
|
|
150
|
+
*
|
|
151
|
+
* // Different sizes
|
|
152
|
+
* <Alert size="sm" variant="info">...</Alert>
|
|
153
|
+
* <Alert size="md" variant="warning">...</Alert>
|
|
154
|
+
* <Alert size="lg" variant="primary">...</Alert>
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
declare function Alert({ className, variant, size, icon, appearance, close, onClose, children, ...props }: AlertProps): react_jsx_runtime.JSX.Element;
|
|
158
|
+
/**
|
|
159
|
+
* AlertTitle - Alert heading/title
|
|
160
|
+
*/
|
|
161
|
+
declare function AlertTitle({ className, ...props }: AlertTitleProps): react_jsx_runtime.JSX.Element;
|
|
162
|
+
/**
|
|
163
|
+
* AlertIcon - Icon container for alert
|
|
164
|
+
*/
|
|
165
|
+
declare function AlertIcon({ children, className, ...props }: AlertIconProps): react_jsx_runtime.JSX.Element;
|
|
166
|
+
/**
|
|
167
|
+
* AlertToolbar - Actions area for alert
|
|
168
|
+
*/
|
|
169
|
+
declare function AlertToolbar({ children, className, ...props }: AlertToolbarProps): react_jsx_runtime.JSX.Element;
|
|
170
|
+
/**
|
|
171
|
+
* AlertDescription - Detailed description text
|
|
172
|
+
*/
|
|
173
|
+
declare function AlertDescription({ className, ...props }: AlertDescriptionProps): react_jsx_runtime.JSX.Element;
|
|
174
|
+
/**
|
|
175
|
+
* AlertContent - Container for title and description
|
|
176
|
+
*/
|
|
177
|
+
declare function AlertContent({ className, ...props }: AlertContentProps): react_jsx_runtime.JSX.Element;
|
|
178
|
+
|
|
179
|
+
declare const AlertDialog: typeof AlertDialog$1.Root;
|
|
180
|
+
declare const AlertDialogPortal: React.ForwardRefExoticComponent<Omit<_base_ui_react.DialogPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
181
|
+
declare const AlertDialogTrigger: {
|
|
182
|
+
({ asChild, children, ref, ...props }: React.ComponentPropsWithoutRef<typeof AlertDialog$1.Trigger> & {
|
|
183
|
+
asChild?: boolean;
|
|
184
|
+
} & {
|
|
185
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
186
|
+
}): react_jsx_runtime.JSX.Element;
|
|
187
|
+
displayName: string;
|
|
188
|
+
};
|
|
189
|
+
declare const AlertDialogOverlay: {
|
|
190
|
+
({ className, style, ref, ...props }: React.ComponentPropsWithoutRef<typeof AlertDialog$1.Backdrop> & {
|
|
191
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
192
|
+
}): react_jsx_runtime.JSX.Element;
|
|
193
|
+
displayName: string;
|
|
194
|
+
};
|
|
195
|
+
declare const AlertDialogContent: {
|
|
196
|
+
({ className, children, style, ref, ...props }: React.ComponentPropsWithoutRef<typeof AlertDialog$1.Popup> & {
|
|
197
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
198
|
+
}): react_jsx_runtime.JSX.Element;
|
|
199
|
+
displayName: string;
|
|
200
|
+
};
|
|
201
|
+
declare const AlertDialogHeader: {
|
|
202
|
+
({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
|
|
203
|
+
displayName: string;
|
|
204
|
+
};
|
|
205
|
+
declare const AlertDialogFooter: {
|
|
206
|
+
({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
|
|
207
|
+
displayName: string;
|
|
208
|
+
};
|
|
209
|
+
declare const AlertDialogTitle: {
|
|
210
|
+
({ className, ref, ...props }: React.ComponentPropsWithoutRef<typeof AlertDialog$1.Title> & {
|
|
211
|
+
ref?: React.Ref<HTMLHeadingElement> | undefined;
|
|
212
|
+
}): react_jsx_runtime.JSX.Element;
|
|
213
|
+
displayName: string;
|
|
214
|
+
};
|
|
215
|
+
declare const AlertDialogDescription: {
|
|
216
|
+
({ className, ref, ...props }: React.ComponentPropsWithoutRef<typeof AlertDialog$1.Description> & {
|
|
217
|
+
ref?: React.Ref<HTMLParagraphElement> | undefined;
|
|
218
|
+
}): react_jsx_runtime.JSX.Element;
|
|
219
|
+
displayName: string;
|
|
220
|
+
};
|
|
221
|
+
declare const AlertDialogAction: {
|
|
222
|
+
({ className, asChild, children, ref, ...props }: React.ComponentPropsWithoutRef<typeof AlertDialog$1.Close> & {
|
|
223
|
+
asChild?: boolean;
|
|
224
|
+
} & {
|
|
225
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
226
|
+
}): react_jsx_runtime.JSX.Element;
|
|
227
|
+
displayName: string;
|
|
228
|
+
};
|
|
229
|
+
declare const AlertDialogCancel: {
|
|
230
|
+
({ className, asChild, children, ref, ...props }: React.ComponentPropsWithoutRef<typeof AlertDialog$1.Close> & {
|
|
231
|
+
asChild?: boolean;
|
|
232
|
+
} & {
|
|
233
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
234
|
+
}): react_jsx_runtime.JSX.Element;
|
|
235
|
+
displayName: string;
|
|
236
|
+
};
|
|
237
|
+
|
|
238
|
+
declare const PRESETS: {
|
|
239
|
+
/** 涌现 — materialize from the cloud (default) */
|
|
240
|
+
readonly emerge: {
|
|
241
|
+
readonly initial: {
|
|
242
|
+
readonly opacity: 0;
|
|
243
|
+
readonly y: 16;
|
|
244
|
+
readonly filter: "blur(6px)";
|
|
245
|
+
};
|
|
246
|
+
readonly animate: {
|
|
247
|
+
readonly opacity: 1;
|
|
248
|
+
readonly y: 0;
|
|
249
|
+
readonly filter: "blur(0px)";
|
|
250
|
+
};
|
|
251
|
+
readonly exit: {
|
|
252
|
+
readonly opacity: 0;
|
|
253
|
+
readonly y: -8;
|
|
254
|
+
readonly filter: "blur(4px)";
|
|
255
|
+
};
|
|
256
|
+
readonly transition: {
|
|
257
|
+
readonly duration: 0.5;
|
|
258
|
+
readonly ease: readonly [0.16, 1, 0.3, 1];
|
|
259
|
+
};
|
|
260
|
+
};
|
|
261
|
+
/** 流动 — stream horizontally */
|
|
262
|
+
readonly flow: {
|
|
263
|
+
readonly initial: {
|
|
264
|
+
readonly opacity: 0;
|
|
265
|
+
readonly x: -20;
|
|
266
|
+
};
|
|
267
|
+
readonly animate: {
|
|
268
|
+
readonly opacity: 1;
|
|
269
|
+
readonly x: 0;
|
|
270
|
+
};
|
|
271
|
+
readonly exit: {
|
|
272
|
+
readonly opacity: 0;
|
|
273
|
+
readonly x: 20;
|
|
274
|
+
};
|
|
275
|
+
readonly transition: {
|
|
276
|
+
readonly duration: 0.3;
|
|
277
|
+
readonly ease: readonly [0, 0, 0.2, 1];
|
|
278
|
+
};
|
|
279
|
+
};
|
|
280
|
+
/** Simple fade */
|
|
281
|
+
readonly fade: {
|
|
282
|
+
readonly initial: {
|
|
283
|
+
readonly opacity: 0;
|
|
284
|
+
};
|
|
285
|
+
readonly animate: {
|
|
286
|
+
readonly opacity: 1;
|
|
287
|
+
};
|
|
288
|
+
readonly exit: {
|
|
289
|
+
readonly opacity: 0;
|
|
290
|
+
};
|
|
291
|
+
readonly transition: {
|
|
292
|
+
readonly duration: 0.3;
|
|
293
|
+
};
|
|
294
|
+
};
|
|
295
|
+
/** Fade + rise */
|
|
296
|
+
readonly fadeUp: framer_motion.Variants;
|
|
297
|
+
/** Scale in */
|
|
298
|
+
readonly scale: framer_motion.Variants;
|
|
299
|
+
};
|
|
300
|
+
type Preset = keyof typeof PRESETS;
|
|
301
|
+
interface AnimateInProps {
|
|
302
|
+
children: React.ReactNode;
|
|
303
|
+
preset?: Preset;
|
|
304
|
+
delay?: number;
|
|
305
|
+
duration?: number;
|
|
306
|
+
/** Trigger when enters viewport instead of immediately */
|
|
307
|
+
inView?: boolean;
|
|
308
|
+
className?: string;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* AnimateIn — wraps any content in a branded entrance animation.
|
|
312
|
+
*
|
|
313
|
+
* Respects `prefers-reduced-motion` by fading only (no translate/blur).
|
|
314
|
+
*
|
|
315
|
+
* @example
|
|
316
|
+
* <AnimateIn preset="emerge" delay={0.1}>
|
|
317
|
+
* <Card>...</Card>
|
|
318
|
+
* </AnimateIn>
|
|
319
|
+
*/
|
|
320
|
+
declare function AnimateIn(props: AnimateInProps): react_jsx_runtime.JSX.Element;
|
|
321
|
+
interface AnimateInGroupProps {
|
|
322
|
+
children: React.ReactNode;
|
|
323
|
+
stagger?: "fast" | "normal" | "slow";
|
|
324
|
+
preset?: Preset;
|
|
325
|
+
inView?: boolean;
|
|
326
|
+
className?: string;
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* AnimateInGroup — staggered container. Each direct child animates in sequence.
|
|
330
|
+
*
|
|
331
|
+
* @example
|
|
332
|
+
* <AnimateInGroup stagger="normal" inView>
|
|
333
|
+
* {items.map(item => <AnimateIn key={item.id} preset="fadeUp">{item}</AnimateIn>)}
|
|
334
|
+
* </AnimateInGroup>
|
|
335
|
+
*/
|
|
336
|
+
declare function AnimateInGroup(props: AnimateInGroupProps): react_jsx_runtime.JSX.Element;
|
|
337
|
+
|
|
338
|
+
declare const badgeVariants: (props?: ({
|
|
339
|
+
variant?: "blue" | "gray" | "green" | "pink" | "purple" | "red" | "teal" | "outline" | "default" | "error" | "info" | "secondary" | "destructive" | "success" | "warning" | "gray-subtle" | "blue-subtle" | "purple-subtle" | "amber" | "amber-subtle" | "red-subtle" | "pink-subtle" | "green-subtle" | "teal-subtle" | "inverted" | "trial" | "turbo" | "pill" | "beta" | "new" | "owner" | "featured" | "coming-soon" | null | undefined;
|
|
340
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
341
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
342
|
+
interface BadgeProps extends React.HTMLAttributes<HTMLElement>, VariantProps<typeof badgeVariants> {
|
|
343
|
+
/** @deprecated Prefer Status Dot for dot-only indicators. Keep text labels redundant with color. */
|
|
344
|
+
dot?: boolean;
|
|
345
|
+
/** Icon element rendered before the label. Decorative icons are hidden from assistive tech. */
|
|
346
|
+
icon?: React.ReactNode;
|
|
347
|
+
/** Render as child element — use with `<a>` for link badges */
|
|
348
|
+
asChild?: boolean;
|
|
349
|
+
}
|
|
350
|
+
declare function Badge({ className, variant, size, dot, icon, asChild, children, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
|
|
351
|
+
|
|
352
|
+
interface AspectRatioProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
353
|
+
ratio?: number;
|
|
354
|
+
}
|
|
355
|
+
declare const AspectRatio: {
|
|
356
|
+
({ ratio, className, style, children, ref, ...props }: AspectRatioProps & {
|
|
357
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
358
|
+
}): react_jsx_runtime.JSX.Element;
|
|
359
|
+
displayName: string;
|
|
360
|
+
};
|
|
361
|
+
|
|
362
|
+
/**
|
|
363
|
+
* Avatar Component Tokens — Layer 3
|
|
364
|
+
*
|
|
365
|
+
* Five-step size scale: xs=20px sm=32px md=40px lg=56px xl=80px
|
|
366
|
+
* Fallback chain: image → initials → generic icon
|
|
367
|
+
*/
|
|
368
|
+
declare const avatarTokens: {
|
|
369
|
+
readonly size: {
|
|
370
|
+
readonly xs: {
|
|
371
|
+
readonly dimension: 20;
|
|
372
|
+
readonly fontSize: 8;
|
|
373
|
+
readonly iconSize: 10;
|
|
374
|
+
readonly ringWidth: 1;
|
|
375
|
+
};
|
|
376
|
+
readonly sm: {
|
|
377
|
+
readonly dimension: 32;
|
|
378
|
+
readonly fontSize: 12;
|
|
379
|
+
readonly iconSize: 14;
|
|
380
|
+
readonly ringWidth: 2;
|
|
381
|
+
};
|
|
382
|
+
readonly md: {
|
|
383
|
+
readonly dimension: 40;
|
|
384
|
+
readonly fontSize: 14;
|
|
385
|
+
readonly iconSize: 16;
|
|
386
|
+
readonly ringWidth: 2;
|
|
387
|
+
};
|
|
388
|
+
readonly lg: {
|
|
389
|
+
readonly dimension: 56;
|
|
390
|
+
readonly fontSize: 20;
|
|
391
|
+
readonly iconSize: 24;
|
|
392
|
+
readonly ringWidth: 2;
|
|
393
|
+
};
|
|
394
|
+
readonly xl: {
|
|
395
|
+
readonly dimension: 80;
|
|
396
|
+
readonly fontSize: 28;
|
|
397
|
+
readonly iconSize: 32;
|
|
398
|
+
readonly ringWidth: 3;
|
|
399
|
+
};
|
|
400
|
+
};
|
|
401
|
+
readonly group: {
|
|
402
|
+
/** Negative margin to create the overlapping stack effect */
|
|
403
|
+
readonly overlapOffset: -8;
|
|
404
|
+
/** Size of the "+N more" overflow badge */
|
|
405
|
+
readonly overflowBadge: 20;
|
|
406
|
+
};
|
|
407
|
+
};
|
|
408
|
+
type AvatarSize$1 = keyof typeof avatarTokens.size;
|
|
409
|
+
|
|
410
|
+
type AvatarSize = AvatarSize$1 | number;
|
|
411
|
+
type AvatarProps = Omit<React.ComponentPropsWithoutRef<typeof Avatar$1.Root>, "children"> & {
|
|
412
|
+
/** Size preset or explicit pixel size. */
|
|
413
|
+
size?: AvatarSize;
|
|
414
|
+
/** Convenience image source. For composition, use AvatarImage as a child. */
|
|
415
|
+
src?: string;
|
|
416
|
+
/** Image alt text. Prefer title for entity name and alt for explicit image labels. */
|
|
417
|
+
alt?: string;
|
|
418
|
+
/** Literal entity name used for fallback initials and accessible labels. */
|
|
419
|
+
title?: string;
|
|
420
|
+
/** Explicit initials fallback. Keep this to 1-2 uppercase characters. */
|
|
421
|
+
letter?: string;
|
|
422
|
+
/** Convenience username fallback. */
|
|
423
|
+
username?: string;
|
|
424
|
+
/** Loading shell. Do not use as permanent fallback. */
|
|
425
|
+
placeholder?: boolean;
|
|
426
|
+
/** Delay before fallback appears. */
|
|
427
|
+
fallbackDelayMs?: number;
|
|
428
|
+
children?: React.ReactNode;
|
|
429
|
+
};
|
|
430
|
+
declare const Avatar: {
|
|
431
|
+
({ className, size, src, alt, title, letter, username, placeholder, fallbackDelayMs, children, style, ref, ...props }: AvatarProps & {
|
|
432
|
+
ref?: React.Ref<HTMLSpanElement> | undefined;
|
|
433
|
+
}): react_jsx_runtime.JSX.Element;
|
|
434
|
+
displayName: string;
|
|
435
|
+
};
|
|
436
|
+
declare const AvatarImage: {
|
|
437
|
+
({ className, ref, ...props }: React.ComponentPropsWithoutRef<typeof Avatar$1.Image> & {
|
|
438
|
+
ref?: React.Ref<HTMLImageElement> | undefined;
|
|
439
|
+
}): react_jsx_runtime.JSX.Element;
|
|
440
|
+
displayName: string;
|
|
441
|
+
};
|
|
442
|
+
type AvatarFallbackProps = React.ComponentPropsWithoutRef<typeof Avatar$1.Fallback> & {
|
|
443
|
+
/** Pass the same size as the parent Avatar for correct font size */
|
|
444
|
+
size?: AvatarSize;
|
|
445
|
+
};
|
|
446
|
+
declare const AvatarFallback: {
|
|
447
|
+
({ className, size, children, "aria-label": ariaLabel, style, ref, ...props }: AvatarFallbackProps & {
|
|
448
|
+
ref?: React.Ref<HTMLSpanElement> | undefined;
|
|
449
|
+
}): react_jsx_runtime.JSX.Element;
|
|
450
|
+
displayName: string;
|
|
451
|
+
};
|
|
452
|
+
interface AvatarGroupItem {
|
|
453
|
+
src?: string;
|
|
454
|
+
alt?: string;
|
|
455
|
+
fallback?: string;
|
|
456
|
+
title?: string;
|
|
457
|
+
username?: string;
|
|
458
|
+
}
|
|
459
|
+
interface AvatarGroupProps {
|
|
460
|
+
/** Nebutra composable API. */
|
|
461
|
+
items?: AvatarGroupItem[];
|
|
462
|
+
/** Geist-compatible API. */
|
|
463
|
+
members?: AvatarGroupItem[];
|
|
464
|
+
/** Maximum avatars to show before collapsing to "+N" */
|
|
465
|
+
max?: number;
|
|
466
|
+
/** Geist-compatible alias for max. */
|
|
467
|
+
limit?: number;
|
|
468
|
+
/** Size of each avatar in the group */
|
|
469
|
+
size?: AvatarSize;
|
|
470
|
+
className?: string;
|
|
471
|
+
"aria-label"?: string;
|
|
472
|
+
}
|
|
473
|
+
declare function AvatarGroup({ items, members, max, limit, size, className, "aria-label": ariaLabel, }: AvatarGroupProps): react_jsx_runtime.JSX.Element;
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* Spacing Token System
|
|
477
|
+
*
|
|
478
|
+
* Based on 4px base unit. All values are in pixels for consistency.
|
|
479
|
+
*
|
|
480
|
+
* @see apps/landing/DESIGN.md Section 10.5
|
|
481
|
+
*/
|
|
482
|
+
declare const spacing: {
|
|
483
|
+
readonly 0: "0";
|
|
484
|
+
readonly 1: "4px";
|
|
485
|
+
readonly 2: "8px";
|
|
486
|
+
readonly 3: "12px";
|
|
487
|
+
readonly 4: "16px";
|
|
488
|
+
readonly 5: "20px";
|
|
489
|
+
readonly 6: "24px";
|
|
490
|
+
readonly 8: "32px";
|
|
491
|
+
readonly 10: "40px";
|
|
492
|
+
readonly 12: "48px";
|
|
493
|
+
readonly 16: "64px";
|
|
494
|
+
readonly 20: "80px";
|
|
495
|
+
readonly 24: "96px";
|
|
496
|
+
readonly 32: "128px";
|
|
497
|
+
};
|
|
498
|
+
type SpacingScale = keyof typeof spacing;
|
|
499
|
+
|
|
500
|
+
/**
|
|
501
|
+
* Props for Breadcrumb component
|
|
502
|
+
*
|
|
503
|
+
* @description
|
|
504
|
+
* A navigation component showing the user's location within a site hierarchy.
|
|
505
|
+
* Supports custom separators, ellipsis for collapsed items, and flexible linking.
|
|
506
|
+
*
|
|
507
|
+
* **UX Scenarios:**
|
|
508
|
+
* - Site navigation hierarchy
|
|
509
|
+
* - File/folder path display
|
|
510
|
+
* - Multi-step form progress
|
|
511
|
+
* - Category/subcategory navigation
|
|
512
|
+
* - Dashboard section navigation
|
|
513
|
+
*
|
|
514
|
+
* **Accessibility:**
|
|
515
|
+
* - nav element with aria-label="breadcrumb"
|
|
516
|
+
* - aria-current="page" on current page
|
|
517
|
+
* - Proper list semantics (ol/li)
|
|
518
|
+
* - Screen reader support
|
|
519
|
+
*/
|
|
520
|
+
interface BreadcrumbProps extends React.ComponentPropsWithoutRef<"nav"> {
|
|
521
|
+
/**
|
|
522
|
+
* Custom separator element (defaults to ChevronRight icon)
|
|
523
|
+
*/
|
|
524
|
+
separator?: React.ReactNode;
|
|
525
|
+
}
|
|
526
|
+
type BreadcrumbListProps = React.ComponentPropsWithoutRef<"ol">;
|
|
527
|
+
type BreadcrumbItemProps = React.ComponentPropsWithoutRef<"li">;
|
|
528
|
+
interface BreadcrumbLinkProps extends React.ComponentPropsWithoutRef<"a"> {
|
|
529
|
+
/**
|
|
530
|
+
* Render as child component (for use with Next.js Link, etc.)
|
|
531
|
+
*/
|
|
532
|
+
asChild?: boolean;
|
|
533
|
+
}
|
|
534
|
+
type BreadcrumbPageProps = React.ComponentPropsWithoutRef<"span">;
|
|
535
|
+
type BreadcrumbSeparatorProps = React.ComponentPropsWithoutRef<"li">;
|
|
536
|
+
type BreadcrumbEllipsisProps = React.ComponentPropsWithoutRef<"span">;
|
|
537
|
+
/**
|
|
538
|
+
* Breadcrumb - Root navigation container
|
|
539
|
+
*
|
|
540
|
+
* @example
|
|
541
|
+
* ```tsx
|
|
542
|
+
* import {
|
|
543
|
+
* Breadcrumb,
|
|
544
|
+
* BreadcrumbList,
|
|
545
|
+
* BreadcrumbItem,
|
|
546
|
+
* BreadcrumbLink,
|
|
547
|
+
* BreadcrumbPage,
|
|
548
|
+
* BreadcrumbSeparator,
|
|
549
|
+
* } from "@nebutra/ui";
|
|
550
|
+
*
|
|
551
|
+
* <Breadcrumb>
|
|
552
|
+
* <BreadcrumbList>
|
|
553
|
+
* <BreadcrumbItem>
|
|
554
|
+
* <BreadcrumbLink href="/">Home</BreadcrumbLink>
|
|
555
|
+
* </BreadcrumbItem>
|
|
556
|
+
* <BreadcrumbSeparator />
|
|
557
|
+
* <BreadcrumbItem>
|
|
558
|
+
* <BreadcrumbLink href="/docs">Documents</BreadcrumbLink>
|
|
559
|
+
* </BreadcrumbItem>
|
|
560
|
+
* <BreadcrumbSeparator />
|
|
561
|
+
* <BreadcrumbItem>
|
|
562
|
+
* <BreadcrumbPage>Current Page</BreadcrumbPage>
|
|
563
|
+
* </BreadcrumbItem>
|
|
564
|
+
* </BreadcrumbList>
|
|
565
|
+
* </Breadcrumb>
|
|
566
|
+
* ```
|
|
567
|
+
*/
|
|
568
|
+
declare const Breadcrumb: {
|
|
569
|
+
({ ref, ...props }: BreadcrumbProps & {
|
|
570
|
+
ref?: React.Ref<HTMLElement> | undefined;
|
|
571
|
+
}): react_jsx_runtime.JSX.Element;
|
|
572
|
+
displayName: string;
|
|
573
|
+
};
|
|
574
|
+
/**
|
|
575
|
+
* BreadcrumbList - Ordered list container for breadcrumb items
|
|
576
|
+
*/
|
|
577
|
+
declare const BreadcrumbList: {
|
|
578
|
+
({ className, ref, ...props }: BreadcrumbListProps & {
|
|
579
|
+
ref?: React.Ref<HTMLOListElement> | undefined;
|
|
580
|
+
}): react_jsx_runtime.JSX.Element;
|
|
581
|
+
displayName: string;
|
|
582
|
+
};
|
|
583
|
+
/**
|
|
584
|
+
* BreadcrumbItem - Individual breadcrumb item wrapper
|
|
585
|
+
*/
|
|
586
|
+
declare const BreadcrumbItem: {
|
|
587
|
+
({ className, ref, ...props }: BreadcrumbItemProps & {
|
|
588
|
+
ref?: React.Ref<HTMLLIElement> | undefined;
|
|
589
|
+
}): react_jsx_runtime.JSX.Element;
|
|
590
|
+
displayName: string;
|
|
591
|
+
};
|
|
592
|
+
/**
|
|
593
|
+
* BreadcrumbLink - Clickable link within a breadcrumb item
|
|
594
|
+
*
|
|
595
|
+
* @example
|
|
596
|
+
* ```tsx
|
|
597
|
+
* // Standard anchor
|
|
598
|
+
* <BreadcrumbLink href="/path">Link</BreadcrumbLink>
|
|
599
|
+
*
|
|
600
|
+
* // With Next.js Link
|
|
601
|
+
* <BreadcrumbLink asChild>
|
|
602
|
+
* <Link href="/path">Link</Link>
|
|
603
|
+
* </BreadcrumbLink>
|
|
604
|
+
*
|
|
605
|
+
* // With icon
|
|
606
|
+
* <BreadcrumbLink href="/" className="flex items-center gap-2">
|
|
607
|
+
* <HomeIcon className="size-4" />
|
|
608
|
+
* Home
|
|
609
|
+
* </BreadcrumbLink>
|
|
610
|
+
* ```
|
|
611
|
+
*/
|
|
612
|
+
declare const BreadcrumbLink: {
|
|
613
|
+
({ asChild, className, ref, ...props }: BreadcrumbLinkProps & {
|
|
614
|
+
ref?: React.Ref<HTMLAnchorElement> | undefined;
|
|
615
|
+
}): react_jsx_runtime.JSX.Element;
|
|
616
|
+
displayName: string;
|
|
617
|
+
};
|
|
618
|
+
/**
|
|
619
|
+
* BreadcrumbPage - Current page indicator (non-interactive)
|
|
620
|
+
*/
|
|
621
|
+
declare const BreadcrumbPage: {
|
|
622
|
+
({ className, ref, ...props }: BreadcrumbPageProps & {
|
|
623
|
+
ref?: React.Ref<HTMLSpanElement> | undefined;
|
|
624
|
+
}): react_jsx_runtime.JSX.Element;
|
|
625
|
+
displayName: string;
|
|
626
|
+
};
|
|
627
|
+
/**
|
|
628
|
+
* BreadcrumbSeparator - Visual separator between items
|
|
629
|
+
*
|
|
630
|
+
* @example
|
|
631
|
+
* ```tsx
|
|
632
|
+
* // Default (ChevronRight icon)
|
|
633
|
+
* <BreadcrumbSeparator />
|
|
634
|
+
*
|
|
635
|
+
* // Custom separator
|
|
636
|
+
* <BreadcrumbSeparator>/</BreadcrumbSeparator>
|
|
637
|
+
* <BreadcrumbSeparator>→</BreadcrumbSeparator>
|
|
638
|
+
* ```
|
|
639
|
+
*/
|
|
640
|
+
declare const BreadcrumbSeparator: {
|
|
641
|
+
({ children, className, ...props }: BreadcrumbSeparatorProps): react_jsx_runtime.JSX.Element;
|
|
642
|
+
displayName: string;
|
|
643
|
+
};
|
|
644
|
+
/**
|
|
645
|
+
* BreadcrumbEllipsis - Collapsed items indicator
|
|
646
|
+
*
|
|
647
|
+
* @example
|
|
648
|
+
* ```tsx
|
|
649
|
+
* <BreadcrumbItem>
|
|
650
|
+
* <BreadcrumbEllipsis />
|
|
651
|
+
* </BreadcrumbItem>
|
|
652
|
+
* ```
|
|
653
|
+
*/
|
|
654
|
+
declare const BreadcrumbEllipsis: {
|
|
655
|
+
({ className, ...props }: BreadcrumbEllipsisProps): react_jsx_runtime.JSX.Element;
|
|
656
|
+
displayName: string;
|
|
657
|
+
};
|
|
658
|
+
|
|
659
|
+
declare const buttonVariants: (props?: ({
|
|
660
|
+
variant?: "outline" | "link" | "default" | "ink" | "destructive" | "secondary" | "ghost" | "tertiary" | "warning" | null | undefined;
|
|
661
|
+
size?: "default" | "sm" | "lg" | "icon" | "tiny" | null | undefined;
|
|
662
|
+
shape?: "circle" | "default" | "square" | null | undefined;
|
|
663
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
664
|
+
|
|
665
|
+
interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "prefix">, VariantProps<typeof buttonVariants> {
|
|
666
|
+
/** Render as a child element (Radix Slot — polymorphic) */
|
|
667
|
+
asChild?: boolean;
|
|
668
|
+
/** Show loading spinner and disable interaction */
|
|
669
|
+
loading?: boolean;
|
|
670
|
+
/** Icon or element rendered before children */
|
|
671
|
+
prefix?: React.ReactNode;
|
|
672
|
+
/** Icon or element rendered after children */
|
|
673
|
+
suffix?: React.ReactNode;
|
|
674
|
+
/** Elevation shadow level. `true` resolves to `"md"` */
|
|
675
|
+
shadow?: boolean | "sm" | "md" | "lg";
|
|
676
|
+
}
|
|
677
|
+
declare const Button: {
|
|
678
|
+
({ className, variant, size, shape, asChild, loading, disabled, prefix, suffix, shadow, children, ref, ...props }: ButtonProps & {
|
|
679
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
680
|
+
}): react_jsx_runtime.JSX.Element;
|
|
681
|
+
displayName: string;
|
|
682
|
+
};
|
|
683
|
+
interface ButtonLinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, "prefix">, VariantProps<typeof buttonVariants> {
|
|
684
|
+
/** Icon or element rendered before children */
|
|
685
|
+
prefix?: React.ReactNode;
|
|
686
|
+
/** Icon or element rendered after children */
|
|
687
|
+
suffix?: React.ReactNode;
|
|
688
|
+
/** Elevation shadow level. `true` resolves to `"md"` */
|
|
689
|
+
shadow?: boolean | "sm" | "md" | "lg";
|
|
690
|
+
/** Show loading spinner */
|
|
691
|
+
loading?: boolean;
|
|
692
|
+
}
|
|
693
|
+
declare const ButtonLink: {
|
|
694
|
+
({ className, variant, size, shape, prefix, suffix, shadow, loading, children, ref, ...props }: ButtonLinkProps & {
|
|
695
|
+
ref?: React.Ref<HTMLAnchorElement> | undefined;
|
|
696
|
+
}): react_jsx_runtime.JSX.Element;
|
|
697
|
+
displayName: string;
|
|
698
|
+
};
|
|
699
|
+
|
|
700
|
+
declare const Card: {
|
|
701
|
+
({ className, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
702
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
703
|
+
}): react_jsx_runtime.JSX.Element;
|
|
704
|
+
displayName: string;
|
|
705
|
+
};
|
|
706
|
+
declare const CardHeader: {
|
|
707
|
+
({ className, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
708
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
709
|
+
}): react_jsx_runtime.JSX.Element;
|
|
710
|
+
displayName: string;
|
|
711
|
+
};
|
|
712
|
+
declare const CardTitle: {
|
|
713
|
+
({ className, children, ref, ...props }: React.HTMLAttributes<HTMLHeadingElement> & {
|
|
714
|
+
ref?: React.Ref<HTMLHeadingElement> | undefined;
|
|
715
|
+
}): react_jsx_runtime.JSX.Element;
|
|
716
|
+
displayName: string;
|
|
717
|
+
};
|
|
718
|
+
interface CardDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement | HTMLDivElement> {
|
|
719
|
+
as?: React.ElementType;
|
|
720
|
+
}
|
|
721
|
+
declare const CardDescription: {
|
|
722
|
+
({ className, as: Tag, ref, ...props }: CardDescriptionProps & {
|
|
723
|
+
ref?: React.Ref<HTMLParagraphElement | HTMLDivElement> | undefined;
|
|
724
|
+
}): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
725
|
+
displayName: string;
|
|
726
|
+
};
|
|
727
|
+
declare const CardContent: {
|
|
728
|
+
({ className, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
729
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
730
|
+
}): react_jsx_runtime.JSX.Element;
|
|
731
|
+
displayName: string;
|
|
732
|
+
};
|
|
733
|
+
declare const CardFooter: {
|
|
734
|
+
({ className, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
735
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
736
|
+
}): react_jsx_runtime.JSX.Element;
|
|
737
|
+
displayName: string;
|
|
738
|
+
};
|
|
739
|
+
|
|
740
|
+
interface CheckboxProps {
|
|
741
|
+
checked?: boolean;
|
|
742
|
+
defaultChecked?: boolean;
|
|
743
|
+
onChange?: (checked: boolean) => void;
|
|
744
|
+
disabled?: boolean;
|
|
745
|
+
indeterminate?: boolean;
|
|
746
|
+
children?: React__default.ReactNode;
|
|
747
|
+
className?: string;
|
|
748
|
+
id?: string;
|
|
749
|
+
name?: string;
|
|
750
|
+
}
|
|
751
|
+
interface CheckboxGroupProps {
|
|
752
|
+
/** Accessible group label */
|
|
753
|
+
label?: string;
|
|
754
|
+
/** Layout direction */
|
|
755
|
+
orientation?: "vertical" | "horizontal";
|
|
756
|
+
children: React__default.ReactNode;
|
|
757
|
+
className?: string;
|
|
758
|
+
}
|
|
759
|
+
declare const Checkbox: ({ checked: controlledChecked, defaultChecked, onChange, disabled, indeterminate, children, className, id, name, }: CheckboxProps) => react_jsx_runtime.JSX.Element;
|
|
760
|
+
declare function CheckboxGroup({ label, orientation, children, className, }: CheckboxGroupProps): react_jsx_runtime.JSX.Element;
|
|
761
|
+
declare namespace CheckboxGroup {
|
|
762
|
+
var displayName: string;
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
type CodeBlockLanguageIconComponent = ElementType<SVGProps<SVGSVGElement> & {
|
|
766
|
+
color?: string;
|
|
767
|
+
size?: number | string;
|
|
768
|
+
title?: string;
|
|
769
|
+
}>;
|
|
770
|
+
type CodeBlockLanguageIconElement = ReactElement<{
|
|
771
|
+
className?: string;
|
|
772
|
+
color?: string;
|
|
773
|
+
size?: number | string;
|
|
774
|
+
}>;
|
|
775
|
+
type CodeBlockLanguageIconValue = CodeBlockLanguageIconComponent | CodeBlockLanguageIconElement | false | null;
|
|
776
|
+
type CodeBlockLanguageIconMap = Partial<Record<string, CodeBlockLanguageIconValue | undefined>>;
|
|
777
|
+
declare function normalizeCodeBlockLanguage(language?: string | null): string;
|
|
778
|
+
declare function resolveCodeBlockLanguageIcon(language?: string | null, options?: {
|
|
779
|
+
icon?: CodeBlockLanguageIconValue | undefined;
|
|
780
|
+
icons?: CodeBlockLanguageIconMap | undefined;
|
|
781
|
+
}): {
|
|
782
|
+
color: undefined;
|
|
783
|
+
icon: "symbol" | "svg" | "animate" | "animateMotion" | "animateTransform" | "defs" | "desc" | "foreignObject" | "g" | "metadata" | "mpath" | "switch" | "view" | React.ComponentClass<SVGProps<SVGSVGElement> & {
|
|
784
|
+
color?: string;
|
|
785
|
+
size?: number | string;
|
|
786
|
+
title?: string;
|
|
787
|
+
}, any> | React.FunctionComponent<SVGProps<SVGSVGElement> & {
|
|
788
|
+
color?: string;
|
|
789
|
+
size?: number | string;
|
|
790
|
+
title?: string;
|
|
791
|
+
}> | CodeBlockLanguageIconElement;
|
|
792
|
+
language: string;
|
|
793
|
+
label: string;
|
|
794
|
+
} | {
|
|
795
|
+
language: string;
|
|
796
|
+
color: string;
|
|
797
|
+
icon: CodeBlockLanguageIconComponent;
|
|
798
|
+
label: string;
|
|
799
|
+
} | null;
|
|
800
|
+
interface CodeBlockLanguageIconProps {
|
|
801
|
+
className?: string;
|
|
802
|
+
fallback?: ReactNode | undefined;
|
|
803
|
+
icon?: CodeBlockLanguageIconValue | undefined;
|
|
804
|
+
icons?: CodeBlockLanguageIconMap | undefined;
|
|
805
|
+
language?: string | null | undefined;
|
|
806
|
+
}
|
|
807
|
+
declare function CodeBlockLanguageIcon({ className, fallback, icon, icons, language, }: CodeBlockLanguageIconProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null;
|
|
808
|
+
|
|
809
|
+
/**
|
|
810
|
+
* Per-file shape (multi-file tab mode).
|
|
811
|
+
*
|
|
812
|
+
* Geist's `<CodeBlock>` is single-file by design — pass `children`/`filename`/
|
|
813
|
+
* `language` directly on the component instead. The `files[]` array remains
|
|
814
|
+
* the canonical multi-file form, which Geist does not provide.
|
|
815
|
+
*
|
|
816
|
+
* Geist prop-name aliases:
|
|
817
|
+
* - `filename` (single-file) ↔ `title` (per file in `files[]`)
|
|
818
|
+
* - `addedLinesNumbers` ↔ `addedLines`
|
|
819
|
+
* - `removedLinesNumbers` ↔ `removedLines`
|
|
820
|
+
*/
|
|
821
|
+
interface CodeBlockFile {
|
|
822
|
+
/** File name/title displayed in tab. Geist single-file equivalent: `filename`. */
|
|
823
|
+
title: string;
|
|
824
|
+
/** Code content. */
|
|
825
|
+
code: string;
|
|
826
|
+
/** Language for syntax highlighting (auto-detected from title if omitted). */
|
|
827
|
+
language?: string;
|
|
828
|
+
/** Line numbers to highlight with emphasis background (1-indexed). */
|
|
829
|
+
highlightedLines?: number[];
|
|
830
|
+
/** Line numbers to mark as added / diff-green (1-indexed). Geist alias: `addedLinesNumbers`. */
|
|
831
|
+
addedLines?: number[];
|
|
832
|
+
/** Line numbers to mark as removed / diff-red (1-indexed). Geist alias: `removedLinesNumbers`. */
|
|
833
|
+
removedLines?: number[];
|
|
834
|
+
/** Optional per-file language logo override. Defaults from `language` / file extension. */
|
|
835
|
+
icon?: CodeBlockLanguageIconValue;
|
|
836
|
+
}
|
|
837
|
+
interface CodeBlockSwitcherOption {
|
|
838
|
+
/** Human-readable label displayed in the switcher. */
|
|
839
|
+
label: string;
|
|
840
|
+
/** Language value passed to the syntax highlighter. */
|
|
841
|
+
value: string;
|
|
842
|
+
/** Optional language logo override for this option. */
|
|
843
|
+
icon?: CodeBlockLanguageIconValue;
|
|
844
|
+
}
|
|
845
|
+
/**
|
|
846
|
+
* Controlled language-switcher (Geist API).
|
|
847
|
+
* The single-file form accepts this directly; the multi-file form keeps the
|
|
848
|
+
* legacy uncontrolled `showLanguageSwitcher` + `languages` for back-compat.
|
|
849
|
+
*/
|
|
850
|
+
interface CodeBlockSwitcher {
|
|
851
|
+
options: ReadonlyArray<CodeBlockSwitcherOption>;
|
|
852
|
+
value: string;
|
|
853
|
+
onChange: (next: string) => void;
|
|
854
|
+
}
|
|
855
|
+
interface CommonCodeBlockProps {
|
|
856
|
+
/** Additional CSS classes on the outer container. */
|
|
857
|
+
className?: string;
|
|
858
|
+
/** Maximum height of code area. */
|
|
859
|
+
maxHeight?: string | number;
|
|
860
|
+
/** Show line numbers. Geist default: visible. Alias of `hideLineNumbers` (inverted). */
|
|
861
|
+
showLineNumbers?: boolean;
|
|
862
|
+
/** Geist single-file convention — inverse of `showLineNumbers`. */
|
|
863
|
+
hideLineNumbers?: boolean;
|
|
864
|
+
/** Enable clickable line numbers that copy `#L{n}` anchors. */
|
|
865
|
+
enableLineReferences?: boolean;
|
|
866
|
+
/** Callback when a line reference is clicked. */
|
|
867
|
+
onLineReference?: (lineNumber: number) => void;
|
|
868
|
+
/** Language logo overrides keyed by language name or alias (`python`, `py`, `tsx`, etc.). */
|
|
869
|
+
languageIcons?: CodeBlockLanguageIconMap;
|
|
870
|
+
/** Show language logos in the header/tabs/switcher. Defaults to true. */
|
|
871
|
+
showLanguageIcon?: boolean;
|
|
872
|
+
/** Hide the header bar entirely (filename + copy) — for embedded read-only views. */
|
|
873
|
+
hideHeader?: boolean;
|
|
874
|
+
/** Accessible label for the code block. Pass via the standard `aria-label` attribute. */
|
|
875
|
+
"aria-label"?: string;
|
|
876
|
+
}
|
|
877
|
+
/** Multi-file (legacy) shape — tabs across `files[]`. */
|
|
878
|
+
interface CodeBlockFilesProps extends CommonCodeBlockProps {
|
|
879
|
+
/** Array of code files to display as tabs. */
|
|
880
|
+
files: CodeBlockFile[];
|
|
881
|
+
/** Initially active file title. */
|
|
882
|
+
defaultTitle?: string;
|
|
883
|
+
/** Show an uncontrolled language switcher dropdown over the built-in list. */
|
|
884
|
+
showLanguageSwitcher?: boolean;
|
|
885
|
+
/** Languages available in the uncontrolled switcher (defaults to built-in list). */
|
|
886
|
+
languages?: string[];
|
|
887
|
+
children?: never;
|
|
888
|
+
filename?: never;
|
|
889
|
+
language?: never;
|
|
890
|
+
addedLinesNumbers?: never;
|
|
891
|
+
removedLinesNumbers?: never;
|
|
892
|
+
highlightedLines?: never;
|
|
893
|
+
switcher?: never;
|
|
894
|
+
}
|
|
895
|
+
/** Single-file (Geist) shape — `<CodeBlock filename="..." language="...">{code}</CodeBlock>`. */
|
|
896
|
+
interface CodeBlockSingleProps extends CommonCodeBlockProps {
|
|
897
|
+
/** Source code as a string. */
|
|
898
|
+
children: string;
|
|
899
|
+
/** Language for syntax highlighting. Required by Geist guidance. */
|
|
900
|
+
language: string;
|
|
901
|
+
/** File name shown in the header; omit for ephemeral examples. */
|
|
902
|
+
filename?: string;
|
|
903
|
+
/** Line numbers to highlight with emphasis background (1-indexed). */
|
|
904
|
+
highlightedLines?: number[];
|
|
905
|
+
/** Geist canonical name for added lines. */
|
|
906
|
+
addedLinesNumbers?: number[];
|
|
907
|
+
/** Geist canonical name for removed lines. */
|
|
908
|
+
removedLinesNumbers?: number[];
|
|
909
|
+
/** Controlled language switcher. */
|
|
910
|
+
switcher?: CodeBlockSwitcher;
|
|
911
|
+
/** Optional single-file language logo override. Defaults from `language`. */
|
|
912
|
+
languageIcon?: CodeBlockLanguageIconValue;
|
|
913
|
+
files?: never;
|
|
914
|
+
defaultTitle?: never;
|
|
915
|
+
showLanguageSwitcher?: never;
|
|
916
|
+
languages?: never;
|
|
917
|
+
}
|
|
918
|
+
type CodeBlockProps = CodeBlockFilesProps | CodeBlockSingleProps;
|
|
919
|
+
/**
|
|
920
|
+
* CodeBlock — syntax-highlighted code viewer with copy + (optional) tabs.
|
|
921
|
+
*
|
|
922
|
+
* Two calling conventions are supported:
|
|
923
|
+
*
|
|
924
|
+
* @example Geist single-file (canonical for prose-embedded snippets)
|
|
925
|
+
* ```tsx
|
|
926
|
+
* <CodeBlock filename="Table.jsx" language="jsx" aria-label="Hello world">
|
|
927
|
+
* {code}
|
|
928
|
+
* </CodeBlock>
|
|
929
|
+
* ```
|
|
930
|
+
*
|
|
931
|
+
* @example Geist with a controlled language switcher
|
|
932
|
+
* ```tsx
|
|
933
|
+
* <CodeBlock
|
|
934
|
+
* filename="example.tsx"
|
|
935
|
+
* language={lang}
|
|
936
|
+
* switcher={{
|
|
937
|
+
* options: [{ label: "JS", value: "js" }, { label: "TS", value: "ts" }],
|
|
938
|
+
* value: lang,
|
|
939
|
+
* onChange: setLang,
|
|
940
|
+
* }}
|
|
941
|
+
* >
|
|
942
|
+
* {code}
|
|
943
|
+
* </CodeBlock>
|
|
944
|
+
* ```
|
|
945
|
+
*
|
|
946
|
+
* @example Multi-file tabs (Nebutra extension — Geist has no tabs)
|
|
947
|
+
* ```tsx
|
|
948
|
+
* <CodeBlock
|
|
949
|
+
* files={[
|
|
950
|
+
* { title: "theme.ts", code: themeCode },
|
|
951
|
+
* { title: "styles.css", code: cssCode },
|
|
952
|
+
* ]}
|
|
953
|
+
* defaultTitle="theme.ts"
|
|
954
|
+
* />
|
|
955
|
+
* ```
|
|
956
|
+
*
|
|
957
|
+
* Line number defaults:
|
|
958
|
+
* - Single-file (Geist) → line numbers shown by default; opt out via `hideLineNumbers`.
|
|
959
|
+
* - Multi-file (legacy) → hidden by default; opt in via `showLineNumbers`.
|
|
960
|
+
*/
|
|
961
|
+
declare function CodeBlock(props: CodeBlockProps): react_jsx_runtime.JSX.Element;
|
|
962
|
+
|
|
963
|
+
type CollapseSize = AccordionSize;
|
|
964
|
+
type CollapseProps = {
|
|
965
|
+
/** Panel heading. Title Case, names the topic (not the action). */
|
|
966
|
+
title: ReactNode;
|
|
967
|
+
/** Initial expanded state (uncontrolled). */
|
|
968
|
+
defaultExpanded?: boolean;
|
|
969
|
+
/** Visual variant. `small` for tight density (in-cards). */
|
|
970
|
+
size?: CollapseSize;
|
|
971
|
+
/**
|
|
972
|
+
* Keep the panel content in the DOM when closed so browser find-in-page
|
|
973
|
+
* and search crawlers still hit it. @default true
|
|
974
|
+
*/
|
|
975
|
+
keepMounted?: boolean;
|
|
976
|
+
/** Disable the trigger. */
|
|
977
|
+
disabled?: boolean;
|
|
978
|
+
children: ReactNode;
|
|
979
|
+
className?: string;
|
|
980
|
+
/** Internal — auto-set by CollapseGroup. Do not pass directly. */
|
|
981
|
+
__value?: string;
|
|
982
|
+
};
|
|
983
|
+
type CollapseGroupProps = {
|
|
984
|
+
/** Allow multiple panels open simultaneously. @default false */
|
|
985
|
+
multiple?: boolean;
|
|
986
|
+
/**
|
|
987
|
+
* Visual variant applied to every child Collapse that doesn't set its own.
|
|
988
|
+
*/
|
|
989
|
+
size?: CollapseSize;
|
|
990
|
+
children: ReactNode;
|
|
991
|
+
className?: string;
|
|
992
|
+
};
|
|
993
|
+
declare const CollapseGroup: ({ ref, multiple, size, children, className, }: CollapseGroupProps & {
|
|
994
|
+
ref?: Ref<HTMLDivElement> | undefined;
|
|
995
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
996
|
+
declare const Collapse: ({ ref, title, defaultExpanded, size, keepMounted, disabled, children, className, __value, }: CollapseProps & {
|
|
997
|
+
ref?: Ref<HTMLDivElement> | undefined;
|
|
998
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
999
|
+
|
|
1000
|
+
declare const Dialog: typeof Dialog$1.Root;
|
|
1001
|
+
declare const DialogPortal: React.ForwardRefExoticComponent<Omit<_base_ui_react.DialogPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
1002
|
+
declare const DialogTrigger: {
|
|
1003
|
+
({ asChild, children, ref, ...props }: React.ComponentPropsWithoutRef<typeof Dialog$1.Trigger> & {
|
|
1004
|
+
asChild?: boolean;
|
|
1005
|
+
} & {
|
|
1006
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
1007
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1008
|
+
displayName: string;
|
|
1009
|
+
};
|
|
1010
|
+
declare const DialogClose: {
|
|
1011
|
+
({ asChild, children, ref, ...props }: React.ComponentPropsWithoutRef<typeof Dialog$1.Close> & {
|
|
1012
|
+
asChild?: boolean;
|
|
1013
|
+
} & {
|
|
1014
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
1015
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1016
|
+
displayName: string;
|
|
1017
|
+
};
|
|
1018
|
+
declare const DialogOverlay: {
|
|
1019
|
+
({ className, style, ref, ...props }: React.ComponentPropsWithoutRef<typeof Dialog$1.Backdrop> & {
|
|
1020
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
1021
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1022
|
+
displayName: string;
|
|
1023
|
+
};
|
|
1024
|
+
declare const DialogContent: {
|
|
1025
|
+
({ className, children, style, ref, ...props }: React.ComponentPropsWithoutRef<typeof Dialog$1.Popup> & {
|
|
1026
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
1027
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1028
|
+
displayName: string;
|
|
1029
|
+
};
|
|
1030
|
+
declare const DialogHeader: {
|
|
1031
|
+
({ className, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
1032
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
1033
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1034
|
+
displayName: string;
|
|
1035
|
+
};
|
|
1036
|
+
declare const DialogFooter: {
|
|
1037
|
+
({ className, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
1038
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
1039
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1040
|
+
displayName: string;
|
|
1041
|
+
};
|
|
1042
|
+
declare const DialogTitle: {
|
|
1043
|
+
({ className, ref, ...props }: React.ComponentPropsWithoutRef<typeof Dialog$1.Title> & {
|
|
1044
|
+
ref?: React.Ref<HTMLHeadingElement> | undefined;
|
|
1045
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1046
|
+
displayName: string;
|
|
1047
|
+
};
|
|
1048
|
+
declare const DialogDescription: {
|
|
1049
|
+
({ className, ref, ...props }: React.ComponentPropsWithoutRef<typeof Dialog$1.Description> & {
|
|
1050
|
+
ref?: React.Ref<HTMLParagraphElement> | undefined;
|
|
1051
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1052
|
+
displayName: string;
|
|
1053
|
+
};
|
|
1054
|
+
|
|
1055
|
+
type CommandProps = React.ComponentPropsWithoutRef<typeof Command$1>;
|
|
1056
|
+
type CommandDialogProps = React.ComponentPropsWithoutRef<typeof Dialog> & {
|
|
1057
|
+
children?: React.ReactNode;
|
|
1058
|
+
};
|
|
1059
|
+
type CommandInputProps = React.ComponentPropsWithoutRef<typeof Command$1.Input>;
|
|
1060
|
+
type CommandListProps = React.ComponentPropsWithoutRef<typeof Command$1.List>;
|
|
1061
|
+
type CommandEmptyProps = React.ComponentPropsWithoutRef<typeof Command$1.Empty>;
|
|
1062
|
+
type CommandGroupProps = React.ComponentPropsWithoutRef<typeof Command$1.Group>;
|
|
1063
|
+
type CommandSeparatorProps = React.ComponentPropsWithoutRef<typeof Command$1.Separator>;
|
|
1064
|
+
type CommandItemProps = React.ComponentPropsWithoutRef<typeof Command$1.Item>;
|
|
1065
|
+
interface CommandShortcutProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
1066
|
+
/** Render each shortcut token as a separate Kbd key. */
|
|
1067
|
+
keys?: ReadonlyArray<React.ReactNode>;
|
|
1068
|
+
/** Accessible label for compact shortcut glyphs. */
|
|
1069
|
+
label?: string;
|
|
1070
|
+
}
|
|
1071
|
+
interface CommandResultsProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
1072
|
+
/** Current visible result count. Pass from product state when known. */
|
|
1073
|
+
count?: number;
|
|
1074
|
+
/** Current search query, used only for the default screen-reader message. */
|
|
1075
|
+
search?: string;
|
|
1076
|
+
/** Custom screen-reader announcement. */
|
|
1077
|
+
label?: (count: number | undefined, search: string) => React.ReactNode;
|
|
1078
|
+
}
|
|
1079
|
+
/**
|
|
1080
|
+
* Command - A command palette / autocomplete component
|
|
1081
|
+
*
|
|
1082
|
+
* @description
|
|
1083
|
+
* Based on cmdk, provides a fast, composable command palette interface.
|
|
1084
|
+
* Can be used standalone or inside a dialog.
|
|
1085
|
+
*
|
|
1086
|
+
* @example Basic usage
|
|
1087
|
+
* ```tsx
|
|
1088
|
+
* <Command>
|
|
1089
|
+
* <CommandInput placeholder="Search..." />
|
|
1090
|
+
* <CommandList>
|
|
1091
|
+
* <CommandEmpty>No results found.</CommandEmpty>
|
|
1092
|
+
* <CommandGroup heading="Suggestions">
|
|
1093
|
+
* <CommandItem>Calendar</CommandItem>
|
|
1094
|
+
* <CommandItem>Search</CommandItem>
|
|
1095
|
+
* </CommandGroup>
|
|
1096
|
+
* </CommandList>
|
|
1097
|
+
* </Command>
|
|
1098
|
+
* ```
|
|
1099
|
+
*
|
|
1100
|
+
* @example In dialog
|
|
1101
|
+
* ```tsx
|
|
1102
|
+
* <CommandDialog open={open} onOpenChange={setOpen}>
|
|
1103
|
+
* <CommandInput placeholder="Type a command..." />
|
|
1104
|
+
* <CommandList>
|
|
1105
|
+
* <CommandGroup heading="Actions">
|
|
1106
|
+
* <CommandItem>New File</CommandItem>
|
|
1107
|
+
* <CommandItem>Settings</CommandItem>
|
|
1108
|
+
* </CommandGroup>
|
|
1109
|
+
* </CommandList>
|
|
1110
|
+
* </CommandDialog>
|
|
1111
|
+
* ```
|
|
1112
|
+
*/
|
|
1113
|
+
declare const Command: {
|
|
1114
|
+
({ className, ref, ...props }: CommandProps & {
|
|
1115
|
+
ref?: React.Ref<React.ElementRef<typeof Command$1>> | undefined;
|
|
1116
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1117
|
+
displayName: string | undefined;
|
|
1118
|
+
};
|
|
1119
|
+
declare const CommandDialog: ({ children, ...props }: CommandDialogProps) => react_jsx_runtime.JSX.Element;
|
|
1120
|
+
declare const CommandInput: {
|
|
1121
|
+
({ className, ref, ...props }: CommandInputProps & {
|
|
1122
|
+
ref?: React.Ref<React.ElementRef<typeof Command$1.Input>> | undefined;
|
|
1123
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1124
|
+
displayName: string | undefined;
|
|
1125
|
+
};
|
|
1126
|
+
declare const CommandList: {
|
|
1127
|
+
({ className, ref, ...props }: CommandListProps & {
|
|
1128
|
+
ref?: React.Ref<React.ElementRef<typeof Command$1.List>> | undefined;
|
|
1129
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1130
|
+
displayName: string | undefined;
|
|
1131
|
+
};
|
|
1132
|
+
declare const CommandEmpty: {
|
|
1133
|
+
({ ref, ...props }: CommandEmptyProps & {
|
|
1134
|
+
ref?: React.Ref<React.ElementRef<typeof Command$1.Empty>> | undefined;
|
|
1135
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1136
|
+
displayName: string | undefined;
|
|
1137
|
+
};
|
|
1138
|
+
declare const CommandGroup: {
|
|
1139
|
+
({ className, ref, ...props }: CommandGroupProps & {
|
|
1140
|
+
ref?: React.Ref<React.ElementRef<typeof Command$1.Group>> | undefined;
|
|
1141
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1142
|
+
displayName: string | undefined;
|
|
1143
|
+
};
|
|
1144
|
+
declare const CommandSeparator: {
|
|
1145
|
+
({ className, ref, ...props }: CommandSeparatorProps & {
|
|
1146
|
+
ref?: React.Ref<React.ElementRef<typeof Command$1.Separator>> | undefined;
|
|
1147
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1148
|
+
displayName: string | undefined;
|
|
1149
|
+
};
|
|
1150
|
+
declare const CommandItem: {
|
|
1151
|
+
({ className, ref, ...props }: CommandItemProps & {
|
|
1152
|
+
ref?: React.Ref<React.ElementRef<typeof Command$1.Item>> | undefined;
|
|
1153
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1154
|
+
displayName: string | undefined;
|
|
1155
|
+
};
|
|
1156
|
+
declare const CommandResults: {
|
|
1157
|
+
({ className, count, search, label, children, ref, ...props }: CommandResultsProps & {
|
|
1158
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
1159
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1160
|
+
displayName: string;
|
|
1161
|
+
};
|
|
1162
|
+
declare const CommandShortcut: {
|
|
1163
|
+
({ className, keys, label, children, ...props }: CommandShortcutProps): react_jsx_runtime.JSX.Element;
|
|
1164
|
+
displayName: string;
|
|
1165
|
+
};
|
|
1166
|
+
|
|
1167
|
+
type ComboboxSize = "small" | "medium" | "large";
|
|
1168
|
+
type LegacyComboboxSize = "sm" | "default" | "lg";
|
|
1169
|
+
type ComboboxValue = string | null;
|
|
1170
|
+
type ComboboxWidth = number | string;
|
|
1171
|
+
interface ComboboxOption {
|
|
1172
|
+
/** Machine value — used for selection matching */
|
|
1173
|
+
value: string;
|
|
1174
|
+
/** Human-readable label displayed in trigger and list */
|
|
1175
|
+
label: string;
|
|
1176
|
+
/** Disable this specific option */
|
|
1177
|
+
disabled?: boolean;
|
|
1178
|
+
/** Assign to a group heading key */
|
|
1179
|
+
group?: string;
|
|
1180
|
+
}
|
|
1181
|
+
interface ComboboxBaseProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "defaultValue" | "onChange"> {
|
|
1182
|
+
/** Flat list of options — the component handles grouping internally via option.group */
|
|
1183
|
+
options?: ComboboxOption[];
|
|
1184
|
+
/** Disable the entire combobox */
|
|
1185
|
+
disabled?: boolean;
|
|
1186
|
+
/** Show error styling. Prefer `errored`; `error` is kept for existing consumers. */
|
|
1187
|
+
errored?: boolean;
|
|
1188
|
+
/** @deprecated Use `errored`. */
|
|
1189
|
+
error?: boolean;
|
|
1190
|
+
/** Size variant matching Nebutra form controls. Legacy `sm`/`default`/`lg` values still map through. */
|
|
1191
|
+
size?: ComboboxSize | LegacyComboboxSize;
|
|
1192
|
+
/** Custom root width. Numbers are treated as pixels; strings can be CSS lengths. */
|
|
1193
|
+
width?: ComboboxWidth;
|
|
1194
|
+
/** Custom list max width. Numbers are treated as pixels; strings can be CSS lengths. */
|
|
1195
|
+
listMaxWidth?: ComboboxWidth;
|
|
1196
|
+
/** Accessible label shown above the trigger */
|
|
1197
|
+
label?: string;
|
|
1198
|
+
/** Whether the label is visually hidden (still accessible) */
|
|
1199
|
+
hideLabel?: boolean;
|
|
1200
|
+
/** Text shown in trigger when nothing is selected */
|
|
1201
|
+
placeholder?: string;
|
|
1202
|
+
/** Text shown when no options match the search */
|
|
1203
|
+
emptyMessage?: string;
|
|
1204
|
+
/** Placeholder inside the search input */
|
|
1205
|
+
searchPlaceholder?: string;
|
|
1206
|
+
/** Composition mode — children provide their own CommandInput/List/etc. */
|
|
1207
|
+
children?: React.ReactNode;
|
|
1208
|
+
/** Loading state for async option providers. */
|
|
1209
|
+
loading?: boolean;
|
|
1210
|
+
/** Text shown while async options are loading. */
|
|
1211
|
+
loadingMessage?: string;
|
|
1212
|
+
/** Accessible name when no visible label is rendered. */
|
|
1213
|
+
"aria-label"?: string;
|
|
1214
|
+
}
|
|
1215
|
+
interface ControlledComboboxProps extends ComboboxBaseProps {
|
|
1216
|
+
value: ComboboxValue;
|
|
1217
|
+
onChange: (value: ComboboxValue) => void;
|
|
1218
|
+
defaultValue?: never;
|
|
1219
|
+
}
|
|
1220
|
+
interface UncontrolledComboboxProps extends ComboboxBaseProps {
|
|
1221
|
+
value?: never;
|
|
1222
|
+
onChange?: (value: ComboboxValue) => void;
|
|
1223
|
+
defaultValue?: ComboboxValue;
|
|
1224
|
+
}
|
|
1225
|
+
type ComboboxProps = ControlledComboboxProps | UncontrolledComboboxProps;
|
|
1226
|
+
interface ComboboxOptionProps {
|
|
1227
|
+
value: string;
|
|
1228
|
+
label?: string;
|
|
1229
|
+
disabled?: boolean;
|
|
1230
|
+
className?: string;
|
|
1231
|
+
children?: React.ReactNode;
|
|
1232
|
+
}
|
|
1233
|
+
type ComboboxInputProps = React.ComponentPropsWithoutRef<typeof CommandInput>;
|
|
1234
|
+
type ComboboxEmptyProps = React.ComponentPropsWithoutRef<typeof CommandEmpty>;
|
|
1235
|
+
type ComboboxGroupProps = React.ComponentPropsWithoutRef<typeof CommandGroup>;
|
|
1236
|
+
interface ComboboxListProps extends CommandListProps {
|
|
1237
|
+
children?: React.ReactNode;
|
|
1238
|
+
className?: string;
|
|
1239
|
+
style?: React.CSSProperties;
|
|
1240
|
+
emptyMessage?: React.ReactNode;
|
|
1241
|
+
maxWidth?: ComboboxWidth | undefined;
|
|
1242
|
+
}
|
|
1243
|
+
declare const ComboboxOptionItem: {
|
|
1244
|
+
({ ref, value, label, disabled, className, children, }: ComboboxOptionProps & {
|
|
1245
|
+
ref?: React.Ref<React.ElementRef<typeof CommandItem>> | undefined;
|
|
1246
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1247
|
+
displayName: string;
|
|
1248
|
+
};
|
|
1249
|
+
declare const ComboboxInput: {
|
|
1250
|
+
({ ref, ...props }: ComboboxInputProps & {
|
|
1251
|
+
ref?: React.Ref<React.ElementRef<typeof CommandInput>> | undefined;
|
|
1252
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1253
|
+
displayName: string;
|
|
1254
|
+
};
|
|
1255
|
+
declare const ComboboxEmpty: {
|
|
1256
|
+
({ ref, ...props }: ComboboxEmptyProps & {
|
|
1257
|
+
ref?: React.Ref<React.ElementRef<typeof CommandEmpty>> | undefined;
|
|
1258
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1259
|
+
displayName: string;
|
|
1260
|
+
};
|
|
1261
|
+
declare const ComboboxGroupSub: {
|
|
1262
|
+
({ ref, ...props }: ComboboxGroupProps & {
|
|
1263
|
+
ref?: React.Ref<React.ElementRef<typeof CommandGroup>> | undefined;
|
|
1264
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1265
|
+
displayName: string;
|
|
1266
|
+
};
|
|
1267
|
+
declare const ComboboxSeparator: {
|
|
1268
|
+
({ className, ref, ...props }: CommandSeparatorProps & {
|
|
1269
|
+
ref?: React.Ref<React.ElementRef<React.ForwardRefExoticComponent<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
|
|
1270
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
1271
|
+
} & {
|
|
1272
|
+
asChild?: boolean;
|
|
1273
|
+
}, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
|
|
1274
|
+
alwaysRender?: boolean;
|
|
1275
|
+
} & React.RefAttributes<HTMLDivElement>>>> | undefined;
|
|
1276
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1277
|
+
displayName: string | undefined;
|
|
1278
|
+
};
|
|
1279
|
+
declare const ComboboxList: {
|
|
1280
|
+
({ children, className, emptyMessage, maxWidth, style, ref, ...props }: ComboboxListProps & {
|
|
1281
|
+
ref?: React.Ref<React.ElementRef<typeof CommandList>> | undefined;
|
|
1282
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1283
|
+
displayName: string;
|
|
1284
|
+
};
|
|
1285
|
+
declare function ComboboxRoot({ options, value: controlledValue, onChange, defaultValue, disabled, errored, error, size, width, listMaxWidth, label, hideLabel, placeholder, emptyMessage, searchPlaceholder, loading, loadingMessage, children, className, style, "aria-label": ariaLabel, ...props }: ComboboxProps): react_jsx_runtime.JSX.Element;
|
|
1286
|
+
declare namespace ComboboxRoot {
|
|
1287
|
+
var displayName: string;
|
|
1288
|
+
}
|
|
1289
|
+
/**
|
|
1290
|
+
* Combobox — Geist-style searchable select with compound API.
|
|
1291
|
+
*
|
|
1292
|
+
* @example Simple mode (options prop — fully self-contained)
|
|
1293
|
+
* ```tsx
|
|
1294
|
+
* <Combobox
|
|
1295
|
+
* label="Framework"
|
|
1296
|
+
* options={[
|
|
1297
|
+
* { value: "next", label: "Next.js" },
|
|
1298
|
+
* { value: "remix", label: "Remix" },
|
|
1299
|
+
* ]}
|
|
1300
|
+
* value={value}
|
|
1301
|
+
* onChange={setValue}
|
|
1302
|
+
* placeholder="Select framework..."
|
|
1303
|
+
* />
|
|
1304
|
+
* ```
|
|
1305
|
+
*
|
|
1306
|
+
* @example Composition mode (manual children)
|
|
1307
|
+
* ```tsx
|
|
1308
|
+
* <Combobox value={value} onChange={setValue} placeholder="Search...">
|
|
1309
|
+
* <Combobox.Input placeholder="Search frameworks..." />
|
|
1310
|
+
* <Combobox.List emptyMessage="Nothing here.">
|
|
1311
|
+
* <Combobox.Group heading="Frontend">
|
|
1312
|
+
* <Combobox.Option value="next">Next.js</Combobox.Option>
|
|
1313
|
+
* <Combobox.Option value="remix">Remix</Combobox.Option>
|
|
1314
|
+
* </Combobox.Group>
|
|
1315
|
+
* </Combobox.List>
|
|
1316
|
+
* </Combobox>
|
|
1317
|
+
* ```
|
|
1318
|
+
*/
|
|
1319
|
+
declare const Combobox: typeof ComboboxRoot & {
|
|
1320
|
+
Input: {
|
|
1321
|
+
({ ref, ...props }: ComboboxInputProps & {
|
|
1322
|
+
ref?: React.Ref<React.ElementRef<typeof CommandInput>> | undefined;
|
|
1323
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1324
|
+
displayName: string;
|
|
1325
|
+
};
|
|
1326
|
+
List: {
|
|
1327
|
+
({ children, className, emptyMessage, maxWidth, style, ref, ...props }: ComboboxListProps & {
|
|
1328
|
+
ref?: React.Ref<React.ElementRef<typeof CommandList>> | undefined;
|
|
1329
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1330
|
+
displayName: string;
|
|
1331
|
+
};
|
|
1332
|
+
Option: {
|
|
1333
|
+
({ ref, value, label, disabled, className, children, }: ComboboxOptionProps & {
|
|
1334
|
+
ref?: React.Ref<React.ElementRef<typeof CommandItem>> | undefined;
|
|
1335
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1336
|
+
displayName: string;
|
|
1337
|
+
};
|
|
1338
|
+
Empty: {
|
|
1339
|
+
({ ref, ...props }: ComboboxEmptyProps & {
|
|
1340
|
+
ref?: React.Ref<React.ElementRef<typeof CommandEmpty>> | undefined;
|
|
1341
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1342
|
+
displayName: string;
|
|
1343
|
+
};
|
|
1344
|
+
Group: {
|
|
1345
|
+
({ ref, ...props }: ComboboxGroupProps & {
|
|
1346
|
+
ref?: React.Ref<React.ElementRef<typeof CommandGroup>> | undefined;
|
|
1347
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1348
|
+
displayName: string;
|
|
1349
|
+
};
|
|
1350
|
+
Separator: {
|
|
1351
|
+
({ className, ref, ...props }: CommandSeparatorProps & {
|
|
1352
|
+
ref?: React.Ref<React.ElementRef<React.ForwardRefExoticComponent<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
|
|
1353
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
1354
|
+
} & {
|
|
1355
|
+
asChild?: boolean;
|
|
1356
|
+
}, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
|
|
1357
|
+
alwaysRender?: boolean;
|
|
1358
|
+
} & React.RefAttributes<HTMLDivElement>>>> | undefined;
|
|
1359
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1360
|
+
displayName: string | undefined;
|
|
1361
|
+
};
|
|
1362
|
+
};
|
|
1363
|
+
|
|
1364
|
+
type ContextMenuItemVariant = "default" | "destructive";
|
|
1365
|
+
interface ContextMenuItemProps extends Pick<React.ComponentPropsWithoutRef<typeof ContextMenu$1.Item>, "disabled" | "label" | "closeOnClick"> {
|
|
1366
|
+
children?: React.ReactNode;
|
|
1367
|
+
onSelect?: React.ComponentPropsWithoutRef<typeof ContextMenu$1.Item>["onClick"];
|
|
1368
|
+
href?: string;
|
|
1369
|
+
target?: React.HTMLAttributeAnchorTarget;
|
|
1370
|
+
rel?: string;
|
|
1371
|
+
prefix?: React.ReactNode;
|
|
1372
|
+
suffix?: React.ReactNode;
|
|
1373
|
+
variant?: ContextMenuItemVariant;
|
|
1374
|
+
value?: string;
|
|
1375
|
+
className?: string;
|
|
1376
|
+
}
|
|
1377
|
+
interface ContextMenuCheckboxItemProps extends Pick<React.ComponentPropsWithoutRef<typeof ContextMenu$1.CheckboxItem>, "checked" | "defaultChecked" | "disabled" | "label" | "closeOnClick" | "onCheckedChange"> {
|
|
1378
|
+
children?: React.ReactNode;
|
|
1379
|
+
prefix?: React.ReactNode;
|
|
1380
|
+
suffix?: React.ReactNode;
|
|
1381
|
+
onSelect?: React.ComponentPropsWithoutRef<typeof ContextMenu$1.CheckboxItem>["onClick"];
|
|
1382
|
+
value?: string;
|
|
1383
|
+
className?: string;
|
|
1384
|
+
}
|
|
1385
|
+
interface ContextMenuRadioGroupProps extends Omit<React.ComponentPropsWithoutRef<typeof ContextMenu$1.RadioGroup>, "value" | "defaultValue" | "onValueChange"> {
|
|
1386
|
+
value?: string;
|
|
1387
|
+
defaultValue?: string;
|
|
1388
|
+
onValueChange?: (value: string, eventDetails: Parameters<NonNullable<React.ComponentPropsWithoutRef<typeof ContextMenu$1.RadioGroup>["onValueChange"]>>[1]) => void;
|
|
1389
|
+
}
|
|
1390
|
+
interface ContextMenuRadioItemProps extends Pick<React.ComponentPropsWithoutRef<typeof ContextMenu$1.RadioItem>, "disabled" | "label" | "closeOnClick"> {
|
|
1391
|
+
children?: React.ReactNode;
|
|
1392
|
+
value: string;
|
|
1393
|
+
prefix?: React.ReactNode;
|
|
1394
|
+
suffix?: React.ReactNode;
|
|
1395
|
+
onSelect?: React.ComponentPropsWithoutRef<typeof ContextMenu$1.RadioItem>["onClick"];
|
|
1396
|
+
className?: string;
|
|
1397
|
+
}
|
|
1398
|
+
interface ContextMenuSubTriggerProps extends Pick<React.ComponentPropsWithoutRef<typeof ContextMenu$1.SubmenuTrigger>, "disabled" | "label" | "delay" | "closeDelay" | "openOnHover"> {
|
|
1399
|
+
children?: React.ReactNode;
|
|
1400
|
+
prefix?: React.ReactNode;
|
|
1401
|
+
suffix?: React.ReactNode;
|
|
1402
|
+
onSelect?: React.ComponentPropsWithoutRef<typeof ContextMenu$1.SubmenuTrigger>["onClick"];
|
|
1403
|
+
className?: string;
|
|
1404
|
+
}
|
|
1405
|
+
interface ContextMenuLabelProps {
|
|
1406
|
+
children?: React.ReactNode;
|
|
1407
|
+
className?: string;
|
|
1408
|
+
}
|
|
1409
|
+
interface ContextMenuSeparatorProps {
|
|
1410
|
+
className?: string;
|
|
1411
|
+
}
|
|
1412
|
+
interface ContextMenuContentProps extends React.ComponentPropsWithoutRef<typeof ContextMenu$1.Popup> {
|
|
1413
|
+
align?: React.ComponentProps<typeof ContextMenu$1.Positioner>["align"];
|
|
1414
|
+
sideOffset?: React.ComponentProps<typeof ContextMenu$1.Positioner>["sideOffset"];
|
|
1415
|
+
alignOffset?: React.ComponentProps<typeof ContextMenu$1.Positioner>["alignOffset"];
|
|
1416
|
+
side?: React.ComponentProps<typeof ContextMenu$1.Positioner>["side"];
|
|
1417
|
+
}
|
|
1418
|
+
declare const ContextMenuRoot: typeof ContextMenu$1.Root;
|
|
1419
|
+
declare const ContextMenuTrigger: {
|
|
1420
|
+
({ asChild, children, render, ref, ...props }: React.ComponentPropsWithoutRef<typeof ContextMenu$1.Trigger> & {
|
|
1421
|
+
asChild?: boolean;
|
|
1422
|
+
} & {
|
|
1423
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.Trigger>> | undefined;
|
|
1424
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1425
|
+
displayName: string;
|
|
1426
|
+
};
|
|
1427
|
+
declare const ContextMenuContent: {
|
|
1428
|
+
({ className, alignOffset, align, sideOffset, side, style, ref, ...props }: ContextMenuContentProps & {
|
|
1429
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.Popup>> | undefined;
|
|
1430
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1431
|
+
displayName: string;
|
|
1432
|
+
};
|
|
1433
|
+
declare const ContextMenuGroup: React.ForwardRefExoticComponent<Omit<_base_ui_react.ContextMenuGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
1434
|
+
declare const ContextMenuLabel: {
|
|
1435
|
+
({ className, ref, ...props }: ContextMenuLabelProps & {
|
|
1436
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.GroupLabel>> | undefined;
|
|
1437
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1438
|
+
displayName: string;
|
|
1439
|
+
};
|
|
1440
|
+
declare const ContextMenuSeparator: {
|
|
1441
|
+
({ className, ref, ...props }: ContextMenuSeparatorProps & {
|
|
1442
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.Separator>> | undefined;
|
|
1443
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1444
|
+
displayName: string;
|
|
1445
|
+
};
|
|
1446
|
+
declare const ContextMenuItem: {
|
|
1447
|
+
({ children, onSelect, disabled, href, target, rel, prefix, suffix, variant, value, className, ref, ...props }: ContextMenuItemProps & {
|
|
1448
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.Item>> | undefined;
|
|
1449
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1450
|
+
displayName: string;
|
|
1451
|
+
};
|
|
1452
|
+
declare const ContextMenuCheckboxItem: {
|
|
1453
|
+
({ children, prefix, suffix, onSelect, value, className, checked, defaultChecked, ref, ...props }: ContextMenuCheckboxItemProps & {
|
|
1454
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.CheckboxItem>> | undefined;
|
|
1455
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1456
|
+
displayName: string;
|
|
1457
|
+
};
|
|
1458
|
+
declare const ContextMenuRadioGroup: {
|
|
1459
|
+
({ onValueChange, ref, ...props }: ContextMenuRadioGroupProps & {
|
|
1460
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.RadioGroup>> | undefined;
|
|
1461
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1462
|
+
displayName: string;
|
|
1463
|
+
};
|
|
1464
|
+
declare const ContextMenuRadioItem: {
|
|
1465
|
+
({ children, prefix, suffix, onSelect, className, value, ref, ...props }: ContextMenuRadioItemProps & {
|
|
1466
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.RadioItem>> | undefined;
|
|
1467
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1468
|
+
displayName: string;
|
|
1469
|
+
};
|
|
1470
|
+
declare const ContextMenuSub: typeof ContextMenu$1.SubmenuRoot;
|
|
1471
|
+
declare const ContextMenuSubTrigger: {
|
|
1472
|
+
({ children, prefix, suffix, onSelect, className, ref, ...props }: ContextMenuSubTriggerProps & {
|
|
1473
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.SubmenuTrigger>> | undefined;
|
|
1474
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1475
|
+
displayName: string;
|
|
1476
|
+
};
|
|
1477
|
+
declare const ContextMenuSubContent: {
|
|
1478
|
+
({ className, alignOffset, align, sideOffset, side, style, ref, ...props }: ContextMenuContentProps & {
|
|
1479
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.Popup>> | undefined;
|
|
1480
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1481
|
+
displayName: string;
|
|
1482
|
+
};
|
|
1483
|
+
declare const ContextMenuShortcut: {
|
|
1484
|
+
({ className, ref, ...props }: React.ComponentPropsWithoutRef<"span"> & {
|
|
1485
|
+
ref?: React.Ref<HTMLSpanElement> | undefined;
|
|
1486
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1487
|
+
displayName: string;
|
|
1488
|
+
};
|
|
1489
|
+
declare const ContextMenu: typeof ContextMenu$1.Root & {
|
|
1490
|
+
Root: typeof ContextMenu$1.Root;
|
|
1491
|
+
Trigger: {
|
|
1492
|
+
({ asChild, children, render, ref, ...props }: React.ComponentPropsWithoutRef<typeof ContextMenu$1.Trigger> & {
|
|
1493
|
+
asChild?: boolean;
|
|
1494
|
+
} & {
|
|
1495
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.Trigger>> | undefined;
|
|
1496
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1497
|
+
displayName: string;
|
|
1498
|
+
};
|
|
1499
|
+
Content: {
|
|
1500
|
+
({ className, alignOffset, align, sideOffset, side, style, ref, ...props }: ContextMenuContentProps & {
|
|
1501
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.Popup>> | undefined;
|
|
1502
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1503
|
+
displayName: string;
|
|
1504
|
+
};
|
|
1505
|
+
Group: React.ForwardRefExoticComponent<Omit<_base_ui_react.ContextMenuGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
1506
|
+
Item: {
|
|
1507
|
+
({ children, onSelect, disabled, href, target, rel, prefix, suffix, variant, value, className, ref, ...props }: ContextMenuItemProps & {
|
|
1508
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.Item>> | undefined;
|
|
1509
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1510
|
+
displayName: string;
|
|
1511
|
+
};
|
|
1512
|
+
CheckboxItem: {
|
|
1513
|
+
({ children, prefix, suffix, onSelect, value, className, checked, defaultChecked, ref, ...props }: ContextMenuCheckboxItemProps & {
|
|
1514
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.CheckboxItem>> | undefined;
|
|
1515
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1516
|
+
displayName: string;
|
|
1517
|
+
};
|
|
1518
|
+
RadioGroup: {
|
|
1519
|
+
({ onValueChange, ref, ...props }: ContextMenuRadioGroupProps & {
|
|
1520
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.RadioGroup>> | undefined;
|
|
1521
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1522
|
+
displayName: string;
|
|
1523
|
+
};
|
|
1524
|
+
RadioItem: {
|
|
1525
|
+
({ children, prefix, suffix, onSelect, className, value, ref, ...props }: ContextMenuRadioItemProps & {
|
|
1526
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.RadioItem>> | undefined;
|
|
1527
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1528
|
+
displayName: string;
|
|
1529
|
+
};
|
|
1530
|
+
Label: {
|
|
1531
|
+
({ className, ref, ...props }: ContextMenuLabelProps & {
|
|
1532
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.GroupLabel>> | undefined;
|
|
1533
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1534
|
+
displayName: string;
|
|
1535
|
+
};
|
|
1536
|
+
Separator: {
|
|
1537
|
+
({ className, ref, ...props }: ContextMenuSeparatorProps & {
|
|
1538
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.Separator>> | undefined;
|
|
1539
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1540
|
+
displayName: string;
|
|
1541
|
+
};
|
|
1542
|
+
Shortcut: {
|
|
1543
|
+
({ className, ref, ...props }: React.ComponentPropsWithoutRef<"span"> & {
|
|
1544
|
+
ref?: React.Ref<HTMLSpanElement> | undefined;
|
|
1545
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1546
|
+
displayName: string;
|
|
1547
|
+
};
|
|
1548
|
+
Sub: typeof ContextMenu$1.SubmenuRoot;
|
|
1549
|
+
SubTrigger: {
|
|
1550
|
+
({ children, prefix, suffix, onSelect, className, ref, ...props }: ContextMenuSubTriggerProps & {
|
|
1551
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.SubmenuTrigger>> | undefined;
|
|
1552
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1553
|
+
displayName: string;
|
|
1554
|
+
};
|
|
1555
|
+
SubContent: {
|
|
1556
|
+
({ className, alignOffset, align, sideOffset, side, style, ref, ...props }: ContextMenuContentProps & {
|
|
1557
|
+
ref?: React.Ref<React.ElementRef<typeof ContextMenu$1.Popup>> | undefined;
|
|
1558
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1559
|
+
displayName: string;
|
|
1560
|
+
};
|
|
1561
|
+
};
|
|
1562
|
+
|
|
1563
|
+
interface CopyButtonProps extends Omit<React.ComponentProps<typeof Button>, "onClick" | "onCopy"> {
|
|
1564
|
+
/** Value to copy to clipboard */
|
|
1565
|
+
value: string;
|
|
1566
|
+
/** Button label (if not icon-only) */
|
|
1567
|
+
label?: string;
|
|
1568
|
+
/** Success message for toast */
|
|
1569
|
+
successMessage?: string;
|
|
1570
|
+
/** Tooltip text */
|
|
1571
|
+
tooltipText?: string;
|
|
1572
|
+
/** Icon type */
|
|
1573
|
+
iconType?: "copy" | "link" | "code" | "hash";
|
|
1574
|
+
/** Show toast on copy */
|
|
1575
|
+
showToast?: boolean;
|
|
1576
|
+
/** Callback after successful copy */
|
|
1577
|
+
onCopied?: (value: string) => void;
|
|
1578
|
+
}
|
|
1579
|
+
declare function CopyButton({ value, label, successMessage, tooltipText, iconType, showToast, onCopied, variant, size, className, ...props }: CopyButtonProps): react_jsx_runtime.JSX.Element;
|
|
1580
|
+
/**
|
|
1581
|
+
* Copy ID button - for copying UUIDs, IDs
|
|
1582
|
+
*/
|
|
1583
|
+
declare function CopyIdButton({ id, className, ...props }: {
|
|
1584
|
+
id: string;
|
|
1585
|
+
className?: string;
|
|
1586
|
+
} & Omit<CopyButtonProps, "value" | "iconType" | "tooltipText">): react_jsx_runtime.JSX.Element;
|
|
1587
|
+
/**
|
|
1588
|
+
* Copy link button - for copying URLs
|
|
1589
|
+
*/
|
|
1590
|
+
declare function CopyLinkButton({ url, className, ...props }: {
|
|
1591
|
+
url: string;
|
|
1592
|
+
className?: string;
|
|
1593
|
+
} & Omit<CopyButtonProps, "value" | "iconType" | "tooltipText">): react_jsx_runtime.JSX.Element;
|
|
1594
|
+
/**
|
|
1595
|
+
* Copy code button - for copying code snippets
|
|
1596
|
+
*/
|
|
1597
|
+
declare function CopyCodeButton({ code, className, ...props }: {
|
|
1598
|
+
code: string;
|
|
1599
|
+
className?: string;
|
|
1600
|
+
} & Omit<CopyButtonProps, "value" | "iconType" | "tooltipText">): react_jsx_runtime.JSX.Element;
|
|
1601
|
+
/**
|
|
1602
|
+
* Copyable text field - displays value with copy button
|
|
1603
|
+
*/
|
|
1604
|
+
interface CopyableFieldProps {
|
|
1605
|
+
value: string;
|
|
1606
|
+
label?: string;
|
|
1607
|
+
truncate?: boolean;
|
|
1608
|
+
className?: string;
|
|
1609
|
+
}
|
|
1610
|
+
declare function CopyableField({ value, label, truncate, className }: CopyableFieldProps): react_jsx_runtime.JSX.Element;
|
|
1611
|
+
interface UseCopyToClipboardOptions {
|
|
1612
|
+
successMessage?: string;
|
|
1613
|
+
showToast?: boolean;
|
|
1614
|
+
timeout?: number;
|
|
1615
|
+
}
|
|
1616
|
+
interface UseCopyToClipboardReturn {
|
|
1617
|
+
copied: boolean;
|
|
1618
|
+
copy: (value: string) => Promise<boolean>;
|
|
1619
|
+
}
|
|
1620
|
+
declare function useCopyToClipboard(options?: UseCopyToClipboardOptions): UseCopyToClipboardReturn;
|
|
1621
|
+
|
|
1622
|
+
interface DescriptionProps {
|
|
1623
|
+
/** Title Case noun naming the field (`Last Deployed`, `Region`). */
|
|
1624
|
+
title: string;
|
|
1625
|
+
/**
|
|
1626
|
+
* Value associated with the title. Sentence case unless the value is a
|
|
1627
|
+
* literal identifier, ID, or timestamp that should be preserved verbatim.
|
|
1628
|
+
* Accepts ReactNode so links and inline timestamps render correctly.
|
|
1629
|
+
*/
|
|
1630
|
+
content: ReactNode;
|
|
1631
|
+
/** Optional one-sentence definition shown via a hover/focus tooltip on the info glyph. Sentence case, ends with a period. */
|
|
1632
|
+
tooltip?: ReactNode;
|
|
1633
|
+
className?: string;
|
|
1634
|
+
}
|
|
1635
|
+
/**
|
|
1636
|
+
* @example
|
|
1637
|
+
* ```tsx
|
|
1638
|
+
* <Description
|
|
1639
|
+
* title="Section Title"
|
|
1640
|
+
* content="Data about this section."
|
|
1641
|
+
* tooltip="Additional context about what this section refers to."
|
|
1642
|
+
* />
|
|
1643
|
+
* ```
|
|
1644
|
+
*/
|
|
1645
|
+
declare const Description: ({ ref, title, content, tooltip, className, }: DescriptionProps & {
|
|
1646
|
+
ref?: Ref<HTMLDListElement> | undefined;
|
|
1647
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
1648
|
+
|
|
1649
|
+
type DrawerDirection = "top" | "bottom" | "left" | "right";
|
|
1650
|
+
type DrawerHeight = number | string;
|
|
1651
|
+
type DrawerProps = React.ComponentProps<typeof Drawer$1.Root> & {
|
|
1652
|
+
/** Controlled open state alias used by Geist-compatible examples. Prefer `open` for new Radix-style code. */
|
|
1653
|
+
show?: boolean;
|
|
1654
|
+
/** Called when the drawer is dismissed by escape, outside press, swipe, or close control. */
|
|
1655
|
+
onDismiss?: () => void;
|
|
1656
|
+
/** Bottom sheet height. Numbers resolve to px. */
|
|
1657
|
+
height?: DrawerHeight;
|
|
1658
|
+
/** Alias for `height` when the content needs a capped frame. */
|
|
1659
|
+
customHeight?: DrawerHeight;
|
|
1660
|
+
/** Direction the drawer slides from. Use bottom for Drawer; use Sheet for lateral desktop panels. */
|
|
1661
|
+
direction?: DrawerDirection;
|
|
1662
|
+
};
|
|
1663
|
+
type DrawerTriggerProps = React.ComponentProps<typeof Drawer$1.Trigger>;
|
|
1664
|
+
type DrawerPortalProps = React.ComponentProps<typeof Drawer$1.Portal>;
|
|
1665
|
+
type DrawerCloseProps = React.ComponentProps<typeof Drawer$1.Close>;
|
|
1666
|
+
type DrawerOverlayProps = React.ComponentProps<typeof Drawer$1.Overlay>;
|
|
1667
|
+
type DrawerContentProps = React.ComponentProps<typeof Drawer$1.Content> & {
|
|
1668
|
+
/** Overrides root height for this content. Numbers resolve to px. */
|
|
1669
|
+
height?: DrawerHeight;
|
|
1670
|
+
/** Keep body scroll inside the drawer frame rather than the page behind it. */
|
|
1671
|
+
verticalScroll?: boolean;
|
|
1672
|
+
/** Show the drag handle on bottom drawers. */
|
|
1673
|
+
showHandle?: boolean;
|
|
1674
|
+
};
|
|
1675
|
+
type DrawerHeaderProps = React.ComponentProps<"div">;
|
|
1676
|
+
type DrawerBodyProps = React.ComponentProps<"div">;
|
|
1677
|
+
type DrawerFooterProps = React.ComponentProps<"div">;
|
|
1678
|
+
type DrawerTitleProps = React.ComponentProps<typeof Drawer$1.Title>;
|
|
1679
|
+
type DrawerDescriptionProps = React.ComponentProps<typeof Drawer$1.Description>;
|
|
1680
|
+
/**
|
|
1681
|
+
* Drawer - Mobile bottom sheet
|
|
1682
|
+
*
|
|
1683
|
+
* @description
|
|
1684
|
+
* A focused mobile bottom sheet built on Vaul. Use Modal for blocking desktop
|
|
1685
|
+
* flows and Sheet for lateral panels.
|
|
1686
|
+
*
|
|
1687
|
+
* @example Basic usage
|
|
1688
|
+
* ```tsx
|
|
1689
|
+
* <Drawer>
|
|
1690
|
+
* <DrawerTrigger asChild>
|
|
1691
|
+
* <Button>Open Drawer</Button>
|
|
1692
|
+
* </DrawerTrigger>
|
|
1693
|
+
* <DrawerContent>
|
|
1694
|
+
* <DrawerHeader>
|
|
1695
|
+
* <DrawerTitle>Title</DrawerTitle>
|
|
1696
|
+
* <DrawerDescription>Description</DrawerDescription>
|
|
1697
|
+
* </DrawerHeader>
|
|
1698
|
+
* <DrawerBody>Content here</DrawerBody>
|
|
1699
|
+
* <DrawerFooter>
|
|
1700
|
+
* <DrawerClose asChild>
|
|
1701
|
+
* <Button variant="outline">Cancel</Button>
|
|
1702
|
+
* </DrawerClose>
|
|
1703
|
+
* <Button>Save</Button>
|
|
1704
|
+
* </DrawerFooter>
|
|
1705
|
+
* </DrawerContent>
|
|
1706
|
+
* </Drawer>
|
|
1707
|
+
* ```
|
|
1708
|
+
*
|
|
1709
|
+
* @example Controlled
|
|
1710
|
+
* ```tsx
|
|
1711
|
+
* const [open, setOpen] = useState(false);
|
|
1712
|
+
* <Drawer open={open} onOpenChange={setOpen}>...</Drawer>
|
|
1713
|
+
* ```
|
|
1714
|
+
*/
|
|
1715
|
+
declare function Drawer({ show, onDismiss, height, customHeight, direction, open, onOpenChange, modal, shouldScaleBackground, ...props }: DrawerProps): react_jsx_runtime.JSX.Element;
|
|
1716
|
+
declare function DrawerTrigger({ ...props }: DrawerTriggerProps): react_jsx_runtime.JSX.Element;
|
|
1717
|
+
declare function DrawerPortal({ ...props }: DrawerPortalProps): react_jsx_runtime.JSX.Element;
|
|
1718
|
+
declare function DrawerClose({ ...props }: DrawerCloseProps): react_jsx_runtime.JSX.Element;
|
|
1719
|
+
declare function DrawerOverlay({ className, ...props }: DrawerOverlayProps): react_jsx_runtime.JSX.Element;
|
|
1720
|
+
declare function DrawerContent({ className, children, height, verticalScroll, showHandle, style, ...props }: DrawerContentProps): react_jsx_runtime.JSX.Element;
|
|
1721
|
+
declare function DrawerHeader({ className, ...props }: DrawerHeaderProps): react_jsx_runtime.JSX.Element;
|
|
1722
|
+
declare function DrawerBody({ className, ...props }: DrawerBodyProps): react_jsx_runtime.JSX.Element;
|
|
1723
|
+
declare function DrawerFooter({ className, ...props }: DrawerFooterProps): react_jsx_runtime.JSX.Element;
|
|
1724
|
+
declare function DrawerTitle({ className, ...props }: DrawerTitleProps): react_jsx_runtime.JSX.Element;
|
|
1725
|
+
declare function DrawerDescription({ className, ...props }: DrawerDescriptionProps): react_jsx_runtime.JSX.Element;
|
|
1726
|
+
|
|
1727
|
+
type DropdownMenuProps = React.ComponentPropsWithoutRef<typeof Menu$1.Root>;
|
|
1728
|
+
declare function DropdownMenu({ open: controlledOpen, defaultOpen, onOpenChange, children, ...props }: DropdownMenuProps): react_jsx_runtime.JSX.Element;
|
|
1729
|
+
declare namespace DropdownMenu {
|
|
1730
|
+
var displayName: string;
|
|
1731
|
+
}
|
|
1732
|
+
type DropdownMenuTriggerProps = React.ComponentProps<typeof Menu$1.Trigger> & {
|
|
1733
|
+
asChild?: boolean;
|
|
1734
|
+
};
|
|
1735
|
+
declare const DropdownMenuTrigger: {
|
|
1736
|
+
({ asChild, children, render, ref, ...props }: DropdownMenuTriggerProps & {
|
|
1737
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
1738
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1739
|
+
displayName: string;
|
|
1740
|
+
};
|
|
1741
|
+
declare const DropdownMenuGroup: React.ForwardRefExoticComponent<Omit<_base_ui_react.ContextMenuGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
1742
|
+
declare const DropdownMenuPortal: React.ForwardRefExoticComponent<Omit<_base_ui_react.ContextMenuPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
1743
|
+
declare const DropdownMenuSub: typeof Menu$1.SubmenuRoot;
|
|
1744
|
+
declare const DropdownMenuRadioGroup: React.NamedExoticComponent<Omit<_base_ui_react.ContextMenuRadioGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
1745
|
+
declare const DropdownMenuSubTrigger: {
|
|
1746
|
+
({ className, inset, children, ref, ...props }: React.ComponentPropsWithoutRef<typeof Menu$1.SubmenuTrigger> & {
|
|
1747
|
+
inset?: boolean;
|
|
1748
|
+
} & {
|
|
1749
|
+
ref?: React.Ref<React.ElementRef<typeof Menu$1.SubmenuTrigger>> | undefined;
|
|
1750
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1751
|
+
displayName: string;
|
|
1752
|
+
};
|
|
1753
|
+
declare const DropdownMenuSubContent: {
|
|
1754
|
+
({ className, style, ref, ...props }: React.ComponentPropsWithoutRef<typeof Menu$1.Popup> & {
|
|
1755
|
+
ref?: React.Ref<React.ElementRef<typeof Menu$1.Popup>> | undefined;
|
|
1756
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1757
|
+
displayName: string;
|
|
1758
|
+
};
|
|
1759
|
+
interface DropdownMenuContentProps extends React.ComponentPropsWithoutRef<typeof Menu$1.Popup> {
|
|
1760
|
+
align?: React.ComponentProps<typeof Menu$1.Positioner>["align"];
|
|
1761
|
+
sideOffset?: React.ComponentProps<typeof Menu$1.Positioner>["sideOffset"];
|
|
1762
|
+
alignOffset?: React.ComponentProps<typeof Menu$1.Positioner>["alignOffset"];
|
|
1763
|
+
side?: React.ComponentProps<typeof Menu$1.Positioner>["side"];
|
|
1764
|
+
}
|
|
1765
|
+
declare const DropdownMenuContent: {
|
|
1766
|
+
({ className, style, sideOffset, align, alignOffset, side, ref, ...props }: DropdownMenuContentProps & {
|
|
1767
|
+
ref?: React.Ref<React.ElementRef<typeof Menu$1.Popup>> | undefined;
|
|
1768
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1769
|
+
displayName: string;
|
|
1770
|
+
};
|
|
1771
|
+
declare const DropdownMenuItem: {
|
|
1772
|
+
({ className, inset, ref, ...props }: React.ComponentPropsWithoutRef<typeof Menu$1.Item> & {
|
|
1773
|
+
inset?: boolean;
|
|
1774
|
+
} & {
|
|
1775
|
+
ref?: React.Ref<React.ElementRef<typeof Menu$1.Item>> | undefined;
|
|
1776
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1777
|
+
displayName: string;
|
|
1778
|
+
};
|
|
1779
|
+
declare const DropdownMenuCheckboxItem: {
|
|
1780
|
+
({ className, children, checked, ref, ...props }: React.ComponentPropsWithoutRef<typeof Menu$1.CheckboxItem> & {
|
|
1781
|
+
ref?: React.Ref<React.ElementRef<typeof Menu$1.CheckboxItem>> | undefined;
|
|
1782
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1783
|
+
displayName: string;
|
|
1784
|
+
};
|
|
1785
|
+
declare const DropdownMenuRadioItem: {
|
|
1786
|
+
({ className, children, ref, ...props }: React.ComponentPropsWithoutRef<typeof Menu$1.RadioItem> & {
|
|
1787
|
+
ref?: React.Ref<React.ElementRef<typeof Menu$1.RadioItem>> | undefined;
|
|
1788
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1789
|
+
displayName: string;
|
|
1790
|
+
};
|
|
1791
|
+
declare const DropdownMenuLabel: {
|
|
1792
|
+
({ className, inset, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
1793
|
+
inset?: boolean;
|
|
1794
|
+
} & {
|
|
1795
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
1796
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1797
|
+
displayName: string;
|
|
1798
|
+
};
|
|
1799
|
+
declare const DropdownMenuSeparator: {
|
|
1800
|
+
({ className, orientation, ref, ...props }: React.ComponentPropsWithoutRef<typeof Menu$1.Separator> & {
|
|
1801
|
+
ref?: React.Ref<React.ElementRef<typeof Menu$1.Separator>> | undefined;
|
|
1802
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1803
|
+
displayName: string;
|
|
1804
|
+
};
|
|
1805
|
+
declare const DropdownMenuShortcut: {
|
|
1806
|
+
({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): react_jsx_runtime.JSX.Element;
|
|
1807
|
+
displayName: string;
|
|
1808
|
+
};
|
|
1809
|
+
|
|
1810
|
+
type EmptyStateVariant = "blank-slate" | "informational" | "educational" | "guide" | "no-results" | "cleared" | "permission" | "error";
|
|
1811
|
+
type EmptyStateSize = "sm" | "md" | "lg";
|
|
1812
|
+
type EmptyStateAlign = "center" | "start";
|
|
1813
|
+
interface EmptyStateRootProps extends Omit<React.HTMLAttributes<HTMLElement>, "title" | "children"> {
|
|
1814
|
+
title: React.ReactNode;
|
|
1815
|
+
description?: React.ReactNode;
|
|
1816
|
+
icon?: React.ReactNode;
|
|
1817
|
+
/** Preferred CTA slot. Use real Button/Link elements. */
|
|
1818
|
+
children?: React.ReactNode;
|
|
1819
|
+
/** Compatibility alias for the primary CTA. Prefer children for new code. */
|
|
1820
|
+
action?: React.ReactNode;
|
|
1821
|
+
/** Compatibility alias for the secondary CTA. Prefer children for new code. */
|
|
1822
|
+
link?: React.ReactNode;
|
|
1823
|
+
variant?: EmptyStateVariant;
|
|
1824
|
+
size?: EmptyStateSize;
|
|
1825
|
+
align?: EmptyStateAlign;
|
|
1826
|
+
/** Use for empty states that appear after async filtering changes. */
|
|
1827
|
+
live?: boolean;
|
|
1828
|
+
}
|
|
1829
|
+
interface EmptyStateIconProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
1830
|
+
icon: React.ReactNode;
|
|
1831
|
+
}
|
|
1832
|
+
declare const EmptyStateIcon: {
|
|
1833
|
+
({ className, icon, ref, ...props }: EmptyStateIconProps & {
|
|
1834
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
1835
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1836
|
+
displayName: string;
|
|
1837
|
+
};
|
|
1838
|
+
declare const EmptyStateRoot: {
|
|
1839
|
+
({ className, title, description, icon, children, action, link, style, variant, size, align, live, ref, ...props }: EmptyStateRootProps & {
|
|
1840
|
+
ref?: React.Ref<HTMLElement> | undefined;
|
|
1841
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1842
|
+
displayName: string;
|
|
1843
|
+
};
|
|
1844
|
+
declare const EmptyState: {
|
|
1845
|
+
readonly Root: {
|
|
1846
|
+
({ className, title, description, icon, children, action, link, style, variant, size, align, live, ref, ...props }: EmptyStateRootProps & {
|
|
1847
|
+
ref?: React.Ref<HTMLElement> | undefined;
|
|
1848
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1849
|
+
displayName: string;
|
|
1850
|
+
};
|
|
1851
|
+
readonly Icon: {
|
|
1852
|
+
({ className, icon, ref, ...props }: EmptyStateIconProps & {
|
|
1853
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
1854
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1855
|
+
displayName: string;
|
|
1856
|
+
};
|
|
1857
|
+
};
|
|
1858
|
+
|
|
1859
|
+
interface ErrorObject {
|
|
1860
|
+
/** Error description */
|
|
1861
|
+
message: string;
|
|
1862
|
+
/** Optional title for block error surfaces */
|
|
1863
|
+
title?: string;
|
|
1864
|
+
/** Label for the action link */
|
|
1865
|
+
action?: string;
|
|
1866
|
+
/** href for the action link */
|
|
1867
|
+
link?: string;
|
|
1868
|
+
/** Stable request, trace, deployment, or run identifier */
|
|
1869
|
+
id?: string;
|
|
1870
|
+
/** Short machine-readable code */
|
|
1871
|
+
code?: string;
|
|
1872
|
+
}
|
|
1873
|
+
interface ErrorMessageProps {
|
|
1874
|
+
/** Inline error text (alternative to `error` prop) */
|
|
1875
|
+
children?: React.ReactNode;
|
|
1876
|
+
/** Optional label prefix shown before the message (e.g. "Email Error") */
|
|
1877
|
+
label?: string;
|
|
1878
|
+
/** Font size variant */
|
|
1879
|
+
size?: "small" | "medium" | "large";
|
|
1880
|
+
/** Structured error object — `message` + optional `action`/`link` */
|
|
1881
|
+
error?: ErrorObject;
|
|
1882
|
+
/** Additional CSS classes */
|
|
1883
|
+
className?: string;
|
|
1884
|
+
}
|
|
1885
|
+
type ErrorSize = "small" | "medium" | "large";
|
|
1886
|
+
type LinkRecoveryAction = {
|
|
1887
|
+
action: string;
|
|
1888
|
+
link: string;
|
|
1889
|
+
onAction?: never;
|
|
1890
|
+
actionLoading?: never;
|
|
1891
|
+
};
|
|
1892
|
+
type ButtonRecoveryAction = {
|
|
1893
|
+
action: string;
|
|
1894
|
+
onAction: () => void;
|
|
1895
|
+
link?: never;
|
|
1896
|
+
actionLoading?: boolean;
|
|
1897
|
+
};
|
|
1898
|
+
type NoRecoveryAction = {
|
|
1899
|
+
action?: undefined;
|
|
1900
|
+
link?: undefined;
|
|
1901
|
+
onAction?: undefined;
|
|
1902
|
+
actionLoading?: never;
|
|
1903
|
+
};
|
|
1904
|
+
type ErrorRecoveryAction = LinkRecoveryAction | ButtonRecoveryAction | NoRecoveryAction;
|
|
1905
|
+
type ErrorProps = Omit<React.HTMLAttributes<HTMLDivElement>, "title"> & ErrorRecoveryAction & {
|
|
1906
|
+
/** Error title. Name the resource that failed. */
|
|
1907
|
+
title?: string;
|
|
1908
|
+
/** Optional compact label above the message, e.g. "Request Error". */
|
|
1909
|
+
label?: string;
|
|
1910
|
+
/** Hide the label while preserving the message and title. */
|
|
1911
|
+
showLabel?: boolean;
|
|
1912
|
+
/** Message content. Alternative to `error.message`. */
|
|
1913
|
+
children?: React.ReactNode;
|
|
1914
|
+
/** Visual density. */
|
|
1915
|
+
size?: ErrorSize;
|
|
1916
|
+
/** Structured error data. */
|
|
1917
|
+
error?: ErrorObject;
|
|
1918
|
+
/** Stable request, trace, deployment, or run identifier. */
|
|
1919
|
+
errorId?: string;
|
|
1920
|
+
/** Label used before the stable identifier. */
|
|
1921
|
+
errorIdLabel?: string;
|
|
1922
|
+
/** Async announcement mode. Use assertive only for blocking failures. */
|
|
1923
|
+
live?: "polite" | "assertive" | "off";
|
|
1924
|
+
};
|
|
1925
|
+
/**
|
|
1926
|
+
* ErrorMessage — inline error indicator with icon, optional label, and action link.
|
|
1927
|
+
*
|
|
1928
|
+
* @example
|
|
1929
|
+
* // Simple inline error
|
|
1930
|
+
* <ErrorMessage>This email is already in use.</ErrorMessage>
|
|
1931
|
+
*
|
|
1932
|
+
* @example
|
|
1933
|
+
* // With label prefix
|
|
1934
|
+
* <ErrorMessage label="Email Error">This email is already in use.</ErrorMessage>
|
|
1935
|
+
*
|
|
1936
|
+
* @example
|
|
1937
|
+
* // Structured with action link
|
|
1938
|
+
* <ErrorMessage error={{ message: "The request failed.", action: "Contact Us", link: "/contact" }} />
|
|
1939
|
+
*/
|
|
1940
|
+
declare const ErrorMessage: {
|
|
1941
|
+
({ ref, children, label, size, error, className, }: ErrorMessageProps & {
|
|
1942
|
+
ref?: React.Ref<HTMLSpanElement> | undefined;
|
|
1943
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1944
|
+
displayName: string;
|
|
1945
|
+
};
|
|
1946
|
+
/**
|
|
1947
|
+
* Error — block-level error surface for failed sections, panels, and route boundaries.
|
|
1948
|
+
*
|
|
1949
|
+
* Use `ErrorMessage` only for legacy inline text. Field validation should prefer
|
|
1950
|
+
* the owning form/input primitive.
|
|
1951
|
+
*/
|
|
1952
|
+
declare const ErrorSurface: {
|
|
1953
|
+
({ children, label, showLabel, title, size, error, errorId, errorIdLabel, live, action, link, onAction, actionLoading, className, role, ref, ...props }: ErrorProps & {
|
|
1954
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
1955
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1956
|
+
displayName: string;
|
|
1957
|
+
};
|
|
1958
|
+
|
|
1959
|
+
/**
|
|
1960
|
+
* Textarea Component Tokens — Layer 3
|
|
1961
|
+
*
|
|
1962
|
+
* Mirrors the Input focus and radius contract while preserving textarea-specific
|
|
1963
|
+
* vertical sizing.
|
|
1964
|
+
*/
|
|
1965
|
+
type TextareaSize = "sm" | "md" | "lg";
|
|
1966
|
+
|
|
1967
|
+
type NativeTextareaProps = Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, "size">;
|
|
1968
|
+
type LabelledTextareaProps = {
|
|
1969
|
+
/** Visible label. Type-level nudge keeps labelled fields explicitly addressable. */
|
|
1970
|
+
label: string;
|
|
1971
|
+
id: string;
|
|
1972
|
+
};
|
|
1973
|
+
type UnlabelledTextareaProps = {
|
|
1974
|
+
label?: undefined;
|
|
1975
|
+
id?: string;
|
|
1976
|
+
};
|
|
1977
|
+
type TextareaOwnProps = {
|
|
1978
|
+
/** Visual size variant. Uses the same compact form scale as Input. */
|
|
1979
|
+
size?: TextareaSize;
|
|
1980
|
+
/** Helper text associated through aria-describedby. Replaced by string errors. */
|
|
1981
|
+
description?: string;
|
|
1982
|
+
/** Boolean marks invalid state; string also renders an inline field error. */
|
|
1983
|
+
error?: string | boolean;
|
|
1984
|
+
/** Value-first change callback for consumers that do not need the native event. */
|
|
1985
|
+
onValueChange?: (value: string) => void;
|
|
1986
|
+
/** Applied to the label/helper/error field wrapper. */
|
|
1987
|
+
fieldClassName?: string;
|
|
1988
|
+
};
|
|
1989
|
+
type TextareaProps = NativeTextareaProps & TextareaOwnProps & (LabelledTextareaProps | UnlabelledTextareaProps);
|
|
1990
|
+
declare const Textarea: {
|
|
1991
|
+
({ className, style, size, label, description, error, fieldClassName, id, onChange, onValueChange, "aria-describedby": ariaDescribedBy, "aria-invalid": ariaInvalid, ref, ...props }: TextareaProps & {
|
|
1992
|
+
ref?: React.Ref<HTMLTextAreaElement> | undefined;
|
|
1993
|
+
}): react_jsx_runtime.JSX.Element;
|
|
1994
|
+
displayName: string;
|
|
1995
|
+
};
|
|
1996
|
+
|
|
1997
|
+
interface FieldProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
1998
|
+
label: string;
|
|
1999
|
+
description?: string;
|
|
2000
|
+
error?: string;
|
|
2001
|
+
htmlFor?: string;
|
|
2002
|
+
}
|
|
2003
|
+
declare const Field: {
|
|
2004
|
+
({ className, label, description, error, htmlFor, children, ref, ...props }: FieldProps & {
|
|
2005
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
2006
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2007
|
+
displayName: string;
|
|
2008
|
+
};
|
|
2009
|
+
|
|
2010
|
+
interface SlotProps extends React.HTMLAttributes<HTMLElement> {
|
|
2011
|
+
children?: React.ReactNode;
|
|
2012
|
+
}
|
|
2013
|
+
/**
|
|
2014
|
+
* Custom Slot implementation to remove @radix-ui/react-slot dependency.
|
|
2015
|
+
* Merges props from the Slottable parent onto the immediate child element.
|
|
2016
|
+
*/
|
|
2017
|
+
declare const Slot: React.ForwardRefExoticComponent<SlotProps & React.RefAttributes<HTMLElement>>;
|
|
2018
|
+
|
|
2019
|
+
declare const labelVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
|
|
2020
|
+
interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement>, VariantProps<typeof labelVariants> {
|
|
2021
|
+
}
|
|
2022
|
+
/**
|
|
2023
|
+
* Label - Accessible form label component
|
|
2024
|
+
*
|
|
2025
|
+
* @description
|
|
2026
|
+
* A label component built as a native HTML label element.
|
|
2027
|
+
* Automatically handles accessibility attributes and peer styling.
|
|
2028
|
+
*
|
|
2029
|
+
* @example Basic usage
|
|
2030
|
+
* ```tsx
|
|
2031
|
+
* <Label htmlFor="email">Email</Label>
|
|
2032
|
+
* <Input id="email" type="email" />
|
|
2033
|
+
* ```
|
|
2034
|
+
*
|
|
2035
|
+
* @example With peer styling (disabled state)
|
|
2036
|
+
* ```tsx
|
|
2037
|
+
* <div className="flex items-center gap-2">
|
|
2038
|
+
* <Checkbox id="terms" disabled />
|
|
2039
|
+
* <Label htmlFor="terms">Accept terms</Label>
|
|
2040
|
+
* </div>
|
|
2041
|
+
* ```
|
|
2042
|
+
*
|
|
2043
|
+
* @example Required field indicator
|
|
2044
|
+
* ```tsx
|
|
2045
|
+
* <Label htmlFor="name">
|
|
2046
|
+
* Name <span className="text-destructive">*</span>
|
|
2047
|
+
* </Label>
|
|
2048
|
+
* ```
|
|
2049
|
+
*/
|
|
2050
|
+
declare const Label: {
|
|
2051
|
+
({ className, ref, ...props }: LabelProps & {
|
|
2052
|
+
ref?: React.Ref<HTMLLabelElement> | undefined;
|
|
2053
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2054
|
+
displayName: string;
|
|
2055
|
+
};
|
|
2056
|
+
|
|
2057
|
+
declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: react_hook_form.FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
|
|
2058
|
+
declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => react_jsx_runtime.JSX.Element;
|
|
2059
|
+
declare const useFormField: () => {
|
|
2060
|
+
invalid: boolean;
|
|
2061
|
+
isDirty: boolean;
|
|
2062
|
+
isTouched: boolean;
|
|
2063
|
+
isValidating: boolean;
|
|
2064
|
+
error?: react_hook_form.FieldError;
|
|
2065
|
+
id: string;
|
|
2066
|
+
name: string;
|
|
2067
|
+
formItemId: string;
|
|
2068
|
+
formDescriptionId: string;
|
|
2069
|
+
formMessageId: string;
|
|
2070
|
+
};
|
|
2071
|
+
declare const FormItem: {
|
|
2072
|
+
({ className, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
2073
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
2074
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2075
|
+
displayName: string;
|
|
2076
|
+
};
|
|
2077
|
+
declare const FormLabel: {
|
|
2078
|
+
({ className, ref, ...props }: React.ComponentPropsWithoutRef<typeof Label> & {
|
|
2079
|
+
ref?: React.Ref<React.ElementRef<typeof Label>> | undefined;
|
|
2080
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2081
|
+
displayName: string;
|
|
2082
|
+
};
|
|
2083
|
+
declare const FormControl: {
|
|
2084
|
+
({ ref, ...props }: React.ComponentPropsWithoutRef<typeof Slot> & {
|
|
2085
|
+
ref?: React.Ref<React.ElementRef<typeof Slot>> | undefined;
|
|
2086
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2087
|
+
displayName: string;
|
|
2088
|
+
};
|
|
2089
|
+
declare const FormDescription: {
|
|
2090
|
+
({ className, ref, ...props }: React.HTMLAttributes<HTMLParagraphElement> & {
|
|
2091
|
+
ref?: React.Ref<HTMLParagraphElement> | undefined;
|
|
2092
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2093
|
+
displayName: string;
|
|
2094
|
+
};
|
|
2095
|
+
declare const FormMessage: {
|
|
2096
|
+
({ className, children, ref, ...props }: React.HTMLAttributes<HTMLParagraphElement> & {
|
|
2097
|
+
ref?: React.Ref<HTMLParagraphElement> | undefined;
|
|
2098
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
2099
|
+
displayName: string;
|
|
2100
|
+
};
|
|
2101
|
+
|
|
2102
|
+
declare const gaugeSizes: {
|
|
2103
|
+
readonly tiny: 20;
|
|
2104
|
+
readonly small: 32;
|
|
2105
|
+
readonly medium: 64;
|
|
2106
|
+
readonly large: 128;
|
|
2107
|
+
};
|
|
2108
|
+
type GaugeSize = keyof typeof gaugeSizes;
|
|
2109
|
+
type GaugeArcPriority = "default" | "equal";
|
|
2110
|
+
type LegacyGaugeArcPriority = "value" | "secondary";
|
|
2111
|
+
interface GaugeColorStop {
|
|
2112
|
+
/** Value threshold, 0-100. The stop applies when value >= this threshold. */
|
|
2113
|
+
value: number;
|
|
2114
|
+
/** CSS color string. Prefer semantic tokens or component CSS variables. */
|
|
2115
|
+
color: string;
|
|
2116
|
+
}
|
|
2117
|
+
type GaugeColorMap = Record<string, string> & {
|
|
2118
|
+
/** Explicit primary arc color override. */
|
|
2119
|
+
primary?: string;
|
|
2120
|
+
/** Explicit secondary arc color override. */
|
|
2121
|
+
secondary?: string;
|
|
2122
|
+
};
|
|
2123
|
+
interface GaugeProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "aria-busy" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "children" | "color" | "role"> {
|
|
2124
|
+
/** Current value, clamped to 0-100. */
|
|
2125
|
+
value?: number;
|
|
2126
|
+
/** Preset size or legacy pixel diameter. */
|
|
2127
|
+
size?: GaugeSize | number;
|
|
2128
|
+
/** Custom threshold colors. Prefer semantic token strings. */
|
|
2129
|
+
colors?: GaugeColorMap | GaugeColorStop[];
|
|
2130
|
+
/** Legacy track color override. Prefer `colors.secondary`. */
|
|
2131
|
+
secondaryColor?: string;
|
|
2132
|
+
/** Show the numeric value in the center. */
|
|
2133
|
+
showValue?: boolean;
|
|
2134
|
+
/** Legacy alias for `showValue`. A ReactNode is treated as center overlay content. */
|
|
2135
|
+
label?: boolean | React.ReactNode;
|
|
2136
|
+
/** Center overlay content, reserved for icon overlays. */
|
|
2137
|
+
children?: React.ReactNode;
|
|
2138
|
+
/** Arc geometry mode. Use `equal` for true ratios. */
|
|
2139
|
+
arcPriority?: GaugeArcPriority | LegacyGaugeArcPriority;
|
|
2140
|
+
/** Loading state when the value is unknown. */
|
|
2141
|
+
indeterminate?: boolean;
|
|
2142
|
+
/** Accessible name when not using aria-labelledby. */
|
|
2143
|
+
"aria-label"?: string;
|
|
2144
|
+
/** ID of adjacent label text. */
|
|
2145
|
+
"aria-labelledby"?: string;
|
|
2146
|
+
}
|
|
2147
|
+
/**
|
|
2148
|
+
* Gauge — circular ratio visual for fixed 0-100 comparisons.
|
|
2149
|
+
*
|
|
2150
|
+
* Use Progress for determinate task progress. Pair Gauge with adjacent text and
|
|
2151
|
+
* connect it via `aria-labelledby` whenever the visual is not self-evident.
|
|
2152
|
+
*/
|
|
2153
|
+
declare const Gauge: {
|
|
2154
|
+
({ value, size, colors, secondaryColor, showValue, label, children, arcPriority, indeterminate, className, style, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ref, ...props }: GaugeProps & {
|
|
2155
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
2156
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2157
|
+
displayName: string;
|
|
2158
|
+
};
|
|
2159
|
+
|
|
2160
|
+
declare const HoverCardContent: {
|
|
2161
|
+
({ className, align, sideOffset, side, style, ref, ...props }: React.ComponentPropsWithoutRef<typeof Popover$1.Popup> & {
|
|
2162
|
+
align?: "start" | "center" | "end";
|
|
2163
|
+
sideOffset?: number;
|
|
2164
|
+
side?: "top" | "right" | "bottom" | "left";
|
|
2165
|
+
} & {
|
|
2166
|
+
ref?: React.Ref<React.ElementRef<typeof Popover$1.Popup>> | undefined;
|
|
2167
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2168
|
+
displayName: string;
|
|
2169
|
+
};
|
|
2170
|
+
|
|
2171
|
+
declare const HoverCardTrigger: {
|
|
2172
|
+
({ asChild, children, ref, ...props }: React.ComponentPropsWithoutRef<typeof Popover$1.Trigger> & {
|
|
2173
|
+
asChild?: boolean;
|
|
2174
|
+
} & {
|
|
2175
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
2176
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2177
|
+
displayName: string;
|
|
2178
|
+
};
|
|
2179
|
+
|
|
2180
|
+
declare const HoverCard: {
|
|
2181
|
+
({ openDelay, closeDelay, children, ...props }: React.ComponentPropsWithoutRef<typeof Popover$1.Root> & {
|
|
2182
|
+
openDelay?: number;
|
|
2183
|
+
closeDelay?: number;
|
|
2184
|
+
children: React.ReactNode;
|
|
2185
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2186
|
+
displayName: string;
|
|
2187
|
+
};
|
|
2188
|
+
|
|
2189
|
+
/**
|
|
2190
|
+
* Input Component Tokens — Layer 3
|
|
2191
|
+
*
|
|
2192
|
+
* Component-level sizing and interaction constants. Input consumes semantic
|
|
2193
|
+
* colors at runtime and only derives dimensions from primitive tokens here.
|
|
2194
|
+
*/
|
|
2195
|
+
type InputSize = "sm" | "md" | "lg";
|
|
2196
|
+
|
|
2197
|
+
declare const inputVariants: (props?: ({
|
|
2198
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
2199
|
+
affix?: "prefix" | "none" | "both" | "suffix" | null | undefined;
|
|
2200
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
2201
|
+
type NativeInputProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, "prefix" | "size">;
|
|
2202
|
+
type LabelledInputProps = {
|
|
2203
|
+
/** Visible label. Requires `id` so the label and input remain associated. */
|
|
2204
|
+
label: string;
|
|
2205
|
+
id: string;
|
|
2206
|
+
};
|
|
2207
|
+
type UnlabelledInputProps = {
|
|
2208
|
+
label?: undefined;
|
|
2209
|
+
id?: string;
|
|
2210
|
+
};
|
|
2211
|
+
type InputOwnProps = {
|
|
2212
|
+
/** Visual size variant. Uses Nebutra's compact form row scale. */
|
|
2213
|
+
size?: InputSize;
|
|
2214
|
+
/** Non-interactive adornment rendered inside the left edge. */
|
|
2215
|
+
prefix?: React.ReactNode;
|
|
2216
|
+
/** Non-interactive adornment rendered inside the right edge. Hidden by clear/shortcut controls. */
|
|
2217
|
+
suffix?: React.ReactNode;
|
|
2218
|
+
/** Show a clear button when the field has a value. */
|
|
2219
|
+
clearable?: boolean;
|
|
2220
|
+
/** Called after the clear button or Escape clears the field. */
|
|
2221
|
+
onClear?: () => void;
|
|
2222
|
+
/** Value-first change callback for consumers that do not need the native event. */
|
|
2223
|
+
onValueChange?: (value: string) => void;
|
|
2224
|
+
/** Visual shortcut hint, e.g. "⌘K". Dirty search fields show Esc instead. */
|
|
2225
|
+
shortcut?: string;
|
|
2226
|
+
/** Show an async spinner on the right side without disabling the field. */
|
|
2227
|
+
loading?: boolean;
|
|
2228
|
+
/** Adds a tokenized password visibility control when `type="password"`. */
|
|
2229
|
+
revealable?: boolean;
|
|
2230
|
+
/** Accessible label for the password visibility control when the value is hidden. */
|
|
2231
|
+
revealLabel?: string;
|
|
2232
|
+
/** Accessible label for the password visibility control when the value is visible. */
|
|
2233
|
+
hideLabel?: string;
|
|
2234
|
+
/** Clear the current value when Escape is pressed. Defaults to true for search inputs. */
|
|
2235
|
+
clearOnEscape?: boolean;
|
|
2236
|
+
/** Helper text associated with the input through aria-describedby. */
|
|
2237
|
+
description?: string;
|
|
2238
|
+
/** Boolean marks invalid state; string also renders an inline error message. */
|
|
2239
|
+
error?: string | boolean;
|
|
2240
|
+
/** Applied to the control wrapper when affixes or control buttons are rendered. */
|
|
2241
|
+
wrapperClassName?: string;
|
|
2242
|
+
/** Applied to the label/helper/error field wrapper. */
|
|
2243
|
+
fieldClassName?: string;
|
|
2244
|
+
};
|
|
2245
|
+
type InputProps = NativeInputProps & InputOwnProps & (LabelledInputProps | UnlabelledInputProps) & VariantProps<typeof inputVariants>;
|
|
2246
|
+
declare const Input: {
|
|
2247
|
+
({ ref: forwardedRef, ...props }: InputProps & {
|
|
2248
|
+
ref?: React.Ref<HTMLInputElement> | undefined;
|
|
2249
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2250
|
+
displayName: string;
|
|
2251
|
+
};
|
|
2252
|
+
|
|
2253
|
+
interface InputOTPProps {
|
|
2254
|
+
/** Maximum number of characters */
|
|
2255
|
+
maxLength: number;
|
|
2256
|
+
/** Current value */
|
|
2257
|
+
value?: string;
|
|
2258
|
+
/** Change handler */
|
|
2259
|
+
onChange?: (newValue: string) => void;
|
|
2260
|
+
/** Complete handler */
|
|
2261
|
+
onComplete?: (value: string) => void;
|
|
2262
|
+
/** Render function for slots */
|
|
2263
|
+
render?: (props: RenderProps) => React.ReactNode;
|
|
2264
|
+
/** Children (alternative to render) */
|
|
2265
|
+
children?: React.ReactNode;
|
|
2266
|
+
/** Container class name */
|
|
2267
|
+
containerClassName?: string;
|
|
2268
|
+
/** Input class name */
|
|
2269
|
+
className?: string;
|
|
2270
|
+
/** Input pattern validation */
|
|
2271
|
+
pattern?: string;
|
|
2272
|
+
/** Text alignment */
|
|
2273
|
+
textAlign?: "left" | "center" | "right";
|
|
2274
|
+
/** Disabled state */
|
|
2275
|
+
disabled?: boolean;
|
|
2276
|
+
}
|
|
2277
|
+
declare const InputOTP: {
|
|
2278
|
+
({ className, containerClassName, children, render, ref, ...props }: InputOTPProps & {
|
|
2279
|
+
ref?: React.Ref<HTMLInputElement> | undefined;
|
|
2280
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2281
|
+
displayName: string;
|
|
2282
|
+
};
|
|
2283
|
+
type InputOTPGroupProps = React.ComponentPropsWithoutRef<"div">;
|
|
2284
|
+
declare const InputOTPGroup: {
|
|
2285
|
+
({ className, ref, ...props }: InputOTPGroupProps & {
|
|
2286
|
+
ref?: React.Ref<React.ElementRef<"div">> | undefined;
|
|
2287
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2288
|
+
displayName: string;
|
|
2289
|
+
};
|
|
2290
|
+
interface InputOTPSlotProps extends React.ComponentPropsWithoutRef<"div"> {
|
|
2291
|
+
index: number;
|
|
2292
|
+
}
|
|
2293
|
+
declare const InputOTPSlot: {
|
|
2294
|
+
({ index, className, ref, ...props }: InputOTPSlotProps & {
|
|
2295
|
+
ref?: React.Ref<React.ElementRef<"div">> | undefined;
|
|
2296
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2297
|
+
displayName: string;
|
|
2298
|
+
};
|
|
2299
|
+
type InputOTPSeparatorProps = React.ComponentPropsWithoutRef<"div">;
|
|
2300
|
+
declare const InputOTPSeparator: {
|
|
2301
|
+
({ ref, ...props }: InputOTPSeparatorProps & {
|
|
2302
|
+
ref?: React.Ref<React.ElementRef<"div">> | undefined;
|
|
2303
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2304
|
+
displayName: string;
|
|
2305
|
+
};
|
|
2306
|
+
|
|
2307
|
+
interface KbdProps extends React.HTMLAttributes<HTMLElement> {
|
|
2308
|
+
/** Command on macOS/iOS; Ctrl on Windows/Linux. */
|
|
2309
|
+
meta?: boolean;
|
|
2310
|
+
/** Shift modifier. */
|
|
2311
|
+
shift?: boolean;
|
|
2312
|
+
/** Option on macOS/iOS; Alt on Windows/Linux. */
|
|
2313
|
+
alt?: boolean;
|
|
2314
|
+
/** Control modifier. */
|
|
2315
|
+
ctrl?: boolean;
|
|
2316
|
+
/** Smaller size for dense surfaces. */
|
|
2317
|
+
small?: boolean;
|
|
2318
|
+
/** One key, digit, punctuation mark, or named key. */
|
|
2319
|
+
children?: React.ReactNode;
|
|
2320
|
+
className?: string;
|
|
2321
|
+
}
|
|
2322
|
+
declare const Kbd: {
|
|
2323
|
+
({ meta, shift, alt, ctrl, small, children, className, "aria-label": ariaLabel, ref, ...props }: KbdProps & {
|
|
2324
|
+
ref?: React.Ref<HTMLElement> | undefined;
|
|
2325
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2326
|
+
displayName: string;
|
|
2327
|
+
};
|
|
2328
|
+
|
|
2329
|
+
/**
|
|
2330
|
+
* Layout Primitives
|
|
2331
|
+
*
|
|
2332
|
+
* Core layout utilities and patterns.
|
|
2333
|
+
*/
|
|
2334
|
+
/**
|
|
2335
|
+
* Common flex layouts
|
|
2336
|
+
*/
|
|
2337
|
+
declare const flexLayouts: {
|
|
2338
|
+
readonly row: {
|
|
2339
|
+
readonly display: "flex";
|
|
2340
|
+
readonly flexDirection: "row";
|
|
2341
|
+
};
|
|
2342
|
+
readonly rowCenter: {
|
|
2343
|
+
readonly display: "flex";
|
|
2344
|
+
readonly flexDirection: "row";
|
|
2345
|
+
readonly alignItems: "center";
|
|
2346
|
+
};
|
|
2347
|
+
readonly rowBetween: {
|
|
2348
|
+
readonly display: "flex";
|
|
2349
|
+
readonly flexDirection: "row";
|
|
2350
|
+
readonly justifyContent: "space-between";
|
|
2351
|
+
readonly alignItems: "center";
|
|
2352
|
+
};
|
|
2353
|
+
readonly column: {
|
|
2354
|
+
readonly display: "flex";
|
|
2355
|
+
readonly flexDirection: "column";
|
|
2356
|
+
};
|
|
2357
|
+
readonly columnCenter: {
|
|
2358
|
+
readonly display: "flex";
|
|
2359
|
+
readonly flexDirection: "column";
|
|
2360
|
+
readonly alignItems: "center";
|
|
2361
|
+
};
|
|
2362
|
+
readonly center: {
|
|
2363
|
+
readonly display: "flex";
|
|
2364
|
+
readonly alignItems: "center";
|
|
2365
|
+
readonly justifyContent: "center";
|
|
2366
|
+
};
|
|
2367
|
+
};
|
|
2368
|
+
/**
|
|
2369
|
+
* Grid layout helpers
|
|
2370
|
+
*/
|
|
2371
|
+
declare const gridLayouts: {
|
|
2372
|
+
readonly auto: {
|
|
2373
|
+
readonly display: "grid";
|
|
2374
|
+
readonly gridTemplateColumns: "repeat(auto-fit, minmax(250px, 1fr))";
|
|
2375
|
+
readonly gap: 3;
|
|
2376
|
+
};
|
|
2377
|
+
readonly two: {
|
|
2378
|
+
readonly display: "grid";
|
|
2379
|
+
readonly gridTemplateColumns: ["1fr", "1fr 1fr"];
|
|
2380
|
+
readonly gap: 3;
|
|
2381
|
+
};
|
|
2382
|
+
readonly three: {
|
|
2383
|
+
readonly display: "grid";
|
|
2384
|
+
readonly gridTemplateColumns: ["1fr", "1fr 1fr", "1fr 1fr 1fr"];
|
|
2385
|
+
readonly gap: 3;
|
|
2386
|
+
};
|
|
2387
|
+
readonly four: {
|
|
2388
|
+
readonly display: "grid";
|
|
2389
|
+
readonly gridTemplateColumns: ["1fr", "1fr 1fr", "1fr 1fr 1fr 1fr"];
|
|
2390
|
+
readonly gap: 3;
|
|
2391
|
+
};
|
|
2392
|
+
};
|
|
2393
|
+
/**
|
|
2394
|
+
* Container max-widths (matches Primer breakpoints)
|
|
2395
|
+
*/
|
|
2396
|
+
declare const containerWidths: {
|
|
2397
|
+
readonly sm: 544;
|
|
2398
|
+
readonly md: 768;
|
|
2399
|
+
readonly lg: 1012;
|
|
2400
|
+
readonly xl: 1280;
|
|
2401
|
+
};
|
|
2402
|
+
/**
|
|
2403
|
+
* Z-index scale for layering
|
|
2404
|
+
*/
|
|
2405
|
+
declare const zIndex: {
|
|
2406
|
+
readonly base: 0;
|
|
2407
|
+
readonly dropdown: 1000;
|
|
2408
|
+
readonly sticky: 1020;
|
|
2409
|
+
readonly fixed: 1030;
|
|
2410
|
+
readonly modalBackdrop: 1040;
|
|
2411
|
+
readonly modal: 1050;
|
|
2412
|
+
readonly popover: 1060;
|
|
2413
|
+
readonly tooltip: 1070;
|
|
2414
|
+
};
|
|
2415
|
+
|
|
2416
|
+
interface LoadingDotsProps {
|
|
2417
|
+
ref?: React.Ref<HTMLSpanElement> | undefined;
|
|
2418
|
+
/** Diameter of each dot in pixels. Default: 6 */
|
|
2419
|
+
size?: number;
|
|
2420
|
+
/** Optional content rendered before the dots (e.g. a label). */
|
|
2421
|
+
children?: React.ReactNode;
|
|
2422
|
+
className?: string;
|
|
2423
|
+
}
|
|
2424
|
+
declare function LoadingDots({ ref, size, children, className }: LoadingDotsProps): react_jsx_runtime.JSX.Element;
|
|
2425
|
+
|
|
2426
|
+
type MenuPosition = "bottom-start" | "bottom-end" | "top-start" | "top-end" | "right-start" | "right-end" | "left-start" | "left-end";
|
|
2427
|
+
interface MenuContainerProps {
|
|
2428
|
+
/** Anchor + alignment of the popup. @default "bottom-start" */
|
|
2429
|
+
position?: MenuPosition;
|
|
2430
|
+
children: ReactNode;
|
|
2431
|
+
}
|
|
2432
|
+
declare function MenuContainer({ position, children }: MenuContainerProps): react_jsx_runtime.JSX.Element;
|
|
2433
|
+
interface MenuButtonProps extends Omit<ButtonProps, "variant" | "size" | "shape" | "type"> {
|
|
2434
|
+
/** Append a chevron-down glyph after the label. */
|
|
2435
|
+
showChevron?: boolean;
|
|
2436
|
+
/** Geist Button "type" alias. */
|
|
2437
|
+
type?: "primary" | "secondary" | "tertiary" | "ghost" | "warning" | "destructive";
|
|
2438
|
+
/** "unstyled" strips chrome so an arbitrary trigger (avatar, dots) takes over. */
|
|
2439
|
+
variant?: "unstyled";
|
|
2440
|
+
/** Geist sizes. */
|
|
2441
|
+
size?: "small" | "medium" | "large" | "tiny";
|
|
2442
|
+
shape?: "default" | "square" | "circle";
|
|
2443
|
+
/** Trigger contains only an SVG; ensure an aria-label is set. */
|
|
2444
|
+
svgOnly?: boolean;
|
|
2445
|
+
}
|
|
2446
|
+
declare const MenuButton: ({ showChevron, type, variant, size, shape, svgOnly, children, className, onClick, prefix, suffix, loading, "aria-label": ariaLabel, ref, ...rest }: MenuButtonProps & {
|
|
2447
|
+
ref?: Ref<HTMLButtonElement> | undefined;
|
|
2448
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2449
|
+
interface MenuProps extends Omit<DropdownMenuContentProps, "side" | "align"> {
|
|
2450
|
+
/** Fixed pixel width for the popup; otherwise it sizes to content. */
|
|
2451
|
+
width?: number | string;
|
|
2452
|
+
}
|
|
2453
|
+
declare const Menu: ({ width, style, className, children, ref, ...rest }: MenuProps & {
|
|
2454
|
+
ref?: Ref<HTMLDivElement> | undefined;
|
|
2455
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2456
|
+
type MenuItemKind = "default" | "error";
|
|
2457
|
+
interface MenuItemProps {
|
|
2458
|
+
onClick?: () => void;
|
|
2459
|
+
/** Render as an anchor; mutually exclusive with onClick semantically. */
|
|
2460
|
+
href?: string;
|
|
2461
|
+
disabled?: boolean;
|
|
2462
|
+
prefix?: ReactNode;
|
|
2463
|
+
suffix?: ReactNode;
|
|
2464
|
+
/** `error` renders the row in destructive red — for delete actions. */
|
|
2465
|
+
type?: MenuItemKind;
|
|
2466
|
+
/**
|
|
2467
|
+
* When `href` is present and you need framework-specific routing
|
|
2468
|
+
* (next/link, react-router), pass `as={Link}` instead of `<a>`.
|
|
2469
|
+
*/
|
|
2470
|
+
as?: "a" | (() => ReactElement);
|
|
2471
|
+
className?: string;
|
|
2472
|
+
children: ReactNode;
|
|
2473
|
+
}
|
|
2474
|
+
declare const MenuItem: ({ ref, onClick, href, disabled, prefix, suffix, type, className, children, }: MenuItemProps & {
|
|
2475
|
+
ref?: Ref<HTMLDivElement> | undefined;
|
|
2476
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2477
|
+
interface MenuLinkProps extends Omit<MenuItemProps, "onClick" | "href"> {
|
|
2478
|
+
href: string;
|
|
2479
|
+
}
|
|
2480
|
+
declare const MenuLink: ({ ref, ...props }: MenuLinkProps & {
|
|
2481
|
+
ref?: Ref<HTMLDivElement> | undefined;
|
|
2482
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2483
|
+
interface MenuItemLockedProps extends Omit<MenuItemProps, "disabled" | "type" | "suffix"> {
|
|
2484
|
+
/** Wire an onClick anyway — useful for analytics on attempted activation. */
|
|
2485
|
+
onClick?: () => void;
|
|
2486
|
+
}
|
|
2487
|
+
declare const MenuItemLocked: ({ children, ref, ...rest }: MenuItemLockedProps & {
|
|
2488
|
+
ref?: Ref<HTMLDivElement> | undefined;
|
|
2489
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2490
|
+
interface MenuSectionProps extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "title"> {
|
|
2491
|
+
/** Title Case, 1–2 words (Workspace, Recent Projects). */
|
|
2492
|
+
title?: ReactNode;
|
|
2493
|
+
/** Render a divider above the section. @default true after the first */
|
|
2494
|
+
showDivider?: boolean;
|
|
2495
|
+
children: ReactNode;
|
|
2496
|
+
}
|
|
2497
|
+
declare const MenuSection: ({ title, showDivider, children, className, ref, ...rest }: MenuSectionProps & {
|
|
2498
|
+
ref?: Ref<HTMLDivElement> | undefined;
|
|
2499
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2500
|
+
|
|
2501
|
+
declare const Menubar: {
|
|
2502
|
+
({ className, children, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
2503
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
2504
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2505
|
+
displayName: string;
|
|
2506
|
+
};
|
|
2507
|
+
declare const MenubarMenu: ({ children }: {
|
|
2508
|
+
children: React.ReactNode;
|
|
2509
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2510
|
+
declare const MenubarPortal: ({ children }: {
|
|
2511
|
+
children: React.ReactNode;
|
|
2512
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2513
|
+
declare const MenubarGroup: ({ children }: {
|
|
2514
|
+
children: React.ReactNode;
|
|
2515
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2516
|
+
declare const MenubarTrigger: {
|
|
2517
|
+
({ className, type, ref, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
2518
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
2519
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2520
|
+
displayName: string;
|
|
2521
|
+
};
|
|
2522
|
+
declare const MenubarSub: ({ children }: {
|
|
2523
|
+
children: React.ReactNode;
|
|
2524
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2525
|
+
declare const MenubarSubTrigger: {
|
|
2526
|
+
({ className, inset, children, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
2527
|
+
inset?: boolean;
|
|
2528
|
+
} & {
|
|
2529
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
2530
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2531
|
+
displayName: string;
|
|
2532
|
+
};
|
|
2533
|
+
declare const MenubarSubContent: {
|
|
2534
|
+
({ className, style, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
2535
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
2536
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
2537
|
+
displayName: string;
|
|
2538
|
+
};
|
|
2539
|
+
declare const MenubarContent: {
|
|
2540
|
+
({ className, align: _align, alignOffset: _alignOffset, sideOffset: _sideOffset, style, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
2541
|
+
align?: "start" | "center" | "end";
|
|
2542
|
+
alignOffset?: number;
|
|
2543
|
+
sideOffset?: number;
|
|
2544
|
+
} & {
|
|
2545
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
2546
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
2547
|
+
displayName: string;
|
|
2548
|
+
};
|
|
2549
|
+
declare const MenubarItem: {
|
|
2550
|
+
({ className, inset, disabled, asChild, children, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
2551
|
+
inset?: boolean;
|
|
2552
|
+
disabled?: boolean;
|
|
2553
|
+
asChild?: boolean;
|
|
2554
|
+
} & {
|
|
2555
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
2556
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2557
|
+
displayName: string;
|
|
2558
|
+
};
|
|
2559
|
+
declare const MenubarCheckboxItem: {
|
|
2560
|
+
({ className, children, checked, disabled, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
2561
|
+
checked?: boolean;
|
|
2562
|
+
disabled?: boolean;
|
|
2563
|
+
} & {
|
|
2564
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
2565
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2566
|
+
displayName: string;
|
|
2567
|
+
};
|
|
2568
|
+
declare const MenubarRadioItem: {
|
|
2569
|
+
({ className, children, checked, disabled, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
2570
|
+
checked?: boolean;
|
|
2571
|
+
value?: string;
|
|
2572
|
+
disabled?: boolean;
|
|
2573
|
+
} & {
|
|
2574
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
2575
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2576
|
+
displayName: string;
|
|
2577
|
+
};
|
|
2578
|
+
declare const MenubarRadioGroup: ({ children, className, ...props }: React.FieldsetHTMLAttributes<HTMLFieldSetElement>) => react_jsx_runtime.JSX.Element;
|
|
2579
|
+
declare const MenubarLabel: {
|
|
2580
|
+
({ className, inset, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
2581
|
+
inset?: boolean;
|
|
2582
|
+
} & {
|
|
2583
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
2584
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2585
|
+
displayName: string;
|
|
2586
|
+
};
|
|
2587
|
+
declare const MenubarSeparator: {
|
|
2588
|
+
({ className, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
2589
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
2590
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2591
|
+
displayName: string;
|
|
2592
|
+
};
|
|
2593
|
+
declare const MenubarShortcut: {
|
|
2594
|
+
({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>): react_jsx_runtime.JSX.Element;
|
|
2595
|
+
displayName: string;
|
|
2596
|
+
};
|
|
2597
|
+
|
|
2598
|
+
interface ModalRootProps {
|
|
2599
|
+
/** Open state — controlled. */
|
|
2600
|
+
active: boolean;
|
|
2601
|
+
/** Called when the user clicks the backdrop (or presses Escape). */
|
|
2602
|
+
onClickOutside?: () => void;
|
|
2603
|
+
/**
|
|
2604
|
+
* Sticky mode: body scrolls within a max-height; actions stay pinned at
|
|
2605
|
+
* the bottom. @default false
|
|
2606
|
+
*/
|
|
2607
|
+
sticky?: boolean;
|
|
2608
|
+
/**
|
|
2609
|
+
* Focus this element after the modal opens. Default focus is the first
|
|
2610
|
+
* focusable element. For destructive modals, point this at Cancel.
|
|
2611
|
+
*/
|
|
2612
|
+
initialFocusRef?: RefObject<HTMLElement | null>;
|
|
2613
|
+
children: ReactNode;
|
|
2614
|
+
className?: string;
|
|
2615
|
+
}
|
|
2616
|
+
declare function ModalRoot({ active, onClickOutside, sticky, initialFocusRef, children, className, }: ModalRootProps): react_jsx_runtime.JSX.Element;
|
|
2617
|
+
type ModalBodyProps = HTMLAttributes<HTMLDivElement>;
|
|
2618
|
+
type ModalHeaderProps = HTMLAttributes<HTMLDivElement>;
|
|
2619
|
+
type ModalTitleProps = HTMLAttributes<HTMLHeadingElement>;
|
|
2620
|
+
type ModalSubtitleProps = HTMLAttributes<HTMLParagraphElement>;
|
|
2621
|
+
type ModalInsetProps = HTMLAttributes<HTMLDivElement>;
|
|
2622
|
+
type ModalActionsProps = HTMLAttributes<HTMLDivElement>;
|
|
2623
|
+
interface ModalActionProps extends Omit<ButtonProps, "variant" | "size" | "type"> {
|
|
2624
|
+
/** Geist Modal.Action "type" — primary or secondary. @default "primary" */
|
|
2625
|
+
type?: "primary" | "secondary";
|
|
2626
|
+
/** Stretch to fill the actions row (used in single-button modals). */
|
|
2627
|
+
fullWidth?: boolean;
|
|
2628
|
+
/** Optional leading glyph. */
|
|
2629
|
+
prefix?: ReactNode;
|
|
2630
|
+
/** HTML button type override (for forms). */
|
|
2631
|
+
buttonType?: "button" | "submit" | "reset";
|
|
2632
|
+
ref?: Ref<HTMLButtonElement>;
|
|
2633
|
+
}
|
|
2634
|
+
/**
|
|
2635
|
+
* @example Basic create-resource modal
|
|
2636
|
+
* ```tsx
|
|
2637
|
+
* <Modal.Modal active={open} onClickOutside={() => setOpen(false)}>
|
|
2638
|
+
* <Modal.Body>
|
|
2639
|
+
* <Modal.Header>
|
|
2640
|
+
* <Modal.Title>Create Token</Modal.Title>
|
|
2641
|
+
* <Modal.Subtitle>Enter a unique name for your token.</Modal.Subtitle>
|
|
2642
|
+
* </Modal.Header>
|
|
2643
|
+
* </Modal.Body>
|
|
2644
|
+
* <Modal.Actions>
|
|
2645
|
+
* <Modal.Action type="secondary" onClick={() => setOpen(false)}>Cancel</Modal.Action>
|
|
2646
|
+
* <Modal.Action onClick={() => handleCreate()}>Create Token</Modal.Action>
|
|
2647
|
+
* </Modal.Actions>
|
|
2648
|
+
* </Modal.Modal>
|
|
2649
|
+
* ```
|
|
2650
|
+
*
|
|
2651
|
+
* @example Destructive modal — default focus on Cancel
|
|
2652
|
+
* ```tsx
|
|
2653
|
+
* const cancelRef = useRef<HTMLButtonElement>(null);
|
|
2654
|
+
* <Modal.Modal active={open} onClickOutside={() => setOpen(false)} initialFocusRef={cancelRef}>
|
|
2655
|
+
* <Modal.Body>
|
|
2656
|
+
* <Modal.Header>
|
|
2657
|
+
* <Modal.Title>Delete Project</Modal.Title>
|
|
2658
|
+
* <Modal.Subtitle>This cannot be undone.</Modal.Subtitle>
|
|
2659
|
+
* </Modal.Header>
|
|
2660
|
+
* </Modal.Body>
|
|
2661
|
+
* <Modal.Actions>
|
|
2662
|
+
* <Modal.Action ref={cancelRef} type="secondary" onClick={() => setOpen(false)}>Cancel</Modal.Action>
|
|
2663
|
+
* <Modal.Action onClick={() => handleDelete()}>Delete Project</Modal.Action>
|
|
2664
|
+
* </Modal.Actions>
|
|
2665
|
+
* </Modal.Modal>
|
|
2666
|
+
* ```
|
|
2667
|
+
*/
|
|
2668
|
+
declare const Modal: {
|
|
2669
|
+
readonly Modal: typeof ModalRoot;
|
|
2670
|
+
readonly Body: ({ className, ref, ...rest }: ModalBodyProps & {
|
|
2671
|
+
ref?: Ref<HTMLDivElement> | undefined;
|
|
2672
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2673
|
+
readonly Header: ({ className, children, ref, ...rest }: ModalHeaderProps & {
|
|
2674
|
+
ref?: Ref<HTMLDivElement> | undefined;
|
|
2675
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2676
|
+
readonly Title: ({ className, ref, ...rest }: ModalTitleProps & {
|
|
2677
|
+
ref?: Ref<HTMLHeadingElement> | undefined;
|
|
2678
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2679
|
+
readonly Subtitle: ({ className, ref, ...rest }: ModalSubtitleProps & {
|
|
2680
|
+
ref?: Ref<HTMLParagraphElement> | undefined;
|
|
2681
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2682
|
+
readonly Inset: ({ className, ref, ...rest }: ModalInsetProps & {
|
|
2683
|
+
ref?: Ref<HTMLDivElement> | undefined;
|
|
2684
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2685
|
+
readonly Actions: ({ className, children, ref, ...rest }: ModalActionsProps & {
|
|
2686
|
+
ref?: Ref<HTMLDivElement> | undefined;
|
|
2687
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2688
|
+
readonly Action: ({ type, fullWidth, prefix, buttonType, className, children, ref, ...rest }: ModalActionProps & {
|
|
2689
|
+
ref?: Ref<HTMLButtonElement> | undefined;
|
|
2690
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
2691
|
+
};
|
|
2692
|
+
|
|
2693
|
+
/**
|
|
2694
|
+
* MultiSelect Component Tokens — Layer 3
|
|
2695
|
+
*
|
|
2696
|
+
* Compact menu selector for dense filters and permission scopes. Runtime
|
|
2697
|
+
* colors stay semantic in the primitive; this file owns dimensions, shape,
|
|
2698
|
+
* and motion only.
|
|
2699
|
+
*/
|
|
2700
|
+
type MultiSelectWidth = "sm" | "md" | "lg";
|
|
2701
|
+
|
|
2702
|
+
interface MultiSelectRootProps {
|
|
2703
|
+
children: React.ReactNode;
|
|
2704
|
+
open?: boolean;
|
|
2705
|
+
defaultOpen?: boolean;
|
|
2706
|
+
onOpenChange?: (open: boolean) => void;
|
|
2707
|
+
}
|
|
2708
|
+
declare function MultiSelectRoot({ children, open, defaultOpen, onOpenChange, }: MultiSelectRootProps): react_jsx_runtime.JSX.Element;
|
|
2709
|
+
interface MultiSelectTriggerProps extends Omit<React.ComponentPropsWithoutRef<typeof Popover$1.Trigger>, "children"> {
|
|
2710
|
+
children: React.ReactNode;
|
|
2711
|
+
width?: MultiSelectWidth;
|
|
2712
|
+
}
|
|
2713
|
+
declare const MultiSelectTrigger: {
|
|
2714
|
+
({ children, className, style, width, "aria-label": ariaLabel, ref, ...props }: MultiSelectTriggerProps & {
|
|
2715
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
2716
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2717
|
+
displayName: string;
|
|
2718
|
+
};
|
|
2719
|
+
interface MultiSelectContentProps extends Omit<React.ComponentPropsWithoutRef<typeof Popover$1.Popup>, "children"> {
|
|
2720
|
+
children: React.ReactNode;
|
|
2721
|
+
align?: React.ComponentProps<typeof Popover$1.Positioner>["align"];
|
|
2722
|
+
side?: React.ComponentProps<typeof Popover$1.Positioner>["side"];
|
|
2723
|
+
sideOffset?: React.ComponentProps<typeof Popover$1.Positioner>["sideOffset"];
|
|
2724
|
+
alignOffset?: React.ComponentProps<typeof Popover$1.Positioner>["alignOffset"];
|
|
2725
|
+
width?: MultiSelectWidth;
|
|
2726
|
+
}
|
|
2727
|
+
declare const MultiSelectContent: {
|
|
2728
|
+
({ children, className, style, align, side, sideOffset, alignOffset, width, onKeyDown, ref, ...props }: MultiSelectContentProps & {
|
|
2729
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
2730
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2731
|
+
displayName: string;
|
|
2732
|
+
};
|
|
2733
|
+
interface MultiSelectRowProps extends Omit<React.FieldsetHTMLAttributes<HTMLFieldSetElement>, "disabled" | "onChange"> {
|
|
2734
|
+
name: string;
|
|
2735
|
+
checked: boolean;
|
|
2736
|
+
onChange: () => void;
|
|
2737
|
+
selectedCount: number;
|
|
2738
|
+
totalCount: number;
|
|
2739
|
+
description?: React.ReactNode;
|
|
2740
|
+
count?: number;
|
|
2741
|
+
disabled?: boolean;
|
|
2742
|
+
onSelectOnly?: () => void;
|
|
2743
|
+
onSelectAll?: () => void;
|
|
2744
|
+
selectLabel?: string;
|
|
2745
|
+
deselectLabel?: string;
|
|
2746
|
+
selectOnlyLabel?: string;
|
|
2747
|
+
selectAllLabel?: string;
|
|
2748
|
+
}
|
|
2749
|
+
declare const MultiSelectRow: {
|
|
2750
|
+
({ name, checked, onChange, selectedCount, totalCount, description, count, disabled, onSelectOnly, onSelectAll, selectLabel, deselectLabel, selectOnlyLabel, selectAllLabel, className, ref, ...props }: MultiSelectRowProps & {
|
|
2751
|
+
ref?: React.Ref<HTMLFieldSetElement> | undefined;
|
|
2752
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2753
|
+
displayName: string;
|
|
2754
|
+
};
|
|
2755
|
+
|
|
2756
|
+
declare const NavigationMenu: {
|
|
2757
|
+
({ className, children, value: controlledValue, onValueChange, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
2758
|
+
value?: string;
|
|
2759
|
+
onValueChange?: (value: string) => void;
|
|
2760
|
+
} & {
|
|
2761
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
2762
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2763
|
+
displayName: string;
|
|
2764
|
+
};
|
|
2765
|
+
declare const NavigationMenuList: {
|
|
2766
|
+
({ className, ref, ...props }: React.HTMLAttributes<HTMLUListElement> & {
|
|
2767
|
+
ref?: React.Ref<HTMLUListElement> | undefined;
|
|
2768
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2769
|
+
displayName: string;
|
|
2770
|
+
};
|
|
2771
|
+
declare const NavigationMenuItem: {
|
|
2772
|
+
({ className, value, children, ref, ...props }: React.HTMLAttributes<HTMLLIElement> & {
|
|
2773
|
+
value?: string;
|
|
2774
|
+
} & {
|
|
2775
|
+
ref?: React.Ref<HTMLLIElement> | undefined;
|
|
2776
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2777
|
+
displayName: string;
|
|
2778
|
+
};
|
|
2779
|
+
declare const NavigationMenuTrigger: {
|
|
2780
|
+
({ className, children, ref, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
2781
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
2782
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2783
|
+
displayName: string;
|
|
2784
|
+
};
|
|
2785
|
+
declare const NavigationMenuContent: {
|
|
2786
|
+
({ className, children, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
2787
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
2788
|
+
}): react_jsx_runtime.JSX.Element | null;
|
|
2789
|
+
displayName: string;
|
|
2790
|
+
};
|
|
2791
|
+
declare const NavigationMenuLink: {
|
|
2792
|
+
({ asChild, active, className, children, href, onClick, ref, ...props }: React.AnchorHTMLAttributes<HTMLAnchorElement> & {
|
|
2793
|
+
asChild?: boolean;
|
|
2794
|
+
active?: boolean;
|
|
2795
|
+
} & {
|
|
2796
|
+
ref?: React.Ref<HTMLAnchorElement> | undefined;
|
|
2797
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2798
|
+
displayName: string;
|
|
2799
|
+
};
|
|
2800
|
+
declare const NavigationMenuViewport: {
|
|
2801
|
+
({ ref: _ref, }: React.HTMLAttributes<HTMLDivElement> & {
|
|
2802
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
2803
|
+
}): null;
|
|
2804
|
+
displayName: string;
|
|
2805
|
+
};
|
|
2806
|
+
declare const NavigationMenuIndicator: {
|
|
2807
|
+
({ className, ref, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
2808
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
2809
|
+
}): react_jsx_runtime.JSX.Element;
|
|
2810
|
+
displayName: string;
|
|
2811
|
+
};
|
|
2812
|
+
|
|
2813
|
+
declare const navigationMenuTriggerStyle: (props?: class_variance_authority_types.ClassProp | undefined) => string;
|
|
2814
|
+
|
|
2815
|
+
declare const noteSizes: readonly ["small", "medium", "large"];
|
|
2816
|
+
type NoteSize = (typeof noteSizes)[number];
|
|
2817
|
+
declare const noteTones: readonly ["default", "secondary", "success", "warning", "error", "cyan"];
|
|
2818
|
+
type NoteTone = (typeof noteTones)[number];
|
|
2819
|
+
|
|
2820
|
+
declare const radioOrientations: readonly ["vertical", "horizontal"];
|
|
2821
|
+
type RadioOrientation = (typeof radioOrientations)[number];
|
|
2822
|
+
|
|
2823
|
+
/**
|
|
2824
|
+
* Select Component Tokens — Layer 3
|
|
2825
|
+
*
|
|
2826
|
+
* Native short-list select and compound listbox trigger share the same control
|
|
2827
|
+
* geometry. Complex searchable selection stays in Combobox.
|
|
2828
|
+
*/
|
|
2829
|
+
type SelectSize = "xsmall" | "small" | "medium" | "large";
|
|
2830
|
+
|
|
2831
|
+
/**
|
|
2832
|
+
* Spinner Component Tokens — Layer 3
|
|
2833
|
+
*
|
|
2834
|
+
* Indeterminate single-action loading feedback. Keep the surface deliberately
|
|
2835
|
+
* narrow: expressive loaders belong in marketing illustrations, not controls.
|
|
2836
|
+
*/
|
|
2837
|
+
declare const spinnerSizes: {
|
|
2838
|
+
readonly xs: 12;
|
|
2839
|
+
readonly sm: 16;
|
|
2840
|
+
readonly md: 20;
|
|
2841
|
+
readonly lg: 24;
|
|
2842
|
+
};
|
|
2843
|
+
type SpinnerSize = keyof typeof spinnerSizes;
|
|
2844
|
+
declare const spinnerTones: {
|
|
2845
|
+
readonly default: "text-muted-foreground";
|
|
2846
|
+
readonly foreground: "text-foreground";
|
|
2847
|
+
readonly inverse: "text-primary-foreground";
|
|
2848
|
+
};
|
|
2849
|
+
type SpinnerTone = keyof typeof spinnerTones;
|
|
2850
|
+
|
|
2851
|
+
/**
|
|
2852
|
+
* Switch Component Tokens — Layer 3
|
|
2853
|
+
*
|
|
2854
|
+
* Segmented radio selector for 2–3 mutually exclusive views of the same
|
|
2855
|
+
* surface. Boolean settings belong to Toggle, not this primitive.
|
|
2856
|
+
*/
|
|
2857
|
+
declare const switchSizes: {
|
|
2858
|
+
readonly small: {
|
|
2859
|
+
readonly height: 32;
|
|
2860
|
+
readonly controlHeight: 24;
|
|
2861
|
+
readonly padding: 4;
|
|
2862
|
+
readonly paddingX: 12;
|
|
2863
|
+
readonly iconSize: number;
|
|
2864
|
+
readonly minWidth: 64;
|
|
2865
|
+
readonly fontSize: 12;
|
|
2866
|
+
};
|
|
2867
|
+
readonly medium: {
|
|
2868
|
+
readonly height: 40;
|
|
2869
|
+
readonly controlHeight: 32;
|
|
2870
|
+
readonly padding: 4;
|
|
2871
|
+
readonly paddingX: 12;
|
|
2872
|
+
readonly iconSize: 20;
|
|
2873
|
+
readonly minWidth: 72;
|
|
2874
|
+
readonly fontSize: 14;
|
|
2875
|
+
};
|
|
2876
|
+
readonly large: {
|
|
2877
|
+
readonly height: 48;
|
|
2878
|
+
readonly controlHeight: 40;
|
|
2879
|
+
readonly padding: 4;
|
|
2880
|
+
readonly paddingX: 16;
|
|
2881
|
+
readonly iconSize: 24;
|
|
2882
|
+
readonly minWidth: 88;
|
|
2883
|
+
readonly fontSize: 16;
|
|
2884
|
+
};
|
|
2885
|
+
};
|
|
2886
|
+
type SwitchSize = keyof typeof switchSizes;
|
|
2887
|
+
|
|
2888
|
+
/**
|
|
2889
|
+
* Tabs Component Tokens — Layer 3
|
|
2890
|
+
*
|
|
2891
|
+
* Same-scope view switching for 2–7 sibling panels. Route navigation belongs
|
|
2892
|
+
* in menus or side navigation, while boolean settings belong in Switch/Toggle.
|
|
2893
|
+
*/
|
|
2894
|
+
declare const tabsSizes: {
|
|
2895
|
+
readonly xs: {
|
|
2896
|
+
readonly height: 24;
|
|
2897
|
+
readonly padding: 4;
|
|
2898
|
+
readonly paddingX: 8;
|
|
2899
|
+
readonly gap: 4;
|
|
2900
|
+
readonly triggerGap: 4;
|
|
2901
|
+
readonly iconSize: 14;
|
|
2902
|
+
readonly fontSize: 12;
|
|
2903
|
+
readonly minWidth: 56;
|
|
2904
|
+
};
|
|
2905
|
+
readonly sm: {
|
|
2906
|
+
readonly height: 32;
|
|
2907
|
+
readonly padding: 4;
|
|
2908
|
+
readonly paddingX: 12;
|
|
2909
|
+
readonly gap: 4;
|
|
2910
|
+
readonly triggerGap: number;
|
|
2911
|
+
readonly iconSize: 14;
|
|
2912
|
+
readonly fontSize: 12;
|
|
2913
|
+
readonly minWidth: 64;
|
|
2914
|
+
};
|
|
2915
|
+
readonly md: {
|
|
2916
|
+
readonly height: 40;
|
|
2917
|
+
readonly padding: 4;
|
|
2918
|
+
readonly paddingX: 12;
|
|
2919
|
+
readonly gap: 8;
|
|
2920
|
+
readonly triggerGap: number;
|
|
2921
|
+
readonly iconSize: 16;
|
|
2922
|
+
readonly fontSize: 14;
|
|
2923
|
+
readonly minWidth: 72;
|
|
2924
|
+
};
|
|
2925
|
+
readonly lg: {
|
|
2926
|
+
readonly height: 48;
|
|
2927
|
+
readonly padding: 4;
|
|
2928
|
+
readonly paddingX: 16;
|
|
2929
|
+
readonly gap: number;
|
|
2930
|
+
readonly triggerGap: 8;
|
|
2931
|
+
readonly iconSize: 18;
|
|
2932
|
+
readonly fontSize: 14;
|
|
2933
|
+
readonly minWidth: 88;
|
|
2934
|
+
};
|
|
2935
|
+
};
|
|
2936
|
+
type TabsSize = keyof typeof tabsSizes;
|
|
2937
|
+
|
|
2938
|
+
/**
|
|
2939
|
+
* ThemeSwitcher Component Tokens — Layer 3
|
|
2940
|
+
*
|
|
2941
|
+
* Canonical Light / System / Dark selector. It is an app-level preference
|
|
2942
|
+
* control, not a local visual toy; state belongs to @nebutra/tokens.
|
|
2943
|
+
*/
|
|
2944
|
+
declare const themeSwitcherSizes: {
|
|
2945
|
+
readonly small: {
|
|
2946
|
+
readonly controlHeight: 32;
|
|
2947
|
+
readonly optionMinWidth: 64;
|
|
2948
|
+
readonly optionPaddingX: 8;
|
|
2949
|
+
readonly iconSize: 16;
|
|
2950
|
+
readonly fontSize: 12;
|
|
2951
|
+
readonly gap: 4;
|
|
2952
|
+
readonly padding: 4;
|
|
2953
|
+
};
|
|
2954
|
+
readonly medium: {
|
|
2955
|
+
readonly controlHeight: 40;
|
|
2956
|
+
readonly optionMinWidth: 80;
|
|
2957
|
+
readonly optionPaddingX: 12;
|
|
2958
|
+
readonly iconSize: 18;
|
|
2959
|
+
readonly fontSize: 14;
|
|
2960
|
+
readonly gap: 4;
|
|
2961
|
+
readonly padding: 4;
|
|
2962
|
+
};
|
|
2963
|
+
};
|
|
2964
|
+
type ThemeSwitcherSize = keyof typeof themeSwitcherSizes;
|
|
2965
|
+
|
|
2966
|
+
/**
|
|
2967
|
+
* ThemeToggle Component Tokens — Layer 3
|
|
2968
|
+
*
|
|
2969
|
+
* Binary theme toggles are compact toolbar controls. Geometry is fixed so the
|
|
2970
|
+
* sun/moon morph never shifts surrounding navigation content.
|
|
2971
|
+
*/
|
|
2972
|
+
declare const themeToggleTokens: {
|
|
2973
|
+
readonly sizes: {
|
|
2974
|
+
readonly sm: {
|
|
2975
|
+
readonly control: 32;
|
|
2976
|
+
readonly icon: 16;
|
|
2977
|
+
readonly padding: 4;
|
|
2978
|
+
readonly radius: 6;
|
|
2979
|
+
};
|
|
2980
|
+
readonly md: {
|
|
2981
|
+
readonly control: 40;
|
|
2982
|
+
readonly icon: 20;
|
|
2983
|
+
readonly padding: 8;
|
|
2984
|
+
readonly radius: 6;
|
|
2985
|
+
};
|
|
2986
|
+
readonly lg: {
|
|
2987
|
+
readonly control: 48;
|
|
2988
|
+
readonly icon: 24;
|
|
2989
|
+
readonly padding: 12;
|
|
2990
|
+
readonly radius: 8;
|
|
2991
|
+
};
|
|
2992
|
+
};
|
|
2993
|
+
readonly icon: {
|
|
2994
|
+
readonly center: 12;
|
|
2995
|
+
readonly sunRadius: 5;
|
|
2996
|
+
readonly moonRadius: 9;
|
|
2997
|
+
readonly maskRadius: 9;
|
|
2998
|
+
readonly strokeWidth: 2;
|
|
2999
|
+
};
|
|
3000
|
+
readonly motion: {
|
|
3001
|
+
readonly duration: 100;
|
|
3002
|
+
readonly easing: "ease-out";
|
|
3003
|
+
readonly hoverScale: 1.06;
|
|
3004
|
+
readonly tapScale: 0.92;
|
|
3005
|
+
readonly morph: {
|
|
3006
|
+
type: "spring";
|
|
3007
|
+
stiffness: number;
|
|
3008
|
+
damping: number;
|
|
3009
|
+
};
|
|
3010
|
+
readonly press: {
|
|
3011
|
+
type: "spring";
|
|
3012
|
+
stiffness: number;
|
|
3013
|
+
damping: number;
|
|
3014
|
+
};
|
|
3015
|
+
readonly instant: {
|
|
3016
|
+
duration: number;
|
|
3017
|
+
};
|
|
3018
|
+
};
|
|
3019
|
+
};
|
|
3020
|
+
type ThemeToggleSize = keyof typeof themeToggleTokens.sizes;
|
|
3021
|
+
|
|
3022
|
+
/**
|
|
3023
|
+
* Toggle Component Tokens — Layer 3
|
|
3024
|
+
*
|
|
3025
|
+
* Boolean setting switch. It consumes semantic status colors only; decorative
|
|
3026
|
+
* hue families without semantic ownership should not be added here.
|
|
3027
|
+
*/
|
|
3028
|
+
declare const toggleSizes: readonly ["small", "normal", "large"];
|
|
3029
|
+
type ToggleSize = (typeof toggleSizes)[number];
|
|
3030
|
+
declare const toggleColors: readonly ["default", "blue", "cyan", "success", "warning", "error", "neutral", "green", "amber", "red", "teal", "gray"];
|
|
3031
|
+
type ToggleColor = (typeof toggleColors)[number];
|
|
3032
|
+
|
|
3033
|
+
type NoteToneProps = {
|
|
3034
|
+
/** Semantic tone. Prefer this over the Geist-compatible `type` alias. */
|
|
3035
|
+
tone?: NoteTone;
|
|
3036
|
+
type?: never;
|
|
3037
|
+
} | {
|
|
3038
|
+
/** Geist-compatible alias for `tone`; do not pass both. */
|
|
3039
|
+
type?: NoteTone;
|
|
3040
|
+
tone?: never;
|
|
3041
|
+
};
|
|
3042
|
+
interface NoteBaseProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children" | "role"> {
|
|
3043
|
+
/** Inline contextual message body. Keep it to one sentence when possible. */
|
|
3044
|
+
children: React.ReactNode;
|
|
3045
|
+
/** @default "medium" */
|
|
3046
|
+
size?: NoteSize;
|
|
3047
|
+
/** Filled variants use a stronger background, not a new semantic meaning. */
|
|
3048
|
+
fill?: boolean;
|
|
3049
|
+
/** Prefix label. Pass `false` for icon-only tone, or a short Title Case label. */
|
|
3050
|
+
label?: string | false;
|
|
3051
|
+
/** Optional single inline action. Disabled notes make this subtree inert. */
|
|
3052
|
+
action?: React.ReactNode;
|
|
3053
|
+
/** Custom leading icon. Pass `false` to remove the default tone icon. */
|
|
3054
|
+
icon?: React.ReactNode | false;
|
|
3055
|
+
/** Disabled notes communicate unavailable contextual information. */
|
|
3056
|
+
disabled?: boolean;
|
|
3057
|
+
/** `error` defaults to alert; every other tone defaults to note. */
|
|
3058
|
+
role?: "note" | "alert" | "status";
|
|
3059
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3060
|
+
}
|
|
3061
|
+
type NoteProps = NoteBaseProps & NoteToneProps;
|
|
3062
|
+
declare function Note({ action, children, className, disabled, fill, icon, label, ref, role, size, style, tone, type, ...props }: NoteProps): react_jsx_runtime.JSX.Element;
|
|
3063
|
+
|
|
3064
|
+
interface PaginationDestination {
|
|
3065
|
+
title: string;
|
|
3066
|
+
href: string;
|
|
3067
|
+
}
|
|
3068
|
+
interface PaginationProps extends Omit<React.ComponentPropsWithoutRef<"nav">, "children"> {
|
|
3069
|
+
previous?: PaginationDestination;
|
|
3070
|
+
next?: PaginationDestination;
|
|
3071
|
+
previousLabel?: string;
|
|
3072
|
+
nextLabel?: string;
|
|
3073
|
+
}
|
|
3074
|
+
declare function Pagination({ previous, next, previousLabel, nextLabel, className, style, "aria-label": ariaLabel, ...props }: PaginationProps): react_jsx_runtime.JSX.Element;
|
|
3075
|
+
declare namespace Pagination {
|
|
3076
|
+
var displayName: string;
|
|
3077
|
+
}
|
|
3078
|
+
|
|
3079
|
+
declare function Popover({ ...props }: React.ComponentProps<typeof Popover$1.Root>): react_jsx_runtime.JSX.Element;
|
|
3080
|
+
type PopoverTriggerProps = React.ComponentProps<typeof Popover$1.Trigger> & {
|
|
3081
|
+
asChild?: boolean;
|
|
3082
|
+
};
|
|
3083
|
+
declare function PopoverTrigger({ asChild, children, render, ...props }: PopoverTriggerProps): react_jsx_runtime.JSX.Element;
|
|
3084
|
+
declare function PopoverPositioner({ sideOffset, style, ...props }: React.ComponentProps<typeof Popover$1.Positioner>): react_jsx_runtime.JSX.Element;
|
|
3085
|
+
interface PopoverContentProps extends React.ComponentProps<typeof Popover$1.Popup> {
|
|
3086
|
+
align?: Popover$1.Positioner.Props["align"];
|
|
3087
|
+
sideOffset?: Popover$1.Positioner.Props["sideOffset"];
|
|
3088
|
+
alignOffset?: Popover$1.Positioner.Props["alignOffset"];
|
|
3089
|
+
side?: Popover$1.Positioner.Props["side"];
|
|
3090
|
+
showArrow?: boolean;
|
|
3091
|
+
}
|
|
3092
|
+
declare function PopoverContent({ className, align, sideOffset, alignOffset, side, children, showArrow, style, ...props }: PopoverContentProps): react_jsx_runtime.JSX.Element;
|
|
3093
|
+
declare function PopoverAnchor({ ...props }: React.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
|
|
3094
|
+
|
|
3095
|
+
declare const progressVariants: (props?: ({
|
|
3096
|
+
variant?: "outline" | "default" | "secondary" | "primary" | "destructive" | "success" | "warning" | null | undefined;
|
|
3097
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
3098
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
3099
|
+
declare const progressIndicatorVariants: (props?: ({
|
|
3100
|
+
variant?: "outline" | "default" | "secondary" | "primary" | "destructive" | "success" | "warning" | null | undefined;
|
|
3101
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
3102
|
+
interface ProgressStop {
|
|
3103
|
+
/** 0–100 percent (or value in `max` units when `valueIsPercent={false}`). */
|
|
3104
|
+
value: number;
|
|
3105
|
+
tooltip?: React.ReactNode;
|
|
3106
|
+
ariaLabel?: string;
|
|
3107
|
+
}
|
|
3108
|
+
type ProgressColorMap = Record<number, string>;
|
|
3109
|
+
type ProgressProps = Omit<React.ComponentPropsWithoutRef<typeof Progress$1.Root>, "value" | "max"> & VariantProps<typeof progressVariants> & {
|
|
3110
|
+
/** Current value (in `max` units). Pass `null`/omit for indeterminate. */
|
|
3111
|
+
value?: number | null;
|
|
3112
|
+
/** Real ceiling. @default 100 */
|
|
3113
|
+
max?: number;
|
|
3114
|
+
/** Geist severity alias — maps to `variant`. */
|
|
3115
|
+
type?: "success" | "warning" | "error" | "secondary";
|
|
3116
|
+
/** Optional threshold color map keyed by % (e.g. `{ 0, 50, 100 }`). */
|
|
3117
|
+
colors?: ProgressColorMap;
|
|
3118
|
+
/** Genuine multi-stage stop markers (dots at given % + Tooltip). */
|
|
3119
|
+
stops?: ProgressStop[];
|
|
3120
|
+
/** Show a numeric `xx%` label below the bar. */
|
|
3121
|
+
showValue?: boolean;
|
|
3122
|
+
/** Animate fill transitions. @default true */
|
|
3123
|
+
animated?: boolean;
|
|
3124
|
+
/** Optional caption above the bar. */
|
|
3125
|
+
label?: string;
|
|
3126
|
+
};
|
|
3127
|
+
declare const Progress: ({ className, value, max, variant, type, colors, stops, size, showValue, animated, label, ref, ...props }: ProgressProps & {
|
|
3128
|
+
ref?: React.Ref<React.ElementRef<typeof Progress$1.Root>> | undefined;
|
|
3129
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
3130
|
+
|
|
3131
|
+
type ProjectBannerVariant = "success" | "warning" | "error" | "info";
|
|
3132
|
+
/** Discriminated CTA — either a link or a button, never both. */
|
|
3133
|
+
type ProjectBannerCallToAction = {
|
|
3134
|
+
label: string;
|
|
3135
|
+
href: string;
|
|
3136
|
+
onClick?: never;
|
|
3137
|
+
} | {
|
|
3138
|
+
label: string;
|
|
3139
|
+
onClick: () => void;
|
|
3140
|
+
href?: never;
|
|
3141
|
+
};
|
|
3142
|
+
type ProjectBannerProps = {
|
|
3143
|
+
/** @default "info" */
|
|
3144
|
+
variant?: ProjectBannerVariant;
|
|
3145
|
+
/** One-sentence impact statement, sentence case. */
|
|
3146
|
+
label: ReactNode;
|
|
3147
|
+
/** Optional leading glyph. Caller controls sizing; the banner just slots it. */
|
|
3148
|
+
icon?: ReactNode;
|
|
3149
|
+
/** Required-by-convention resolver action. */
|
|
3150
|
+
callToAction?: ProjectBannerCallToAction;
|
|
3151
|
+
/**
|
|
3152
|
+
* ARIA live-region role. Defaults to `"alert"` for `error`, `"status"` for
|
|
3153
|
+
* all others. Pass explicitly if you need to override (e.g. a polite error).
|
|
3154
|
+
*/
|
|
3155
|
+
role?: "alert" | "status";
|
|
3156
|
+
ref?: Ref<HTMLElement>;
|
|
3157
|
+
className?: string;
|
|
3158
|
+
};
|
|
3159
|
+
declare function ProjectBanner({ variant, label, icon, callToAction, role, ref, className, }: ProjectBannerProps): react_jsx_runtime.JSX.Element;
|
|
3160
|
+
|
|
3161
|
+
type RadioValue = string;
|
|
3162
|
+
type RadioGroupBaseProps = Omit<FieldsetHTMLAttributes<HTMLFieldSetElement>, "children" | "defaultValue" | "disabled" | "onChange" | "value">;
|
|
3163
|
+
type RadioGroupProps = RadioGroupBaseProps & {
|
|
3164
|
+
children: ReactNode;
|
|
3165
|
+
/** Visible group label rendered as a native legend. */
|
|
3166
|
+
label?: ReactNode;
|
|
3167
|
+
/** Form field name shared by all radios. Generated when omitted. */
|
|
3168
|
+
name?: string;
|
|
3169
|
+
/** Controlled selected value. */
|
|
3170
|
+
value?: RadioValue;
|
|
3171
|
+
/** Uncontrolled initial selected value. */
|
|
3172
|
+
defaultValue?: RadioValue;
|
|
3173
|
+
/** Geist-compatible change callback. */
|
|
3174
|
+
onChange?: (value: RadioValue) => void;
|
|
3175
|
+
/** Base UI / Radix-compatible change callback. */
|
|
3176
|
+
onValueChange?: (value: RadioValue) => void;
|
|
3177
|
+
disabled?: boolean;
|
|
3178
|
+
required?: boolean;
|
|
3179
|
+
orientation?: RadioOrientation;
|
|
3180
|
+
/** Applies to the options container. */
|
|
3181
|
+
className?: string;
|
|
3182
|
+
/** Applies to the fieldset root. */
|
|
3183
|
+
rootClassName?: string;
|
|
3184
|
+
};
|
|
3185
|
+
type RadioGroupItemProps = Omit<LabelHTMLAttributes<HTMLLabelElement>, "children" | "onChange"> & {
|
|
3186
|
+
value: RadioValue;
|
|
3187
|
+
defaultChecked?: boolean;
|
|
3188
|
+
children?: ReactNode;
|
|
3189
|
+
description?: ReactNode;
|
|
3190
|
+
disabled?: boolean;
|
|
3191
|
+
disabledReason?: string;
|
|
3192
|
+
controlClassName?: string;
|
|
3193
|
+
inputClassName?: string;
|
|
3194
|
+
};
|
|
3195
|
+
declare function RadioGroupItemRoot({ children, className, controlClassName, description, disabled, disabledReason, id, inputClassName, style, value, ...props }: RadioGroupItemProps): react_jsx_runtime.JSX.Element;
|
|
3196
|
+
declare namespace RadioGroupItemRoot {
|
|
3197
|
+
var displayName: string;
|
|
3198
|
+
}
|
|
3199
|
+
declare function RadioGroupRoot({ "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, children, className, defaultValue, disabled, label, name, onChange, onValueChange, orientation, required, rootClassName, style, value, ...props }: RadioGroupProps): react_jsx_runtime.JSX.Element;
|
|
3200
|
+
declare namespace RadioGroupRoot {
|
|
3201
|
+
var displayName: string;
|
|
3202
|
+
}
|
|
3203
|
+
declare const RadioGroupItem: typeof RadioGroupItemRoot;
|
|
3204
|
+
declare const RadioGroup: typeof RadioGroupRoot & {
|
|
3205
|
+
Item: typeof RadioGroupItemRoot;
|
|
3206
|
+
};
|
|
3207
|
+
|
|
3208
|
+
declare function ResizablePanelGroup({ className, direction, orientation, ...props }: React.ComponentProps<typeof Group> & {
|
|
3209
|
+
/** @deprecated Use `orientation` instead */
|
|
3210
|
+
direction?: "horizontal" | "vertical";
|
|
3211
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3212
|
+
declare const ResizablePanel: typeof Panel;
|
|
3213
|
+
declare const ResizableHandle: ({ withHandle, className, ...props }: React.ComponentProps<typeof Separator$1> & {
|
|
3214
|
+
withHandle?: boolean;
|
|
3215
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
3216
|
+
|
|
3217
|
+
type ScrollerOverflow = "x" | "y" | "both";
|
|
3218
|
+
type ScrollerButtonAxis = "x" | "y";
|
|
3219
|
+
type ScrollerEdgeAffordance = "fade" | "none";
|
|
3220
|
+
type ScrollerSize = number | string;
|
|
3221
|
+
interface ScrollerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children" | "style"> {
|
|
3222
|
+
children?: React.ReactNode;
|
|
3223
|
+
/** Scroll axis. Use "both" only when content genuinely overflows in two dimensions. */
|
|
3224
|
+
overflow?: ScrollerOverflow;
|
|
3225
|
+
/** Outer width. Numbers resolve to px. */
|
|
3226
|
+
width?: ScrollerSize;
|
|
3227
|
+
/** Outer height. Numbers resolve to px. */
|
|
3228
|
+
height?: ScrollerSize;
|
|
3229
|
+
/** Class applied to the direct-child container inside the scroll viewport. */
|
|
3230
|
+
childrenContainerClassName?: string;
|
|
3231
|
+
/** Render directional buttons that scroll to the next direct child. */
|
|
3232
|
+
withButtons?: boolean;
|
|
3233
|
+
/** Axis used by directional buttons. Defaults to x for horizontal, y otherwise. */
|
|
3234
|
+
buttonAxis?: ScrollerButtonAxis;
|
|
3235
|
+
/** Accessible noun used by the viewport and generated button labels. */
|
|
3236
|
+
contentLabel?: string;
|
|
3237
|
+
previousButtonLabel?: string;
|
|
3238
|
+
nextButtonLabel?: string;
|
|
3239
|
+
edgeAffordance?: ScrollerEdgeAffordance;
|
|
3240
|
+
scrollBehavior?: ScrollBehavior;
|
|
3241
|
+
style?: React.CSSProperties;
|
|
3242
|
+
}
|
|
3243
|
+
declare function Scroller({ children, overflow, width, height, childrenContainerClassName, withButtons, buttonAxis, contentLabel, previousButtonLabel, nextButtonLabel, edgeAffordance, scrollBehavior, className, style, ...props }: ScrollerProps): react_jsx_runtime.JSX.Element;
|
|
3244
|
+
declare namespace Scroller {
|
|
3245
|
+
var displayName: string;
|
|
3246
|
+
}
|
|
3247
|
+
|
|
3248
|
+
type SelectVariant = "default" | "ghost";
|
|
3249
|
+
interface SelectOption {
|
|
3250
|
+
value: string;
|
|
3251
|
+
label: string;
|
|
3252
|
+
disabled?: boolean;
|
|
3253
|
+
}
|
|
3254
|
+
interface OptionsSelectProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, "children" | "size" | "prefix" | "onChange"> {
|
|
3255
|
+
/**
|
|
3256
|
+
* Explicit OS-native `<select>`. Prefer the default listbox.
|
|
3257
|
+
* Only use when a true native control is required (rare).
|
|
3258
|
+
*/
|
|
3259
|
+
native?: boolean;
|
|
3260
|
+
variant?: SelectVariant;
|
|
3261
|
+
options?: readonly SelectOption[];
|
|
3262
|
+
label?: string;
|
|
3263
|
+
placeholder?: string;
|
|
3264
|
+
size?: SelectSize;
|
|
3265
|
+
prefix?: React.ReactNode;
|
|
3266
|
+
suffix?: React.ReactNode;
|
|
3267
|
+
error?: string;
|
|
3268
|
+
children?: React.ReactNode;
|
|
3269
|
+
wrapperClassName?: string;
|
|
3270
|
+
/** HTML-select-compatible change handler (value on event.target.value). */
|
|
3271
|
+
onChange?: (event: {
|
|
3272
|
+
target: {
|
|
3273
|
+
value: string;
|
|
3274
|
+
name?: string;
|
|
3275
|
+
};
|
|
3276
|
+
}) => void;
|
|
3277
|
+
/** Listbox value change (preferred). */
|
|
3278
|
+
onValueChange?: (value: string | null) => void;
|
|
3279
|
+
}
|
|
3280
|
+
type CompoundSelectProps = SelectRoot.Props<string, false> & {
|
|
3281
|
+
native?: false;
|
|
3282
|
+
};
|
|
3283
|
+
declare function Select(props: OptionsSelectProps): React.JSX.Element;
|
|
3284
|
+
declare function Select(props: CompoundSelectProps): React.JSX.Element;
|
|
3285
|
+
declare namespace Select {
|
|
3286
|
+
var displayName: string;
|
|
3287
|
+
}
|
|
3288
|
+
declare const SelectGroup: {
|
|
3289
|
+
({ className, ref, ...props }: React.ComponentPropsWithoutRef<typeof Select$1.Group> & {
|
|
3290
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3291
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3292
|
+
displayName: string;
|
|
3293
|
+
};
|
|
3294
|
+
declare const SelectValue: {
|
|
3295
|
+
({ className, placeholder, children, ref, ...props }: React.ComponentPropsWithoutRef<typeof Select$1.Value> & {
|
|
3296
|
+
placeholder?: React.ReactNode;
|
|
3297
|
+
} & {
|
|
3298
|
+
ref?: React.Ref<HTMLSpanElement> | undefined;
|
|
3299
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3300
|
+
displayName: string;
|
|
3301
|
+
};
|
|
3302
|
+
declare const SelectTrigger: {
|
|
3303
|
+
({ className, children, size, style, ref, ...props }: Omit<React.ComponentPropsWithoutRef<typeof Select$1.Trigger>, "size"> & {
|
|
3304
|
+
size?: SelectSize;
|
|
3305
|
+
} & {
|
|
3306
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
3307
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3308
|
+
displayName: string;
|
|
3309
|
+
};
|
|
3310
|
+
declare const SelectScrollUpButton: {
|
|
3311
|
+
({ ref: _ref, }: React.ComponentPropsWithoutRef<"div"> & {
|
|
3312
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3313
|
+
}): null;
|
|
3314
|
+
displayName: string;
|
|
3315
|
+
};
|
|
3316
|
+
declare const SelectScrollDownButton: {
|
|
3317
|
+
({ ref: _ref, }: React.ComponentPropsWithoutRef<"div"> & {
|
|
3318
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3319
|
+
}): null;
|
|
3320
|
+
displayName: string;
|
|
3321
|
+
};
|
|
3322
|
+
declare const SelectContent: {
|
|
3323
|
+
({ className, children, position, style, ref, ...props }: React.ComponentPropsWithoutRef<typeof Select$1.Popup> & {
|
|
3324
|
+
position?: "item-aligned" | "popper";
|
|
3325
|
+
} & {
|
|
3326
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3327
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3328
|
+
displayName: string;
|
|
3329
|
+
};
|
|
3330
|
+
declare const SelectLabel: {
|
|
3331
|
+
({ className, ref, ...props }: React.ComponentPropsWithoutRef<typeof Select$1.GroupLabel> & {
|
|
3332
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3333
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3334
|
+
displayName: string;
|
|
3335
|
+
};
|
|
3336
|
+
declare const SelectItem: {
|
|
3337
|
+
({ className, children, ref, ...props }: React.ComponentPropsWithoutRef<typeof Select$1.Item> & {
|
|
3338
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3339
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3340
|
+
displayName: string;
|
|
3341
|
+
};
|
|
3342
|
+
declare const SelectSeparator: {
|
|
3343
|
+
({ className, ref, ...props }: React.ComponentPropsWithoutRef<"div"> & {
|
|
3344
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3345
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3346
|
+
displayName: string;
|
|
3347
|
+
};
|
|
3348
|
+
|
|
3349
|
+
declare const Separator: {
|
|
3350
|
+
({ className, orientation, decorative: _decorative, ref, ...props }: React.ComponentPropsWithoutRef<typeof Separator$2> & {
|
|
3351
|
+
decorative?: boolean;
|
|
3352
|
+
} & {
|
|
3353
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3354
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3355
|
+
displayName: string;
|
|
3356
|
+
};
|
|
3357
|
+
|
|
3358
|
+
type SheetProps = React.ComponentPropsWithoutRef<typeof Dialog$1.Root>;
|
|
3359
|
+
declare function Sheet({ modal, disablePointerDismissal, ...props }: SheetProps): react_jsx_runtime.JSX.Element;
|
|
3360
|
+
declare namespace Sheet {
|
|
3361
|
+
var displayName: string;
|
|
3362
|
+
}
|
|
3363
|
+
type SheetTriggerProps = React.ComponentPropsWithoutRef<typeof Dialog$1.Trigger> & {
|
|
3364
|
+
asChild?: boolean;
|
|
3365
|
+
};
|
|
3366
|
+
declare const SheetTrigger: {
|
|
3367
|
+
({ asChild, children, ref, ...props }: SheetTriggerProps & {
|
|
3368
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
3369
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3370
|
+
displayName: string;
|
|
3371
|
+
};
|
|
3372
|
+
type SheetCloseProps = React.ComponentPropsWithoutRef<typeof Dialog$1.Close> & {
|
|
3373
|
+
asChild?: boolean;
|
|
3374
|
+
};
|
|
3375
|
+
declare const SheetClose: {
|
|
3376
|
+
({ asChild, children, ref, ...props }: SheetCloseProps & {
|
|
3377
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
3378
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3379
|
+
displayName: string;
|
|
3380
|
+
};
|
|
3381
|
+
type SheetPortalProps = React.ComponentPropsWithoutRef<typeof Dialog$1.Portal>;
|
|
3382
|
+
declare function SheetPortal(props: SheetPortalProps): react_jsx_runtime.JSX.Element;
|
|
3383
|
+
declare namespace SheetPortal {
|
|
3384
|
+
var displayName: string;
|
|
3385
|
+
}
|
|
3386
|
+
type SheetOverlayProps = React.ComponentPropsWithoutRef<typeof Dialog$1.Backdrop>;
|
|
3387
|
+
declare const SheetOverlay: {
|
|
3388
|
+
({ className, style, ref, ...props }: SheetOverlayProps & {
|
|
3389
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3390
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3391
|
+
displayName: string;
|
|
3392
|
+
};
|
|
3393
|
+
declare const sheetVariants: (props?: ({
|
|
3394
|
+
side?: "top" | "right" | "bottom" | "left" | null | undefined;
|
|
3395
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
3396
|
+
interface SheetContentProps extends React.ComponentPropsWithoutRef<typeof Dialog$1.Popup>, VariantProps<typeof sheetVariants> {
|
|
3397
|
+
/**
|
|
3398
|
+
* Render the backdrop. Prefer `noOverlay` in docs because it names the visual
|
|
3399
|
+
* removal directly; `overlay` remains available for boolean composition.
|
|
3400
|
+
*/
|
|
3401
|
+
overlay?: boolean;
|
|
3402
|
+
/** Hide the backdrop while keeping the sheet surface and focus behavior. */
|
|
3403
|
+
noOverlay?: boolean;
|
|
3404
|
+
/** Render the built-in close icon button. */
|
|
3405
|
+
showClose?: boolean;
|
|
3406
|
+
/** Alias for `showClose`, matching newer generated examples. */
|
|
3407
|
+
close?: boolean;
|
|
3408
|
+
}
|
|
3409
|
+
declare const SheetContent: {
|
|
3410
|
+
({ side, className, children, overlay, noOverlay, showClose, close, style, ref, ...props }: SheetContentProps & {
|
|
3411
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3412
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3413
|
+
displayName: string;
|
|
3414
|
+
};
|
|
3415
|
+
type SheetHeaderProps = React.ComponentPropsWithoutRef<"div">;
|
|
3416
|
+
declare const SheetHeader: {
|
|
3417
|
+
({ className, ref, ...props }: SheetHeaderProps & {
|
|
3418
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3419
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3420
|
+
displayName: string;
|
|
3421
|
+
};
|
|
3422
|
+
type SheetBodyProps = React.ComponentPropsWithoutRef<"div">;
|
|
3423
|
+
declare const SheetBody: {
|
|
3424
|
+
({ className, ref, ...props }: SheetBodyProps & {
|
|
3425
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3426
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3427
|
+
displayName: string;
|
|
3428
|
+
};
|
|
3429
|
+
type SheetFooterProps = React.ComponentPropsWithoutRef<"div">;
|
|
3430
|
+
declare const SheetFooter: {
|
|
3431
|
+
({ className, ref, ...props }: SheetFooterProps & {
|
|
3432
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3433
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3434
|
+
displayName: string;
|
|
3435
|
+
};
|
|
3436
|
+
type SheetTitleProps = React.ComponentPropsWithoutRef<typeof Dialog$1.Title>;
|
|
3437
|
+
declare const SheetTitle: {
|
|
3438
|
+
({ className, ref, ...props }: SheetTitleProps & {
|
|
3439
|
+
ref?: React.Ref<HTMLHeadingElement> | undefined;
|
|
3440
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3441
|
+
displayName: string;
|
|
3442
|
+
};
|
|
3443
|
+
type SheetDescriptionProps = React.ComponentPropsWithoutRef<typeof Dialog$1.Description>;
|
|
3444
|
+
declare const SheetDescription: {
|
|
3445
|
+
({ className, ref, ...props }: SheetDescriptionProps & {
|
|
3446
|
+
ref?: React.Ref<HTMLParagraphElement> | undefined;
|
|
3447
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3448
|
+
displayName: string;
|
|
3449
|
+
};
|
|
3450
|
+
|
|
3451
|
+
type ShowMoreBaseProps = Omit<React.HTMLAttributes<HTMLDivElement>, "onClick"> & {
|
|
3452
|
+
/** Current disclosure state. */
|
|
3453
|
+
expanded: boolean;
|
|
3454
|
+
/** ID of the list/block whose hidden rows are controlled by the trigger. */
|
|
3455
|
+
controls: string;
|
|
3456
|
+
/** Number of rows/items hidden while collapsed. Used in the collapsed label. */
|
|
3457
|
+
hiddenCount?: number;
|
|
3458
|
+
/** Removes the divider rails while preserving the trigger affordance. */
|
|
3459
|
+
noBorder?: boolean;
|
|
3460
|
+
/** Label shown after expansion. */
|
|
3461
|
+
expandedLabel?: string;
|
|
3462
|
+
/** Label shown before expansion when `hiddenCount` is omitted. */
|
|
3463
|
+
collapsedLabel?: string;
|
|
3464
|
+
/** Focus target for the first newly revealed row. */
|
|
3465
|
+
focusTargetRef?: React.RefObject<HTMLElement | null>;
|
|
3466
|
+
/** Move focus to `focusTargetRef` after expansion. */
|
|
3467
|
+
focusOnExpand?: boolean;
|
|
3468
|
+
disabled?: boolean;
|
|
3469
|
+
buttonClassName?: string;
|
|
3470
|
+
dividerClassName?: string;
|
|
3471
|
+
};
|
|
3472
|
+
type ShowMoreControlledProps = {
|
|
3473
|
+
onExpandedChange: (expanded: boolean) => void;
|
|
3474
|
+
/** Use `onExpandedChange`; this legacy callback shape is intentionally exclusive. */
|
|
3475
|
+
onClick?: never;
|
|
3476
|
+
} | {
|
|
3477
|
+
/** Legacy Geist-compatible callback. Prefer `onExpandedChange`. */
|
|
3478
|
+
onClick: (expanded: boolean) => void;
|
|
3479
|
+
onExpandedChange?: never;
|
|
3480
|
+
};
|
|
3481
|
+
type ShowMoreProps = ShowMoreBaseProps & ShowMoreControlledProps;
|
|
3482
|
+
declare const ShowMore: {
|
|
3483
|
+
({ expanded, controls, hiddenCount, noBorder, expandedLabel, collapsedLabel, focusTargetRef, focusOnExpand, disabled, className, buttonClassName, dividerClassName, onExpandedChange, onClick, style, ref, ...props }: ShowMoreProps & {
|
|
3484
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3485
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3486
|
+
displayName: string;
|
|
3487
|
+
};
|
|
3488
|
+
|
|
3489
|
+
interface SkeletonProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
|
|
3490
|
+
/** Width in px (number) or any CSS length (string). */
|
|
3491
|
+
width?: number | string;
|
|
3492
|
+
/** Height in px (number) or any CSS length (string). */
|
|
3493
|
+
height?: number | string;
|
|
3494
|
+
/** Outer wrapper height — keeps surrounding layout from reflowing. */
|
|
3495
|
+
boxHeight?: number | string;
|
|
3496
|
+
/** Pill shape — fully rounded. Mutually exclusive with `rounded`/`squared`. */
|
|
3497
|
+
pill?: boolean;
|
|
3498
|
+
/** Rounded shape — radius-md. */
|
|
3499
|
+
rounded?: boolean;
|
|
3500
|
+
/** Squared shape — radius-sm. */
|
|
3501
|
+
squared?: boolean;
|
|
3502
|
+
/** Animate the shimmer. @default true */
|
|
3503
|
+
animated?: boolean;
|
|
3504
|
+
/**
|
|
3505
|
+
* Show the placeholder. When `false` and children are passed, the children
|
|
3506
|
+
* render unwrapped (loaded state). @default true
|
|
3507
|
+
*/
|
|
3508
|
+
show?: boolean;
|
|
3509
|
+
/** Optional children — when present, the skeleton sizes itself to wrap them. */
|
|
3510
|
+
children?: ReactNode;
|
|
3511
|
+
/** @deprecated Use `show={!isLoaded}` instead. */
|
|
3512
|
+
isLoaded?: boolean;
|
|
3513
|
+
/** @deprecated Use `animated={false}` instead. */
|
|
3514
|
+
disableAnimation?: boolean;
|
|
3515
|
+
}
|
|
3516
|
+
declare function Skeleton(props: SkeletonProps): react_jsx_runtime.JSX.Element;
|
|
3517
|
+
declare function SkeletonText({ lines, className, ...props }: SkeletonProps & {
|
|
3518
|
+
lines?: number;
|
|
3519
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3520
|
+
declare function SkeletonAvatar({ size, className, ...props }: SkeletonProps & {
|
|
3521
|
+
size?: "sm" | "md" | "lg";
|
|
3522
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3523
|
+
declare function SkeletonCard({ className, ...props }: SkeletonProps): react_jsx_runtime.JSX.Element;
|
|
3524
|
+
|
|
3525
|
+
type BaseSliderProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, "children" | "defaultValue" | "max" | "min" | "onChange" | "step" | "type" | "value"> & {
|
|
3526
|
+
min?: number;
|
|
3527
|
+
max?: number;
|
|
3528
|
+
step?: number;
|
|
3529
|
+
label?: string;
|
|
3530
|
+
unit?: string;
|
|
3531
|
+
showValue?: boolean;
|
|
3532
|
+
formatValue?: (value: number) => React.ReactNode;
|
|
3533
|
+
wrapperClassName?: string;
|
|
3534
|
+
};
|
|
3535
|
+
type NumberSliderProps = BaseSliderProps & {
|
|
3536
|
+
valueMode?: "number";
|
|
3537
|
+
value?: number;
|
|
3538
|
+
defaultValue?: number;
|
|
3539
|
+
onValueChange?: (value: number) => void;
|
|
3540
|
+
onValueCommit?: (value: number) => void;
|
|
3541
|
+
};
|
|
3542
|
+
type ArraySliderProps = BaseSliderProps & {
|
|
3543
|
+
valueMode?: "array";
|
|
3544
|
+
value?: readonly number[];
|
|
3545
|
+
defaultValue?: readonly number[];
|
|
3546
|
+
onValueChange?: (value: number[]) => void;
|
|
3547
|
+
onValueCommit?: (value: number[]) => void;
|
|
3548
|
+
};
|
|
3549
|
+
type SliderProps = NumberSliderProps | ArraySliderProps;
|
|
3550
|
+
declare const Slider: {
|
|
3551
|
+
({ ref, ...props }: SliderProps & {
|
|
3552
|
+
ref?: React.Ref<HTMLInputElement> | undefined;
|
|
3553
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3554
|
+
displayName: string;
|
|
3555
|
+
};
|
|
3556
|
+
|
|
3557
|
+
type SpinnerVariant = "default" | "circle" | "pinwheel" | "circle-filled" | "ellipsis" | "ring" | "bars" | "infinite";
|
|
3558
|
+
interface SpinnerProps extends Omit<ComponentProps<"span">, "children" | "color" | "role"> {
|
|
3559
|
+
/** Size token or explicit pixel size. Prefer tokens inside primitives. */
|
|
3560
|
+
size?: SpinnerSize | number;
|
|
3561
|
+
/** Semantic color tone. Use className only for local composition overrides. */
|
|
3562
|
+
tone?: SpinnerTone;
|
|
3563
|
+
/** Accessible status label. Omit when the parent already exposes aria-busy. */
|
|
3564
|
+
label?: string;
|
|
3565
|
+
/** Force decorative mode even when a label would otherwise announce status. */
|
|
3566
|
+
decorative?: boolean;
|
|
3567
|
+
/**
|
|
3568
|
+
* @deprecated Spinner is intentionally a single canonical loading indicator.
|
|
3569
|
+
* Legacy variants are accepted for source compatibility and render the same
|
|
3570
|
+
* tokenized spinner.
|
|
3571
|
+
*/
|
|
3572
|
+
variant?: SpinnerVariant;
|
|
3573
|
+
}
|
|
3574
|
+
declare function Spinner({ className, style, size, tone, label, decorative, variant, "aria-label": ariaLabel, ...props }: SpinnerProps): react_jsx_runtime.JSX.Element;
|
|
3575
|
+
|
|
3576
|
+
type SplitButtonType = "default" | "secondary";
|
|
3577
|
+
type SplitButtonMenuAlignment = "bottom-start" | "bottom-end";
|
|
3578
|
+
type ButtonSizeProp = Extract<ButtonProps["size"], string>;
|
|
3579
|
+
type SplitButtonNativeSize = Exclude<ButtonSizeProp, "icon">;
|
|
3580
|
+
type SplitButtonSize = SplitButtonNativeSize | "small" | "medium" | "large";
|
|
3581
|
+
interface SplitButtonPrimaryProps extends Omit<ButtonProps, "children" | "className" | "loading" | "prefix" | "shape" | "size" | "suffix" | "type" | "variant"> {
|
|
3582
|
+
/** Geist-compatible visual type. Intentionally limited to non-destructive variants. */
|
|
3583
|
+
type?: SplitButtonType;
|
|
3584
|
+
/** Native button type. Defaults to `button` to avoid accidental form submit. */
|
|
3585
|
+
htmlType?: ButtonProps["type"];
|
|
3586
|
+
size?: SplitButtonSize;
|
|
3587
|
+
className?: string;
|
|
3588
|
+
loading?: boolean;
|
|
3589
|
+
prefix?: React.ReactNode;
|
|
3590
|
+
}
|
|
3591
|
+
interface SplitButtonMenuContentProps extends Omit<DropdownMenuContentProps, "align" | "side"> {
|
|
3592
|
+
width?: number | string;
|
|
3593
|
+
}
|
|
3594
|
+
interface SplitButtonProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children" | "onChange"> {
|
|
3595
|
+
children: React.ReactNode;
|
|
3596
|
+
buttonProps?: SplitButtonPrimaryProps;
|
|
3597
|
+
disabled?: boolean;
|
|
3598
|
+
menuAlignment?: SplitButtonMenuAlignment;
|
|
3599
|
+
menuButtonLabel: string;
|
|
3600
|
+
menuItems: React.ReactNode;
|
|
3601
|
+
menuProps?: SplitButtonMenuContentProps;
|
|
3602
|
+
}
|
|
3603
|
+
interface SplitButtonMenuItemProps {
|
|
3604
|
+
title: React.ReactNode;
|
|
3605
|
+
description?: React.ReactNode;
|
|
3606
|
+
icon?: React.ReactNode;
|
|
3607
|
+
menuItemProps?: Omit<React.ComponentPropsWithoutRef<typeof DropdownMenuItem>, "children">;
|
|
3608
|
+
}
|
|
3609
|
+
declare function SplitButtonRoot({ children, className, disabled, menuAlignment: alignment, menuButtonLabel, menuItems, menuProps, buttonProps, style, ...props }: SplitButtonProps): react_jsx_runtime.JSX.Element;
|
|
3610
|
+
declare function SplitButtonMenuItem({ title, description, icon, menuItemProps, }: SplitButtonMenuItemProps): react_jsx_runtime.JSX.Element;
|
|
3611
|
+
declare const SplitButton: typeof SplitButtonRoot & {
|
|
3612
|
+
MenuItem: typeof SplitButtonMenuItem;
|
|
3613
|
+
};
|
|
3614
|
+
|
|
3615
|
+
/**
|
|
3616
|
+
* Stack - Vertical layout primitive
|
|
3617
|
+
*
|
|
3618
|
+
* Arranges children in a vertical stack with consistent spacing.
|
|
3619
|
+
*
|
|
3620
|
+
* @see apps/landing/DESIGN.md Section 10.1
|
|
3621
|
+
*/
|
|
3622
|
+
interface StackProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3623
|
+
/** Render as a different element */
|
|
3624
|
+
as?: React.ElementType;
|
|
3625
|
+
/** Gap between children */
|
|
3626
|
+
gap?: SpacingScale;
|
|
3627
|
+
/** Horizontal alignment */
|
|
3628
|
+
align?: "start" | "center" | "end" | "stretch";
|
|
3629
|
+
/** Justify content */
|
|
3630
|
+
justify?: "start" | "center" | "end" | "between" | "around";
|
|
3631
|
+
children?: React.ReactNode;
|
|
3632
|
+
}
|
|
3633
|
+
declare const Stack: {
|
|
3634
|
+
({ as: Component, className, gap, align, justify, children, ref, ...props }: StackProps & {
|
|
3635
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3636
|
+
}): React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
3637
|
+
displayName: string;
|
|
3638
|
+
};
|
|
3639
|
+
|
|
3640
|
+
type DeploymentState = "QUEUED" | "BUILDING" | "READY" | "ERROR" | "CANCELED" | "DELETED";
|
|
3641
|
+
interface StatusDotProps {
|
|
3642
|
+
/** Deployment lifecycle state. */
|
|
3643
|
+
state: DeploymentState;
|
|
3644
|
+
/** Render the sentence-cased state name next to the dot. */
|
|
3645
|
+
label?: boolean;
|
|
3646
|
+
/**
|
|
3647
|
+
* Noun phrase identifying the entity. Default `"This deployment"`. In lists
|
|
3648
|
+
* pass the entity (e.g. `"vercel-site production"`). Don't end with a verb
|
|
3649
|
+
* or punctuation — the title sentence is composed from this + the state.
|
|
3650
|
+
*/
|
|
3651
|
+
titlePrefix?: string;
|
|
3652
|
+
/**
|
|
3653
|
+
* Mark the dot decorative when the surrounding text already names the state.
|
|
3654
|
+
* The dot becomes `aria-hidden` so screen readers don't announce twice.
|
|
3655
|
+
* @default false
|
|
3656
|
+
*/
|
|
3657
|
+
decorative?: boolean;
|
|
3658
|
+
className?: string;
|
|
3659
|
+
}
|
|
3660
|
+
declare const StatusDot: ({ ref, state, label, titlePrefix, decorative, className, }: StatusDotProps & {
|
|
3661
|
+
ref?: Ref<HTMLSpanElement> | undefined;
|
|
3662
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
3663
|
+
|
|
3664
|
+
interface SwitchProps extends Omit<React.ComponentPropsWithoutRef<"div">, "children" | "defaultValue" | "onChange"> {
|
|
3665
|
+
children?: React.ReactNode;
|
|
3666
|
+
defaultValue?: string;
|
|
3667
|
+
disabled?: boolean;
|
|
3668
|
+
name?: string;
|
|
3669
|
+
onValueChange?: (value: string) => void;
|
|
3670
|
+
size?: SwitchSize;
|
|
3671
|
+
value?: string;
|
|
3672
|
+
}
|
|
3673
|
+
interface SwitchControlProps extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, "children" | "onChange"> {
|
|
3674
|
+
checked?: boolean;
|
|
3675
|
+
defaultChecked?: boolean;
|
|
3676
|
+
disabled?: boolean;
|
|
3677
|
+
icon?: React.ReactNode;
|
|
3678
|
+
label?: string;
|
|
3679
|
+
name?: string;
|
|
3680
|
+
onChange?: React.ChangeEventHandler<HTMLInputElement>;
|
|
3681
|
+
size?: SwitchSize;
|
|
3682
|
+
value: string;
|
|
3683
|
+
}
|
|
3684
|
+
declare const Switch: {
|
|
3685
|
+
({ children, name, size, defaultValue, value, disabled, onValueChange, style, className, ref, ...props }: SwitchProps & {
|
|
3686
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3687
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3688
|
+
displayName: string;
|
|
3689
|
+
} & {
|
|
3690
|
+
Control: {
|
|
3691
|
+
({ checked, className, defaultChecked, disabled, icon, label, name, onChange, size, style, value, ref, ...props }: SwitchControlProps & {
|
|
3692
|
+
ref?: React.Ref<HTMLLabelElement> | undefined;
|
|
3693
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3694
|
+
displayName: string;
|
|
3695
|
+
};
|
|
3696
|
+
};
|
|
3697
|
+
|
|
3698
|
+
type TableProps = React.TableHTMLAttributes<HTMLTableElement> & {
|
|
3699
|
+
/** Class applied to the scroll container around the native table. */
|
|
3700
|
+
wrapperClassName?: string;
|
|
3701
|
+
/** Style applied to the scroll container around the native table. */
|
|
3702
|
+
wrapperStyle?: React.CSSProperties;
|
|
3703
|
+
};
|
|
3704
|
+
type TableBodyProps = React.HTMLAttributes<HTMLTableSectionElement> & {
|
|
3705
|
+
/** Alternates row background for scan-heavy datasets. */
|
|
3706
|
+
striped?: boolean;
|
|
3707
|
+
/** Adds row separators inside the body. */
|
|
3708
|
+
bordered?: boolean;
|
|
3709
|
+
/** Adds hover state for rows that open details or respond to click. */
|
|
3710
|
+
interactive?: boolean;
|
|
3711
|
+
/** Marks a truncated/virtualized body without changing native table semantics. */
|
|
3712
|
+
virtualize?: boolean;
|
|
3713
|
+
};
|
|
3714
|
+
type TableHeadProps = React.ThHTMLAttributes<HTMLTableCellElement> & {
|
|
3715
|
+
/** Aligns numeric headings and applies tabular numbers. */
|
|
3716
|
+
numeric?: boolean;
|
|
3717
|
+
};
|
|
3718
|
+
type TableCellProps = React.TdHTMLAttributes<HTMLTableCellElement> & {
|
|
3719
|
+
/** Aligns numeric values and applies tabular numbers. */
|
|
3720
|
+
numeric?: boolean;
|
|
3721
|
+
};
|
|
3722
|
+
type TableComponent = React.ComponentType<TableProps & {
|
|
3723
|
+
ref?: React.Ref<HTMLTableElement> | undefined;
|
|
3724
|
+
}> & {
|
|
3725
|
+
Body: typeof TableBody;
|
|
3726
|
+
Caption: typeof TableCaption;
|
|
3727
|
+
Cell: typeof TableCell;
|
|
3728
|
+
Col: typeof TableCol;
|
|
3729
|
+
Colgroup: typeof TableColgroup;
|
|
3730
|
+
Footer: typeof TableFooter;
|
|
3731
|
+
Head: typeof TableHead;
|
|
3732
|
+
Header: typeof TableHeader;
|
|
3733
|
+
Row: typeof TableRow;
|
|
3734
|
+
};
|
|
3735
|
+
declare const TableColgroup: {
|
|
3736
|
+
({ className, ref, ...props }: React.HTMLAttributes<HTMLTableColElement> & {
|
|
3737
|
+
ref?: React.Ref<HTMLTableColElement> | undefined;
|
|
3738
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3739
|
+
displayName: string;
|
|
3740
|
+
};
|
|
3741
|
+
declare const TableCol: {
|
|
3742
|
+
({ className, ref, ...props }: React.ColHTMLAttributes<HTMLTableColElement> & {
|
|
3743
|
+
ref?: React.Ref<HTMLTableColElement> | undefined;
|
|
3744
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3745
|
+
displayName: string;
|
|
3746
|
+
};
|
|
3747
|
+
declare const TableHeader: {
|
|
3748
|
+
({ className, ref, ...props }: React.HTMLAttributes<HTMLTableSectionElement> & {
|
|
3749
|
+
ref?: React.Ref<HTMLTableSectionElement> | undefined;
|
|
3750
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3751
|
+
displayName: string;
|
|
3752
|
+
};
|
|
3753
|
+
declare const TableBody: {
|
|
3754
|
+
({ className, striped, bordered, interactive, virtualize, ref, ...props }: TableBodyProps & {
|
|
3755
|
+
ref?: React.Ref<HTMLTableSectionElement> | undefined;
|
|
3756
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3757
|
+
displayName: string;
|
|
3758
|
+
};
|
|
3759
|
+
declare const TableFooter: {
|
|
3760
|
+
({ className, ref, ...props }: React.HTMLAttributes<HTMLTableSectionElement> & {
|
|
3761
|
+
ref?: React.Ref<HTMLTableSectionElement> | undefined;
|
|
3762
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3763
|
+
displayName: string;
|
|
3764
|
+
};
|
|
3765
|
+
declare const TableRow: {
|
|
3766
|
+
({ className, ref, ...props }: React.HTMLAttributes<HTMLTableRowElement> & {
|
|
3767
|
+
ref?: React.Ref<HTMLTableRowElement> | undefined;
|
|
3768
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3769
|
+
displayName: string;
|
|
3770
|
+
};
|
|
3771
|
+
declare const TableHead: {
|
|
3772
|
+
({ className, numeric, scope, ref, ...props }: TableHeadProps & {
|
|
3773
|
+
ref?: React.Ref<HTMLTableCellElement> | undefined;
|
|
3774
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3775
|
+
displayName: string;
|
|
3776
|
+
};
|
|
3777
|
+
declare const TableCell: {
|
|
3778
|
+
({ className, numeric, ref, ...props }: TableCellProps & {
|
|
3779
|
+
ref?: React.Ref<HTMLTableCellElement> | undefined;
|
|
3780
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3781
|
+
displayName: string;
|
|
3782
|
+
};
|
|
3783
|
+
declare const TableCaption: {
|
|
3784
|
+
({ className, ref, ...props }: React.HTMLAttributes<HTMLTableCaptionElement> & {
|
|
3785
|
+
ref?: React.Ref<HTMLTableCaptionElement> | undefined;
|
|
3786
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3787
|
+
displayName: string;
|
|
3788
|
+
};
|
|
3789
|
+
declare const Table: TableComponent;
|
|
3790
|
+
|
|
3791
|
+
type TabsVariant = "default" | "button" | "line" | "secondary";
|
|
3792
|
+
type TabsShape = "default" | "pill";
|
|
3793
|
+
type TabsActivationMode = "automatic" | "manual";
|
|
3794
|
+
declare const tabsListVariants: (props?: ({
|
|
3795
|
+
variant?: "button" | "default" | "line" | "secondary" | null | undefined;
|
|
3796
|
+
shape?: "default" | "pill" | null | undefined;
|
|
3797
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
3798
|
+
declare const tabsTriggerVariants: (props?: ({
|
|
3799
|
+
variant?: "button" | "default" | "line" | "secondary" | null | undefined;
|
|
3800
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
3801
|
+
declare const tabsContentVariants: (props?: ({
|
|
3802
|
+
variant?: "default" | null | undefined;
|
|
3803
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
3804
|
+
interface TabsItem {
|
|
3805
|
+
badge?: React.ReactNode;
|
|
3806
|
+
content?: React.ReactNode;
|
|
3807
|
+
disabled?: boolean;
|
|
3808
|
+
icon?: React.ReactNode;
|
|
3809
|
+
title: React.ReactNode;
|
|
3810
|
+
tooltip?: React.ReactNode;
|
|
3811
|
+
value: string;
|
|
3812
|
+
}
|
|
3813
|
+
interface TabsProps extends Omit<React.ComponentPropsWithoutRef<"div">, "children" | "defaultValue" | "onChange"> {
|
|
3814
|
+
activationMode?: TabsActivationMode;
|
|
3815
|
+
defaultValue?: string;
|
|
3816
|
+
disabled?: boolean;
|
|
3817
|
+
listClassName?: string;
|
|
3818
|
+
onValueChange?: (value: string) => void;
|
|
3819
|
+
orientation?: "horizontal" | "vertical";
|
|
3820
|
+
selected?: string;
|
|
3821
|
+
setSelected?: (value: string) => void;
|
|
3822
|
+
shape?: TabsShape;
|
|
3823
|
+
size?: TabsSize;
|
|
3824
|
+
tabs?: readonly TabsItem[];
|
|
3825
|
+
value?: string;
|
|
3826
|
+
variant?: TabsVariant;
|
|
3827
|
+
children?: React.ReactNode;
|
|
3828
|
+
}
|
|
3829
|
+
interface TabsListProps extends React.ComponentPropsWithoutRef<"div">, VariantProps<typeof tabsListVariants> {
|
|
3830
|
+
activateOnFocus?: boolean;
|
|
3831
|
+
loop?: boolean;
|
|
3832
|
+
}
|
|
3833
|
+
interface TabsTriggerProps extends Omit<React.ComponentPropsWithoutRef<"button">, "children"> {
|
|
3834
|
+
badge?: React.ReactNode;
|
|
3835
|
+
icon?: React.ReactNode;
|
|
3836
|
+
value: string;
|
|
3837
|
+
children?: React.ReactNode;
|
|
3838
|
+
}
|
|
3839
|
+
interface TabsContentProps extends React.ComponentPropsWithoutRef<"div">, VariantProps<typeof tabsContentVariants> {
|
|
3840
|
+
forceMount?: true;
|
|
3841
|
+
keepMounted?: boolean;
|
|
3842
|
+
value: string;
|
|
3843
|
+
}
|
|
3844
|
+
declare function Tabs({ "aria-label": ariaLabel, activationMode, className, defaultValue, disabled, listClassName, onValueChange, orientation, selected, setSelected, shape, size, style, tabs, value, variant, children, ...props }: TabsProps): react_jsx_runtime.JSX.Element;
|
|
3845
|
+
declare function TabsList({ activateOnFocus, className, loop, shape, variant, children, ...props }: TabsListProps): react_jsx_runtime.JSX.Element;
|
|
3846
|
+
declare function TabsTrigger({ badge, children, className, disabled, icon, ...props }: TabsTriggerProps): react_jsx_runtime.JSX.Element;
|
|
3847
|
+
declare function TabsContent({ className, forceMount, keepMounted, variant, ...props }: TabsContentProps): react_jsx_runtime.JSX.Element;
|
|
3848
|
+
|
|
3849
|
+
type ThemeSwitcherValue = "system" | "light" | "dark";
|
|
3850
|
+
interface ThemeSwitcherProps extends Omit<React.FieldsetHTMLAttributes<HTMLFieldSetElement>, "defaultValue" | "onChange"> {
|
|
3851
|
+
/** Controlled compatibility value. Prefer the app-level ThemeProvider state. */
|
|
3852
|
+
value?: ThemeSwitcherValue;
|
|
3853
|
+
/** Initial fallback when rendered outside ThemeProvider. */
|
|
3854
|
+
defaultValue?: ThemeSwitcherValue;
|
|
3855
|
+
/** Compatibility callback for tests or migrations. ThemeProvider remains the source of truth. */
|
|
3856
|
+
onChange?: (theme: ThemeSwitcherValue) => void;
|
|
3857
|
+
/** Read-only preview state. Provider `forcedTheme` also disables the control. */
|
|
3858
|
+
disabled?: boolean;
|
|
3859
|
+
/** Compact size for dense chrome. */
|
|
3860
|
+
size?: ThemeSwitcherSize;
|
|
3861
|
+
/** Form control name when participating in a native form. */
|
|
3862
|
+
name?: string;
|
|
3863
|
+
}
|
|
3864
|
+
declare const ThemeSwitcher: {
|
|
3865
|
+
({ value, defaultValue, onChange, disabled, size, name, className, style, ref, ...props }: ThemeSwitcherProps & {
|
|
3866
|
+
ref?: React.Ref<HTMLFieldSetElement> | undefined;
|
|
3867
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3868
|
+
displayName: string;
|
|
3869
|
+
};
|
|
3870
|
+
|
|
3871
|
+
type ThemeToggleValue = "light" | "dark";
|
|
3872
|
+
type NativeButtonProps = Omit<React.ComponentPropsWithoutRef<typeof motion.button>, "children" | "defaultValue" | "onChange" | "value">;
|
|
3873
|
+
interface ThemeToggleProps extends NativeButtonProps {
|
|
3874
|
+
/** Controlled binary theme value. Use `ThemeSwitcher` when `system` is required. */
|
|
3875
|
+
value?: ThemeToggleValue;
|
|
3876
|
+
/** Initial binary theme value for uncontrolled usage. Reads the document class on mount when omitted. */
|
|
3877
|
+
defaultValue?: ThemeToggleValue;
|
|
3878
|
+
/** Fired with the next binary theme value. Integrate with `@nebutra/tokens` or `next-themes`. */
|
|
3879
|
+
onChange?: (value: ThemeToggleValue) => void;
|
|
3880
|
+
/** Compact icon-button size. */
|
|
3881
|
+
size?: ThemeToggleSize;
|
|
3882
|
+
/** Optional user-gesture sound. Disabled by default to avoid unexpected audio in SaaS surfaces. */
|
|
3883
|
+
sound?: boolean;
|
|
3884
|
+
/** Apply `.dark` to `document.documentElement` for standalone demos or non-provider apps. */
|
|
3885
|
+
applyToDocument?: boolean;
|
|
3886
|
+
/** Action labels. `dark` is announced while the control is in light mode, and vice versa. */
|
|
3887
|
+
labels?: Partial<Record<ThemeToggleValue, string>>;
|
|
3888
|
+
}
|
|
3889
|
+
declare const ThemeToggle: {
|
|
3890
|
+
({ value, defaultValue, onChange, size, sound, applyToDocument, labels, className, style, disabled, type, onClick, ref, ...props }: ThemeToggleProps & {
|
|
3891
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
3892
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3893
|
+
displayName: string;
|
|
3894
|
+
};
|
|
3895
|
+
declare const AnimatedThemeToggler: {
|
|
3896
|
+
({ value, defaultValue, onChange, size, sound, applyToDocument, labels, className, style, disabled, type, onClick, ref, ...props }: ThemeToggleProps & {
|
|
3897
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
3898
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3899
|
+
displayName: string;
|
|
3900
|
+
};
|
|
3901
|
+
type AnimatedThemeTogglerProps = ThemeToggleProps;
|
|
3902
|
+
|
|
3903
|
+
type ToastTone = "message" | "success" | "warning" | "error";
|
|
3904
|
+
interface ToastMessage {
|
|
3905
|
+
text: React.ReactNode;
|
|
3906
|
+
preserve?: boolean;
|
|
3907
|
+
action?: React.ReactNode;
|
|
3908
|
+
onAction?: () => void;
|
|
3909
|
+
onUndoAction?: () => void;
|
|
3910
|
+
description?: React.ReactNode;
|
|
3911
|
+
duration?: number;
|
|
3912
|
+
id?: string | number;
|
|
3913
|
+
}
|
|
3914
|
+
interface ToastOptions {
|
|
3915
|
+
preserve?: boolean;
|
|
3916
|
+
description?: React.ReactNode;
|
|
3917
|
+
duration?: number;
|
|
3918
|
+
id?: string | number;
|
|
3919
|
+
}
|
|
3920
|
+
interface UseToastsReturn {
|
|
3921
|
+
message: (message: ToastMessage) => string | number;
|
|
3922
|
+
success: (text: React.ReactNode, options?: ToastOptions) => string | number;
|
|
3923
|
+
warning: (text: React.ReactNode, options?: ToastOptions) => string | number;
|
|
3924
|
+
error: (text: React.ReactNode, options?: ToastOptions) => string | number;
|
|
3925
|
+
dismiss: (id?: string | number) => string | number;
|
|
3926
|
+
}
|
|
3927
|
+
declare function Toaster({ position, richColors, closeButton, theme, visibleToasts, gap, offset, mobileOffset, containerAriaLabel, toastOptions, style, ...props }?: ToasterProps): react_jsx_runtime.JSX.Element;
|
|
3928
|
+
declare function useToasts(): UseToastsReturn;
|
|
3929
|
+
|
|
3930
|
+
type ToggleDirection = "label-first" | "switch-first" | "switch-last";
|
|
3931
|
+
type ToggleLabelCasing = "title" | "normal";
|
|
3932
|
+
type ToggleChangeHandler = (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
3933
|
+
interface ToggleProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "children" | "color" | "onChange" | "size" | "type"> {
|
|
3934
|
+
children?: React.ReactNode;
|
|
3935
|
+
className?: string;
|
|
3936
|
+
color?: ToggleColor;
|
|
3937
|
+
direction?: ToggleDirection;
|
|
3938
|
+
icon?: {
|
|
3939
|
+
checked?: React.ReactNode;
|
|
3940
|
+
unchecked?: React.ReactNode;
|
|
3941
|
+
};
|
|
3942
|
+
labelCasing?: ToggleLabelCasing;
|
|
3943
|
+
onChange?: ToggleChangeHandler;
|
|
3944
|
+
onCheckedChange?: ToggleChangeHandler;
|
|
3945
|
+
size?: ToggleSize;
|
|
3946
|
+
}
|
|
3947
|
+
declare const Toggle: {
|
|
3948
|
+
({ "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, checked: checkedProp, children, className, color, defaultChecked, direction, disabled, icon, id, labelCasing, onChange, onCheckedChange, size, style, ref, ...inputProps }: ToggleProps & {
|
|
3949
|
+
ref?: React.Ref<HTMLInputElement> | undefined;
|
|
3950
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3951
|
+
displayName: string;
|
|
3952
|
+
};
|
|
3953
|
+
|
|
3954
|
+
declare const toggleGroupVariants: (props?: ({
|
|
3955
|
+
variant?: "outline" | "default" | null | undefined;
|
|
3956
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
3957
|
+
declare const toggleGroupItemVariants: (props?: ({
|
|
3958
|
+
variant?: "outline" | "default" | null | undefined;
|
|
3959
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
3960
|
+
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
3961
|
+
|
|
3962
|
+
type ToggleGroupType = "single" | "multiple";
|
|
3963
|
+
type ToggleGroupValue = string | string[];
|
|
3964
|
+
interface ToggleGroupProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof toggleGroupVariants>, VariantProps<typeof toggleGroupItemVariants> {
|
|
3965
|
+
type?: ToggleGroupType;
|
|
3966
|
+
value?: ToggleGroupValue;
|
|
3967
|
+
defaultValue?: ToggleGroupValue;
|
|
3968
|
+
onValueChange?: (value: ToggleGroupValue) => void;
|
|
3969
|
+
disabled?: boolean;
|
|
3970
|
+
}
|
|
3971
|
+
declare const ToggleGroup: {
|
|
3972
|
+
({ className, variant, size, type, value: controlledValue, defaultValue, onValueChange, disabled, children, ref, ...props }: ToggleGroupProps & {
|
|
3973
|
+
ref?: React.Ref<HTMLDivElement> | undefined;
|
|
3974
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3975
|
+
displayName: string;
|
|
3976
|
+
};
|
|
3977
|
+
interface ToggleGroupItemProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "value" | "type">, VariantProps<typeof toggleGroupItemVariants> {
|
|
3978
|
+
value: string;
|
|
3979
|
+
}
|
|
3980
|
+
declare const ToggleGroupItem: {
|
|
3981
|
+
({ className, variant, size, value, children, ref, ...props }: ToggleGroupItemProps & {
|
|
3982
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
3983
|
+
}): react_jsx_runtime.JSX.Element;
|
|
3984
|
+
displayName: string;
|
|
3985
|
+
};
|
|
3986
|
+
|
|
3987
|
+
declare const TooltipProvider: ({ children, delayDuration, }: {
|
|
3988
|
+
children: React.ReactNode;
|
|
3989
|
+
delayDuration?: number;
|
|
3990
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
3991
|
+
declare const Tooltip: ({ delayDuration, children, ...props }: React.ComponentPropsWithoutRef<typeof Tooltip$1.Root> & {
|
|
3992
|
+
delayDuration?: number;
|
|
3993
|
+
children?: React.ReactNode;
|
|
3994
|
+
}) => react_jsx_runtime.JSX.Element;
|
|
3995
|
+
declare const TooltipTrigger: {
|
|
3996
|
+
({ asChild, children, ref, ...props }: React.ComponentPropsWithoutRef<typeof Tooltip$1.Trigger> & {
|
|
3997
|
+
asChild?: boolean;
|
|
3998
|
+
} & {
|
|
3999
|
+
ref?: React.Ref<HTMLButtonElement> | undefined;
|
|
4000
|
+
}): react_jsx_runtime.JSX.Element;
|
|
4001
|
+
displayName: string;
|
|
4002
|
+
};
|
|
4003
|
+
declare const TooltipContent: {
|
|
4004
|
+
({ className, style, side, align, sideOffset, alignOffset, ref, ...props }: React.ComponentPropsWithoutRef<typeof Tooltip$1.Popup> & {
|
|
4005
|
+
side?: "top" | "right" | "bottom" | "left";
|
|
4006
|
+
align?: "start" | "center" | "end";
|
|
4007
|
+
sideOffset?: number;
|
|
4008
|
+
alignOffset?: number;
|
|
4009
|
+
} & {
|
|
4010
|
+
ref?: React.Ref<React.ElementRef<typeof Tooltip$1.Popup>> | undefined;
|
|
4011
|
+
}): react_jsx_runtime.JSX.Element;
|
|
4012
|
+
displayName: string;
|
|
4013
|
+
};
|
|
4014
|
+
|
|
4015
|
+
type TreeProviderProps = {
|
|
4016
|
+
children: ReactNode;
|
|
4017
|
+
defaultExpandedIds?: string[];
|
|
4018
|
+
showLines?: boolean;
|
|
4019
|
+
showIcons?: boolean;
|
|
4020
|
+
selectable?: boolean;
|
|
4021
|
+
multiSelect?: boolean;
|
|
4022
|
+
selectedIds?: string[];
|
|
4023
|
+
onSelectionChange?: (selectedIds: string[]) => void;
|
|
4024
|
+
indent?: number;
|
|
4025
|
+
animateExpand?: boolean;
|
|
4026
|
+
className?: string;
|
|
4027
|
+
};
|
|
4028
|
+
declare const TreeProvider: ({ children, defaultExpandedIds, showLines, showIcons, selectable, multiSelect, selectedIds, onSelectionChange, indent, animateExpand, className, }: TreeProviderProps) => react_jsx_runtime.JSX.Element;
|
|
4029
|
+
type TreeViewProps = HTMLAttributes<HTMLDivElement>;
|
|
4030
|
+
declare const TreeView: ({ className, children, ...props }: TreeViewProps) => react_jsx_runtime.JSX.Element;
|
|
4031
|
+
type TreeNodeProps = HTMLAttributes<HTMLDivElement> & {
|
|
4032
|
+
nodeId?: string;
|
|
4033
|
+
level?: number;
|
|
4034
|
+
isLast?: boolean;
|
|
4035
|
+
parentPath?: boolean[];
|
|
4036
|
+
children?: ReactNode;
|
|
4037
|
+
};
|
|
4038
|
+
declare const TreeNode: ({ nodeId: providedNodeId, level, isLast, parentPath, children, className, onClick: _onClick, ...props }: TreeNodeProps) => react_jsx_runtime.JSX.Element;
|
|
4039
|
+
type TreeNodeTriggerProps = ComponentProps<typeof motion.div>;
|
|
4040
|
+
declare const TreeNodeTrigger: ({ children, className, onClick, ...props }: TreeNodeTriggerProps) => react_jsx_runtime.JSX.Element;
|
|
4041
|
+
declare const TreeLines: () => react_jsx_runtime.JSX.Element | null;
|
|
4042
|
+
type TreeNodeContentProps = ComponentProps<typeof motion.div> & {
|
|
4043
|
+
hasChildren?: boolean;
|
|
4044
|
+
};
|
|
4045
|
+
declare const TreeNodeContent: ({ children, hasChildren, className, ...props }: TreeNodeContentProps) => react_jsx_runtime.JSX.Element;
|
|
4046
|
+
type TreeExpanderProps = ComponentProps<typeof motion.div> & {
|
|
4047
|
+
hasChildren?: boolean;
|
|
4048
|
+
};
|
|
4049
|
+
declare const TreeExpander: ({ hasChildren, className, onClick, ...props }: TreeExpanderProps) => react_jsx_runtime.JSX.Element;
|
|
4050
|
+
type TreeIconProps = ComponentProps<typeof motion.div> & {
|
|
4051
|
+
icon?: ReactNode;
|
|
4052
|
+
hasChildren?: boolean;
|
|
4053
|
+
};
|
|
4054
|
+
declare const TreeIcon: ({ icon, hasChildren, className, ...props }: TreeIconProps) => react_jsx_runtime.JSX.Element | null;
|
|
4055
|
+
type TreeLabelProps = HTMLAttributes<HTMLSpanElement>;
|
|
4056
|
+
declare const TreeLabel: ({ className, ...props }: TreeLabelProps) => react_jsx_runtime.JSX.Element;
|
|
4057
|
+
|
|
4058
|
+
export { AnimateInGroup as $, type AvatarProps as A, type BadgeProps as B, type CommandItemProps as C, type AlertDescriptionProps as D, AlertDialog as E, AlertDialogAction as F, AlertDialogCancel as G, AlertDialogContent as H, AlertDialogDescription as I, AlertDialogFooter as J, AlertDialogHeader as K, AlertDialogOverlay as L, AlertDialogPortal as M, AlertDialogTitle as N, AlertDialogTrigger as O, AlertIcon as P, type AlertIconProps as Q, type AlertProps as R, type SpacingScale as S, type TextareaProps as T, type AlertSize as U, AlertTitle as V, type AlertTitleProps as W, AlertToolbar as X, type AlertToolbarProps as Y, type AlertVariant as Z, AnimateIn as _, Button as a, ComboboxGroupSub as a$, type AnimateInGroupProps as a0, type AnimateInProps as a1, AnimatedThemeToggler as a2, type AnimatedThemeTogglerProps as a3, AspectRatio as a4, type AspectRatioProps as a5, Avatar as a6, AvatarFallback as a7, type AvatarFallbackProps as a8, AvatarGroup as a9, CardFooter as aA, CardHeader as aB, CardTitle as aC, Checkbox as aD, CheckboxGroup as aE, type CheckboxGroupProps as aF, type CheckboxProps as aG, CodeBlock as aH, type CodeBlockFile as aI, type CodeBlockFilesProps as aJ, CodeBlockLanguageIcon as aK, type CodeBlockLanguageIconComponent as aL, type CodeBlockLanguageIconElement as aM, type CodeBlockLanguageIconMap as aN, type CodeBlockLanguageIconProps as aO, type CodeBlockLanguageIconValue as aP, type CodeBlockProps as aQ, type CodeBlockSingleProps as aR, type CodeBlockSwitcher as aS, type CodeBlockSwitcherOption as aT, Collapse as aU, CollapseGroup as aV, type CollapseGroupProps as aW, type CollapseProps as aX, type CollapseSize as aY, Combobox as aZ, ComboboxEmpty as a_, type AvatarGroupItem as aa, type AvatarGroupProps as ab, AvatarImage as ac, type AvatarSize as ad, Badge as ae, Breadcrumb as af, BreadcrumbEllipsis as ag, type BreadcrumbEllipsisProps as ah, BreadcrumbItem as ai, type BreadcrumbItemProps as aj, BreadcrumbLink as ak, type BreadcrumbLinkProps as al, BreadcrumbList as am, type BreadcrumbListProps as an, BreadcrumbPage as ao, type BreadcrumbPageProps as ap, type BreadcrumbProps as aq, BreadcrumbSeparator as ar, type BreadcrumbSeparatorProps as as, ButtonLink as at, type ButtonLinkProps as au, type ButtonProps as av, Card as aw, CardContent as ax, CardDescription as ay, type CardDescriptionProps as az, type CommandEmptyProps as b, type DrawerDirection as b$, ComboboxInput as b0, ComboboxList as b1, type ComboboxOption as b2, ComboboxOptionItem as b3, type ComboboxProps as b4, ComboboxRoot as b5, ComboboxSeparator as b6, CommandDialog as b7, type CommandDialogProps as b8, type CommandProps as b9, CopyCodeButton as bA, CopyIdButton as bB, CopyLinkButton as bC, CopyableField as bD, type CopyableFieldProps as bE, type DeploymentState as bF, Description as bG, type DescriptionProps as bH, Dialog as bI, DialogClose as bJ, DialogContent as bK, DialogDescription as bL, DialogFooter as bM, DialogHeader as bN, DialogOverlay as bO, DialogPortal as bP, DialogTitle as bQ, DialogTrigger as bR, Drawer as bS, DrawerBody as bT, type DrawerBodyProps as bU, DrawerClose as bV, type DrawerCloseProps as bW, DrawerContent as bX, type DrawerContentProps as bY, DrawerDescription as bZ, type DrawerDescriptionProps as b_, CommandShortcut as ba, ContextMenu as bb, ContextMenuCheckboxItem as bc, type ContextMenuCheckboxItemProps as bd, ContextMenuContent as be, type ContextMenuContentProps as bf, ContextMenuGroup as bg, ContextMenuItem as bh, type ContextMenuItemProps as bi, ContextMenuLabel as bj, type ContextMenuLabelProps as bk, ContextMenuRadioGroup as bl, type ContextMenuRadioGroupProps as bm, ContextMenuRadioItem as bn, type ContextMenuRadioItemProps as bo, ContextMenuRoot as bp, ContextMenuSeparator as bq, type ContextMenuSeparatorProps as br, ContextMenuShortcut as bs, ContextMenuSub as bt, ContextMenuSubContent as bu, ContextMenuSubTrigger as bv, type ContextMenuSubTriggerProps as bw, ContextMenuTrigger as bx, CopyButton as by, type CopyButtonProps as bz, CommandEmpty as c, Input as c$, DrawerFooter as c0, type DrawerFooterProps as c1, DrawerHeader as c2, type DrawerHeaderProps as c3, type DrawerHeight as c4, DrawerOverlay as c5, type DrawerOverlayProps as c6, DrawerPortal as c7, type DrawerPortalProps as c8, type DrawerProps as c9, type EmptyStateSize as cA, type EmptyStateVariant as cB, ErrorSurface as cC, ErrorMessage as cD, type ErrorMessageProps as cE, type ErrorObject as cF, type ErrorProps as cG, type ErrorRecoveryAction as cH, type ErrorSize as cI, Field as cJ, type FieldProps as cK, Form as cL, FormControl as cM, FormDescription as cN, FormField as cO, FormItem as cP, FormLabel as cQ, FormMessage as cR, Gauge as cS, type GaugeArcPriority as cT, type GaugeColorMap as cU, type GaugeColorStop as cV, type GaugeProps as cW, type GaugeSize as cX, HoverCard as cY, HoverCardContent as cZ, HoverCardTrigger as c_, DrawerTitle as ca, type DrawerTitleProps as cb, DrawerTrigger as cc, type DrawerTriggerProps as cd, DropdownMenu as ce, DropdownMenuCheckboxItem as cf, DropdownMenuContent as cg, type DropdownMenuContentProps as ch, DropdownMenuGroup as ci, DropdownMenuItem as cj, DropdownMenuLabel as ck, DropdownMenuPortal as cl, DropdownMenuRadioGroup as cm, DropdownMenuRadioItem as cn, DropdownMenuSeparator as co, DropdownMenuShortcut as cp, DropdownMenuSub as cq, DropdownMenuSubContent as cr, DropdownMenuSubTrigger as cs, DropdownMenuTrigger as ct, EmptyState as cu, type EmptyStateAlign as cv, EmptyStateIcon as cw, type EmptyStateIconProps as cx, EmptyStateRoot as cy, type EmptyStateRootProps as cz, type CommandGroupProps as d, MultiSelectTrigger as d$, InputOTP as d0, InputOTPGroup as d1, type InputOTPGroupProps as d2, type InputOTPProps as d3, InputOTPSeparator as d4, type InputOTPSeparatorProps as d5, InputOTPSlot as d6, type InputOTPSlotProps as d7, type InputProps as d8, Kbd as d9, MenubarItem as dA, MenubarLabel as dB, MenubarMenu as dC, MenubarPortal as dD, MenubarRadioGroup as dE, MenubarRadioItem as dF, MenubarSeparator as dG, MenubarShortcut as dH, MenubarSub as dI, MenubarSubContent as dJ, MenubarSubTrigger as dK, MenubarTrigger as dL, Modal as dM, type ModalActionProps as dN, type ModalActionsProps as dO, type ModalBodyProps as dP, type ModalHeaderProps as dQ, type ModalInsetProps as dR, type ModalRootProps as dS, type ModalSubtitleProps as dT, type ModalTitleProps as dU, MultiSelectContent as dV, type MultiSelectContentProps as dW, MultiSelectRoot as dX, type MultiSelectRootProps as dY, MultiSelectRow as dZ, type MultiSelectRowProps as d_, type KbdProps as da, Label as db, type LabelProps as dc, type LegacyGaugeArcPriority as dd, LoadingDots as de, type LoadingDotsProps as df, Menu as dg, MenuButton as dh, type MenuButtonProps as di, MenuContainer as dj, type MenuContainerProps as dk, MenuItem as dl, MenuItemLocked as dm, type MenuItemLockedProps as dn, type MenuItemProps as dp, MenuLink as dq, type MenuLinkProps as dr, type MenuPosition as ds, type MenuProps as dt, MenuSection as du, type MenuSectionProps as dv, Menubar as dw, MenubarCheckboxItem as dx, MenubarContent as dy, MenubarGroup as dz, CommandGroup as e, type SheetHeaderProps as e$, type MultiSelectTriggerProps as e0, NavigationMenu as e1, NavigationMenuContent as e2, NavigationMenuIndicator as e3, NavigationMenuItem as e4, NavigationMenuLink as e5, NavigationMenuList as e6, NavigationMenuTrigger as e7, NavigationMenuViewport as e8, Note as e9, type ScrollerEdgeAffordance as eA, type ScrollerOverflow as eB, type ScrollerProps as eC, type ScrollerSize as eD, Select as eE, SelectContent as eF, SelectGroup as eG, SelectItem as eH, SelectLabel as eI, SelectScrollDownButton as eJ, SelectScrollUpButton as eK, SelectSeparator as eL, SelectTrigger as eM, SelectValue as eN, Separator as eO, Sheet as eP, SheetBody as eQ, type SheetBodyProps as eR, SheetClose as eS, type SheetCloseProps as eT, SheetContent as eU, type SheetContentProps as eV, SheetDescription as eW, type SheetDescriptionProps as eX, SheetFooter as eY, type SheetFooterProps as eZ, SheetHeader as e_, type NoteBaseProps as ea, type NoteProps as eb, Pagination as ec, type PaginationDestination as ed, type PaginationProps as ee, Popover as ef, PopoverAnchor as eg, PopoverContent as eh, type PopoverContentProps as ei, PopoverPositioner as ej, PopoverTrigger as ek, Progress as el, type ProgressColorMap as em, type ProgressProps as en, type ProgressStop as eo, ProjectBanner as ep, type ProjectBannerCallToAction as eq, type ProjectBannerProps as er, type ProjectBannerVariant as es, RadioGroup as et, RadioGroupItem as eu, ResizableHandle as ev, ResizablePanel as ew, ResizablePanelGroup as ex, Scroller as ey, type ScrollerButtonAxis as ez, type CommandInputProps as f, type ThemeToggleProps as f$, SheetOverlay as f0, type SheetOverlayProps as f1, SheetPortal as f2, type SheetPortalProps as f3, type SheetProps as f4, SheetTitle as f5, type SheetTitleProps as f6, SheetTrigger as f7, type SheetTriggerProps as f8, ShowMore as f9, Table as fA, TableBody as fB, type TableBodyProps as fC, TableCaption as fD, TableCell as fE, type TableCellProps as fF, TableCol as fG, TableColgroup as fH, TableFooter as fI, TableHead as fJ, type TableHeadProps as fK, TableHeader as fL, type TableProps as fM, TableRow as fN, Tabs as fO, TabsContent as fP, type TabsContentProps as fQ, TabsList as fR, type TabsListProps as fS, type TabsProps as fT, TabsTrigger as fU, type TabsTriggerProps as fV, Textarea as fW, ThemeSwitcher as fX, type ThemeSwitcherProps as fY, type ThemeSwitcherValue as fZ, ThemeToggle as f_, type ShowMoreProps as fa, Skeleton as fb, SkeletonAvatar as fc, SkeletonCard as fd, type SkeletonProps as fe, SkeletonText as ff, Slider as fg, type SliderProps as fh, Spinner as fi, type SpinnerProps as fj, type SpinnerVariant as fk, SplitButton as fl, type SplitButtonMenuAlignment as fm, type SplitButtonMenuContentProps as fn, SplitButtonMenuItem as fo, type SplitButtonMenuItemProps as fp, type SplitButtonPrimaryProps as fq, type SplitButtonProps as fr, type SplitButtonSize as fs, type SplitButtonType as ft, Stack as fu, type StackProps as fv, StatusDot as fw, type StatusDotProps as fx, Switch as fy, type SwitchProps as fz, CommandInput as g, type ThemeToggleValue as g0, type ToastMessage as g1, type ToastOptions as g2, type ToastTone as g3, Toaster as g4, Toggle as g5, type ToggleChangeHandler as g6, type ToggleDirection as g7, ToggleGroup as g8, ToggleGroupItem as g9, type UseCopyToClipboardReturn as gA, type UseToastsReturn as gB, alertVariants as gC, badgeVariants as gD, buttonVariants as gE, containerWidths as gF, flexLayouts as gG, gridLayouts as gH, labelVariants as gI, navigationMenuTriggerStyle as gJ, normalizeCodeBlockLanguage as gK, progressIndicatorVariants as gL, progressVariants as gM, resolveCodeBlockLanguageIcon as gN, tabsContentVariants as gO, tabsListVariants as gP, tabsTriggerVariants as gQ, toggleGroupItemVariants as gR, toggleGroupVariants as gS, useCopyToClipboard as gT, useFormField as gU, useToasts as gV, zIndex as gW, type ToggleGroupItemProps as ga, type ToggleGroupProps as gb, type ToggleLabelCasing as gc, type ToggleProps as gd, Tooltip as ge, TooltipContent as gf, TooltipProvider as gg, TooltipTrigger as gh, TreeExpander as gi, type TreeExpanderProps as gj, TreeIcon as gk, type TreeIconProps as gl, TreeLabel as gm, type TreeLabelProps as gn, TreeLines as go, TreeNode as gp, TreeNodeContent as gq, type TreeNodeContentProps as gr, type TreeNodeProps as gs, TreeNodeTrigger as gt, type TreeNodeTriggerProps as gu, TreeProvider as gv, type TreeProviderProps as gw, TreeView as gx, type TreeViewProps as gy, type UseCopyToClipboardOptions as gz, CommandItem as h, type CommandListProps as i, CommandList as j, type CommandResultsProps as k, CommandResults as l, type CommandSeparatorProps as m, CommandSeparator as n, type CommandShortcutProps as o, Command as p, Accordion as q, AccordionContent as r, AccordionItem as s, type AccordionSize as t, AccordionTrigger as u, Alert as v, type AlertAppearance as w, AlertContent as x, type AlertContentProps as y, AlertDescription as z };
|