@lumx/react 3.18.2-alpha.4 → 3.19.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/index.d.ts +201 -117
  2. package/index.js +470 -480
  3. package/index.js.map +1 -1
  4. package/package.json +3 -3
  5. package/src/components/alert-dialog/AlertDialog.tsx +1 -1
  6. package/src/components/autocomplete/Autocomplete.tsx +1 -1
  7. package/src/components/autocomplete/AutocompleteMultiple.tsx +1 -1
  8. package/src/components/avatar/Avatar.tsx +1 -1
  9. package/src/components/badge/Badge.tsx +1 -1
  10. package/src/components/badge/BadgeWrapper.tsx +1 -1
  11. package/src/components/button/Button.test.tsx +5 -5
  12. package/src/components/button/Button.tsx +1 -1
  13. package/src/components/button/ButtonGroup.tsx +1 -1
  14. package/src/components/button/ButtonRoot.tsx +7 -37
  15. package/src/components/button/IconButton.tsx +1 -1
  16. package/src/components/checkbox/Checkbox.tsx +1 -1
  17. package/src/components/chip/Chip.tsx +2 -2
  18. package/src/components/chip/ChipGroup.tsx +2 -2
  19. package/src/components/comment-block/CommentBlock.tsx +1 -1
  20. package/src/components/date-picker/DatePickerControlled.tsx +1 -1
  21. package/src/components/date-picker/constants.ts +1 -1
  22. package/src/components/dialog/Dialog.tsx +1 -1
  23. package/src/components/divider/Divider.tsx +1 -1
  24. package/src/components/drag-handle/DragHandle.tsx +1 -1
  25. package/src/components/dropdown/Dropdown.tsx +1 -1
  26. package/src/components/expansion-panel/ExpansionPanel.tsx +1 -1
  27. package/src/components/flag/Flag.tsx +1 -1
  28. package/src/components/flex-box/FlexBox.tsx +2 -3
  29. package/src/components/generic-block/GenericBlock.tsx +1 -1
  30. package/src/components/grid/Grid.tsx +1 -1
  31. package/src/components/grid/GridItem.tsx +1 -1
  32. package/src/components/grid-column/GridColumn.tsx +1 -1
  33. package/src/components/heading/Heading.tsx +1 -1
  34. package/src/components/heading/constants.ts +1 -1
  35. package/src/components/icon/Icon.tsx +1 -1
  36. package/src/components/image-block/ImageBlock.tsx +1 -1
  37. package/src/components/image-lightbox/constants.ts +1 -1
  38. package/src/components/inline-list/InlineList.tsx +1 -1
  39. package/src/components/input-helper/InputHelper.tsx +1 -1
  40. package/src/components/input-label/InputLabel.test.tsx +1 -1
  41. package/src/components/input-label/InputLabel.tsx +1 -1
  42. package/src/components/lightbox/Lightbox.tsx +1 -1
  43. package/src/components/link/Link.test.tsx +8 -6
  44. package/src/components/link/Link.tsx +10 -21
  45. package/src/components/link-preview/LinkPreview.stories.tsx +1 -1
  46. package/src/components/link-preview/LinkPreview.test.tsx +1 -1
  47. package/src/components/link-preview/LinkPreview.tsx +1 -1
  48. package/src/components/list/List.tsx +1 -1
  49. package/src/components/list/ListDivider.tsx +1 -1
  50. package/src/components/list/ListItem.test.tsx +1 -3
  51. package/src/components/list/ListItem.tsx +20 -33
  52. package/src/components/list/ListSubheader.tsx +1 -1
  53. package/src/components/message/Message.tsx +1 -1
  54. package/src/components/mosaic/Mosaic.tsx +1 -1
  55. package/src/components/navigation/Navigation.test.tsx +1 -1
  56. package/src/components/navigation/Navigation.tsx +1 -1
  57. package/src/components/navigation/NavigationItem.tsx +8 -12
  58. package/src/components/navigation/NavigationSection.test.tsx +2 -1
  59. package/src/components/navigation/NavigationSection.tsx +5 -4
  60. package/src/components/navigation/context.tsx +2 -1
  61. package/src/components/notification/Notification.tsx +1 -1
  62. package/src/components/popover/Popover.tsx +1 -1
  63. package/src/components/popover-dialog/PopoverDialog.tsx +1 -1
  64. package/src/components/post-block/PostBlock.tsx +1 -1
  65. package/src/components/progress/Progress.tsx +1 -1
  66. package/src/components/progress/ProgressCircular.tsx +1 -1
  67. package/src/components/progress/ProgressLinear.tsx +1 -1
  68. package/src/components/progress-tracker/ProgressTracker.tsx +1 -1
  69. package/src/components/progress-tracker/ProgressTrackerStep.tsx +1 -1
  70. package/src/components/progress-tracker/ProgressTrackerStepPanel.tsx +1 -1
  71. package/src/components/radio-button/RadioButton.tsx +1 -1
  72. package/src/components/radio-button/RadioGroup.tsx +1 -1
  73. package/src/components/select/Select.test.tsx +1 -1
  74. package/src/components/select/Select.tsx +2 -2
  75. package/src/components/select/SelectMultiple.test.tsx +1 -1
  76. package/src/components/select/SelectMultiple.tsx +2 -2
  77. package/src/components/select/WithSelectContext.tsx +2 -2
  78. package/src/components/side-navigation/SideNavigation.tsx +1 -1
  79. package/src/components/side-navigation/SideNavigationItem.tsx +23 -28
  80. package/src/components/skeleton/SkeletonCircle.tsx +1 -1
  81. package/src/components/skeleton/SkeletonRectangle.tsx +1 -1
  82. package/src/components/skeleton/SkeletonTypography.tsx +1 -1
  83. package/src/components/slider/Slider.tsx +1 -1
  84. package/src/components/slideshow/Slides.tsx +1 -1
  85. package/src/components/slideshow/SlideshowControls.tsx +1 -1
  86. package/src/components/slideshow/SlideshowItem.tsx +1 -1
  87. package/src/components/slideshow/SlideshowItemGroup.tsx +1 -1
  88. package/src/components/switch/Switch.tsx +1 -1
  89. package/src/components/table/Table.tsx +1 -1
  90. package/src/components/table/TableBody.tsx +1 -1
  91. package/src/components/table/TableCell.tsx +1 -1
  92. package/src/components/table/TableHeader.tsx +1 -1
  93. package/src/components/table/TableRow.tsx +1 -1
  94. package/src/components/tabs/Tab.tsx +1 -1
  95. package/src/components/tabs/TabList.tsx +1 -1
  96. package/src/components/tabs/TabPanel.tsx +1 -1
  97. package/src/components/text/Text.stories.tsx +23 -1
  98. package/src/components/text/Text.tsx +2 -2
  99. package/src/components/text-field/TextField.test.tsx +1 -1
  100. package/src/components/text-field/TextField.tsx +1 -1
  101. package/src/components/thumbnail/Thumbnail.tsx +7 -12
  102. package/src/components/thumbnail/useFocusPointStyle.tsx +1 -1
  103. package/src/components/toolbar/Toolbar.tsx +1 -1
  104. package/src/components/tooltip/Tooltip.tsx +1 -1
  105. package/src/components/uploader/Uploader.tsx +1 -1
  106. package/src/components/user-block/UserBlock.tsx +1 -1
  107. package/src/hooks/useCallbackOnEscape.ts +1 -1
  108. package/src/hooks/useOverflowTooltipLabel.tsx +21 -18
  109. package/src/index.ts +3 -1
  110. package/src/utils/partitionMulti.ts +2 -1
  111. package/src/utils/react/RawClickable.test.tsx +153 -0
  112. package/src/utils/react/RawClickable.tsx +65 -0
  113. package/src/utils/type/HasRequiredLinkHref.ts +1 -0
  114. package/src/utils/type/index.ts +3 -13
  115. package/src/components/index.ts +0 -160
  116. package/src/utils/browser/event.ts +0 -1
  117. package/src/utils/className/fontColorClass.test.ts +0 -15
  118. package/src/utils/className/fontColorClass.ts +0 -12
  119. package/src/utils/className/getBasicClass.test.ts +0 -20
  120. package/src/utils/className/getRootClassName.test.ts +0 -11
  121. package/src/utils/className/getRootClassName.ts +0 -24
  122. package/src/utils/className/getTypographyClassName.test.ts +0 -7
  123. package/src/utils/className/getTypographyClassName.ts +0 -9
  124. package/src/utils/className/handleBasicClasses.test.ts +0 -28
  125. package/src/utils/className/index.ts +0 -5
  126. package/src/utils/className/resolveColorWithVariants.test.ts +0 -33
  127. package/src/utils/className/resolveColorWithVariants.ts +0 -11
  128. package/src/utils/react/renderButtonOrLink.tsx +0 -16
  129. package/src/utils/react/renderLink.tsx +0 -17
  130. package/src/utils/type/Callback.ts +0 -4
  131. package/src/utils/type/Falsy.ts +0 -5
  132. package/src/utils/type/GenericProps.ts +0 -11
  133. package/src/utils/type/HasAriaLabelOrLabelledBy.ts +0 -19
  134. package/src/utils/type/HasClassName.ts +0 -6
  135. package/src/utils/type/HasCloseMode.ts +0 -7
  136. package/src/utils/type/HasTheme.ts +0 -8
  137. package/src/utils/type/HeadingElement.ts +0 -2
  138. package/src/utils/type/Point.ts +0 -4
  139. package/src/utils/type/Predicate.ts +0 -2
  140. package/src/utils/type/RectSize.ts +0 -4
  141. package/src/utils/type/TextElement.ts +0 -4
  142. package/src/utils/type/ValueOf.ts +0 -2
  143. package/src/utils/type/color/index.ts +0 -43
package/index.js CHANGED
@@ -26,35 +26,81 @@ import isObject from 'lodash/isObject';
26
26
  import set from 'lodash/set';
27
27
 
28
28
  /**
29
- * See SCSS variable $lumx-color-palette
29
+ * The down key code.
30
30
  */
31
- const ColorPalette = {
32
- primary: 'primary',
33
- secondary: 'secondary',
34
- blue: 'blue',
35
- dark: 'dark',
36
- green: 'green',
37
- yellow: 'yellow',
38
- red: 'red',
39
- light: 'light',
40
- grey: 'grey'
41
- };
31
+ const DOWN_KEY_CODE = 40;
32
+
42
33
  /**
43
- * See SCSS variable $lumx-color-variants
34
+ * The enter/return key code.
44
35
  */
45
- const ColorVariant = {
46
- D1: 'D1',
47
- D2: 'D2',
48
- L1: 'L1',
49
- L2: 'L2',
50
- L3: 'L3',
51
- L4: 'L4',
52
- L5: 'L5',
53
- L6: 'L6',
54
- N: 'N'
36
+ const ENTER_KEY_CODE = 13;
37
+
38
+ /**
39
+ * The space key code.
40
+ */
41
+ const SPACE_KEY_CODE = 32;
42
+
43
+ /**
44
+ * The escape key code.
45
+ */
46
+ const ESCAPE_KEY_CODE = 27;
47
+
48
+ /**
49
+ * The left key code.
50
+ */
51
+ const LEFT_KEY_CODE = 37;
52
+
53
+ /**
54
+ * The right key code.
55
+ */
56
+ const RIGHT_KEY_CODE = 39;
57
+
58
+ /**
59
+ * The tab key code.
60
+ */
61
+ const TAB_KEY_CODE = 9;
62
+
63
+ /**
64
+ * The up key code.
65
+ */
66
+ const UP_KEY_CODE = 38;
67
+
68
+ /**
69
+ * The up key code.
70
+ */
71
+ const BACKSPACE_KEY_CODE = 8;
72
+
73
+ /**
74
+ * The prefix to use for the CSS classes.
75
+ */
76
+ const CSS_PREFIX = 'lumx';
77
+
78
+ /**
79
+ * Animation duration constants. Take into consideration that if you change one of these variables,
80
+ * you need to update their scss counterpart as well
81
+ */
82
+ const DIALOG_TRANSITION_DURATION = 400;
83
+ const EXPANSION_PANEL_TRANSITION_DURATION = 400;
84
+ const NOTIFICATION_TRANSITION_DURATION = 200;
85
+ const SLIDESHOW_TRANSITION_DURATION = 5000;
86
+
87
+ /**
88
+ * Delay on hover after which we open or close the tooltip.
89
+ * Only applies to devices supporting pointer hover.
90
+ */
91
+ const TOOLTIP_HOVER_DELAY = {
92
+ open: 500,
93
+ close: 500
55
94
  };
56
95
 
57
- /** ColorPalette with all possible color variant combination */
96
+ /**
97
+ * Delay on long press after which we open or close the tooltip.
98
+ * Only applies to devices not supporting pointer hover.
99
+ */
100
+ const TOOLTIP_LONG_PRESS_DELAY = {
101
+ open: 250,
102
+ close: 3000
103
+ };
58
104
 
59
105
  /**
60
106
  * Alignments.
@@ -179,6 +225,36 @@ const WhiteSpace = {
179
225
  'pre-line': 'pre-line',
180
226
  'break-spaces': 'break-spaces'
181
227
  };
228
+ /**
229
+ * See SCSS variable $lumx-color-palette
230
+ */
231
+ const ColorPalette = {
232
+ primary: 'primary',
233
+ secondary: 'secondary',
234
+ blue: 'blue',
235
+ dark: 'dark',
236
+ green: 'green',
237
+ yellow: 'yellow',
238
+ red: 'red',
239
+ light: 'light',
240
+ grey: 'grey'
241
+ };
242
+ /**
243
+ * See SCSS variable $lumx-color-variants
244
+ */
245
+ const ColorVariant = {
246
+ D1: 'D1',
247
+ D2: 'D2',
248
+ L1: 'L1',
249
+ L2: 'L2',
250
+ L3: 'L3',
251
+ L4: 'L4',
252
+ L5: 'L5',
253
+ L6: 'L6',
254
+ N: 'N'
255
+ };
256
+
257
+ /** ColorPalette with all possible color variant combination */
182
258
 
183
259
  var classnames = {exports: {}};
184
260
 
@@ -287,21 +363,6 @@ const mdiRadioboxBlank = 'M12 20a8 8 0 0 1-8-8 8 8 0 0 1 8-8 8 8 0 0 1 8 8 8 8 0
287
363
 
288
364
  const mdiRadioboxMarked = 'M12 20a8 8 0 0 1-8-8 8 8 0 0 1 8-8 8 8 0 0 1 8 8 8 8 0 0 1-8 8m0-18A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2m0 5a5 5 0 0 0-5 5 5 5 0 0 0 5 5 5 5 0 0 0 5-5 5 5 0 0 0-5-5';
289
365
 
290
- const _excluded$1u = ["prefix"];
291
-
292
- /**
293
- * Enhance isEmpty method to also works with numbers.
294
- *
295
- * @param value The value to check.
296
- * @return Whether the input value is empty or != 0.
297
- */
298
- const _isEmpty = value => {
299
- if (typeof value === 'number') {
300
- return value === 0;
301
- }
302
- return isEmpty(value);
303
- };
304
-
305
366
  /**
306
367
  * Get the basic CSS class for the given type.
307
368
  *
@@ -329,6 +390,21 @@ function getBasicClass({
329
390
  return `${prefix}--${kebabCase(type)}-${value}`;
330
391
  }
331
392
 
393
+ const _excluded$1t = ["prefix"];
394
+
395
+ /**
396
+ * Enhance isEmpty method to also works with numbers.
397
+ *
398
+ * @param value The value to check.
399
+ * @return Whether the input value is empty or != 0.
400
+ */
401
+ const _isEmpty = value => {
402
+ if (typeof value === 'number') {
403
+ return value === 0;
404
+ }
405
+ return isEmpty(value);
406
+ };
407
+
332
408
  /**
333
409
  * Return all basic LumX CSS classes which are available for every components.
334
410
  *
@@ -344,7 +420,7 @@ function handleBasicClasses(_ref) {
344
420
  let {
345
421
  prefix
346
422
  } = _ref,
347
- props = _objectWithoutProperties(_ref, _excluded$1u);
423
+ props = _objectWithoutProperties(_ref, _excluded$1t);
348
424
  const otherClasses = {};
349
425
  if (!isEmpty(props)) {
350
426
  Object.keys(props).forEach(prop => {
@@ -358,161 +434,6 @@ function handleBasicClasses(_ref) {
358
434
  return classNames(prefix, otherClasses);
359
435
  }
360
436
 
361
- /**
362
- * Checks whether or not the browser support passive events.
363
- * @see https://github.com/Modernizr/Modernizr/blob/6d56d814b9682843313b16060adb25a58d83a317/feature-detects/dom/passiveeventlisteners.js
364
- */
365
- function isPassiveEventAvailable() {
366
- let supportsPassiveOption = false;
367
- try {
368
- const opts = Object.defineProperty({}, 'passive', {
369
- get() {
370
- supportsPassiveOption = true;
371
- }
372
- });
373
- window.addEventListener('testPassiveEventSupport', noop, opts);
374
- window.removeEventListener('testPassiveEventSupport', noop, opts);
375
- } catch (e) {
376
- // ignored
377
- }
378
- return supportsPassiveOption;
379
- }
380
-
381
- /**
382
- * Detects horizontal swipe direction without blocking the browser scroll using passive event.
383
- * @see http://javascriptkit.com/javatutors/touchevents2.shtml
384
- * @see https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md
385
- */
386
- function detectHorizontalSwipe(touchSurface, handleSwipe) {
387
- let startX;
388
- let startY;
389
- // Required min distance traveled to be considered swipe.
390
- const threshold = 150;
391
- // Maximum distance allowed at the same time in perpendicular direction.
392
- const restraint = 150;
393
- // Maximum time allowed to travel that distance.
394
- const allowedTime = 300;
395
- let elapsedTime;
396
- let startTime;
397
- let finished;
398
- const onTouchStart = evt => {
399
- const [touch] = Array.from(evt.changedTouches);
400
- startX = touch.pageX;
401
- startY = touch.pageY;
402
- // Record time when finger first makes contact with surface.
403
- startTime = new Date().getTime();
404
- finished = false;
405
- };
406
- const onTouchMove = evt => {
407
- if (finished) {
408
- return;
409
- }
410
- elapsedTime = new Date().getTime() - startTime;
411
- if (elapsedTime > allowedTime) {
412
- // Touch swipe too long to be considered.
413
- return;
414
- }
415
- const [touch] = Array.from(evt.changedTouches);
416
- // Get horizontal dist traveled by finger while in contact with surface.
417
- const distX = touch.pageX - startX;
418
- // Get vertical dist traveled by finger while in contact with surface.
419
- const distY = touch.pageY - startY;
420
- if (!(Math.abs(distX) >= threshold && Math.abs(distY) <= restraint)) {
421
- // Swipe is not horizontal.
422
- return;
423
- }
424
- // Swipe direction.
425
- const direction = distX < 0 ? 'left' : 'right';
426
- handleSwipe(direction);
427
- finished = true;
428
- };
429
-
430
- // Activate passive event if possible for better scrolling performance.
431
- const eventOptions = isPassiveEventAvailable() ? {
432
- passive: true
433
- } : false;
434
- touchSurface.addEventListener('touchstart', onTouchStart, eventOptions);
435
- touchSurface.addEventListener('touchmove', onTouchMove, eventOptions);
436
- return () => {
437
- touchSurface.removeEventListener('touchstart', onTouchStart, eventOptions);
438
- touchSurface.removeEventListener('touchmove', onTouchMove, eventOptions);
439
- };
440
- }
441
- /**
442
- * Make sure the pressed key is the enter key before calling the callback.
443
- *
444
- * @param handler The handler to call on enter/return press.
445
- * @return The decorated function.
446
- */
447
- function onEnterPressed(handler) {
448
- return evt => {
449
- if (evt.key !== 'Enter') {
450
- return;
451
- }
452
- handler(evt);
453
- };
454
- }
455
-
456
- /**
457
- * Make sure the pressed key is the escape key before calling the callback.
458
- *
459
- * @param handler The handler to call on enter/return press.
460
- * @return The decorated function.
461
- */
462
- function onEscapePressed(handler) {
463
- return evt => {
464
- if (evt.key !== 'Escape') {
465
- return;
466
- }
467
- handler(evt);
468
- };
469
- }
470
-
471
- /**
472
- * Handle button key pressed (Enter + Space).
473
- *
474
- * @param handler The handler to call.
475
- * @return The decorated function.
476
- */
477
- function onButtonPressed(handler) {
478
- return evt => {
479
- if (evt.key !== 'Enter' && evt.key !== ' ') {
480
- return;
481
- }
482
- handler(evt);
483
- };
484
- }
485
-
486
- /**
487
- * The prefix to use for the CSS classes.
488
- */
489
- const CSS_PREFIX = 'lumx';
490
-
491
- /**
492
- * Animation duration constants. Take into consideration that if you change one of these variables,
493
- * you need to update their scss counterpart as well
494
- */
495
- const DIALOG_TRANSITION_DURATION = 400;
496
- const NOTIFICATION_TRANSITION_DURATION = 200;
497
-
498
- /**
499
- * Delay on hover after which we open or close the tooltip.
500
- * Only applies to devices supporting pointer hover.
501
- */
502
- const TOOLTIP_HOVER_DELAY = {
503
- open: 500,
504
- close: 500
505
- };
506
-
507
- /**
508
- * Delay on long press after which we open or close the tooltip.
509
- * Only applies to devices not supporting pointer hover.
510
- */
511
- const TOOLTIP_LONG_PRESS_DELAY = {
512
- open: 250,
513
- close: 3000
514
- };
515
-
516
437
  // See https://regex101.com/r/YjS1uI/3
517
438
  const LAST_PART_CLASSNAME = /^(.*)-(.+)$/gi;
518
439
 
@@ -542,6 +463,13 @@ const getTypographyClassName = typography => {
542
463
  return `lumx-typography-${typography}`;
543
464
  };
544
465
 
466
+ /** Resolve color & color variant from a `ColorWithVariants` and optionally a `ColorVariant`. */
467
+ function resolveColorWithVariants(colorWithVariants, colorVariant) {
468
+ if (!colorWithVariants) return [undefined, colorVariant];
469
+ const [color, baseColorVariant] = colorWithVariants.split('-');
470
+ return [color, colorVariant || baseColorVariant];
471
+ }
472
+
545
473
  /**
546
474
  * Returns the classname associated to the given color and variant.
547
475
  * For example, for 'dark' and 'L2' it returns `lumx-color-font-dark-L2`
@@ -552,13 +480,6 @@ function fontColorClass(propColor, propColorVariant) {
552
480
  return `lumx-color-font-${color}-${colorVariant}`;
553
481
  }
554
482
 
555
- /** Resolve color & color variant from a `ColorWithVariants` and optionally a `ColorVariant`. */
556
- function resolveColorWithVariants(colorWithVariants, colorVariant) {
557
- if (!colorWithVariants) return [undefined, colorVariant];
558
- const [color, baseColorVariant] = colorWithVariants.split('-');
559
- return [color, colorVariant || baseColorVariant];
560
- }
561
-
562
483
  let i = 0;
563
484
 
564
485
  /**
@@ -578,7 +499,7 @@ function useId() {
578
499
  */
579
500
  const forwardRef = React__default.forwardRef;
580
501
 
581
- const _excluded$1t = ["id", "title", "className", "cancelProps", "confirmProps", "kind", "size", "dialogProps", "children"],
502
+ const _excluded$1s = ["id", "title", "className", "cancelProps", "confirmProps", "kind", "size", "dialogProps", "children"],
582
503
  _excluded2$3 = ["label", "onClick"],
583
504
  _excluded3 = ["label", "onClick"];
584
505
  /**
@@ -642,7 +563,7 @@ const AlertDialog = forwardRef((props, ref) => {
642
563
  dialogProps,
643
564
  children
644
565
  } = props,
645
- forwardedProps = _objectWithoutProperties(props, _excluded$1t);
566
+ forwardedProps = _objectWithoutProperties(props, _excluded$1s);
646
567
  const cancelButtonRef = React__default.useRef(null);
647
568
  const confirmationButtonRef = React__default.useRef(null);
648
569
  const {
@@ -769,7 +690,7 @@ function useTheme() {
769
690
  return React__default.useContext(ThemeContext);
770
691
  }
771
692
 
772
- const _excluded$1s = ["disabled", "isDisabled", "aria-disabled", "onClick", "onChange"];
693
+ const _excluded$1r = ["disabled", "isDisabled", "aria-disabled", "onClick", "onChange"];
773
694
  /**
774
695
  * Resolve disabled state from props.
775
696
  * (handles `disabled`, `isDisabled` and `aria-disabled`)
@@ -784,7 +705,7 @@ function useDisableStateProps(props) {
784
705
  onClick,
785
706
  onChange
786
707
  } = props,
787
- otherProps = _objectWithoutProperties(props, _excluded$1s);
708
+ otherProps = _objectWithoutProperties(props, _excluded$1r);
788
709
  const disabledStateContext = useDisabledStateContext();
789
710
  const disabledStateProps = {
790
711
  disabled: (disabledStateContext === null || disabledStateContext === void 0 ? void 0 : disabledStateContext.state) === 'disabled' || isDisabled,
@@ -802,7 +723,7 @@ function useDisableStateProps(props) {
802
723
  };
803
724
  }
804
725
 
805
- const _excluded$1r = ["anchorToInput", "children", "chips", "className", "closeOnClick", "closeOnClickAway", "closeOnEscape", "error", "fitToAnchorWidth", "hasError", "helper", "icon", "inputRef", "clearButtonProps", "isRequired", "isOpen", "isValid", "label", "name", "offset", "onBlur", "onChange", "onClose", "onFocus", "onInfiniteScroll", "placeholder", "placement", "shouldFocusOnClose", "theme", "value", "textFieldProps", "focusAnchorOnClose"];
726
+ const _excluded$1q = ["anchorToInput", "children", "chips", "className", "closeOnClick", "closeOnClickAway", "closeOnEscape", "error", "fitToAnchorWidth", "hasError", "helper", "icon", "inputRef", "clearButtonProps", "isRequired", "isOpen", "isValid", "label", "name", "offset", "onBlur", "onChange", "onClose", "onFocus", "onInfiniteScroll", "placeholder", "placement", "shouldFocusOnClose", "theme", "value", "textFieldProps", "focusAnchorOnClose"];
806
727
 
807
728
  /**
808
729
  * Defines the props of the component.
@@ -876,7 +797,7 @@ const Autocomplete = forwardRef((props, ref) => {
876
797
  textFieldProps = {},
877
798
  focusAnchorOnClose
878
799
  } = otherProps,
879
- forwardedProps = _objectWithoutProperties(otherProps, _excluded$1r);
800
+ forwardedProps = _objectWithoutProperties(otherProps, _excluded$1q);
880
801
  const inputAnchorRef = useRef(null);
881
802
  const textFieldRef = useRef(null);
882
803
  useFocus(inputAnchorRef.current, !isOpen && shouldFocusOnClose);
@@ -924,7 +845,7 @@ Autocomplete.displayName = COMPONENT_NAME$1m;
924
845
  Autocomplete.className = CLASSNAME$1j;
925
846
  Autocomplete.defaultProps = DEFAULT_PROPS$12;
926
847
 
927
- const _excluded$1q = ["anchorToInput", "children", "chipsAlignment", "className", "closeOnClickAway", "closeOnEscape", "fitToAnchorWidth", "hasError", "helper", "icon", "inputRef", "clearButtonProps", "isRequired", "isOpen", "isValid", "label", "name", "offset", "onBlur", "onChange", "onClear", "onClose", "onFocus", "onInfiniteScroll", "onKeyDown", "placeholder", "placement", "selectedChipRender", "shouldFocusOnClose", "theme", "type", "value", "values"];
848
+ const _excluded$1p = ["anchorToInput", "children", "chipsAlignment", "className", "closeOnClickAway", "closeOnEscape", "fitToAnchorWidth", "hasError", "helper", "icon", "inputRef", "clearButtonProps", "isRequired", "isOpen", "isValid", "label", "name", "offset", "onBlur", "onChange", "onClear", "onClose", "onFocus", "onInfiniteScroll", "onKeyDown", "placeholder", "placement", "selectedChipRender", "shouldFocusOnClose", "theme", "type", "value", "values"];
928
849
 
929
850
  /**
930
851
  * Defines the props of the component.
@@ -1013,7 +934,7 @@ const AutocompleteMultiple = forwardRef((props, ref) => {
1013
934
  value,
1014
935
  values = DEFAULT_PROPS$11.values
1015
936
  } = otherProps,
1016
- forwardedProps = _objectWithoutProperties(otherProps, _excluded$1q);
937
+ forwardedProps = _objectWithoutProperties(otherProps, _excluded$1p);
1017
938
  return /*#__PURE__*/React__default.createElement(Autocomplete, _extends({
1018
939
  ref: ref
1019
940
  }, forwardedProps, {
@@ -1054,7 +975,7 @@ AutocompleteMultiple.displayName = COMPONENT_NAME$1l;
1054
975
  AutocompleteMultiple.className = CLASSNAME$1i;
1055
976
  AutocompleteMultiple.defaultProps = DEFAULT_PROPS$11;
1056
977
 
1057
- const _excluded$1p = ["actions", "alt", "badge", "className", "image", "linkProps", "linkAs", "onClick", "onKeyPress", "size", "theme", "thumbnailProps"];
978
+ const _excluded$1o = ["actions", "alt", "badge", "className", "image", "linkProps", "linkAs", "onClick", "onKeyPress", "size", "theme", "thumbnailProps"];
1058
979
 
1059
980
  /**
1060
981
  * Avatar sizes.
@@ -1104,7 +1025,7 @@ const Avatar = forwardRef((props, ref) => {
1104
1025
  theme = defaultTheme,
1105
1026
  thumbnailProps
1106
1027
  } = props,
1107
- forwardedProps = _objectWithoutProperties(props, _excluded$1p);
1028
+ forwardedProps = _objectWithoutProperties(props, _excluded$1o);
1108
1029
  return /*#__PURE__*/React__default.createElement("div", _extends({
1109
1030
  ref: ref
1110
1031
  }, forwardedProps, {
@@ -1135,7 +1056,7 @@ Avatar.displayName = COMPONENT_NAME$1k;
1135
1056
  Avatar.className = CLASSNAME$1h;
1136
1057
  Avatar.defaultProps = DEFAULT_PROPS$10;
1137
1058
 
1138
- const _excluded$1o = ["children", "className", "color"];
1059
+ const _excluded$1n = ["children", "className", "color"];
1139
1060
 
1140
1061
  /**
1141
1062
  * Defines the props of the component.
@@ -1171,7 +1092,7 @@ const Badge = forwardRef((props, ref) => {
1171
1092
  className,
1172
1093
  color = DEFAULT_PROPS$$.color
1173
1094
  } = props,
1174
- forwardedProps = _objectWithoutProperties(props, _excluded$1o);
1095
+ forwardedProps = _objectWithoutProperties(props, _excluded$1n);
1175
1096
  return /*#__PURE__*/React__default.createElement("div", _extends({
1176
1097
  ref: ref
1177
1098
  }, forwardedProps, {
@@ -1185,7 +1106,7 @@ Badge.displayName = COMPONENT_NAME$1j;
1185
1106
  Badge.className = CLASSNAME$1g;
1186
1107
  Badge.defaultProps = DEFAULT_PROPS$$;
1187
1108
 
1188
- const _excluded$1n = ["badge", "children", "className"];
1109
+ const _excluded$1m = ["badge", "children", "className"];
1189
1110
  /**
1190
1111
  * Component display name.
1191
1112
  */
@@ -1201,7 +1122,7 @@ const BadgeWrapper = forwardRef((props, ref) => {
1201
1122
  children,
1202
1123
  className
1203
1124
  } = props,
1204
- forwardedProps = _objectWithoutProperties(props, _excluded$1n);
1125
+ forwardedProps = _objectWithoutProperties(props, _excluded$1m);
1205
1126
  return /*#__PURE__*/React__default.createElement("div", _extends({
1206
1127
  ref: ref
1207
1128
  }, forwardedProps, {
@@ -1254,25 +1175,53 @@ const IS_BROWSER = typeof navigator !== 'undefined' && !navigator.userAgent.incl
1254
1175
  */
1255
1176
  const VISUALLY_HIDDEN = 'visually-hidden';
1256
1177
 
1257
- const _excluded$1m = ["linkAs"];
1178
+ /** Same as `React.forwardRef` but inferring Ref type from the `as` prop. */
1179
+ const forwardRefPolymorphic = React__default.forwardRef;
1180
+
1181
+ const _excluded$1l = ["children", "onClick", "disabled", "isDisabled", "aria-disabled", "as"];
1258
1182
  /**
1259
- * Render link with default <a> HTML component or a custom one provided by `linkAs`.
1260
- *
1261
- * Can be used to inject the `Link` component from `react-router` and provide better a11y on LumX components.
1262
- *
1263
- * @param linkAs Custom link component.
1264
- * @param children Link children.
1265
- * @return A link.
1183
+ * Render clickable element (link, button or custom element)
1184
+ * (also does some basic disabled state handling)
1266
1185
  */
1267
- const renderLink = (_ref, ...children) => {
1268
- let {
1269
- linkAs
1270
- } = _ref,
1271
- forwardedProps = _objectWithoutProperties(_ref, _excluded$1m);
1272
- return /*#__PURE__*/React__default.createElement(linkAs || 'a', forwardedProps, ...children);
1273
- };
1186
+ const RawClickable = forwardRefPolymorphic((props, ref) => {
1187
+ const {
1188
+ children,
1189
+ onClick,
1190
+ disabled,
1191
+ isDisabled = disabled,
1192
+ 'aria-disabled': ariaDisabled,
1193
+ as
1194
+ } = props,
1195
+ forwardedProps = _objectWithoutProperties(props, _excluded$1l);
1196
+ const isAnyDisabled = isDisabled || ariaDisabled === 'true' || ariaDisabled === true;
1197
+ const Component = as;
1198
+ let clickableProps;
1199
+ if (Component === 'button') {
1200
+ clickableProps = {
1201
+ type: forwardedProps.type || 'button',
1202
+ disabled: isDisabled
1203
+ };
1204
+ } else {
1205
+ clickableProps = {
1206
+ tabIndex: isDisabled ? '-1' : forwardedProps.tabIndex
1207
+ };
1208
+ }
1209
+ return /*#__PURE__*/React__default.createElement(Component, _extends({
1210
+ ref: ref,
1211
+ "aria-disabled": isAnyDisabled
1212
+ }, forwardedProps, clickableProps, {
1213
+ onClick: event => {
1214
+ if (isAnyDisabled) {
1215
+ event.stopPropagation();
1216
+ event.preventDefault();
1217
+ return;
1218
+ }
1219
+ onClick === null || onClick === void 0 ? void 0 : onClick(event);
1220
+ }
1221
+ }), children);
1222
+ });
1274
1223
 
1275
- const _excluded$1l = ["aria-label", "children", "className", "color", "emphasis", "hasBackground", "href", "isSelected", "isActive", "isFocused", "isHovered", "linkAs", "name", "size", "target", "theme", "variant", "type", "fullWidth"];
1224
+ const _excluded$1k = ["aria-label", "children", "className", "color", "emphasis", "hasBackground", "isSelected", "isActive", "isFocused", "isHovered", "linkAs", "size", "theme", "variant", "fullWidth"];
1276
1225
 
1277
1226
  /**
1278
1227
  * Button size definition.
@@ -1333,21 +1282,17 @@ const ButtonRoot = forwardRef((props, ref) => {
1333
1282
  color,
1334
1283
  emphasis,
1335
1284
  hasBackground,
1336
- href,
1337
1285
  isSelected,
1338
1286
  isActive,
1339
1287
  isFocused,
1340
1288
  isHovered,
1341
1289
  linkAs,
1342
- name,
1343
1290
  size,
1344
- target,
1345
1291
  theme,
1346
1292
  variant,
1347
- type = 'button',
1348
1293
  fullWidth
1349
1294
  } = otherProps,
1350
- forwardedProps = _objectWithoutProperties(otherProps, _excluded$1l);
1295
+ forwardedProps = _objectWithoutProperties(otherProps, _excluded$1k);
1351
1296
  const adaptedColor = color || emphasis !== Emphasis.high && theme === Theme.dark && ColorPalette.light || emphasis === Emphasis.high && ColorPalette.primary || ColorPalette.dark;
1352
1297
  if (hasBackground) {
1353
1298
  return renderButtonWrapper(_objectSpread2(_objectSpread2({}, props), {}, {
@@ -1360,7 +1305,7 @@ const ButtonRoot = forwardRef((props, ref) => {
1360
1305
  color: adaptedColor,
1361
1306
  emphasis,
1362
1307
  isSelected,
1363
- isDisabled: isAnyDisabled,
1308
+ isDisabled: props.isDisabled || props['aria-disabled'],
1364
1309
  isActive,
1365
1310
  isFocused,
1366
1311
  isHovered,
@@ -1370,39 +1315,19 @@ const ButtonRoot = forwardRef((props, ref) => {
1370
1315
  variant,
1371
1316
  fullWidth
1372
1317
  }));
1373
-
1374
- /**
1375
- * If the linkAs prop is used, we use the linkAs component instead of a <button>.
1376
- * If there is an href attribute, we display an <a> instead of a <button>.
1377
- *
1378
- * However, in any case, if the component is disabled, we returned a <button> since disabled is not compatible with <a>.
1379
- */
1380
- if ((linkAs || !isEmpty(props.href)) && !isAnyDisabled) {
1381
- return renderLink(_objectSpread2(_objectSpread2({
1382
- linkAs
1383
- }, forwardedProps), {}, {
1384
- 'aria-label': ariaLabel,
1385
- href,
1386
- target,
1387
- className: buttonClassName,
1388
- ref: ref
1389
- }), children);
1390
- }
1391
- return /*#__PURE__*/React__default.createElement("button", _extends({}, forwardedProps, disabledStateProps, {
1318
+ return /*#__PURE__*/React__default.createElement(RawClickable, _extends({
1319
+ as: linkAs || forwardedProps.href ? 'a' : 'button'
1320
+ }, forwardedProps, disabledStateProps, {
1392
1321
  "aria-disabled": isAnyDisabled,
1393
1322
  "aria-label": ariaLabel,
1394
1323
  ref: ref,
1395
- className: buttonClassName,
1396
- name: name,
1397
- type:
1398
- // eslint-disable-next-line react/button-has-type
1399
- type
1324
+ className: buttonClassName
1400
1325
  }), children);
1401
1326
  });
1402
1327
  ButtonRoot.displayName = COMPONENT_NAME$1h;
1403
1328
  ButtonRoot.defaultProps = {};
1404
1329
 
1405
- const _excluded$1k = ["children", "className", "emphasis", "leftIcon", "rightIcon", "size", "theme"];
1330
+ const _excluded$1j = ["children", "className", "emphasis", "leftIcon", "rightIcon", "size", "theme"];
1406
1331
 
1407
1332
  /**
1408
1333
  * Button emphasis definition.
@@ -1450,7 +1375,7 @@ const Button = forwardRef((props, ref) => {
1450
1375
  size = DEFAULT_PROPS$_.size,
1451
1376
  theme = defaultTheme
1452
1377
  } = props,
1453
- forwardedProps = _objectWithoutProperties(props, _excluded$1k);
1378
+ forwardedProps = _objectWithoutProperties(props, _excluded$1j);
1454
1379
  const buttonClassName = classNames(className, getBasicClass({
1455
1380
  prefix: CLASSNAME$1e,
1456
1381
  type: 'hasLeftIcon',
@@ -1489,7 +1414,7 @@ Button.displayName = COMPONENT_NAME$1g;
1489
1414
  Button.className = CLASSNAME$1e;
1490
1415
  Button.defaultProps = DEFAULT_PROPS$_;
1491
1416
 
1492
- const _excluded$1j = ["emphasis", "image", "icon", "label", "size", "theme", "tooltipProps", "hideTooltip"];
1417
+ const _excluded$1i = ["emphasis", "image", "icon", "label", "size", "theme", "tooltipProps", "hideTooltip"];
1493
1418
  /**
1494
1419
  * Component display name.
1495
1420
  */
@@ -1527,7 +1452,7 @@ const IconButton = forwardRef((props, ref) => {
1527
1452
  tooltipProps,
1528
1453
  hideTooltip
1529
1454
  } = props,
1530
- forwardedProps = _objectWithoutProperties(props, _excluded$1j);
1455
+ forwardedProps = _objectWithoutProperties(props, _excluded$1i);
1531
1456
  return /*#__PURE__*/React__default.createElement(Tooltip, _extends({
1532
1457
  label: hideTooltip ? '' : label
1533
1458
  }, tooltipProps), /*#__PURE__*/React__default.createElement(ButtonRoot, _extends({
@@ -1553,7 +1478,7 @@ IconButton.displayName = COMPONENT_NAME$1f;
1553
1478
  IconButton.className = CLASSNAME$1d;
1554
1479
  IconButton.defaultProps = DEFAULT_PROPS$Z;
1555
1480
 
1556
- const _excluded$1i = ["children", "className"];
1481
+ const _excluded$1h = ["children", "className"];
1557
1482
 
1558
1483
  /**
1559
1484
  * Defines the props of the component
@@ -1586,7 +1511,7 @@ const ButtonGroup = forwardRef((props, ref) => {
1586
1511
  children,
1587
1512
  className
1588
1513
  } = props,
1589
- forwardedProps = _objectWithoutProperties(props, _excluded$1i);
1514
+ forwardedProps = _objectWithoutProperties(props, _excluded$1h);
1590
1515
  return /*#__PURE__*/React__default.createElement("div", _extends({
1591
1516
  ref: ref
1592
1517
  }, forwardedProps, {
@@ -1597,7 +1522,7 @@ ButtonGroup.displayName = COMPONENT_NAME$1e;
1597
1522
  ButtonGroup.className = CLASSNAME$1c;
1598
1523
  ButtonGroup.defaultProps = DEFAULT_PROPS$Y;
1599
1524
 
1600
- const _excluded$1h = ["checked", "className", "helper", "id", "inputRef", "isChecked", "label", "name", "onChange", "theme", "value", "inputProps"];
1525
+ const _excluded$1g = ["checked", "className", "helper", "id", "inputRef", "isChecked", "label", "name", "onChange", "theme", "value", "inputProps"];
1601
1526
  /**
1602
1527
  * Intermediate state of checkbox.
1603
1528
  */
@@ -1650,7 +1575,7 @@ const Checkbox = forwardRef((props, ref) => {
1650
1575
  value,
1651
1576
  inputProps = {}
1652
1577
  } = otherProps,
1653
- forwardedProps = _objectWithoutProperties(otherProps, _excluded$1h);
1578
+ forwardedProps = _objectWithoutProperties(otherProps, _excluded$1g);
1654
1579
  const localInputRef = React__default.useRef(null);
1655
1580
  const generatedInputId = useId();
1656
1581
  const inputId = id || generatedInputId;
@@ -1730,7 +1655,118 @@ function useStopPropagation(handler) {
1730
1655
  }, [handler]);
1731
1656
  }
1732
1657
 
1733
- const _excluded$1g = ["after", "before", "children", "className", "color", "isClickable", "isHighlighted", "isSelected", "onAfterClick", "onBeforeClick", "onClick", "size", "theme", "href", "onKeyDown"];
1658
+ /**
1659
+ * Make sure the pressed key is the enter key before calling the callback.
1660
+ *
1661
+ * @param handler The handler to call on enter/return press.
1662
+ * @return The decorated function.
1663
+ */
1664
+ function onEnterPressed(handler) {
1665
+ return evt => {
1666
+ if (evt.key !== 'Enter') {
1667
+ return;
1668
+ }
1669
+ handler(evt);
1670
+ };
1671
+ }
1672
+
1673
+ /**
1674
+ * Make sure the pressed key is the escape key before calling the callback.
1675
+ *
1676
+ * @param handler The handler to call on enter/return press.
1677
+ * @return The decorated function.
1678
+ */
1679
+ function onEscapePressed(handler) {
1680
+ return evt => {
1681
+ if (evt.key !== 'Escape') {
1682
+ return;
1683
+ }
1684
+ handler(evt);
1685
+ };
1686
+ }
1687
+
1688
+ /**
1689
+ * Checks whether or not the browser support passive events.
1690
+ * @see https://github.com/Modernizr/Modernizr/blob/6d56d814b9682843313b16060adb25a58d83a317/feature-detects/dom/passiveeventlisteners.js
1691
+ */
1692
+ function isPassiveEventAvailable() {
1693
+ let supportsPassiveOption = false;
1694
+ try {
1695
+ const opts = Object.defineProperty({}, 'passive', {
1696
+ get() {
1697
+ supportsPassiveOption = true;
1698
+ }
1699
+ });
1700
+ window.addEventListener('testPassiveEventSupport', noop, opts);
1701
+ window.removeEventListener('testPassiveEventSupport', noop, opts);
1702
+ } catch (e) {
1703
+ // ignored
1704
+ }
1705
+ return supportsPassiveOption;
1706
+ }
1707
+
1708
+ /**
1709
+ * Detects horizontal swipe direction without blocking the browser scroll using passive event.
1710
+ * @see http://javascriptkit.com/javatutors/touchevents2.shtml
1711
+ * @see https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md
1712
+ */
1713
+ function detectHorizontalSwipe(touchSurface, handleSwipe) {
1714
+ let startX;
1715
+ let startY;
1716
+ // Required min distance traveled to be considered swipe.
1717
+ const threshold = 150;
1718
+ // Maximum distance allowed at the same time in perpendicular direction.
1719
+ const restraint = 150;
1720
+ // Maximum time allowed to travel that distance.
1721
+ const allowedTime = 300;
1722
+ let elapsedTime;
1723
+ let startTime;
1724
+ let finished;
1725
+ const onTouchStart = evt => {
1726
+ const [touch] = Array.from(evt.changedTouches);
1727
+ startX = touch.pageX;
1728
+ startY = touch.pageY;
1729
+ // Record time when finger first makes contact with surface.
1730
+ startTime = new Date().getTime();
1731
+ finished = false;
1732
+ };
1733
+ const onTouchMove = evt => {
1734
+ if (finished) {
1735
+ return;
1736
+ }
1737
+ elapsedTime = new Date().getTime() - startTime;
1738
+ if (elapsedTime > allowedTime) {
1739
+ // Touch swipe too long to be considered.
1740
+ return;
1741
+ }
1742
+ const [touch] = Array.from(evt.changedTouches);
1743
+ // Get horizontal dist traveled by finger while in contact with surface.
1744
+ const distX = touch.pageX - startX;
1745
+ // Get vertical dist traveled by finger while in contact with surface.
1746
+ const distY = touch.pageY - startY;
1747
+ if (!(Math.abs(distX) >= threshold && Math.abs(distY) <= restraint)) {
1748
+ // Swipe is not horizontal.
1749
+ return;
1750
+ }
1751
+ // Swipe direction.
1752
+ const direction = distX < 0 ? 'left' : 'right';
1753
+ handleSwipe(direction);
1754
+ finished = true;
1755
+ };
1756
+
1757
+ // Activate passive event if possible for better scrolling performance.
1758
+ const eventOptions = isPassiveEventAvailable() ? {
1759
+ passive: true
1760
+ } : false;
1761
+ touchSurface.addEventListener('touchstart', onTouchStart, eventOptions);
1762
+ touchSurface.addEventListener('touchmove', onTouchMove, eventOptions);
1763
+ return () => {
1764
+ touchSurface.removeEventListener('touchstart', onTouchStart, eventOptions);
1765
+ touchSurface.removeEventListener('touchmove', onTouchMove, eventOptions);
1766
+ };
1767
+ }
1768
+
1769
+ const _excluded$1f = ["after", "before", "children", "className", "color", "isClickable", "isHighlighted", "isSelected", "onAfterClick", "onBeforeClick", "onClick", "size", "theme", "href", "onKeyDown"];
1734
1770
 
1735
1771
  /**
1736
1772
  * Chip sizes.
@@ -1788,7 +1824,7 @@ const Chip = forwardRef((props, ref) => {
1788
1824
  href,
1789
1825
  onKeyDown
1790
1826
  } = otherProps,
1791
- forwardedProps = _objectWithoutProperties(otherProps, _excluded$1g);
1827
+ forwardedProps = _objectWithoutProperties(otherProps, _excluded$1f);
1792
1828
  const hasAfterClick = isFunction(onAfterClick);
1793
1829
  const hasBeforeClick = isFunction(onBeforeClick);
1794
1830
  const hasOnClick = isFunction(props.onClick);
@@ -1905,7 +1941,7 @@ const useChipGroupNavigation = (chips, onChipDeleted, initialActiveChip = INITIA
1905
1941
  };
1906
1942
  };
1907
1943
 
1908
- const _excluded$1f = ["align", "children", "className"];
1944
+ const _excluded$1e = ["align", "children", "className"];
1909
1945
 
1910
1946
  /**
1911
1947
  * Defines the props of the component.
@@ -1939,7 +1975,7 @@ const InternalChipGroup = forwardRef((props, ref) => {
1939
1975
  children,
1940
1976
  className
1941
1977
  } = props,
1942
- forwardedProps = _objectWithoutProperties(props, _excluded$1f);
1978
+ forwardedProps = _objectWithoutProperties(props, _excluded$1e);
1943
1979
  return /*#__PURE__*/React__default.createElement("div", _extends({
1944
1980
  ref: ref
1945
1981
  }, forwardedProps, {
@@ -1953,7 +1989,7 @@ const ChipGroup = Object.assign(InternalChipGroup, {
1953
1989
  useChipGroupNavigation
1954
1990
  });
1955
1991
 
1956
- const _excluded$1e = ["actions", "avatarProps", "children", "className", "date", "fullDate", "hasActions", "headerActions", "isOpen", "isRelevant", "name", "onClick", "onMouseEnter", "onMouseLeave", "text", "theme", "variant"];
1992
+ const _excluded$1d = ["actions", "avatarProps", "children", "className", "date", "fullDate", "hasActions", "headerActions", "isOpen", "isRelevant", "name", "onClick", "onMouseEnter", "onMouseLeave", "text", "theme", "variant"];
1957
1993
  /**
1958
1994
  * Comment block variants.
1959
1995
  */
@@ -2011,7 +2047,7 @@ const CommentBlock = forwardRef((props, ref) => {
2011
2047
  theme = defaultTheme,
2012
2048
  variant = DEFAULT_PROPS$U.variant
2013
2049
  } = props,
2014
- forwardedProps = _objectWithoutProperties(props, _excluded$1e);
2050
+ forwardedProps = _objectWithoutProperties(props, _excluded$1d);
2015
2051
  const hasChildren = Children.count(children) > 0;
2016
2052
  return /*#__PURE__*/React__default.createElement("div", _extends({
2017
2053
  ref: ref,
@@ -2499,7 +2535,7 @@ const DatePickerControlled = forwardRef((props, ref) => {
2499
2535
  DatePickerControlled.displayName = COMPONENT_NAME$18;
2500
2536
  DatePickerControlled.className = CLASSNAME$17;
2501
2537
 
2502
- const _excluded$1d = ["defaultMonth", "locale", "value", "onChange"];
2538
+ const _excluded$1c = ["defaultMonth", "locale", "value", "onChange"];
2503
2539
  /**
2504
2540
  * DatePicker component.
2505
2541
  *
@@ -2514,7 +2550,7 @@ const DatePicker = forwardRef((props, ref) => {
2514
2550
  value,
2515
2551
  onChange
2516
2552
  } = props,
2517
- forwardedProps = _objectWithoutProperties(props, _excluded$1d);
2553
+ forwardedProps = _objectWithoutProperties(props, _excluded$1c);
2518
2554
  let referenceDate = value || defaultMonth || new Date();
2519
2555
  if (!isDateValid(referenceDate)) {
2520
2556
  // eslint-disable-next-line no-console
@@ -2551,7 +2587,7 @@ const useBooleanState = defaultValue => {
2551
2587
  return [booleanValue, setToFalse, setToTrue, toggleBoolean];
2552
2588
  };
2553
2589
 
2554
- const _excluded$1c = ["defaultMonth", "locale", "maxDate", "minDate", "name", "nextButtonProps", "onChange", "previousButtonProps", "value"];
2590
+ const _excluded$1b = ["defaultMonth", "locale", "maxDate", "minDate", "name", "nextButtonProps", "onChange", "previousButtonProps", "value"];
2555
2591
 
2556
2592
  /**
2557
2593
  * Defines the props of the component.
@@ -2585,7 +2621,7 @@ const DatePickerField = forwardRef((props, ref) => {
2585
2621
  previousButtonProps,
2586
2622
  value
2587
2623
  } = otherProps,
2588
- forwardedProps = _objectWithoutProperties(otherProps, _excluded$1c);
2624
+ forwardedProps = _objectWithoutProperties(otherProps, _excluded$1b);
2589
2625
  const anchorRef = useRef(null);
2590
2626
  const [isOpen, close,, toggleOpen] = useBooleanState(false);
2591
2627
  const handleKeyboardNav = useCallback(evt => {
@@ -3130,7 +3166,7 @@ const useTransitionVisibility = (ref, isComponentVisible, timeout, onVisibilityC
3130
3166
  return isVisible || isComponentVisible;
3131
3167
  };
3132
3168
 
3133
- const _excluded$1b = ["children", "className", "header", "focusElement", "forceFooterDivider", "forceHeaderDivider", "footer", "isLoading", "isOpen", "onClose", "parentElement", "contentRef", "preventAutoClose", "size", "zIndex", "dialogProps", "onVisibilityChange", "disableBodyScroll", "preventCloseOnClick", "preventCloseOnEscape"];
3169
+ const _excluded$1a = ["children", "className", "header", "focusElement", "forceFooterDivider", "forceHeaderDivider", "footer", "isLoading", "isOpen", "onClose", "parentElement", "contentRef", "preventAutoClose", "size", "zIndex", "dialogProps", "onVisibilityChange", "disableBodyScroll", "preventCloseOnClick", "preventCloseOnEscape"];
3134
3170
 
3135
3171
  /**
3136
3172
  * Defines the props of the component.
@@ -3192,7 +3228,7 @@ const Dialog = forwardRef((props, ref) => {
3192
3228
  preventCloseOnClick,
3193
3229
  preventCloseOnEscape
3194
3230
  } = props,
3195
- forwardedProps = _objectWithoutProperties(props, _excluded$1b);
3231
+ forwardedProps = _objectWithoutProperties(props, _excluded$1a);
3196
3232
 
3197
3233
  // eslint-disable-next-line react-hooks/rules-of-hooks
3198
3234
  const previousOpen = React__default.useRef(isOpen);
@@ -3308,7 +3344,7 @@ Dialog.displayName = COMPONENT_NAME$16;
3308
3344
  Dialog.className = CLASSNAME$16;
3309
3345
  Dialog.defaultProps = DEFAULT_PROPS$T;
3310
3346
 
3311
- const _excluded$1a = ["className", "theme"];
3347
+ const _excluded$19 = ["className", "theme"];
3312
3348
 
3313
3349
  /**
3314
3350
  * Defines the props of the component.
@@ -3342,7 +3378,7 @@ const Divider = forwardRef((props, ref) => {
3342
3378
  className,
3343
3379
  theme = defaultTheme
3344
3380
  } = props,
3345
- forwardedProps = _objectWithoutProperties(props, _excluded$1a);
3381
+ forwardedProps = _objectWithoutProperties(props, _excluded$19);
3346
3382
  return /*#__PURE__*/React__default.createElement("hr", _extends({
3347
3383
  ref: ref
3348
3384
  }, forwardedProps, {
@@ -3356,7 +3392,7 @@ Divider.displayName = COMPONENT_NAME$15;
3356
3392
  Divider.className = CLASSNAME$15;
3357
3393
  Divider.defaultProps = DEFAULT_PROPS$S;
3358
3394
 
3359
- const _excluded$19 = ["className", "theme"];
3395
+ const _excluded$18 = ["className", "theme"];
3360
3396
 
3361
3397
  /**
3362
3398
  * Defines the props of the component.
@@ -3385,7 +3421,7 @@ const DragHandle = forwardRef((props, ref) => {
3385
3421
  className,
3386
3422
  theme = defaultTheme
3387
3423
  } = props,
3388
- forwardedProps = _objectWithoutProperties(props, _excluded$19);
3424
+ forwardedProps = _objectWithoutProperties(props, _excluded$18);
3389
3425
  return /*#__PURE__*/React__default.createElement("div", _extends({
3390
3426
  ref: ref
3391
3427
  }, forwardedProps, {
@@ -3566,7 +3602,7 @@ const useKeyboardListNavigation = (items, ref, onListItemSelected, onListItemNav
3566
3602
  };
3567
3603
  };
3568
3604
 
3569
- const _excluded$18 = ["after", "before", "children", "className", "isHighlighted", "isSelected", "linkAs", "linkProps", "linkRef", "onItemSelected", "size"];
3605
+ const _excluded$17 = ["after", "before", "children", "className", "isHighlighted", "isSelected", "linkAs", "linkProps", "linkRef", "onItemSelected", "size"];
3570
3606
 
3571
3607
  /**
3572
3608
  * Defines the props of the component.
@@ -3626,13 +3662,7 @@ const ListItem = forwardRef((props, ref) => {
3626
3662
  onItemSelected,
3627
3663
  size = DEFAULT_PROPS$R.size
3628
3664
  } = otherProps,
3629
- forwardedProps = _objectWithoutProperties(otherProps, _excluded$18);
3630
- const role = linkAs || linkProps.href ? 'link' : 'button';
3631
- const onKeyDown = useMemo(() => {
3632
- if (onItemSelected && role === 'link') return onEnterPressed(onItemSelected);
3633
- if (onItemSelected && role === 'button') return onButtonPressed(onItemSelected);
3634
- return undefined;
3635
- }, [role, onItemSelected]);
3665
+ forwardedProps = _objectWithoutProperties(otherProps, _excluded$17);
3636
3666
  const content = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, before && /*#__PURE__*/React__default.createElement("div", {
3637
3667
  className: `${CLASSNAME$13}__before`
3638
3668
  }, before), /*#__PURE__*/React__default.createElement("div", {
@@ -3650,24 +3680,21 @@ const ListItem = forwardRef((props, ref) => {
3650
3680
  }), isClickable({
3651
3681
  linkProps,
3652
3682
  onItemSelected
3653
- }) ? (/* Clickable list item */
3654
- renderLink(_objectSpread2(_objectSpread2({
3655
- linkAs,
3656
- tabIndex: !disabledStateProps.disabled ? 0 : undefined,
3657
- role,
3658
- 'aria-disabled': isAnyDisabled
3659
- }, linkProps), {}, {
3660
- href: isAnyDisabled ? undefined : linkProps.href,
3683
+ }) ?
3684
+ /*#__PURE__*/
3685
+ /* Clickable list item */
3686
+ React__default.createElement(RawClickable, _extends({
3687
+ as: linkAs || linkProps.href ? 'a' : 'button'
3688
+ }, linkProps, disabledStateProps, {
3661
3689
  className: classNames(handleBasicClasses({
3662
3690
  prefix: `${CLASSNAME$13}__link`,
3663
3691
  isHighlighted,
3664
3692
  isSelected,
3665
3693
  isDisabled: isAnyDisabled
3666
3694
  })),
3667
- onClick: isAnyDisabled ? undefined : onItemSelected,
3668
- onKeyDown: isAnyDisabled ? undefined : onKeyDown,
3695
+ onClick: onItemSelected,
3669
3696
  ref: linkRef
3670
- }), content)) :
3697
+ }), content) :
3671
3698
  /*#__PURE__*/
3672
3699
  /* Non clickable list item */
3673
3700
  React__default.createElement("div", {
@@ -4107,7 +4134,7 @@ const useInteractiveList = options => {
4107
4134
  }, [items, activeItemIndex, onListItemSelected]);
4108
4135
  };
4109
4136
 
4110
- const _excluded$17 = ["children", "className", "isClickable", "itemPadding", "onListItemSelected", "tabIndex"];
4137
+ const _excluded$16 = ["children", "className", "isClickable", "itemPadding", "onListItemSelected", "tabIndex"];
4111
4138
 
4112
4139
  /**
4113
4140
  * Defines the props of the component.
@@ -4147,7 +4174,7 @@ const InternalList = forwardRef((props, ref) => {
4147
4174
  onListItemSelected,
4148
4175
  tabIndex = DEFAULT_PROPS$Q.tabIndex
4149
4176
  } = props,
4150
- forwardedProps = _objectWithoutProperties(props, _excluded$17);
4177
+ forwardedProps = _objectWithoutProperties(props, _excluded$16);
4151
4178
  const listElementRef = useRef(null);
4152
4179
  const {
4153
4180
  items,
@@ -6589,7 +6616,7 @@ function usePopoverStyle({
6589
6616
  };
6590
6617
  }
6591
6618
 
6592
- const _excluded$16 = ["anchorRef", "as", "children", "className", "closeOnClickAway", "closeOnEscape", "elevation", "focusElement", "hasArrow", "isOpen", "onClose", "parentElement", "usePortal", "focusAnchorOnClose", "withFocusTrap", "boundaryRef", "fitToAnchorWidth", "fitWithinViewportHeight", "focusTrapZoneElement", "offset", "placement", "style", "theme", "zIndex"];
6619
+ const _excluded$15 = ["anchorRef", "as", "children", "className", "closeOnClickAway", "closeOnEscape", "elevation", "focusElement", "hasArrow", "isOpen", "onClose", "parentElement", "usePortal", "focusAnchorOnClose", "withFocusTrap", "boundaryRef", "fitToAnchorWidth", "fitWithinViewportHeight", "focusTrapZoneElement", "offset", "placement", "style", "theme", "zIndex"];
6593
6620
 
6594
6621
  /**
6595
6622
  * Defines the props of the component.
@@ -6645,7 +6672,7 @@ const _InnerPopover = forwardRef((props, ref) => {
6645
6672
  theme,
6646
6673
  zIndex = DEFAULT_PROPS$P.zIndex
6647
6674
  } = props,
6648
- forwardedProps = _objectWithoutProperties(props, _excluded$16);
6675
+ forwardedProps = _objectWithoutProperties(props, _excluded$15);
6649
6676
  const popoverRef = useRef(null);
6650
6677
  const {
6651
6678
  styles,
@@ -6764,7 +6791,7 @@ const useInfiniteScroll = (ref, callback, callbackOnMount = false, scrollTrigger
6764
6791
  }, [callback, callbackOnMount]);
6765
6792
  };
6766
6793
 
6767
- const _excluded$15 = ["anchorRef", "children", "className", "closeOnClick", "closeOnClickAway", "closeOnEscape", "fitToAnchorWidth", "fitWithinViewportHeight", "isOpen", "offset", "focusAnchorOnClose", "onClose", "onInfiniteScroll", "placement", "shouldFocusOnOpen", "zIndex"];
6794
+ const _excluded$14 = ["anchorRef", "children", "className", "closeOnClick", "closeOnClickAway", "closeOnEscape", "fitToAnchorWidth", "fitWithinViewportHeight", "isOpen", "offset", "focusAnchorOnClose", "onClose", "onInfiniteScroll", "placement", "shouldFocusOnOpen", "zIndex"];
6768
6795
 
6769
6796
  /**
6770
6797
  * Defines the props of the component.
@@ -6820,7 +6847,7 @@ const Dropdown = forwardRef((props, ref) => {
6820
6847
  shouldFocusOnOpen = DEFAULT_PROPS$O.shouldFocusOnOpen,
6821
6848
  zIndex
6822
6849
  } = props,
6823
- forwardedProps = _objectWithoutProperties(props, _excluded$15);
6850
+ forwardedProps = _objectWithoutProperties(props, _excluded$14);
6824
6851
  const innerRef = useRef(null);
6825
6852
  const listElement = useRef(null);
6826
6853
  useInfiniteScroll(innerRef, onInfiniteScroll);
@@ -6863,7 +6890,7 @@ Dropdown.displayName = COMPONENT_NAME$10;
6863
6890
  Dropdown.className = CLASSNAME$10;
6864
6891
  Dropdown.defaultProps = DEFAULT_PROPS$O;
6865
6892
 
6866
- const _excluded$14 = ["className", "closeMode", "children", "hasBackground", "hasHeaderDivider", "isOpen", "label", "onClose", "onOpen", "onToggleOpen", "theme", "toggleButtonProps"];
6893
+ const _excluded$13 = ["className", "closeMode", "children", "hasBackground", "hasHeaderDivider", "isOpen", "label", "onClose", "onOpen", "onToggleOpen", "theme", "toggleButtonProps"];
6867
6894
 
6868
6895
  /**
6869
6896
  * Defines the props of the component.
@@ -6912,7 +6939,7 @@ const ExpansionPanel = forwardRef((props, ref) => {
6912
6939
  theme = defaultTheme,
6913
6940
  toggleButtonProps
6914
6941
  } = props,
6915
- forwardedProps = _objectWithoutProperties(props, _excluded$14);
6942
+ forwardedProps = _objectWithoutProperties(props, _excluded$13);
6916
6943
  const children = Children.toArray(anyChildren);
6917
6944
 
6918
6945
  // Partition children by types.
@@ -7008,7 +7035,7 @@ ExpansionPanel.displayName = COMPONENT_NAME$$;
7008
7035
  ExpansionPanel.className = CLASSNAME$$;
7009
7036
  ExpansionPanel.defaultProps = DEFAULT_PROPS$N;
7010
7037
 
7011
- const _excluded$13 = ["label", "icon", "color", "className", "theme", "truncate"];
7038
+ const _excluded$12 = ["label", "icon", "color", "className", "theme", "truncate"];
7012
7039
  const COMPONENT_NAME$_ = 'Flag';
7013
7040
  const CLASSNAME$_ = getRootClassName(COMPONENT_NAME$_);
7014
7041
  const DEFAULT_PROPS$M = {};
@@ -7030,7 +7057,7 @@ const Flag = forwardRef((props, ref) => {
7030
7057
  theme = defaultTheme,
7031
7058
  truncate
7032
7059
  } = props,
7033
- forwardedProps = _objectWithoutProperties(props, _excluded$13);
7060
+ forwardedProps = _objectWithoutProperties(props, _excluded$12);
7034
7061
  const flagColor = color || (theme === Theme.light ? ColorPalette.dark : ColorPalette.light);
7035
7062
  const isTruncated = !!truncate;
7036
7063
  return /*#__PURE__*/React__default.createElement("div", _extends({}, forwardedProps, {
@@ -7055,7 +7082,7 @@ Flag.displayName = COMPONENT_NAME$_;
7055
7082
  Flag.className = CLASSNAME$_;
7056
7083
  Flag.defaultProps = DEFAULT_PROPS$M;
7057
7084
 
7058
- const _excluded$12 = ["as", "children", "className", "fillSpace", "gap", "hAlign", "marginAuto", "noShrink", "orientation", "vAlign", "wrap"];
7085
+ const _excluded$11 = ["as", "children", "className", "fillSpace", "gap", "hAlign", "marginAuto", "noShrink", "orientation", "vAlign", "wrap"];
7059
7086
 
7060
7087
  /**
7061
7088
  * Defines the props of the component.
@@ -7092,7 +7119,7 @@ const FlexBox = forwardRef((props, ref) => {
7092
7119
  vAlign,
7093
7120
  wrap
7094
7121
  } = props,
7095
- forwardedProps = _objectWithoutProperties(props, _excluded$12);
7122
+ forwardedProps = _objectWithoutProperties(props, _excluded$11);
7096
7123
  return /*#__PURE__*/React__default.createElement(Component, _extends({
7097
7124
  ref: ref
7098
7125
  }, forwardedProps, {
@@ -7108,7 +7135,7 @@ const FlexBox = forwardRef((props, ref) => {
7108
7135
  FlexBox.displayName = COMPONENT_NAME$Z;
7109
7136
  FlexBox.className = CLASSNAME$Z;
7110
7137
 
7111
- const _excluded$11 = ["className", "figure", "figureProps", "children", "actions", "actionsProps", "gap", "orientation", "contentProps"];
7138
+ const _excluded$10 = ["className", "figure", "figureProps", "children", "actions", "actionsProps", "gap", "orientation", "contentProps"];
7112
7139
  /**
7113
7140
  * Component display name.
7114
7141
  */
@@ -7157,7 +7184,7 @@ const BaseGenericBlock = forwardRef((props, ref) => {
7157
7184
  orientation = DEFAULT_PROPS$L.orientation,
7158
7185
  contentProps
7159
7186
  } = props,
7160
- forwardedProps = _objectWithoutProperties(props, _excluded$11);
7187
+ forwardedProps = _objectWithoutProperties(props, _excluded$10);
7161
7188
  const sections = React__default.useMemo(() => {
7162
7189
  // Split children by section type
7163
7190
  const [[figureChild], [contentChild], [actionsChild], ...otherChildren] = partitionMulti(Children.toArray(children), [isFigure, isContent, isActions]);
@@ -7229,26 +7256,28 @@ const useTooltipContext = () => React__default.useContext(TooltipContext);
7229
7256
 
7230
7257
  /**
7231
7258
  * Compute a tooltip label based on a label element `innerText` if the text overflows.
7232
- *
7233
- * Warning: only works on first render, does not update on label element resize.
7259
+ * Updates dynamically on content changes (but not on resize!)
7234
7260
  */
7235
- const useOverflowTooltipLabel = () => {
7261
+ const useOverflowTooltipLabel = content => {
7236
7262
  const parentTooltip = useTooltipContext();
7237
7263
  const [tooltipLabel, setTooltipLabel] = React__default.useState(undefined);
7238
- const labelRef = React__default.useCallback(labelElement => {
7239
- if (!labelElement || !!parentTooltip) {
7240
- // Skip if label element is unknown
7241
- // Skip if the parent has a tooltip
7242
- return;
7243
- }
7244
-
7245
- // Label overflowing
7246
- if (labelElement.offsetWidth < labelElement.scrollWidth) {
7264
+ const [labelElement, setLabelElement] = React__default.useState(null);
7265
+ React__default.useLayoutEffect(() => {
7266
+ if (
7267
+ // Not inside a tooltip
7268
+ !parentTooltip && labelElement &&
7269
+ // Not inside a visually hidden
7270
+ !(labelElement !== null && labelElement !== void 0 && labelElement.closest(`.${VISUALLY_HIDDEN}`)) &&
7271
+ // Text overflows
7272
+ labelElement.offsetWidth < labelElement.scrollWidth) {
7273
+ // Set tooltip label
7247
7274
  setTooltipLabel(labelElement.innerText);
7275
+ } else {
7276
+ setTooltipLabel(undefined);
7248
7277
  }
7249
- }, [parentTooltip]);
7278
+ }, [labelElement, parentTooltip, content]);
7250
7279
  return {
7251
- labelRef,
7280
+ labelRef: setLabelElement,
7252
7281
  tooltipLabel
7253
7282
  };
7254
7283
  };
@@ -7267,7 +7296,7 @@ function wrapChildrenIconWithSpaces(children) {
7267
7296
  });
7268
7297
  }
7269
7298
 
7270
- const _excluded$10 = ["as", "children", "className", "color", "colorVariant", "noWrap", "typography", "truncate", "whiteSpace", "style"];
7299
+ const _excluded$$ = ["as", "children", "className", "color", "colorVariant", "noWrap", "typography", "truncate", "whiteSpace", "style"];
7271
7300
 
7272
7301
  /**
7273
7302
  * Defines the props of the component.
@@ -7308,7 +7337,7 @@ const Text = forwardRef((props, ref) => {
7308
7337
  whiteSpace,
7309
7338
  style
7310
7339
  } = props,
7311
- forwardedProps = _objectWithoutProperties(props, _excluded$10);
7340
+ forwardedProps = _objectWithoutProperties(props, _excluded$$);
7312
7341
  const typographyClass = typography && getTypographyClassName(typography);
7313
7342
 
7314
7343
  // Truncate mode
@@ -7329,7 +7358,7 @@ const Text = forwardRef((props, ref) => {
7329
7358
  const {
7330
7359
  tooltipLabel,
7331
7360
  labelRef
7332
- } = useOverflowTooltipLabel();
7361
+ } = useOverflowTooltipLabel(children);
7333
7362
  return /*#__PURE__*/React__default.createElement(Component, _extends({
7334
7363
  ref: useMergeRefs(ref, labelRef),
7335
7364
  className: classNames(className, handleBasicClasses({
@@ -7377,7 +7406,7 @@ const useHeadingLevel = () => {
7377
7406
  };
7378
7407
  };
7379
7408
 
7380
- const _excluded$$ = ["children", "as", "className"];
7409
+ const _excluded$_ = ["children", "as", "className"];
7381
7410
 
7382
7411
  /**
7383
7412
  * Defines the props of the component.
@@ -7409,7 +7438,7 @@ const Heading = forwardRef((props, ref) => {
7409
7438
  as,
7410
7439
  className
7411
7440
  } = props,
7412
- forwardedProps = _objectWithoutProperties(props, _excluded$$);
7441
+ forwardedProps = _objectWithoutProperties(props, _excluded$_);
7413
7442
  const {
7414
7443
  headingElement
7415
7444
  } = useHeadingLevel();
@@ -7447,7 +7476,7 @@ const HeadingLevelProvider = ({
7447
7476
  }, children);
7448
7477
  };
7449
7478
 
7450
- const _excluded$_ = ["children", "className", "gutter", "hAlign", "orientation", "vAlign", "wrap"];
7479
+ const _excluded$Z = ["children", "className", "gutter", "hAlign", "orientation", "vAlign", "wrap"];
7451
7480
 
7452
7481
  /**
7453
7482
  * Defines the props of the component.
@@ -7488,7 +7517,7 @@ const Grid = forwardRef((props, ref) => {
7488
7517
  vAlign,
7489
7518
  wrap = DEFAULT_PROPS$I.wrap
7490
7519
  } = props,
7491
- forwardedProps = _objectWithoutProperties(props, _excluded$_);
7520
+ forwardedProps = _objectWithoutProperties(props, _excluded$Z);
7492
7521
  return /*#__PURE__*/React__default.createElement("div", _extends({
7493
7522
  ref: ref
7494
7523
  }, forwardedProps, {
@@ -7508,7 +7537,7 @@ Grid.displayName = COMPONENT_NAME$V;
7508
7537
  Grid.className = CLASSNAME$V;
7509
7538
  Grid.defaultProps = DEFAULT_PROPS$I;
7510
7539
 
7511
- const _excluded$Z = ["children", "className", "width", "align", "order"];
7540
+ const _excluded$Y = ["children", "className", "width", "align", "order"];
7512
7541
 
7513
7542
  /**
7514
7543
  * Defines the props of the component.
@@ -7539,7 +7568,7 @@ const GridItem = forwardRef((props, ref) => {
7539
7568
  align,
7540
7569
  order
7541
7570
  } = props,
7542
- forwardedProps = _objectWithoutProperties(props, _excluded$Z);
7571
+ forwardedProps = _objectWithoutProperties(props, _excluded$Y);
7543
7572
  return /*#__PURE__*/React__default.createElement("div", _extends({
7544
7573
  ref: ref
7545
7574
  }, forwardedProps, {
@@ -7554,7 +7583,7 @@ const GridItem = forwardRef((props, ref) => {
7554
7583
  GridItem.displayName = COMPONENT_NAME$U;
7555
7584
  GridItem.className = CLASSNAME$U;
7556
7585
 
7557
- const _excluded$Y = ["as", "gap", "maxColumns", "itemMinWidth", "children", "className", "style"];
7586
+ const _excluded$X = ["as", "gap", "maxColumns", "itemMinWidth", "children", "className", "style"];
7558
7587
 
7559
7588
  /**
7560
7589
  * Defines the props of the component.
@@ -7594,7 +7623,7 @@ const GridColumn = forwardRef((props, ref) => {
7594
7623
  className,
7595
7624
  style = {}
7596
7625
  } = props,
7597
- forwardedProps = _objectWithoutProperties(props, _excluded$Y);
7626
+ forwardedProps = _objectWithoutProperties(props, _excluded$X);
7598
7627
  return /*#__PURE__*/React__default.createElement(Component, _extends({}, forwardedProps, {
7599
7628
  ref: ref,
7600
7629
  className: classNames(className, CLASSNAME$T),
@@ -7609,7 +7638,7 @@ GridColumn.displayName = COMPONENT_NAME$T;
7609
7638
  GridColumn.className = CLASSNAME$T;
7610
7639
  GridColumn.defaultProps = DEFAULT_PROPS$H;
7611
7640
 
7612
- const _excluded$X = ["className", "color", "colorVariant", "hasShape", "icon", "size", "theme", "alt"];
7641
+ const _excluded$W = ["className", "color", "colorVariant", "hasShape", "icon", "size", "theme", "alt"];
7613
7642
 
7614
7643
  /**
7615
7644
  * Defines the props of the component.
@@ -7649,7 +7678,7 @@ const Icon = forwardRef((props, ref) => {
7649
7678
  theme = defaultTheme,
7650
7679
  alt
7651
7680
  } = props,
7652
- forwardedProps = _objectWithoutProperties(props, _excluded$X);
7681
+ forwardedProps = _objectWithoutProperties(props, _excluded$W);
7653
7682
  const [color, colorVariant] = resolveColorWithVariants(propColor, propColorVariant);
7654
7683
 
7655
7684
  // Color
@@ -7764,7 +7793,7 @@ const ImageCaption = props => {
7764
7793
  }, tags));
7765
7794
  };
7766
7795
 
7767
- const _excluded$W = ["actions", "align", "alt", "captionPosition", "captionStyle", "className", "description", "descriptionProps", "fillHeight", "image", "size", "tags", "theme", "thumbnailProps", "title", "titleProps"];
7796
+ const _excluded$V = ["actions", "align", "alt", "captionPosition", "captionStyle", "className", "description", "descriptionProps", "fillHeight", "image", "size", "tags", "theme", "thumbnailProps", "title", "titleProps"];
7768
7797
 
7769
7798
  /**
7770
7799
  * Image block variants.
@@ -7827,7 +7856,7 @@ const ImageBlock = forwardRef((props, ref) => {
7827
7856
  title,
7828
7857
  titleProps
7829
7858
  } = props,
7830
- forwardedProps = _objectWithoutProperties(props, _excluded$W);
7859
+ forwardedProps = _objectWithoutProperties(props, _excluded$V);
7831
7860
  return /*#__PURE__*/React__default.createElement("figure", _extends({
7832
7861
  ref: ref
7833
7862
  }, forwardedProps, {
@@ -8205,7 +8234,7 @@ const ImageSlide = /*#__PURE__*/React__default.memo(props => {
8205
8234
  }));
8206
8235
  }, isEqual);
8207
8236
 
8208
- const _excluded$V = ["image", "imgRef"];
8237
+ const _excluded$U = ["image", "imgRef"];
8209
8238
  /** Internal image slideshow component for ImageLightbox */
8210
8239
  const ImageSlideshow = ({
8211
8240
  activeImageIndex,
@@ -8308,7 +8337,7 @@ const ImageSlideshow = ({
8308
8337
  image,
8309
8338
  imgRef
8310
8339
  } = _ref,
8311
- imageProps = _objectWithoutProperties(_ref, _excluded$V);
8340
+ imageProps = _objectWithoutProperties(_ref, _excluded$U);
8312
8341
  const isActive = index === activeIndex;
8313
8342
  return /*#__PURE__*/React__default.createElement(ImageSlide, {
8314
8343
  isActive: isActive,
@@ -8517,7 +8546,7 @@ function useImageLightbox(props) {
8517
8546
  };
8518
8547
  }
8519
8548
 
8520
- const _excluded$U = ["className", "isOpen", "closeButtonProps", "onClose", "parentElement", "activeImageIndex", "slideshowControlsProps", "slideGroupLabel", "images", "zoomOutButtonProps", "zoomInButtonProps", "activeImageRef"];
8549
+ const _excluded$T = ["className", "isOpen", "closeButtonProps", "onClose", "parentElement", "activeImageIndex", "slideshowControlsProps", "slideGroupLabel", "images", "zoomOutButtonProps", "zoomInButtonProps", "activeImageRef"];
8521
8550
  const Inner = forwardRef((props, ref) => {
8522
8551
  const {
8523
8552
  className,
@@ -8533,7 +8562,7 @@ const Inner = forwardRef((props, ref) => {
8533
8562
  zoomInButtonProps,
8534
8563
  activeImageRef: propImageRef
8535
8564
  } = props,
8536
- forwardedProps = _objectWithoutProperties(props, _excluded$U);
8565
+ forwardedProps = _objectWithoutProperties(props, _excluded$T);
8537
8566
  const currentPaginationItemRef = React__default.useRef(null);
8538
8567
  const footerRef = React__default.useRef(null);
8539
8568
  const imageRef = React__default.useRef(null);
@@ -8588,7 +8617,7 @@ const ImageLightbox = Object.assign(Inner, {
8588
8617
  useImageLightbox
8589
8618
  });
8590
8619
 
8591
- const _excluded$T = ["className", "color", "colorVariant", "typography", "children", "wrap"];
8620
+ const _excluded$S = ["className", "color", "colorVariant", "typography", "children", "wrap"];
8592
8621
 
8593
8622
  /**
8594
8623
  * Defines the props of the component.
@@ -8625,7 +8654,7 @@ const InlineList = forwardRef((props, ref) => {
8625
8654
  children,
8626
8655
  wrap
8627
8656
  } = props,
8628
- forwardedProps = _objectWithoutProperties(props, _excluded$T);
8657
+ forwardedProps = _objectWithoutProperties(props, _excluded$S);
8629
8658
  const typographyClassName = typography && getTypographyClassName(typography);
8630
8659
  return (
8631
8660
  /*#__PURE__*/
@@ -8670,7 +8699,7 @@ const INPUT_HELPER_CONFIGURATION = {
8670
8699
  }
8671
8700
  };
8672
8701
 
8673
- const _excluded$S = ["children", "className", "kind", "theme"];
8702
+ const _excluded$R = ["children", "className", "kind", "theme"];
8674
8703
 
8675
8704
  /**
8676
8705
  * Defines the props of the component.
@@ -8708,7 +8737,7 @@ const InputHelper = forwardRef((props, ref) => {
8708
8737
  kind = DEFAULT_PROPS$D.kind,
8709
8738
  theme = defaultTheme
8710
8739
  } = props,
8711
- forwardedProps = _objectWithoutProperties(props, _excluded$S);
8740
+ forwardedProps = _objectWithoutProperties(props, _excluded$R);
8712
8741
  const {
8713
8742
  color
8714
8743
  } = INPUT_HELPER_CONFIGURATION[kind] || {};
@@ -8726,7 +8755,7 @@ InputHelper.displayName = COMPONENT_NAME$O;
8726
8755
  InputHelper.className = CLASSNAME$O;
8727
8756
  InputHelper.defaultProps = DEFAULT_PROPS$D;
8728
8757
 
8729
- const _excluded$R = ["children", "className", "htmlFor", "isRequired", "theme", "typography"];
8758
+ const _excluded$Q = ["children", "className", "htmlFor", "isRequired", "theme", "typography"];
8730
8759
 
8731
8760
  /**
8732
8761
  * Defines the props of the component.
@@ -8764,7 +8793,7 @@ const InputLabel = forwardRef((props, ref) => {
8764
8793
  theme = defaultTheme,
8765
8794
  typography
8766
8795
  } = props,
8767
- forwardedProps = _objectWithoutProperties(props, _excluded$R);
8796
+ forwardedProps = _objectWithoutProperties(props, _excluded$Q);
8768
8797
  const typographyClass = typography && getTypographyClassName(typography);
8769
8798
  return /*#__PURE__*/React__default.createElement("label", _extends({
8770
8799
  ref: ref
@@ -8782,7 +8811,7 @@ InputLabel.displayName = COMPONENT_NAME$N;
8782
8811
  InputLabel.className = CLASSNAME$N;
8783
8812
  InputLabel.defaultProps = DEFAULT_PROPS$C;
8784
8813
 
8785
- const _excluded$Q = ["aria-labelledby", "ariaLabelledBy", "aria-label", "ariaLabel", "children", "className", "closeButtonProps", "isOpen", "onClose", "parentElement", "focusElement", "preventAutoClose", "theme", "zIndex"];
8814
+ const _excluded$P = ["aria-labelledby", "ariaLabelledBy", "aria-label", "ariaLabel", "children", "className", "closeButtonProps", "isOpen", "onClose", "parentElement", "focusElement", "preventAutoClose", "theme", "zIndex"];
8786
8815
 
8787
8816
  /**
8788
8817
  * Defines the props of the component.
@@ -8822,7 +8851,7 @@ const Lightbox = forwardRef((props, ref) => {
8822
8851
  theme,
8823
8852
  zIndex
8824
8853
  } = props,
8825
- forwardedProps = _objectWithoutProperties(props, _excluded$Q);
8854
+ forwardedProps = _objectWithoutProperties(props, _excluded$P);
8826
8855
  if (!DOCUMENT) {
8827
8856
  // Can't render in SSR.
8828
8857
  return null;
@@ -8914,7 +8943,7 @@ const Lightbox = forwardRef((props, ref) => {
8914
8943
  Lightbox.displayName = COMPONENT_NAME$M;
8915
8944
  Lightbox.className = CLASSNAME$M;
8916
8945
 
8917
- const _excluded$P = ["children", "className", "color", "colorVariant", "href", "leftIcon", "linkAs", "rightIcon", "target", "typography"];
8946
+ const _excluded$O = ["children", "className", "color", "colorVariant", "leftIcon", "rightIcon", "typography", "linkAs"];
8918
8947
 
8919
8948
  /**
8920
8949
  * Defines the props of the component.
@@ -8939,7 +8968,6 @@ const CLASSNAME$L = getRootClassName(COMPONENT_NAME$L);
8939
8968
  */
8940
8969
  const Link = forwardRef((props, ref) => {
8941
8970
  const {
8942
- isAnyDisabled,
8943
8971
  disabledStateProps,
8944
8972
  otherProps
8945
8973
  } = useDisableStateProps(props);
@@ -8948,28 +8976,17 @@ const Link = forwardRef((props, ref) => {
8948
8976
  className,
8949
8977
  color: propColor,
8950
8978
  colorVariant: propColorVariant,
8951
- href,
8952
8979
  leftIcon,
8953
- linkAs,
8954
8980
  rightIcon,
8955
- target,
8956
- typography
8981
+ typography,
8982
+ linkAs
8957
8983
  } = otherProps,
8958
- forwardedProps = _objectWithoutProperties(otherProps, _excluded$P);
8984
+ forwardedProps = _objectWithoutProperties(otherProps, _excluded$O);
8959
8985
  const [color, colorVariant] = resolveColorWithVariants(propColor, propColorVariant);
8960
- const isLink = linkAs || href;
8961
- const Component = isLink && !isAnyDisabled ? linkAs || 'a' : 'button';
8962
- const baseProps = {};
8963
- if (Component === 'button') {
8964
- baseProps.type = 'button';
8965
- Object.assign(baseProps, disabledStateProps);
8966
- } else if (isLink) {
8967
- baseProps.href = href;
8968
- baseProps.target = target;
8969
- }
8970
- return /*#__PURE__*/React__default.createElement(Component, _extends({
8971
- ref: ref
8972
- }, forwardedProps, baseProps, {
8986
+ return /*#__PURE__*/React__default.createElement(RawClickable, _extends({
8987
+ ref: ref,
8988
+ as: linkAs || forwardedProps.href ? 'a' : 'button'
8989
+ }, forwardedProps, disabledStateProps, {
8973
8990
  className: classNames(className, handleBasicClasses({
8974
8991
  prefix: CLASSNAME$L,
8975
8992
  color,
@@ -8989,7 +9006,7 @@ const Link = forwardRef((props, ref) => {
8989
9006
  Link.displayName = COMPONENT_NAME$L;
8990
9007
  Link.className = CLASSNAME$L;
8991
9008
 
8992
- const _excluded$O = ["className", "description", "link", "linkAs", "linkProps", "size", "theme", "thumbnailProps", "title", "titleHeading"];
9009
+ const _excluded$N = ["className", "description", "link", "linkAs", "linkProps", "size", "theme", "thumbnailProps", "title", "titleHeading"];
8993
9010
 
8994
9011
  /**
8995
9012
  * Defines the props of the component.
@@ -9034,7 +9051,7 @@ const LinkPreview = forwardRef((props, ref) => {
9034
9051
  title,
9035
9052
  titleHeading = DEFAULT_PROPS$B.titleHeading
9036
9053
  } = props,
9037
- forwardedProps = _objectWithoutProperties(props, _excluded$O);
9054
+ forwardedProps = _objectWithoutProperties(props, _excluded$N);
9038
9055
  // Use title heading as title wrapper (see DEFAULT_PROPS for the default value).
9039
9056
  const TitleHeading = titleHeading;
9040
9057
  return /*#__PURE__*/React__default.createElement("article", _extends({
@@ -9089,7 +9106,7 @@ LinkPreview.displayName = COMPONENT_NAME$K;
9089
9106
  LinkPreview.className = CLASSNAME$K;
9090
9107
  LinkPreview.defaultProps = DEFAULT_PROPS$B;
9091
9108
 
9092
- const _excluded$N = ["className"];
9109
+ const _excluded$M = ["className"];
9093
9110
 
9094
9111
  /**
9095
9112
  * Defines the props of the component.
@@ -9116,7 +9133,7 @@ const ListDivider = forwardRef((props, ref) => {
9116
9133
  const {
9117
9134
  className
9118
9135
  } = props,
9119
- forwardedProps = _objectWithoutProperties(props, _excluded$N);
9136
+ forwardedProps = _objectWithoutProperties(props, _excluded$M);
9120
9137
  return /*#__PURE__*/React__default.createElement("li", _extends({
9121
9138
  ref: ref
9122
9139
  }, forwardedProps, {
@@ -9126,7 +9143,7 @@ const ListDivider = forwardRef((props, ref) => {
9126
9143
  ListDivider.displayName = COMPONENT_NAME$J;
9127
9144
  ListDivider.className = CLASSNAME$J;
9128
9145
 
9129
- const _excluded$M = ["children", "className"];
9146
+ const _excluded$L = ["children", "className"];
9130
9147
 
9131
9148
  /**
9132
9149
  * Defines the props of the component.
@@ -9154,7 +9171,7 @@ const ListSubheader = forwardRef((props, ref) => {
9154
9171
  children,
9155
9172
  className
9156
9173
  } = props,
9157
- forwardedProps = _objectWithoutProperties(props, _excluded$M);
9174
+ forwardedProps = _objectWithoutProperties(props, _excluded$L);
9158
9175
  return /*#__PURE__*/React__default.createElement("li", _extends({
9159
9176
  ref: ref
9160
9177
  }, forwardedProps, {
@@ -9164,7 +9181,7 @@ const ListSubheader = forwardRef((props, ref) => {
9164
9181
  ListSubheader.displayName = COMPONENT_NAME$I;
9165
9182
  ListSubheader.className = CLASSNAME$I;
9166
9183
 
9167
- const _excluded$L = ["children", "className", "hasBackground", "kind", "icon", "closeButtonProps"];
9184
+ const _excluded$K = ["children", "className", "hasBackground", "kind", "icon", "closeButtonProps"];
9168
9185
 
9169
9186
  /**
9170
9187
  * Defines the props of the component.
@@ -9218,7 +9235,7 @@ const Message = forwardRef((props, ref) => {
9218
9235
  icon: customIcon,
9219
9236
  closeButtonProps
9220
9237
  } = props,
9221
- forwardedProps = _objectWithoutProperties(props, _excluded$L);
9238
+ forwardedProps = _objectWithoutProperties(props, _excluded$K);
9222
9239
  const {
9223
9240
  color,
9224
9241
  icon
@@ -9253,7 +9270,7 @@ const Message = forwardRef((props, ref) => {
9253
9270
  Message.displayName = COMPONENT_NAME$H;
9254
9271
  Message.className = CLASSNAME$H;
9255
9272
 
9256
- const _excluded$K = ["className", "theme", "thumbnails", "onImageClick"],
9273
+ const _excluded$J = ["className", "theme", "thumbnails", "onImageClick"],
9257
9274
  _excluded2$2 = ["image", "onClick", "align"];
9258
9275
 
9259
9276
  /**
@@ -9290,7 +9307,7 @@ const Mosaic = forwardRef((props, ref) => {
9290
9307
  thumbnails,
9291
9308
  onImageClick
9292
9309
  } = props,
9293
- forwardedProps = _objectWithoutProperties(props, _excluded$K);
9310
+ forwardedProps = _objectWithoutProperties(props, _excluded$J);
9294
9311
  const handleImageClick = useMemo(() => {
9295
9312
  if (!onImageClick) return undefined;
9296
9313
  return (index, onClick) => event => {
@@ -9338,12 +9355,7 @@ Mosaic.displayName = COMPONENT_NAME$G;
9338
9355
  Mosaic.className = CLASSNAME$G;
9339
9356
  Mosaic.defaultProps = DEFAULT_PROPS$A;
9340
9357
 
9341
- /** Same as `React.forwardRef` but inferring Ref type from the `as` prop. */
9342
- const forwardRefPolymorphic = React__default.forwardRef;
9343
-
9344
- const _excluded$J = ["className", "icon", "label", "isCurrentPage", "as"];
9345
-
9346
- /** Make `href` required when `as` is `a` */
9358
+ const _excluded$I = ["className", "icon", "label", "isCurrentPage", "as"];
9347
9359
 
9348
9360
  /**
9349
9361
  * Navigation item props
@@ -9366,15 +9378,12 @@ const NavigationItem = Object.assign(forwardRefPolymorphic((props, ref) => {
9366
9378
  isCurrentPage,
9367
9379
  as: Element = 'a'
9368
9380
  } = props,
9369
- forwardedProps = _objectWithoutProperties(props, _excluded$J);
9381
+ forwardedProps = _objectWithoutProperties(props, _excluded$I);
9370
9382
  const theme = useTheme();
9371
9383
  const {
9372
9384
  tooltipLabel,
9373
9385
  labelRef
9374
- } = useOverflowTooltipLabel();
9375
- const buttonProps = Element === 'button' ? {
9376
- type: 'button'
9377
- } : {};
9386
+ } = useOverflowTooltipLabel(label);
9378
9387
  return /*#__PURE__*/React__default.createElement("li", {
9379
9388
  className: classNames(className, handleBasicClasses({
9380
9389
  prefix: CLASSNAME$F,
@@ -9383,14 +9392,15 @@ const NavigationItem = Object.assign(forwardRefPolymorphic((props, ref) => {
9383
9392
  }, /*#__PURE__*/React__default.createElement(Tooltip, {
9384
9393
  label: tooltipLabel,
9385
9394
  placement: Placement.TOP
9386
- }, /*#__PURE__*/React__default.createElement(Element, _extends({
9395
+ }, /*#__PURE__*/React__default.createElement(RawClickable, _extends({
9396
+ as: Element,
9387
9397
  className: handleBasicClasses({
9388
9398
  prefix: `${CLASSNAME$F}__link`,
9389
9399
  isSelected: isCurrentPage
9390
9400
  }),
9391
9401
  ref: ref,
9392
9402
  "aria-current": isCurrentPage ? 'page' : undefined
9393
- }, buttonProps, forwardedProps), icon ? /*#__PURE__*/React__default.createElement(Icon, {
9403
+ }, forwardedProps), icon ? /*#__PURE__*/React__default.createElement(Icon, {
9394
9404
  className: `${CLASSNAME$F}__icon`,
9395
9405
  icon: icon,
9396
9406
  size: Size.xs,
@@ -9410,7 +9420,7 @@ const NavigationContext = /*#__PURE__*/createContext({
9410
9420
  orientation: Orientation.vertical
9411
9421
  });
9412
9422
 
9413
- const _excluded$I = ["children", "className", "label", "icon"];
9423
+ const _excluded$H = ["children", "className", "label", "icon"];
9414
9424
  /**
9415
9425
  * Component display name.
9416
9426
  */
@@ -9427,7 +9437,7 @@ const NavigationSection = forwardRef((props, ref) => {
9427
9437
  label,
9428
9438
  icon
9429
9439
  } = props,
9430
- forwardedProps = _objectWithoutProperties(props, _excluded$I);
9440
+ forwardedProps = _objectWithoutProperties(props, _excluded$H);
9431
9441
  const [isOpen, setIsOpen] = useState(false);
9432
9442
  const buttonRef = useRef(null);
9433
9443
  const sectionId = useId();
@@ -9442,7 +9452,9 @@ const NavigationSection = forwardRef((props, ref) => {
9442
9452
  theme
9443
9453
  })),
9444
9454
  ref: ref
9445
- }, /*#__PURE__*/React__default.createElement("button", _extends({}, forwardedProps, {
9455
+ }, /*#__PURE__*/React__default.createElement(RawClickable, _extends({
9456
+ as: "button"
9457
+ }, forwardedProps, {
9446
9458
  "aria-controls": sectionId,
9447
9459
  "aria-expanded": isOpen,
9448
9460
  className: classNames(`${CLASSNAME$F}__link`),
@@ -9450,8 +9462,7 @@ const NavigationSection = forwardRef((props, ref) => {
9450
9462
  onClick: event => {
9451
9463
  setIsOpen(!isOpen);
9452
9464
  event.stopPropagation();
9453
- },
9454
- type: "button"
9465
+ }
9455
9466
  }), icon ? /*#__PURE__*/React__default.createElement(Icon, {
9456
9467
  className: `${CLASSNAME$F}__icon`,
9457
9468
  icon: icon,
@@ -9491,7 +9502,7 @@ const NavigationSection = forwardRef((props, ref) => {
9491
9502
  NavigationSection.displayName = COMPONENT_NAME$E;
9492
9503
  NavigationSection.className = CLASSNAME$E;
9493
9504
 
9494
- const _excluded$H = ["children", "className", "theme", "orientation"];
9505
+ const _excluded$G = ["children", "className", "theme", "orientation"];
9495
9506
  /**
9496
9507
  * Component display name.
9497
9508
  */
@@ -9516,7 +9527,7 @@ const Navigation = forwardRef((props, ref) => {
9516
9527
  theme = defaultTheme,
9517
9528
  orientation = DEFAULT_PROPS$z.orientation
9518
9529
  } = props,
9519
- forwardedProps = _objectWithoutProperties(props, _excluded$H);
9530
+ forwardedProps = _objectWithoutProperties(props, _excluded$G);
9520
9531
  return /*#__PURE__*/React__default.createElement(ThemeProvider, {
9521
9532
  value: theme
9522
9533
  }, /*#__PURE__*/React__default.createElement("nav", _extends({
@@ -9564,7 +9575,7 @@ const NOTIFICATION_CONFIGURATION = {
9564
9575
  }
9565
9576
  };
9566
9577
 
9567
- const _excluded$G = ["actionLabel", "className", "content", "isOpen", "onActionClick", "onClick", "theme", "type", "zIndex", "usePortal", "style"];
9578
+ const _excluded$F = ["actionLabel", "className", "content", "isOpen", "onActionClick", "onClick", "theme", "type", "zIndex", "usePortal", "style"];
9568
9579
 
9569
9580
  /**
9570
9581
  * Defines the props of the component.
@@ -9611,7 +9622,7 @@ const Notification = forwardRef((props, ref) => {
9611
9622
  usePortal = DEFAULT_PROPS$y.usePortal,
9612
9623
  style
9613
9624
  } = props,
9614
- forwardedProps = _objectWithoutProperties(props, _excluded$G);
9625
+ forwardedProps = _objectWithoutProperties(props, _excluded$F);
9615
9626
  if (!DOCUMENT) {
9616
9627
  // Can't render in SSR.
9617
9628
  return null;
@@ -9667,7 +9678,7 @@ Notification.displayName = COMPONENT_NAME$C;
9667
9678
  Notification.className = CLASSNAME$C;
9668
9679
  Notification.defaultProps = DEFAULT_PROPS$y;
9669
9680
 
9670
- const _excluded$F = ["children", "isOpen", "focusElement", "aria-label", "label", "className"];
9681
+ const _excluded$E = ["children", "isOpen", "focusElement", "aria-label", "label", "className"];
9671
9682
 
9672
9683
  /**
9673
9684
  * PopoverDialog props.
@@ -9705,7 +9716,7 @@ const PopoverDialog = forwardRef((props, ref) => {
9705
9716
  label = ariaLabel,
9706
9717
  className
9707
9718
  } = props,
9708
- forwardedProps = _objectWithoutProperties(props, _excluded$F);
9719
+ forwardedProps = _objectWithoutProperties(props, _excluded$E);
9709
9720
  return /*#__PURE__*/React__default.createElement(Popover, _extends({}, forwardedProps, {
9710
9721
  ref: ref,
9711
9722
  className: classNames(className, CLASSNAME$B),
@@ -9729,7 +9740,7 @@ PopoverDialog.displayName = COMPONENT_NAME$B;
9729
9740
  PopoverDialog.className = CLASSNAME$B;
9730
9741
  PopoverDialog.defaultProps = DEFAULT_PROPS$x;
9731
9742
 
9732
- const _excluded$E = ["actions", "attachments", "author", "className", "meta", "onClick", "orientation", "tags", "text", "theme", "thumbnailProps", "title"];
9743
+ const _excluded$D = ["actions", "attachments", "author", "className", "meta", "onClick", "orientation", "tags", "text", "theme", "thumbnailProps", "title"];
9733
9744
 
9734
9745
  /**
9735
9746
  * Defines the props of the component.
@@ -9775,7 +9786,7 @@ const PostBlock = forwardRef((props, ref) => {
9775
9786
  thumbnailProps,
9776
9787
  title
9777
9788
  } = props,
9778
- forwardedProps = _objectWithoutProperties(props, _excluded$E);
9789
+ forwardedProps = _objectWithoutProperties(props, _excluded$D);
9779
9790
  return /*#__PURE__*/React__default.createElement("div", _extends({
9780
9791
  ref: ref,
9781
9792
  className: classNames(className, handleBasicClasses({
@@ -9820,7 +9831,7 @@ PostBlock.displayName = COMPONENT_NAME$A;
9820
9831
  PostBlock.className = CLASSNAME$A;
9821
9832
  PostBlock.defaultProps = DEFAULT_PROPS$w;
9822
9833
 
9823
- const _excluded$D = ["className", "theme"];
9834
+ const _excluded$C = ["className", "theme"];
9824
9835
  /**
9825
9836
  * Component display name.
9826
9837
  */
@@ -9849,7 +9860,7 @@ const ProgressLinear = forwardRef((props, ref) => {
9849
9860
  className,
9850
9861
  theme = defaultTheme
9851
9862
  } = props,
9852
- forwardedProps = _objectWithoutProperties(props, _excluded$D);
9863
+ forwardedProps = _objectWithoutProperties(props, _excluded$C);
9853
9864
  return /*#__PURE__*/React__default.createElement("div", _extends({
9854
9865
  ref: ref
9855
9866
  }, forwardedProps, {
@@ -9867,7 +9878,7 @@ ProgressLinear.displayName = COMPONENT_NAME$z;
9867
9878
  ProgressLinear.className = CLASSNAME$z;
9868
9879
  ProgressLinear.defaultProps = DEFAULT_PROPS$v;
9869
9880
 
9870
- const _excluded$C = ["className", "theme", "size", "display"];
9881
+ const _excluded$B = ["className", "theme", "size", "display"];
9871
9882
 
9872
9883
  /**
9873
9884
  * Progress sizes.
@@ -9910,7 +9921,7 @@ const ProgressCircular = forwardRef((props, ref) => {
9910
9921
  size = DEFAULT_PROPS$u.size,
9911
9922
  display = DEFAULT_PROPS$u.display
9912
9923
  } = props,
9913
- forwardedProps = _objectWithoutProperties(props, _excluded$C);
9924
+ forwardedProps = _objectWithoutProperties(props, _excluded$B);
9914
9925
  const Element = display === 'block' ? 'div' : 'span';
9915
9926
  return /*#__PURE__*/React__default.createElement(Element, _extends({
9916
9927
  ref: ref
@@ -9941,7 +9952,7 @@ ProgressCircular.displayName = COMPONENT_NAME$y;
9941
9952
  ProgressCircular.className = CLASSNAME$y;
9942
9953
  ProgressCircular.defaultProps = DEFAULT_PROPS$u;
9943
9954
 
9944
- const _excluded$B = ["className", "theme", "variant"];
9955
+ const _excluded$A = ["className", "theme", "variant"];
9945
9956
 
9946
9957
  /**
9947
9958
  * Progress variants.
@@ -9987,7 +9998,7 @@ const Progress = forwardRef((props, ref) => {
9987
9998
  theme = defaultTheme,
9988
9999
  variant = DEFAULT_PROPS$t.variant
9989
10000
  } = props,
9990
- forwardedProps = _objectWithoutProperties(props, _excluded$B);
10001
+ forwardedProps = _objectWithoutProperties(props, _excluded$A);
9991
10002
  return /*#__PURE__*/React__default.createElement("div", _extends({
9992
10003
  ref: ref
9993
10004
  }, forwardedProps, {
@@ -10124,7 +10135,7 @@ const useTabProviderContextState = () => {
10124
10135
  return context === null || context === void 0 ? void 0 : context[0];
10125
10136
  };
10126
10137
 
10127
- const _excluded$A = ["children", "onChange"];
10138
+ const _excluded$z = ["children", "onChange"];
10128
10139
  const DEFAULT_PROPS$s = {
10129
10140
  isLazy: INIT_STATE.isLazy,
10130
10141
  shouldActivateOnFocus: INIT_STATE.shouldActivateOnFocus
@@ -10146,7 +10157,7 @@ const ProgressTrackerProvider = props => {
10146
10157
  children,
10147
10158
  onChange
10148
10159
  } = props,
10149
- propState = _objectWithoutProperties(props, _excluded$A);
10160
+ propState = _objectWithoutProperties(props, _excluded$z);
10150
10161
  const [state, dispatch] = useReducer(reducer, INIT_STATE);
10151
10162
 
10152
10163
  // On prop state change => dispatch update.
@@ -10249,7 +10260,7 @@ const useRovingTabIndex = ({
10249
10260
  [parentRef, ...extraDependencies]);
10250
10261
  };
10251
10262
 
10252
- const _excluded$z = ["aria-label", "children", "className"];
10263
+ const _excluded$y = ["aria-label", "children", "className"];
10253
10264
 
10254
10265
  /**
10255
10266
  * Defines the props of the component.
@@ -10286,7 +10297,7 @@ const ProgressTracker = forwardRef((props, ref) => {
10286
10297
  children,
10287
10298
  className
10288
10299
  } = props,
10289
- forwardedProps = _objectWithoutProperties(props, _excluded$z);
10300
+ forwardedProps = _objectWithoutProperties(props, _excluded$y);
10290
10301
  const stepListRef = React__default.useRef(null);
10291
10302
  useRovingTabIndex({
10292
10303
  parentRef: stepListRef,
@@ -10325,7 +10336,7 @@ ProgressTracker.displayName = COMPONENT_NAME$w;
10325
10336
  ProgressTracker.className = CLASSNAME$w;
10326
10337
  ProgressTracker.defaultProps = DEFAULT_PROPS$r;
10327
10338
 
10328
- const _excluded$y = ["className", "hasError", "helper", "id", "isActive", "isComplete", "label", "onFocus", "onKeyPress", "tabIndex"];
10339
+ const _excluded$x = ["className", "hasError", "helper", "id", "isActive", "isComplete", "label", "onFocus", "onKeyPress", "tabIndex"];
10329
10340
 
10330
10341
  /**
10331
10342
  * Defines the props of the component.
@@ -10372,7 +10383,7 @@ const ProgressTrackerStep = forwardRef((props, ref) => {
10372
10383
  onKeyPress,
10373
10384
  tabIndex = -1
10374
10385
  } = otherProps,
10375
- forwardedProps = _objectWithoutProperties(otherProps, _excluded$y);
10386
+ forwardedProps = _objectWithoutProperties(otherProps, _excluded$x);
10376
10387
  const state = useTabProviderContext('tab', id);
10377
10388
  const isActive = propIsActive || (state === null || state === void 0 ? void 0 : state.isActive);
10378
10389
  const changeToCurrentTab = useCallback(() => {
@@ -10439,7 +10450,7 @@ ProgressTrackerStep.displayName = COMPONENT_NAME$v;
10439
10450
  ProgressTrackerStep.className = CLASSNAME$v;
10440
10451
  ProgressTrackerStep.defaultProps = DEFAULT_PROPS$q;
10441
10452
 
10442
- const _excluded$x = ["children", "id", "className", "isActive"];
10453
+ const _excluded$w = ["children", "id", "className", "isActive"];
10443
10454
 
10444
10455
  /**
10445
10456
  * Defines the props of the component.
@@ -10476,7 +10487,7 @@ const ProgressTrackerStepPanel = forwardRef((props, ref) => {
10476
10487
  className,
10477
10488
  isActive: propIsActive
10478
10489
  } = props,
10479
- forwardedProps = _objectWithoutProperties(props, _excluded$x);
10490
+ forwardedProps = _objectWithoutProperties(props, _excluded$w);
10480
10491
  const state = useTabProviderContext('tabPanel', id);
10481
10492
  const isActive = propIsActive || (state === null || state === void 0 ? void 0 : state.isActive);
10482
10493
  return /*#__PURE__*/React__default.createElement("div", _extends({
@@ -10496,7 +10507,7 @@ ProgressTrackerStepPanel.displayName = COMPONENT_NAME$u;
10496
10507
  ProgressTrackerStepPanel.className = CLASSNAME$u;
10497
10508
  ProgressTrackerStepPanel.defaultProps = DEFAULT_PROPS$p;
10498
10509
 
10499
- const _excluded$w = ["checked", "className", "helper", "id", "inputRef", "isChecked", "label", "name", "onChange", "theme", "value", "inputProps"];
10510
+ const _excluded$v = ["checked", "className", "helper", "id", "inputRef", "isChecked", "label", "name", "onChange", "theme", "value", "inputProps"];
10500
10511
 
10501
10512
  /**
10502
10513
  * Defines the props of the component.
@@ -10545,7 +10556,7 @@ const RadioButton = forwardRef((props, ref) => {
10545
10556
  value,
10546
10557
  inputProps
10547
10558
  } = otherProps,
10548
- forwardedProps = _objectWithoutProperties(otherProps, _excluded$w);
10559
+ forwardedProps = _objectWithoutProperties(otherProps, _excluded$v);
10549
10560
  const generatedInputId = useId();
10550
10561
  const inputId = id || generatedInputId;
10551
10562
  const handleChange = event => {
@@ -10599,7 +10610,7 @@ RadioButton.displayName = COMPONENT_NAME$t;
10599
10610
  RadioButton.className = CLASSNAME$t;
10600
10611
  RadioButton.defaultProps = DEFAULT_PROPS$o;
10601
10612
 
10602
- const _excluded$v = ["children", "className"];
10613
+ const _excluded$u = ["children", "className"];
10603
10614
 
10604
10615
  /**
10605
10616
  * Defines the props of the component.
@@ -10627,7 +10638,7 @@ const RadioGroup = forwardRef((props, ref) => {
10627
10638
  children,
10628
10639
  className
10629
10640
  } = props,
10630
- forwardedProps = _objectWithoutProperties(props, _excluded$v);
10641
+ forwardedProps = _objectWithoutProperties(props, _excluded$u);
10631
10642
  return /*#__PURE__*/React__default.createElement("div", _extends({
10632
10643
  ref: ref
10633
10644
  }, forwardedProps, {
@@ -10661,7 +10672,7 @@ function useListenFocus(ref) {
10661
10672
  return isFocus;
10662
10673
  }
10663
10674
 
10664
- const _excluded$u = ["children", "className", "focusElement", "isMultiple", "closeOnClick", "disabled", "error", "hasError", "helper", "id", "isDisabled", "isEmpty", "isOpen", "isRequired", "isValid", "label", "onClear", "onDropdownClose", "onInfiniteScroll", "onInputClick", "placeholder", "theme", "value", "variant"];
10675
+ const _excluded$t = ["children", "className", "focusElement", "isMultiple", "closeOnClick", "disabled", "error", "hasError", "helper", "id", "isDisabled", "isEmpty", "isOpen", "isRequired", "isValid", "label", "onClear", "onDropdownClose", "onInfiniteScroll", "onInputClick", "placeholder", "theme", "value", "variant"];
10665
10676
  /** The display name of the component. */
10666
10677
  const COMPONENT_NAME$r = 'Select';
10667
10678
 
@@ -10695,7 +10706,7 @@ const WithSelectContext = (SelectElement, props, ref) => {
10695
10706
  value,
10696
10707
  variant
10697
10708
  } = props,
10698
- forwardedProps = _objectWithoutProperties(props, _excluded$u);
10709
+ forwardedProps = _objectWithoutProperties(props, _excluded$t);
10699
10710
  const generatedSelectId = useId();
10700
10711
  const selectId = id || generatedSelectId;
10701
10712
  const anchorRef = useRef(null);
@@ -10778,7 +10789,7 @@ const SelectVariant = {
10778
10789
  chip: 'chip'
10779
10790
  };
10780
10791
 
10781
- const _excluded$t = ["anchorRef", "clearButtonProps", "handleKeyboardNav", "hasError", "hasInputClear", "icon", "id", "isDisabled", "isEmpty", "isRequired", "isValid", "label", "onClear", "onInputClick", "placeholder", "selectedValueRender", "theme", "value", "variant", "selectElementRef"];
10792
+ const _excluded$s = ["anchorRef", "clearButtonProps", "handleKeyboardNav", "hasError", "hasInputClear", "icon", "id", "isDisabled", "isEmpty", "isRequired", "isValid", "label", "onClear", "onInputClick", "placeholder", "selectedValueRender", "theme", "value", "variant", "selectElementRef"];
10782
10793
 
10783
10794
  /** The display name of the component. */
10784
10795
  const COMPONENT_NAME$q = 'Select';
@@ -10820,7 +10831,7 @@ const SelectField = props => {
10820
10831
  variant,
10821
10832
  selectElementRef
10822
10833
  } = props,
10823
- forwardedProps = _objectWithoutProperties(props, _excluded$t);
10834
+ forwardedProps = _objectWithoutProperties(props, _excluded$s);
10824
10835
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, variant === SelectVariant.input && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, label && /*#__PURE__*/React__default.createElement("div", {
10825
10836
  className: `${CLASSNAME$q}__header`
10826
10837
  }, /*#__PURE__*/React__default.createElement(InputLabel, {
@@ -10900,7 +10911,7 @@ Select.className = CLASSNAME$q;
10900
10911
  Select.defaultProps = DEFAULT_PROPS$n;
10901
10912
  Select.className = CLASSNAME$q;
10902
10913
 
10903
- const _excluded$s = ["anchorRef", "handleKeyboardNav", "hasError", "icon", "id", "isDisabled", "isEmpty", "isRequired", "isValid", "label", "onClear", "onInputClick", "placeholder", "selectedChipRender", "selectedValueRender", "theme", "value", "variant", "selectElementRef"];
10914
+ const _excluded$r = ["anchorRef", "handleKeyboardNav", "hasError", "icon", "id", "isDisabled", "isEmpty", "isRequired", "isValid", "label", "onClear", "onInputClick", "placeholder", "selectedChipRender", "selectedValueRender", "theme", "value", "variant", "selectElementRef"];
10904
10915
 
10905
10916
  /** Defines the props of the component. */
10906
10917
 
@@ -10953,7 +10964,7 @@ const SelectMultipleField = props => {
10953
10964
  variant,
10954
10965
  selectElementRef
10955
10966
  } = props,
10956
- forwardedProps = _objectWithoutProperties(props, _excluded$s);
10967
+ forwardedProps = _objectWithoutProperties(props, _excluded$r);
10957
10968
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, variant === SelectVariant.input && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, label && /*#__PURE__*/React__default.createElement("div", {
10958
10969
  className: `${CLASSNAME$p}__header`
10959
10970
  }, /*#__PURE__*/React__default.createElement(InputLabel, {
@@ -11023,7 +11034,7 @@ SelectMultiple.displayName = COMPONENT_NAME$p;
11023
11034
  SelectMultiple.className = CLASSNAME$p;
11024
11035
  SelectMultiple.defaultProps = DEFAULT_PROPS$m;
11025
11036
 
11026
- const _excluded$r = ["children", "className", "theme"];
11037
+ const _excluded$q = ["children", "className", "theme"];
11027
11038
 
11028
11039
  /**
11029
11040
  * Defines the props of the component.
@@ -11053,7 +11064,7 @@ const SideNavigation = forwardRef((props, ref) => {
11053
11064
  className,
11054
11065
  theme = defaultTheme
11055
11066
  } = props,
11056
- forwardedProps = _objectWithoutProperties(props, _excluded$r);
11067
+ forwardedProps = _objectWithoutProperties(props, _excluded$q);
11057
11068
  const content = Children.toArray(children).filter(isComponent(SideNavigationItem));
11058
11069
  return /*#__PURE__*/React__default.createElement("ul", _extends({
11059
11070
  ref: ref
@@ -11064,22 +11075,6 @@ const SideNavigation = forwardRef((props, ref) => {
11064
11075
  SideNavigation.displayName = COMPONENT_NAME$o;
11065
11076
  SideNavigation.className = CLASSNAME$o;
11066
11077
 
11067
- const _excluded$q = ["linkAs", "href"];
11068
- /**
11069
- * Render <button> HTML component, fallbacks to `<a>` when a `href` is provided or a custom component with `linkAs`.
11070
- */
11071
- const renderButtonOrLink = (props, ...children) => {
11072
- const {
11073
- linkAs,
11074
- href
11075
- } = props,
11076
- forwardedProps = _objectWithoutProperties(props, _excluded$q);
11077
- if (linkAs || href) return renderLink(props, ...children);
11078
- return /*#__PURE__*/React__default.createElement('button', _objectSpread2({
11079
- type: 'button'
11080
- }, forwardedProps), ...children);
11081
- };
11082
-
11083
11078
  const _excluded$p = ["children", "className", "emphasis", "icon", "isOpen", "isSelected", "label", "linkAs", "linkProps", "onActionClick", "onClick", "toggleButtonProps", "closeMode"];
11084
11079
 
11085
11080
  /**
@@ -11150,12 +11145,11 @@ const SideNavigationItem = forwardRef((props, ref) => {
11150
11145
  }))
11151
11146
  }), shouldSplitActions ? /*#__PURE__*/React__default.createElement("div", {
11152
11147
  className: `${CLASSNAME$n}__wrapper`
11153
- }, renderLink(_objectSpread2(_objectSpread2({
11154
- linkAs
11155
- }, linkProps), {}, {
11148
+ }, /*#__PURE__*/React__default.createElement(RawClickable, _extends({
11149
+ as: linkAs || linkProps !== null && linkProps !== void 0 && linkProps.href ? 'a' : 'button'
11150
+ }, linkProps, {
11156
11151
  className: `${CLASSNAME$n}__link`,
11157
- onClick,
11158
- tabIndex: 0
11152
+ onClick: onClick
11159
11153
  }), icon && /*#__PURE__*/React__default.createElement(Icon, {
11160
11154
  className: `${CLASSNAME$n}__icon`,
11161
11155
  icon: icon,
@@ -11166,12 +11160,11 @@ const SideNavigationItem = forwardRef((props, ref) => {
11166
11160
  size: Size.m,
11167
11161
  emphasis: Emphasis.low,
11168
11162
  onClick: onActionClick
11169
- }, ariaProps))) : renderButtonOrLink(_objectSpread2(_objectSpread2({
11170
- linkAs
11171
- }, linkProps), {}, {
11163
+ }, ariaProps))) : /*#__PURE__*/React__default.createElement(RawClickable, _extends({
11164
+ as: linkAs || linkProps !== null && linkProps !== void 0 && linkProps.href ? 'a' : 'button'
11165
+ }, linkProps, {
11172
11166
  className: `${CLASSNAME$n}__link`,
11173
- tabIndex: 0,
11174
- onClick
11167
+ onClick: onClick
11175
11168
  }, ariaProps), icon && /*#__PURE__*/React__default.createElement(Icon, {
11176
11169
  className: `${CLASSNAME$n}__icon`,
11177
11170
  icon: icon,
@@ -13654,7 +13647,8 @@ const Thumbnail = forwardRef((props, ref) => {
13654
13647
  var _loadingPlaceholderIm;
13655
13648
  const {
13656
13649
  isAnyDisabled,
13657
- otherProps
13650
+ otherProps,
13651
+ disabledStateProps
13658
13652
  } = useDisableStateProps(props);
13659
13653
  const defaultTheme = useTheme() || Theme.light;
13660
13654
  const {
@@ -13703,17 +13697,13 @@ const Thumbnail = forwardRef((props, ref) => {
13703
13697
  // Remove the image on custom fallback.
13704
13698
  imageErrorStyle.display = 'none';
13705
13699
  }
13706
- const isLink = Boolean((linkProps === null || linkProps === void 0 ? void 0 : linkProps.href) || linkAs);
13707
- const isButton = !!forwardedProps.onClick;
13708
- const isClickable = !isAnyDisabled && (isButton || isLink);
13709
- let Wrapper = 'div';
13700
+ const isClickable = !isAnyDisabled && ((linkProps === null || linkProps === void 0 ? void 0 : linkProps.href) || linkAs || forwardedProps.onClick);
13701
+ const Wrapper = isClickable ? RawClickable : 'div';
13710
13702
  const wrapperProps = _objectSpread2({}, forwardedProps);
13711
- if (!isAnyDisabled && isLink) {
13712
- Wrapper = linkAs || 'a';
13713
- Object.assign(wrapperProps, linkProps);
13714
- } else if (!isAnyDisabled && isButton) {
13715
- Wrapper = 'button';
13716
- wrapperProps.type = forwardedProps.type || 'button';
13703
+ if (isClickable) {
13704
+ Object.assign(wrapperProps, linkProps, {
13705
+ as: linkAs || linkProps !== null && linkProps !== void 0 && linkProps.href ? 'a' : 'button'
13706
+ }, disabledStateProps);
13717
13707
  wrapperProps['aria-label'] = forwardedProps['aria-label'] || alt;
13718
13708
  }
13719
13709
 
@@ -14446,5 +14436,5 @@ UserBlock.displayName = COMPONENT_NAME;
14446
14436
  UserBlock.className = CLASSNAME;
14447
14437
  UserBlock.defaultProps = DEFAULT_PROPS;
14448
14438
 
14449
- export { AlertDialog, Alignment, AspectRatio, Autocomplete, AutocompleteMultiple, Avatar, Badge, BadgeWrapper, Button, ButtonEmphasis, ButtonGroup, Checkbox, Chip, ChipGroup, ColorPalette, ColorVariant, CommentBlock, CommentBlockVariant, DatePicker, DatePickerControlled, DatePickerField, Dialog, Divider, DragHandle, Dropdown, Emphasis, ExpansionPanel, Flag, FlexBox, GenericBlock, GenericBlockGapSize, Grid, GridColumn, GridItem, Heading, HeadingLevelProvider, Icon, IconButton, ImageBlock, ImageBlockCaptionPosition, ImageLightbox, InlineList, InputHelper, InputLabel, Kind, Lightbox, Link, LinkPreview, List, ListDivider, ListItem, ListSubheader, Message, Mosaic, Navigation, Notification, Orientation, Placement, Popover, PopoverDialog, PostBlock, Progress, ProgressCircular, ProgressLinear, ProgressTracker, ProgressTrackerProvider, ProgressTrackerStep, ProgressTrackerStepPanel, ProgressVariant, RadioButton, RadioGroup, Select, SelectMultiple, SelectMultipleField, SelectVariant, SideNavigation, SideNavigationItem, Size, SkeletonCircle, SkeletonRectangle, SkeletonRectangleVariant, SkeletonTypography, Slider, Slides, Slideshow, SlideshowControls, SlideshowItem, Switch, Tab, TabList, TabListLayout, TabPanel, TabProvider, Table, TableBody, TableCell, TableCellVariant, TableHeader, TableRow, Text, TextField, ThOrder, Theme, ThemeProvider, Thumbnail, ThumbnailAspectRatio, ThumbnailObjectFit, ThumbnailVariant, Toolbar, Tooltip, Typography, TypographyCustom, TypographyInterface, TypographyTitleCustom, Uploader, UploaderVariant, UserBlock, WhiteSpace, clamp, isClickable, useFocusPointStyle, useHeadingLevel, useTheme };
14439
+ export { AlertDialog, Alignment, AspectRatio, Autocomplete, AutocompleteMultiple, Avatar, BACKSPACE_KEY_CODE, Badge, BadgeWrapper, Button, ButtonEmphasis, ButtonGroup, CSS_PREFIX, Checkbox, Chip, ChipGroup, ColorPalette, ColorVariant, CommentBlock, CommentBlockVariant, DIALOG_TRANSITION_DURATION, DOWN_KEY_CODE, DatePicker, DatePickerControlled, DatePickerField, Dialog, Divider, DragHandle, Dropdown, ENTER_KEY_CODE, ESCAPE_KEY_CODE, EXPANSION_PANEL_TRANSITION_DURATION, Emphasis, ExpansionPanel, Flag, FlexBox, GenericBlock, GenericBlockGapSize, Grid, GridColumn, GridItem, Heading, HeadingLevelProvider, Icon, IconButton, ImageBlock, ImageBlockCaptionPosition, ImageLightbox, InlineList, InputHelper, InputLabel, Kind, LEFT_KEY_CODE, Lightbox, Link, LinkPreview, List, ListDivider, ListItem, ListSubheader, Message, Mosaic, NOTIFICATION_TRANSITION_DURATION, Navigation, Notification, Orientation, Placement, Popover, PopoverDialog, PostBlock, Progress, ProgressCircular, ProgressLinear, ProgressTracker, ProgressTrackerProvider, ProgressTrackerStep, ProgressTrackerStepPanel, ProgressVariant, RIGHT_KEY_CODE, RadioButton, RadioGroup, SLIDESHOW_TRANSITION_DURATION, SPACE_KEY_CODE, Select, SelectMultiple, SelectMultipleField, SelectVariant, SideNavigation, SideNavigationItem, Size, SkeletonCircle, SkeletonRectangle, SkeletonRectangleVariant, SkeletonTypography, Slider, Slides, Slideshow, SlideshowControls, SlideshowItem, Switch, TAB_KEY_CODE, TOOLTIP_HOVER_DELAY, TOOLTIP_LONG_PRESS_DELAY, Tab, TabList, TabListLayout, TabPanel, TabProvider, Table, TableBody, TableCell, TableCellVariant, TableHeader, TableRow, Text, TextField, ThOrder, Theme, ThemeProvider, Thumbnail, ThumbnailAspectRatio, ThumbnailObjectFit, ThumbnailVariant, Toolbar, Tooltip, Typography, TypographyCustom, TypographyInterface, TypographyTitleCustom, UP_KEY_CODE, Uploader, UploaderVariant, UserBlock, WhiteSpace, clamp, isClickable, useFocusPointStyle, useHeadingLevel, useTheme };
14450
14440
  //# sourceMappingURL=index.js.map