@classytic/fluid 0.2.4 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +149 -62
  3. package/dist/api-pagination-CJ0vR_w6.d.mts +34 -0
  4. package/dist/api-pagination-DBTE0yk4.mjs +190 -0
  5. package/dist/chunk-DQk6qfdC.mjs +18 -0
  6. package/dist/client/calendar.d.mts +105 -0
  7. package/dist/client/calendar.mjs +202 -0
  8. package/dist/client/core.d.mts +1614 -0
  9. package/dist/client/core.mjs +2779 -0
  10. package/dist/client/error.d.mts +125 -0
  11. package/dist/client/error.mjs +166 -0
  12. package/dist/client/hooks.d.mts +162 -0
  13. package/dist/client/hooks.mjs +447 -0
  14. package/dist/client/table.d.mts +84 -0
  15. package/dist/client/table.mjs +373 -0
  16. package/dist/client/theme.d.mts +6 -0
  17. package/dist/client/theme.mjs +65 -0
  18. package/dist/command.d.mts +134 -0
  19. package/dist/command.mjs +132 -0
  20. package/dist/compact.d.mts +359 -0
  21. package/dist/compact.mjs +892 -0
  22. package/dist/dashboard.d.mts +778 -0
  23. package/dist/dashboard.mjs +1617 -0
  24. package/dist/filter-utils-DqMmy_v-.mjs +72 -0
  25. package/dist/filter-utils-IZ0GtuPo.d.mts +40 -0
  26. package/dist/forms.d.mts +1549 -0
  27. package/dist/forms.mjs +3740 -0
  28. package/dist/index.d.mts +296 -0
  29. package/dist/index.mjs +432 -0
  30. package/dist/layouts.d.mts +215 -0
  31. package/dist/layouts.mjs +460 -0
  32. package/dist/search-context-DR7DBs7S.mjs +19 -0
  33. package/dist/search.d.mts +254 -0
  34. package/dist/search.mjs +523 -0
  35. package/dist/sheet-wrapper-CWNCvYMD.mjs +211 -0
  36. package/dist/use-base-search-BGgWnWaF.d.mts +35 -0
  37. package/dist/use-debounce-xmZucz5e.mjs +53 -0
  38. package/dist/use-keyboard-shortcut-Bl6YM5Q7.mjs +82 -0
  39. package/dist/use-keyboard-shortcut-_mRCh3QO.d.mts +24 -0
  40. package/dist/use-media-query-BnVNIKT4.mjs +17 -0
  41. package/dist/use-mobile-BX3SQVo2.mjs +20 -0
  42. package/dist/use-scroll-detection-CsgsQYvy.mjs +43 -0
  43. package/dist/utils-CDue7cEt.d.mts +6 -0
  44. package/dist/utils-DQ5SCVoW.mjs +10 -0
  45. package/package.json +85 -45
  46. package/styles.css +2 -2
  47. package/dist/chunk-GUHK2DTW.js +0 -15
  48. package/dist/chunk-GUHK2DTW.js.map +0 -1
  49. package/dist/chunk-H3NFL3GJ.js +0 -57
  50. package/dist/chunk-H3NFL3GJ.js.map +0 -1
  51. package/dist/chunk-J2YRTQE4.js +0 -293
  52. package/dist/chunk-J2YRTQE4.js.map +0 -1
  53. package/dist/compact.d.ts +0 -217
  54. package/dist/compact.js +0 -986
  55. package/dist/compact.js.map +0 -1
  56. package/dist/dashboard.d.ts +0 -387
  57. package/dist/dashboard.js +0 -1032
  58. package/dist/dashboard.js.map +0 -1
  59. package/dist/index.d.ts +0 -2140
  60. package/dist/index.js +0 -6422
  61. package/dist/index.js.map +0 -1
  62. package/dist/layout.d.ts +0 -25
  63. package/dist/layout.js +0 -4
  64. package/dist/layout.js.map +0 -1
  65. package/dist/search.d.ts +0 -172
  66. package/dist/search.js +0 -341
  67. package/dist/search.js.map +0 -1
  68. package/dist/use-base-search-AS5Z3SAy.d.ts +0 -64
  69. package/dist/utils-Cbsgs0XP.d.ts +0 -5
@@ -0,0 +1,1614 @@
1
+ import { n as ApiPaginationData, r as ApiPaginationProps, t as ApiPagination } from "../api-pagination-CJ0vR_w6.mjs";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
+ import * as react from "react";
4
+ import { ComponentType, ElementType, HTMLAttributes, ReactNode, RefObject } from "react";
5
+ import { LucideIcon, LucideProps } from "lucide-react";
6
+ import { VariantProps } from "class-variance-authority";
7
+ import * as class_variance_authority_types0 from "class-variance-authority/types";
8
+
9
+ //#region src/components/accordion-wrapper.d.ts
10
+ interface AccordionSectionProps {
11
+ title: string;
12
+ icon?: ReactNode;
13
+ children: ReactNode;
14
+ defaultOpen?: boolean;
15
+ className?: string;
16
+ badge?: ReactNode;
17
+ }
18
+ /**
19
+ * AccordionSection - Single collapsible section with smooth animation
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * <AccordionSection title="Settings" icon={<Settings className="h-4 w-4" />}>
24
+ * <div>Content here</div>
25
+ * </AccordionSection>
26
+ * ```
27
+ */
28
+ declare const AccordionSection: react.NamedExoticComponent<AccordionSectionProps>;
29
+ interface FaqItem {
30
+ id: string;
31
+ question: string;
32
+ answer: ReactNode;
33
+ }
34
+ interface FaqAccordionProps {
35
+ items: FaqItem[];
36
+ defaultOpen?: string;
37
+ className?: string;
38
+ /** Allow multiple items to be open at once */
39
+ multiple?: boolean;
40
+ }
41
+ /**
42
+ * FaqAccordion - FAQ-style accordion where only one item can be open by default
43
+ *
44
+ * @example
45
+ * ```tsx
46
+ * <FaqAccordion
47
+ * items={[
48
+ * { id: "1", question: "What is this?", answer: "A FAQ accordion" },
49
+ * { id: "2", question: "How does it work?", answer: "Click to expand" },
50
+ * ]}
51
+ * />
52
+ * ```
53
+ */
54
+ declare const FaqAccordion: react.NamedExoticComponent<FaqAccordionProps>;
55
+ //#endregion
56
+ //#region src/components/card-wrapper.d.ts
57
+ declare const CARD_VARIANTS: {
58
+ readonly default: "";
59
+ readonly outline: "border-2";
60
+ readonly ghost: "border-0 shadow-none bg-transparent";
61
+ readonly elevated: "shadow-lg border-0";
62
+ readonly primary: "border-primary/20 bg-primary/5";
63
+ readonly secondary: "border-secondary/20 bg-secondary/5";
64
+ readonly destructive: "border-destructive/20 bg-destructive/5";
65
+ readonly success: "border-green-500/20 bg-green-500/5";
66
+ readonly warning: "border-yellow-500/20 bg-yellow-500/5";
67
+ };
68
+ declare const CARD_SIZES: {
69
+ readonly sm: "p-3";
70
+ readonly default: "p-6";
71
+ readonly lg: "p-8";
72
+ readonly xl: "p-10";
73
+ };
74
+ interface CardWrapperProps {
75
+ title?: ReactNode;
76
+ description?: ReactNode;
77
+ children?: ReactNode;
78
+ footer?: ReactNode;
79
+ className?: string;
80
+ headerClassName?: string;
81
+ contentClassName?: string;
82
+ footerClassName?: string;
83
+ variant?: keyof typeof CARD_VARIANTS;
84
+ size?: keyof typeof CARD_SIZES;
85
+ hideHeader?: boolean;
86
+ }
87
+ declare function CardWrapper({
88
+ title,
89
+ description,
90
+ children,
91
+ footer,
92
+ className,
93
+ headerClassName,
94
+ contentClassName,
95
+ footerClassName,
96
+ variant,
97
+ size,
98
+ hideHeader,
99
+ ...props
100
+ }: CardWrapperProps): react_jsx_runtime0.JSX.Element;
101
+ interface DataCardProps extends Omit<CardWrapperProps, "children"> {
102
+ /** Each item's `color` should be a complete Tailwind class (e.g. "text-green-600") */
103
+ data: Array<{
104
+ label: string;
105
+ value: ReactNode;
106
+ color?: string;
107
+ }>;
108
+ /** Number of columns in the data grid. Default: 3 (2 on mobile) */
109
+ cols?: 1 | 2 | 3 | 4;
110
+ }
111
+ declare function DataCard({
112
+ title,
113
+ data,
114
+ cols,
115
+ className,
116
+ ...props
117
+ }: DataCardProps): react_jsx_runtime0.JSX.Element;
118
+ interface LoadingCardProps extends Omit<CardWrapperProps, "children"> {}
119
+ declare function LoadingCard({
120
+ title,
121
+ description,
122
+ className,
123
+ ...props
124
+ }: LoadingCardProps): react_jsx_runtime0.JSX.Element;
125
+ interface StatsCardProps extends Omit<CardWrapperProps, "children" | "variant"> {
126
+ value: ReactNode;
127
+ icon?: ReactNode;
128
+ trend?: {
129
+ type: "up" | "down" | "neutral";
130
+ value: string;
131
+ };
132
+ /** Visual variant for the card and icon styling */
133
+ statsVariant?: "default" | "success" | "warning" | "danger" | "info";
134
+ /** Additional class for the icon wrapper */
135
+ iconClassName?: string;
136
+ }
137
+ declare function StatsCard({
138
+ title,
139
+ value,
140
+ description,
141
+ icon,
142
+ trend,
143
+ className,
144
+ statsVariant,
145
+ iconClassName,
146
+ ...props
147
+ }: StatsCardProps): react_jsx_runtime0.JSX.Element;
148
+ interface DragHandleProps extends HTMLAttributes<HTMLDivElement> {
149
+ icon?: ReactNode;
150
+ }
151
+ interface DraggableCardProps extends Omit<CardWrapperProps, "children"> {
152
+ subtitle?: ReactNode;
153
+ badges?: ReactNode;
154
+ actions?: ReactNode;
155
+ details?: ReactNode;
156
+ dragHandleProps?: DragHandleProps;
157
+ isDragging?: boolean;
158
+ isHidden?: boolean;
159
+ children?: ReactNode;
160
+ }
161
+ declare function DraggableCard({
162
+ title,
163
+ subtitle,
164
+ badges,
165
+ actions,
166
+ details,
167
+ dragHandleProps,
168
+ className,
169
+ isDragging,
170
+ isHidden,
171
+ children,
172
+ ...props
173
+ }: DraggableCardProps): react_jsx_runtime0.JSX.Element;
174
+ //#endregion
175
+ //#region src/components/client-submit-button.d.ts
176
+ interface ClientSubmitButtonProps {
177
+ children: ReactNode;
178
+ disabled?: boolean;
179
+ loading?: boolean;
180
+ loadingText?: string;
181
+ className?: string;
182
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link";
183
+ size?: "default" | "sm" | "lg" | "icon";
184
+ form?: string;
185
+ }
186
+ declare function ClientSubmitButton({
187
+ children,
188
+ disabled,
189
+ loading,
190
+ loadingText,
191
+ className,
192
+ variant,
193
+ size,
194
+ form,
195
+ ...props
196
+ }: ClientSubmitButtonProps): react_jsx_runtime0.JSX.Element;
197
+ //#endregion
198
+ //#region src/components/collapsible-wrapper.d.ts
199
+ interface CollapsibleWrapperProps {
200
+ children: ReactNode;
201
+ trigger: ReactNode;
202
+ defaultOpen?: boolean;
203
+ open?: boolean;
204
+ onOpenChange?: (open: boolean) => void;
205
+ /** @deprecated Use render prop pattern with trigger element instead */
206
+ triggerAsChild?: boolean;
207
+ triggerVariant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link";
208
+ triggerSize?: "default" | "sm" | "lg" | "icon";
209
+ triggerClassName?: string;
210
+ contentClassName?: string;
211
+ className?: string;
212
+ showChevron?: boolean;
213
+ chevronPosition?: "left" | "right";
214
+ disabled?: boolean;
215
+ }
216
+ declare function CollapsibleWrapper({
217
+ children,
218
+ trigger,
219
+ defaultOpen,
220
+ open,
221
+ onOpenChange,
222
+ triggerAsChild,
223
+ triggerVariant,
224
+ triggerSize,
225
+ triggerClassName,
226
+ contentClassName,
227
+ className,
228
+ showChevron,
229
+ chevronPosition,
230
+ disabled,
231
+ ...props
232
+ }: CollapsibleWrapperProps): react_jsx_runtime0.JSX.Element;
233
+ interface CollapsibleCardProps {
234
+ title: ReactNode;
235
+ children: ReactNode;
236
+ defaultOpen?: boolean;
237
+ className?: string;
238
+ headerClassName?: string;
239
+ contentClassName?: string;
240
+ }
241
+ declare function CollapsibleCard({
242
+ title,
243
+ children,
244
+ defaultOpen,
245
+ className,
246
+ headerClassName,
247
+ contentClassName,
248
+ ...props
249
+ }: CollapsibleCardProps): react_jsx_runtime0.JSX.Element;
250
+ interface CollapsibleSectionProps {
251
+ label: ReactNode;
252
+ children: ReactNode;
253
+ defaultOpen?: boolean;
254
+ className?: string;
255
+ labelClassName?: string;
256
+ contentClassName?: string;
257
+ }
258
+ declare function CollapsibleSection({
259
+ label,
260
+ children,
261
+ defaultOpen,
262
+ className,
263
+ labelClassName,
264
+ contentClassName,
265
+ ...props
266
+ }: CollapsibleSectionProps): react_jsx_runtime0.JSX.Element;
267
+ //#endregion
268
+ //#region src/components/confirm-dialog.d.ts
269
+ interface ConfirmDialogProps {
270
+ open: boolean;
271
+ onOpenChange: (open: boolean) => void;
272
+ /** Trigger element that opens the dialog */
273
+ trigger?: react.ReactElement;
274
+ title?: string;
275
+ description?: string;
276
+ confirmText?: string;
277
+ cancelText?: string;
278
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link";
279
+ isLoading?: boolean;
280
+ onConfirm?: () => void;
281
+ onCancel?: () => void;
282
+ icon?: ReactNode;
283
+ children?: ReactNode;
284
+ className?: string;
285
+ /** Header className */
286
+ headerClassName?: string;
287
+ /** Description className */
288
+ descriptionClassName?: string;
289
+ /** Footer className */
290
+ footerClassName?: string;
291
+ /** Whether to show the cancel button (default: true) */
292
+ showCancel?: boolean;
293
+ }
294
+ declare function ConfirmDialog({
295
+ open,
296
+ onOpenChange,
297
+ trigger,
298
+ title,
299
+ description,
300
+ confirmText,
301
+ cancelText,
302
+ variant,
303
+ isLoading,
304
+ onConfirm,
305
+ onCancel,
306
+ icon,
307
+ children,
308
+ className,
309
+ headerClassName,
310
+ descriptionClassName,
311
+ footerClassName,
312
+ showCancel,
313
+ ...props
314
+ }: ConfirmDialogProps): react_jsx_runtime0.JSX.Element;
315
+ interface DeleteConfirmDialogProps {
316
+ open: boolean;
317
+ onOpenChange: (open: boolean) => void;
318
+ onConfirm?: () => void;
319
+ isLoading?: boolean;
320
+ itemName?: string;
321
+ itemDetails?: ReactNode;
322
+ }
323
+ declare function DeleteConfirmDialog({
324
+ open,
325
+ onOpenChange,
326
+ onConfirm,
327
+ isLoading,
328
+ itemName,
329
+ itemDetails,
330
+ ...props
331
+ }: DeleteConfirmDialogProps): react_jsx_runtime0.JSX.Element;
332
+ interface InfoAlertProps extends Omit<ConfirmDialogProps, "showCancel" | "variant"> {
333
+ confirmText?: string;
334
+ }
335
+ /**
336
+ * InfoAlert - Information/warning alert with only confirm button (no cancel)
337
+ *
338
+ * @example
339
+ * ```tsx
340
+ * <InfoAlert
341
+ * open={open}
342
+ * onOpenChange={setOpen}
343
+ * title="Session expired"
344
+ * description="Please log in again"
345
+ * confirmText="OK"
346
+ * onConfirm={() => setOpen(false)}
347
+ * />
348
+ * ```
349
+ */
350
+ declare function InfoAlert({
351
+ title,
352
+ description,
353
+ confirmText,
354
+ onConfirm,
355
+ onOpenChange,
356
+ ...props
357
+ }: InfoAlertProps): react_jsx_runtime0.JSX.Element;
358
+ //#endregion
359
+ //#region src/components/copy-button.d.ts
360
+ interface CopyButtonProps {
361
+ value: string;
362
+ className?: string;
363
+ size?: "default" | "sm" | "lg" | "icon";
364
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link";
365
+ showToast?: boolean;
366
+ toastMessage?: string;
367
+ errorMessage?: string;
368
+ timeout?: number;
369
+ children?: ReactNode;
370
+ }
371
+ declare function CopyButton({
372
+ value,
373
+ className,
374
+ size,
375
+ variant,
376
+ showToast,
377
+ toastMessage,
378
+ errorMessage,
379
+ timeout,
380
+ children,
381
+ ...props
382
+ }: CopyButtonProps): react_jsx_runtime0.JSX.Element;
383
+ interface CopyTextProps {
384
+ value: string;
385
+ displayValue?: string;
386
+ className?: string;
387
+ textClassName?: string;
388
+ buttonClassName?: string;
389
+ maxLength?: number;
390
+ showButton?: boolean;
391
+ }
392
+ declare function CopyText({
393
+ value,
394
+ displayValue,
395
+ className,
396
+ textClassName,
397
+ buttonClassName,
398
+ maxLength,
399
+ showButton,
400
+ ...buttonProps
401
+ }: CopyTextProps): react_jsx_runtime0.JSX.Element;
402
+ interface CopyCodeBlockProps {
403
+ value: string;
404
+ className?: string;
405
+ language?: string;
406
+ showLineNumbers?: boolean;
407
+ }
408
+ declare function CopyCodeBlock({
409
+ value,
410
+ className,
411
+ language,
412
+ showLineNumbers,
413
+ ...buttonProps
414
+ }: CopyCodeBlockProps): react_jsx_runtime0.JSX.Element;
415
+ //#endregion
416
+ //#region src/components/custom-pagination.d.ts
417
+ interface CustomPaginationProps {
418
+ page: number;
419
+ pages: number;
420
+ hasNext: boolean;
421
+ hasPrev: boolean;
422
+ onPageChange: (page: number) => void;
423
+ }
424
+ declare function CustomPagination({
425
+ page,
426
+ onPageChange,
427
+ pages,
428
+ hasPrev,
429
+ hasNext
430
+ }: CustomPaginationProps): react_jsx_runtime0.JSX.Element | null;
431
+ interface PaginationInfoProps {
432
+ page: number;
433
+ total: number;
434
+ limit?: number;
435
+ }
436
+ declare function PaginationInfo({
437
+ page,
438
+ total,
439
+ limit
440
+ }: PaginationInfoProps): react_jsx_runtime0.JSX.Element;
441
+ //#endregion
442
+ //#region src/components/dialog-wrapper.d.ts
443
+ declare const SIZE_VARIANTS: {
444
+ readonly sm: "sm:max-w-sm";
445
+ readonly default: "sm:max-w-md";
446
+ readonly lg: "sm:max-w-lg md:max-w-2xl";
447
+ readonly xl: "sm:max-w-2xl md:max-w-4xl";
448
+ readonly "2xl": "sm:max-w-4xl md:max-w-6xl";
449
+ readonly full: "max-w-[95vw] h-[95vh]";
450
+ };
451
+ type SizeVariant$1 = keyof typeof SIZE_VARIANTS;
452
+ interface DialogWrapperProps {
453
+ open: boolean;
454
+ onOpenChange: (open: boolean) => void;
455
+ title?: ReactNode;
456
+ description?: ReactNode;
457
+ children?: ReactNode;
458
+ footer?: ReactNode;
459
+ trigger?: ReactNode;
460
+ size?: SizeVariant$1;
461
+ className?: string;
462
+ headerClassName?: string;
463
+ contentClassName?: string;
464
+ footerClassName?: string;
465
+ hideHeader?: boolean;
466
+ hideTitle?: boolean;
467
+ hideDescription?: boolean;
468
+ hideCloseButton?: boolean;
469
+ }
470
+ declare function DialogWrapper({
471
+ open,
472
+ onOpenChange,
473
+ title,
474
+ description,
475
+ children,
476
+ footer,
477
+ trigger,
478
+ size,
479
+ className,
480
+ headerClassName,
481
+ contentClassName,
482
+ footerClassName,
483
+ hideHeader,
484
+ hideTitle,
485
+ hideDescription,
486
+ hideCloseButton,
487
+ ...props
488
+ }: DialogWrapperProps): react_jsx_runtime0.JSX.Element;
489
+ interface FormDialogProps extends Omit<DialogWrapperProps, "footer"> {
490
+ onSubmit?: (e: react.FormEvent<HTMLFormElement>) => void;
491
+ onCancel?: () => void;
492
+ submitText?: string;
493
+ cancelText?: string;
494
+ isLoading?: boolean;
495
+ submitDisabled?: boolean;
496
+ }
497
+ declare function FormDialog({
498
+ open,
499
+ onOpenChange,
500
+ title,
501
+ description,
502
+ children,
503
+ onSubmit,
504
+ onCancel,
505
+ submitText,
506
+ cancelText,
507
+ isLoading,
508
+ submitDisabled,
509
+ ...props
510
+ }: FormDialogProps): react_jsx_runtime0.JSX.Element;
511
+ //#endregion
512
+ //#region src/components/dropdown-wrapper.d.ts
513
+ interface DropdownWrapperProps {
514
+ trigger: react.ReactNode;
515
+ children: react.ReactNode;
516
+ align?: "start" | "center" | "end";
517
+ side?: "top" | "right" | "bottom" | "left";
518
+ sideOffset?: number;
519
+ className?: string;
520
+ contentClassName?: string;
521
+ }
522
+ declare function DropdownWrapper({
523
+ trigger,
524
+ children,
525
+ align,
526
+ side,
527
+ sideOffset,
528
+ className,
529
+ contentClassName,
530
+ ...props
531
+ }: DropdownWrapperProps): react_jsx_runtime0.JSX.Element;
532
+ interface ActionDropdownItem {
533
+ type?: "item" | "separator" | "label" | "group";
534
+ key?: string;
535
+ label?: string | (() => string);
536
+ icon?: LucideIcon;
537
+ onClick?: (e: react.MouseEvent) => void;
538
+ disabled?: boolean;
539
+ hidden?: boolean;
540
+ variant?: "default" | "destructive";
541
+ shortcut?: string;
542
+ className?: string;
543
+ items?: ActionDropdownItem[];
544
+ }
545
+ interface ActionDropdownProps {
546
+ items?: ActionDropdownItem[];
547
+ triggerIcon?: LucideIcon;
548
+ triggerVariant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link";
549
+ triggerSize?: "default" | "sm" | "lg" | "icon";
550
+ triggerClassName?: string;
551
+ triggerLabel?: string;
552
+ showOnHover?: boolean;
553
+ align?: "start" | "center" | "end";
554
+ contentClassName?: string;
555
+ onOpenChange?: (open: boolean) => void;
556
+ stopPropagation?: boolean;
557
+ }
558
+ declare function ActionDropdown({
559
+ items,
560
+ triggerIcon: TriggerIcon,
561
+ triggerVariant,
562
+ triggerSize,
563
+ triggerClassName,
564
+ triggerLabel,
565
+ showOnHover,
566
+ align,
567
+ contentClassName,
568
+ onOpenChange,
569
+ stopPropagation,
570
+ ...props
571
+ }: ActionDropdownProps): react_jsx_runtime0.JSX.Element;
572
+ interface SelectDropdownOption {
573
+ value: string;
574
+ label: string;
575
+ icon?: LucideIcon;
576
+ }
577
+ interface SelectDropdownProps {
578
+ value?: string;
579
+ onValueChange?: (value: string) => void;
580
+ placeholder?: string;
581
+ options?: SelectDropdownOption[];
582
+ triggerClassName?: string;
583
+ contentClassName?: string;
584
+ disabled?: boolean;
585
+ }
586
+ declare function SelectDropdown({
587
+ value,
588
+ onValueChange,
589
+ placeholder,
590
+ options,
591
+ triggerClassName,
592
+ contentClassName,
593
+ disabled,
594
+ ...props
595
+ }: SelectDropdownProps): react_jsx_runtime0.JSX.Element;
596
+ interface CheckboxDropdownProps {
597
+ values?: string[];
598
+ onValuesChange?: (values: string[]) => void;
599
+ placeholder?: string;
600
+ options?: SelectDropdownOption[];
601
+ triggerClassName?: string;
602
+ contentClassName?: string;
603
+ disabled?: boolean;
604
+ showSelectedCount?: boolean;
605
+ }
606
+ declare function CheckboxDropdown({
607
+ values,
608
+ onValuesChange,
609
+ placeholder,
610
+ options,
611
+ triggerClassName,
612
+ contentClassName,
613
+ disabled,
614
+ showSelectedCount,
615
+ ...props
616
+ }: CheckboxDropdownProps): react_jsx_runtime0.JSX.Element;
617
+ interface RadioDropdownProps {
618
+ value?: string;
619
+ onValueChange?: (value: string) => void;
620
+ placeholder?: string;
621
+ options?: SelectDropdownOption[];
622
+ triggerClassName?: string;
623
+ contentClassName?: string;
624
+ disabled?: boolean;
625
+ }
626
+ declare function RadioDropdown({
627
+ value,
628
+ onValueChange,
629
+ placeholder,
630
+ options,
631
+ triggerClassName,
632
+ contentClassName,
633
+ disabled,
634
+ ...props
635
+ }: RadioDropdownProps): react_jsx_runtime0.JSX.Element;
636
+ //#endregion
637
+ //#region src/components/error-state.d.ts
638
+ interface ErrorStateProps {
639
+ /** Error title */
640
+ title?: string;
641
+ /** Error message or Error object */
642
+ error: string | Error | {
643
+ message?: string;
644
+ } | null | undefined;
645
+ /** Optional retry callback */
646
+ onRetry?: () => void;
647
+ /** Alert variant */
648
+ variant?: "default" | "destructive";
649
+ /** Additional CSS classes */
650
+ className?: string;
651
+ /** Custom icon */
652
+ icon?: ReactNode;
653
+ }
654
+ /**
655
+ * ErrorState Component
656
+ *
657
+ * Reusable error display component with retry functionality
658
+ * Used for consistent error handling across pages
659
+ */
660
+ declare function ErrorState({
661
+ title,
662
+ error,
663
+ onRetry,
664
+ variant,
665
+ className,
666
+ icon
667
+ }: ErrorStateProps): react_jsx_runtime0.JSX.Element;
668
+ interface ErrorStateInlineProps {
669
+ /** Error message or Error object */
670
+ error: string | Error | {
671
+ message?: string;
672
+ } | null | undefined;
673
+ /** Optional retry callback */
674
+ onRetry?: () => void;
675
+ /** Additional CSS classes */
676
+ className?: string;
677
+ /** Custom icon */
678
+ icon?: ReactNode;
679
+ }
680
+ /**
681
+ * Inline ErrorState variant - more compact for table cells
682
+ */
683
+ declare function ErrorStateInline({
684
+ error,
685
+ onRetry,
686
+ className,
687
+ icon
688
+ }: ErrorStateInlineProps): react_jsx_runtime0.JSX.Element;
689
+ //#endregion
690
+ //#region src/components/info-row.d.ts
691
+ interface InfoRowProps {
692
+ label: string;
693
+ value: ReactNode;
694
+ copyable?: boolean;
695
+ icon?: ComponentType<LucideProps>;
696
+ }
697
+ declare function InfoRow({
698
+ label,
699
+ value,
700
+ copyable,
701
+ icon: Icon
702
+ }: InfoRowProps): react_jsx_runtime0.JSX.Element | null;
703
+ //#endregion
704
+ //#region src/components/item-helpers.d.ts
705
+ /**
706
+ * Item Component Helpers
707
+ */
708
+ declare const iconItemMediaVariants: (props?: ({
709
+ iconBg?: "primary" | "gold" | "muted" | "gradient" | "none" | null | undefined;
710
+ iconSize?: "sm" | "md" | "lg" | "xl" | null | undefined;
711
+ } & class_variance_authority_types0.ClassProp) | undefined) => string;
712
+ interface IconItemMediaProps extends react.HTMLAttributes<HTMLDivElement>, VariantProps<typeof iconItemMediaVariants> {
713
+ icon?: react.ReactNode;
714
+ children?: react.ReactNode;
715
+ }
716
+ declare const IconItemMedia: react.NamedExoticComponent<IconItemMediaProps>;
717
+ interface FeatureItemProps {
718
+ icon?: react.ReactNode;
719
+ iconBg?: "primary" | "gold" | "muted" | "gradient" | "none";
720
+ iconSize?: "sm" | "md" | "lg" | "xl";
721
+ title?: react.ReactNode;
722
+ description?: react.ReactNode;
723
+ variant?: "default" | "outline" | "ghost" | "gradient-light" | "gradient";
724
+ size?: "sm" | "default" | "lg";
725
+ layout?: "vertical" | "horizontal";
726
+ titleAs?: react.ElementType;
727
+ className?: string;
728
+ titleClassName?: string;
729
+ descriptionClassName?: string;
730
+ iconClassName?: string;
731
+ children?: react.ReactNode;
732
+ }
733
+ declare const FeatureItem: react.NamedExoticComponent<FeatureItemProps>;
734
+ interface FeatureListItem {
735
+ id?: string;
736
+ icon?: react.ReactNode;
737
+ iconBg?: "primary" | "gold" | "muted" | "gradient" | "none";
738
+ iconSize?: "sm" | "md" | "lg" | "xl";
739
+ title: string;
740
+ description?: string;
741
+ }
742
+ interface FeatureListProps {
743
+ items?: FeatureListItem[];
744
+ columns?: 2 | 3 | 4;
745
+ variant?: "default" | "outline" | "ghost" | "gradient-light" | "gradient";
746
+ iconBg?: "primary" | "gold" | "muted" | "gradient" | "none";
747
+ iconSize?: "sm" | "md" | "lg" | "xl";
748
+ layout?: "vertical" | "horizontal";
749
+ className?: string;
750
+ itemClassName?: string;
751
+ }
752
+ declare function FeatureList({
753
+ items,
754
+ columns,
755
+ variant,
756
+ iconBg,
757
+ iconSize,
758
+ layout,
759
+ className,
760
+ itemClassName,
761
+ ...props
762
+ }: FeatureListProps): react_jsx_runtime0.JSX.Element;
763
+ declare namespace FeatureList {
764
+ var displayName: string;
765
+ }
766
+ //#endregion
767
+ //#region src/components/phone-input.d.ts
768
+ interface PhoneCountry {
769
+ code: string;
770
+ name: string;
771
+ dialCode: string;
772
+ flag: string;
773
+ }
774
+ declare const DEFAULT_COUNTRIES: PhoneCountry[];
775
+ interface PhoneInputProps extends Omit<react.InputHTMLAttributes<HTMLInputElement>, "onChange"> {
776
+ onChange?: (value: string) => void;
777
+ defaultCountry?: string;
778
+ /** Custom list of countries to show. Defaults to a built-in list of ~50 countries. */
779
+ countries?: PhoneCountry[];
780
+ ref?: react.Ref<HTMLInputElement>;
781
+ }
782
+ declare function PhoneInput({
783
+ className,
784
+ onChange,
785
+ value,
786
+ defaultCountry,
787
+ countries,
788
+ disabled,
789
+ placeholder,
790
+ ref,
791
+ ...props
792
+ }: PhoneInputProps): react_jsx_runtime0.JSX.Element;
793
+ //#endregion
794
+ //#region src/components/pill.d.ts
795
+ interface PillProps {
796
+ variant?: "default" | "secondary" | "destructive" | "outline";
797
+ themed?: boolean;
798
+ className?: string;
799
+ children?: ReactNode;
800
+ }
801
+ declare function Pill({
802
+ variant,
803
+ themed,
804
+ className,
805
+ ...props
806
+ }: PillProps): react_jsx_runtime0.JSX.Element;
807
+ interface PillAvatarProps {
808
+ fallback?: string;
809
+ className?: string;
810
+ src?: string;
811
+ alt?: string;
812
+ }
813
+ declare function PillAvatar({
814
+ fallback,
815
+ className,
816
+ src,
817
+ alt,
818
+ ...props
819
+ }: PillAvatarProps): react_jsx_runtime0.JSX.Element;
820
+ interface PillButtonProps {
821
+ className?: string;
822
+ children?: ReactNode;
823
+ onClick?: () => void;
824
+ }
825
+ declare function PillButton({
826
+ className,
827
+ ...props
828
+ }: PillButtonProps): react_jsx_runtime0.JSX.Element;
829
+ interface PillStatusProps {
830
+ children?: ReactNode;
831
+ className?: string;
832
+ }
833
+ declare function PillStatus({
834
+ children,
835
+ className,
836
+ ...props
837
+ }: PillStatusProps): react_jsx_runtime0.JSX.Element;
838
+ interface PillIndicatorProps {
839
+ variant?: "success" | "error" | "warning" | "info";
840
+ pulse?: boolean;
841
+ }
842
+ declare function PillIndicator({
843
+ variant,
844
+ pulse
845
+ }: PillIndicatorProps): react_jsx_runtime0.JSX.Element;
846
+ interface PillDeltaProps {
847
+ className?: string;
848
+ delta?: number;
849
+ }
850
+ declare function PillDelta({
851
+ className,
852
+ delta
853
+ }: PillDeltaProps): react_jsx_runtime0.JSX.Element;
854
+ interface PillIconProps extends LucideProps {
855
+ icon: ComponentType<LucideProps>;
856
+ className?: string;
857
+ }
858
+ declare function PillIcon({
859
+ icon: Icon,
860
+ className,
861
+ ...props
862
+ }: PillIconProps): react_jsx_runtime0.JSX.Element;
863
+ interface PillAvatarGroupProps {
864
+ children?: ReactNode;
865
+ className?: string;
866
+ }
867
+ declare function PillAvatarGroup({
868
+ children,
869
+ className,
870
+ ...props
871
+ }: PillAvatarGroupProps): react_jsx_runtime0.JSX.Element;
872
+ //#endregion
873
+ //#region src/components/responsive-split-layout.d.ts
874
+ interface PanelConfig {
875
+ title?: string;
876
+ icon?: ReactNode;
877
+ content: ReactNode;
878
+ badge?: ReactNode;
879
+ }
880
+ interface ResponsiveSplitLayoutProps {
881
+ leftPanel: PanelConfig;
882
+ rightPanel: PanelConfig;
883
+ className?: string;
884
+ leftPanelClassName?: string;
885
+ rightPanelClassName?: string;
886
+ variant?: "default" | "tabs" | "fixed";
887
+ desktopVariant?: "default" | "tabs" | "fixed";
888
+ mobileVariant?: "default" | "tabs" | "fixed";
889
+ defaultLayout?: [number, number];
890
+ minSizes?: [number, number];
891
+ rightPanelWidth?: number;
892
+ persistLayoutKey?: string;
893
+ mobileBreakpoint?: "sm" | "md" | "lg" | "xl";
894
+ forceMobile?: boolean;
895
+ forceDesktop?: boolean;
896
+ }
897
+ declare function ResponsiveSplitLayout({
898
+ leftPanel,
899
+ rightPanel,
900
+ className,
901
+ leftPanelClassName,
902
+ rightPanelClassName,
903
+ variant,
904
+ desktopVariant,
905
+ mobileVariant,
906
+ defaultLayout,
907
+ minSizes,
908
+ rightPanelWidth,
909
+ persistLayoutKey,
910
+ mobileBreakpoint,
911
+ forceMobile,
912
+ forceDesktop
913
+ }: ResponsiveSplitLayoutProps): react_jsx_runtime0.JSX.Element;
914
+ //#endregion
915
+ //#region src/components/sheet-wrapper.d.ts
916
+ declare const SIZE_CLASSES: {
917
+ readonly right: {
918
+ readonly sm: "data-[side=right]:sm:max-w-md";
919
+ readonly default: "data-[side=right]:w-full data-[side=right]:sm:max-w-md data-[side=right]:md:max-w-lg";
920
+ readonly lg: "data-[side=right]:w-full data-[side=right]:sm:max-w-lg data-[side=right]:md:max-w-2xl data-[side=right]:lg:max-w-4xl";
921
+ readonly xl: "data-[side=right]:w-full data-[side=right]:sm:max-w-2xl data-[side=right]:md:max-w-4xl data-[side=right]:lg:max-w-5xl";
922
+ readonly full: "data-[side=right]:w-full data-[side=right]:max-w-full data-[side=right]:sm:max-w-full";
923
+ readonly mobile: "data-[side=right]:w-[85%] data-[side=right]:sm:max-w-sm";
924
+ readonly "mobile-nav": "data-[side=right]:w-[300px] data-[side=right]:sm:w-[350px] data-[side=right]:sm:max-w-none";
925
+ };
926
+ readonly left: {
927
+ readonly sm: "data-[side=left]:sm:max-w-md";
928
+ readonly default: "data-[side=left]:w-full data-[side=left]:sm:max-w-md data-[side=left]:md:max-w-lg";
929
+ readonly lg: "data-[side=left]:w-full data-[side=left]:sm:max-w-lg data-[side=left]:md:max-w-2xl data-[side=left]:lg:max-w-4xl";
930
+ readonly xl: "data-[side=left]:w-full data-[side=left]:sm:max-w-2xl data-[side=left]:md:max-w-4xl data-[side=left]:lg:max-w-5xl";
931
+ readonly full: "data-[side=left]:w-full data-[side=left]:max-w-full data-[side=left]:sm:max-w-full";
932
+ readonly mobile: "data-[side=left]:w-[85%] data-[side=left]:sm:max-w-sm";
933
+ readonly "mobile-nav": "data-[side=left]:w-[300px] data-[side=left]:sm:w-[350px] data-[side=left]:sm:max-w-none";
934
+ };
935
+ readonly vertical: {
936
+ readonly sm: "sm:max-w-md";
937
+ readonly default: "w-full sm:max-w-md md:max-w-lg";
938
+ readonly lg: "w-full sm:max-w-lg md:max-w-2xl lg:max-w-4xl";
939
+ readonly xl: "w-full sm:max-w-2xl md:max-w-4xl lg:max-w-5xl";
940
+ readonly full: "w-full max-w-full";
941
+ readonly mobile: "w-[85%] max-w-sm";
942
+ readonly "mobile-nav": "w-[300px] sm:w-[350px]";
943
+ };
944
+ };
945
+ type SizeVariant = keyof (typeof SIZE_CLASSES)["vertical"];
946
+ interface SheetWrapperProps {
947
+ open: boolean;
948
+ onOpenChange: (open: boolean) => void;
949
+ title?: string;
950
+ description?: string;
951
+ children?: ReactNode;
952
+ footer?: ReactNode;
953
+ header?: ReactNode;
954
+ side?: "top" | "bottom" | "left" | "right";
955
+ size?: SizeVariant;
956
+ modal?: boolean;
957
+ className?: string;
958
+ headerClassName?: string;
959
+ contentClassName?: string;
960
+ footerClassName?: string;
961
+ innerClassName?: string;
962
+ hideHeader?: boolean;
963
+ hideTitle?: boolean;
964
+ hideDescription?: boolean;
965
+ hideCloseButton?: boolean;
966
+ disableContentPadding?: boolean;
967
+ }
968
+ declare const SheetWrapper: react.NamedExoticComponent<SheetWrapperProps>;
969
+ interface FormSheetProps extends Omit<SheetWrapperProps, "footer"> {
970
+ onSubmit?: () => void;
971
+ onCancel?: () => void;
972
+ submitLabel?: string;
973
+ cancelLabel?: string;
974
+ submitDisabled?: boolean;
975
+ submitLoading?: boolean;
976
+ formId?: string;
977
+ }
978
+ declare const FormSheet: react.NamedExoticComponent<FormSheetProps>;
979
+ interface ConfirmSheetProps extends Omit<SheetWrapperProps, "footer"> {
980
+ onConfirm?: () => void;
981
+ onCancel?: () => void;
982
+ confirmLabel?: string;
983
+ cancelLabel?: string;
984
+ confirmVariant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link";
985
+ confirmDisabled?: boolean;
986
+ confirmLoading?: boolean;
987
+ }
988
+ declare const ConfirmSheet: react.NamedExoticComponent<ConfirmSheetProps>;
989
+ //#endregion
990
+ //#region src/components/status-banner.d.ts
991
+ type StatusBannerVariant = "info" | "warning" | "success" | "error";
992
+ interface StatusBannerProps {
993
+ /** The banner variant/severity */
994
+ variant?: StatusBannerVariant;
995
+ /** Main message text or node */
996
+ children: react.ReactNode;
997
+ /** Optional custom icon */
998
+ icon?: LucideIcon;
999
+ /** Whether the banner can be dismissed */
1000
+ dismissible?: boolean;
1001
+ /** Callback when dismissed */
1002
+ onDismiss?: () => void;
1003
+ /** Optional action element (e.g. a link or button) */
1004
+ action?: react.ReactNode;
1005
+ /** Additional className */
1006
+ className?: string;
1007
+ }
1008
+ /**
1009
+ * StatusBanner — A persistent info/warning/success/error banner.
1010
+ *
1011
+ * @example
1012
+ * ```tsx
1013
+ * <StatusBanner variant="warning" dismissible>
1014
+ * Your trial expires in 3 days. <a href="/pricing">Upgrade now</a>
1015
+ * </StatusBanner>
1016
+ *
1017
+ * <StatusBanner variant="success" action={<Button size="sm">View</Button>}>
1018
+ * Your project was deployed successfully.
1019
+ * </StatusBanner>
1020
+ * ```
1021
+ */
1022
+ declare function StatusBanner({
1023
+ variant,
1024
+ children,
1025
+ icon: CustomIcon,
1026
+ dismissible,
1027
+ onDismiss,
1028
+ action,
1029
+ className
1030
+ }: StatusBannerProps): react_jsx_runtime0.JSX.Element | null;
1031
+ //#endregion
1032
+ //#region src/components/stepper.d.ts
1033
+ interface StepperStep {
1034
+ /** Step label */
1035
+ label: string;
1036
+ /** Optional description shown below the label */
1037
+ description?: string;
1038
+ /** Optional icon for the step (replaces the number) */
1039
+ icon?: react.ReactNode;
1040
+ /** Whether this step is optional */
1041
+ optional?: boolean;
1042
+ }
1043
+ interface StepperProps {
1044
+ /** Array of step definitions */
1045
+ steps: (string | StepperStep)[];
1046
+ /** Active step index (0-based) */
1047
+ currentStep: number;
1048
+ /** Variant */
1049
+ variant?: "default" | "compact";
1050
+ /** Orientation */
1051
+ orientation?: "horizontal" | "vertical";
1052
+ /** Additional className */
1053
+ className?: string;
1054
+ /** Callback when a completed step is clicked */
1055
+ onStepClick?: (stepIndex: number) => void;
1056
+ /** Children (StepContent panels) */
1057
+ children?: react.ReactNode;
1058
+ }
1059
+ interface StepContentProps {
1060
+ /** Step index this content belongs to (0-based) */
1061
+ step: number;
1062
+ /** Currently active step */
1063
+ currentStep: number;
1064
+ /** Children to render */
1065
+ children: react.ReactNode;
1066
+ /** Additional className */
1067
+ className?: string;
1068
+ /** Keep mounted when inactive (useful for forms) */
1069
+ keepMounted?: boolean;
1070
+ }
1071
+ /**
1072
+ * Stepper — Multi-step progress indicator
1073
+ *
1074
+ * Features:
1075
+ * - Horizontal layout: circles in a row with labels below, proper connectors
1076
+ * - Vertical layout: circles on the left with labels to the right
1077
+ * - Compact variant for tight spaces
1078
+ * - Handles many steps gracefully without scrollbars
1079
+ * - Clickable completed steps for navigation
1080
+ * - Accessible: role="list", aria-current="step"
1081
+ *
1082
+ * @example Basic
1083
+ * ```tsx
1084
+ * const [step, setStep] = useState(0);
1085
+ *
1086
+ * <Stepper steps={["Details", "Config", "Review"]} currentStep={step}>
1087
+ * <StepContent step={0} currentStep={step}>
1088
+ * <DetailsForm onNext={() => setStep(1)} />
1089
+ * </StepContent>
1090
+ * </Stepper>
1091
+ * ```
1092
+ *
1093
+ * @example With step objects
1094
+ * ```tsx
1095
+ * <Stepper
1096
+ * steps={[
1097
+ * { label: "Account", description: "Set up your account" },
1098
+ * { label: "Profile", description: "Add your details", optional: true },
1099
+ * { label: "Complete", description: "Review and submit" },
1100
+ * ]}
1101
+ * currentStep={1}
1102
+ * onStepClick={(i) => setStep(i)}
1103
+ * />
1104
+ * ```
1105
+ */
1106
+ declare function Stepper({
1107
+ steps,
1108
+ currentStep,
1109
+ variant,
1110
+ orientation,
1111
+ className,
1112
+ onStepClick,
1113
+ children,
1114
+ ...props
1115
+ }: StepperProps): react_jsx_runtime0.JSX.Element;
1116
+ /**
1117
+ * StepContent — Renders content for a specific step.
1118
+ * Only visible when `step === currentStep`.
1119
+ *
1120
+ * @example
1121
+ * ```tsx
1122
+ * <StepContent step={0} currentStep={current}>
1123
+ * <MyForm />
1124
+ * </StepContent>
1125
+ * ```
1126
+ */
1127
+ declare function StepContent({
1128
+ step,
1129
+ currentStep,
1130
+ children,
1131
+ className,
1132
+ keepMounted
1133
+ }: StepContentProps): react_jsx_runtime0.JSX.Element | null;
1134
+ //#endregion
1135
+ //#region src/components/table-wrapper.d.ts
1136
+ interface TableWrapperColumn {
1137
+ key?: string;
1138
+ header: ReactNode;
1139
+ className?: string;
1140
+ cellClassName?: string;
1141
+ render?: (item: any, index: number) => ReactNode;
1142
+ }
1143
+ interface TableWrapperEmptyState {
1144
+ icon?: ReactNode;
1145
+ title?: string;
1146
+ description?: string;
1147
+ }
1148
+ interface TableWrapperProps {
1149
+ title?: ReactNode;
1150
+ description?: ReactNode;
1151
+ icon?: ReactNode;
1152
+ children?: ReactNode;
1153
+ columns?: TableWrapperColumn[];
1154
+ data?: any[];
1155
+ renderRow?: (item: any, index: number) => ReactNode;
1156
+ emptyState?: TableWrapperEmptyState;
1157
+ className?: string;
1158
+ tableClassName?: string;
1159
+ maxHeight?: string;
1160
+ }
1161
+ declare function TableWrapper({
1162
+ title,
1163
+ description,
1164
+ icon,
1165
+ children,
1166
+ columns,
1167
+ data,
1168
+ renderRow,
1169
+ emptyState,
1170
+ className,
1171
+ tableClassName,
1172
+ maxHeight,
1173
+ ...props
1174
+ }: TableWrapperProps): react_jsx_runtime0.JSX.Element;
1175
+ interface SimpleTableProps extends Omit<TableWrapperProps, "renderRow" | "children"> {
1176
+ columns: TableWrapperColumn[];
1177
+ data: any[];
1178
+ }
1179
+ declare function SimpleTable({
1180
+ title,
1181
+ data,
1182
+ columns,
1183
+ emptyState,
1184
+ className,
1185
+ ...props
1186
+ }: SimpleTableProps): react_jsx_runtime0.JSX.Element;
1187
+ //#endregion
1188
+ //#region src/components/tabs-wrapper.d.ts
1189
+ interface TabsWrapperProps {
1190
+ defaultValue?: string;
1191
+ value?: string;
1192
+ onValueChange?: (value: string) => void;
1193
+ children: ReactNode;
1194
+ className?: string;
1195
+ listClassName?: string;
1196
+ variant?: "default" | "primary" | "secondary" | "outline" | "ghost" | "underline";
1197
+ orientation?: "horizontal" | "vertical";
1198
+ layout?: "default" | "flex" | "sidebar";
1199
+ }
1200
+ declare const TabsWrapper: react.NamedExoticComponent<TabsWrapperProps>;
1201
+ interface TabTriggerProps {
1202
+ value: string;
1203
+ children: ReactNode;
1204
+ className?: string;
1205
+ variant?: "default" | "primary" | "secondary" | "outline" | "ghost" | "underline";
1206
+ icon?: ReactNode;
1207
+ hideTextOnMobile?: boolean;
1208
+ disabled?: boolean;
1209
+ }
1210
+ declare const TabTrigger: react.NamedExoticComponent<TabTriggerProps>;
1211
+ interface TabContentProps {
1212
+ value: string;
1213
+ children: ReactNode;
1214
+ className?: string;
1215
+ withScrollArea?: boolean;
1216
+ scrollAreaClassName?: string;
1217
+ padding?: boolean;
1218
+ keepMounted?: boolean;
1219
+ }
1220
+ declare const TabContent: react.NamedExoticComponent<TabContentProps>;
1221
+ interface DynamicTabItem {
1222
+ value: string;
1223
+ label: ReactNode;
1224
+ content: ReactNode;
1225
+ icon?: ReactNode;
1226
+ disabled?: boolean;
1227
+ hideTextOnMobile?: boolean;
1228
+ }
1229
+ interface DynamicTabsProps {
1230
+ tabs?: DynamicTabItem[];
1231
+ defaultValue?: string;
1232
+ value?: string;
1233
+ onValueChange?: (value: string) => void;
1234
+ variant?: "default" | "primary" | "secondary" | "outline" | "ghost" | "underline";
1235
+ layout?: "default" | "flex" | "sidebar";
1236
+ className?: string;
1237
+ listClassName?: string;
1238
+ listWrapperClassName?: string;
1239
+ contentClassName?: string;
1240
+ scrollable?: boolean;
1241
+ }
1242
+ declare const DynamicTabs: react.NamedExoticComponent<DynamicTabsProps>;
1243
+ //#endregion
1244
+ //#region src/components/thumbnail.d.ts
1245
+ interface ThumbnailProps {
1246
+ src?: string;
1247
+ alt?: string;
1248
+ aspect?: "square" | "video" | "portrait";
1249
+ size?: "small" | "medium" | "large" | "full";
1250
+ className?: string;
1251
+ fallback?: string;
1252
+ onClick?: () => void;
1253
+ }
1254
+ declare function Thumbnail({
1255
+ src,
1256
+ alt,
1257
+ aspect,
1258
+ size,
1259
+ className,
1260
+ fallback,
1261
+ onClick
1262
+ }: ThumbnailProps): react_jsx_runtime0.JSX.Element;
1263
+ //#endregion
1264
+ //#region src/components/tooltip-wrapper.d.ts
1265
+ interface TooltipWrapperProps {
1266
+ children: ReactNode;
1267
+ content: ReactNode;
1268
+ side?: "top" | "right" | "bottom" | "left";
1269
+ align?: "start" | "center" | "end";
1270
+ delay?: number;
1271
+ sideOffset?: number;
1272
+ className?: string;
1273
+ contentClassName?: string;
1274
+ disabled?: boolean;
1275
+ }
1276
+ declare function TooltipWrapper({
1277
+ children,
1278
+ content,
1279
+ side,
1280
+ align,
1281
+ delay,
1282
+ sideOffset,
1283
+ className,
1284
+ contentClassName,
1285
+ disabled,
1286
+ ...props
1287
+ }: TooltipWrapperProps): react_jsx_runtime0.JSX.Element;
1288
+ interface ButtonTooltipProps extends Omit<TooltipWrapperProps, "content"> {
1289
+ tooltip: ReactNode;
1290
+ variant?: "default" | "outline" | "ghost";
1291
+ size?: "default" | "sm" | "lg" | "icon";
1292
+ }
1293
+ declare function ButtonTooltip({
1294
+ children,
1295
+ tooltip,
1296
+ variant,
1297
+ size,
1298
+ className,
1299
+ ...props
1300
+ }: ButtonTooltipProps): react_jsx_runtime0.JSX.Element;
1301
+ interface IconTooltipProps extends Omit<TooltipWrapperProps, "content" | "children"> {
1302
+ icon: ReactNode;
1303
+ tooltip: ReactNode;
1304
+ iconClassName?: string;
1305
+ size?: number;
1306
+ }
1307
+ declare function IconTooltip({
1308
+ icon,
1309
+ tooltip,
1310
+ className,
1311
+ iconClassName,
1312
+ size,
1313
+ ...props
1314
+ }: IconTooltipProps): react_jsx_runtime0.JSX.Element;
1315
+ interface InfoTooltipProps extends Omit<TooltipWrapperProps, "content" | "children"> {
1316
+ tooltip: ReactNode;
1317
+ size?: number;
1318
+ }
1319
+ declare function InfoTooltip({
1320
+ tooltip,
1321
+ className,
1322
+ size,
1323
+ ...props
1324
+ }: InfoTooltipProps): react_jsx_runtime0.JSX.Element;
1325
+ interface ActionTooltipProps extends Omit<TooltipWrapperProps, "content"> {
1326
+ tooltip: ReactNode;
1327
+ action?: () => void;
1328
+ variant?: "ghost" | "outline";
1329
+ size?: "sm" | "icon";
1330
+ }
1331
+ declare function ActionTooltip({
1332
+ children,
1333
+ tooltip,
1334
+ action,
1335
+ variant,
1336
+ size,
1337
+ className,
1338
+ ...props
1339
+ }: ActionTooltipProps): react_jsx_runtime0.JSX.Element;
1340
+ //#endregion
1341
+ //#region src/components/timeline.d.ts
1342
+ type TimelineStatus = "default" | "success" | "error" | "warning" | "pending" | "active";
1343
+ interface TimelineItem {
1344
+ /** Title of the timeline entry */
1345
+ title: string;
1346
+ /** Description or content */
1347
+ description?: react.ReactNode;
1348
+ /** Timestamp / date string */
1349
+ timestamp?: string;
1350
+ /** Secondary label (e.g., user name) */
1351
+ label?: string;
1352
+ /** Status determines icon color and connector style */
1353
+ status?: TimelineStatus;
1354
+ /** Custom icon override */
1355
+ icon?: LucideIcon | react.ReactNode;
1356
+ /** Additional content below description */
1357
+ content?: react.ReactNode;
1358
+ }
1359
+ interface TimelineProps {
1360
+ items: TimelineItem[];
1361
+ /** Layout direction */
1362
+ orientation?: "vertical" | "horizontal";
1363
+ /** Size variant */
1364
+ size?: "sm" | "default" | "lg";
1365
+ /** Show connector lines */
1366
+ showConnectors?: boolean;
1367
+ /** Reverse order (newest first) */
1368
+ reverse?: boolean;
1369
+ className?: string;
1370
+ }
1371
+ declare function Timeline({
1372
+ items,
1373
+ orientation,
1374
+ size,
1375
+ showConnectors,
1376
+ reverse,
1377
+ className
1378
+ }: TimelineProps): react_jsx_runtime0.JSX.Element;
1379
+ //#endregion
1380
+ //#region src/components/detail-view.d.ts
1381
+ interface DetailViewItemData {
1382
+ label: string;
1383
+ value?: react.ReactNode;
1384
+ /** Custom render function (overrides value) */
1385
+ render?: () => react.ReactNode;
1386
+ /** Hide this item entirely */
1387
+ hidden?: boolean;
1388
+ /** Span full width (ignores columns) */
1389
+ fullWidth?: boolean;
1390
+ /** Additional className for the value cell */
1391
+ className?: string;
1392
+ }
1393
+ interface DetailViewProps {
1394
+ items?: DetailViewItemData[];
1395
+ /** Grid columns */
1396
+ columns?: 1 | 2 | 3;
1397
+ /** Label placement */
1398
+ layout?: "stacked" | "horizontal" | "inline";
1399
+ /** Size variant */
1400
+ size?: "sm" | "default" | "lg";
1401
+ /** Show dividers between items */
1402
+ dividers?: boolean;
1403
+ /** Striped rows (stacked layout only) */
1404
+ striped?: boolean;
1405
+ /** Card wrapper */
1406
+ bordered?: boolean;
1407
+ /** Section title */
1408
+ title?: string;
1409
+ /** Section description */
1410
+ description?: string;
1411
+ className?: string;
1412
+ children?: react.ReactNode;
1413
+ }
1414
+ declare function DetailView({
1415
+ items,
1416
+ columns,
1417
+ layout,
1418
+ size,
1419
+ dividers,
1420
+ striped,
1421
+ bordered,
1422
+ title,
1423
+ description,
1424
+ className,
1425
+ children
1426
+ }: DetailViewProps): react_jsx_runtime0.JSX.Element;
1427
+ interface DetailItemProps {
1428
+ label: string;
1429
+ children?: react.ReactNode;
1430
+ value?: react.ReactNode;
1431
+ className?: string;
1432
+ labelClassName?: string;
1433
+ layout?: "stacked" | "horizontal" | "inline";
1434
+ }
1435
+ declare function DetailItem({
1436
+ label,
1437
+ children,
1438
+ value,
1439
+ className,
1440
+ labelClassName,
1441
+ layout
1442
+ }: DetailItemProps): react_jsx_runtime0.JSX.Element;
1443
+ //#endregion
1444
+ //#region src/components/animated-wrapper.d.ts
1445
+ /** Available entrance animation types */
1446
+ type Animation = "fadeIn" | "fadeInUp" | "scaleIn" | "slideInLeft" | "slideInRight" | "slideInUp" | "slideInDown";
1447
+ /** Slide direction for SlideIn component */
1448
+ type SlideDirection = "left" | "right" | "up" | "down";
1449
+ /** Options for the useInView hook */
1450
+ interface UseInViewOptions {
1451
+ /** IntersectionObserver rootMargin (default: "0px") */
1452
+ margin?: string;
1453
+ /** Trigger only once (default: true) */
1454
+ once?: boolean;
1455
+ /** Enable/disable observation (default: true) */
1456
+ enabled?: boolean;
1457
+ }
1458
+ /** Shared base props for animation components */
1459
+ interface AnimateBaseProps {
1460
+ children?: ReactNode;
1461
+ /** Delay in ms before animation starts */
1462
+ delay?: number;
1463
+ /** Animation duration in ms */
1464
+ duration?: number;
1465
+ /** Only animate when element scrolls into viewport */
1466
+ inView?: boolean;
1467
+ /** IntersectionObserver rootMargin for inView trigger */
1468
+ inViewMargin?: string;
1469
+ /** Fire animation only once (default: true) */
1470
+ once?: boolean;
1471
+ /** Disable animation entirely — renders children immediately */
1472
+ disabled?: boolean;
1473
+ className?: string;
1474
+ /** HTML element to render as (default: "div") */
1475
+ as?: ElementType;
1476
+ }
1477
+ interface SlideInProps extends AnimateBaseProps {
1478
+ /** Direction to slide from */
1479
+ direction?: SlideDirection;
1480
+ }
1481
+ interface StaggerChildrenProps {
1482
+ children?: ReactNode;
1483
+ /** Animation type for each child */
1484
+ animation?: Animation;
1485
+ /** Delay between each child in ms */
1486
+ staggerDelay?: number;
1487
+ /** Initial delay before first child animates */
1488
+ initialDelay?: number;
1489
+ /** Duration per child animation */
1490
+ duration?: number;
1491
+ inView?: boolean;
1492
+ inViewMargin?: string;
1493
+ once?: boolean;
1494
+ disabled?: boolean;
1495
+ className?: string;
1496
+ /** Extra classes applied to each child wrapper div */
1497
+ childClassName?: string;
1498
+ as?: ElementType;
1499
+ }
1500
+ interface AnimatedTextProps {
1501
+ /** The text string to animate */
1502
+ text: string;
1503
+ as?: ElementType;
1504
+ animation?: Animation;
1505
+ /** Split text by word or character */
1506
+ splitBy?: "word" | "character";
1507
+ /** Delay between each segment in ms */
1508
+ staggerDelay?: number;
1509
+ delay?: number;
1510
+ duration?: number;
1511
+ inView?: boolean;
1512
+ inViewMargin?: string;
1513
+ once?: boolean;
1514
+ disabled?: boolean;
1515
+ className?: string;
1516
+ /** Extra classes on each animated text segment */
1517
+ segmentClassName?: string;
1518
+ }
1519
+ interface AnimatedCounterProps {
1520
+ /** Start value (default: 0) */
1521
+ from?: number;
1522
+ /** Target value to count to */
1523
+ to: number;
1524
+ /** Count-up duration in ms (default: 2000) */
1525
+ duration?: number;
1526
+ /** Delay before counting starts in ms */
1527
+ delay?: number;
1528
+ /** Intl.NumberFormat locale for number formatting (e.g. "en-US") */
1529
+ locale?: string;
1530
+ /** Text rendered before the number */
1531
+ prefix?: string;
1532
+ /** Text rendered after the number */
1533
+ suffix?: string;
1534
+ /** Decimal places (default: 0) */
1535
+ decimals?: number;
1536
+ /** Custom number formatter — overrides locale/decimals */
1537
+ formatter?: (value: number) => string;
1538
+ inView?: boolean;
1539
+ inViewMargin?: string;
1540
+ once?: boolean;
1541
+ disabled?: boolean;
1542
+ className?: string;
1543
+ as?: ElementType;
1544
+ }
1545
+ /**
1546
+ * useInView — observe when an element enters the viewport.
1547
+ *
1548
+ * @example
1549
+ * ```tsx
1550
+ * const ref = useRef<HTMLDivElement>(null);
1551
+ * const isInView = useInView(ref, { once: true, margin: "-100px" });
1552
+ * return <div ref={ref}>{isInView ? "Visible!" : "Hidden"}</div>;
1553
+ * ```
1554
+ */
1555
+ declare function useInView(ref: RefObject<Element | null>, options?: UseInViewOptions): boolean;
1556
+ /** Fade in with opacity transition */
1557
+ declare function FadeIn(props: AnimateBaseProps): react_jsx_runtime0.JSX.Element;
1558
+ /** Fade in with upward motion */
1559
+ declare function FadeInUp(props: AnimateBaseProps): react_jsx_runtime0.JSX.Element;
1560
+ /** Scale up into view */
1561
+ declare function ScaleIn(props: AnimateBaseProps): react_jsx_runtime0.JSX.Element;
1562
+ /** Slide in from a specified direction */
1563
+ declare function SlideIn({
1564
+ direction,
1565
+ ...props
1566
+ }: SlideInProps): react_jsx_runtime0.JSX.Element;
1567
+ declare function StaggerChildren({
1568
+ children,
1569
+ animation,
1570
+ staggerDelay,
1571
+ initialDelay,
1572
+ duration,
1573
+ inView,
1574
+ inViewMargin,
1575
+ once,
1576
+ disabled,
1577
+ className,
1578
+ childClassName,
1579
+ as
1580
+ }: StaggerChildrenProps): react.ReactElement<any, string | react.JSXElementConstructor<any>>;
1581
+ declare function AnimatedText({
1582
+ text,
1583
+ as,
1584
+ animation,
1585
+ splitBy,
1586
+ staggerDelay,
1587
+ delay,
1588
+ duration,
1589
+ inView,
1590
+ inViewMargin,
1591
+ once,
1592
+ disabled,
1593
+ className,
1594
+ segmentClassName
1595
+ }: AnimatedTextProps): react.ReactElement<any, string | react.JSXElementConstructor<any>>;
1596
+ declare function AnimatedCounter({
1597
+ from,
1598
+ to,
1599
+ duration,
1600
+ delay,
1601
+ locale,
1602
+ prefix,
1603
+ suffix,
1604
+ decimals,
1605
+ formatter,
1606
+ inView,
1607
+ inViewMargin,
1608
+ once,
1609
+ disabled,
1610
+ className,
1611
+ as
1612
+ }: AnimatedCounterProps): react.ReactElement<any, string | react.JSXElementConstructor<any>>;
1613
+ //#endregion
1614
+ export { AccordionSection, type AccordionSectionProps, ActionDropdown, type ActionDropdownItem, type ActionDropdownProps, ActionTooltip, type ActionTooltipProps, type AnimateBaseProps, AnimatedCounter, type AnimatedCounterProps, AnimatedText, type AnimatedTextProps, type Animation, ApiPagination, type ApiPaginationData, type ApiPaginationProps, ButtonTooltip, type ButtonTooltipProps, CardWrapper, type CardWrapperProps, CheckboxDropdown, type CheckboxDropdownProps, ClientSubmitButton, type ClientSubmitButtonProps, CollapsibleCard, type CollapsibleCardProps, CollapsibleSection, type CollapsibleSectionProps, CollapsibleWrapper, type CollapsibleWrapperProps, ConfirmDialog, type ConfirmDialogProps, ConfirmSheet, type ConfirmSheetProps, CopyButton, type CopyButtonProps, CopyCodeBlock, type CopyCodeBlockProps, CopyText, type CopyTextProps, CustomPagination, type CustomPaginationProps, DEFAULT_COUNTRIES, DataCard, type DataCardProps, DeleteConfirmDialog, type DeleteConfirmDialogProps, DetailItem, type DetailItemProps, DetailView, type DetailViewItemData, type DetailViewProps, DialogWrapper, type DialogWrapperProps, type DragHandleProps, DraggableCard, type DraggableCardProps, DropdownWrapper, type DropdownWrapperProps, type DynamicTabItem, DynamicTabs, type DynamicTabsProps, ErrorState, ErrorStateInline, type ErrorStateInlineProps, type ErrorStateProps, FadeIn, FadeInUp, FaqAccordion, type FaqAccordionProps, type FaqItem, FeatureItem, type FeatureItemProps, FeatureList, type FeatureListItem, type FeatureListProps, FormDialog, type FormDialogProps, FormSheet, type FormSheetProps, IconItemMedia, type IconItemMediaProps, IconTooltip, type IconTooltipProps, InfoAlert, type InfoAlertProps, InfoRow, type InfoRowProps, InfoTooltip, type InfoTooltipProps, LoadingCard, type LoadingCardProps, PaginationInfo, type PaginationInfoProps, type PhoneCountry, PhoneInput, type PhoneInputProps, Pill, PillAvatar, PillAvatarGroup, type PillAvatarGroupProps, type PillAvatarProps, PillButton, type PillButtonProps, PillDelta, type PillDeltaProps, PillIcon, type PillIconProps, PillIndicator, type PillIndicatorProps, type PillProps, PillStatus, type PillStatusProps, RadioDropdown, type RadioDropdownProps, ResponsiveSplitLayout, type ResponsiveSplitLayoutProps, ScaleIn, SelectDropdown, type SelectDropdownOption, type SelectDropdownProps, SheetWrapper, type SheetWrapperProps, SimpleTable, type SimpleTableProps, type SlideDirection, SlideIn, type SlideInProps, StaggerChildren, type StaggerChildrenProps, StatsCard, type StatsCardProps, StatusBanner, type StatusBannerProps, type StatusBannerVariant, StepContent, type StepContentProps, Stepper, type StepperProps, type StepperStep, TabContent, type TabContentProps, TabTrigger, type TabTriggerProps, TableWrapper, type TableWrapperColumn, type TableWrapperEmptyState, type TableWrapperProps, TabsWrapper, type TabsWrapperProps, Thumbnail, type ThumbnailProps, Timeline, type TimelineItem, type TimelineProps, type TimelineStatus, TooltipWrapper, type TooltipWrapperProps, type UseInViewOptions, useInView };