@nebutra/ui 0.2.1 → 0.2.3

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