@protonradio/proton-ui 0.11.0-beta.22 → 0.11.0-beta.4

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