@protonradio/proton-ui 0.11.0-beta.16 → 0.11.0-beta.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +153 -73
  2. package/dist/breakpoint-9y1_8U_b.mjs +10 -0
  3. package/dist/breakpoint-9y1_8U_b.mjs.map +1 -0
  4. package/dist/breakpoint-DtqbboOa.js +2 -0
  5. package/dist/breakpoint-DtqbboOa.js.map +1 -0
  6. package/dist/constants.cjs.js +1 -1
  7. package/dist/constants.cjs.js.map +1 -1
  8. package/dist/constants.d.ts +4 -147
  9. package/dist/constants.es.js +7 -19
  10. package/dist/constants.es.js.map +1 -1
  11. package/dist/darkTheme-DUWn6YJ-.mjs +345 -0
  12. package/dist/darkTheme-DUWn6YJ-.mjs.map +1 -0
  13. package/dist/darkTheme-ann6VTfq.js +2 -0
  14. package/dist/darkTheme-ann6VTfq.js.map +1 -0
  15. package/dist/hooks.cjs.js +1 -1
  16. package/dist/hooks.cjs.js.map +1 -1
  17. package/dist/hooks.d.ts +34 -5
  18. package/dist/hooks.es.js +36 -4
  19. package/dist/hooks.es.js.map +1 -1
  20. package/dist/icons.svg +10 -10
  21. package/dist/image-BlhKzTx8.js +2 -0
  22. package/dist/image-BlhKzTx8.js.map +1 -0
  23. package/dist/image-C8M6y5Op.mjs +205 -0
  24. package/dist/image-C8M6y5Op.mjs.map +1 -0
  25. package/dist/index.cjs.js +12 -12
  26. package/dist/index.cjs.js.map +1 -1
  27. package/dist/index.d.ts +490 -285
  28. package/dist/index.es.js +9979 -11292
  29. package/dist/index.es.js.map +1 -1
  30. package/dist/navigation-BB0MBIiR.js +2 -0
  31. package/dist/navigation-BB0MBIiR.js.map +1 -0
  32. package/dist/navigation-Bj7Pex9j.mjs +43 -0
  33. package/dist/navigation-Bj7Pex9j.mjs.map +1 -0
  34. package/dist/style.css +1 -1
  35. package/dist/theme-DQsfWeLo.mjs +12 -0
  36. package/dist/theme-DQsfWeLo.mjs.map +1 -0
  37. package/dist/theme-Dc0Ahjq9.js +2 -0
  38. package/dist/theme-Dc0Ahjq9.js.map +1 -0
  39. package/dist/useBreakpoint-CjRyGKN-.mjs.map +1 -1
  40. package/dist/useBreakpoint-DA-JqOu3.js.map +1 -1
  41. package/dist/utils.cjs.js +1 -1
  42. package/dist/utils.cjs.js.map +1 -1
  43. package/dist/utils.d.ts +26 -44
  44. package/dist/utils.es.js +17 -453
  45. package/dist/utils.es.js.map +1 -1
  46. package/package.json +104 -100
  47. package/dist/palettes-BX86v-qb.js +0 -2
  48. package/dist/palettes-BX86v-qb.js.map +0 -1
  49. package/dist/palettes-mcF0lNKY.mjs +0 -171
  50. package/dist/palettes-mcF0lNKY.mjs.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,30 +1,32 @@
1
- import { AriaButtonProps } from 'react-aria';
2
- import { AriaDialogProps } from 'react-aria';
3
- import { AriaPopoverProps } from 'react-aria';
4
- import { AriaTableProps } from 'react-aria';
1
+ import { AriaButtonProps } from '@react-aria/button';
2
+ import { AriaDialogProps } from '@react-aria/dialog';
3
+ import { AriaPopoverProps } from '@react-aria/overlays';
4
+ import { AriaTableProps } from '@react-aria/table';
5
5
  import { ColumnProps } from '@react-stately/table';
6
6
  import { default as default_2 } from 'react';
7
7
  import { DOMProps } from '@react-types/shared';
8
8
  import { ForwardRefExoticComponent } from 'react';
9
9
  import { JSX as JSX_2 } from 'react/jsx-runtime';
10
- import { OverlayTriggerProps } from 'react-stately';
11
- import { OverlayTriggerState } from 'react-stately';
12
- import { PressEvent } from 'react-aria';
10
+ import { OverlayTriggerProps } from '@react-stately/overlays';
11
+ import { OverlayTriggerState } from '@react-stately/overlays';
12
+ import { PressEvent } from '@react-types/shared';
13
13
  import { ReactNode } from 'react';
14
14
  import { RefAttributes } from 'react';
15
15
  import { RowProps } from '@react-stately/table';
16
16
  import { Section } from '@react-stately/table';
17
- import { Selection as Selection_2 } from 'react-stately';
17
+ import { Selection as Selection_2 } from '@react-types/shared';
18
18
  import { TableBodyProps } from '@react-stately/table';
19
19
  import { TableHeader } from '@react-stately/table';
20
- import { TableStateProps } from 'react-stately';
20
+ import { TableStateProps } from '@react-stately/table';
21
21
  import { TooltipProps as TooltipProps_2 } from 'react-aria-components';
22
22
  import { TooltipTriggerComponentProps } from 'react-aria-components';
23
23
 
24
24
  /**
25
25
  * ActionMenu to display a menu of actions.
26
26
  * Renders a list of actions as a focusable menu, or non-focusable children.
27
- * @interface ActionMenuProps
27
+ *
28
+ * API:
29
+ * - {@link ActionMenuProps}
28
30
  */
29
31
  export declare const ActionMenu: ({ isOpen, selectionMode, selectedKeys, defaultSelectedKeys, disabledKeys, children, showCancel, cancelButtonText, actions, title, onSelectionChange, onClose, "data-testid": testId, }: ActionMenuProps) => JSX_2.Element;
30
32
 
@@ -38,35 +40,63 @@ declare interface ActionMenuAction {
38
40
  }
39
41
 
40
42
  declare interface ActionMenuProps {
41
- isOpen: boolean;
42
- selectionMode?: "single" | "multiple" | "none";
43
- selectedKeys?: string[];
44
- defaultSelectedKeys?: string[];
45
- disabledKeys?: string[];
43
+ /** The actions of the menu
44
+ * - type {@link ActionMenuAction}[]
45
+ */
46
+ actions?: ActionMenuAction[];
47
+ /** The text of the cancel button */
48
+ cancelButtonText?: string;
49
+ /** The children of the menu */
46
50
  children?: ReactNode | ((props: {
47
51
  close: () => void;
48
52
  }) => ReactNode);
49
- showCancel?: boolean;
50
- cancelButtonText?: string;
51
- title?: string;
52
- actions?: ActionMenuAction[];
53
- id?: string;
53
+ /** The test id of the menu */
54
+ "data-testid"?: string;
55
+ /** The keys of the default selected items */
56
+ defaultSelectedKeys?: string[];
57
+ /** The keys of the disabled items */
58
+ disabledKeys?: string[];
59
+ /** Whether the menu is open
60
+ * @default false
61
+ */
62
+ isOpen: boolean;
63
+ /** The callback function to close the menu */
54
64
  onClose?: () => void;
65
+ /** The callback function to change the selection
66
+ * - type {@link Selection}
67
+ */
55
68
  onSelectionChange?: (keys: Selection_2) => void;
56
- "data-testid"?: string;
69
+ /** The selection mode of the menu
70
+ * @default "single"
71
+ */
72
+ selectionMode?: "single" | "multiple" | "none";
73
+ /** The keys of the selected items */
74
+ selectedKeys?: string[];
75
+ /** Whether to show the cancel button */
76
+ showCancel?: boolean;
77
+ /** The title of the menu */
78
+ title?: string;
57
79
  }
58
80
 
81
+ /**
82
+ * A badge component for displaying status, categories, or counts with various visual styles.
83
+ *
84
+ * API:
85
+ * - {@link BadgeProps}
86
+ * - extends {@link React.HTMLAttributes}
87
+ */
59
88
  export declare const Badge: ({ variant, children, ...props }: BadgeProps) => JSX_2.Element;
60
89
 
61
- export declare interface BadgeProps extends React.HTMLAttributes<HTMLDivElement> {
62
- /**
63
- * The badge's visual aesthetic.
64
- */
65
- variant?: BadgeVariant;
90
+ declare interface BadgeProps extends React.HTMLAttributes<HTMLDivElement> {
66
91
  /**
67
92
  * The content to display within the badge.
68
93
  */
69
94
  children: ReactNode;
95
+ /**
96
+ * The badge's visual aesthetic.
97
+ * - type {@link BadgeVariant}
98
+ */
99
+ variant?: BadgeVariant;
70
100
  }
71
101
 
72
102
  export declare type BadgeVariant = "primary" | "secondary" | "transparent" | "success" | "warning" | "danger";
@@ -75,60 +105,96 @@ export declare const BadgeVariants: Record<BadgeVariant, BadgeVariant>;
75
105
 
76
106
  /**
77
107
  * A banner used to display a success, warning, or error message.
78
- * @interface BannerProps
108
+ *
109
+ * API:
110
+ * - {@link BannerProps}
111
+ * - extends {@link BannerIconProps}
79
112
  */
80
113
  export declare const Banner: {
81
114
  ({ variant, rounded, icon, compact, children, "data-testid": dataTestId, }: BannerProps): JSX_2.Element;
82
- Title: ({ children, ...props }: {
83
- children: ReactNode;
84
- }) => JSX_2.Element;
85
- Content: ({ children, ...props }: {
86
- children: ReactNode;
87
- }) => JSX_2.Element;
88
- Icon: ({ children, icon, ...props }: BannerIconProps) => JSX_2.Element;
89
- Action: ({ children, ...props }: ButtonProps) => JSX_2.Element;
90
- Actions: default_2.FC<BannerActionsProps>;
91
- icons: {
92
- success: JSX_2.Element;
93
- warning: JSX_2.Element;
94
- danger: JSX_2.Element;
115
+ displayName: string;
116
+ /**
117
+ * Renders an h3 styled banner.
118
+ */
119
+ Title: {
120
+ ({ children, "data-testid": dataTestId, }: {
121
+ children: ReactNode;
122
+ "data-testid"?: string;
123
+ }): JSX_2.Element;
124
+ displayName: string;
125
+ };
126
+ /**
127
+ * Renders a p styled banner.
128
+ */
129
+ Content: {
130
+ ({ children, "data-testid": dataTestId, }: {
131
+ children: ReactNode;
132
+ "data-testid"?: string;
133
+ }): JSX_2.Element;
134
+ displayName: string;
95
135
  };
96
- variants: {
97
- readonly default: "default";
98
- readonly success: "success";
99
- readonly warning: "warning";
100
- readonly danger: "danger";
136
+ /**
137
+ * Renders an icon inline with the banner title.
138
+ *
139
+ * API:
140
+ * - {@link BannerIconProps}
141
+ */
142
+ Icon: {
143
+ ({ icon, "data-testid": dataTestId }: BannerIconProps): JSX_2.Element;
144
+ displayName: string;
145
+ };
146
+ /**
147
+ * Renders a Proton Button.
148
+ * - @prop buttonProps {@link ButtonProps}
149
+ */
150
+ Action: {
151
+ ({ children, ...buttonProps }: ButtonProps): JSX_2.Element;
152
+ displayName: string;
153
+ };
154
+ /**
155
+ * Renders Proton Buttons in a responsive actions grid.
156
+ */
157
+ Actions: {
158
+ ({ children }: {
159
+ children: ReactNode;
160
+ }): JSX_2.Element;
161
+ displayName: string;
101
162
  };
102
163
  };
103
164
 
104
- declare interface BannerActionsProps {
105
- children: ReactNode;
106
- }
165
+ export declare const BANNER_ICONS: {
166
+ success: JSX_2.Element;
167
+ warning: JSX_2.Element;
168
+ danger: JSX_2.Element;
169
+ };
170
+
171
+ export declare const BANNER_VARIANTS: {
172
+ readonly default: "default";
173
+ readonly success: "success";
174
+ readonly warning: "warning";
175
+ readonly danger: "danger";
176
+ };
107
177
 
108
178
  declare interface BannerIconProps {
179
+ /**
180
+ * Optional custom icon or children for the icon area.
181
+ */
182
+ children?: ReactNode;
109
183
  /**
110
184
  * The icon to display in the banner.
111
- * Can be a boolean to conditionally show or hide,
112
- * or a ReactNode to provide a custom icon.
185
+ * Can be a boolean to conditionally show or hide, or a ReactNode to provide a custom icon.
113
186
  */
114
187
  icon?: boolean | ReactNode;
115
188
  /**
116
- * Optional custom icon or children for the icon area.
189
+ * The data-testid to display within the banner.
117
190
  */
118
- children?: ReactNode;
191
+ "data-testid"?: string;
119
192
  }
120
193
 
121
194
  declare interface BannerProps extends BannerIconProps {
122
- /**
123
- * The banner's visual aesthetic.
124
- */
125
- variant?: BannerVariant;
126
- /**
127
- * Round the corners of the banner.
128
- */
129
- rounded?: boolean;
130
195
  /**
131
196
  * Compact padding around the content of the banner.
197
+ * @default true
132
198
  */
133
199
  compact?: boolean;
134
200
  /**
@@ -139,6 +205,16 @@ declare interface BannerProps extends BannerIconProps {
139
205
  * The data-testid to display within the banner.
140
206
  */
141
207
  "data-testid"?: string;
208
+ /**
209
+ * Round the corners of the banner.
210
+ * @default true
211
+ */
212
+ rounded?: boolean;
213
+ /**
214
+ * The banner's visual aesthetic.
215
+ * - type {@link BannerVariant}
216
+ */
217
+ variant?: BannerVariant;
142
218
  }
143
219
 
144
220
  export declare type BannerVariant = "default" | "success" | "warning" | "danger";
@@ -194,6 +270,7 @@ declare interface BaseInputProps {
194
270
  /**
195
271
  * The type attribute of the input element.
196
272
  * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/type
273
+ * @default "text"
197
274
  */
198
275
  type?: string;
199
276
  /**
@@ -204,14 +281,24 @@ declare interface BaseInputProps {
204
281
  }
205
282
 
206
283
  /**
207
- * A customizable button component that can render as either a button or anchor element
208
- * @interface ButtonProps
284
+ * A customizable button component that can render as either a button or anchor element.
285
+ *
286
+ * API:
287
+ * - {@link ButtonProps}
288
+ * - extends {@link AriaButtonProps}
209
289
  */
210
290
  export declare const Button: ForwardRefExoticComponent<ButtonProps & RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
211
291
 
292
+ /**
293
+ * A radio button group component that allows selection of a single option from multiple choices.
294
+ *
295
+ * API:
296
+ * - {@link ButtonGroupProps}
297
+ */
212
298
  export declare function ButtonGroup(props: ButtonGroupProps): JSX_2.Element;
213
299
 
214
300
  export declare namespace ButtonGroup {
301
+ var displayName: string;
215
302
  var Option: (props: ButtonGroupOptionProps) => JSX_2.Element;
216
303
  }
217
304
 
@@ -249,66 +336,80 @@ declare interface ButtonGroupProps {
249
336
 
250
337
  declare interface ButtonProps extends AriaButtonProps<"button"> {
251
338
  /** The button's visual aesthetic
252
- * @param {ButtonVariant} variant
339
+ * - type {@link ButtonVariant}
253
340
  */
254
341
  variant?: ButtonVariant;
255
342
  /** The size of the button
256
- * @param {ButtonSize} size
257
- * @default "fullWidth"
343
+ * - type {@link ButtonSize}
344
+ * @default "medium"
258
345
  */
259
346
  size?: ButtonSize;
260
347
  /** Should the button be full width?
261
- * @param {boolean} fullWidth
348
+ * @default false
262
349
  */
263
350
  fullWidth?: boolean;
264
- /** The prefix to display within the button
265
- * @param {React.ReactNode} icon
266
- */
351
+ /** The prefix to display within the button */
267
352
  icon?: React.ReactNode;
268
- /** Should the button be non-interactive?
269
- * @param {boolean} isDisabled
270
- */
353
+ /** Should the button be non-interactive? */
271
354
  isDisabled?: boolean;
272
- /** The URL that the button should link to. Turns the element into an `a` tag. If the URL is external, you should pass the entire URL to the `to` prop (e.g. `https://example.com`).
273
- * @param {string} to
274
- */
355
+ /** The URL that the button should link to. Turns the element into an `a` tag. If the URL is external, you should pass the entire URL to the `to` prop (e.g. `https://example.com`). */
275
356
  to?: string;
276
- /** The target attribute for the link. Defaults to `_blank` if the URL is external.
277
- * @param {string} target
278
- */
357
+ /** The target attribute for the link. Defaults to `_blank` if the URL is external. */
279
358
  target?: "_blank" | "_self" | "_parent" | "_top" | string;
280
- /** Called when the button is pressed (on release, not keydown)
281
- * @param {(e: PressEvent) => void} onPress
282
- */
359
+ /** Called when the button is pressed (on release, not keydown) */
283
360
  onPress?: (e: PressEvent) => void;
284
- /** The type of button
285
- * @param {"button" | "submit" | "reset"} type
286
- */
361
+ /** The type of button */
287
362
  type?: "button" | "submit" | "reset";
288
- /** The test ID for the button
289
- * @param {string} dataTestId
290
- */
363
+ /** The test ID for the button */
291
364
  "data-testid"?: string;
292
- /** The content to display within the button
293
- * @param {React.ReactNode} children
294
- */
365
+ /** The content to display within the button */
295
366
  children?: React.ReactNode;
296
367
  }
297
368
 
298
- declare type ButtonSize = "small" | "medium" | "large" | "xlarge" | "2xlarge";
369
+ export declare type ButtonSize = "small" | "medium" | "large" | "xlarge" | "2xlarge";
370
+
371
+ export declare const ButtonSizes: Record<ButtonSize, ButtonSize>;
299
372
 
300
373
  export declare type ButtonVariant = "primary" | "secondary" | "success" | "danger" | "translucent";
301
374
 
375
+ export declare const ButtonVariants: Record<ButtonVariant, ButtonVariant>;
376
+
377
+ /**
378
+ * A button with a select menu.
379
+ *
380
+ * API:
381
+ * - {@link ButtonWithSelectProps}
382
+ * - extends {@link ButtonProps}
383
+ */
302
384
  export declare function ButtonWithSelect({ items, defaultValue, children, onSelectionChange, disabledKeys, selectedKey, icon, variant, fullWidth, onPress, ...buttonProps }: ButtonWithSelectProps): JSX_2.Element;
303
385
 
304
- declare type ButtonWithSelectProps = {
305
- items: MenuItemType[];
386
+ export declare namespace ButtonWithSelect {
387
+ var displayName: string;
388
+ }
389
+
390
+ declare interface ButtonWithSelectProps extends ButtonProps {
391
+ /**
392
+ * The default value of the select menu.
393
+ */
306
394
  defaultValue?: string;
307
- children: default_2.ReactNode;
395
+ /**
396
+ * The keys of the disabled items.
397
+ */
398
+ disabledKeys?: string[];
399
+ /**
400
+ * The items to display in the select menu.
401
+ * - type {@link ActionMenuAction}
402
+ */
403
+ items: ActionMenuAction[];
404
+ /**
405
+ * The callback function to call when the selection changes.
406
+ */
308
407
  onSelectionChange?: (key: string) => void;
408
+ /**
409
+ * The key of the selected item.
410
+ */
309
411
  selectedKey?: string;
310
- disabledKeys?: string[];
311
- } & ButtonProps;
412
+ }
312
413
 
313
414
  export declare const Cell: <T>(props: ProtonColumnProps<T>) => JSX.Element;
314
415
 
@@ -316,7 +417,9 @@ export declare const Column: <T>(props: ProtonColumnProps<T>) => JSX.Element;
316
417
 
317
418
  /**
318
419
  * Input with a button to copy value to the clipboard.
319
- * @interface CopyInputProps
420
+ *
421
+ * API:
422
+ * - {@link CopyInputProps}
320
423
  */
321
424
  export declare function CopyInput({ name, value, isDisabled, onError, onSuccess, }: CopyInputProps): JSX_2.Element;
322
425
 
@@ -335,6 +438,10 @@ declare interface CopyInputProps {
335
438
 
336
439
  /**
337
440
  * Intended use in overlay containers such as modals or popovers.
441
+ *
442
+ * API:
443
+ * - {@link DialogProps}
444
+ * - extends {@link AriaDialogProps}
338
445
  */
339
446
  export declare function Dialog({ title, children, ...props }: DialogProps): JSX_2.Element;
340
447
 
@@ -350,7 +457,8 @@ declare interface DialogProps extends AriaDialogProps {
350
457
  * to create a sense of depth or hierarchy in the UI. It uses the `--proton-control__background-color-light`
351
458
  * CSS variable which is theme-aware and will adapt to light, dark, and custom-dark themes.
352
459
  *
353
- * @interface ElevationProps
460
+ * API:
461
+ * - {@link ElevationProps}
354
462
  */
355
463
  export declare const Elevation: ({ children, hasPrimaryGradient, "data-testid": dataTestId, }: ElevationProps) => JSX_2.Element;
356
464
 
@@ -359,23 +467,29 @@ declare interface ElevationProps {
359
467
  * The content to be displayed within the elevation.
360
468
  */
361
469
  children?: ReactNode;
470
+ /**
471
+ * The data-testid attribute for testing purposes.
472
+ */
473
+ "data-testid"?: string;
362
474
  /**
363
475
  * Whether the elevation should have a background gradient.
364
476
  * @important only works in custom dark mode
365
477
  * @default false
366
478
  */
367
479
  hasPrimaryGradient?: boolean;
368
- /**
369
- * The data-testid attribute for testing purposes.
370
- */
371
- "data-testid"?: string;
372
480
  }
373
481
 
374
- export declare function Icon(props: Omit<IconProps, "svgContent">): JSX_2.Element;
482
+ /**
483
+ * An icon component that displays SVG icons from a sprite sheet or inline.
484
+ *
485
+ * API:
486
+ * - {@link IconProps}
487
+ */
488
+ export declare function Icon(props: IconProps): JSX_2.Element;
375
489
 
376
490
  declare type IconID = "external-link" | "caret-down" | "caret-right" | "chevron-right" | "chevron-left" | "chevron-up" | "chevron-down";
377
491
 
378
- declare interface IconProps {
492
+ export declare interface IconProps {
379
493
  /**
380
494
  * The spritesheet ID defined in the Icons spritesheet.
381
495
  */
@@ -392,7 +506,9 @@ declare interface IconProps {
392
506
 
393
507
  /**
394
508
  * ImageOverlay component for displaying an image with a blur effect.
395
- * @interface ImageBackgroundProps
509
+ *
510
+ * API:
511
+ * - {@link ImageBackgroundProps}
396
512
  */
397
513
  export declare function ImageBackground({ image, imageUrl, onLoad, }: ImageBackgroundProps): JSX_2.Element;
398
514
 
@@ -418,28 +534,35 @@ declare interface ImageBackgroundProps {
418
534
 
419
535
  /**
420
536
  * A controlled and customizable input component with support for labels, prefixes, suffixes, and error states.
537
+ *
538
+ * API:
539
+ * - {@link BaseInputProps}
421
540
  */
422
541
  export declare const Input: default_2.ForwardRefExoticComponent<BaseInputProps & default_2.RefAttributes<HTMLInputElement>>;
423
542
 
424
- declare type MenuItemType = ActionMenuAction;
425
-
426
543
  declare interface MenuProps {
427
- /** The id of the menu */
428
- menuId?: string;
429
- /** Custom trigger component. If not provided, defaults to ellipsis icon */
544
+ /** Custom trigger component. If not provided, defaults to ellipsis icon.
545
+ * - @prop triggerProps {@link TriggerProps}
546
+ */
430
547
  renderTrigger?: (triggerProps: TriggerProps) => ReactNode;
431
- /** Size of the trigger icon */
548
+ /** Size of the trigger icon
549
+ * @default 24
550
+ */
432
551
  size?: number;
433
552
  /** Title of the parent menu */
434
553
  title?: string;
435
- /** Array of menu actions/items to display */
436
- items: MenuItemType[];
437
- /** Whether the menu is disabled */
554
+ /** Array of menu actions/items to display
555
+ * - type {@link ActionMenuAction}[]
556
+ */
557
+ items: ActionMenuAction[];
558
+ /** Whether the menu is disabled
559
+ * @default false
560
+ */
438
561
  disabled?: boolean;
439
562
  /** Callback when menu closes */
440
563
  onClose?: () => void;
441
564
  /** Test ID for the trigger component */
442
- testId?: string;
565
+ triggerTestId?: string;
443
566
  /** Test ID for the menu */
444
567
  menuTestId?: string;
445
568
  /** Callback when a menu item is selected */
@@ -450,19 +573,42 @@ declare interface MenuProps {
450
573
  disabledKeys?: string[];
451
574
  }
452
575
 
453
- export declare function MenuTrigger({ renderTrigger, menuId, size, title, items, disabled, onClose, testId: triggerTestId, menuTestId, onSelectionChange, selectedKey, disabledKeys, }: MenuProps): JSX_2.Element;
576
+ /**
577
+ * A component that displays either a popover menu or an action menu
578
+ * depending on the screen size when the menu trigger is pressed.
579
+ *
580
+ * API:
581
+ * - {@link MenuProps}
582
+ */
583
+ export declare function MenuTrigger({ renderTrigger, size, title, items, disabled, onClose, triggerTestId, menuTestId, onSelectionChange, selectedKey, disabledKeys, }: MenuProps): JSX_2.Element;
454
584
 
455
585
  export declare const Modal: (({ isOpen, onClose, title, subtitle, body, children, isOverlay, "data-testid": dataTestId, }: ModalProps) => JSX_2.Element) & {
586
+ /**
587
+ * Renders a h2 styled title
588
+ * */
456
589
  Title: ({ children }: {
457
590
  children: React.ReactNode;
458
591
  }) => JSX_2.Element;
592
+ /**
593
+ * Renders a h3 styled subtitle
594
+ * */
459
595
  Subtitle: ({ children }: {
460
596
  children: React.ReactNode;
461
597
  }) => JSX_2.Element;
598
+ /**
599
+ * Renders a div styled body
600
+ * */
462
601
  Body: ({ children }: {
463
602
  children: React.ReactNode;
464
603
  }) => JSX_2.Element;
465
- Action: (props: ButtonProps) => JSX_2.Element;
604
+ /**
605
+ * Renders a Proton Button action
606
+ * - @prop buttonProps {@link ButtonProps}
607
+ * */
608
+ Action: (buttonProps: ButtonProps) => JSX_2.Element;
609
+ /**
610
+ * Renders a group of Proton Buttons
611
+ * */
466
612
  Actions: ({ children }: {
467
613
  children: React.ReactNode;
468
614
  }) => JSX_2.Element;
@@ -470,86 +616,40 @@ export declare const Modal: (({ isOpen, onClose, title, subtitle, body, children
470
616
 
471
617
  declare interface ModalProps {
472
618
  /**
473
- * Controls the visibility of the modal
619
+ * Optional body text content for the modal
474
620
  * */
475
- isOpen: boolean;
621
+ body?: string;
476
622
  /**
477
- * Callback function when modal is closed
623
+ * Content to render inside the modal
478
624
  * */
479
- onClose?: () => void;
625
+ children: React.ReactNode;
626
+ /**
627
+ * data-testid for the modal
628
+ * */
629
+ "data-testid"?: string;
630
+ /**
631
+ * Controls the visibility of the modal
632
+ * */
633
+ isOpen: boolean;
480
634
  /**
481
635
  * Whether to show the modal with an overlay background.
482
636
  * @default true
483
637
  * */
484
638
  isOverlay?: boolean;
485
639
  /**
486
- * Optional title text for the modal header
640
+ * Callback function when modal is closed
487
641
  * */
488
- title?: string;
642
+ onClose?: () => void;
489
643
  /**
490
644
  * Optional subtitle text below the modal title
491
645
  * */
492
646
  subtitle?: string;
493
647
  /**
494
- * Optional body text content for the modal
495
- * */
496
- body?: string;
497
- /**
498
- * Content to render inside the modal
499
- * */
500
- children: React.ReactNode;
501
- /**
502
- * data-testid for the modal
648
+ * Optional title text for the modal header
503
649
  * */
504
- "data-testid"?: string;
650
+ title?: string;
505
651
  }
506
652
 
507
- declare type Palette = {
508
- BASE_COLOR: string;
509
- BRAND: {
510
- PRIMARY: string;
511
- PRIMARY_LIGHT: string;
512
- SECONDARY: string;
513
- };
514
- PRIMARY: {
515
- PRIMARY_SUPER_DARK: string;
516
- PRIMARY_DARK: string;
517
- PRIMARY_MEDIUM: string;
518
- PRIMARY_MEDIUM_LIGHT: string;
519
- PRIMARY_LIGHT: string;
520
- PRIMARY_LIGHTEST: string;
521
- PRIMARY_SUPER_LIGHT: string;
522
- };
523
- SECONDARY: {
524
- SECONDARY_SUPER_DARK: string;
525
- SECONDARY_DARK: string;
526
- SECONDARY_MEDIUM: string;
527
- SECONDARY_MEDIUM_LIGHT: string;
528
- SECONDARY_LIGHT: string;
529
- SECONDARY_LIGHTEST: string;
530
- SECONDARY_SUPER_LIGHT: string;
531
- };
532
- SUCCESS: {
533
- SUCCESS_DARK: string;
534
- SUCCESS_MEDIUM: string;
535
- SUCCESS_LIGHT: string;
536
- SUCCESS_SUPER_LIGHT: string;
537
- };
538
- WARNING: {
539
- WARNING_DARK: string;
540
- WARNING_MEDIUM: string;
541
- WARNING_LIGHT: string;
542
- WARNING_SUPER_LIGHT: string;
543
- };
544
- DANGER: {
545
- DANGER_SUPER_DARK: string;
546
- DANGER_DARK: string;
547
- DANGER_MEDIUM: string;
548
- DANGER_LIGHT: string;
549
- DANGER_SUPER_LIGHT: string;
550
- };
551
- };
552
-
553
653
  /**
554
654
  * Popover is an unstyled popover component that handles positioning. It should be used
555
655
  * with the Dialog component to provide a styled popover.
@@ -557,39 +657,109 @@ declare type Palette = {
557
657
  * A popover displays interactive content in context with a trigger element.
558
658
  * A tooltip displays a description of an element on hover or focus.
559
659
  *
560
- * @interface PopoverProps
660
+ * @see {@link usePopoverTrigger} for a complete usage example
661
+ *
662
+ * API:
663
+ * - {@link PopoverProps}
664
+ * - extends {@link AriaPopoverProps}
561
665
  */
562
666
  export declare function Popover({ children, state, arrow, offset, ...props }: PopoverProps): JSX_2.Element;
563
667
 
564
668
  declare interface PopoverProps extends Omit<AriaPopoverProps, "popoverRef"> {
565
669
  /**
566
- * Content to display within the popover.
670
+ * Whether to show an arrow on the popover.
567
671
  */
568
- children: default_2.ReactNode;
672
+ arrow?: boolean;
569
673
  /**
570
- * The `isOpen` state of the popover and the methods to toggle it.
674
+ * Content to display within the popover.
571
675
  */
572
- state: OverlayTriggerState;
676
+ children: default_2.ReactNode;
573
677
  /**
574
678
  * Can optionally forward the ref to the popover.
575
679
  */
576
680
  popoverRef?: default_2.RefObject<HTMLDivElement>;
577
681
  /**
578
- * Whether to show an arrow on the popover.
682
+ * The `isOpen` state of the popover and the methods to toggle it.
683
+ * - type {@link OverlayTriggerState}
579
684
  */
580
- arrow?: boolean;
685
+ state: OverlayTriggerState;
581
686
  }
582
687
 
688
+ declare type ProtonColorScale = {
689
+ SUPER_DARK: string;
690
+ DARK: string;
691
+ MEDIUM: string;
692
+ MEDIUM_LIGHT: string;
693
+ LIGHT: string;
694
+ LIGHTEST: string;
695
+ SUPER_LIGHT: string;
696
+ WHITE: string;
697
+ };
698
+
583
699
  export declare interface ProtonColumnProps<T> extends ColumnProps<T> {
584
700
  align?: "left" | "center" | "right";
585
701
  onClick?: (key: string) => void;
586
702
  }
587
703
 
704
+ declare type ProtonPalette = {
705
+ BASE_COLOR: string;
706
+ BRAND: {
707
+ PRIMARY: string;
708
+ PRIMARY_LIGHT: string;
709
+ PRIMARY_SUPER_LIGHT: string;
710
+ SECONDARY: string;
711
+ SECONDARY_LIGHT: string;
712
+ SECONDARY_SUPER_LIGHT: string;
713
+ };
714
+ PRIMARY: ProtonColorScale;
715
+ SECONDARY: ProtonColorScale;
716
+ GRAYSCALE: ProtonColorScale;
717
+ };
718
+
588
719
  export declare interface ProtonRowProps<T = object> extends RowProps<T> {
589
720
  backgroundColor?: string;
590
721
  onClick?: (key: string) => void;
591
722
  }
592
723
 
724
+ declare interface ProtonStyleSheet {
725
+ "--proton-control__background-color": string;
726
+ "--proton-control__background-color-light": string;
727
+ "--proton-control__text-color": string;
728
+ "--proton-control__title-color": string;
729
+ "--proton-control__border-color": string;
730
+ "--proton-control__shadow-color": string;
731
+ "--proton-control__hover-color": string;
732
+ "--proton-control__border-radius": string;
733
+ "--proton-control__interactive-color": string;
734
+ "--proton-color__primary": string;
735
+ "--proton-color__primary-light": string;
736
+ "--proton-color__primary-super-light": string;
737
+ "--proton-color__secondary": string;
738
+ "--proton-color__secondary-light": string;
739
+ "--proton-color__secondary-super-light": string;
740
+ "--proton-color__danger-super-dark": string;
741
+ "--proton-color__danger-dark": string;
742
+ "--proton-color__danger-medium": string;
743
+ "--proton-color__danger-light": string;
744
+ "--proton-color__danger-super-light": string;
745
+ "--proton-color__warning-dark": string;
746
+ "--proton-color__warning-medium": string;
747
+ "--proton-color__warning-light": string;
748
+ "--proton-color__warning-super-light": string;
749
+ "--proton-color__success-dark": string;
750
+ "--proton-color__success-medium": string;
751
+ "--proton-color__success-light": string;
752
+ "--proton-color__success-super-light": string;
753
+ "--proton-color__gray-super-dark": string;
754
+ "--proton-color__gray-dark": string;
755
+ "--proton-color__gray-medium": string;
756
+ "--proton-color__gray-medium-light": string;
757
+ "--proton-color__gray-light": string;
758
+ "--proton-color__gray-lightest": string;
759
+ "--proton-color__gray-super-light": string;
760
+ "--proton-color__white": string;
761
+ }
762
+
593
763
  export declare interface ProtonTableBodyProps<T = object> extends TableBodyProps<T> {
594
764
  showLines?: boolean;
595
765
  }
@@ -598,11 +768,17 @@ export declare const Row: <T = object>(props: ProtonRowProps<T>) => JSX.Element;
598
768
 
599
769
  /**
600
770
  * Base Overlay component for creating modal-like backgrounds.
601
- * @interface ScreenOverlayProps
771
+ *
772
+ * API:
773
+ * - {@link ScreenOverlayProps}
602
774
  */
603
775
  export declare const ScreenOverlay: ForwardRefExoticComponent<Omit<ScreenOverlayProps, "ref"> & RefAttributes<HTMLDivElement>>;
604
776
 
605
777
  declare interface ScreenOverlayProps {
778
+ /**
779
+ * Children to render inside the overlay.
780
+ */
781
+ children?: React.ReactNode;
606
782
  /**
607
783
  * Whether to fade in the overlay.
608
784
  */
@@ -615,14 +791,14 @@ declare interface ScreenOverlayProps {
615
791
  * Ref to the overlay element.
616
792
  */
617
793
  ref?: React.RefObject<HTMLDivElement>;
618
- /**
619
- * Children to render inside the overlay.
620
- */
621
- children?: React.ReactNode;
622
794
  }
623
795
 
624
796
  /**
625
797
  * A search input component with optional clear functionality and URL parameter sync.
798
+ *
799
+ * API:
800
+ * - {@link SearchInputProps}
801
+ * - extends {@link BaseInputProps}
626
802
  */
627
803
  export declare const SearchInput: ({ name, placeholder, autoComplete, isClearable, isDisabled, error, defaultValue, value: controlledValue, "data-testid": testId, onChange, onClear, }: SearchInputProps) => JSX_2.Element;
628
804
 
@@ -644,9 +820,16 @@ export { Section }
644
820
  /**
645
821
  * A dropdown select menu that opens a popover on desktop and an action menu on mobile.
646
822
  * Supports controlled and uncontrolled modes.
823
+ *
824
+ * API:
825
+ * - {@link SelectProps}
647
826
  */
648
827
  export declare function Select({ label, name, isDisabled, disabledKeys, selectedKey, onSelectionChange, defaultSelectedKey, onOpen, onClose, items, "data-testid": testId, }: SelectProps): JSX_2.Element;
649
828
 
829
+ export declare namespace Select {
830
+ var displayName: string;
831
+ }
832
+
650
833
  declare interface SelectItem {
651
834
  label: string;
652
835
  key: string;
@@ -654,36 +837,42 @@ declare interface SelectItem {
654
837
  }
655
838
 
656
839
  declare interface SelectProps {
657
- /** The name of the select field */
658
- name: string;
659
- /** Label to display above the select
660
- * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label#text
661
- */
662
- label?: string;
663
- /** Whether the select is disabled */
664
- isDisabled?: boolean;
665
840
  /** Array of keys that should be disabled
666
841
  * @example ["Thing 1", "Thing 2"]
667
842
  */
668
843
  disabledKeys?: string[];
669
- /** Currently selected key */
670
- selectedKey?: string;
671
- /** Callback fired when selection changes */
672
- onSelectionChange?: (key: string) => void;
673
844
  /** The key of the default selected item */
674
845
  defaultSelectedKey?: string;
675
- /** Callback fired when the menu opens */
676
- onOpen?: () => void;
677
- /** Callback fired when the menu closes */
678
- onClose?: () => void;
846
+ /** Test ID for the select */
847
+ "data-testid"?: string;
848
+ /** Whether the select is disabled */
849
+ isDisabled?: boolean;
679
850
  /** Array of items to display
680
851
  * @example [{ key: "thing-1", label: "Thing 1" }, { key: "thing-2", label: "Thing 2" }]
681
852
  */
682
853
  items: SelectItem[];
683
- /** Test ID for the select */
684
- "data-testid"?: string;
854
+ /** Label to display above the select
855
+ * @external https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label#text
856
+ */
857
+ label?: string;
858
+ /** The name of the select field */
859
+ name: string;
860
+ /** Callback fired when the menu closes */
861
+ onClose?: () => void;
862
+ /** Callback fired when the menu opens */
863
+ onOpen?: () => void;
864
+ /** Callback fired when selection changes */
865
+ onSelectionChange?: (key: string) => void;
866
+ /** Currently selected key */
867
+ selectedKey?: string;
685
868
  }
686
869
 
870
+ /**
871
+ * A toggle switch component for boolean state control with support for controlled and uncontrolled modes.
872
+ *
873
+ * API:
874
+ * - {@link SwitchProps}
875
+ */
687
876
  export declare function Switch(props: SwitchProps): JSX_2.Element;
688
877
 
689
878
  declare interface SwitchProps {
@@ -714,6 +903,14 @@ declare interface SwitchProps {
714
903
  children?: React.ReactNode;
715
904
  }
716
905
 
906
+ /**
907
+ * A table component that displays data in a grid format.
908
+ *
909
+ * API:
910
+ * - {@link TableProps}
911
+ * - extends {@link AriaTableProps}
912
+ * - extends {@link TableStateProps}<object>
913
+ */
717
914
  export declare function Table(props: TableProps): JSX_2.Element;
718
915
 
719
916
  export declare const TableBody: <T = object>(props: ProtonTableBodyProps<T>) => JSX.Element;
@@ -728,7 +925,9 @@ declare interface TableProps extends AriaTableProps, TableStateProps<object> {
728
925
 
729
926
  /**
730
927
  * A component that displays text with an ellipsis when it overflows its container.
731
- * @interface TextEllipsisProps
928
+ *
929
+ * API:
930
+ * - {@link TextEllipsisProps}
732
931
  */
733
932
  export declare const TextEllipsis: ({ children, maxWidth, singleLine, lines, title, "data-testid": testId, }: TextEllipsisProps) => JSX_2.Element;
734
933
 
@@ -765,7 +964,10 @@ declare interface TextEllipsisProps {
765
964
 
766
965
  /**
767
966
  * A component that displays text with emphasis. Provide tooltipProps to wrap the text in a tooltip trigger.
768
- * @interface TextEmphasisProps
967
+ *
968
+ * API:
969
+ * - {@link TextEmphasisProps}
970
+ * - extends {@link React.HTMLAttributes}
769
971
  */
770
972
  export declare const TextEmphasis: ({ to, children, tooltipProps, "data-testid": testId, }: TextEmphasisProps) => JSX_2.Element;
771
973
 
@@ -793,8 +995,9 @@ declare type Theme = (typeof THEMES)[keyof typeof THEMES];
793
995
  declare interface ThemeContextType {
794
996
  theme: Theme;
795
997
  className: string;
796
- style: ThemeVariables;
797
- palette: Palette;
998
+ style: ProtonStyleSheet;
999
+ palette: ProtonPalette;
1000
+ hasPalette?: boolean;
798
1001
  }
799
1002
 
800
1003
  export declare const ThemeProvider: default_2.FC<ThemeProviderProps>;
@@ -802,66 +1005,40 @@ export declare const ThemeProvider: default_2.FC<ThemeProviderProps>;
802
1005
  declare interface ThemeProviderProps {
803
1006
  theme: Theme;
804
1007
  children: ReactNode;
805
- palette?: Palette;
1008
+ palette?: ProtonPalette;
806
1009
  }
807
1010
 
808
1011
  declare const THEMES: {
809
1012
  readonly DARK: "dark";
810
- readonly CUSTOM_DARK: "custom-dark";
811
1013
  readonly LIGHT: "light";
812
1014
  };
813
1015
 
814
- declare interface ThemeVariables {
815
- "--proton-control__background-color": string;
816
- "--proton-control__background-color-light": string;
817
- "--proton-control__text-color": string;
818
- "--proton-control__border-color": string;
819
- "--proton-control__shadow-color": string;
820
- "--proton-color__primary": string;
821
- "--proton-color__primary-light": string;
822
- "--proton-color__secondary": string;
823
- "--proton-control__primary-super-dark": string;
824
- "--proton-control__primary-dark": string;
825
- "--proton-control__primary-medium": string;
826
- "--proton-control__primary-medium-light": string;
827
- "--proton-control__primary-light": string;
828
- "--proton-control__primary-lightest": string;
829
- "--proton-control__primary-super-light": string;
830
- "--proton-control__secondary-super-dark": string;
831
- "--proton-control__secondary-dark": string;
832
- "--proton-control__secondary-medium": string;
833
- "--proton-control__secondary-medium-light": string;
834
- "--proton-control__secondary-light": string;
835
- "--proton-control__secondary-lightest": string;
836
- "--proton-control__secondary-super-light": string;
837
- }
838
-
839
1016
  /**
840
- * A component that displays a loading tombstone. For use as a placeholder while loading content
841
- * @interface TombstoneProps
1017
+ * A component that displays a loading tombstone. For use as a placeholder while loading content.
1018
+ *
1019
+ * API:
1020
+ * - {@link TombstoneProps}
842
1021
  */
843
1022
  export declare const Tombstone: ({ width, height, borderRadius, }: TombstoneProps) => JSX_2.Element;
844
1023
 
845
1024
  declare interface TombstoneProps {
846
1025
  /**
847
- * The width of the tombstone.
848
- * @default "100%"
1026
+ * The border radius of the tombstone.
1027
+ * @default "4px"
849
1028
  */
850
- width?: string;
1029
+ borderRadius?: string;
851
1030
  /**
852
1031
  * The height of the tombstone.
853
1032
  * @default "1.5rem"
854
1033
  */
855
1034
  height?: string;
856
1035
  /**
857
- * The border radius of the tombstone.
858
- * @default "4px"
1036
+ * The width of the tombstone.
1037
+ * @default "100%"
859
1038
  */
860
- borderRadius?: string;
1039
+ width?: string;
861
1040
  }
862
1041
 
863
- export declare function Tooltip({ children, arrow, ...props }: TooltipProps): JSX_2.Element;
864
-
865
1042
  export declare interface TooltipProps extends Omit<TooltipProps_2, "children"> {
866
1043
  children: React.ReactNode;
867
1044
  arrow?: boolean;
@@ -874,6 +1051,18 @@ export declare interface TooltipProps extends Omit<TooltipProps_2, "children"> {
874
1051
  *
875
1052
  * If you wish to disable the trigger click feature, you can set the `disableTriggerClick` prop.
876
1053
  * This is useful when using an info only Tooltip that might wrap a clickable element.
1054
+ *
1055
+ * API:
1056
+ * - {@link TooltipTriggerProps}
1057
+ * - extends {@link TooltipProps}
1058
+ * - extends {@link TooltipTriggerComponentProps}
1059
+ *
1060
+ * @example
1061
+ * ```tsx
1062
+ <TooltipTrigger content={...} placement="top" arrow isDisabled={disabled}>
1063
+ {children}
1064
+ </TooltipTrigger>
1065
+ * ```
877
1066
  */
878
1067
  export declare function TooltipTrigger({ children, delay, closeDelay, isDisabled, defaultOpen, onOpenChange, disableTriggerClick, content, ...tooltipProps }: TooltipTriggerProps): JSX_2.Element;
879
1068
 
@@ -889,23 +1078,46 @@ export declare interface TooltipTriggerProps extends TooltipProps, TooltipTrigge
889
1078
  disableTriggerClick?: boolean;
890
1079
  }
891
1080
 
892
- /**
893
- * A component that displays either a popover menu or an action menu
894
- * depending on the screen size when the menu trigger is pressed.
895
- *
896
- * @param {MenuProps} props - The props for the MenuTrigger component.
897
- * @returns {JSX.Element} - The MenuTrigger component.
898
- */
899
1081
  declare interface TriggerProps {
900
- disabled: boolean;
901
- isOpen: boolean;
902
- setIsOpen: (isOpen: boolean) => void;
1082
+ disabled?: boolean;
1083
+ isOpen?: boolean;
1084
+ setIsOpen?: (isOpen: boolean) => void;
903
1085
  triggerRef: React.RefObject<HTMLButtonElement>;
904
1086
  }
905
1087
 
906
1088
  /**
907
1089
  * Hook for creating a popover trigger. This hook manages the state and events for the popover
908
1090
  * and popover trigger. For examples see Popover.stories.tsx.
1091
+ *
1092
+ * API:
1093
+ * - {@link OverlayTriggerProps}
1094
+ *
1095
+ * @example
1096
+ * ```tsx
1097
+ * let { buttonProps, overlayProps, buttonRef, state } = usePopoverTrigger();
1098
+ *
1099
+ * return (
1100
+ * <div>
1101
+ * <button {...buttonProps} ref={buttonRef}>
1102
+ * Trigger
1103
+ * </button>
1104
+ *
1105
+ * {state.isOpen && (
1106
+ * <Popover
1107
+ * state={state}
1108
+ * triggerRef={buttonRef}
1109
+ * arrow={props.arrow}
1110
+ * offset={props.offset}
1111
+ * placement={props.placement}
1112
+ * >
1113
+ * <Dialog {...overlayProps} title="Popover">
1114
+ * Here is some popover content
1115
+ * </Dialog>
1116
+ * </Popover>
1117
+ * )}
1118
+ * </div>
1119
+ * );
1120
+ * ```
909
1121
  */
910
1122
  export declare function usePopoverTrigger(props?: OverlayTriggerProps): {
911
1123
  buttonProps: default_2.ButtonHTMLAttributes<HTMLButtonElement>;
@@ -919,10 +1131,8 @@ export declare const useTheme: () => ThemeContextType;
919
1131
  /**
920
1132
  * A waveform visualization component that displays audio data with interactive features.
921
1133
  *
922
- * @component
923
- * @interface WaveformProps
924
- *
925
- * @returns {JSX.Element} A waveform visualization with optional timestamps and interactive features
1134
+ * API:
1135
+ * - {@link WaveformProps}
926
1136
  */
927
1137
  export declare function Waveform({ data: waveformData, resolution, startDuration, endDuration, currentTime, showTimestamps, totalDuration, disabled, disabledMessage, onClick, "data-testid": testId, }: WaveformProps): JSX_2.Element;
928
1138
 
@@ -932,6 +1142,14 @@ declare interface WaveformProps {
932
1142
  * If not provided, uses a sample sine wave.
933
1143
  */
934
1144
  data?: number[];
1145
+ /**
1146
+ * Current playback position in seconds.
1147
+ */
1148
+ currentTime?: number;
1149
+ /**
1150
+ * Test ID for testing purposes.
1151
+ */
1152
+ "data-testid"?: string;
935
1153
  /**
936
1154
  * Whether the entire waveform is disabled.
937
1155
  */
@@ -941,42 +1159,29 @@ declare interface WaveformProps {
941
1159
  */
942
1160
  disabledMessage?: string;
943
1161
  /**
944
- * Total duration of the audio in seconds.
1162
+ * End time to display until in seconds.
945
1163
  */
946
- totalDuration: number;
1164
+ endDuration?: number;
947
1165
  /**
948
- * Current playback position in seconds.
1166
+ * Click handler that receives the clicked position (0-1) and event.
949
1167
  */
950
- currentTime?: number;
1168
+ onClick?: (position: number, e: React.MouseEvent<HTMLDivElement>) => void;
951
1169
  /**
952
1170
  * Width in pixels of each waveform bar.
953
1171
  */
954
1172
  resolution?: number;
955
- /**
956
- * Start time to display from in seconds.
957
- */
958
- startDuration?: number;
959
- /**
960
- * End time to display until in seconds.
961
- */
962
- endDuration?: number;
963
1173
  /**
964
1174
  * Whether to show timestamp markers.
965
1175
  */
966
1176
  showTimestamps?: boolean;
967
1177
  /**
968
- * Click handler that receives the clicked position (0-1) and event.
1178
+ * Start time to display from in seconds.
969
1179
  */
970
- onClick?: (position: number, e: React.MouseEvent<HTMLDivElement>) => void;
1180
+ startDuration?: number;
971
1181
  /**
972
- * Test ID for testing purposes.
1182
+ * Total duration of the audio in seconds.
973
1183
  */
974
- "data-testid"?: string;
1184
+ totalDuration: number;
975
1185
  }
976
1186
 
977
1187
  export { }
978
-
979
-
980
- declare namespace ButtonGroup {
981
- var Option: (props: ButtonGroupOptionProps) => import("react/jsx-runtime").JSX.Element;
982
- }