@semio/ui 0.0.0

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.
@@ -0,0 +1,1194 @@
1
+ import * as react from 'react';
2
+ import react__default, { ReactNode, MutableRefObject, CSSProperties, MouseEventHandler, MouseEvent as MouseEvent$1, RefObject, InputHTMLAttributes, ChangeEvent, TextareaHTMLAttributes, FocusEventHandler, ButtonHTMLAttributes } from 'react';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
4
+ import { CollapsibleContentProps, CollapsibleTriggerProps, CollapsibleProps } from '@radix-ui/react-collapsible';
5
+ import { RawColor } from '@semio/utils';
6
+ import { ReferenceType, useFloating, VirtualElement } from '@floating-ui/react';
7
+ import { Accept } from 'react-dropzone';
8
+ import { TablerIconsProps } from '@tabler/icons-react';
9
+
10
+ /**
11
+ * Theme options for the application's appearance.
12
+ *
13
+ * Includes Light, Dark, and System themes
14
+ */
15
+ declare enum Theme {
16
+ /**
17
+ * Light theme with bright background and dark text.
18
+ */
19
+ Light = "light",
20
+ /**
21
+ * Dark theme with dark background and light text.
22
+ */
23
+ Dark = "dark",
24
+ /**
25
+ * Follows the system's theme settings.
26
+ */
27
+ System = "system"
28
+ }
29
+ /**
30
+ * Visual variants for UI components.
31
+ *
32
+ * Includes Primary, Secondary, Tertiary, Default, Info, Success, Warning, and Error variants
33
+ */
34
+ declare enum Variant {
35
+ /**
36
+ * Main emphasis, used for primary actions.
37
+ */
38
+ Primary = "primary",
39
+ /**
40
+ * Less emphasis than primary, used for secondary actions.
41
+ */
42
+ Secondary = "secondary",
43
+ /**
44
+ * Minimal emphasis, used for tertiary actions.
45
+ */
46
+ Tertiary = "tertiary",
47
+ /**
48
+ * Standard styling without emphasis.
49
+ */
50
+ Default = "default",
51
+ /**
52
+ * Used for informational messages or states.
53
+ */
54
+ Info = "info",
55
+ /**
56
+ * Indicates successful operations or states.
57
+ */
58
+ Success = "success",
59
+ /**
60
+ * Indicates cautionary messages or states.
61
+ */
62
+ Warning = "warning",
63
+ /**
64
+ * Indicates error messages or states.
65
+ */
66
+ Error = "error"
67
+ }
68
+ /**
69
+ * Size options for UI components.
70
+ *
71
+ * Includes Extra Small (Xs), Small (Sm), Medium (Md), and Large (Lg) sizes
72
+ */
73
+ declare enum Size {
74
+ /**
75
+ * Extra small size.
76
+ */
77
+ Xs = "xs",
78
+ /**
79
+ * Small size.
80
+ */
81
+ Sm = "sm",
82
+ /**
83
+ * Medium size (default).
84
+ */
85
+ Md = "md",
86
+ /**
87
+ * Large size.
88
+ */
89
+ Lg = "lg"
90
+ }
91
+ /**
92
+ * Time display format options.
93
+ *
94
+ * Includes Frames, Seconds+Milliseconds, Minutes+Seconds+Milliseconds, Seconds+Frames, and Seconds
95
+ */
96
+ declare enum TimeDisplay {
97
+ /**
98
+ * Display time in frames only.
99
+ */
100
+ Frames = "frames",
101
+ /**
102
+ * Display time in seconds and milliseconds format.
103
+ */
104
+ SecondsPlusMilliseconds = "seconds+milliseconds",
105
+ /**
106
+ * Display time in minutes, seconds, and milliseconds format.
107
+ */
108
+ MinutesPlusSecondsPlusMilliseconds = "minutes+seconds+milliseconds",
109
+ /**
110
+ * Display time in seconds and frames format.
111
+ */
112
+ SecondsPlusFrames = "seconds+frames",
113
+ /**
114
+ * Display time in seconds only.
115
+ */
116
+ Seconds = "seconds"
117
+ }
118
+ /**
119
+ * Types of nested parent components.
120
+ *
121
+ * Includes Context and Dropdown parents
122
+ */
123
+ declare enum NestedParent {
124
+ /**
125
+ * Parent is a context component.
126
+ */
127
+ Context = "context",
128
+ /**
129
+ * Parent is a dropdown component.
130
+ */
131
+ Dropdown = "dropdown"
132
+ }
133
+
134
+ declare function stampToVisualTime(stamp: number, duration: number, framerate: number, timeDisplay: TimeDisplay, showDetail?: boolean): string;
135
+
136
+ interface LayoutProps {
137
+ menu: ReactNode;
138
+ leftSidebar?: ReactNode;
139
+ rightSidebar?: ReactNode;
140
+ bottomPanel?: ReactNode;
141
+ children: ReactNode;
142
+ menuRef?: MutableRefObject<HTMLDivElement | null>;
143
+ leftSidebarRef?: MutableRefObject<HTMLDivElement | null>;
144
+ rightSidebarRef?: MutableRefObject<HTMLDivElement | null>;
145
+ bottomPanelRef?: MutableRefObject<HTMLDivElement | null>;
146
+ style?: CSSProperties;
147
+ gradient?: boolean;
148
+ className?: string;
149
+ }
150
+ /**
151
+ * Renders the inner layout of the application.
152
+ *
153
+ * TODO: Update with resizeable panes and pop out windows.
154
+ *
155
+ * @param menu - The menu component.
156
+ * @param leftSidebar - The left sidebar component.
157
+ * @param rightSidebar - The right sidebar component.
158
+ * @param bottomPanel - The bottom panel component.
159
+ * @param children - The content to be rendered in the main body.
160
+ */
161
+ declare function InnerLayout({ menu, leftSidebar, rightSidebar, bottomPanel, children, menuRef, leftSidebarRef, rightSidebarRef, bottomPanelRef, style, gradient, className, }: LayoutProps): react_jsx_runtime.JSX.Element;
162
+ declare const Layout: react.MemoExoticComponent<typeof InnerLayout>;
163
+
164
+ interface Step {
165
+ label: string;
166
+ completed: boolean;
167
+ disabled: boolean;
168
+ content?: ReactNode;
169
+ }
170
+ interface VerticalStepperProps {
171
+ steps: Step[];
172
+ activeStep?: number;
173
+ onStepChange: (step: number) => void;
174
+ }
175
+ declare function VerticalStepper({ steps, onStepChange, activeStep }: VerticalStepperProps): react_jsx_runtime.JSX.Element;
176
+
177
+ interface MenuProps {
178
+ header?: ReactNode;
179
+ footer?: ReactNode;
180
+ children: ReactNode;
181
+ }
182
+ declare function Menu({ header, footer, children }: MenuProps): react_jsx_runtime.JSX.Element;
183
+ declare function useMenu(): {
184
+ open: boolean;
185
+ setOpen: (open: boolean) => void;
186
+ };
187
+
188
+ /**
189
+ * Renders a spinner component. If children are provided, the spinner will bounce and spin the child,
190
+ * Otherwise, it will render a default spinner, an animated semi-circle.
191
+ *
192
+ * @example
193
+ * ```tsx
194
+ * <Spinner>
195
+ * <img src="spinner.gif" alt="Loading..." />
196
+ * </Spinner>
197
+ * ```
198
+ */
199
+ declare function Spinner({ children }: {
200
+ children?: ReactNode;
201
+ }): ReactNode;
202
+
203
+ interface StatusProps {
204
+ variant?: Variant;
205
+ placement?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
206
+ children: ReactNode;
207
+ text?: string;
208
+ hidden?: boolean;
209
+ }
210
+ declare const Status: react.ForwardRefExoticComponent<StatusProps & react.RefAttributes<HTMLDivElement>>;
211
+
212
+ interface ProgressProps {
213
+ progress: number;
214
+ color?: string;
215
+ }
216
+ declare function Progress({ progress, color }: ProgressProps): react_jsx_runtime.JSX.Element;
217
+
218
+ interface SidebarChild {
219
+ title: string;
220
+ key: string;
221
+ content: ReactNode;
222
+ }
223
+ interface SidebarProps {
224
+ children: SidebarChild[];
225
+ sidebar: string | null;
226
+ side?: "left" | "right";
227
+ }
228
+ declare function Sidebar({ children, sidebar, side }: SidebarProps): react_jsx_runtime.JSX.Element;
229
+
230
+ interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
231
+ children?: ReactNode;
232
+ altText?: string;
233
+ disabled?: boolean;
234
+ onClick?: MouseEventHandler<HTMLButtonElement>;
235
+ variant?: Variant;
236
+ color?: string;
237
+ leftIcon?: ReactNode;
238
+ rightIcon?: ReactNode;
239
+ size?: Size | "fit";
240
+ deemphasize?: boolean;
241
+ invert?: boolean;
242
+ border?: boolean;
243
+ submit?: boolean;
244
+ }
245
+ /**
246
+ * A button that displays text and/or icons. If no text and one icon is provided, the button will be a square with padding.
247
+ * @param children - The text to display on the button
248
+ * @param altText - The alt text to accompany the button
249
+ * @param disabled - Whether the button is disabled
250
+ * @param onClick - Optional click handler
251
+ * @param variant - Optional variant to apply to the button (default is "default")
252
+ * @param color - Optional custom color to apply to the button
253
+ * @param leftIcon - Optional left icon to add to the button
254
+ * @param rightIcon - Optional right icon to add to the button
255
+ * @param size - Optional size to apply to the button
256
+ * @param deemphasize - Whether to deemphasize the button (subtler background and colored text)
257
+ * @param invert - Whether to invert the button colors (no background and colored text)
258
+ * @param border - Whether to add a border to the button
259
+ */
260
+ declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
261
+
262
+ interface ModalProps {
263
+ children: ReactNode;
264
+ open: boolean;
265
+ title?: string | ReactNode;
266
+ description?: string | ReactNode;
267
+ headerBottom?: ReactNode;
268
+ dismissDisabled?: boolean;
269
+ submitDisabled?: boolean;
270
+ submitText?: string;
271
+ onStateChange: (open: boolean) => void;
272
+ onSubmit?: (event: MouseEvent$1) => void;
273
+ onCancel?: (event: MouseEvent$1) => void;
274
+ variant?: Variant;
275
+ scrollDisabled?: boolean;
276
+ }
277
+ declare function Modal({ children, open, title, description, headerBottom, dismissDisabled, submitDisabled, submitText, onStateChange, onSubmit, onCancel, variant, scrollDisabled, }: ModalProps): react_jsx_runtime.JSX.Element;
278
+
279
+ interface DialogProps {
280
+ children: ReactNode;
281
+ open: boolean;
282
+ title?: ReactNode;
283
+ description?: string;
284
+ submitDisabled?: boolean;
285
+ submitText?: string;
286
+ onStateChange: (open: boolean) => void;
287
+ onSubmit?: (event: MouseEvent$1) => void;
288
+ onCancel?: (event: MouseEvent$1) => void;
289
+ variant?: Variant;
290
+ }
291
+ declare function Dialog({ children, open, title, description, submitDisabled, submitText, onStateChange, onSubmit, onCancel, variant, }: DialogProps): react_jsx_runtime.JSX.Element;
292
+
293
+ interface CheckboxProps {
294
+ id?: string;
295
+ checked: boolean;
296
+ onCheckedChange: (checked: boolean) => void;
297
+ variant?: Variant;
298
+ size?: Size;
299
+ disabled?: boolean;
300
+ invert?: boolean;
301
+ }
302
+ declare function Checkbox({ id, checked, onCheckedChange, variant, size, disabled, invert, }: CheckboxProps): react_jsx_runtime.JSX.Element;
303
+
304
+ interface AnchorProps {
305
+ onClick: () => void;
306
+ variant?: Variant;
307
+ children: string;
308
+ }
309
+ declare function Anchor({ onClick, variant, children }: AnchorProps): react_jsx_runtime.JSX.Element;
310
+
311
+ interface ImageButtonProps {
312
+ imageUrl: string;
313
+ altText: string;
314
+ hoverText?: string;
315
+ dimensions?: {
316
+ width: string;
317
+ height: string;
318
+ };
319
+ onClick: () => void;
320
+ }
321
+ declare function ImageButton({ imageUrl, altText, hoverText, dimensions, onClick, }: ImageButtonProps): JSX.Element;
322
+
323
+ interface MenuButtonProps {
324
+ id: string;
325
+ children: ReactNode;
326
+ title: ReactNode;
327
+ altLabel?: string;
328
+ variant?: Variant.Primary | Variant.Secondary | Variant.Tertiary | Variant.Default;
329
+ onClick?: MouseEventHandler;
330
+ active?: boolean;
331
+ status?: {
332
+ variant?: Variant;
333
+ placement?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
334
+ text?: string;
335
+ };
336
+ hoverable?: boolean;
337
+ }
338
+ declare function MenuButton({ id, children, title, altLabel, variant, onClick, active, status, hoverable, }: MenuButtonProps): react_jsx_runtime.JSX.Element;
339
+
340
+ interface AvatarProps {
341
+ src?: string;
342
+ icon?: React.ReactNode;
343
+ alt: string;
344
+ size?: Size;
345
+ rounded?: boolean;
346
+ onClick?: MouseEventHandler<HTMLSpanElement>;
347
+ variant?: Variant;
348
+ border?: Variant;
349
+ noHover?: boolean;
350
+ status?: {
351
+ variant?: Variant;
352
+ placement?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
353
+ text?: string;
354
+ };
355
+ className?: string;
356
+ }
357
+ declare const Avatar: react.ForwardRefExoticComponent<AvatarProps & react.RefAttributes<HTMLSpanElement>>;
358
+
359
+ interface CollapseProps {
360
+ title: string | ReactNode;
361
+ children: ReactNode;
362
+ onStateChange?: (open: boolean) => void;
363
+ open?: boolean;
364
+ direction?: "vertical" | "horizontal";
365
+ disabled?: boolean;
366
+ side?: "left" | "right";
367
+ }
368
+ declare function Collapse({ open, title, onStateChange, children, direction, disabled, side, }: CollapseProps): ReactNode;
369
+ declare function CollapsibleContent(props: CollapsibleContentProps): react_jsx_runtime.JSX.Element;
370
+ declare function CollapsibleTrigger(props: CollapsibleTriggerProps): react_jsx_runtime.JSX.Element;
371
+ declare function CollapsibleRoot(props: CollapsibleProps): react_jsx_runtime.JSX.Element;
372
+
373
+ interface AccordionProps {
374
+ sticky?: boolean;
375
+ stickyOffset?: number;
376
+ items: {
377
+ header: string;
378
+ content: react__default.ReactNode;
379
+ key: string;
380
+ }[];
381
+ defaultOpen?: boolean;
382
+ }
383
+ declare function Accordion({ items, defaultOpen, sticky, stickyOffset }: AccordionProps): react_jsx_runtime.JSX.Element;
384
+
385
+ interface PopoverProps {
386
+ title?: string;
387
+ trigger: ReactNode;
388
+ content: ReactNode;
389
+ open?: boolean;
390
+ onStateChange?: (open: boolean) => void;
391
+ variant?: Variant;
392
+ }
393
+ declare function Popover({ title, trigger, content, open, onStateChange, variant }: PopoverProps): react_jsx_runtime.JSX.Element;
394
+
395
+ interface TabChild {
396
+ title: string;
397
+ key: string;
398
+ content: ReactNode;
399
+ }
400
+ interface TabsProps {
401
+ children: TabChild[];
402
+ selected?: string;
403
+ onTabChange: (key: string) => void;
404
+ leftWidget?: ReactNode;
405
+ rightWidget?: ReactNode;
406
+ defaultContent?: ReactNode;
407
+ emptyTabText?: string;
408
+ }
409
+ declare function Tabs({ children, selected, onTabChange, leftWidget, rightWidget, defaultContent, emptyTabText, }: TabsProps): ReactNode;
410
+
411
+ interface BasicRowData {
412
+ id: string;
413
+ }
414
+ interface ColumnDefinition<T extends BasicRowData> {
415
+ key: string;
416
+ header: ReactNode;
417
+ align?: "left" | "center" | "right";
418
+ flex?: boolean;
419
+ requiredSize?: Size;
420
+ render: (value: T) => ReactNode;
421
+ }
422
+ interface TableListProps<T extends BasicRowData> {
423
+ data: T[];
424
+ columns: ColumnDefinition<T>[];
425
+ headerOffset?: number;
426
+ noHeader?: boolean;
427
+ rowClassName?: string;
428
+ fullWidth?: boolean;
429
+ headerClassName?: string;
430
+ backgroundClassName?: string;
431
+ notFound?: ReactNode;
432
+ onFocusChange?: (focusedRow?: string) => void;
433
+ onRowEnter?: (row: string) => void;
434
+ onRowClick?: (row: string) => void;
435
+ selection?: string[];
436
+ transparentHeader?: boolean;
437
+ }
438
+ declare function TableList<T extends BasicRowData>({ data, columns, headerOffset, noHeader, rowClassName, headerClassName, backgroundClassName, notFound, onFocusChange, onRowEnter, onRowClick, selection, transparentHeader, }: TableListProps<T>): react_jsx_runtime.JSX.Element;
439
+
440
+ interface DropdownProps {
441
+ trigger: ReactNode;
442
+ children: ReactNode;
443
+ variant?: Variant;
444
+ header?: ReactNode;
445
+ }
446
+ declare const Dropdown: react.ForwardRefExoticComponent<DropdownProps & react.RefAttributes<HTMLButtonElement>>;
447
+
448
+ interface ToastState {
449
+ toasts: ToastData[];
450
+ addToast: (toast: ToastData) => void;
451
+ removeToast: (id: string) => void;
452
+ clear: () => void;
453
+ }
454
+ declare const ToastContext: react.Context<ToastState>;
455
+ interface ToastManagerProps {
456
+ config?: {
457
+ tension: number;
458
+ friction: number;
459
+ precision: number;
460
+ };
461
+ timeout?: number;
462
+ children?: ReactNode;
463
+ }
464
+ interface ToastData {
465
+ id: string;
466
+ title: string;
467
+ content: string;
468
+ variant?: Variant;
469
+ dismiss?: {
470
+ label: string;
471
+ onClick: (data: ToastData) => void;
472
+ } | number;
473
+ }
474
+ interface ToastContainerProps {
475
+ children?: ReactNode;
476
+ }
477
+ declare function InnerToastManager({ children }: ToastContainerProps): react_jsx_runtime.JSX.Element;
478
+ declare const ToastManager: react.MemoExoticComponent<typeof InnerToastManager>;
479
+
480
+ interface ToggleGroupProps {
481
+ variant?: Variant;
482
+ value: string;
483
+ onChange: (value: string) => void;
484
+ label?: string;
485
+ options: {
486
+ label: string;
487
+ value: string;
488
+ disabled?: boolean;
489
+ color?: string;
490
+ icon?: ReactNode;
491
+ }[];
492
+ size?: Size;
493
+ }
494
+ declare function ToggleGroup({ variant, value, onChange, options, size, label }: ToggleGroupProps): react_jsx_runtime.JSX.Element;
495
+
496
+ interface ToggleSquareProps {
497
+ variant?: Variant;
498
+ value: boolean;
499
+ disabled?: boolean;
500
+ onChange: (value: boolean) => void;
501
+ label?: string;
502
+ children?: ReactNode;
503
+ size?: Size;
504
+ }
505
+ declare function ToggleSquare({ variant, value, disabled, onChange, size, label, children, }: ToggleSquareProps): react_jsx_runtime.JSX.Element;
506
+
507
+ interface ContextMenuProps {
508
+ trigger: ReactNode;
509
+ children: ReactNode;
510
+ variant?: Variant;
511
+ }
512
+ declare function ContextMenu({ trigger, children, variant }: ContextMenuProps): react_jsx_runtime.JSX.Element;
513
+
514
+ interface SeparatorProps {
515
+ children?: ReactNode;
516
+ variant?: Variant | "custom" | "layout";
517
+ color?: string;
518
+ orientation?: "horizontal" | "vertical";
519
+ className?: string;
520
+ }
521
+ declare function Separator({ children, variant, color, orientation, className, }: SeparatorProps): react_jsx_runtime.JSX.Element;
522
+
523
+ interface NestedItemProps {
524
+ left?: ReactNode;
525
+ children: ReactNode;
526
+ right?: ReactNode;
527
+ variant?: Variant;
528
+ disabled?: boolean;
529
+ onClick?: (event: React.MouseEvent) => void;
530
+ }
531
+ declare function NestedItem({ left, children, right, variant, disabled, onClick }: NestedItemProps): react_jsx_runtime.JSX.Element;
532
+
533
+ interface NestedSeparatorProps {
534
+ variant?: Variant;
535
+ }
536
+ declare function NestedSeparator({ variant }: NestedSeparatorProps): react_jsx_runtime.JSX.Element;
537
+
538
+ interface NestedRadioProps {
539
+ variant?: Variant;
540
+ disabled?: boolean;
541
+ onChange?: (value: string) => void;
542
+ value?: string;
543
+ options: {
544
+ label: string;
545
+ value: string;
546
+ disabled?: boolean;
547
+ color?: string;
548
+ icon?: ReactNode;
549
+ }[];
550
+ }
551
+ declare function NestedRadio({ variant, disabled, onChange, value, options }: NestedRadioProps): react_jsx_runtime.JSX.Element;
552
+
553
+ interface NestedSelectProps {
554
+ variant?: Variant;
555
+ disabled?: boolean;
556
+ onChange?: (value: string[]) => void;
557
+ values: string[];
558
+ options: {
559
+ label: string;
560
+ value: string;
561
+ disabled?: boolean;
562
+ color?: string;
563
+ icon?: ReactNode;
564
+ }[];
565
+ }
566
+ declare function NestedSelect({ variant, disabled, onChange, values, options }: NestedSelectProps): react_jsx_runtime.JSX.Element;
567
+
568
+ interface NestedMenuProps {
569
+ left?: ReactNode;
570
+ children: ReactNode;
571
+ label?: string;
572
+ variant?: Variant;
573
+ labelVariant?: Variant;
574
+ disabled?: boolean;
575
+ }
576
+ declare function NestedMenu({ left, children, label, variant, labelVariant, disabled, }: NestedMenuProps): react_jsx_runtime.JSX.Element;
577
+
578
+ interface NestedLabelProps {
579
+ children: ReactNode;
580
+ }
581
+ declare function NestedLabel({ children }: NestedLabelProps): react_jsx_runtime.JSX.Element;
582
+
583
+ interface NestedColorPickerProps<T extends string | RawColor> {
584
+ value: T;
585
+ onChange: (value: T) => void;
586
+ disabled?: boolean;
587
+ label?: string;
588
+ variant?: Variant;
589
+ }
590
+ declare function NestedColorPicker<T extends string | RawColor>({ value, onChange, disabled, label, variant, }: NestedColorPickerProps<T>): react_jsx_runtime.JSX.Element;
591
+
592
+ interface NestedCheckboxProps {
593
+ variant?: Variant;
594
+ onChange?: (value: boolean) => void;
595
+ value: boolean;
596
+ label: string;
597
+ color?: string;
598
+ disabled?: boolean;
599
+ icon?: ReactNode;
600
+ }
601
+ declare function NestedCheckbox({ variant, disabled, onChange, value, color, icon, label, }: NestedCheckboxProps): react_jsx_runtime.JSX.Element;
602
+
603
+ interface TooltipProps {
604
+ content: ReactNode;
605
+ children: ReactNode;
606
+ side?: "top" | "right" | "bottom" | "left";
607
+ controlledState?: [boolean, (value: boolean) => void];
608
+ variant?: Variant;
609
+ disabled?: boolean;
610
+ invert?: boolean;
611
+ }
612
+ declare function Tooltip({ content, children, side, controlledState, variant, disabled, invert, }: TooltipProps): react_jsx_runtime.JSX.Element;
613
+
614
+ type FloatingResults = ReturnType<typeof useFloating>;
615
+ interface ElementRefs {
616
+ triggerRef: ((instance: Element | VirtualElement | null) => void) | null;
617
+ floatingRef: ((instance: Element | VirtualElement | null) => void) | null;
618
+ }
619
+ interface TrackedTooltipResult extends FloatingResults {
620
+ elementRefs: ElementRefs;
621
+ updateHoverState: (x: number | undefined, y: number | undefined, hovering: boolean) => void;
622
+ }
623
+ declare function useTrackedTooltip(triggerRef: RefObject<ReferenceType>, floatingRef: RefObject<ReferenceType>, side: "top" | "right" | "bottom" | "left", axis: "x" | "y" | "both", sideOffset?: number): TrackedTooltipResult;
624
+ interface TrackedTooltipProps {
625
+ children: ReactNode;
626
+ containerStyles: CSSProperties;
627
+ variant?: Variant;
628
+ open?: boolean;
629
+ }
630
+ declare const TrackedTooltip: react.ForwardRefExoticComponent<TrackedTooltipProps & react.RefAttributes<HTMLDivElement>>;
631
+
632
+ interface ColorPickerInputProps<T extends string | RawColor> {
633
+ value: T;
634
+ onChange: (color: T) => void;
635
+ }
636
+ declare function ColorPickerInput<T extends string | RawColor>({ value, onChange, }: ColorPickerInputProps<T>): react_jsx_runtime.JSX.Element;
637
+
638
+ interface ColorPickerPopoverProps<T extends string | RawColor> {
639
+ value: T;
640
+ onChange: (color: T) => void;
641
+ }
642
+ declare function ColorPickerPopover<T extends string | RawColor>({ value, onChange, }: ColorPickerPopoverProps<T>): react_jsx_runtime.JSX.Element;
643
+
644
+ declare function NumberOrListInput({ value, onChange, title, }: {
645
+ value: number | number[];
646
+ onChange: (value: number | number[]) => void;
647
+ title?: string;
648
+ }): react_jsx_runtime.JSX.Element;
649
+
650
+ interface EmailInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size"> {
651
+ invalid?: boolean;
652
+ message?: string;
653
+ size?: Size;
654
+ variant?: Variant;
655
+ }
656
+ declare const EmailInput: react.ForwardRefExoticComponent<EmailInputProps & react.RefAttributes<HTMLInputElement>>;
657
+
658
+ interface FileInputProps {
659
+ fileObj: File | null;
660
+ setFile: (file: File | null) => void;
661
+ handleFileChange: (event: ChangeEvent<HTMLInputElement>) => void;
662
+ types?: string;
663
+ inputTitle?: string;
664
+ }
665
+ declare function FileInput({ fileObj, setFile, handleFileChange, types, inputTitle, }: FileInputProps): react_jsx_runtime.JSX.Element;
666
+
667
+ interface EmailsInputProps {
668
+ emails: string[];
669
+ fieldName?: string;
670
+ onEmailsChange: (emails: string[], field: string) => void;
671
+ inputPlaceholder?: string;
672
+ inputTitle?: string;
673
+ }
674
+ declare function EmailsInput({ emails: initialEmails, fieldName, onEmailsChange, inputTitle, inputPlaceholder, }: EmailsInputProps): react_jsx_runtime.JSX.Element;
675
+
676
+ interface ImageInputProps {
677
+ imageUrl?: string;
678
+ onImageChange: (file: File | null) => void;
679
+ uploading?: boolean;
680
+ inputTitle?: string;
681
+ }
682
+ declare function ImageInput({ imageUrl, onImageChange, uploading, inputTitle, }: ImageInputProps): react_jsx_runtime.JSX.Element;
683
+
684
+ interface PasswordInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size"> {
685
+ invalid?: boolean;
686
+ message?: string;
687
+ size?: Size;
688
+ variant?: Variant;
689
+ showPassword?: boolean;
690
+ }
691
+ declare const PasswordInput: react.ForwardRefExoticComponent<PasswordInputProps & react.RefAttributes<HTMLInputElement>>;
692
+
693
+ interface SwitchProps {
694
+ value: boolean;
695
+ onChange: (value: boolean) => void;
696
+ disabled?: boolean;
697
+ variant?: Variant;
698
+ offVariant?: Variant;
699
+ onIcon?: ReactNode;
700
+ offIcon?: ReactNode;
701
+ size?: "sm" | "md" | "lg";
702
+ square?: boolean;
703
+ }
704
+ declare function Switch({ value, onChange, disabled, variant, size, onIcon, offIcon, offVariant, square, }: SwitchProps): react_jsx_runtime.JSX.Element;
705
+
706
+ interface SearchAdditionalProps {
707
+ onChange?: (value: string) => void;
708
+ onSearch?: (value: string) => void;
709
+ variant?: Variant;
710
+ size?: Size;
711
+ }
712
+ type SearchProps = SearchAdditionalProps & Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "onChange">;
713
+ /**
714
+ * Inherits from standard Input HTML element
715
+ * @param value - the value of the field
716
+ * @param onChange - the callback to call when the value changes
717
+ * @param size - the size of the field
718
+ * @param variant - the variant of the field
719
+ */
720
+ declare function InnerSearch({ size, onChange, onSearch, variant, ...forwardedProps }: SearchProps): ReactNode;
721
+ declare const Search: react.MemoExoticComponent<typeof InnerSearch>;
722
+
723
+ interface StringsInputProps {
724
+ strings: string[];
725
+ fieldName: string;
726
+ onStringsChange: (strings: string[], field: string) => void;
727
+ inputPlaceholder?: string;
728
+ inputTitle?: string;
729
+ }
730
+ declare function StringsInput({ strings, fieldName, onStringsChange, inputTitle, inputPlaceholder, }: StringsInputProps): react_jsx_runtime.JSX.Element;
731
+
732
+ interface TimeInputProps extends Omit<React.HTMLAttributes<HTMLInputElement>, "onChange"> {
733
+ value: number | undefined;
734
+ onChange: (value: number) => void;
735
+ framerate: number;
736
+ display?: TimeDisplay;
737
+ disabled?: boolean;
738
+ min?: number;
739
+ max?: number;
740
+ variant: Variant;
741
+ size?: Size;
742
+ bg?: boolean;
743
+ label?: string;
744
+ hidden?: boolean;
745
+ }
746
+ declare function TimeInput({ value, onChange, framerate, display, disabled, variant, size, min, max, bg, label, hidden, }: TimeInputProps): react_jsx_runtime.JSX.Element;
747
+
748
+ interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "onChange"> {
749
+ onChange?: (value: string) => void;
750
+ variant?: Variant;
751
+ size?: Size;
752
+ bg?: boolean;
753
+ outline?: boolean;
754
+ subtle?: boolean;
755
+ }
756
+ declare const TextField: react.MemoExoticComponent<react.ForwardRefExoticComponent<TextFieldProps & react.RefAttributes<HTMLInputElement>>>;
757
+
758
+ interface InputProps {
759
+ size: Size;
760
+ focused?: boolean;
761
+ cursor?: string;
762
+ bold?: boolean;
763
+ className?: string;
764
+ flex?: boolean;
765
+ subtle?: boolean;
766
+ }
767
+ declare const StyledInput: react.MemoExoticComponent<react.ForwardRefExoticComponent<InputProps & Omit<InputHTMLAttributes<HTMLInputElement>, "size"> & react.RefAttributes<HTMLInputElement>>>;
768
+
769
+ interface TextAreaProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, "size" | "onChange"> {
770
+ onChange?: (value: string) => void;
771
+ variant?: Variant;
772
+ size?: Size;
773
+ bg?: boolean;
774
+ outline?: boolean;
775
+ subtle?: boolean;
776
+ }
777
+ declare const TextArea: react.MemoExoticComponent<react.ForwardRefExoticComponent<TextAreaProps & react.RefAttributes<HTMLTextAreaElement>>>;
778
+ declare const StyledArea: react.MemoExoticComponent<react.ForwardRefExoticComponent<InputProps & Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, "size"> & react.RefAttributes<HTMLTextAreaElement>>>;
779
+
780
+ interface TextInputProps {
781
+ textValue: string;
782
+ fieldName: string;
783
+ onTextChange: (value: string, field: string) => void;
784
+ inputTitle?: string;
785
+ inputPlaceholder?: string;
786
+ inputSize?: number;
787
+ }
788
+ declare function TextInput({ textValue, fieldName, onTextChange, inputTitle, inputPlaceholder, inputSize, }: TextInputProps): react_jsx_runtime.JSX.Element;
789
+
790
+ interface BasicNumberFieldProps {
791
+ id?: string;
792
+ value: number;
793
+ onChange: (value: number) => void;
794
+ min?: number;
795
+ max?: number;
796
+ units?: string;
797
+ color?: string;
798
+ strict?: boolean;
799
+ emphasis?: boolean;
800
+ size?: Size;
801
+ inactive?: boolean;
802
+ disabled?: boolean;
803
+ label?: string;
804
+ onLabelChange?: (label: string) => void;
805
+ onEmphasisChange?: (emphasis: boolean) => void;
806
+ onFocus?: FocusEventHandler;
807
+ onBlur?: FocusEventHandler;
808
+ }
809
+ /**
810
+ * BasicNumberField
811
+ * @param {string} id - the id of the field
812
+ * @param {number} value: - the value of the field
813
+ * @param onChange: (value: number) => void - the function to call when the value changes
814
+ * @param min?: number - the minimum value
815
+ * @param max?: number - the maximum value
816
+ * @param visualMin?: number - the minimum visual value
817
+ * @param visualMax?: number - the maximum visual value
818
+ * @param units?: string - the units to display
819
+ * @param color?: string - the color of the slider
820
+ * @param strictSlider?: boolean - whether to enforce the slider bounds
821
+ * @param strictText?: boolean - whether to enforce the text bounds
822
+ * @param emphasis?: boolean - whether the field is emphasized
823
+ * @param size?: Size - the size of the field
824
+ * @param inactive?: boolean - whether the field is inactive
825
+ * @param disabled?: boolean - whether the field is disabled
826
+ * @param label?: string - the label of the field
827
+ * @param onLabelChange?: (label: string) => void - the function to call when the label changes
828
+ * @param onEmphasisChange?: (emphasis: boolean) => void - the function to call when the emphasis changes
829
+ * @param onFocus?: FocusEventHandler;
830
+ * @param onBlur?: FocusEventHandler;
831
+ */
832
+ declare function InnerBasicNumberField({ value, onChange, min, max, units, color, strict, emphasis, size, inactive, disabled, onEmphasisChange, onBlur: onBlurExternal, onFocus: onFocusExternal, }: BasicNumberFieldProps): ReactNode;
833
+ declare const BasicNumberField: react.MemoExoticComponent<typeof InnerBasicNumberField>;
834
+
835
+ interface SliderNumberFieldProps {
836
+ value: number;
837
+ onChange: (value: number) => void;
838
+ min?: number;
839
+ max?: number;
840
+ visualMin?: number;
841
+ visualMax?: number;
842
+ units?: string;
843
+ color?: string;
844
+ strictSlider?: boolean;
845
+ strictText?: boolean;
846
+ emphasis?: boolean;
847
+ size?: Size;
848
+ inactive?: boolean;
849
+ disabled?: boolean;
850
+ label?: string;
851
+ onLabelChange?: (label: string) => void;
852
+ onEmphasisChange?: (emphasis: boolean) => void;
853
+ onFocus?: FocusEventHandler;
854
+ onBlur?: FocusEventHandler;
855
+ }
856
+ /**
857
+ * SliderNumberField
858
+ * @param {number} value: - the value of the field
859
+ * @param onChange: (value: number) => void - the function to call when the value changes
860
+ * @param min?: number - the minimum value
861
+ * @param max?: number - the maximum value
862
+ * @param visualMin?: number - the minimum visual value
863
+ * @param visualMax?: number - the maximum visual value
864
+ * @param units?: string - the units to display
865
+ * @param color?: string - the color of the slider
866
+ * @param strictSlider?: boolean - whether to enforce the slider bounds
867
+ * @param strictText?: boolean - whether to enforce the text bounds
868
+ * @param emphasis?: boolean - whether the field is emphasized
869
+ * @param size?: Size - the size of the field
870
+ * @param inactive?: boolean - whether the field is inactive
871
+ * @param disabled?: boolean - whether the field is disabled
872
+ * @param label?: string - the label of the field
873
+ * @param onLabelChange?: (label: string) => void - the function to call when the label changes
874
+ * @param onEmphasisChange?: (emphasis: boolean) => void - the function to call when the emphasis changes
875
+ * @param onFocus?: FocusEventHandler;
876
+ * @param onBlur?: FocusEventHandler;
877
+ */
878
+ declare function InnerSliderNumberField({ value, onChange, min, max, visualMin, visualMax, units, color, strictText, strictSlider, emphasis, size, inactive, disabled, label, onLabelChange, onEmphasisChange, onBlur: onBlurExternal, onFocus: onFocusExternal, }: SliderNumberFieldProps): ReactNode;
879
+ declare const SliderNumberField: react.MemoExoticComponent<typeof InnerSliderNumberField>;
880
+
881
+ interface DropzoneProps<T extends BasicRowData> {
882
+ onDrop: (files: File[]) => void;
883
+ data: T[];
884
+ columns: ColumnDefinition<T>[];
885
+ rowClassName?: string;
886
+ headerClassName?: string;
887
+ multiple?: boolean;
888
+ accept?: Accept;
889
+ dropText?: string;
890
+ children?: ReactNode;
891
+ className?: string;
892
+ }
893
+ declare function Dropzone<T extends BasicRowData>({ onDrop, data, columns, rowClassName, headerClassName, multiple, accept, children, className, dropText, }: DropzoneProps<T>): react_jsx_runtime.JSX.Element;
894
+
895
+ /**
896
+ * Renders a scrollable area with optional header and footer.
897
+ *
898
+ * @example
899
+ * ```tsx
900
+ * <InnerScrollArea>
901
+ * <div>Content goes here</div>
902
+ * </InnerScrollArea>
903
+ * ```
904
+ *
905
+ * @param children - The content to be rendered inside the scroll area.
906
+ * @param header - The optional header component to be displayed at the top of the scroll area.
907
+ * @param footer - The optional footer component to be displayed at the bottom of the scroll area.
908
+ * @param className - The optional CSS class name for the scroll area container.
909
+ * @param shrink - Determines whether the scroll area should shrink to fit its content.
910
+ * @returns The rendered scroll area component.
911
+ */
912
+ declare function InnerScrollArea({ children, header, footer, className, style, shrink, orientation, }: {
913
+ children: ReactNode;
914
+ header?: ReactNode;
915
+ footer?: ReactNode;
916
+ className?: string;
917
+ style?: CSSProperties;
918
+ shrink?: boolean;
919
+ orientation?: "vertical" | "horizontal" | "both";
920
+ }): react_jsx_runtime.JSX.Element;
921
+ declare const ScrollArea: react.MemoExoticComponent<typeof InnerScrollArea>;
922
+
923
+ interface ChipProps {
924
+ value: string;
925
+ variant?: Variant;
926
+ size?: Size;
927
+ color?: string;
928
+ icon?: ReactNode;
929
+ onDelete?: MouseEventHandler<HTMLButtonElement>;
930
+ }
931
+ declare function Chip({ value, variant, size, color, icon, onDelete }: ChipProps): react_jsx_runtime.JSX.Element;
932
+
933
+ /**
934
+ * @param {string} label - The text to display in the option
935
+ * @param {string} value - The unique key to register and identify the option
936
+ * @param {boolean} disabled - Whether the option is disabled
937
+ * @param {string} color - The color of the option
938
+ * @param {ReactNode} icon - The icon to display in the option
939
+ */
940
+ interface SelectOption {
941
+ label: string;
942
+ value: string;
943
+ disabled?: boolean;
944
+ color?: string;
945
+ icon?: ReactNode;
946
+ }
947
+ /**
948
+ * @param {Variant} variant - The variant of the select (defines colors)
949
+ * @param {T} value - The value of the select
950
+ * @param {function} onChange - The function to call when the value changes
951
+ * @param {SelectOption[]} options - The options to display in the select
952
+ * @param {Size} size - The size of the select
953
+ * @param {string} label - The label of the select
954
+ */
955
+ interface SelectProps<T extends string | string[]> {
956
+ variant?: Variant;
957
+ value?: T;
958
+ onChange: (value: T) => void;
959
+ options: {
960
+ label: string;
961
+ value: string;
962
+ disabled?: boolean;
963
+ color?: string;
964
+ icon?: ReactNode;
965
+ }[];
966
+ size?: Size;
967
+ label?: string;
968
+ }
969
+ /**
970
+ * A select component that allows users to choose from a list of options
971
+ * @param {Variant} variant - The variant of the select (defines colors)
972
+ * @param {T} value - The value of the select
973
+ * @param {function} onChange - The function to call when the value changes
974
+ * @param {SelectOption[]} options - The options to display in the select
975
+ * @param {Size} size - The size of the select
976
+ * @param {string} label - The label of the select
977
+ */
978
+ declare function Select<T extends string | string[]>({ value, onChange, options, variant, size, label, }: SelectProps<T>): react_jsx_runtime.JSX.Element;
979
+
980
+ declare function SelectList<T extends string | string[]>({ value, onChange, options, variant, size, notFound, }: SelectProps<T> & {
981
+ notFound?: ReactNode;
982
+ }): react_jsx_runtime.JSX.Element;
983
+
984
+ declare function FormBase({ children, title }: {
985
+ children: React.ReactNode;
986
+ title?: string;
987
+ }): react_jsx_runtime.JSX.Element;
988
+
989
+ interface IconRobotProps extends TablerIconsProps {
990
+ className?: string;
991
+ }
992
+ declare const IconRobot: react.ForwardRefExoticComponent<Omit<IconRobotProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
993
+
994
+ interface IconRobotPlusProps extends TablerIconsProps {
995
+ className?: string;
996
+ }
997
+ declare const IconRobotPlus: react.ForwardRefExoticComponent<Omit<IconRobotPlusProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
998
+
999
+ interface IconFileTypeAniProps extends TablerIconsProps {
1000
+ className?: string;
1001
+ }
1002
+ declare const IconFileTypeAni: react.ForwardRefExoticComponent<Omit<IconFileTypeAniProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1003
+
1004
+ interface IconFileTypeModProps extends TablerIconsProps {
1005
+ className?: string;
1006
+ }
1007
+ declare const IconFileTypeMod: react.ForwardRefExoticComponent<Omit<IconFileTypeModProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1008
+
1009
+ interface IconFileTypeVizijProps extends TablerIconsProps {
1010
+ className?: string;
1011
+ }
1012
+ declare const IconFileTypeVizij: react.ForwardRefExoticComponent<Omit<IconFileTypeVizijProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1013
+
1014
+ interface IconHomeProps extends TablerIconsProps {
1015
+ className?: string;
1016
+ }
1017
+ declare const IconHome: react.ForwardRefExoticComponent<Omit<IconHomeProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1018
+
1019
+ interface IconBoxProps extends TablerIconsProps {
1020
+ className?: string;
1021
+ }
1022
+ declare const IconBox: react.ForwardRefExoticComponent<Omit<IconBoxProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1023
+
1024
+ interface IconBoxPlusProps extends TablerIconsProps {
1025
+ className?: string;
1026
+ }
1027
+ declare const IconBoxPlus: react.ForwardRefExoticComponent<Omit<IconBoxPlusProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1028
+
1029
+ declare const IconPlayerNextKey: react.ForwardRefExoticComponent<Omit<TablerIconsProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1030
+
1031
+ declare const IconPlayerEndBounds: react.ForwardRefExoticComponent<Omit<TablerIconsProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1032
+
1033
+ declare const IconPlayerPlay: react.ForwardRefExoticComponent<Omit<TablerIconsProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1034
+
1035
+ declare const IconPlayerPlay2: react.ForwardRefExoticComponent<Omit<TablerIconsProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1036
+
1037
+ interface IconPlayPauseProps extends TablerIconsProps {
1038
+ fillOpacity?: number;
1039
+ dashed?: boolean;
1040
+ center?: "play" | "pause";
1041
+ }
1042
+ declare const IconPlayPause: react.ForwardRefExoticComponent<Omit<IconPlayPauseProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1043
+
1044
+ declare const IconKeyOutline: react.ForwardRefExoticComponent<Omit<TablerIconsProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1045
+
1046
+ declare const IconKeyOutlineDash: react.ForwardRefExoticComponent<Omit<TablerIconsProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1047
+
1048
+ interface IconKeyProps extends TablerIconsProps {
1049
+ fillOpacity?: number;
1050
+ dashed?: boolean;
1051
+ center?: "plus" | "minus";
1052
+ }
1053
+ declare const IconKey: react.ForwardRefExoticComponent<Omit<IconKeyProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1054
+
1055
+ interface IconProjectProps extends TablerIconsProps {
1056
+ className?: string;
1057
+ }
1058
+ declare const IconProject: react.ForwardRefExoticComponent<Omit<IconProjectProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1059
+
1060
+ interface IconPreviewViewProps extends TablerIconsProps {
1061
+ className?: string;
1062
+ }
1063
+ declare const IconPreviewView: react.ForwardRefExoticComponent<Omit<IconPreviewViewProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1064
+
1065
+ declare function WorldElementIcon({ type }: {
1066
+ type: string;
1067
+ }): react_jsx_runtime.JSX.Element;
1068
+
1069
+ interface IconFilterBoxProps extends TablerIconsProps {
1070
+ className?: string;
1071
+ }
1072
+ declare const IconFilterBox: react.ForwardRefExoticComponent<Omit<IconFilterBoxProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1073
+
1074
+ interface IconFilterXProps extends TablerIconsProps {
1075
+ className?: string;
1076
+ }
1077
+ declare const IconFilterX: react.ForwardRefExoticComponent<Omit<IconFilterXProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
1078
+
1079
+ interface StaticIconProps {
1080
+ children: ReactNode;
1081
+ variant?: Variant;
1082
+ color?: string;
1083
+ size?: Size | "fit";
1084
+ deemphasize?: boolean;
1085
+ className?: string;
1086
+ }
1087
+ declare function StaticIcon({ children, variant, size, color, deemphasize, className, }: StaticIconProps): react_jsx_runtime.JSX.Element;
1088
+
1089
+ interface ButtonModalProps {
1090
+ titleText: string;
1091
+ onClick: () => void;
1092
+ }
1093
+ declare function ButtonModal({ titleText, onClick }: ButtonModalProps): JSX.Element;
1094
+
1095
+ declare function CopyLinkButton({ link }: {
1096
+ link: string;
1097
+ }): react_jsx_runtime.JSX.Element;
1098
+
1099
+ declare function ThemeToggleButton(): react_jsx_runtime.JSX.Element;
1100
+
1101
+ interface CallToActionButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
1102
+ variant: Variant.Primary | Variant.Secondary | Variant.Tertiary;
1103
+ size: Size.Lg | Size.Md | Size.Sm;
1104
+ }
1105
+ declare const CallToActionButton: react.ForwardRefExoticComponent<CallToActionButtonProps & react.RefAttributes<HTMLButtonElement>>;
1106
+
1107
+ /**
1108
+ * Custom hook that returns the preferred system theme.
1109
+ *
1110
+ * @returns The preferred system theme, either `Theme.Dark` or `Theme.Light`.
1111
+ */
1112
+ declare function useSystemThemePreference(): Theme.Dark | Theme.Light;
1113
+
1114
+ declare function useDelayedBoolean(value: boolean, timeoutDuration: number): boolean;
1115
+
1116
+ interface ThemeProviderProps {
1117
+ children: ReactNode;
1118
+ }
1119
+ interface ThemeContextValue {
1120
+ explicitTheme: Theme;
1121
+ systemPreference: Theme;
1122
+ setExplicitTheme: (theme: Theme) => void;
1123
+ resolvedTheme: Theme.Dark | Theme.Light;
1124
+ }
1125
+ /**
1126
+ * The context for managing the theme in the application.
1127
+ */
1128
+ declare const ThemeContext: react.Context<ThemeContextValue>;
1129
+
1130
+ declare function useTheme(): ThemeContextValue;
1131
+
1132
+ /**
1133
+ * A hook used to add a toast to the toast context. Must be used within a ToastManager context.
1134
+ * @returns A function that adds a toast to the toast context.
1135
+ */
1136
+ declare function useAddToast(): (data: ToastData) => void;
1137
+
1138
+ /**
1139
+ * Renders a tree of nodes.
1140
+ *
1141
+ * @param nodeList - The list of nodes to render.
1142
+ * @param renderNode - The function that renders each individual node.
1143
+ * @returns The rendered tree component.
1144
+ */
1145
+ declare function NodeTree({ nodeList, renderNode, }: {
1146
+ nodeList: any[];
1147
+ renderNode: (node: any) => ReactNode;
1148
+ }): react_jsx_runtime.JSX.Element;
1149
+
1150
+ /**
1151
+ * Custom hook to detect clicks outside a specified element.
1152
+ * @param onClickAway - A callback function triggered when a click outside the element occurs.
1153
+ * @param ref - An optional ref to be attached to the element you want to monitor.
1154
+ */
1155
+ declare function useClickAway<T extends HTMLElement | null>(ref: React.RefObject<T>, onClickAway: (event: MouseEvent | TouchEvent) => void): void;
1156
+
1157
+ interface MenuItemProps {
1158
+ children: ReactNode;
1159
+ variant: Variant;
1160
+ title: ReactNode;
1161
+ }
1162
+ declare const MenuItem: react.ForwardRefExoticComponent<MenuItemProps & react.RefAttributes<HTMLDivElement>>;
1163
+
1164
+ interface SnippetProps {
1165
+ text: string;
1166
+ language?: string;
1167
+ className?: string;
1168
+ }
1169
+ declare function Snippet({ text, language, className }: SnippetProps): react_jsx_runtime.JSX.Element;
1170
+
1171
+ declare function getHeight(size?: Size): string;
1172
+ declare function getWidth(size?: Size): string;
1173
+ declare function getChipInsertSize(size?: Size): string;
1174
+ declare function getFontSize(size?: Size): string;
1175
+ declare function getBorder(variant?: Variant): string;
1176
+ declare function getHoverBorder(variant?: Variant): string;
1177
+ declare function getReversibleBgText(variant?: Variant, active?: boolean): string;
1178
+ declare function getItemSideStyle(variant?: Variant | "custom"): string;
1179
+ declare function getItemStyle(variant?: Variant | "custom"): string;
1180
+ declare function getSeparatorStyle(variant?: Variant | "custom"): string;
1181
+ declare function getChipColor(variant?: Variant | "custom"): string;
1182
+ declare function getOutline(variant?: Variant): string;
1183
+ declare function getBasicTextColor(variant?: Variant | "custom"): string;
1184
+ declare function getTooltipTextColor(variant?: Variant | "custom", invert?: boolean): string;
1185
+ declare function getBasicBgColor(variant?: Variant | "custom"): string;
1186
+ declare function getTextCaretColor(variant?: Variant | "custom"): string;
1187
+ declare function getHoverTextStyles(variant?: Variant): string;
1188
+ declare function getHoverButtonStyles(variant?: Variant): string;
1189
+ declare function getCheckedBgStyles(variant?: Variant): string;
1190
+ declare function getToggleButtonStyles(variant: Variant): string;
1191
+ declare function getGradient(variant?: Variant): string;
1192
+ declare function getInputStyles(flex?: boolean, subtle?: boolean, bold?: boolean, size?: Size, disabled?: boolean, className?: string, cursor?: string, constrainHeight?: boolean): string;
1193
+
1194
+ export { Accordion, type AccordionProps, Anchor, type AnchorProps, Avatar, type AvatarProps, BasicNumberField, type BasicNumberFieldProps, type BasicRowData, Button, ButtonModal, type ButtonModalProps, type ButtonProps, CallToActionButton, type CallToActionButtonProps, Checkbox, type CheckboxProps, Chip, type ChipProps, Collapse, type CollapseProps, CollapsibleContent, CollapsibleRoot, CollapsibleTrigger, ColorPickerInput, type ColorPickerInputProps, ColorPickerPopover, type ColorPickerPopoverProps, type ColumnDefinition, ContextMenu, type ContextMenuProps, CopyLinkButton, Dialog, type DialogProps, Dropdown, type DropdownProps, Dropzone, type DropzoneProps, EmailInput, type EmailInputProps, EmailsInput, type EmailsInputProps, FileInput, type FileInputProps, FormBase, IconBox, IconBoxPlus, type IconBoxPlusProps, type IconBoxProps, IconFileTypeAni, type IconFileTypeAniProps, IconFileTypeMod, type IconFileTypeModProps, IconFileTypeVizij, type IconFileTypeVizijProps, IconFilterBox, type IconFilterBoxProps, IconFilterX, type IconFilterXProps, IconHome, type IconHomeProps, IconKey, IconKeyOutline, IconKeyOutlineDash, type IconKeyProps, IconPlayPause, type IconPlayPauseProps, IconPlayerEndBounds, IconPlayerNextKey, IconPlayerPlay, IconPlayerPlay2, IconPreviewView, type IconPreviewViewProps, IconProject, type IconProjectProps, IconRobot, IconRobotPlus, type IconRobotPlusProps, type IconRobotProps, ImageButton, type ImageButtonProps, ImageInput, type ImageInputProps, InnerLayout, InnerScrollArea, type InputProps, Layout, type LayoutProps, Menu, MenuButton, type MenuButtonProps, MenuItem, type MenuItemProps, type MenuProps, Modal, type ModalProps, NestedCheckbox, type NestedCheckboxProps, NestedColorPicker, type NestedColorPickerProps, NestedItem, type NestedItemProps, NestedLabel, type NestedLabelProps, NestedMenu, type NestedMenuProps, NestedParent, NestedRadio, type NestedRadioProps, NestedSelect, type NestedSelectProps, NestedSeparator, type NestedSeparatorProps, NodeTree, NumberOrListInput, PasswordInput, type PasswordInputProps, Popover, type PopoverProps, Progress, type ProgressProps, ScrollArea, Search, type SearchProps, Select, SelectList, type SelectOption, type SelectProps, Separator, type SeparatorProps, Sidebar, type SidebarChild, type SidebarProps, Size, SliderNumberField, type SliderNumberFieldProps, Snippet, Spinner, StaticIcon, type StaticIconProps, Status, type StatusProps, type Step, StringsInput, type StringsInputProps, StyledArea, StyledInput, Switch, type SwitchProps, type TabChild, TableList, type TableListProps, Tabs, type TabsProps, TextArea, type TextAreaProps, TextField, type TextFieldProps, TextInput, type TextInputProps, Theme, ThemeContext, type ThemeContextValue, type ThemeProviderProps, ThemeToggleButton, TimeDisplay, TimeInput, type TimeInputProps, type ToastContainerProps, ToastContext, type ToastData, ToastManager, type ToastManagerProps, type ToastState, ToggleGroup, type ToggleGroupProps, ToggleSquare, type ToggleSquareProps, Tooltip, type TooltipProps, TrackedTooltip, type TrackedTooltipProps, Variant, VerticalStepper, type VerticalStepperProps, WorldElementIcon, getBasicBgColor, getBasicTextColor, getBorder, getCheckedBgStyles, getChipColor, getChipInsertSize, getFontSize, getGradient, getHeight, getHoverBorder, getHoverButtonStyles, getHoverTextStyles, getInputStyles, getItemSideStyle, getItemStyle, getOutline, getReversibleBgText, getSeparatorStyle, getTextCaretColor, getToggleButtonStyles, getTooltipTextColor, getWidth, stampToVisualTime, useAddToast, useClickAway, useDelayedBoolean, useMenu, useSystemThemePreference, useTheme, useTrackedTooltip };