@juv/codego-react-ui 1.0.1 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,2 +1,1203 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
1
3
 
2
- export { }
4
+ type AccordionVariant = "default" | "bordered" | "separated" | "ghost";
5
+ interface AccordionItem {
6
+ value: string;
7
+ trigger: React.ReactNode;
8
+ content: React.ReactNode;
9
+ icon?: React.ReactNode;
10
+ disabled?: boolean;
11
+ }
12
+ interface AccordionProps {
13
+ items: AccordionItem[];
14
+ type?: "single" | "multiple";
15
+ defaultValue?: string | string[];
16
+ value?: string | string[];
17
+ onChange?: (value: string | string[]) => void;
18
+ variant?: AccordionVariant;
19
+ className?: string;
20
+ }
21
+ declare function Accordion({ items, type, defaultValue, value: controlledValue, onChange, variant, className, }: AccordionProps): react_jsx_runtime.JSX.Element;
22
+
23
+ interface AvatarStackProps {
24
+ images: string[];
25
+ limit?: number;
26
+ stacked?: boolean;
27
+ shape?: "circle" | "square";
28
+ size?: number;
29
+ className?: string;
30
+ }
31
+ declare function AvatarStack({ images, limit, stacked, shape, size, className, }: AvatarStackProps): react_jsx_runtime.JSX.Element;
32
+
33
+ type BadgeVariant = "default" | "success" | "error" | "warning" | "info" | "outline" | "ghost";
34
+ type BadgeSize = "sm" | "md" | "lg";
35
+ interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
36
+ variant?: BadgeVariant;
37
+ size?: BadgeSize;
38
+ dot?: boolean;
39
+ rounded?: "md" | "full";
40
+ icon?: React.ReactNode;
41
+ removable?: boolean;
42
+ onRemove?: () => void;
43
+ }
44
+ declare function Badge({ variant, size, dot, rounded, icon, removable, onRemove, className, children, ...props }: BadgeProps): react_jsx_runtime.JSX.Element;
45
+
46
+ interface BreadcrumbItem {
47
+ label: React.ReactNode;
48
+ href?: string;
49
+ icon?: React.ReactNode;
50
+ onClick?: () => void;
51
+ }
52
+ interface BreadcrumbProps {
53
+ items: BreadcrumbItem[];
54
+ separator?: React.ReactNode;
55
+ maxItems?: number;
56
+ className?: string;
57
+ }
58
+ declare function Breadcrumb({ items, separator, maxItems, className, }: BreadcrumbProps): react_jsx_runtime.JSX.Element;
59
+
60
+ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
61
+ variant?: "primary" | "secondary" | "outline" | "ghost" | "link" | "danger" | "success";
62
+ size?: "xs" | "sm" | "md" | "lg" | "xl";
63
+ fullWidth?: boolean;
64
+ width?: number | string;
65
+ height?: number | string;
66
+ rounded?: "none" | "sm" | "md" | "lg" | "xl" | "full";
67
+ bgColor?: string;
68
+ textColor?: string;
69
+ borderColor?: string;
70
+ borderWidth?: number;
71
+ shadow?: boolean;
72
+ shadowColor?: string;
73
+ opacity?: number;
74
+ gradientFrom?: string;
75
+ gradientTo?: string;
76
+ gradientDirection?: "to-r" | "to-l" | "to-t" | "to-b" | "to-tr" | "to-tl" | "to-br" | "to-bl";
77
+ fontSize?: number;
78
+ fontWeight?: "normal" | "medium" | "semibold" | "bold";
79
+ padding?: number | string;
80
+ margin?: number | string;
81
+ label?: string;
82
+ children?: React.ReactNode;
83
+ leftIcon?: React.ReactNode;
84
+ rightIcon?: React.ReactNode;
85
+ iconOnly?: boolean;
86
+ loading?: boolean;
87
+ loadingText?: string;
88
+ loadingPosition?: "left" | "right" | "center";
89
+ disabled?: boolean;
90
+ active?: boolean;
91
+ selected?: boolean;
92
+ animate?: boolean;
93
+ transitionDuration?: number;
94
+ transitionType?: "ease" | "linear" | "spring";
95
+ hoverScale?: number;
96
+ hoverOpacity?: number;
97
+ hoverBgColor?: string;
98
+ hoverTextColor?: string;
99
+ hoverBorderColor?: string;
100
+ activeScale?: number;
101
+ pressAnimation?: "shrink" | "bounce" | "none";
102
+ rippleEffect?: boolean;
103
+ rippleColor?: string;
104
+ rippleDuration?: number;
105
+ animationType?: "bounce" | "pulse" | "shake" | "wiggle";
106
+ loopAnimation?: boolean;
107
+ animationDelay?: number;
108
+ fadeIn?: boolean;
109
+ slideIn?: boolean;
110
+ slideDirection?: "left" | "right" | "top" | "bottom";
111
+ onClick?: (e?: any) => void;
112
+ onDoubleClick?: (e?: any) => void;
113
+ onMouseEnter?: (e?: any) => void;
114
+ onMouseLeave?: (e?: any) => void;
115
+ onMouseDown?: (e?: any) => void;
116
+ onMouseUp?: (e?: any) => void;
117
+ onPress?: () => void;
118
+ onLongPress?: () => void;
119
+ onPressIn?: () => void;
120
+ onPressOut?: () => void;
121
+ onFocus?: () => void;
122
+ onBlur?: () => void;
123
+ ariaLabel?: string;
124
+ role?: string;
125
+ tabIndex?: number;
126
+ type?: "button" | "submit" | "reset";
127
+ preventDefault?: boolean;
128
+ stopPropagation?: boolean;
129
+ debounceTime?: number;
130
+ throttleTime?: number;
131
+ confirmBeforeClick?: boolean;
132
+ confirmMessage?: string;
133
+ href?: string;
134
+ target?: "_blank" | "_self";
135
+ as?: "button" | "a" | "div";
136
+ className?: string;
137
+ style?: React.CSSProperties;
138
+ testID?: string;
139
+ }
140
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLElement>>;
141
+
142
+ interface CalendarEvent {
143
+ date: Date;
144
+ label?: string;
145
+ color?: string;
146
+ }
147
+ interface CalendarProps {
148
+ value?: Date | null;
149
+ defaultValue?: Date | null;
150
+ onChange?: (date: Date) => void;
151
+ events?: CalendarEvent[];
152
+ minDate?: Date;
153
+ maxDate?: Date;
154
+ className?: string;
155
+ }
156
+ declare function Calendar({ value: controlled, defaultValue, onChange, events, minDate, maxDate, className, }: CalendarProps): react_jsx_runtime.JSX.Element;
157
+
158
+ declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
159
+ declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
160
+ declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLParagraphElement>>;
161
+ declare const CardDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
162
+ declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
163
+ declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
164
+
165
+ interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "type"> {
166
+ inline?: boolean;
167
+ label?: React.ReactNode;
168
+ accepted?: boolean;
169
+ acceptedColor?: string;
170
+ declined?: boolean;
171
+ declinedColor?: string;
172
+ height?: number | string;
173
+ width?: number | string;
174
+ }
175
+ declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>>;
176
+
177
+ interface ColorPickerProps {
178
+ value?: string;
179
+ defaultValue?: string;
180
+ onChange?: (color: string) => void;
181
+ showOpacity?: boolean;
182
+ showSwatches?: boolean;
183
+ disabled?: boolean;
184
+ className?: string;
185
+ }
186
+ declare function ColorPicker({ value: controlled, defaultValue, onChange, showOpacity, showSwatches, disabled, className, }: ColorPickerProps): react_jsx_runtime.JSX.Element;
187
+
188
+ interface ComboboxOption {
189
+ value: string;
190
+ label: string;
191
+ description?: string;
192
+ icon?: React.ReactNode;
193
+ disabled?: boolean;
194
+ group?: string;
195
+ }
196
+ interface ComboboxProps {
197
+ options: ComboboxOption[];
198
+ value?: string | string[];
199
+ defaultValue?: string | string[];
200
+ onChange?: (value: string | string[]) => void;
201
+ placeholder?: string;
202
+ searchPlaceholder?: string;
203
+ multiple?: boolean;
204
+ creatable?: boolean;
205
+ clearable?: boolean;
206
+ disabled?: boolean;
207
+ maxHeight?: string;
208
+ className?: string;
209
+ }
210
+ declare function Combobox({ options, value: controlled, defaultValue, onChange, placeholder, searchPlaceholder, multiple, creatable, clearable, disabled, maxHeight, className, }: ComboboxProps): react_jsx_runtime.JSX.Element;
211
+
212
+ interface CommandItem {
213
+ id: string;
214
+ label: string;
215
+ description?: string;
216
+ icon?: React.ReactNode;
217
+ shortcut?: string;
218
+ group?: string;
219
+ onSelect: () => void;
220
+ keywords?: string[];
221
+ }
222
+ interface CommandPaletteProps {
223
+ items: CommandItem[];
224
+ open?: boolean;
225
+ onOpenChange?: (open: boolean) => void;
226
+ placeholder?: string;
227
+ maxRecent?: number;
228
+ className?: string;
229
+ }
230
+ declare function CommandPalette({ items, open: controlled, onOpenChange, placeholder, maxRecent, className, }: CommandPaletteProps): react_jsx_runtime.JSX.Element;
231
+
232
+ interface ContextMenuItem {
233
+ label?: React.ReactNode;
234
+ icon?: React.ReactNode;
235
+ shortcut?: string;
236
+ onClick?: () => void;
237
+ disabled?: boolean;
238
+ danger?: boolean;
239
+ separator?: boolean;
240
+ children?: ContextMenuItem[];
241
+ }
242
+ interface ContextMenuProps {
243
+ items: ContextMenuItem[];
244
+ children: React.ReactNode;
245
+ className?: string;
246
+ }
247
+ declare function ContextMenu({ items, children, className }: ContextMenuProps): react_jsx_runtime.JSX.Element;
248
+
249
+ type TrendDir = "up" | "down" | "neutral";
250
+ type SemanticColor = "primary" | "info" | "success" | "warning" | "danger" | "muted";
251
+ interface StatsWidgetProps {
252
+ title: string;
253
+ value: string | number;
254
+ subtitle?: string;
255
+ icon?: React.ReactNode;
256
+ iconColor?: SemanticColor;
257
+ trend?: TrendDir;
258
+ trendValue?: string;
259
+ trendLabel?: string;
260
+ delta?: string | number;
261
+ sparkline?: number[];
262
+ sparklineColor?: SemanticColor;
263
+ progress?: number;
264
+ progressColor?: SemanticColor;
265
+ badge?: React.ReactNode;
266
+ footer?: React.ReactNode;
267
+ animate?: boolean;
268
+ loading?: boolean;
269
+ onClick?: () => void;
270
+ className?: string;
271
+ }
272
+ declare function StatsWidget({ title, value, subtitle, icon, iconColor, trend, trendValue, trendLabel, delta, sparkline, sparklineColor, progress, progressColor, badge, footer, animate, loading, onClick, className, }: StatsWidgetProps): react_jsx_runtime.JSX.Element;
273
+ interface ChartDataPoint {
274
+ label: string;
275
+ value: number;
276
+ color?: SemanticColor;
277
+ }
278
+ interface ChartWidgetProps {
279
+ title: string;
280
+ description?: string;
281
+ data: ChartDataPoint[];
282
+ type?: "bar" | "line" | "donut";
283
+ color?: SemanticColor;
284
+ height?: number;
285
+ showLegend?: boolean;
286
+ showValues?: boolean;
287
+ showGrid?: boolean;
288
+ unit?: string;
289
+ action?: React.ReactNode;
290
+ footer?: React.ReactNode;
291
+ loading?: boolean;
292
+ className?: string;
293
+ }
294
+ declare function ChartWidget({ title, description, data, type, color, height, showLegend, showValues, showGrid, unit, action, footer, loading, className, }: ChartWidgetProps): react_jsx_runtime.JSX.Element;
295
+ interface TableWidgetProps {
296
+ title: string;
297
+ description?: string;
298
+ action?: React.ReactNode;
299
+ footer?: React.ReactNode;
300
+ children: React.ReactNode;
301
+ className?: string;
302
+ }
303
+ declare function TableWidget({ title, description, action, footer, children, className }: TableWidgetProps): react_jsx_runtime.JSX.Element;
304
+ interface ComposableWidgetProps {
305
+ title?: string;
306
+ description?: string;
307
+ headerLeft?: React.ReactNode;
308
+ headerRight?: React.ReactNode;
309
+ toolbar?: React.ReactNode;
310
+ children: React.ReactNode;
311
+ footer?: React.ReactNode;
312
+ padding?: "none" | "sm" | "md";
313
+ className?: string;
314
+ }
315
+ declare function ComposableWidget({ title, description, headerLeft, headerRight, toolbar, children, footer, padding, className, }: ComposableWidgetProps): react_jsx_runtime.JSX.Element;
316
+
317
+ interface DataGridColumn<T> {
318
+ key: keyof T | string;
319
+ header: React.ReactNode;
320
+ render?: (row: T, idx: number) => React.ReactNode;
321
+ sortable?: boolean;
322
+ filterable?: boolean;
323
+ width?: string;
324
+ align?: "left" | "center" | "right";
325
+ }
326
+ interface DataGridProps<T> {
327
+ columns: DataGridColumn<T>[];
328
+ data: T[];
329
+ rowKey: keyof T | ((row: T) => string);
330
+ selectable?: boolean;
331
+ selected?: string[];
332
+ onSelectChange?: (keys: string[]) => void;
333
+ pageSize?: number;
334
+ showPagination?: boolean;
335
+ showColumnToggle?: boolean;
336
+ loading?: boolean;
337
+ emptyMessage?: string;
338
+ className?: string;
339
+ onRowClick?: (row: T) => void;
340
+ }
341
+ declare function DataGrid<T extends Record<string, unknown>>({ columns, data, rowKey, selectable, selected: controlledSelected, onSelectChange, pageSize, showPagination, showColumnToggle, loading, emptyMessage, className, onRowClick, }: DataGridProps<T>): react_jsx_runtime.JSX.Element;
342
+
343
+ interface DatePickerProps {
344
+ mode: "date" | "dateTime" | "time";
345
+ value: string;
346
+ disabledDates?: string[];
347
+ disabledDateTimes?: string[];
348
+ onChange: (value: string) => void;
349
+ onClose: () => void;
350
+ }
351
+ declare function DatePickerPopup({ mode, value, disabledDates, disabledDateTimes, onChange, onClose, }: DatePickerProps): react_jsx_runtime.JSX.Element;
352
+
353
+ interface DateRange {
354
+ from: Date | null;
355
+ to: Date | null;
356
+ }
357
+ interface DateRangePickerProps {
358
+ value?: DateRange;
359
+ defaultValue?: DateRange;
360
+ onChange?: (range: DateRange) => void;
361
+ placeholder?: string;
362
+ disabled?: boolean;
363
+ minDate?: Date;
364
+ maxDate?: Date;
365
+ className?: string;
366
+ }
367
+ declare function DateRangePicker({ value: controlled, defaultValue, onChange, placeholder, disabled, minDate, maxDate, className, }: DateRangePickerProps): react_jsx_runtime.JSX.Element;
368
+
369
+ type DrawerSide = "left" | "right" | "top" | "bottom";
370
+ interface DrawerProps {
371
+ open: boolean;
372
+ onClose: () => void;
373
+ side?: DrawerSide;
374
+ size?: string;
375
+ title?: React.ReactNode;
376
+ description?: React.ReactNode;
377
+ footer?: React.ReactNode;
378
+ overlay?: boolean;
379
+ closeOnOverlay?: boolean;
380
+ children?: React.ReactNode;
381
+ className?: string;
382
+ }
383
+ declare function Drawer({ open, onClose, side, size, title, description, footer, overlay, closeOnOverlay, children, className, }: DrawerProps): react_jsx_runtime.JSX.Element;
384
+
385
+ interface DropdownProps {
386
+ trigger: React.ReactNode;
387
+ children: React.ReactNode;
388
+ align?: "left" | "right" | "center";
389
+ placement?: "bottom" | "top";
390
+ width?: "sm" | "md" | "lg" | "auto";
391
+ disabled?: boolean;
392
+ closeOnSelect?: boolean;
393
+ onOpenChange?: (open: boolean) => void;
394
+ className?: string;
395
+ }
396
+ declare function Dropdown({ trigger, children, align, placement, width, disabled, closeOnSelect, onOpenChange, className, }: DropdownProps): react_jsx_runtime.JSX.Element;
397
+
398
+ type ImageEditorMode = "crop" | "rotate" | "flip" | "brightness" | "contrast";
399
+ interface ImageEditorOptions {
400
+ /** Which tools to show in the editor. Defaults to all. */
401
+ modes?: ImageEditorMode[];
402
+ /** Lock crop to aspect ratio e.g. "1:1", "16:9", "4:3" */
403
+ cropAspectRatio?: string;
404
+ /** Initial brightness value 0–200, default 100 */
405
+ defaultBrightness?: number;
406
+ /** Initial contrast value 0–200, default 100 */
407
+ defaultContrast?: number;
408
+ }
409
+ interface FileTypeValidation {
410
+ /** Allowed file extensions e.g. [".jpg", ".png", ".pdf"] */
411
+ allowedFileTypes?: string[];
412
+ /** Blocked file extensions e.g. [".exe", ".bat"] */
413
+ rejectedFileTypes?: string[];
414
+ /** Allowed MIME types e.g. ["image/png", "application/pdf"] */
415
+ mimeTypes?: string[];
416
+ }
417
+ interface FileUploadProps extends React.HTMLAttributes<HTMLDivElement>, FileTypeValidation {
418
+ onFileSelect?: (file: File | null) => void;
419
+ onFilesChange?: (files: File[]) => void;
420
+ /** Called when any validation rule fails */
421
+ onValidationError?: (message: string, file: File) => void;
422
+ accept?: string;
423
+ multiple?: boolean;
424
+ maxSize?: number;
425
+ maxFiles?: number;
426
+ disabled?: boolean;
427
+ reorderable?: boolean;
428
+ imagePreviewHeight?: number;
429
+ panelAspectRatio?: string;
430
+ label?: string;
431
+ helperText?: string;
432
+ hint?: string;
433
+ /** Enable inline image editor after selecting an image */
434
+ imageEditor?: boolean;
435
+ /** Image editor configuration */
436
+ imageEditorOptions?: ImageEditorOptions;
437
+ className?: string;
438
+ }
439
+ declare function FileUpload({ className, onFileSelect, onFilesChange, onValidationError, accept, multiple, maxSize, maxFiles, disabled, reorderable, imagePreviewHeight, panelAspectRatio, label, helperText, hint, imageEditor, imageEditorOptions, allowedFileTypes, rejectedFileTypes, mimeTypes, ...props }: FileUploadProps): react_jsx_runtime.JSX.Element;
440
+
441
+ type FlexDirection = "row" | "row-reverse" | "col" | "col-reverse";
442
+ type FlexWrap = "nowrap" | "wrap" | "wrap-reverse";
443
+ type FlexAlign = "start" | "center" | "end" | "stretch" | "baseline";
444
+ type FlexJustify = "start" | "center" | "end" | "between" | "around" | "evenly";
445
+ type FlexGap = "none" | "xs" | "sm" | "md" | "lg" | "xl";
446
+ interface FlexLayoutProps {
447
+ direction?: FlexDirection;
448
+ wrap?: FlexWrap;
449
+ gap?: FlexGap;
450
+ align?: FlexAlign;
451
+ justify?: FlexJustify;
452
+ inline?: boolean;
453
+ children: React.ReactNode;
454
+ className?: string;
455
+ }
456
+ declare function FlexLayout({ direction, wrap, gap, align, justify, inline, children, className, }: FlexLayoutProps): react_jsx_runtime.JSX.Element;
457
+
458
+ type GridCols = 1 | 2 | 3 | 4 | 5 | 6 | 12;
459
+ type GridGap = "none" | "xs" | "sm" | "md" | "lg" | "xl";
460
+ type GridAlign = "start" | "center" | "end" | "stretch";
461
+ interface GridLayoutProps {
462
+ cols?: GridCols;
463
+ smCols?: GridCols;
464
+ mdCols?: GridCols;
465
+ lgCols?: GridCols;
466
+ gap?: GridGap;
467
+ rowGap?: GridGap;
468
+ colGap?: GridGap;
469
+ align?: GridAlign;
470
+ justify?: GridAlign;
471
+ children: React.ReactNode;
472
+ className?: string;
473
+ }
474
+ declare function GridLayout({ cols, smCols, mdCols, lgCols, gap, rowGap, colGap, align, justify, children, className, }: GridLayoutProps): react_jsx_runtime.JSX.Element;
475
+
476
+ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "prefix" | "inputMode"> {
477
+ inputType?: "email" | "numeric" | "integer" | "password" | "tel" | "url" | "color" | "date" | "dateTime" | "time";
478
+ inputMode?: "decimal" | "text" | "numeric" | "tel" | "url" | "email" | "search" | "none";
479
+ datalist?: string[];
480
+ autocapitalize?: "none" | "sentences" | "words" | "characters" | boolean;
481
+ prefix?: React.ReactNode;
482
+ suffix?: React.ReactNode;
483
+ regexValidation?: {
484
+ pattern: RegExp;
485
+ message?: string;
486
+ };
487
+ prefixIcon?: React.ReactNode;
488
+ prefixIconColor?: "success" | "error" | "warning" | "info" | (string & {});
489
+ suffixIcon?: React.ReactNode;
490
+ suffixIconColor?: "success" | "error" | "warning" | "info" | (string & {});
491
+ revealable?: boolean;
492
+ label?: string;
493
+ mask?: string;
494
+ stripCharacters?: string;
495
+ readOnly?: boolean;
496
+ minLength?: number;
497
+ maxLength?: number;
498
+ length?: number;
499
+ step?: number;
500
+ placeholder?: string;
501
+ disabledDates?: string[];
502
+ disabledDateTimes?: string[];
503
+ }
504
+ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
505
+
506
+ interface KanbanCard {
507
+ id: string;
508
+ title: React.ReactNode;
509
+ description?: React.ReactNode;
510
+ tags?: string[];
511
+ assignee?: React.ReactNode;
512
+ priority?: "low" | "medium" | "high";
513
+ }
514
+ interface KanbanColumn {
515
+ id: string;
516
+ title: React.ReactNode;
517
+ color?: string;
518
+ cards: KanbanCard[];
519
+ }
520
+ interface KanbanBoardProps {
521
+ columns: KanbanColumn[];
522
+ onChange?: (columns: KanbanColumn[]) => void;
523
+ onAddCard?: (columnId: string) => void;
524
+ className?: string;
525
+ }
526
+ declare function KanbanBoard({ columns: controlled, onChange, onAddCard, className }: KanbanBoardProps): react_jsx_runtime.JSX.Element;
527
+
528
+ declare const Label: React.ForwardRefExoticComponent<React.LabelHTMLAttributes<HTMLLabelElement> & React.RefAttributes<HTMLLabelElement>>;
529
+
530
+ interface ModalProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
531
+ isOpen: boolean;
532
+ onClose?: () => void;
533
+ title?: React.ReactNode;
534
+ description?: React.ReactNode;
535
+ children: React.ReactNode;
536
+ footer?: React.ReactNode;
537
+ unchange?: boolean;
538
+ className?: string;
539
+ }
540
+ declare function Modal({ isOpen, onClose, title, description, children, footer, unchange, className, ...props }: ModalProps): react_jsx_runtime.JSX.Element;
541
+
542
+ interface ModalUnchangeProps {
543
+ isOpen: boolean;
544
+ /** Title shown in the header */
545
+ title?: React.ReactNode;
546
+ /** Subtitle / description */
547
+ description?: React.ReactNode;
548
+ /** Icon shown next to the title */
549
+ icon?: React.ReactNode;
550
+ /** Footer action buttons */
551
+ footer?: React.ReactNode;
552
+ children?: React.ReactNode;
553
+ className?: string;
554
+ }
555
+ /**
556
+ * A modal that cannot be dismissed by clicking the backdrop or pressing Escape.
557
+ * Use for critical flows (e.g. accept terms, mandatory onboarding).
558
+ */
559
+ declare function ModalUnchange({ isOpen, title, description, icon, footer, children, className, }: ModalUnchangeProps): react_jsx_runtime.JSX.Element;
560
+ type ConfirmVariant = "danger" | "warning" | "success" | "info";
561
+ interface ModalConfirmationProps {
562
+ isOpen: boolean;
563
+ onClose: () => void;
564
+ onConfirm: () => void;
565
+ /** Visual variant — affects icon and confirm button color */
566
+ variant?: ConfirmVariant;
567
+ title?: React.ReactNode;
568
+ description?: React.ReactNode;
569
+ /** Label for the confirm button */
570
+ confirmLabel?: string;
571
+ /** Label for the cancel button */
572
+ cancelLabel?: string;
573
+ /** Show a loading spinner on the confirm button */
574
+ loading?: boolean;
575
+ className?: string;
576
+ }
577
+ /**
578
+ * A two-button confirmation modal with danger / warning / success / info variants.
579
+ */
580
+ declare function ModalConfirmation({ isOpen, onClose, onConfirm, variant, title, description, confirmLabel, cancelLabel, loading, className, }: ModalConfirmationProps): react_jsx_runtime.JSX.Element;
581
+ interface FormField {
582
+ /** Unique key */
583
+ name: string;
584
+ label: string;
585
+ type: "text" | "email" | "password" | "textarea" | "select";
586
+ placeholder?: string;
587
+ required?: boolean;
588
+ /** Options for type="select" */
589
+ options?: {
590
+ label: string;
591
+ value: string;
592
+ }[];
593
+ }
594
+ interface ModalWithFormsProps {
595
+ isOpen: boolean;
596
+ onClose: () => void;
597
+ /** Called with the form values on submit */
598
+ onSubmit: (values: Record<string, string>) => void;
599
+ title?: React.ReactNode;
600
+ description?: React.ReactNode;
601
+ fields: FormField[];
602
+ /** Label for the submit button */
603
+ submitLabel?: string;
604
+ /** Label for the cancel button */
605
+ cancelLabel?: string;
606
+ /** Show loading state on submit button */
607
+ loading?: boolean;
608
+ className?: string;
609
+ }
610
+ /**
611
+ * A modal that renders a dynamic form from a `fields` array.
612
+ */
613
+ declare function ModalWithForms({ isOpen, onClose, onSubmit, title, description, fields, submitLabel, cancelLabel, loading, className, }: ModalWithFormsProps): react_jsx_runtime.JSX.Element;
614
+
615
+ interface LeftSidebarProps {
616
+ /** Width of the sidebar, default "w-64" */
617
+ width?: string;
618
+ /** Header slot (logo, brand) */
619
+ header?: React.ReactNode;
620
+ /** Footer slot (user profile, logout) */
621
+ footer?: React.ReactNode;
622
+ children?: React.ReactNode;
623
+ className?: string;
624
+ /** Collapsed state — icon-only mode */
625
+ collapsed?: boolean;
626
+ }
627
+ declare function LeftSidebar({ width, header, footer, children, className, collapsed, }: LeftSidebarProps): react_jsx_runtime.JSX.Element;
628
+ interface RightSidebarProps {
629
+ /** Width of the sidebar, default "w-72" */
630
+ width?: string;
631
+ /** Header slot */
632
+ header?: React.ReactNode;
633
+ /** Footer slot */
634
+ footer?: React.ReactNode;
635
+ children?: React.ReactNode;
636
+ className?: string;
637
+ /** Stick the sidebar to the viewport — position: sticky, top-0, self-start */
638
+ sticky?: boolean;
639
+ /** Max height when sticky, default "100vh" */
640
+ stickyMaxHeight?: string;
641
+ }
642
+ declare function RightSidebar({ width, header, footer, children, className, sticky, stickyMaxHeight, }: RightSidebarProps): react_jsx_runtime.JSX.Element;
643
+ interface TopbarProps {
644
+ /** Left slot — logo, hamburger, breadcrumb */
645
+ left?: React.ReactNode;
646
+ /** Center slot — search, title */
647
+ center?: React.ReactNode;
648
+ /** Right slot — actions, avatar, notifications */
649
+ right?: React.ReactNode;
650
+ /** Height class, default "h-16" */
651
+ height?: string;
652
+ /** Sticky to top */
653
+ sticky?: boolean;
654
+ className?: string;
655
+ }
656
+ declare function Topbar({ left, center, right, height, sticky, className, }: TopbarProps): react_jsx_runtime.JSX.Element;
657
+ interface NavItem {
658
+ label: string;
659
+ value: string;
660
+ icon?: React.ReactNode;
661
+ badge?: React.ReactNode;
662
+ disabled?: boolean;
663
+ href?: string;
664
+ }
665
+ interface NavigationProps {
666
+ items: NavItem[];
667
+ /** "vertical" | "horizontal", default "vertical" */
668
+ orientation?: "vertical" | "horizontal";
669
+ /** Active item value */
670
+ value?: string;
671
+ onChange?: (value: string) => void;
672
+ className?: string;
673
+ /** Collapsed — show icons only (vertical) */
674
+ collapsed?: boolean;
675
+ }
676
+ declare function Navigation({ items, orientation, value, onChange, className, collapsed, }: NavigationProps): react_jsx_runtime.JSX.Element;
677
+ interface NavGroup {
678
+ label: string;
679
+ items: NavItem[];
680
+ /** Collapsible group */
681
+ collapsible?: boolean;
682
+ /** Default open state for collapsible groups */
683
+ defaultOpen?: boolean;
684
+ }
685
+ interface GroupNavigationProps {
686
+ groups: NavGroup[];
687
+ value?: string;
688
+ onChange?: (value: string) => void;
689
+ className?: string;
690
+ collapsed?: boolean;
691
+ }
692
+ declare function GroupNavigation({ groups, value, onChange, className, collapsed, }: GroupNavigationProps): react_jsx_runtime.JSX.Element;
693
+
694
+ type ToastVariant = "default" | "success" | "error" | "warning" | "info";
695
+ type ToastPosition = "top-left" | "top-center" | "top-right" | "bottom-left" | "bottom-center" | "bottom-right";
696
+ interface ToastItem {
697
+ id: string;
698
+ title?: React.ReactNode;
699
+ description?: React.ReactNode;
700
+ variant?: ToastVariant;
701
+ /** Duration in ms before auto-dismiss. 0 = no auto-dismiss */
702
+ duration?: number;
703
+ /** Show a progress bar counting down the duration */
704
+ showProgress?: boolean;
705
+ /** Custom icon — overrides the variant icon */
706
+ icon?: React.ReactNode;
707
+ /** Action button */
708
+ action?: {
709
+ label: string;
710
+ onClick: () => void;
711
+ };
712
+ /** Whether the toast can be manually closed */
713
+ closable?: boolean;
714
+ /** Override the provider's default position for this toast */
715
+ position?: ToastPosition;
716
+ }
717
+ interface ToastContextValue {
718
+ toast: (item: Omit<ToastItem, "id">) => string;
719
+ dismiss: (id: string) => void;
720
+ dismissAll: () => void;
721
+ }
722
+ declare function useToast(): ToastContextValue;
723
+ interface ToastProviderProps {
724
+ children: React.ReactNode;
725
+ /** Default position for all toasts */
726
+ position?: ToastPosition;
727
+ /** Max toasts visible at once */
728
+ maxToasts?: number;
729
+ }
730
+ declare function ToastProvider({ children, position, maxToasts, }: ToastProviderProps): react_jsx_runtime.JSX.Element;
731
+ type NotificationVariant = "default" | "success" | "error" | "warning" | "info";
732
+ interface NotificationItem {
733
+ id: string;
734
+ title: React.ReactNode;
735
+ description?: React.ReactNode;
736
+ variant?: NotificationVariant;
737
+ /** Timestamp label e.g. "2m ago" */
738
+ time?: string;
739
+ /** Avatar or icon node shown on the left */
740
+ avatar?: React.ReactNode;
741
+ /** Whether the notification has been read */
742
+ read?: boolean;
743
+ /** Click handler for the whole row */
744
+ onClick?: () => void;
745
+ /** Action buttons */
746
+ actions?: {
747
+ label: string;
748
+ onClick: () => void;
749
+ variant?: "primary" | "ghost";
750
+ }[];
751
+ }
752
+ interface NotificationPanelProps {
753
+ items: NotificationItem[];
754
+ /** Header title */
755
+ title?: string;
756
+ /** Show a badge with unread count on the bell icon trigger */
757
+ showBadge?: boolean;
758
+ /** Called when "Mark all read" is clicked */
759
+ onMarkAllRead?: () => void;
760
+ /** Called when "Clear all" is clicked */
761
+ onClearAll?: () => void;
762
+ /** Called when a single item is dismissed */
763
+ onDismiss?: (id: string) => void;
764
+ /** Empty state message */
765
+ emptyMessage?: string;
766
+ className?: string;
767
+ /** Max height of the list */
768
+ maxHeight?: string;
769
+ }
770
+ declare function NotificationPanel({ items, title, showBadge, onMarkAllRead, onClearAll, onDismiss, emptyMessage, className, maxHeight, }: NotificationPanelProps): react_jsx_runtime.JSX.Element;
771
+ interface NotificationBannerProps {
772
+ variant?: NotificationVariant;
773
+ title?: React.ReactNode;
774
+ description?: React.ReactNode;
775
+ icon?: React.ReactNode;
776
+ closable?: boolean;
777
+ onClose?: () => void;
778
+ action?: {
779
+ label: string;
780
+ onClick: () => void;
781
+ };
782
+ className?: string;
783
+ }
784
+ declare function NotificationBanner({ variant, title, description, icon, closable, onClose, action, className, }: NotificationBannerProps): react_jsx_runtime.JSX.Element;
785
+
786
+ interface OtpInputProps {
787
+ length?: number;
788
+ value?: string;
789
+ onChange?: (value: string) => void;
790
+ onComplete?: (value: string) => void;
791
+ mask?: boolean;
792
+ disabled?: boolean;
793
+ invalid?: boolean;
794
+ className?: string;
795
+ }
796
+ declare function OtpInput({ length, value: controlled, onChange, onComplete, mask, disabled, invalid, className, }: OtpInputProps): react_jsx_runtime.JSX.Element;
797
+
798
+ interface PaginationProps {
799
+ page: number;
800
+ total: number;
801
+ pageSize?: number;
802
+ siblingCount?: number;
803
+ showFirstLast?: boolean;
804
+ showPageSize?: boolean;
805
+ pageSizeOptions?: number[];
806
+ onPageChange: (page: number) => void;
807
+ onPageSizeChange?: (size: number) => void;
808
+ className?: string;
809
+ }
810
+ declare function Pagination({ page, total, pageSize, siblingCount, showFirstLast, showPageSize, pageSizeOptions, onPageChange, onPageSizeChange, className, }: PaginationProps): react_jsx_runtime.JSX.Element;
811
+
812
+ type PopoverPlacement = "top" | "bottom" | "left" | "right" | "top-start" | "top-end" | "bottom-start" | "bottom-end";
813
+ interface PopoverProps {
814
+ trigger: React.ReactNode;
815
+ content: React.ReactNode;
816
+ placement?: PopoverPlacement;
817
+ triggerOn?: "click" | "hover";
818
+ open?: boolean;
819
+ onOpenChange?: (open: boolean) => void;
820
+ className?: string;
821
+ }
822
+ declare function Popover({ trigger, content, placement, triggerOn, open: controlled, onOpenChange, className, }: PopoverProps): react_jsx_runtime.JSX.Element;
823
+
824
+ type ProgressVariant = "default" | "success" | "error" | "warning" | "info";
825
+ type ProgressSize = "xs" | "sm" | "md" | "lg";
826
+ interface ProgressProps {
827
+ value?: number;
828
+ max?: number;
829
+ variant?: ProgressVariant;
830
+ size?: ProgressSize;
831
+ label?: React.ReactNode;
832
+ showValue?: boolean;
833
+ animated?: boolean;
834
+ striped?: boolean;
835
+ indeterminate?: boolean;
836
+ className?: string;
837
+ }
838
+ interface CircularProgressProps {
839
+ value?: number;
840
+ max?: number;
841
+ variant?: ProgressVariant;
842
+ size?: number;
843
+ strokeWidth?: number;
844
+ label?: React.ReactNode;
845
+ showValue?: boolean;
846
+ indeterminate?: boolean;
847
+ className?: string;
848
+ }
849
+ declare function Progress({ value, max, variant, size, label, showValue, animated, striped, indeterminate, className, }: ProgressProps): react_jsx_runtime.JSX.Element;
850
+ declare function CircularProgress({ value, max, variant, size, strokeWidth, label, showValue, indeterminate, className, }: CircularProgressProps): react_jsx_runtime.JSX.Element;
851
+
852
+ type RadioVariant = "default" | "card" | "button";
853
+ type RadioSize = "sm" | "md" | "lg";
854
+ interface RadioOption {
855
+ value: string;
856
+ label: React.ReactNode;
857
+ description?: React.ReactNode;
858
+ icon?: React.ReactNode;
859
+ disabled?: boolean;
860
+ }
861
+ interface RadioGroupProps {
862
+ options: RadioOption[];
863
+ value?: string;
864
+ defaultValue?: string;
865
+ onChange?: (value: string) => void;
866
+ variant?: RadioVariant;
867
+ size?: RadioSize;
868
+ orientation?: "horizontal" | "vertical";
869
+ name?: string;
870
+ className?: string;
871
+ }
872
+ declare function RadioGroup({ options, value: controlledValue, defaultValue, onChange, variant, size, orientation, name, className, }: RadioGroupProps): react_jsx_runtime.JSX.Element;
873
+
874
+ interface RepeaterProps<T> {
875
+ items: T[];
876
+ onAdd: () => void;
877
+ onRemove: (index: number) => void;
878
+ renderItem: (item: T, index: number) => React.ReactNode;
879
+ addButtonText?: string;
880
+ className?: string;
881
+ }
882
+ declare function Repeater<T>({ items, onAdd, onRemove, renderItem, addButtonText, className, }: RepeaterProps<T>): react_jsx_runtime.JSX.Element;
883
+
884
+ interface PanelProps {
885
+ sidebar?: React.ReactNode;
886
+ sidebarHeader?: React.ReactNode;
887
+ sidebarFooter?: React.ReactNode;
888
+ sidebarWidth?: string;
889
+ topbar?: React.ReactNode;
890
+ topbarTrailing?: React.ReactNode;
891
+ defaultCollapsed?: boolean;
892
+ collapsible?: boolean;
893
+ height?: string;
894
+ children?: React.ReactNode;
895
+ className?: string;
896
+ }
897
+ declare function Panel({ sidebar, sidebarHeader, sidebarFooter, sidebarWidth, topbar, topbarTrailing, defaultCollapsed, collapsible, height, children, className, }: PanelProps): react_jsx_runtime.JSX.Element;
898
+ declare function PanelSidebarItem({ icon: Icon, label, active, onClick, }: {
899
+ icon?: React.ElementType;
900
+ label: string;
901
+ active?: boolean;
902
+ onClick?: () => void;
903
+ }): react_jsx_runtime.JSX.Element;
904
+ declare function PanelSidebarGroup({ title, children, }: {
905
+ title?: string;
906
+ children: React.ReactNode;
907
+ }): react_jsx_runtime.JSX.Element;
908
+
909
+ interface ResizablePanelsProps {
910
+ children: [React.ReactNode, React.ReactNode];
911
+ orientation?: "horizontal" | "vertical";
912
+ defaultSize?: number;
913
+ minSize?: number;
914
+ maxSize?: number;
915
+ handleClassName?: string;
916
+ className?: string;
917
+ }
918
+ declare function ResizablePanels({ children, orientation, defaultSize, minSize, maxSize, handleClassName, className, }: ResizablePanelsProps): react_jsx_runtime.JSX.Element;
919
+
920
+ interface RichTextEditorProps {
921
+ value?: string;
922
+ defaultValue?: string;
923
+ onChange?: (html: string) => void;
924
+ placeholder?: string;
925
+ minHeight?: string;
926
+ disabled?: boolean;
927
+ className?: string;
928
+ }
929
+ declare function RichTextEditor({ value: controlled, defaultValue, onChange, placeholder, minHeight, disabled, className, }: RichTextEditorProps): react_jsx_runtime.JSX.Element;
930
+
931
+ interface ScrollAreaProps extends React.HTMLAttributes<HTMLDivElement> {
932
+ maxHeight?: string;
933
+ maxWidth?: string;
934
+ orientation?: "vertical" | "horizontal" | "both";
935
+ }
936
+ declare function ScrollArea({ maxHeight, maxWidth, orientation, className, children, style, ...props }: ScrollAreaProps): react_jsx_runtime.JSX.Element;
937
+
938
+ type SectionVariant = "default" | "card" | "bordered" | "ghost";
939
+ interface SectionProps {
940
+ title?: React.ReactNode;
941
+ description?: React.ReactNode;
942
+ icon?: React.ReactNode;
943
+ action?: React.ReactNode;
944
+ children: React.ReactNode;
945
+ variant?: SectionVariant;
946
+ collapsible?: boolean;
947
+ defaultOpen?: boolean;
948
+ divider?: boolean;
949
+ className?: string;
950
+ contentClassName?: string;
951
+ }
952
+ declare function SectionBlock({ title, description, icon, action, children, variant, collapsible, defaultOpen, divider, className, contentClassName, }: SectionProps): react_jsx_runtime.JSX.Element;
953
+
954
+ type SelectOption = Record<string | number, string>;
955
+ interface SelectProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
956
+ options: SelectOption[];
957
+ value?: string | string[];
958
+ onChange?: (value: string | string[]) => void;
959
+ placeholder?: string;
960
+ searchable?: boolean;
961
+ native?: boolean;
962
+ label?: string;
963
+ loadingMessage?: string;
964
+ noSearchResultsMessage?: string;
965
+ searchingMessage?: string;
966
+ multiple?: boolean;
967
+ reorderable?: boolean;
968
+ disabled?: boolean;
969
+ createOptionForm?: React.ReactNode;
970
+ suffixIcon?: React.ReactNode;
971
+ suffixIconColor?: "success" | "error" | "warning" | "info" | (string & {});
972
+ }
973
+ declare function Select({ options, value, onChange, placeholder, searchable, native, label, loadingMessage, noSearchResultsMessage, searchingMessage, multiple, reorderable, disabled, createOptionForm, suffixIcon, suffixIconColor, className, ...props }: SelectProps): react_jsx_runtime.JSX.Element;
974
+
975
+ declare function Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react_jsx_runtime.JSX.Element;
976
+
977
+ interface SliderProps {
978
+ value?: number;
979
+ defaultValue?: number;
980
+ min?: number;
981
+ max?: number;
982
+ step?: number;
983
+ onChange?: (value: number) => void;
984
+ disabled?: boolean;
985
+ showTooltip?: boolean;
986
+ showMarks?: boolean;
987
+ marks?: {
988
+ value: number;
989
+ label?: string;
990
+ }[];
991
+ label?: React.ReactNode;
992
+ showValue?: boolean;
993
+ className?: string;
994
+ }
995
+ interface RangeSliderProps {
996
+ value?: [number, number];
997
+ defaultValue?: [number, number];
998
+ min?: number;
999
+ max?: number;
1000
+ step?: number;
1001
+ onChange?: (value: [number, number]) => void;
1002
+ disabled?: boolean;
1003
+ showTooltip?: boolean;
1004
+ label?: React.ReactNode;
1005
+ showValue?: boolean;
1006
+ className?: string;
1007
+ }
1008
+ declare function Slider({ value: controlled, defaultValue, min, max, step, onChange, disabled, showTooltip, showMarks, marks, label, showValue, className, }: SliderProps): react_jsx_runtime.JSX.Element;
1009
+ declare function RangeSlider({ value: controlled, defaultValue, min, max, step, onChange, disabled, showTooltip, label, showValue, className, }: RangeSliderProps): react_jsx_runtime.JSX.Element;
1010
+
1011
+ type StatTrend = "up" | "down" | "neutral";
1012
+ interface StatCardProps {
1013
+ title: React.ReactNode;
1014
+ value: React.ReactNode;
1015
+ change?: number;
1016
+ changeLabel?: string;
1017
+ trend?: StatTrend;
1018
+ icon?: React.ReactNode;
1019
+ sparkline?: number[];
1020
+ description?: string;
1021
+ loading?: boolean;
1022
+ className?: string;
1023
+ }
1024
+ declare function StatCard({ title, value, change, changeLabel, trend, icon, sparkline, description, loading, className, }: StatCardProps): react_jsx_runtime.JSX.Element;
1025
+
1026
+ interface Step {
1027
+ label: React.ReactNode;
1028
+ description?: React.ReactNode;
1029
+ icon?: React.ReactNode;
1030
+ content?: React.ReactNode;
1031
+ optional?: boolean;
1032
+ }
1033
+ interface StepperProps {
1034
+ steps: Step[];
1035
+ current?: number;
1036
+ defaultCurrent?: number;
1037
+ onChange?: (step: number) => void;
1038
+ orientation?: "horizontal" | "vertical";
1039
+ clickable?: boolean;
1040
+ className?: string;
1041
+ }
1042
+ declare function Stepper({ steps, current: controlled, defaultCurrent, onChange, orientation, clickable, className, }: StepperProps): react_jsx_runtime.JSX.Element;
1043
+
1044
+ interface Column<T> {
1045
+ key: keyof T | string;
1046
+ title: string;
1047
+ type?: "text" | "image" | "badge" | "icon" | "stack" | "select" | "toggle" | "color" | "checkbox";
1048
+ stackProps?: {
1049
+ limit?: number;
1050
+ stacked?: boolean;
1051
+ shape?: "circle" | "square";
1052
+ size?: number;
1053
+ };
1054
+ /** Options for type="select" */
1055
+ selectOptions?: string[];
1056
+ render?: (item: T) => React.ReactNode;
1057
+ sortable?: boolean;
1058
+ /** Called when a cell value changes (select, toggle, color, checkbox) */
1059
+ onChange?: (item: T, value: any) => void;
1060
+ }
1061
+ interface TableProps<T> {
1062
+ data: T[];
1063
+ columns: Column<T>[];
1064
+ searchable?: boolean;
1065
+ searchPlaceholder?: string;
1066
+ pagination?: boolean;
1067
+ itemsPerPage?: number;
1068
+ selectable?: boolean;
1069
+ onBulkDelete?: (selectedIds: string[]) => void;
1070
+ idKey?: keyof T;
1071
+ className?: string;
1072
+ }
1073
+ declare function Table<T extends Record<string, any>>({ data, columns, searchable, searchPlaceholder, pagination, itemsPerPage, selectable, onBulkDelete, idKey, className, }: TableProps<T>): react_jsx_runtime.JSX.Element;
1074
+
1075
+ type TabVariant = "line" | "pill" | "boxed" | "lifted";
1076
+ type TabSize = "sm" | "md" | "lg";
1077
+ interface TabItem {
1078
+ value: string;
1079
+ label: React.ReactNode;
1080
+ icon?: React.ReactNode;
1081
+ badge?: React.ReactNode;
1082
+ disabled?: boolean;
1083
+ content?: React.ReactNode;
1084
+ }
1085
+ interface TabsProps {
1086
+ items: TabItem[];
1087
+ value?: string;
1088
+ defaultValue?: string;
1089
+ onChange?: (value: string) => void;
1090
+ variant?: TabVariant;
1091
+ size?: TabSize;
1092
+ fullWidth?: boolean;
1093
+ className?: string;
1094
+ }
1095
+ declare function Tabs({ items, value: controlledValue, defaultValue, onChange, variant, size, fullWidth, className, }: TabsProps): react_jsx_runtime.JSX.Element;
1096
+
1097
+ interface TagInputProps {
1098
+ value?: string[];
1099
+ defaultValue?: string[];
1100
+ onChange?: (tags: string[]) => void;
1101
+ placeholder?: string;
1102
+ maxTags?: number;
1103
+ allowDuplicates?: boolean;
1104
+ disabled?: boolean;
1105
+ className?: string;
1106
+ }
1107
+ declare function TagInput({ value: controlled, defaultValue, onChange, placeholder, maxTags, allowDuplicates, disabled, className, }: TagInputProps): react_jsx_runtime.JSX.Element;
1108
+
1109
+ interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, "rows" | "cols" | "readOnly" | "minLength" | "maxLength"> {
1110
+ rows?: number;
1111
+ cols?: number;
1112
+ autosize?: boolean;
1113
+ readOnly?: boolean;
1114
+ disableGrammarly?: boolean;
1115
+ trim?: boolean;
1116
+ minLength?: number;
1117
+ maxLength?: number;
1118
+ length?: number;
1119
+ }
1120
+ declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
1121
+
1122
+ type TimelineVariant = "default" | "success" | "error" | "warning" | "info";
1123
+ interface TimelineItem {
1124
+ id?: string;
1125
+ title: React.ReactNode;
1126
+ description?: React.ReactNode;
1127
+ time?: React.ReactNode;
1128
+ icon?: React.ReactNode;
1129
+ variant?: TimelineVariant;
1130
+ content?: React.ReactNode;
1131
+ }
1132
+ interface TimelineProps {
1133
+ items: TimelineItem[];
1134
+ align?: "left" | "alternate";
1135
+ className?: string;
1136
+ }
1137
+ declare function Timeline({ items, align, className }: TimelineProps): react_jsx_runtime.JSX.Element;
1138
+
1139
+ interface ToggleSwitchProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "type"> {
1140
+ inline?: boolean;
1141
+ label?: React.ReactNode;
1142
+ accepted?: boolean;
1143
+ acceptedColor?: string;
1144
+ declined?: boolean;
1145
+ declinedColor?: string;
1146
+ width?: number | string;
1147
+ height?: number | string;
1148
+ }
1149
+ declare const ToggleSwitch: React.ForwardRefExoticComponent<ToggleSwitchProps & React.RefAttributes<HTMLInputElement>>;
1150
+
1151
+ interface TooltipProps {
1152
+ content: React.ReactNode;
1153
+ children: React.ReactNode;
1154
+ /** Side to show the tooltip, default "right" */
1155
+ side?: "right" | "left" | "top" | "bottom";
1156
+ className?: string;
1157
+ /** Only render the tooltip when enabled */
1158
+ enabled?: boolean;
1159
+ }
1160
+ declare function Tooltip({ content, children, side, className, enabled, }: TooltipProps): react_jsx_runtime.JSX.Element;
1161
+
1162
+ interface TreeNode {
1163
+ id: string;
1164
+ label: React.ReactNode;
1165
+ icon?: React.ReactNode;
1166
+ children?: TreeNode[];
1167
+ disabled?: boolean;
1168
+ }
1169
+ interface TreeViewProps {
1170
+ nodes: TreeNode[];
1171
+ selected?: string | string[];
1172
+ defaultSelected?: string | string[];
1173
+ onSelect?: (id: string | string[]) => void;
1174
+ defaultExpanded?: string[];
1175
+ multiple?: boolean;
1176
+ className?: string;
1177
+ }
1178
+ declare function TreeView({ nodes, selected: controlled, defaultSelected, onSelect, defaultExpanded, multiple, className, }: TreeViewProps): react_jsx_runtime.JSX.Element;
1179
+
1180
+ interface WidgetProps extends React.HTMLAttributes<HTMLDivElement> {
1181
+ title: string;
1182
+ value: string | number;
1183
+ previousValue?: string | number;
1184
+ description?: string;
1185
+ badge?: React.ReactNode;
1186
+ footer?: React.ReactNode;
1187
+ trendLabel?: string;
1188
+ icon?: React.ReactNode;
1189
+ iconColor?: "primary" | "info" | "success" | "warning" | "danger" | "muted";
1190
+ trend?: "up" | "down" | "neutral";
1191
+ trendValue?: string;
1192
+ progress?: number;
1193
+ progressColor?: "primary" | "info" | "success" | "warning" | "danger";
1194
+ variant?: "default" | "glass" | "filled" | "outline";
1195
+ size?: "sm" | "md" | "lg";
1196
+ loading?: boolean;
1197
+ animate?: boolean;
1198
+ pulse?: boolean;
1199
+ onClick?: () => void;
1200
+ }
1201
+ declare function Widget({ title, value, previousValue, description, badge, footer, trendLabel, icon, iconColor, trend, trendValue, progress, progressColor, variant, size, loading, animate, pulse, onClick, className, ...props }: WidgetProps): react_jsx_runtime.JSX.Element;
1202
+
1203
+ export { Accordion, AvatarStack, Badge, Breadcrumb, Button, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartWidget, Checkbox, CircularProgress, ColorPicker, Combobox, CommandPalette, ComposableWidget, ContextMenu, DataGrid, DatePickerPopup, DateRangePicker, Drawer, Dropdown, FileUpload, FlexLayout, GridLayout, GroupNavigation, Input, KanbanBoard, Label, LeftSidebar, Modal, ModalConfirmation, ModalUnchange, ModalWithForms, Navigation, NotificationBanner, NotificationPanel, OtpInput, Pagination, Panel, PanelSidebarGroup, PanelSidebarItem, Popover, Progress, RadioGroup, RangeSlider, Repeater, ResizablePanels, RichTextEditor, RightSidebar, ScrollArea, SectionBlock, Select, Skeleton, Slider, StatCard, StatsWidget, Stepper, Table, TableWidget, Tabs, TagInput, Textarea, Timeline, ToastProvider, ToggleSwitch, Tooltip, Topbar, TreeView, Widget, useToast };