@memelabui/ui 0.1.1 → 0.3.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.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
+ export { MemelabColors, colors } from './tokens/index.js';
1
2
  import * as react from 'react';
2
- import { ButtonHTMLAttributes, ReactNode, InputHTMLAttributes, SelectHTMLAttributes, TextareaHTMLAttributes, HTMLAttributes, ReactElement } from 'react';
3
+ import { ButtonHTMLAttributes, ReactNode, InputHTMLAttributes, SelectHTMLAttributes, TextareaHTMLAttributes, HTMLAttributes, ReactElement, ComponentType } from 'react';
3
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
5
 
5
6
  type ClassValue = string | number | null | undefined | boolean | Record<string, boolean | null | undefined> | ClassValue[];
@@ -12,8 +13,36 @@ declare function cn(...values: ClassValue[]): string;
12
13
  declare function getFocusableElements(container: HTMLElement): HTMLElement[];
13
14
  declare function focusSafely(el: HTMLElement | null | undefined): void;
14
15
 
16
+ type UseClipboardReturn = {
17
+ copy: (text: string) => Promise<void>;
18
+ copied: boolean;
19
+ };
20
+ declare function useClipboard(timeout?: number): UseClipboardReturn;
21
+
22
+ type UseDisclosureReturn = {
23
+ isOpen: boolean;
24
+ open: () => void;
25
+ close: () => void;
26
+ toggle: () => void;
27
+ };
28
+ declare function useDisclosure(defaultOpen?: boolean): UseDisclosureReturn;
29
+
30
+ declare function useMediaQuery(query: string): boolean;
31
+
32
+ declare function useDebounce<T>(value: T, delayMs?: number): T;
33
+
15
34
  type Size = 'sm' | 'md' | 'lg';
16
35
 
36
+ type AvatarSize = 'sm' | 'md' | 'lg' | 'xl';
37
+ type AvatarProps = {
38
+ src?: string;
39
+ alt?: string;
40
+ name?: string;
41
+ size?: AvatarSize;
42
+ className?: string;
43
+ };
44
+ declare const Avatar: react.ForwardRefExoticComponent<AvatarProps & react.RefAttributes<HTMLDivElement>>;
45
+
17
46
  type ButtonVariant = 'primary' | 'success' | 'warning' | 'danger' | 'secondary' | 'ghost';
18
47
  type ButtonSize = 'sm' | 'md' | 'lg';
19
48
  type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & {
@@ -37,7 +66,7 @@ type IconButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'
37
66
  size?: 'sm' | 'md' | 'lg';
38
67
  'aria-label': string;
39
68
  };
40
- declare const IconButton: react.ForwardRefExoticComponent<Omit<ButtonHTMLAttributes<HTMLButtonElement>, "aria-label" | "children"> & {
69
+ declare const IconButton: react.ForwardRefExoticComponent<Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children" | "aria-label"> & {
41
70
  icon: ReactNode;
42
71
  variant?: "primary" | "success" | "warning" | "danger" | "secondary" | "ghost";
43
72
  size?: "sm" | "md" | "lg";
@@ -57,28 +86,54 @@ declare const Input: react.ForwardRefExoticComponent<InputHTMLAttributes<HTMLInp
57
86
  helperText?: string;
58
87
  } & react.RefAttributes<HTMLInputElement>>;
59
88
 
89
+ type SearchInputProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> & {
90
+ onClear?: () => void;
91
+ label?: string;
92
+ };
93
+ declare const SearchInput: react.ForwardRefExoticComponent<Omit<InputHTMLAttributes<HTMLInputElement>, "type"> & {
94
+ onClear?: () => void;
95
+ label?: string;
96
+ } & react.RefAttributes<HTMLInputElement>>;
97
+
60
98
  type SelectProps = SelectHTMLAttributes<HTMLSelectElement> & {
61
99
  hasError?: boolean;
62
100
  label?: string;
63
101
  error?: string;
102
+ helperText?: string;
64
103
  };
65
104
  declare const Select: react.ForwardRefExoticComponent<SelectHTMLAttributes<HTMLSelectElement> & {
66
105
  hasError?: boolean;
67
106
  label?: string;
68
107
  error?: string;
108
+ helperText?: string;
69
109
  } & react.RefAttributes<HTMLSelectElement>>;
70
110
 
71
111
  type TextareaProps = TextareaHTMLAttributes<HTMLTextAreaElement> & {
72
112
  hasError?: boolean;
73
113
  label?: string;
74
114
  error?: string;
115
+ helperText?: string;
75
116
  };
76
117
  declare const Textarea: react.ForwardRefExoticComponent<TextareaHTMLAttributes<HTMLTextAreaElement> & {
77
118
  hasError?: boolean;
78
119
  label?: string;
79
120
  error?: string;
121
+ helperText?: string;
80
122
  } & react.RefAttributes<HTMLTextAreaElement>>;
81
123
 
124
+ type TagInputProps = {
125
+ value: string[];
126
+ onChange: (tags: string[]) => void;
127
+ placeholder?: string;
128
+ disabled?: boolean;
129
+ label?: string;
130
+ error?: string;
131
+ maxTags?: number;
132
+ className?: string;
133
+ id?: string;
134
+ };
135
+ declare function TagInput({ value, onChange, placeholder, disabled, label, error, maxTags, className, id: externalId, }: TagInputProps): react_jsx_runtime.JSX.Element;
136
+
82
137
  type BadgeVariant = 'neutral' | 'primary' | 'success' | 'successSolid' | 'warning' | 'danger' | 'dangerSolid' | 'accent';
83
138
  type BadgeSize = 'sm' | 'md';
84
139
  type BadgeProps = Omit<HTMLAttributes<HTMLSpanElement>, 'children'> & {
@@ -105,16 +160,74 @@ type ToggleProps = {
105
160
  disabled?: boolean;
106
161
  label?: string;
107
162
  size?: ToggleSize;
163
+ id?: string;
108
164
  'aria-label'?: string;
109
165
  };
110
- declare function Toggle({ checked, onChange, disabled, label, size, 'aria-label': ariaLabel }: ToggleProps): react_jsx_runtime.JSX.Element;
166
+ declare const Toggle: react.ForwardRefExoticComponent<ToggleProps & react.RefAttributes<HTMLButtonElement>>;
167
+
168
+ type SliderProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'onChange'> & {
169
+ label?: string;
170
+ showValue?: boolean;
171
+ formatValue?: (value: number) => string;
172
+ onChange?: (value: number) => void;
173
+ };
174
+ declare const Slider: react.ForwardRefExoticComponent<Omit<InputHTMLAttributes<HTMLInputElement>, "type" | "onChange"> & {
175
+ label?: string;
176
+ showValue?: boolean;
177
+ formatValue?: (value: number) => string;
178
+ onChange?: (value: number) => void;
179
+ } & react.RefAttributes<HTMLInputElement>>;
180
+
181
+ type ColorInputProps = {
182
+ value: string;
183
+ onChange: (color: string) => void;
184
+ label?: string;
185
+ disabled?: boolean;
186
+ className?: string;
187
+ id?: string;
188
+ };
189
+ declare const ColorInput: react.ForwardRefExoticComponent<ColorInputProps & react.RefAttributes<HTMLInputElement>>;
190
+
191
+ type CheckboxProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> & {
192
+ label?: string;
193
+ error?: string;
194
+ indeterminate?: boolean;
195
+ };
196
+ declare const Checkbox: react.ForwardRefExoticComponent<Omit<InputHTMLAttributes<HTMLInputElement>, "type"> & {
197
+ label?: string;
198
+ error?: string;
199
+ indeterminate?: boolean;
200
+ } & react.RefAttributes<HTMLInputElement>>;
201
+
202
+ type RadioGroupProps = {
203
+ value?: string;
204
+ defaultValue?: string;
205
+ onValueChange?: (value: string) => void;
206
+ name?: string;
207
+ disabled?: boolean;
208
+ orientation?: 'horizontal' | 'vertical';
209
+ label?: string;
210
+ error?: string;
211
+ children: ReactNode;
212
+ className?: string;
213
+ };
214
+ type RadioItemProps = {
215
+ value: string;
216
+ disabled?: boolean;
217
+ children: ReactNode;
218
+ className?: string;
219
+ };
220
+ declare function RadioGroup({ value: controlledValue, defaultValue, onValueChange, name: externalName, disabled, orientation, label, error, children, className, }: RadioGroupProps): react_jsx_runtime.JSX.Element;
221
+ declare function RadioItem({ value, disabled: itemDisabled, children, className }: RadioItemProps): react_jsx_runtime.JSX.Element;
111
222
 
112
223
  type SpinnerSize = 'sm' | 'md' | 'lg';
113
224
  type SpinnerProps = {
114
225
  className?: string;
115
226
  size?: SpinnerSize;
227
+ /** Accessible label for screen readers. When provided, the spinner gets role="status". */
228
+ label?: string;
116
229
  };
117
- declare function Spinner({ className, size }: SpinnerProps): react_jsx_runtime.JSX.Element;
230
+ declare function Spinner({ className, size, label }: SpinnerProps): react_jsx_runtime.JSX.Element;
118
231
 
119
232
  type SkeletonProps = {
120
233
  className?: string;
@@ -122,13 +235,46 @@ type SkeletonProps = {
122
235
  };
123
236
  declare function Skeleton({ className, circle }: SkeletonProps): react_jsx_runtime.JSX.Element;
124
237
 
238
+ type TabsVariant = 'underline' | 'pill';
239
+ type TabsProps = {
240
+ defaultValue?: string;
241
+ value?: string;
242
+ onValueChange?: (value: string) => void;
243
+ variant?: TabsVariant;
244
+ children: ReactNode;
245
+ className?: string;
246
+ };
247
+ type TabListProps = {
248
+ children: ReactNode;
249
+ className?: string;
250
+ };
251
+ type TabProps = {
252
+ value: string;
253
+ disabled?: boolean;
254
+ children: ReactNode;
255
+ className?: string;
256
+ };
257
+ type TabPanelProps = {
258
+ value: string;
259
+ children: ReactNode;
260
+ className?: string;
261
+ };
262
+ declare function Tabs({ defaultValue, value, onValueChange, variant, children, className, }: TabsProps): react_jsx_runtime.JSX.Element;
263
+ declare function TabList({ children, className }: TabListProps): react_jsx_runtime.JSX.Element;
264
+ declare function Tab({ value, disabled, children, className }: TabProps): react_jsx_runtime.JSX.Element;
265
+ declare function TabPanel({ value, children, className }: TabPanelProps): react_jsx_runtime.JSX.Element | null;
266
+
125
267
  type CardVariant = 'surface' | 'glass';
126
268
  type CardProps = HTMLAttributes<HTMLDivElement> & {
127
269
  hoverable?: boolean;
128
270
  variant?: CardVariant;
129
271
  children: ReactNode;
130
272
  };
131
- declare function Card({ hoverable, variant, className, ...props }: CardProps): react_jsx_runtime.JSX.Element;
273
+ declare const Card: react.ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & {
274
+ hoverable?: boolean;
275
+ variant?: CardVariant;
276
+ children: ReactNode;
277
+ } & react.RefAttributes<HTMLDivElement>>;
132
278
 
133
279
  type ModalProps = {
134
280
  isOpen: boolean;
@@ -171,9 +317,9 @@ type TooltipProps = {
171
317
  declare function Tooltip({ content, delayMs, placement, className, children }: TooltipProps): react_jsx_runtime.JSX.Element;
172
318
 
173
319
  type EmptyStateProps = {
174
- icon?: (props: {
320
+ icon?: ComponentType<{
175
321
  className?: string;
176
- }) => JSX.Element;
322
+ }>;
177
323
  title: string;
178
324
  description?: string;
179
325
  actionLabel?: string;
@@ -192,6 +338,141 @@ type CollapsibleSectionProps = {
192
338
  };
193
339
  declare function CollapsibleSection({ title, defaultOpen, children, right, className }: CollapsibleSectionProps): react_jsx_runtime.JSX.Element;
194
340
 
341
+ type DropdownProps = {
342
+ children: ReactNode;
343
+ className?: string;
344
+ };
345
+ type DropdownTriggerProps = {
346
+ children: ReactElement;
347
+ className?: string;
348
+ };
349
+ type DropdownMenuProps = {
350
+ children: ReactNode;
351
+ className?: string;
352
+ align?: 'left' | 'right';
353
+ };
354
+ type DropdownItemProps = {
355
+ onSelect?: () => void;
356
+ disabled?: boolean;
357
+ children: ReactNode;
358
+ className?: string;
359
+ };
360
+ type DropdownSeparatorProps = {
361
+ className?: string;
362
+ };
363
+ declare function Dropdown({ children, className }: DropdownProps): react_jsx_runtime.JSX.Element;
364
+ declare function DropdownTrigger({ children, className }: DropdownTriggerProps): ReactElement<any, string | react.JSXElementConstructor<any>>;
365
+ declare function DropdownMenu({ children, className, align }: DropdownMenuProps): react.ReactPortal | null;
366
+ declare function DropdownItem({ onSelect, disabled, children, className }: DropdownItemProps): react_jsx_runtime.JSX.Element;
367
+ declare function DropdownSeparator({ className }: DropdownSeparatorProps): react_jsx_runtime.JSX.Element;
368
+
369
+ type DropZoneProps = {
370
+ onFilesDropped: (files: File[]) => void;
371
+ accept?: string;
372
+ maxFiles?: number;
373
+ maxSize?: number;
374
+ disabled?: boolean;
375
+ children?: ReactNode;
376
+ className?: string;
377
+ 'aria-label'?: string;
378
+ };
379
+ declare function DropZone({ onFilesDropped, accept, maxFiles, maxSize, disabled, children, className, 'aria-label': ariaLabel, }: DropZoneProps): react_jsx_runtime.JSX.Element;
380
+
381
+ type FormFieldProps = {
382
+ label?: string;
383
+ error?: string;
384
+ helperText?: string;
385
+ children: ReactElement;
386
+ className?: string;
387
+ id?: string;
388
+ };
389
+ declare function FormField({ label, error, helperText, children, className, id: idProp }: FormFieldProps): react_jsx_runtime.JSX.Element;
390
+
391
+ type DividerProps = {
392
+ orientation?: 'horizontal' | 'vertical';
393
+ label?: string;
394
+ className?: string;
395
+ };
396
+ declare function Divider({ orientation, label, className }: DividerProps): react_jsx_runtime.JSX.Element;
397
+
398
+ type TableProps = {
399
+ children: ReactNode;
400
+ className?: string;
401
+ };
402
+ type TableHeaderProps = {
403
+ children: ReactNode;
404
+ className?: string;
405
+ };
406
+ type TableBodyProps = {
407
+ children: ReactNode;
408
+ className?: string;
409
+ };
410
+ type TableRowProps = {
411
+ children: ReactNode;
412
+ className?: string;
413
+ hoverable?: boolean;
414
+ };
415
+ type TableHeadProps = {
416
+ children: ReactNode;
417
+ className?: string;
418
+ };
419
+ type TableCellProps = {
420
+ children: ReactNode;
421
+ className?: string;
422
+ align?: 'left' | 'center' | 'right';
423
+ };
424
+ declare const Table: react.ForwardRefExoticComponent<TableProps & react.RefAttributes<HTMLTableElement>>;
425
+ declare const TableHeader: react.ForwardRefExoticComponent<TableHeaderProps & react.RefAttributes<HTMLTableSectionElement>>;
426
+ declare const TableBody: react.ForwardRefExoticComponent<TableBodyProps & react.RefAttributes<HTMLTableSectionElement>>;
427
+ declare const TableRow: react.ForwardRefExoticComponent<TableRowProps & react.RefAttributes<HTMLTableRowElement>>;
428
+ declare const TableHead: react.ForwardRefExoticComponent<TableHeadProps & react.RefAttributes<HTMLTableCellElement>>;
429
+ declare const TableCell: react.ForwardRefExoticComponent<TableCellProps & react.RefAttributes<HTMLTableCellElement>>;
430
+
431
+ type StatCardTrend = {
432
+ value: number;
433
+ label?: string;
434
+ };
435
+ type StatCardProps = {
436
+ value: string | number;
437
+ label: string;
438
+ icon?: ReactNode;
439
+ trend?: StatCardTrend;
440
+ className?: string;
441
+ };
442
+ declare function StatCard({ value, label, icon, trend, className }: StatCardProps): react_jsx_runtime.JSX.Element;
443
+
444
+ type PaginationProps = {
445
+ page: number;
446
+ totalPages: number;
447
+ onPageChange: (page: number) => void;
448
+ siblingCount?: number;
449
+ className?: string;
450
+ };
451
+ declare function Pagination({ page, totalPages, onPageChange, siblingCount, className, }: PaginationProps): react_jsx_runtime.JSX.Element | null;
452
+
453
+ type Step = {
454
+ label: string;
455
+ description?: string;
456
+ };
457
+ type StepperProps = {
458
+ steps: Step[];
459
+ activeStep: number;
460
+ className?: string;
461
+ };
462
+ declare function Stepper({ steps, activeStep, className }: StepperProps): react_jsx_runtime.JSX.Element;
463
+
464
+ type ProgressBarVariant = 'primary' | 'success' | 'warning' | 'danger';
465
+ type ProgressBarProps = {
466
+ value: number;
467
+ max?: number;
468
+ variant?: ProgressBarVariant;
469
+ label?: string;
470
+ showValue?: boolean;
471
+ size?: 'sm' | 'md' | 'lg';
472
+ className?: string;
473
+ };
474
+ declare function ProgressBar({ value, max, variant, label, showValue, size, className, }: ProgressBarProps): react_jsx_runtime.JSX.Element;
475
+
195
476
  type PageShellVariant = 'plain' | 'glass' | 'minimal';
196
477
  type PageShellProps = {
197
478
  header?: ReactNode;
@@ -200,6 +481,7 @@ type PageShellProps = {
200
481
  children: ReactNode;
201
482
  className?: string;
202
483
  mainClassName?: string;
484
+ /** @deprecated Use `mainClassName` instead. Alias kept for backwards compatibility. */
203
485
  containerClassName?: string;
204
486
  maxWidth?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
205
487
  };
@@ -226,7 +508,65 @@ type DashboardLayoutProps = {
226
508
  navbar?: ReactNode;
227
509
  sidebar?: ReactNode;
228
510
  className?: string;
511
+ mainClassName?: string;
512
+ maxWidth?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
513
+ };
514
+ declare function DashboardLayout({ children, navbar, sidebar, className, mainClassName, maxWidth }: DashboardLayoutProps): react_jsx_runtime.JSX.Element;
515
+
516
+ type AlertVariant = 'info' | 'success' | 'warning' | 'error';
517
+ type AlertProps = {
518
+ variant?: AlertVariant;
519
+ title?: string;
520
+ children: ReactNode;
521
+ onDismiss?: () => void;
522
+ className?: string;
523
+ };
524
+ declare function Alert({ variant, title, children, onDismiss, className }: AlertProps): react_jsx_runtime.JSX.Element;
525
+
526
+ type CopyFieldProps = {
527
+ value: string;
528
+ label?: string;
529
+ masked?: boolean;
530
+ className?: string;
531
+ id?: string;
532
+ };
533
+ declare function CopyField({ value, label, masked, className, id: externalId }: CopyFieldProps): react_jsx_runtime.JSX.Element;
534
+
535
+ type ProgressButtonProps = Omit<ButtonProps, 'leftIcon' | 'rightIcon' | 'loading'> & {
536
+ isLoading?: boolean;
537
+ loadingText?: ReactNode;
538
+ };
539
+ declare const ProgressButton: react.ForwardRefExoticComponent<Omit<ButtonProps, "leftIcon" | "rightIcon" | "loading"> & {
540
+ isLoading?: boolean;
541
+ loadingText?: ReactNode;
542
+ } & react.RefAttributes<HTMLButtonElement>>;
543
+
544
+ type ToastVariant = 'info' | 'success' | 'warning' | 'error';
545
+ type ToastPosition = 'top-right' | 'top-center' | 'bottom-right' | 'bottom-center';
546
+ type ToastData = {
547
+ id: string;
548
+ variant: ToastVariant;
549
+ title: string;
550
+ description?: string;
551
+ duration?: number;
552
+ };
553
+ type ToastProviderProps = {
554
+ children: ReactNode;
555
+ position?: ToastPosition;
556
+ maxToasts?: number;
557
+ };
558
+ type ToastOptions = {
559
+ variant: ToastVariant;
560
+ title: string;
561
+ description?: string;
562
+ duration?: number;
563
+ };
564
+ type ToastContextValue = {
565
+ toast: (options: ToastOptions) => string;
566
+ dismiss: (id: string) => void;
567
+ dismissAll: () => void;
229
568
  };
230
- declare function DashboardLayout({ children, navbar, sidebar, className }: DashboardLayoutProps): react_jsx_runtime.JSX.Element;
569
+ declare function ToastProvider({ children, position, maxToasts }: ToastProviderProps): react_jsx_runtime.JSX.Element;
570
+ declare function useToast(): ToastContextValue;
231
571
 
232
- export { Badge, type BadgeProps, type BadgeSize, type BadgeVariant, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardProps, type CardVariant, CollapsibleSection, type CollapsibleSectionProps, ConfirmDialog, type ConfirmDialogProps, type ConfirmDialogVariant, DashboardLayout, type DashboardLayoutProps, EmptyState, type EmptyStateProps, IconButton, type IconButtonProps, Input, type InputProps, Modal, type ModalProps, Navbar, type NavbarProps, PageShell, type PageShellProps, type PageShellVariant, Pill, Select, type SelectProps, Sidebar, type SidebarProps, type Size, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, type SpinnerSize, Textarea, type TextareaProps, Toggle, type ToggleProps, type ToggleSize, Tooltip, type TooltipProps, cn, focusSafely, getFocusableElements };
572
+ export { Alert, type AlertProps, type AlertVariant, Avatar, type AvatarProps, type AvatarSize, Badge, type BadgeProps, type BadgeSize, type BadgeVariant, Button, type ButtonProps, type ButtonSize, type ButtonVariant, Card, type CardProps, type CardVariant, Checkbox, type CheckboxProps, CollapsibleSection, type CollapsibleSectionProps, ColorInput, type ColorInputProps, ConfirmDialog, type ConfirmDialogProps, type ConfirmDialogVariant, CopyField, type CopyFieldProps, DashboardLayout, type DashboardLayoutProps, Divider, type DividerProps, DropZone, type DropZoneProps, Dropdown, DropdownItem, type DropdownItemProps, DropdownMenu, type DropdownMenuProps, type DropdownProps, DropdownSeparator, type DropdownSeparatorProps, DropdownTrigger, type DropdownTriggerProps, EmptyState, type EmptyStateProps, FormField, type FormFieldProps, IconButton, type IconButtonProps, Input, type InputProps, Modal, type ModalProps, Navbar, type NavbarProps, PageShell, type PageShellProps, type PageShellVariant, Pagination, type PaginationProps, Pill, ProgressBar, type ProgressBarProps, type ProgressBarVariant, ProgressButton, type ProgressButtonProps, RadioGroup, type RadioGroupProps, RadioItem, type RadioItemProps, SearchInput, type SearchInputProps, Select, type SelectProps, Sidebar, type SidebarProps, type Size, Skeleton, type SkeletonProps, Slider, type SliderProps, Spinner, type SpinnerProps, type SpinnerSize, StatCard, type StatCardProps, type StatCardTrend, type Step, Stepper, type StepperProps, Tab, TabList, type TabListProps, TabPanel, type TabPanelProps, type TabProps, Table, TableBody, type TableBodyProps, TableCell, type TableCellProps, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, type TabsVariant, TagInput, type TagInputProps, Textarea, type TextareaProps, type ToastData, type ToastPosition, ToastProvider, type ToastProviderProps, type ToastVariant, Toggle, type ToggleProps, type ToggleSize, Tooltip, type TooltipPlacement, type TooltipProps, type UseClipboardReturn, type UseDisclosureReturn, cn, focusSafely, getFocusableElements, useClipboard, useDebounce, useDisclosure, useMediaQuery, useToast };